LyoKICogUmVnZWRpdCAoUnVzc2lhbiByZXNvdXJjZXMpCiAqCiAqIENvcHlyaWdodCAyMDAzIElnb3IgU3RlcGluCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUlVTU0lBTiwgU1VCTEFOR19ERUZBVUxUCgovKgogKiBNZW51CiAqLwoKSURSX1JFR0VESVRfTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJtDl5fHy8CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibI7O/u8PLo8O7i4PL8IPTg6esg8OXl8fLw4C4uLiIsICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICIm3erx7+7w8ujw7uLg8vwg9ODp6yDw5eXx8vDgLi4uIiwgICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibP7uTq6/736PL8IPHl8uXi7ukg8OXl8fLwLi4uIiwgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIibO8urr/vfo8vwg8eXy5eLu6SDw5eXx8vAuLi4iLCAgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibN4O/l9+Dy4PL8XHRDdHJsK1AiLCAgICAgICAgICAgICAgSURfUkVHSVNUUllfUFJJTlQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLCJvvp8ugiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJs/w4OLq4CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibI5+zl7ejy/CIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBQT1BVUCAi0e7n5Cbg8vwiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIsrrJv73IiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICIm0fLw7uru4u7lIOft4Pfl7ejlIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJsHo7eDw7e7lIOft4Pfl7ejlIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JEIOft4Pfl7ejlIiwgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJszt7uPuLfHy8O7q7uLu5SDn7eD35e3o5SIsICAgICAgIElEX0VESVRfTkVXX01VTFRJX1NUUklOR1ZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibT5ODr6PL8XHREZWwiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImz+Xw5ejs5e3u4uDy/Fx0RjIiLCAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAi0Sbq7u/o8O7i4PL8IOjs/yDq6/734CIsICAgICAgICAgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibN4Ony6Fx0Q3RybCtGIiwgICAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICLN4Ony6CAm5ODr5eVcdEYzIiwgICAgICAgICAgICAgIElEX0VESVRfRklORE5FWFQsIEdSQVlFRAogICAgRU5ECiAgICBQT1BVUCAiJsLo5CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gItHy8O7q4CAm8e7x8u7/7ej/IiwgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1RBVFVTQkFSCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibQ4Ofk5evo8vwiLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibO4e3u4ujy/Fx0RjUiLCAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgIEVORAogICAgUE9QVVAgIibI5+Hw4O3t7uUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImxO7h4OLo8vwg4iDo5+Hw4O3t7uUuLi4iLCAgICAgICAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMKICAgICAgICBNRU5VSVRFTSAiJtPk4Ovo8vwg6Ocg6Ofh8ODt7e7j7i4uLiIsICAgICAgICAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgIEVORAogICAgUE9QVVAgIibR7/Dg4urgIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJtHu5OXw5uDt6OUiLCAgICAgICAgICAgICAgICBJRF9IRUxQX0hFTFBUT1BJQ1MKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJs4g8OXk4Ory7vDlIPDl5fHy8OAiLCAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9QT1BVUF9NRU5VUyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgUE9QVVAgIiIKICBCRUdJTgoJTUVOVUlURU0gIibI5+zl7ejy/CIsICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiyOfs5e3o8vwgJuHo7eDw7e7lIOft4Pfl7ejlIiwgSURfRURJVF9NT0RJRllfQklOCglNRU5VSVRFTSBTRVBBUkFUT1IKCU1FTlVJVEVNICIm0+Tg6+jy/Fx0RGVsIiwgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQoJTUVOVUlURU0gIibP5fDl6Ozl7e7i4PL8IiwgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgRU5ECiAgUE9QVVAgIiIKICBCRUdJTgogICAgICAgIFBPUFVQICLR7ufkJuDy/CIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiyusm/vciLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICIm0fLw7uru4u7lIOft4Pfl7ejlIiwgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImwejt4PDt7uUg5+3g9+Xt6OUiLCAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRFdPUkQg5+3g9+Xt6OUiLCAgICAgICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIibM7e7j7i3x8vDu6u7i7uUg5+3g9+Xt6OUiLCBJRF9FRElUX05FV19NVUxUSV9TVFJJTkdWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICIm0+Tg6+jy/Fx0RGVsIiwgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImz+Xw5ejs5e3u4uDy/Fx0RjIiLCAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICIm3erx7+7w8ujw7uLg8vwuLi4iLCAgICAgICAgICBJRF9FRElUX0VYUE9SVAogICAgICAgIE1FTlVJVEVNICLRJuru7+jw7uLg8vwg6Oz/IOrr/vfgIiwgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibN4Ony6Fx0Q3RybCtGIiwgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgRU5ECkVORAoKCi8qCiAqIERpYWxvZwogKi8KCklERF9FWFBPUlRfVEVNUExBVEUgRElBTE9HIERJU0NBUkRBQkxFICA1MCwgNTAsIDI3OCwgNTQKU1RZTEUgRFNfM0RMT09LIHwgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0NMSVBTSUJMSU5HUyB8CiAgICBXU19CT1JERVIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggIt3q8e/u8PIg8OXl8fLw4CIsIElEQ19FWFBPUlRfQkFTRSwgNiwgNiwgMjY2LCA0MiwgV1NfR1JPVVAKICAgIEFVVE9SQURJT0JVVFRPTiAiJsLl8fwg8OXl8fLwIiwgSURDX0VYUE9SVF9BTEwsIDEyLCAxNSwgMjQ0LCAxMgogICAgQVVUT1JBRElPQlVUVE9OICLCJvvh8ODt7fP+IOLl8urzOiIsIElEQ19FWFBPUlRfU0VMRUNURUQsIDEyLCAzMCwgODAsIDEyCiAgICBFRElUVEVYVCBJRENfRVhQT1JUX1BBVEgsIDkyLCAzMCwgMTc0LCAxMgpFTkQKCklERF9GSU5EIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLP7ujx6iIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICLN4Ony6DoiLElEQ19TVEFUSUMsNSw3LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNDAsNSwxMjAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgTFRFWFQgICAgICAgICAgICLI8erg8vwg4joiLElEQ19TVEFUSUMsNSwgMjIsIDExOSwgOAogICAgQ0hFQ0tCT1ggICAgICAgICLK6/734PUiLCBJRENfRklORF9LRVlTLCA1LCAzNCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIENIRUNLQk9YICAgICAgICAizeDn4uDt6P/1IOft4Pfl7ejpIiwgSURDX0ZJTkRfVkFMVUVTLCA1LCA0NiwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgItHu5OXw5ujs7uwiLCBJRENfRklORF9DT05URU5ULCA1LCA1OCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgIsLx/iDx8vDu6vMg9uXr6Oru7CIsIElEQ19GSU5EX1dIT0xFLCA1LCA3MCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBERUZQVVNIQlVUVE9OICAgIsjx6uDy/CIsSURPSywxNzAsNSwzNSwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLH4Orw+/L8IixJRENBTkNFTCwxNzAsMjIsMzUsMTEsIFdTX0dST1VQCkVORAoKSUREX0FEREZBVk9SSVRFIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDU1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLE7uHg4ujy/CDo5+Hw4O3t7uUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiyOz/OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEzMCw0MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLO8uzl7ejy/CIsSURDQU5DRUwsMTY1LDQwLDQwLDExLCBXU19HUk9VUApFTkQKCklERF9ERUxGQVZPUklURSBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA5MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi0+Tg6+jy/CDo5+Hw4O3t7uUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiyOz/OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIExJU1RCT1ggICAgICAgICBJRENfTkFNRV9MSVNULDUsMTUsMjAwLDUyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTMwLDczLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt6PL8IixJRENBTkNFTCwxNjUsNzMsNDAsMTEsIFdTX0dST1VQCkVORAoKSUREX0VESVRfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDc1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLI5+zl7ejy/CDx8vDu6vMiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAizeDn4uDt6OUg5+3g9+Xt6P86IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEx8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIsTg7e375ToiLElEQ19TVEFUSUMsNSwzMCwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTMwLDYwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt6PL8IixJRENBTkNFTCwxNjUsNjAsNDAsMTEsV1NfR1JPVVAKRU5ECgpJRERfRURJVF9EV09SRCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCAxMDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTX05PSURMRU1TRyB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsjn7OXt6PL8IERXT1JEIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIs3g5+Lg7ejlIOft4Pfl7ej/OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICLE4O3t++U6IixJRENfU1RBVElDLDUsMzAsOTAsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsOTAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiyPH36PHr5e3o5SIsIElEQ19EV09SRF9CQVNFLCAxMjAsIDMwLCA4NSwgMzcsIEJTX0dST1VQQk9YCiAgICBBVVRPUkFESU9CVVRUT04gIjE2LfLoIPDo9+3u5SIsIElEQ19EV09SRF9IRVgsIDEzMCwgNDAsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgQVVUT1JBRElPQlVUVE9OICLE5fH/8uj37e7lIiwgSURDX0RXT1JEX0RFQywgMTMwLCA1MiwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEzMCw4MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLO8uzl7ejy/CIsSURDQU5DRUwsMTY1LDgwLDQwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfQklOQVJZIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiyOfs5e3o8vwg4ejt4PDt++Ug5ODt7fvlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIs3g5+Lg7ejlIOft4Pfl7ej/OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICLE4O3t++U6IixJRENfU1RBVElDLDUsMzAsOTAsOAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19WQUxVRV9EQVRBLCJIZXhFZGl0IixXU19UQUJTVE9QLDQsNDAsMTYwLDQwCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEzMCw4MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLO8uzl7ejy/CIsSURDQU5DRUwsMTY1LDgwLDQwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfTVVMVElfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDE3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiyOfs5e3o8vwg7O3u4+4t8fLw7uru4vvlIOTg7e375SIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICLN4Ofi4O3o5SDn7eD35e3o/zoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAixODt7fvlOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfSFNDUk9MTCB8IFdTX1ZTQ1JPTEwgfCBFU19NVUxUSUxJTkUgfCBFU19XQU5UUkVUVVJOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEzMCwxNjAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3o8vwiLElEQ0FOQ0VMLDE2NSwxNjAsNDAsMTEsV1NfR1JPVVAKRU5ECgovKgogKiBTdHJpbmcgVGFibGUKICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0xJU1RfQ09MVU1OX05BTUUgICAgIsjs/yIKICAgIElEU19MSVNUX0NPTFVNTl9UWVBFICAgICLS6O8iCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAixODt7fvlIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQVBQX1RJVExFICAgICAgICAgICAi0OXk4Ory7vAg8OXl8fLw4CIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfTUVOVSAgICAgICAgItHu5OXw5ujyIOru7ODt5Psg5Ov/IPDg4e7y+yDxIPDl4+jx8vDu7CDiIPbl6+7sIgogICAgSURfRURJVF9NRU5VICAgICAgICAgICAgItHu5OXw5ujyIOru7ODt5Psg5Ov/IPDl5ODq8ujw7uLg7ej/IOft4Pfl7ejpIOjr6CDq6/735ekiCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAi0e7k5fDm6PIg6u7s4O3k+yDk6/8g7eDx8vDu6eroIO7q7eAg8OXl8fLw4CIKICAgIElEX0ZBVk9SSVRFU19NRU5VICAgICAgICLR7uTl8Obo8iDq7uzg7eT7IOTr/yDk7vHy8+/gIOog9+Dx8u4g6PHv7uv85/Pl7PvsIOrr/vfg7CIKICAgIElEX0hFTFBfTUVOVSAgICAgICAgICAgICLR7uTl8Obo8iDq7uzg7eT7IOTr/yDu8u7h8ODm5e3o/yDx7/Dg4uroIOgg6O307vDs4Pbo6CDuIPDl5ODq8u7w5SDw5eXx8vDgIgogICAgSURfRURJVF9ORVdfTUVOVSAgICAgICAgItHu5OXw5ujyIOru7ODt5Psg5Ov/IPHu5+Tg7ej/IO3u4vv1IOrr/vfl6SDo6+gg5+3g9+Xt6OkiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VESVRfTU9ESUZZICAgICAgICAgICLI5+zl7f/l8iDn7eD35e3o5SDv4PDg7OXy8OAiCiAgICBJRF9FRElUX05FV19LRVkgICAgICAgICAixO7h4OLr/+XyIO3u4vvpIOrr/vciCiAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRSAixO7h4OLr/+XyIO3u4u7lIPHy8O7q7uLu5SDn7eD35e3o5SIKICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFICLE7uHg4uv/5fIg7e7i7uUg4ejt4PDt7uUg5+3g9+Xt6OUiCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAixO7h4OLr/+XyIO3u4u7lIERXT1JELeft4Pfl7ejlIgogICAgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUgIsTu4eDi6//l8iDt7uLu5SDs7e7j7i3x8vDu6u7i7uUg5+3g9+Xt6OUiCiAgICBJRF9SRUdJU1RSWV9JTVBPUlRSRUdJU1RSWUZJTEUgIsjs7+7w8ujw8+XyIPLl6vHy7uLu6SD04OnrIOIg8OXl8fLwIgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAi3erx7+7w8ujw8+XyIOLl8fwg8OXl8fLwIOjr6CDl4+4g9+Dx8vwg4iDy5erx8u7i7ukg9ODp6yIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICLP7uTq6/734OXy8f8g6iDw5eXx8vDzIPPk4Ou47e3u4+4g6u7s7/z+8uXw4CIKICAgIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICLO8urr/vfg5fLx/yDu8iDw5eXx8vDgIPPk4Ou47e3u4+4g6u7s7/z+8uXw4CIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICLP5ffg8uDl8iDi5fH8IPDl5fHy8CDo6+gg5ePuIPfg8fL8IgovKiAgICBJRF9IRUxQX0hFTFBUT1BJQ1MgICAgICAiT3BlbnMgcmVnaXN0cnkgZWRpdG9yIGhlbHAiICovCiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAizvLu4fDg5uDl8iDo7fTu8Ozg9uj+IO4g7/Du4/Dg7OzlLCDt7uzl8CDi5fDx6Ogg6CDx7+jx7uog4OLy7vDu4iIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfRVhJVCAgICAgICAgIsL79e7kIOjnIPDl5ODq8u7w4CDw5eXx8vDgIgogICAgSURfRkFWT1JJVEVTX0FERFRPRkFWT1JJVEVTICLE7uHg4ujy/CDq6/73IOIg6Ofh8ODt7e7lIgogICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFICLT5ODr6PL8IOrr/vcg6Ocg6Ofh8ODt7e7j7iIKICAgIElEX1ZJRVdfU1RBVFVTQkFSICAgICAgICLP7urg5+Dy/CDo6+gg8erw+/L8IPHy8O7q8yDx7vHy7v/t6P8iCiAgICBJRF9WSUVXX1NQTElUICAgICAgICAgICAiyOfs5e3o8vwg7+7n6Pbo/iDw4Ofk5evo8uXr/yDs5ebk8yDk4vPs/yDv4O3l6//s6CIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICLO4e3u4uv/5fIg7urt7iIKICAgIElEX0VESVRfREVMRVRFICAgICAgICAgICLT5ODr/+XyIOL75OXr5e3o5SIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICLP5fDl6Ozl7e7i++Lg5fIg4vvk5evl7ejlIgogICAgSURfRURJVF9DT1BZS0VZTkFNRSAgICAgIsru7+jw8+XyIOjs/yDi++Tl6+Xt7e7j7iDq6/734CDiIOHz9OXwIO7h7OXt4CIKICAgIElEX0VESVRfRklORCAgICAgICAgICAgICLI+eXyIPLl6vHy7uLz/iDx8vDu6vMg4iDq6/735Swg5+3g9+Xt6Ogg6OvoIOTg7e379SIKICAgIElEX0VESVRfRklORE5FWFQgICAgICAgICLI+eXyIPHr5eTz/vnl5SDx7uLv4OTl7ejlIPLl6vHy4Cwg5+Dk4O3t7uPuIOIg7/Dl5Pvk8/nl7CDv7ujx6uUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19FUlJPUgkJICAgICLO+Ojh6uAiCiAgICBJRFNfQkFEX0tFWQkJICAgICLN5eLu5+zu5u3uIOfg7/Du8ejy/CDq6/73ICclcyciCiAgICBJRFNfQkFEX1ZBTFVFICAgICAgICAgICAizeXi7ufs7ubt7iDn4O/w7vHo8vwg5+3g9+Xt6OUgJyVzJyIKICAgIElEU19VTlNVUFBPUlRFRF9UWVBFICAgICLQ5eTg6vLo8O7i4O3o5SDq6/735ekg8ujv4CAoJWxkKSDt5SDv7uTk5fDm6OLg5fLx/yIKICAgIElEU19UT09fQklHX1ZBTFVFICAgICAgICLH7eD35e3o5SDx6+j46u7sIOLl6+jq7iAoJWxkKSIKICAgIElEU19ERUxFVEVfQk9YX1RJVExFICAgICLP7uTy4uXw5uTl7ejlIgogICAgSURTX0RFTEVURV9CT1hfVEVYVCAgICAgItPk4Ovo8vwg5+3g9+Xt6OUgJyVzJz8iCiAgICBJRFNfREVMRVRFX0JPWF9URVhUX01VTFRJUExFICJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZXNlIHZhbHVlcz8iCiAgICBJRFNfTkVXS0VZICAgICAgICAgICAgICAize7i++kg6uv+9yAjJWQiCiAgICBJRFNfTkVXVkFMVUUgICAgICAgICAgICAize7i7uUg5+3g9+Xt6CAjJWQiCiAgICBJRFNfTk9URk9VTkQgICAgICAgICAgICAiyPHq7uzg/yDx8vDu6uAgJyVzJyDt5SDt4Onk5e3gIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRklMRURJQUxPR19JTVBPUlRfVElUTEUgICAiyOzv7vDyIPTg6evgIPDl5fHy8OAiCiAgICBJRFNfRklMRURJQUxPR19FWFBPUlRfVElUTEUgICAi3erx7+7w8iD04Onr4CDw5eXx8vDgIgogICAgSURTX0ZJTEVESUFMT0dfRklMVEVSICAgICAgICAgIsLx5SD04Onr+yDw5eXx8vDgXDAqLnJlZ1ww1ODp6/sg8OXl8fLw4CDk6/8gV2luOXgvTlQ0IChSRUdFRElUNClcMCoucmVnXDDC8eUg9ODp6/sgKCouKilcMCouKlwwXDAiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19SRUdJU1RSWV9ST09UX05BTUUgICAgICAgICAgICLM7ukgyu7s7/z+8uXwIgogICAgSURTX1JFR0lTVFJZX0RFRkFVTFRfVkFMVUUgICAgICAgIijP7iDz7O7r9+Dt6P4pIgogICAgSURTX1JFR0lTVFJZX1ZBTFVFX05PVF9TRVQgICAgICAgIijn7eD35e3o5SDt5SDn4OTg7e4pIgogICAgSURTX1JFR0lTVFJZX1ZBTFVFX0NBTlRfRElTUExBWSAgIijt5eLu5+zu5u3uIO7y7uHw4Ofo8vwpIgogICAgSURTX1JFR0lTVFJZX1VOS05PV05fVFlQRSAgICAgICAgIijt5ejn4uXx8u3uICVkKSIKRU5ECgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKgogKiBURVhUSU5DTFVERQogKi8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKCgovKgogKiBTdHJpbmcgVGFibGUKICovCgovKgogKlNUUklOR1RBQkxFIERJU0NBUkRBQkxFCiAqQkVHSU4KICogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIFJlZ2lzdHJ5IEVkaXRvciBIZWxwLiIKICogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIkRpc3BsYXlzIHByb2dyYW0gaW5mb3JtYXRpb24sIHZlcnNpb24gbnVtYmVyLCBhbmQgY29weXJpZ2h0LiIKICpFTkQKICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCg==