LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAyMDA0LCAyMDA4IEpvc+kgTWFudWVsIEZlcnJlciBPcnRpegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAicHJvZ21hbi5oIgoKTEFOR1VBR0UgTEFOR19TUEFOSVNILCBTVUJMQU5HX05FVVRSQUwKCi8qIE1lbnUgKi8KCk1BSU5fTUVOVSBNRU5VCnsKIFBPUFVQICImQXJjaGl2byIgewogICBNRU5VSVRFTSAiJk51ZXZvLi4uIiwJCQlQTV9ORVcKICAgTUVOVUlURU0gIkEmYnJpclx0RW50ZXIiLAkJCVBNX09QRU4KICAgTUVOVUlURU0gIiZNb3Zlci4uLlx0RjciLAkJCVBNX01PVkUsICAgICAgR1JBWUVECiAgIE1FTlVJVEVNICImQ29waWFyLi4uXHRGOCIsCQkJUE1fQ09QWSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZFbGltaW5hclx0U3VwciIsCQkJUE1fREVMRVRFCiAgIE1FTlVJVEVNICImQXRyaWJ1dG9zLi4uXHRBbHQrRW50ZXIiLAkJUE1fQVRUUklCVVRFUwogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIiZFamVjdXRhci4uLiIsCQkJUE1fRVhFQ1VURQogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIiZTYWxpciBkZSBXaW5kb3dzLi4uIiwJCVBNX0VYSVQKIH0KIFBPUFVQICImT3BjaW9uZXMiIHsKICAgTUVOVUlURU0gIiZPcmRlbmFyIGF1dG9t4XRpY2FtZW50ZSIsCQlQTV9BVVRPX0FSUkFOR0UKICAgTUVOVUlURU0gIiZNaW5pbWl6YXIgYWwgbGFuemFyc2UiLAkJUE1fTUlOX09OX1JVTgogICBNRU5VSVRFTSAiJkd1YXJkYXIgY29uZmlndXJhY2nzbiBhbCBzYWxpciIsCVBNX1NBVkVfU0VUVElOR1MKIH0KIFBPUFVQICImVmVudGFuYXMiIHsKICAgTUVOVUlURU0gIiZDYXNjYWRhXHRTaGlmdCtGNSIsCQlQTV9PVkVSTEFQCiAgIE1FTlVJVEVNICImTW9zYWljb1x0U2hpZnQrRjQiLAkJUE1fU0lERV9CWV9TSURFCiAgIE1FTlVJVEVNICImT3JkZW5hciBpY29ub3MiLAkJCVBNX0FSUkFOR0UKIH0KIApQT1BVUCAiQSZ5dWRhIiB7CiAgIE1FTlVJVEVNICImQ29udGVuaWRvIiwJCQlQTV9DT05URU5UUwogICBNRU5VSVRFTSAiJkJ1c2Nhci4uLiIsCQkJUE1fU0VBUkNICiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiJkF5dWRhIHNvYnJlIGxhIGF5dWRhIiwJCVBNX0hFTFBPTkhFTFAKICAgTUVOVUlURU0gIiZUdXRvcmlhbCIsCQkJUE1fVFVUT1JJQUwKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImQWNlcmNhIGRlIFdpbmUiLAkJUE1fQUJPVVRfV0lORQogfQp9CgovKiBEaWFsb2cgYE5ldycgKi8KCkRJQUxPR19ORVcgRElBTE9HIDAsIDAsIDE3MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTnVldm8iCnsKUkFESU9CVVRUT04gICAiIiwgICAgICAgICAgICAgICAgIFBNX05FV19HUk9VUCwgICAgMTAsIDE1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIiZHcnVwbyBkZSBwcm9ncmFtYSIsICAgLTEsICAgIDIwLCAxOCwgIDgwLCAxNQpSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX1BST0dSQU0sICAxMCwgMzUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiJlByb2dyYW1hIiwgLTEsICAyMCwgMzgsICA4MCwgMTUKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICAgIElET0ssICAgICAgICAgICAxMDUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICBJRENBTkNFTCwgICAgICAgMTA1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBJnl1ZGEiLCAgICAgICAgUE1fSEVMUCwgICAgICAgIDEwNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBNb3ZlJyAqLwoKRElBTE9HX01PVkUgRElBTE9HIDAsIDAsIDI1MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTW92ZXIgcHJvZ3JhbWEiCnsKTFRFWFQgICAgICAgICAiTW92ZXIgcHJvZ3JhbWE6IiwgIC0xLCAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICA5NSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJkRlbCBncnVwbzoiLCAgICAgIC0xLCAgICAgICAgICAgNSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJkFsIGdydXBvOiIsICAgICAgIFBNX1RPX0dST1VQX1RYVCwgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgNSwgMzgsIDE0MCwgNTAsIFdTX1RBQlNUT1AgfCBDQlNfRFJPUERPV05MSVNUCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgICBJRENBTkNFTCwgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkEmeXVkYSIsICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgQ29weScgKi8KCkRJQUxPR19DT1BZIERJQUxPRyAwLCAwLCAyNTAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNvcGlhciBwcm9ncmFtYSIKewpMVEVYVCAgICAgICAgICJDb3BpYXIgcHJvZ3JhbWE6IiwgIC0xLCAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICImRGVsIGdydXBvOiIsICAgICAgIC0xLCAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgIDk1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICImQWwgZ3J1cG86IiwgICAgICAgIFBNX1RPX0dST1VQX1RYVCwgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICAgICBJRE9LLCAgICAgICAgICAgIDE4NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICAgICBJRENBTkNFTCwgICAgICAgIDE4NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQSZ5dWRhIiwgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBHcm91cCBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX0dST1VQIERJQUxPRyAwLCAwLCAyMzAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkF0cmlidXRvcyBkZWwgZ3J1cG8gZGUgcHJvZ3JhbWEiCnsKTFRFWFQgICAgICAgICAiJkRlc2NyaXBjafNuOiIsICBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDE4LCA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgNjAsIDE4LCA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgIiZBcmNoaXZvIGRlIGdydXBvOiIsICBQTV9GSUxFX1RYVCwgICAgICAgICAgMDUsIDM4LCA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICBQTV9GSUxFLCAgICAgICAgICAgICAgNjAsIDM4LCA5MCwgMTUsIFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxNTUsICA1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxNTUsIDI1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQSZ5dWRhIiwgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxNTUsIDQ1LCA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBQcm9ncmFtIGF0dHJpYnV0ZXMnICovCgpESUFMT0dfUFJPR1JBTSBESUFMT0cgMCwgMCwgMjUwLCAxMDUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQXRyaWJ1dG9zIGRlbCBwcm9ncmFtYSIKewpMVEVYVCAgICAgICAgICImRGVzY3JpcGNp8246IiwgIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTAsIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA4MCwgMTAsIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICImTO1uZWEgZGUgY29tYW5kb3M6IiwgIFBNX0NPTU1BTkRfTElORV9UWFQsICAwNSwgMjUsIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkRfTElORSwgICAgICA4MCwgMjUsIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAiRGlyZWN0b3JpbyBkZSAmdHJhYmFqbzoiLFBNX0RJUkVDVE9SWV9UWFQsICAgICAwNSwgNDAsIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RJUkVDVE9SWSwgICAgICAgICA4MCwgNDAsIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAiJkNvbWJpbmFjafNuIGRlIHRlY2xhczoiLFBNX0hPVF9LRVlfVFhULCAgICAgICAwNSwgNTUsIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0hPVF9LRVksICAgICAgICAgICA4MCwgNTUsIDkwLCAxNSwgV1NfVEFCU1RPUApJQ09OICAgICAgICAgICIiLCAgICAgICAgICAgICAgIFBNX0lDT04sICAgICAgICAgICAgICAyMCwgNzAKQ0hFQ0tCT1ggICAgICAiIiwgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAgICAgICAgICAgODAsIDc1LCAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgIiZNaW5pbWl6YXIgYWwgbGFuemFyc2UiLCAtMSwgICAgICAgICAgICAgOTUsIDc1LCA3NSwgMTAKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxODUsICA1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxODUsIDI1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkV4cGxvcmFyLi4uIiwgICBQTV9CUk9XU0UsICAgICAgICAgICAxODUsIDQ1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAiQ2FtYmlhciAmaWNvbm8uLi4iLCBQTV9PVEhFUl9TWU1CT0wsICAgICAxODUsIDY1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQSZ5dWRhIiwgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxODUsIDg1LCA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBTeW1ib2wnICovCgpESUFMT0dfU1lNQk9MIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNhbWJpYXIgaWNvbm8iCnsKTFRFWFQgICAgICImTm9tYnJlIGRlIGFyY2hpdm86IiwgUE1fSUNPTl9GSUxFX1RYVCwgICAgNSwgMTUsICA0MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSUNPTl9GSUxFLCAgICAgICA0NSwgMTUsICA4NSwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJkljb25vIGFjdHVhbDoiLCAgUE1fU1lNQk9MX0xJU1RfVFhULCAgNSwgMzAsIDEyNSwgMTAKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MX0xJU1QsICAgICAgNSwgNDAsIDEyNSwgNTAsCiAgIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBXU19UQUJTVE9QCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgIElET0ssICAgICAgICAgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZFeHBsb3Jhci4uLiIsICAgIFBNX0JST1dTRSwgICAgICAgICAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkEmeXVkYSIsICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgRXhlY3V0ZScgKi8KCkRJQUxPR19FWEVDVVRFIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVqZWN1dGFyIHByb2dyYW1hIgp7CkxURVhUICAgICAgICAgIkztbmVhIGRlICZjb21hbmRvczoiLCAgICAgLTEsICAgMDUsIDE1LCAxMjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fQ09NTUFORCwgMDUsIDI1LCAxMjAsIDE1LCBXU19UQUJTVE9QCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MLCAgMDUsIDQ1LCAgMTAsIDEwLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZNaW5pbWl6YXIgYWwgbGFuemFyc2UiLCAgLTEsICAgMjAsIDQ1LCAxMjAsIDEwCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgICAgICAgICAgSURPSywgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgICAgICAgICAgSURDQU5DRUwsICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZFeHBsb3Jhci4uLiIsICAgICAgICAgICAgUE1fQlJPV1NFLCAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkEmeXVkYSIsICAgICAgICAgICAgICAgICAgUE1fSEVMUCwgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIFN0cmluZ3MgKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKSURTX1BST0dSQU1fTUFOQUdFUiwJCSJHZXN0b3IgZGUgcHJvZ3JhbWFzIgpJRFNfRVJST1IsCQkJIkVSUk9SIgpJRFNfV0FSTklORywJCQkiQURWRVJURU5DQSIKSURTX0lORk8sCQkJIkluZm9ybWFjafNuIgpJRFNfREVMRVRFLAkJCSJFbGltaW5hciIKSURTX0RFTEVURV9HUk9VUF9zLAkJIr9FbGltaW5hciBncnVwbyBgJXMnPyIKSURTX0RFTEVURV9QUk9HUkFNX3MsCQkiv0VsaW1pbmFyIHByb2dyYW1hIGAlcyc/IgpJRFNfTk9UX0lNUExFTUVOVEVELAkJIk5vIGltcGxlbWVudGFkbyIKSURTX0ZJTEVfUkVBRF9FUlJPUl9zLAkJIkVycm9yIGxleWVuZG8gYCVzJy4iCklEU19GSUxFX1dSSVRFX0VSUk9SX3MsCQkiRXJyb3IgZXNjcmliaWVuZG8gYCVzJy4iCklEU19HUlBGSUxFX1JFQURfRVJST1JfcywJIlwKRWwgYXJjaGl2byBkZSBncnVwbyBgJXMnIG5vIHNlIHB1ZWRlIGFicmlyLlxuXAq/RGViZSB2b2x2ZXIgYSBpbnRlbnRhcnNlIG3hcyBhZGVsYW50ZT8iCklEU19PVVRfT0ZfTUVNT1JZLAkJIlNpbiBtZW1vcmlhLiIKSURTX1dJTkhFTFBfRVJST1IsCQkiQXl1ZGEgbm8gZGlzcG9uaWJsZS4iCklEU19VTktOT1dOX0ZFQVRVUkVfcywJCSJDYXJhY3Rlcu1zdGljYSBkZXNjb25vY2lkYSBlbiAlcyIKSURTX0ZJTEVfTk9UX09WRVJXUklUVEVOX3MsCSJFbCBhcmNoaXZvIGAlcycgZXhpc3RlLiBObyBzZSBoYSBzb2JyZWVzY3JpdG8uIgpJRFNfU0FWRV9HUk9VUF9BU19zLAkJIkd1YXJkZSBlbCBncnVwbyBjb21vIGAlcycgcGFyYSBwcmV2ZW5pciBsYSBzb2JyZWVzY3JpdHVyYSBkZSBsb3MgYXJjaGl2b3Mgb3JpZ2luYWxlcy4iCklEU19OT19IT1RfS0VZLAkJCSJOaW5ndW5hIgpJRFNfQUxMX0ZJTEVTLAkJCSJUb2RvcyBsb3MgYXJjaGl2b3MgKCouKikiCklEU19QUk9HUkFNUywJCQkiUHJvZ3JhbWFzIgpJRFNfTElCUkFSSUVTX0RMTCwJCSJMaWJyYXLtYXMgKCouZGxsKSIKSURTX1NZTUJPTF9GSUxFUywJCSJBcmNoaXZvcyBkZSBpY29ub3MiCklEU19TWU1CT0xTX0lDTywJCSJJY29ub3MgKCouaWNvKSIKfQo=