LyoKICogUHJvZ3JhbSBNYW5hZ2VyIChSdXNzaWFuIHJlc291cmNlcykKICoKICogQ29weXJpZ2h0IDIwMDAgVmFzaWx5IFZvbGNoZW5rbwogKiBDb3B5cmlnaHQgMjAwMyBJZ29yIFN0ZXBpbgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgovKiBNZW51ICovCgpNQUlOX01FTlUgTUVOVSBMQU5HVUFHRSBMQU5HX1JVU1NJQU4sIFNVQkxBTkdfREVGQVVMVAp7CiBQT1BVUCAiJtTg6esiIHsKICAgTUVOVUlURU0gIibR7ufk4PL8IiwgICAgICAgICAgICAgIFBNX05FVwogICBNRU5VSVRFTSAiziby6vD78vwuLi5cdEVudGVyIiwgICAgICAgICAgICAgUE1fT1BFTgogICBNRU5VSVRFTSAiJs/l8OXs5fHy6PL8Li4uXHRGNyIsICAgICAgICAgICAgIFBNX01PVkUsICAgICAgR1JBWUVECiAgIE1FTlVJVEVNICImyu7v6PDu4uDy/C4uLlx0RjgiLCAgICAgICAgICAgICBQTV9DT1BZLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiJtPk4Ovo8vxcdEVudGYiLCAgICAgICAgICAgUE1fREVMRVRFCiAgIE1FTlVJVEVNICImwPLw6OHz8vsuLi5cdEFsdCtFbnRlciIsICAgICAgIFBNX0FUVFJJQlVURVMKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImx+Dv8/Hy6PL8Li4uIiwgICAgICAgICAgUE1fRVhFQ1VURQogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIsL7JvXu5CDo5yBXaW5lLi4uIiwgICAgICAgICAgICAgUE1fRVhJVAogfQogUE9QVVAgIibP4PDg7OXy8PsiIHsKICAgTUVOVUlURU0gIibA4vLu8+/u8P/k7vfl7ejlIiwgIFBNX0FVVE9fQVJSQU5HRQogICBNRU5VSVRFTSAiJtHi5fDt8/L8IO/w6CDn4O/z8erlIiwgICAgUE1fTUlOX09OX1JVTgogICBNRU5VSVRFTSAiJtHu9fDg7f/y/CDt4PHy8O7p6ugg7/DoIOL79e7k5SIsIFBNX1NBVkVfU0VUVElOR1MKIH0KIFBPUFVQICImzurt4CIgewogICBNRU5VSVRFTSAiJsrg8erg5Fx0U2hpZnQrRjUiLCAgICAgICBQTV9PVkVSTEFQCiAgIE1FTlVJVEVNICImzO7n4Ojq4Fx0U2hpZnQrRjQiLCAgUE1fU0lERV9CWV9TSURFCiAgIE1FTlVJVEVNICIm0+/u8P/k7vfo8vwg7/DoIOL79e7k5SIsICAgICAgIFBNX0FSUkFOR0UKIH0KIApQT1BVUCAiJtHv8ODi6uAiIHsKICAgTUVOVUlURU0gIibR7uTl8Obg7ejlIiwgICAgICAgICBQTV9DT05URU5UUwogICBNRU5VSVRFTSAiJs/u6PHqLi4uIiwgICAgICAgICAgIFBNX1NFQVJDSAogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIibI8e/u6/zn7uLg7ejlIPHv8ODi6ugiLCAgICAgUE1fSEVMUE9OSEVMUAogICBNRU5VSVRFTSAiJtDz6u7i7uTx8uLuIiwgICAgICAgICBQTV9UVVRPUklBTAogICBNRU5VSVRFTSBTRVBBUkFUT1IKCiAgIFBPUFVQICIm0eLl5OXt6P8uLi4iIHsKICAgICBNRU5VSVRFTSAiJsvo9uXt5+j/IiwgICAgICAgIFBNX0xJQ0VOU0UKICAgICBNRU5VSVRFTSAiJsHFxyDDwNDAzdLIySIsICAgIFBNX05PX1dBUlJBTlRZCiAgICAgTUVOVUlURU0gIibOIFdpbmUiLCAgICAgUE1fQUJPVVRfV0lORQogICB9CiB9Cn0KCi8qIERpYWxvZyBgTmV3JyAqLwoKRElBTE9HX05FVyBESUFMT0cgMCwgMCwgMTcwLCA2NQpMQU5HVUFHRSBMQU5HX1JVU1NJQU4sIFNVQkxBTkdfREVGQVVMVApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLR7ufk4PL8IO/w7uPw4Ozs7fvpIO7h+uXq8iIKewpSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX0dST1VQLCAgICAxMCwgMTUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiJsPw8+/v8yDv8O7j8ODs7CIsICAgLTEsICAgIDIwLCAxOCwgIDgwLCAxNQpSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX1BST0dSQU0sICAxMCwgMzUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiJs/w7uPw4Ozs7fvpIP3r5ezl7fIiLCAtMSwgIDIwLCAzOCwgIDgwLCAxNQpERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgIElET0ssICAgICAgICAgICAxMDUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIs7y7OXt4CIsICAgICAgSURDQU5DRUwsICAgICAgIDEwNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJtHv8ODi6uAiLCAgICAgICAgUE1fSEVMUCwgICAgICAgIDEwNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBNb3ZlJyAqLwoKRElBTE9HX01PVkUgRElBTE9HIDAsIDAsIDI1MCwgNjUKTEFOR1VBR0UgTEFOR19SVVNTSUFOLCBTVUJMQU5HX0RFRkFVTFQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiz+Xw5ezl8fLo8vwg7/Du4/Dg7OzzIgp7CkxURVhUICAgICAgICAgIs/l8OXs5fHy6PL8IO/w7uPw4Ozs8zoiLCAgICAtMSwgICAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIsjnIOPw8+/v+zoiLCAtMSwgICAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICAgOTUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIibCIOPw8+/v8zoiLCAgIFBNX1RPX0dST1VQX1RYVCwgICAgIDUsIDI4LCAxNDAsIDE1CkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fVE9fR1JPVVAsICAgICAgICAgNSwgMzgsIDE0MCwgNTAsIFdTX1RBQlNUT1AgfCBDQlNfRFJPUERPV05MSVNUCkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIs7y7OXt4CIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIibR7/Dg4urgIiwgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYENvcHknICovCgpESUFMT0dfQ09QWSBESUFMT0cgMCwgMCwgMjUwLCA2NQpMQU5HVUFHRSBMQU5HX1JVU1NJQU4sIFNVQkxBTkdfREVGQVVMVApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLK7u/o8O7i4PL8IO/w7uPw4Ozs8yIKewpMVEVYVCAgICAgICAgICLK7u/o8O7i4PL8IO/w7uPw4Ozs8zoiLCAgICAtMSwgICAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIsjnIOPw8+/v+zoiLCAtMSwgICAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICAgOTUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIibCIOPw8+/v8zoiLCAgIFBNX1RPX0dST1VQX1RYVCwgICAgIDUsIDI4LCAxNDAsIDE1CkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fVE9fR1JPVVAsICAgICAgICAgNSwgMzgsIDE0MCwgNTAsIFdTX1RBQlNUT1AgfCBDQlNfRFJPUERPV05MSVNUCkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIs7y7OXt4CIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIibR7/Dg4urgIiwgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYEdyb3VwIGF0dHJpYnV0ZXMnICovCgpESUFMT0dfR1JPVVAgRElBTE9HIDAsIDAsIDIzMCwgNjUKTEFOR1VBR0UgTEFOR19SVVNTSUFOLCBTVUJMQU5HX0RFRkFVTFQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwPLw6OHz8vsg7/Du4/Dg7Ozt7ukg4/Dz7+/7Igp7CkxURVhUICAgICAiJs7v6PHg7ejlOiIsIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTgsICA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fREVTQ1JJUFRJT04sICAgICAgIDYwLCAxOCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgIibU4OnrIOPw8+/v+zoiLCAgICAgICAgUE1fRklMRV9UWFQsICAgICAgICAgIDA1LCAzOCwgIDUwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9GSUxFLCAgICAgICAgICAgICAgNjAsIDM4LCAgOTAsIDE1LCBXU19UQUJTVE9QCkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxNTUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIs7y7OXt4CIsICAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxNTUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIibR7/Dg4urgIiwgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgICAgMTU1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYFByb2dyYW0gYXR0cmlidXRlcycgKi8KCkRJQUxPR19QUk9HUkFNIERJQUxPRyAwLCAwLCAyNTAsIDEwNQpMQU5HVUFHRSBMQU5HX1JVU1NJQU4sIFNVQkxBTkdfREVGQVVMVApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLA8vDo4fPy+yDv8O7j8ODs7PsiCnsKTFRFWFQgICAgICAgICAiJs7v6PHg7ejlOiIsICBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDEwLCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgODAsIDEwLCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIibK7uzg7eTt4P8g8fLw7urgOiIsIFBNX0NPTU1BTkRfTElORV9UWFQsICAwNSwgMjUsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkRfTElORSwgICAgICA4MCwgMjUsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJtDg4e734P8g7+Dv6uA6IiwgICAgUE1fRElSRUNUT1JZX1RYVCwgICAgIDA1LCA0MCwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fRElSRUNUT1JZLCAgICAgICAgIDgwLCA0MCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImyu7s4ejt4Pbo/yDq6+Di6Pg6IiwgICAgICBQTV9IT1RfS0VZX1RYVCwgICAgICAgMDUsIDU1LCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9IT1RfS0VZLCAgICAgICAgICAgODAsIDU1LCAgOTAsIDE1LCBXU19UQUJTVE9QCklDT04gICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9JQ09OLCAgICAgICAgICAgICAgMjAsIDcwCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAgICAgICAgICAgODAsIDc1LCAgMTAsIDEwLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIsIg4ujk5SAm5+3g9+rgIiwgICAgICAgLTEsICAgICAgICAgICAgIDk1LCA3NSwgIDc1LCAxMApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE4NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAizvLs5e3gIiwgICAgICAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIibO4efu8C4uLiIsICAgICAgICAgICAgICAgUE1fQlJPV1NFLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImxPDz4+7pIOft4Pfu6i4uLiIsIFBNX09USEVSX1NZTUJPTCwgICAgIDE4NSwgNjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJtHv8ODi6uAiLCAgICAgICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgICAgMTg1LCA4NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYFN5bWJvbCcgKi8KCkRJQUxPR19TWU1CT0wgRElBTE9HIDAsIDAsIDIwMCwgODUKTEFOR1VBR0UgTEFOR19SVVNTSUFOLCBTVUJMQU5HX0RFRkFVTFQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwvvh8ODy/CDn7eD37uoiCnsKTFRFWFQgICAgICImyOz/IPTg6evgOiIsICAgIFBNX0lDT05fRklMRV9UWFQsICAgIDUsIDE1LCAgNDAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0lDT05fRklMRSwgICAgICAgNDUsIDE1LCAgODUsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAiJtLl6vP56Okg5+3g9+7qOiIsIFBNX1NZTUJPTF9MSVNUX1RYVCwgIDUsIDMwLCAxMjUsIDEwCkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTF9MSVNULCAgICAgIDUsIDQwLCAxMjUsIDUwLAogICBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgV1NfVEFCU1RPUApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgSURPSywgICAgICAgICAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAizvLs5e3gIiwgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIibO4efu8C4uLiIsICAgIFBNX0JST1dTRSwgICAgICAgICAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIibR7/Dg4urgIiwgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDEzNSwgNjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBFeGVjdXRlJyAqLwoKRElBTE9HX0VYRUNVVEUgRElBTE9HIDAsIDAsIDIwMCwgODUKTEFOR1VBR0UgTEFOR19SVVNTSUFOLCBTVUJMQU5HX0RFRkFVTFQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAix+Dv8/Hy6PL8IO/w7uPw4Ozs8yIKewpMVEVYVCAgICAgIibK7uzg7eTt4P8g8fLw7urgOiIsIC0xLCAgIDA1LCAxNSwgMTIwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9DT01NQU5ELCAwNSwgMjUsIDEyMCwgMTUsIFdTX1RBQlNUT1AKQ0hFQ0tCT1ggICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MLCAgMDUsIDQ1LCAgMTAsIDEwLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIsIg4ujk5SAm5+3g9+rgIiwgICAtMSwgICAyMCwgNDUsIDEyMCwgMTAKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgICAgIElET0ssICAgICAgMTM1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICLO8uzl7eAiLCAgICAgICAgICAgSURDQU5DRUwsICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIibO4efu8C4uLiIsICAgICAgICAgIFBNX0JST1dTRSwgMTM1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICIm0e/w4OLq4CIsICAgICAgICAgICAgIFBNX0hFTFAsICAgMTM1LCA2NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBTdHJpbmdzICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRSBMQU5HVUFHRSBMQU5HX1JVU1NJQU4sIFNVQkxBTkdfREVGQVVMVAp7CklEU19QUk9HUkFNX01BTkFHRVIsCQkixOjx7+Xy9+XwIO/w7uPw4OzsIgpJRFNfRVJST1IsCQkJIs7YyMHKwCIKSURTX1dBUk5JTkcsCQkJIsLNyMzAzcjFIgpJRFNfSU5GTywJCQki0eLl5OXt6P8iCklEU19ERUxFVEUsCQkJItPk4Ovo8vwiCklEU19ERUxFVEVfR1JPVVBfcywJCSLT5ODr6PL8IOPw8+/v8yBgJXMnID8iCklEU19ERUxFVEVfUFJPR1JBTV9zLAkJItPk4Ovo8vwg7/Du4/Dg7OzzIGAlcycgPyIKSURTX05PVF9JTVBMRU1FTlRFRCwJCSLF+bgg7eUg8OXg6+jn7uLg7e4iCklEU19GSUxFX1JFQURfRVJST1JfcywJCSLO+Ojh6uAg9/Ll7ej/IGAlcycuIgpJRFNfRklMRV9XUklURV9FUlJPUl9zLAkJIs746OHq4CDn4O/o8eggYCVzJy4iCklEU19HUlBGSUxFX1JFQURfRVJST1JfcywJIlwK1ODp6yDj8PPv7/sgYCVzJyDt5SDs7ubl8iDh+/L8IO7y6vD78i5cblwKzeDk7iDr6CDiIPHr5eTz/vno6SDw4Ocg7/vy4PL88f8g/fLuIPHk5evg8vw/IgpJRFNfT1VUX09GX01FTU9SWSwJCSLM4OvuIO/g7P/y6C4iCklEU19XSU5IRUxQX0VSUk9SLAkJItHv8ODi6uAg7eUg5O7x8vPv7eAuIgpJRFNfVU5LTk9XTl9GRUFUVVJFX3MsCQkizeXo5+Ll8fLt7uUg8eLu6fHy4u4g4iAlcyIKSURTX0ZJTEVfTk9UX09WRVJXUklUVEVOX3MsCSLU4OnrIGAlcycg8fP55fHy4vPl8i4gzu0g7eUg4fvrIO/l8OXn4O/o8eDtLiIKSURTX1NBVkVfR1JPVVBfQVNfcywJCSLD8PPv7+Ag8e718ODt/+Xy8f8g7+7kIOjs5e3l7CBgJXMnIOLuIOjn4eXm4O3o5SDv5fDl5+Dv6PHoIO7w6OPo7eDr4C4iCklEU19OT19IT1RfS0VZLAkJCSLN5fIiCklEU19BTExfRklMRVMsCQkJIsLx5SD04Onr+yAoKi4qKSIKSURTX1BST0dSQU1TLAkJCSLP8O7j8ODs7PsiCklEU19MSUJSQVJJRVNfRExMLAkJIsHo4evo7vLl6uggKCouZGxsKSIKSURTX1NZTUJPTF9GSUxFUywJCSLU4Onr+yDn7eD36u7iIgpJRFNfU1lNQk9MU19JQ08sCQkix+3g9+roICgqLmljbykiCn0K