LyoKICogUHJvZ3JhbSBNYW5hZ2VyIChTbG92ZW5pYW4gUmVzb3VyY2VzKQogKgogKiBDb3B5cmlnaHQgMjAwMi0yMDAzIFJvayBNYW5kZWxqYyA8cm9rLm1hbmRlbGpjQGdpbWIub3JnPgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgovKiBNZW51ICovCgpNQUlOX01FTlUgTUVOVSBMQU5HVUFHRSBMQU5HX1NMT1ZFTklBTiwgU1VCTEFOR19ERUZBVUxUCnsKIFBPUFVQICImRGF0b3Rla2EiIHsKICAgTUVOVUlURU0gIiZOb3ZhIC4uLiIsICAgICAgICAgICAgICBQTV9ORVcKICAgTUVOVUlURU0gIiZPZHByaVx0RW50ZXIiLCAgICAgICAgICAgICBQTV9PUEVOCiAgIE1FTlVJVEVNICJQcmUmbWFrbmlcdEY3IiwgICAgICAgICAgICAgUE1fTU9WRSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZLb3BpcmFqXHRGOCIsICAgICAgICAgICAgIFBNX0NPUFksICAgICAgR1JBWUVECiAgIE1FTlVJVEVNICImSXpicmmaaVx0RW50ZiIsICAgICAgICAgICBQTV9ERUxFVEUKICAgTUVOVUlURU0gIiZMYXN0bm9zdGkgLi4uXHRBbHQrRW50ZXIiLCAgICAgICBQTV9BVFRSSUJVVEVTCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiJlphnmVuaSAuLi4iLCAgICAgICAgICBQTV9FWEVDVVRFCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiSXomaG9kIGl6IHByb2dyYW1hIFdpbmRvd3MgLi4uIiwgICAgICAgICAgICAgUE1fRVhJVAogfQogUE9QVVAgIiZNb55ub3N0aSIgewogICBNRU5VSVRFTSAiJlNhbW9kZWpubyByYXpwb3JlZGkiLCAgUE1fQVVUT19BUlJBTkdFCiAgIE1FTlVJVEVNICImT2IgcmFiaSBtaW5pbWlyYWoiLCAgICBQTV9NSU5fT05fUlVOCiAgIE1FTlVJVEVNICJTaHJhbmkgJm5hc3Rhdml0dmUgb2IgaXpob2R1IiwgUE1fU0FWRV9TRVRUSU5HUwogfQogUE9QVVAgIiZPa25vIiB7CiAgIE1FTlVJVEVNICImViBrYXNrYWRvXHRTaGlmdCtGNSIsICAgICAgIFBNX09WRVJMQVAKICAgTUVOVUlURU0gIiZSYXpwb3N0YXZpXHRTaGlmdCtGNCIsICBQTV9TSURFX0JZX1NJREUKICAgTUVOVUlURU0gIlJhenBvcmVkaSAmaWtvbmUiLCAgICAgICBQTV9BUlJBTkdFCiB9CgpQT1BVUCAiJlBvbW/oIiB7CiAgIE1FTlVJVEVNICImVGVtZSBwb21v6GkiLCAgICAgICAgIFBNX0NPTlRFTlRTCiAgIE1FTlVJVEVNICImTmFqZGkgLi4uIiwgICAgICAgICAgIFBNX1NFQVJDSAogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIiZPIHBvbW/oaSIsICAgICBQTV9IRUxQT05IRUxQCiAgIE1FTlVJVEVNICImVmFkbmljYSIsICAgICAgICAgUE1fVFVUT1JJQUwKICAgTUVOVUlURU0gU0VQQVJBVE9SCgogICBQT1BVUCAiSW5mJm9ybWFjaWplIC4uLiIgewogICAgIE1FTlVJVEVNICImTGljZW7obmEgcG9nb2RiYSIsICAgICAgICBQTV9MSUNFTlNFCiAgICAgTUVOVUlURU0gIiZCUkVaIEdBUkFOQ0lKRSIsICAgIFBNX05PX1dBUlJBTlRZCiAgICAgTUVOVUlURU0gIiZPIFdJTkUiLCAgICAgUE1fQUJPVVRfV0lORQogICB9CiB9Cn0KCi8qIERpYWxvZyBgTmV3JyAqLwoKRElBTE9HX05FVyBESUFMT0cgMCwgMCwgMTcwLCA2NQpMQU5HVUFHRSBMQU5HX1NMT1ZFTklBTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiTm92IHByb2dyYW1za2kgcHJlZG1ldCIKewpSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX0dST1VQLCAgICAxMCwgMTUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiUHJvZ3JhbXNrYSAmc2t1cGluYSIsICAgUE1fTkVXX0dST1VQLCAgICAyMCwgMTgsICA4MCwgMTUKUkFESU9CVVRUT04gICAiIiwgICAgICAgICAgICAgICAgIFBNX05FV19QUk9HUkFNLCAgMTAsIDM1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIiZQcm9ncmFtIiwgUE1fTkVXX1BST0dSQU0sICAyMCwgMzgsICA4MCwgMTUKREVGUFVTSEJVVFRPTiAiViByZWR1IiwgICAgICAgICAgSURPSywgICAgICAgICAgIDEwNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiUHJla2xp6GkiLCAgICAgIElEQ0FOQ0VMLCAgICAgICAxMDUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZQb21v6CIsICAgICAgICBQTV9IRUxQLCAgICAgICAgMTA1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYE1vdmUnICovCgpESUFMT0dfTU9WRSBESUFMT0cgMCwgMCwgMjUwLCA2NQpMQU5HVUFHRSBMQU5HX1NMT1ZFTklBTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiUHJlbWlrIHByb2dyYW1hIgp7CkxURVhUICAgICAgICAgIlByZW1ha25pIHByb2dyYW06IiwgICAgSURJR05PUkUsICAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9QUk9HUkFNLCAgICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICJJeiBwcm9ncmFtc2tlIHNrdXBpbmU6IiwgSURJR05PUkUsICAgICAgICAgICAgNSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9GUk9NX0dST1VQLCAgICAgIDk1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICImViBza3VwaW5vOiIsICAgUE1fVE9fR1JPVVBfVFhULCAgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9UT19HUk9VUCwgICAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiViByZWR1IiwgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIlByZWtsaehpIiwgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgIDE4NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJlBvbW/oIiwgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYENvcHknICovCgpESUFMT0dfQ09QWSBESUFMT0cgMCwgMCwgMjUwLCA2NQpMQU5HVUFHRSBMQU5HX1NMT1ZFTklBTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiS29waXJhbmplIHByb2dyYW1hIgp7CkxURVhUICAgICAgICAgIktvcGlyYWogcHJvZ3JhbToiLCAgICBJRElHTk9SRSwgICAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIkl6IHByb2dyYW1za2Ugc2t1cGluZToiLCBJRElHTk9SRSwgICAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICAgOTUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiZWIHNrdXBpbm86IiwgICBQTV9UT19HUk9VUF9UWFQsICAgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJWIHJlZHUiLCAgICAgICAgICAgICAgSURPSywgICAgICAgICAgICAgIDE4NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiUHJla2xp6GkiLCAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImUG9tb+giLCAgICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgR3JvdXAgYXR0cmlidXRlcycgKi8KCkRJQUxPR19HUk9VUCBESUFMT0cgMCwgMCwgMjMwLCA2NQpMQU5HVUFHRSBMQU5HX1NMT1ZFTklBTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiTGFzdG5vc3RpIHByb2dyYW1za2Ugc2t1cGluZSIKewpMVEVYVCAgICAgIiZPcGlzOiIsIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTgsICA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fREVTQ1JJUFRJT04sICAgICAgIDYwLCAxOCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgIiZEYXRvdGVrYSBza3VwaW5lOiIsICAgICAgICBQTV9GSUxFX1RYVCwgICAgICAgICAgMDUsIDM4LCAgNTAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0ZJTEUsICAgICAgICAgICAgICA2MCwgMzgsICA5MCwgMTUsIFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiViByZWR1IiwgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxNTUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIlByZWtsaehpIiwgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAgIDE1NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJlBvbW/oIiwgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgICAgMTU1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYFByb2dyYW0gYXR0cmlidXRlcycgKi8KCkRJQUxPR19QUk9HUkFNIERJQUxPRyAwLCAwLCAyNTAsIDEwNQpMQU5HVUFHRSBMQU5HX1NMT1ZFTklBTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiTGFzdG5vc3RpIHByb2dyYW1hIgp7CkxURVhUICAgICAgICAgIiZPcGlzOiIsICBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDEwLCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgODAsIDEwLCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZVa2F6bmEgdnJzdGljYToiLCBQTV9DT01NQU5EX0xJTkVfVFhULCAgMDUsIDI1LCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9DT01NQU5EX0xJTkUsICAgICAgODAsIDI1LCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZEZWxvdm5hIG1hcGE6IiwgICAgUE1fRElSRUNUT1JZX1RYVCwgICAgIDA1LCA0MCwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fRElSRUNUT1JZLCAgICAgICAgIDgwLCA0MCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImVGlwa2UgemEgYmxpnm5qaWNvOiIsICAgICAgUE1fSE9UX0tFWV9UWFQsICAgICAgIDA1LCA1NSwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSE9UX0tFWSwgICAgICAgICAgIDgwLCA1NSwgIDkwLCAxNSwgV1NfVEFCU1RPUApJQ09OICAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSUNPTiwgICAgICAgICAgICAgIDIwLCA3MApDSEVDS0JPWCAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MLCAgICAgICAgICAgIDgwLCA3NSwgIDEwLCAxMCwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImTWluaW1pcmFuIHphZ29uIiwgICAgICAgSURJR05PUkUsICAgICAgICAgICAgIDk1LCA3NSwgIDc1LCAxMApERUZQVVNIQlVUVE9OICJWIHJlZHUiLCAgICAgICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIlByZWtsaehpIiwgICAgICAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIlByZSZicnNrYWogLi4uIiwgICAgICAgICAgICAgICBQTV9CUk9XU0UsICAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIlphbWVuamFqICZpa29ubyAuLi4iLCBQTV9PVEhFUl9TWU1CT0wsICAgICAxODUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZQb21v6CIsICAgICAgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxODUsIDg1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgU3ltYm9sJyAqLwoKRElBTE9HX1NZTUJPTCBESUFMT0cgMCwgMCwgMjAwLCA4NQpMQU5HVUFHRSBMQU5HX1NMT1ZFTklBTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiWmFtZW5qYXZhIGlrb25lIgp7CkxURVhUICAgICAiSW1lICZkYXRvdGVrZToiLCAgICBQTV9JQ09OX0ZJTEVfVFhULCAgICA1LCAxNSwgIDQwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9JQ09OX0ZJTEUsICAgICAgIDQ1LCAxNSwgIDg1LCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgIiZUcmVudXRuYSBpa29uYToiLCBQTV9TWU1CT0xfTElTVF9UWFQsICA1LCAzMCwgMTI1LCAxMApDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0xfTElTVCwgICAgICA1LCA0MCwgMTI1LCA1MCwKICAgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19PV05FUkRSQVdGSVhFRCB8IFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiViByZWR1IiwgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTM1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJQcmVrbGnoaSIsICAgICBJRENBTkNFTCwgICAgICAgICAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJQcmUmYnJza2FqIC4uLiIsICAgIFBNX0JST1dTRSwgICAgICAgICAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZQb21v6CIsICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgRXhlY3V0ZScgKi8KCkRJQUxPR19FWEVDVVRFIERJQUxPRyAwLCAwLCAyMDAsIDg1CkxBTkdVQUdFIExBTkdfU0xPVkVOSUFOLCBTVUJMQU5HX0RFRkFVTFQKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICJaYWdvbiBwcm9ncmFtYSIKewpMVEVYVCAgICAgIiZVa2F6bmEgdnJzdGljYToiLCBJRElHTk9SRSwgICAwNSwgMTUsIDEyMCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fQ09NTUFORCwgMDUsIDI1LCAxMjAsIDE1LCBXU19UQUJTVE9QCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTCwgIDA1LCA0NSwgIDEwLCAxMCwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImTWluaW1pcmFuIHphZ29uIiwgICBJRElHTk9SRSwgICAyMCwgNDUsIDEyMCwgMTAKREVGUFVTSEJVVFRPTiAiViByZWR1IiwgICAgICAgICAgICAgICBJRE9LLCAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiUHJla2xp6GkiLCAgICAgICAgICAgSURDQU5DRUwsICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIlByZSZicnNrYWogLi4uIiwgICAgICAgICAgUE1fQlJPV1NFLCAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZQb21v6CIsICAgICAgICAgICAgIFBNX0hFTFAsICAgMTM1LCA2NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBTdHJpbmdzICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRSBMQU5HVUFHRSBMQU5HX1NMT1ZFTklBTiwgU1VCTEFOR19ERUZBVUxUCnsKSURTX1BST0dSQU1fTUFOQUdFUiwJCSJVcHJhdml0ZWxqIHByb2dyYW1vdiIKSURTX0VSUk9SLAkJCSJOQVBBS0EiCklEU19XQVJOSU5HLAkJCSJPUE9aT1JJTE8iCklEU19JTkZPLAkJCSJJbmZvcm1hY2lqYSIKSURTX0RFTEVURSwJCQkiQnJpc2FuamUiCklEU19ERUxFVEVfR1JPVVBfcywJCSJBbGkgc3RlIHByZXByaehhbmksIGRhIJ5lbGl0ZSBpemJyaXNhdGkgc2t1cGlubyAnJXMnPyIKSURTX0RFTEVURV9QUk9HUkFNX3MsCQkiQWxpIHN0ZSBwcmVwcmnoYW5pLCBkYSCeZWxpdGUgaXpicmlzYXRpIHByb2dyYW0gJyVzJz8iCklEU19OT1RfSU1QTEVNRU5URUQsCQkiTmkgKJplKSBuYSB2b2xqbyIKSURTX0ZJTEVfUkVBRF9FUlJPUl9zLAkJIk5hcGFrYSBwcmkgYnJhbmp1IGl6ICclcycuIgpJRFNfRklMRV9XUklURV9FUlJPUl9zLAkJIk5hcGFrYSBwcmkgcGlzYW5qdSB2ICclcycuIgpJRFNfR1JQRklMRV9SRUFEX0VSUk9SX3MsCSJcCkRhdG90ZWtlIHByb2dyYW1za2Ugc2t1cGluZSAnJXMnIG5pIG1vZ2/oZSBvZHByZXRpLlxuXApBbGkgnmVsaXRlLCBkYSBqbyBVcHJhdml0ZWxqIHByb2dyYW1vdlxuXApwb3NrdZphIG5hbG+eaXRpIHR1ZGkgdiBwcmlob2RuamU/IgpJRFNfT1VUX09GX01FTU9SWSwJCSJabWFuamthbG8gamUgcG9tbmlsbmlrYS4iCklEU19XSU5IRUxQX0VSUk9SLAkJIlBvbW/oIG5pIG5hIHZvbGpvLiIKSURTX1VOS05PV05fRkVBVFVSRV9zLAkJIk5lem5hbmEgbW+ebm9zdCB2ICVzIgpJRFNfRklMRV9OT1RfT1ZFUldSSVRURU5fcywJIkRhdG90ZWthIGAlcycgnmUgb2JzdGFqYSBpbiBuaSBiaWxhIHByZXBpc2FuYS4iCklEU19TQVZFX0dST1VQX0FTX3MsCQkiU2hyYW5qdWplbSBkYXRvdGVrbyBza3VwaW5lIGtvdCBgJXMnLCBkYSBiaSBwcmVwcmXoaWwgcHJlcGlzYW5qZSBvcmlnaW5hbG5lIGRhdG90ZWtlLiIKSURTX05PX0hPVF9LRVksCQkJIk5vYmVuIgpJRFNfQUxMX0ZJTEVTLAkJCSJWc2UgZGF0b3Rla2UgKCouKikiCklEU19QUk9HUkFNUywJCQkiUHJvZ3JhbWkiCklEU19MSUJSQVJJRVNfRExMLAkJIktuammebmljZSAoKi5kbGwpIgpJRFNfU1lNQk9MX0ZJTEVTLAkJIklrb25za2UgZGF0b3Rla2UiCklEU19TWU1CT0xTX0lDTywJCSJJa29uZSAoKi5pY28pIgp9Cg==