LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogS29yZWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDIgSmFjbyBHcmVlZmYKICogQ29weXJpZ2h0IDIwMDMgRGltaXRyaWUgTy4gUGF1bgogKiBDb3B5cmlnaHQgMjAwMy0yMDA0IE1pa2UgSGVhcm4KICogQ29weXJpZ2h0IDIwMDUsMjAwNiwyMDA3IFl1blNvbmcgSHdhbmcKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19LT1JFQU4sIFNVQkxBTkdfTkVVVFJBTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAivLPBpCIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAogICAgTFRFWFQgICAgICAgICAgICLAzCC288DMuuq3r7iutMIgwNrAryC80sfBxq6//r7uwNS0z7TZLiC0573FwLogwNrAryC80sfBxq6//r7uIMDntNwoRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uKb+hvK0guLi15yBHTlUgTEdQTChMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSkgvsa3ob+hvK0gwMwgx8G3zrHXt6XAuyDA57noxvcgtse0wiC89sGkx9IgvPYgwNa9wLTPtNkuILbzwMy8vr26wMcgufbA/MC6IDIuMSC2x7TCICi8scXDwPvAuLfOKSCx1yDAzMjEILn2wPzAuyC1+7ijuOkgtcu0z7TZLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksNDQsMTI0LDcyCkVORAoKSUREX0FQUENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgx8G3zrHXt6UgvLPBpCAiLElEQ19TVEFUSUMsIDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIldpbmXAuiCworCiwMcgx8G3zrHXt6W/oSC068fYvK0gtNm4pSC59sD8wMcgwKm1tb/swe64piDI5LO7s74gvPYgwNa9wLTPtNkuIMDMIMXHwLogtvPAzLrqt6+4riwgsde3ocfIIMXHtemw+iC/rLDhtce+7iDA1r7uvK0gwMwgxce16bD6IMfUsrIgvcO9usXbIMD8w7wgtse0wiDHwbfOsde3pbqwILyzwaTAuyC52bLcILz2IMDWvcC0z7TZLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAix8G3zrHXt6UiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OCSAgICAix8G3zrHXt6Ugw9+wocfPseIoJkEpLi4uIixJRENfQVBQX0FEREFQUCwgOTAsMjA0LDc1LDE0CiAgICBQVVNIQlVUVE9OCSAgICAix8G3zrHXt6UgwaawxcfPseIoJlIpIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICLAqbW1v+zB7iC59sGvKCZXKToiLElEQ19TVEFUSUMsMTYsMjI3LDc1LDE0CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIMOiILyzwaQgIixJRENfU1RBVElDLDgsNCwyNDQsMTgwCgogICAgQ09OVFJPTAkgICAgIkRpcmVjdFggx8G3zrHXt6W16cDMILi2v+y9uiDEv7ytuKYgsde16cDHIMOivsi/oSDA4r7Gtc6w1CDH1CgmTSkiLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTQsMjMwLDgKICAgIExURVhUIAkgICAgIldpbmXDorXpwMwgw6Kw/LiuwNq/oSDAx8fYvK0gsPy4rrXItNm46SwgV2luZcOitenAuiDHpcHYIMOixrLAuyCwocH6ILDNwMy45ywgwNu+97D4sKMgsPy4rsDav80gwN8gvu6/77ixILDNwNS0z7TZLiCx17iusO0gw6K48bfPv6G1tSCzqsW4s68gsM3A1LTPtNkuXG5cbri4vuC/oSBXaW5lw6K16cDMIMOisPy4rsDav6EgwMfH2CCw/LiutcfB9iC+yrTCtNm46SwgV2luZcOitenAuiDDorD8uK7A2r/NIL+ssOG1x8H2IL7KwLsgsM3A1LTPtNkuIMDMsM3AuiBXaW5lw6K16cDMILWlvbrFqcW+sPogudDBosfPsNQgxevH1bXHwfYgvsq0wrTZtMIgsM3AuyDAx7nMx9W0z7TZLiDHz8H2uLggV2luZcDHIMCptbW/7MHuIMjks7uzu7HisKEgtPUgwaS50MfYwa68rSC47rjuIMfBt86x17eltenAzCDBuyC09SDA3yC1v8Dbx9IgvPYgwNa1tbfPILW1v83B3bTPtNkuIiwKICAgIAkJICAgIElEQ19TVEFUSUMsMTUsMzcsMjI4LDgwCiAgICBDT05UUk9MCSAgICAiw6Kw/LiuwNqwoSBXaW5lw6LAuyCw/Liux8+1tbfPIMfUKCZXKSIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTExLDIzMCw4CiAgICBMVEVYVCAgICAgICAgICAgIrTnvcXAuiC48LXnIMCptbW/7MHuIMfBt86x17elwMwgsKG787WlvbrFqcW+v6G8rSC1v8DPx9Egx+C1v8C7IMfPsNQgx9IgsM3AzsH2LCC8rbfOILTZuKUgx+C1v8C7IMfPsNQgx9IgsM3AzsH2ILyxxcPH0iC89iDA1r3AtM+02S4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMTI1LDIyOCwyOAogICAKICAgIExURVhUICAgICAgICAgICAitaW9usWpxb4gxamx4igmUyk6IixJRENfREVTS1RPUF9TSVpFLDE1LDE2Nyw0NCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOCwxNjcsOCw4LFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIrChu/MgtaW9usWpxb4gyOSzu7O7seIoJkQpIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxNTIsMjMwLDEwCgkJICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDE2Nyw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNywxNjcsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICAgICAiILTZwMy3usauIDNEICIsSURDX1NUQVRJQyw4LDE4OSwyNDQsNTAKCiAgICBMVEVYVAkgICAgIrn2xdi9uiC9psDMtPUgwfa/+CgmVik6ICIsSURDX1NUQVRJQywxNSwxOTksODAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfRDNEX1ZTSEFERVJfTU9ERSwxMDAsMTk3LDE0Niw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIsfIvL8gvabAzLT1IMfjv+sgKMfPteW//r7uv6G8rSDB9r/4x9G02bjpKSgmUCkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjE2LDIzMCwxMAogICAgR1JPVVBCT1ggICAgICAgICIgyK246SDH2LvztbUgIixJRENfU1RBVElDLDgsMjQyLDI0NCwyNQogICAgQ09OVFJPTCAgICAgICAgICIiLCBJRENfUkVTX1RSQUNLQkFSLCAibXNjdGxzX3RyYWNrYmFyMzIiLFdTX1RBQlNUT1AsMTIsMjUwLDE4NywxNQogICAgRURJVFRFWFQgICAgICAgIElEQ19SRVNfRFBJRURJVCwyMDQsMjUwLDIzLDEzLEVTX05VTUJFUnxXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgImRwaSIsSURDX1NUQVRJQywyMzUsMjUyLDEwLDgKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBETEwgv8C59rbzwMy15SAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAitb/A+yC4tcWpILbzwMy66revuK60wiCws7qwwPvAuLfOILO7wOUoV2luZb+hIMDHx9ggwaaw+CnAzLOqILPXwMzGvLrqKMCptbW/7MHus6ogx8G3zrHXt6W/oSDAx8fYIMGmsPgpwLi3ziDB9sGktcm89iDA1r3AtM+02S4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIrv1t84gv8C59rbzwMy15cfSILbzwMy66revuK4oJk4pOiIsSURDX1NUQVRJQywxNiw1OCwxMDgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAitPXHz7HiKCZBKSIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAix/bA5yC/wLn2tvPAzLXlILjxt88oJk8pOiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICKw7cShseIoJkUpIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICLB9r/sseIoJlIpIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDExMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIr/Aufa288DMteUgvPbBpCIKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgt8615SC8+LytICIsSURDX1NUQVRJQyw4LDQsOTQsNjYKICAgIENPTlRST0wgICAgICAgICAis7vA5SgmQikoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis9fAzMa8uuooJk4pKFdpbikiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis7vA5Swgs9fAzMa8uuooJmwpIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis9fAzMa8uuosILO7wOUoJnYpIixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiu+e/68fPwfYgvsrAvSgmRCkiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDc1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIsiuwM4iLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLD67zSIixJRENBTkNFTCw1Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgteW288DMuuogv6yw4SgmTSkgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIrjxt8+6uLHiIixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIsPfsKEoJkEpLi4uIixJRENfQlVUVE9OX0FERCwxNSw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICLBprDFKCZSKSIsSURDX0JVVFRPTl9SRU1PVkUsNTYsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiwNq1vyDDo7HiKCZEKS4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5NSw5OCw1MSwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICKw5rfOKCZQKToiLElEQ19TVEFUSUMsMTUsMTIzLDMwLDEwICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw1MCwxMjAsMTQwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICLDo77Gurix4igmQikuLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMTk1LDEyMCw1MSwxMwogICAgCiAgICBMVEVYVCAgICAgICAgICAgIsG+t/koJlQpOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwzMCwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDUwLDEzNSw3MCw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICK287qnsPogvcO4rr7zILn4yKMiLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDk1LDEwCiAgICAKICAgIFBVU0hCVVRUT04gICAgICAiw9+wob/JvMcgurjAzLHiKCZBKSIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTg2LDEzNiw2MywxMwogICAgQ09OVFJPTCAgICAgICAgICLA5cSht866zsXNIMDatb+wy8PiKCZmKToiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxNjYsOTMsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMjcsMTc2LDE2MywxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICLDo77Gurix4igmdykuLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwxOTUsMTc2LDUxLDEzCiAgICBDT05UUk9MICAgICAgICAgIrz2tb/AuLfOIMH2waQoJk0pOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDY5LDEwCgogICAgTFRFWFQgICAgICAgICAgICK287qnKCZMKToiLElEQ19TVEFUSUNfTEFCRUwsMjcsMjA4LDM1LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNjMsMjA1LDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICK9w7iuvvMoJmUpOiIsSURDX1NUQVRJQ19TRVJJQUwsMjcsMjI1LDM1LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDYzLDIyMSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIrz7seggxsTAzyguwLi3ziC9w8Dbx8+0wiDGxMDPKSC6uL+pwdax4igmRCkiLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiC15bbzwMy59iC8scXDICIsSURDX1NUQVRJQyw4LDQsMjQ0LDE5NQogICAgTFRFWFQgICAgICAgICAgICK/+MfPtMIgteW288DMufbAxyC52r26uKYgw7zFqcfPv6kgu+e/7rXlILXltvPAzLn2uKYgvLHFw8fVtM+02S4gvu62siC15bbzwMy59rW1ILyxxcPHz8H2IL7KwLi46SC757/uteWwoSDH2MGmtcu0z7TZLiC/qbevILXltvPAzLn2uKYgvLHFw8fPtMIgsM3AuiDD38O1x8/B9iC+yr3AtM+02S4gteW288DMufYgwKe/obytILi2v+y9uiC/wLilwsogufbGsCDFrLivx8+/qSC15bbzwMy59rimILyzwaTH1bTPtNkuIixJRENfU1RBVElDLDE1LDIwLDIyNywzMwogICAgQ09OVFJPTCAgICAgICAgICLA5cShIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw1NiwxNDAsMTM0CiAgICBQVVNIQlVUVE9OICAgICAgIrzSuK4gxde9usauKCZUKSIsSURDX0FVRElPX1RFU1QsMTcwLDU3LDU5LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiwaa+7sbHKCZDKSIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDc3LDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiC02cDMt7rGriC757/uteUgIixJRENfU1RBVElDLDgsMjA1LDI0NCw2MAogICAgTFRFWFQJICAgICLHz7Xlv/6+7iCwobzTKCZIKTogIixJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1gJICAgIElEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDIxMywxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIrHiursgu/nHwyC68cCyKCZTKToiLElEQ19TVEFUSUMsMTUsMjMyLDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDkwLDIzMCw0Miw3NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiu/nHw7+hILTrx9EgseK6uyC68cCyKCZCKToiLElEQ19TVEFUSUMsMTM3LDIzMiw4MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMCwyMzAsMzAsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAiteW288DMufYgyOSzu7O7seIoJkUpIixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjUwLDIzMCwxMApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiC/3LD8ICIsSURDX1NUQVRJQyw4LDQsMjQ0LDEwNgogICAgTFRFWFQgICAgICAgICAgICLF17i2KCZUKToiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsXXuLYgvLPEoSgmSSkuLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwyMyw5MywxNAogICAgTFRFWFQgICAgICAgICAgICK79rvzKCZDKToiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNDAsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTywxNSw0OCwxMTIsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIsWpseIoJlMpOiIsSURDX1RIRU1FX1NJWkVURVhULDEzNSw0MCwxMTAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTM1LDQ4LDExMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiuPG3zygmRSk6IixJRENfU1RBVElDLDE1LDY0LDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1NZU1BBUkFNX0NPTUJPLDE1LDc0LDExMiwxMjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQKICAgIExURVhUICAgICAgICAgICAiu/a78ygmTyk6IixJRENfU1lTUEFSQU1fQ09MT1JfVEVYVCwxMzUsNjQsMjUsOCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICIiLElEQ19TWVNQQVJBTV9DT0xPUiwxMzUsNzQsMjUsMTMsV1NfRElTQUJMRUQgfCBCU19PV05FUkRSQVcKICAgIExURVhUICAgICAgICAgICAixamx4igmWik6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICKx27LDKCZGKSIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiC9qSDG+rT1KCZIKSAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICK48bfPurix4iIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICLAzLD3wLi3ziC/rLDhKCZMKToiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICLDo7HiKCZSKSIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfV0lORV9WRVJTSU9OICAgICAgICAiQ1ZTIgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIsfBt86x17elIgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIrbzwMy66revuK4iCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiteW288DMuuoiCiAgICBJRFNfQ0hPT1NFX1BBVEggICAgICAgICAiwK+00L26ILjxwPsgxvq09bimILyxxcPHz73KvcO/wC4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiw9+wob/JvMcgvPux4rHiKCZBKSIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICLD37Chv8m8xyC6uMDMseIoJkEpIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIijF17i2IL74wL0pIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIrHXt6HHyCIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAitaW9usWpxb4gvLPBpCIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICK/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==