LyoKICogQ29weXJpZ2h0IDE5OTYgQmFuZyBKdW4gWW91bmcKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKLyoKICogV0FSTklORzogRE8gTk9UIENIQU5HRSBUSEUgU0laRSBPRiBUSEUgU1RBTkRBUkQgRElBTE9HIFRFTVBMQVRFUy4KICovCgpMQU5HVUFHRSBMQU5HX0tPUkVBTiwgU1VCTEFOR19ERUZBVUxUCgpPUEVOX0ZJTEUgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNzUsIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICK/rbHiIgpGT05UIDksICJIZWx2Igp7CiBMVEVYVCAixsTAzyDAzLinKCZOKToiLCAxMDkwLCA2LCA2LCA3NiwgOQogRURJVFRFWFQgMTE1MiwgNiwgMTYsIDkwLCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBFU19PRU1DT05WRVJUIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogTElTVEJPWCAxMTIwLCA2LCAzMiwgOTAsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAitfC3usXkuK4oJkQpOiIsIC0xLCAxMTAsIDYsIDkyLCA5CiBMVEVYVCAiIiwgMTA4OCwgMTEwLCAxOCwgOTIsIDksIFNTX05PUFJFRklYIHwgV1NfR1JPVVAKIExJU1RCT1ggMTEyMSwgMTEwLCAzMiwgOTIsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAixsTAzyDH/L3EKCZUKToiLCAxMDg5LCA2LCAxMDQsIDkwLCA5CiBDT01CT0JPWCAxMTM2LCA2LCAxMTQsIDkwLCAzNiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiteW288DMuuooJlYpOiIsIDEwOTEsIDExMCwgMTA0LCA5MiwgOQogQ09NQk9CT1ggMTEzNywgMTEwLCAxMTQsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiv62x4iIsIElET0ssIDIwOCwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLD67zSIiwgSURDQU5DRUwsIDIwOCwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICK1tb/yuLsoJkgpIiwgMTAzOCwgMjA4LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICLA0LHiIMD8v+soJlIpIiwgMTA0MCwgMjA4LCA2OCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClNBVkVfRklMRSBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI3NSwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIrTZuKUgwMy4p8C4t84gwPrA5SAuLi4iCkZPTlQgOSwgIkhlbHYiCnsKIExURVhUICLGxMDPIMDMuKcoJk4pOiIsIDEwOTAsIDYsIDYsIDc2LCA5CiBFRElUVEVYVCAxMTUyLCA2LCAxNiwgOTAsIDEyLCBFU19BVVRPSFNDUk9MTCB8IEVTX09FTUNPTlZFUlQgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiBMSVNUQk9YIDExMjAsIDYsIDMyLCA5MCwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICK18Le6xeS4rigmRCk6IiwgLTEsIDExMCwgNiwgOTIsIDkKIExURVhUICIiLCAxMDg4LCAxMTAsIDE4LCA5MiwgOSwgU1NfTk9QUkVGSVggfCBXU19HUk9VUAogTElTVEJPWCAxMTIxLCAxMTAsIDMyLCA5MiwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICLGxMDPIMf8vcQoJlQpOiIsIDEwODksIDYsIDEwNCwgOTAsIDkKIENPTUJPQk9YIDExMzYsIDYsIDExNCwgOTAsIDM2LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICK15bbzwMy66igmVik6IiwgMTA5MSwgMTEwLCAxMDQsIDkyLCA5CiBDT01CT0JPWCAxMTM3LCAxMTAsIDExNCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICLA+sDlIiwgSURPSywgMjA4LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsPrvNIiLCBJRENBTkNFTCwgMjA4LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIrW1v/K4uygmSCkiLCAxMDM4LCAyMDgsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIsDQseIgwPy/6ygmUikiLCAxMDQwLCAyMDgsIDY4LCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKUFJJTlQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNjQsIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLAzrziIgpGT05UIDksICJIZWx2Igp7CiBMVEVYVCAiwM684rHiOiIsIDEwODgsIDYsIDYsIDQwLCA5CiBMVEVYVCAiIiwgMTA4OSwgNjAsIDYsIDE1MCwgOQogR1JPVVBCT1ggIsDOvOIgufzApyIsIDEwNzIsIDYsIDMwLCAxNjAsIDY1LCBCU19HUk9VUEJPWAogUkFESU9CVVRUT04gIrjwtc4oJkEpIiwgMTA1NiwgMTYsIDQ1LCA2MCwgMTIKIFJBRElPQlVUVE9OICK8scXDKCZFKSIsIDEwNTcsIDE2LCA2MCwgNjAsIDEyCiBSQURJT0JVVFRPTiAiwsooJlApIiwgMTA1OCwgMTYsIDc1LCA2MCwgMTIKIERFRlBVU0hCVVRUT04gIsDOvOIiLCBJRE9LLCAyMDYsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiw+u80iIsIElEQ0FOQ0VMLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAivLPBpCgmUykiLCAxMDI0LCAyMDYsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIr3DwNsoJkYpOiIsIDEwOTAsIDYwLCA4MCwgMzAsIDkKIExURVhUICKzoSgmVCk6IiwgMTA5MSwgMTIwLCA4MCwgMzAsIDkKIExURVhUICLAzrziIMewwfooJlEpOiIsIDEwOTIsIDYsIDEwMCwgNzYsIDkKIENPTUJPQk9YIDExMzYsIDgwLCAxMDAsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIsbEwM+3ziDAzrziKCZMKSIsIDEwNDAsIDIwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ29uZGVuc2VkIiwgMTA0MSwgMTYwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpQUklOVF9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI2NCwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsDOvOIgvLPBpCIKRk9OVCA5LCAiSGVsdiIKewogR1JPVVBCT1ggIsDOvOKx4iIsIDEwNzIsIDYsIDEwLCAxODAsIDY1LCBCU19HUk9VUEJPWAogUkFESU9CVVRUT04gIrHiursgwM684rHiKCZEKSIsIDEwNTYsIDE2LCAyMCwgODAsIDEyCiBMVEVYVCAiW774wL1dIiwgMTA4OCwgMzUsIDM1LCAxMjAsIDkKIFJBRElPQlVUVE9OICLB9sGktcggwM684rHiKCZQKSIsIDEwNTcsIDE2LCA1MCwgODAsIDEyCiBDT01CT0JPWCAxMTM2LCAzNSwgNjUsIDE0OSwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIsiuwM4iLCBJRE9LLCAyMDYsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiw+u80iIsIElEQ0FOQ0VMLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAivLPBpCgmUykiLCAxMDI0LCAyMDYsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogR1JPVVBCT1ggIrnmx+IiLCAxMDczLCA2LCA4NSwgMTAwLCA1MCwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICK8vLfOKCZSKSIsIDEwNTgsIDUwLCAxMDAsIDQwLCAxMgogUkFESU9CVVRUT04gIrCht84oJkwpIiwgMTA1OSwgNTAsIDExNSwgNDAsIDEyCiBJQ09OICJMQU5EU0NBUCIsIDEwOTcsIDEwLCA5NSwgMzIsIDMyCiBJQ09OICJQT1JUUkFJVCIsIDEwOTgsIDEwLCA5NSwgMzIsIDMyCiBHUk9VUEJPWCAiwb7AzCIsIDEwNzQsIDEyMCwgODUsIDE4MCwgNTAsIEJTX0dST1VQQk9YCiBMVEVYVCAixamx4igmWikiLCAxMDg5LCAxMzAsIDk1LCAzMCwgOQogTFRFWFQgIrnmvcQoJlMpIiwgMTA5MCwgMTMwLCAxMTAsIDMwLCA5CiBDT01CT0JPWCAxMTM3LCAxNTUsIDk1LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIENPTUJPQk9YIDExMzgsIDE1NSwgMTEwLCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKfQoKUFJJTlQzMiBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE4NgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICJQcmludCIKRk9OVCA5LCAiSGVsdiIKewogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsICAgICBJRE9LLCAgICAgMTgwLDE2NCwgNDgsMTQsIFdTX0dST1VQIHwgQlNfREVGUFVTSEJVVFRPTgogICAgUFVTSEJVVFRPTiAgICAgICJDYW5jZWwiLCBJRENBTkNFTCwgMjMyLDE2NCwgNDgsMTQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIiZIZWxwIiwgIHBzaEhlbHAsICA1MCwgMTYxLCA0OCwxNCwgV1NfR1JPVVAKCiAgICBHUk9VUEJPWCAgICAgICAgIlByaW50ZXIiLCAgICAgICAgZ3JwNCwgICA4LCAgNCwgMjcyLDg0LCBXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICJQcmludCB0byBmaSZsZSIsIGNoeDEsICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwyMTIsNzAsNjQsMTIKICAgIFBVU0hCVVRUT04gICAgICAiJlByb3BlcnRpZXMiLCAgICBwc2gyLCAyMTIsIDE3LCAgNjAsMTQsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZOYW1lOiIsICAgICAgICAgc3RjNiwgIDE2LCAyMCwgIDM2LDgKICAgIENPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICBjbWI0LCAgNTIsIDE4LCAxNTIsMTUyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiU3RhdHVzOiIsICAgICAgICBzdGM4LCAgMTYsIDM2LCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFN0YXRlIiwgICAgc3RjMTIsIDUyLCAzNiwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgIlR5cGU6IiwgICAgICAgICAgc3RjNywgIDE2LCA0OCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBUeXBlIiwgICAgIHN0YzExLCA1MiwgNDgsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJXaGVyZToiLCAgICAgICAgIHN0YzEwLCAxNiwgNjAsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgTG9jYXRpb24iLCBzdGMxNCwgNTIsIDYwLCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAiQ29tbWVudDoiLCAgICAgICBzdGM5LCAgMTYsIDcyLCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFJlbWFyayIsICAgc3RjMTMsIDUyLCA3MiwgMTUyLDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1ggICAgICAgICJDb3BpZXMiLCAgICAgICAgIGdycDIsIDE2MCwgOTIsIDEyMCw2NCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiTnVtYmVyIG9mICZjb3BpZXM6IixzdGM1LDE2OCwxMDgsNjgsOAogICAgSUNPTiAgICAgICAgICAgICIiLCAgICAgICAgICAgICAgIGljbzMsIDE2MiwxMjQsICA3NiwyNCwgV1NfR1JPVVAgfCBTU19DRU5URVJJTUFHRQogICAgQ09OVFJPTCAgICAgICAgICJDJm9sbGF0ZSIsICAgICAgIGNoeDIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDI0MCwxMzAsMzYsMTIKICAgIEVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICBlZHQzLCAyNDAsMTA2LCAgMzIsMTIsIFdTX0dST1VQIHwgRVNfTlVNQkVSCgogICAgR1JPVVBCT1ggICAgICAgICJQcmludCByYW5nZSIsICAgIGdycDEsICAgOCw5MiwgIDE0NCw2NCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiJkFsbCIsICAgICAgICAgICByYWQxLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwxMDYsNjQsMTIKICAgIENPTlRST0wgICAgICAgICAiUGEmZ2VzIiwgICAgICAgICByYWQzLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMjIsMzYsMTIKICAgIENPTlRST0wgICAgICAgICAiJlNlbGVjdGlvbiIsICAgICByYWQyLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzgsNjQsMTIKICAgIEVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICBlZHQxLCAgNzQsMTIyLCAgMjYsMTIsIFdTX0dST1VQIHwgRVNfTlVNQkVSCiAgICBFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgZWR0MiwgMTE4LDEyMiwgIDI2LDEyLCBXU19HUk9VUCB8IEVTX05VTUJFUgogICAgUlRFWFQgICAgICAgICAgICImZnJvbToiLCAgICAgICAgIHN0YzIsICA1MiwxMjQsICAyMCw4CiAgICBSVEVYVCAgICAgICAgICAgIiZ0bzoiLCAgICAgICAgICAgc3RjMywgMTAwLDEyNCwgIDE2LDgKfQoKUFJJTlQzMl9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE3OApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICJQcmludCBTZXR1cCIKRk9OVCA5LCAiSGVsdiIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTgwLDE1Niw0OCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJDYW5jZWwiLElEQ0FOQ0VMLDIzMiwxNTYsNDgsMTQKLyogICAgUFVTSEJVVFRPTiAgICAgICJOZXR3b3JrLi4uIiwgcHNoNSwgMjg0LDE1Niw0OCwxNCAqLwoKICAgIEdST1VQQk9YICAgICAgICAiUHJpbnRlciIsICAgICAgICBncnA0LCAgIDgsICA0LCAyNzIsODQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIiZQcm9wZXJ0aWVzIiwgICAgcHNoMiwgMjEyLCAxNywgIDYwLDE0LCBXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImTmFtZToiLCAgICAgICAgIHN0YzYsICAxNiwgMjAsICAzNiw4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgY21iMSwgIDUyLCAxOCwgMTUyLDE1MixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlN0YXR1czoiLCAgICAgICAgc3RjOCwgIDE2LCAzNiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBTdGF0ZSIsICAgIHN0YzEyLCA1MiwgMzYsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJUeXBlOiIsICAgICAgICAgIHN0YzcsICAxNiwgNDgsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgVHlwZSIsICAgICBzdGMxMSwgNTIsIDQ4LCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAiV2hlcmU6IiwgICAgICAgICBzdGMxMCwgMTYsIDYwLCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IExvY2F0aW9uIiwgc3RjMTQsIDUyLCA2MCwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgIkNvbW1lbnQ6IiwgICAgICAgc3RjOSwgIDE2LCA3MiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBSZW1hcmsiLCAgIHN0YzEzLCA1MiwgNzIsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAoKICAgIEdST1VQQk9YICAgICAgICAiUGFwZXIiLCAgICAgICAgICBncnAyLCAgIDgsIDkyLCAxNjQsNTYsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIlNpJnplOiIsICAgICAgICAgc3RjMiwgIDE2LDEwOCwgIDM2LCA4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgY21iMiwgIDUyLDEwNiwgMTEyLDExMixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZTb3VyY2U6IiwgICAgICAgc3RjMywgIDE2LDEyOCwgIDM2LCA4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgY21iMywgIDUyLDEyNiwgMTEyLDExMixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCgogICAgR1JPVVBCT1ggICAgICAgICJPcmllbnRhdGlvbiIsICAgIGdycDEsIDE4MCwgOTIsIDEwMCw1NiwgV1NfR1JPVVAKICAgIElDT04gICAgICAgICAgICAiIiwgICAgICAgICAgICAgICBpY28xLCAxOTUsMTEyLCAgMTgsMjAsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIlAmb3J0cmFpdCIsICAgICAgcmFkMSwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8V1NfVEFCU1RPUCwyMjQsMTA2LDUyLDEyCiAgICBDT05UUk9MICAgICAgICAgIkwmYW5kc2NhcGUiLCAgICAgcmFkMiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMjI0LDEyNiw1MiwxMgpFTkQKCgpDSE9PU0VfRk9OVCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI2NCwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIrHbwNrDvCIKRk9OVCA5LCAiSGVsdiIKewogTFRFWFQgIrHbwNrDvDoiLCAxMDg4LCA2LCA2LCA0MCwgOQogTFRFWFQgIiIsIDEwODksIDYwLCA2LCAxNTAsIDkKIERFRlBVU0hCVVRUT04gIsiuwM4iLCBJRE9LLCAyMDYsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiw+u80iIsIElEQ0FOQ0VMLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKQ0hPT1NFX0NPTE9SIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMzAwLCAxODUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiu/YiCkZPTlQgOSwgIkhlbHYiCnsKIExURVhUICKx4rq7u/YoJkIpOiIsICAgMTA4OCwgNCwgICAgNCwgIDE0MCwgMTAKIExURVhUICK757/rwNq79igmQyk6IiwgIDEwODksIDQsICAgMTA2LCAxNDAsIDEwCiBMVEVYVCAiyKW79iB8ICC03Lv2KCZpKSIsICAxMDkwLCAxNTAsIDE1MSwgIDQ4LCAxMAogTFRFWFQJICK7obCtKCZSKToiLCA3MjYgLyoxMDk0Ki8sMjQ5LDEyNiwyNCwxMAogRURJVFRFWFQgNzA2LCAyNzUsMTI0LDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUCSAiw8q3zygmRyk6Iiw3MjcvKjEwOTUqLywyNDksMTQwLDI0LDEwCiBFRElUVEVYVCA3MDcsIDI3NSwxMzgsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQJICLGxLb7KCZCKToiLDcyOCAvKjEwOTYqLywyNDksMTU0LDI0LDEwCiBFRElUVEVYVCA3MDgsIDI3NSwxNTIsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQJIrv2u/MoJkgpOiIgLDcyMyAvKjEwOTEqLywyMDIsMTI2LDIyLDEwCiBFRElUVEVYVCA3MDMsIDIyNiwxMjQsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQJIsOktbUoJlMpOiIgLDcyNCAvKjEwOTIqLywyMDIsMTQwLDIyLDEwCiBFRElUVEVYVCA3MDQsIDIyNiwxMzgsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQJIrjttbUoJkwpOiIgLDcyNSAvKjEwOTMqLywyMDIsMTU0LDIyLDEwCiBFRElUVEVYVCA3MDUsIDIyNiwxNTIsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ09OVFJPTCAiIiAsNzIwLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTQsMTQwLDg2CiBDT05UUk9MICIiICw3MjEsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsNCwxMTYsMTQwLDI4CiBDT05UUk9MICIiICw3MTAsIlNUQVRJQyIsV1NfQk9SREVSfFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsNCwxMTgsMTE2CiBDT05UUk9MICIiICw3MDIsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDI3OCw0LDgsMTE2CiBDT05UUk9MICIiICw3MDksIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDE1MiwxMjQsNDAsMjYKIERFRlBVU0hCVVRUT04gIsiuwM4iLCAgSURPSywgIDQsIDE2NiwgNDQsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLD67zSIiwgSURDQU5DRUwsIDUyLCAxNjYsIDQ0LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICK1tb/yuLsiLCAxMDM4LDEwMCwxNjYsIDQ0LCAxNAogUFVTSEJVVFRPTiAiu+e/68Dau/a/oSDD37ChKCZBKSIsICAgIDcxMi8qMTAyNCovLCAxNTIsIDE2NiwgMTQyLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICK757/rwNq79iDBpMDHKCZEKSA+PiIsIDcxOS8qMTAyNSovLCAgIDQsIDE1MCwgMTQyLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICAiJmkiLDcxMywzMDAsMjAwLDQsMTQgICAvKiBqdXN0IGEgZHVtbXk6ICAnaScgaXMgIGxpa2UgICZpICBpbiAic29sJmlkIiAgKi8KfQoKCkZJTkRETEdPUkQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyODAsIDYyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsOjseIiCkZPTlQgOSwgIkhlbHYiCnsKIExURVhUICLDo8C7ILmuwNq/rSgmTik6IiwgLTEsIDQsIDgsIDUwLCA4CiBFRElUVEVYVCAxMTUyLCA2MCwgNywgMTI4LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICK03L7uuLgoJlcpIiwgMTA0MCwgNCwgMjYsIDEwMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIrTrL7zSua7A2iC51yDA/MDaL7ndwNogsbi60CgmQykiLCAxMDQxLCA0LCAzOCwgMTEyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogR1JPVVBCT1ggIsOjwLsguebH4iIsIDEwNzIsIDEyMCwgMjYsIDkwLCAyOAogQ09OVFJPTCAiwKe3zigmVSkiLCAxMDU2LCAiQlVUVE9OIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAxMjUsIDM4LCA0MCwgMTIKIENPTlRST0wgIr7Gt6G3zigmRCkiLCAxMDU3LCAiQlVUVE9OIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUCwgMTY0LCAzOCwgNDUsIDEyCiBERUZQVVNIQlVUVE9OICK02cC9IMOjseIoJkYpIiwgSURPSywgMjIwLCA1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiw+u80iIsIElEQ0FOQ0VMLCAyMjAsIDIzLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAitbW/8ri7KCZIKSIsIDEwMzgsIDIyMCwgNDUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpSRVBMQUNFRExHT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjMwLCA5NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICK52bLZseIiCkZPTlQgOSwgIkhlbHYiCnsKIExURVhUICLDo8C7ILmuwNq/rSgmTik6IiwgLTEsIDQsIDksIDQ4LCA4CiBFRElUVEVYVCAxMTUyLCA1NCwgNywgMTE0LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICK52bLcILmuwNq/rSgmUCk6IiwgLTEsIDQsIDI2LCA0OCwgOAogRURJVFRFWFQgMTE1MywgNTQsIDI0LCAxMTQsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIrTcvu64uCgmVykiLCAxMDQwLCA1LCA0NiwgMTA0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAitOu80rmuwNogsbi6sCgmQykiLCAxMDQxLCA1LCA2MiwgNTksIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICK02cC9IMOjseIoJkYpIiwgSURPSywgMTc0LCA0LCA1MCwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIrnZstmx4igmUikiLCAxMDI0LCAxNzQsIDIxLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiuPC1ziC52bLZseIoJkEpIiwgMTAyNSwgMTc0LCAzOCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsPrvNIiLCBJRENBTkNFTCwgMTc0LCA1NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIrW1v/K4uygmSCkiLCAxMDM4LCAxNzQsIDc1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgpORVdGSUxFT1BFTk9SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDE2NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19WSVNJQkxFIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IFdTX0NMSVBDSElMRFJFTgpDQVBUSU9OICK/rbHiIgpGT05UIDksICJIZWx2Igp7CiAgICBMVEVYVCAgICAgICAiwKfEoSgmSSkiLElEQ19MT09LSU5TVEFUSUMsNCw2LDQzLDgsIFNTX05PVElGWQogICAgQ09NQk9CT1ggICAgSURDX0xPT0tJTiw0OSwzLDEzMiwxMDAsQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBMVEVYVCAgICAgICAiIiAsIElEQ19UT09MQkFSU1RBVElDLCAxODEsIDIsIDEwMiwgMTcsIE5PVCBXU19HUk9VUCB8IE5PVCBXU19WSVNJQkxFCiAgICBMSVNUQk9YICAgICBJRENfU0hFTExTVEFUSUMsNCwyMCwyNzIsODUsIExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBMQlNfTVVMVElDT0xVTU4gfCBXU19IU0NST0xMIHwgTk9UIFdTX1ZJU0lCTEUgCgogICAgTFRFWFQgICAgICAgIsbEwM8gwMy4pygmTik6IixJRENfRklMRU5BTUVTVEFUSUMsNSwxMTIsNDYsOCwgU1NfTk9USUZZCiAgICBFRElUVEVYVCAgICBJRENfRklMRU5BTUUsNTQsMTEwLDE1NSwxMixFU19BVVRPSFNDUk9MTAoKICAgIExURVhUICAgICAgICLGxMDPIMf8vcQoJlQpOiIsSURDX0ZJTEVUWVBFU1RBVElDLDUsMTI4LDQyLDgsIFNTX05PVElGWQogICAgQ09NQk9CT1ggICAgSURDX0ZJTEVUWVBFLDU0LDEyNiwxNTUsNTMsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgIsDQseIgwPy/6ygmUikiLElEQ19PUEVOUkVBRE9OTFksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw1NCwxNDUsMTAwLDEwCgogICAgREVGUFVTSEJVVFRPTiAgICAgICAiv62x4igmTykiLCAgICAgICAgICAgICAgICAgSURPSywyMjIsMTEwLDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgICAgICLD67zSIiwgICAgICAgICAgICAgICAgSURDQU5DRUwsMjIyLDEyOCw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICAgICAitbW/8ri7KCZIKSIsICAgICAgICAgICAgICAgICBwc2hIZWxwLDIyMiwxNDUsNTAsMTQKfQo=