LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogS29yZWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDIgSmFjbyBHcmVlZmYKICogQ29weXJpZ2h0IDIwMDMgRGltaXRyaWUgTy4gUGF1bgogKiBDb3B5cmlnaHQgMjAwMy0yMDA0IE1pa2UgSGVhcm4KICogQ29weXJpZ2h0IDIwMDUsMjAwNiBZdW5Tb25nIEh3YW5nCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfS09SRUFOLCBTVUJMQU5HX05FVVRSQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKSURSX1dJTkVDRkcgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIryzwaQiLCBJRENfQVVESU9fQ09ORklHVVJFCiAgICBFTkQKRU5ECgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNzAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HLElEQ19TVEFUSUMsMTE5LDE3LDEyMCw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgLDE1LDE3LDE1NywxMTEKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIExURVhUICAgICAgICAgICAiwMwgtvPAzLrqt6+4rrTCIMDawK8gvNLHwcauv/6+7sDUtM+02S4gtOe9xcC6IMDawK8gvNLHwcauv/6+7iDA57TcKEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbim/obytILi4tecgR05VIExHUEwoTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UpIL7Gt6G/obytIMDMIMfBt86x17elwLsgwOe56Mb3ILbHtMIgvPbBpMfSILz2IMDWvcC0z7TZLiC288DMvL69usDHILn2wPzAuiAyLjEgtse0wiAovLHFw8D7wLi3zikgsdcgwMzIxCC59sD8wLsgtfu4o7jpILXLtM+02S4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIMfBt86x17elILyzwaQgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lwLogsKKwosDHIMfBt86x17elv6EgtOvH2LytILTZuKUgufbA/MDHIMCptbW/7MHuuKYgyOSzu7O+ILz2IMDWvcC0z7TZLiDAzCDFx8C6ILbzwMy66revuK4sILHXt6HHyCDFx7XpsPogv6yw4bXHvu4gwNa+7rytIMDMIMXHtemw+iDH1LKyIL3DvbrF2yDA/MO8ILbHtMIgx8G3zrHXt6W6sCC8s8GkwLsgudmy3CC89iDA1r3AtM+02S4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMjAsMjI3LDMwCiAgICBDT05UUk9MICAgICAgICAgIkFwcGxpY2F0aW9ucyIsSURDX0FQUF9MSVNUVklFVywiU3lzTGlzdFZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExWU19MSVNUIHwgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTLAogICAgICAgICAgICAgICAgICAgIDE1LDUwLDIzMCwxNTAKICAgIFBVU0hCVVRUT04JICAgICLHwbfOsde3pSDD37Chx8+x4igmQSkuLi4iLElEQ19BUFBfQUREQVBQLCA5MCwyMDQsNzUsMTQKICAgIFBVU0hCVVRUT04JICAgICLHwbfOsde3pSDBprDFx8+x4igmUikiLElEQ19BUFBfUkVNT1ZFQVBQLCAxNzAsMjA0LDc1LDE0CiAgICBMVEVYVCAgICAgICAgICAgIsCptbW/7MHuILn2wa8oJlcpOiIsSURDX1NUQVRJQywxNiwyMjcsNzUsMTQKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIyNCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIApFTkQKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgw6IgvLPBpCAiLElEQ19TVEFUSUMsOCw0LDI0NCwxODAKCiAgICBDT05UUk9MCSAgICAiRGlyZWN0WCDHwbfOsde3pbXpwMwguLa/7L26IMS/vK24piCx17XpwMcgw6K+yL+hIMDivsa1zrDUIMfUIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE0LDIzMCw4CiAgICBMVEVYVCAJICAgICJXaW5lw6K16cDMIMOisPy4rsDav6EgwMfH2LytILD8uK61yLTZuOksIFdpbmXDorXpwLogx6XB2CDDosaywLsgsKHB+iCwzcDMuOcsIMDbvvew+LCjILD8uK7A2r/NIMDfIL7uv++4sSCwzcDUtM+02S4gsde4rrDtIMOiuPG3z7+htbUgs6rFuLOvILDNwNS0z7TZLlxuXG64uL7gv6EgV2luZcOitenAzCDDorD8uK7A2r+hIMDHx9ggsPy4rrXHwfYgvsq0wrTZuOksIFdpbmXDorXpwLogw6Kw/LiuwNq/zSC/rLDhtcfB9iC+ysC7ILDNwNS0z7TZLiDAzLDNwLogV2luZcOitenAzCC1pb26xanFvrD6ILnQwaLHz7DUIMXrx9W1x8H2IL7KtMK02bTCILDNwLsgwMe5zMfVtM+02S4gx8/B9ri4IFdpbmXAxyDAqbW1v+zB7iDI5LO7s7ux4rChILT1IMGkudDH2MGuvK0guO647iDHwbfOsde3pbXpwMwgwbsgtPUgwN8gtb/A28fSILz2IMDWtbW3zyC1tb/Nwd20z7TZLiIsCiAgICAJCSAgICBJRENfU1RBVElDLDE1LDM3LDIyOCw4MAogICAgQ09OVFJPTAkgICAgIsOisPy4rsDasKEgV2luZcOiwLsgsPy4rsfPtbW3zyDH1CIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTExLDIzMCw4CiAgICBMVEVYVCAgICAgICAgICAgIrTnvcXAuiC48LXnIMCptbW/7MHuIMfBt86x17elwMwgsKG787WlvbrFqcW+v6G8rSC1v8DPx9Egx+C1v8C7IMfPsNQgx9IgsM3AzsH2LCC8rbfOILTZuKUgx+C1v8C7IMfPsNQgx9IgsM3AzsH2ILyxxcPH0iC89iDA1r3AtM+02S4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMTI1LDIyOCwyOAogICAKICAgIExURVhUICAgICAgICAgICAitaW9usWpxb4gxamx4joiLElEQ19ERVNLVE9QX1NJWkUsMTUsMTY3LDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTA4LDE2Nyw4LDgsV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAisKG78yC1pb26xanFviDI5LO7s7ux4iIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTUyLDIzMCwxMAoJCSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9XSURUSCw2NCwxNjcsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsMTY3LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAgICAgIiC02cDMt7rGriAzRCAiLElEQ19TVEFUSUMsOCwxODksMjQ0LDUwCgogICAgTFRFWFQJICAgICK59sXYvbogvabAzLT1IMH2v/g6ICIsSURDX1NUQVRJQywxNSwxOTksODAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfRDNEX1ZTSEFERVJfTU9ERSwxMDAsMTk3LDE0Niw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIsfIvL8gvabAzLT1IMfjv+sgKMfPteW//r7uv6G8rSDB9r/4x9G02bjpKSIsSURDX0QzRF9QU0hBREVSX01PREUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMTYsMjMwLDEwCiAgICBHUk9VUEJPWCAgICAgICAgIiDIrbjpIMfYu/O1tSAiLElEQ19TVEFUSUMsOCwyNDIsMjQ0LDI1CiAgICBDT05UUk9MICAgICAgICAgIiIsIElEQ19SRVNfVFJBQ0tCQVIsICJtc2N0bHNfdHJhY2tiYXIzMiIsV1NfVEFCU1RPUCwxMiwyNTAsMTg3LDE1CiAgICBFRElUVEVYVCAgICAgICAgSURDX1JFU19EUElFRElULDIwNCwyNTAsMjMsMTMsRVNfTlVNQkVSfFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiZHBpIixJRENfU1RBVElDLDIzNSwyNTIsMTAsOApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCC/wLn2tvPAzLXlICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICK1v8D7ILi1xakgtvPAzLrqt6+4rrTCILCzurDA+8C4t84gs7vA5ShXaW5lv6EgwMfH2CDBprD4KcDMs6ogs9fAzMa8uuoowKm1tb/swe6zqiDHwbfOsde3pb+hIMDHx9ggwaaw+CnAuLfOIMH2waS1ybz2IMDWvcC0z7TZLiIKICAgICAgICAgICAgICAgICAgICAsSURDX1NUQVRJQywxNiwxNiwyMjAsMzIKICAgIExURVhUICAgICAgICAgICAiu/W3ziC/wLn2tvPAzLXlx9IgtvPAzLrqt6+4rjoiLElEQ19TVEFUSUMsMTYsNTgsMTAwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRExMQ09NQk8sMTYsNjgsMTQwLDE0LENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQgfCBDQlNfTE9XRVJDQVNFCiAgICBQVVNIQlVUVE9OICAgICAgIrT1x8+x4igmQSkiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgIsf2wOcgv8C59rbzwMy15SC48bfPOiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICKw7cShseIoJkUpIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICLB9r/sseIoJlIpIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDExMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIr/Aufa288DMteUgvPbBpCIKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgt8615SC8+LytICIsSURDX1NUQVRJQyw4LDQsOTQsNjYKICAgIENPTlRST0wgICAgICAgICAis7vA5SgmQikoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis9fAzMa8uuooJk4pKFdpbikiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis7vA5Swgs9fAzMa8uuooJmwpIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis9fAzMa8uuosILO7wOUoJnYpIixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiu+e/68fPwfYgvsrAvSgmRCkiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDc1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIsiuwM4iLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLD67zSIixJRENBTkNFTCw1Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgteW288DMuuogv6yw4SAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiw9+woSgmQSkuLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsGmsMUoJlIpIixJRENfQlVUVE9OX1JFTU9WRSw1Niw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICLA2rW/IMOjseIoJkQpLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk1LDk4LDUxLDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIrDmt84oJlApOiIsSURDX1NUQVRJQywxNSwxMjMsMzAsMTAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDUwLDEyMCwxNDAsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsOjvsa6uLHiKCZCKS4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwxOTUsMTIwLDUxLDEzCiAgICAKICAgIExURVhUICAgICAgICAgICAiwb63+SgmVCk6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDMwLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNTAsMTM1LDcwLDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIrbzuqew+iC9w7iuvvMgufjIoyIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICLD37Chv8m8xyC6uMDMseIoJlMpIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxODYsMTM2LDYwLDEzCiAgICBDT05UUk9MICAgICAgICAgIsDlxKG3zrrOxc0gwNq1v7DLw+IoJmYpOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTYzLDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIsOjvsa6uLHiKCZ3KS4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDE5NSwxNzYsNTEsMTMKICAgIENPTlRST0wgICAgICAgICAivPa1v8C4t84gwfbBpCgmTSk6IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNjksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIrbzuqcoJkwpOiIsSURDX1NUQVRJQ19MQUJFTCwyNywyMDgsMzUsMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIr3DuK6+8ygmZSk6IixJRENfU1RBVElDX1NFUklBTCwyNywyMjUsMzUsMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAivPux6CDGxMDPKC7AuLfOIL3DwNvHz7TCIMbEwM8pILq4v6nB1rHiIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOApFTkQKCklERF9BVURJT0NGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgteW288DMufYgvLHFwyAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiv/jHz7TCILXltvPAzLn2wMcgudq9urimIMO8xanHz7+pILvnv+615SC15bbzwMy59rimILyxxcPH1bTPtNkuIL7utrIgteW288DMufa1tSC8scXDx8/B9iC+ysC4uOkgu+e/7rXlsKEgx9jBprXLtM+02S4gv6m3ryC15bbzwMy59rimILyxxcPHz7TCILDNwLogw9/DtcfPwfYgvsq9wLTPtNkuILXltvPAzLn2IMCnv6G8rSC4tr/svbogv8C4pcLKILn2xrAgxay4r8fPv6kgteW288DMufa4piC8s8Gkx9W0z7TZLiIsSURDX1NUQVRJQywxNSwyMCwyMjcsNDAKICAgIENPTlRST0wgICAgICAgICAiwOXEoSIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNjAsMTYwLDEzMCAKICAgIFBVU0hCVVRUT04JICAgICLBpr7uxsciLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE4MCw2MCw2NiwxMwogICAgR1JPVVBCT1ggICAgICAgICIgtNnAzLe6xq4gu+e/7rXlICIsSURDX1NUQVRJQyw4LDIwNSwyNDQsNjAKICAgIExURVhUCSAgICAix8+15b/+vu4gsKG80zogIixJRENfU1RBVElDLDE0LDIxNiw3MCwxMAogICAgQ09NQk9CT1gJICAgIElEQ19EU09VTkRfSFdfQUNDRUwsOTAsMjEzLDE2MCwyLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICKx4rq7ILv5x8MguvHAsjoiLElEQ19TVEFUSUMsMTUsMjMyLDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDkwLDIzMCw0MiwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiu/nHw7+hILTrx9EgseK6uyC68cCyOiIsSURDX1NUQVRJQywxMzcsMjMyLDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjIwLDIzMCwzMCwxMyxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAiteW288DMufYgyOSzu7O7seIiLElEQ19EU09VTkRfRFJWX0VNVUwsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNCwyNDUsNjgsMTgKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgv9yw/CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAixde4tjoiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsXXuLYgvLPEoS4uLiIsSURDX1RIRU1FX0lOU1RBTEwsMTUyLDIzLDkzLDE0CiAgICBMVEVYVCAgICAgICAgICAgIrv2u/M6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLFqbHiOiIsSURDX1RIRU1FX1NJWkVURVhULDEzNSw0MCwxMTAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTM1LDQ4LDExMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiuPG3zzoiLElEQ19TVEFUSUMsMTUsNjQsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfU1lTUEFSQU1fQ09NQk8sMTUsNzQsMTEyLDEyMCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVAogICAgTFRFWFQgICAgICAgICAgICK79rvzOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIsWpseI6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICKx27LDIixJRENfU1lTUEFSQU1fRk9OVCwyMDgsNzQsMzcsMTMsV1NfRElTQUJMRUQKICAgIEdST1VQQk9YICAgICAgICAiIL2pIMb6tPUgIixJRENfU1RBVElDLDgsMTE0LDI0NCwxMDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX1NGUEFUSFMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDEyNiwyMzAsNjQKICAgIENPTlRST0wgICAgICAgICAiwMyw98C4t84gv6yw4ToiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICLDo7HiIixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAix8G3zrHXt6UiCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAitvPAzLrqt6+4riIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICK15bbzwMy66iIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICLAr7TQvboguPHA+yDG+rT1uKYgvLHFw8fPvcq9w7/ALiIKICAgIElEU19ISURFX0FEVkFOQ0VEICAgICAgICLD37Chv8m8xyC8+7HiseIiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiw9+wob/JvMcgurjAzLHiIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIijF17i2IL74wL0pIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIrHXt6HHyCIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAitaW9usWpxb4gvLPBpCIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICK/wLXwv8AiCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiwaS6uCIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lILyzwaQiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAiJXO4piDAp8fRIFdpbmUgvLPBpCIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICLF17i2IMbEwM8iCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAixde4tiDGxMDPILyxxcMiCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAix/bA5yC3ucH2vbrGrriuv6Egv8C18L/AILXltvPAzLn2sKEgwfbBpLXHvu4gwNbB9iC+yr3AtM+02S5cblxuw9/DtSC15bbzwMy59rChILyxxcO++r3AtM+02S5cbsDMILXltvPAzLn2uKYgu+e/68fPsMWzqiCwobTJx9EgtNm4pSC15bbzwMy59rimILyxxcPH0iC89iDA1r3AtM+02S5cblxuvLHFwyC758fXwMwgyL+w+rimILOqxbizu7HiIMCnx9i8rbTCIMD7v+sgufbGsMC7ILStt6++3yDH1bTPtNkuIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIr2pIMb6tPUiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiv6mx4r+hIL+ssOEiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICLAzCC288DMuuq3r7iuwMcgt8615SC8+LytuKYgudmy2bTCILDNwLsgw9/DtcfPwfYgvsq9wLTPtNkuLlxuwaS4u7fOILnZstm9w7DavcC0z7HuPyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICKw5rDtOiC9w726xdsgtvPAzLrqt6+4riIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICKz18DMxry66iIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICKzu8DlIgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgIrPXwMzGvLrqLCCzu8DlIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgIrO7wOUsILPXwMzGvLrqIgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgIrvnv+vHz8H2IL7KwL0iCiAgICBJRFNfREVGQVVMVF9TRVRUSU5HUyAgICAiseK6uyC8s8GkIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIldpbmUgx8G3zrHXt6UgKCouZXhlLCouZXhlLnNvKVwwKi5leGU7Ki5leGUuc29cMCIKICAgIElEU19VU0VfR0xPQkFMX1NFVFRJTkdTICLA/MO8ILyzwaQgu+e/6yIKICAgIElEU19TRUxFQ1RfRVhFQ1VUQUJMRSAgICK9x8fgIMbEwM8gvLHFwyIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1NIQURFUl9NT0RFX0hBUkRXQVJFICAgICLHz7Xlv/6+7iIKICAgIElEU19TSEFERVJfTU9ERV9OT05FICAgICAgICAivvjAvSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICBJRFNfRFJJVkVfVU5LTk9XTiAgICAgICAgICAgIsDatb/AuLfOIMOjseIiCiAgIElEU19EUklWRV9GSVhFRCAgICAgICAgICAgICAiv6yw4bXIIMfPteUgtfC9usWpIgogICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgIrPXxq6/9sWpILD4wK8iCiAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAix8O3zsfHILXwvbrFqSIKICAgSURTX0RSSVZFX0NEUk9NICAgICAgICAgICAgICJDRC1ST00iCiAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAitOe9xcC6ILT1IMDMu/MgteW288DMuuq4piDD37Chx9IgvPYgvvi9wLTPtNkuXG5cbrCiILXltvPAzLrqtMIgud215b3DIEF+WrHuwfbAxyC5rsDauKYgsKHB/bTPtNksILHXt6G8rSC0573FwLogMjaws7q4tNkgtPUguLnAzCDD37Chx9IgvPYgvvi9wLTPtNkiCiAgIElEU19TWVNURU1fRFJJVkVfTEFCRUwgICAgICAivcO9usXbILXltvPAzLrqIgogICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIrTnvcXAuiDHz7XlILXltvPAzLrqICBDuKYgwfa/7LHiuKYgv/jH1bTPse4/XG5cbrTrus660MDHIMCptbW/7CDHwbfOsde3pcC6IEO15bbzwMy66rChIMDWtNmw7SC/ubvzx8+w7SwgIL74wLi46SC02b/utcmwzcDUtM+02S4guLi+4CC0573FwMwgsOi80yDB+Mfgx8+x4rimIL/4x9G02bjpILndteW9wyC02b3DILi4teW9yr3Dv8AhIgogICBJRFNfQ09MX0RSSVZFTEVUVEVSICAgICAgICAgIrmuwNoiCiAgIElEU19DT0xfRFJJVkVNQVBQSU5HICAgICAgICAiteW288DMuuogx9K05yIKICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICK0573FwLogIEO15bbzwMy66rimILChwfaw7SDA1sH2IL7KvcC0z7TZLiDAzLDNwLogwcHAuiDAz8DMIL7GtNW0z7TZLlxuXG615bbzwMy66iDFx7+hvK0gW8PfsKFduKYgxay4r8fYvK0guLi15bTCILDNwLsgwNjB9iC4tr3KvcO/wCFcbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIsD8w7wiCiAgIElEU19BQ0NFTF9TVEFOREFSRCAgICAgICAgICAix6XB2CIKICAgSURTX0FDQ0VMX0JBU0lDICAgICAgICAgICAgICKx4rq7IgogICBJRFNfQUNDRUxfRU1VTEFUSU9OICAgICAgICAgIr7WucS3ucDMvMciCiAgIElEU19EUklWRVJfQUxTQSAgICAgICAgICAgICAiQUxTQSC15bbzwMy59iIKICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQgteW288DMufYiCiAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTILXltvPAzLn2IgogICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0sgteW288DMufYiCiAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTILXltvPAzLn2IgogICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKSC15bbzwMy59iIKICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8gteW288DMufYiCiAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAiJXO4piC/rSC89iC++L3AtM+02SEiCiAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiu+e/7rXlILXltvPAzLn2IgogICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIldhdmUgw+K3wiDA5cShIgogICBJRFNfREVWSUNFU19XQVZFSU4gICAgICAgICAgIldhdmUgwNS3wiDA5cShIgogICBJRFNfREVWSUNFU19NSURJT1VUICAgICAgICAgIk1JREkgw+K3wiDA5cShIgogICBJRFNfREVWSUNFU19NSURJSU4gICAgICAgICAgIk1JREkgwNS3wiDA5cShIgogICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIkF1eCDA5cShIgogICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgIk1peGVyIMDlxKEiCiAgIElEU19VTkFWQUlMQUJMRV9EUklWRVIgICAgICAit7nB9r26xq64rr+hvK0gsKG0ycfPwfYgvsrAuiC15bbzwMy59rChILnfsN+1x776vcC0z7TZIVxuXG4gJXO4piC3ucH2vbrGrriuv6G8rSDB9r/ssNq9wLTPse4/IgogICBJRFNfV0FSTklORyAgICAgICAgICAgICAgICAgIrDmsO0iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgSURDX1NZU1BBUkFNU19CVVRUT04gICAgICAgICAgICAixMHGrrfRILnosOYiCiAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX1RFWFQgICAgICAgIsTBxq630SC5rsDaIgogICBJRENfU1lTUEFSQU1TX0RFU0tUT1AgICAgICAgICAgICK52cXByK246SIKICAgSURDX1NZU1BBUkFNU19NRU5VICAgICAgICAgICAgICAiuN60uiC56LDmIgogICBJRENfU1lTUEFSQU1TX01FTlVfVEVYVCAgICAgICAgICK43rS6ILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfU0NST0xMQkFSICAgICAgICAgIrjxt8+52SIKICAgSURDX1NZU1BBUkFNU19TRUxFQ1RJT04gICAgICAgICAivLHFw7XIILnosOYiCiAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OX1RFWFQgICAgIryxxcO1yCC5rsDaIgogICBJRENfU1lTUEFSQU1TX1RPT0xUSVAgICAgICAgICAgICK1tbG4xsEgueiw5iIKICAgSURDX1NZU1BBUkFNU19UT09MVElQX1RFWFQgICAgICAitbWxuMbBILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfV0lORE9XICAgICAgICAgICAgIsOiILnosOYiCiAgIElEQ19TWVNQQVJBTVNfV0lORE9XX1RFWFQgICAgICAgIsOiILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFICAgICAgIsiwvLq1yCDBprjxILi3tOsiCiAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFX1RFWFQgIsiwvLq1yCDBprjxILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEUgICAgIrrxyLC8urXIIMGmuPEguLe06yIKICAgSURDX1NZU1BBUkFNU19JTkFDVElWRV9USVRMRV9URVhUICK68ciwvLq1yCDBprjxILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfTVNHQk9YX1RFWFQgICAgICAgIrjevLzB9iC788DaIMXYvbrGriIKRU5ECg==