LyoKICogUmVnZWRpdCBCdWxnYXJpYW4gcmVzb3VyY2VzCiAqCiAqIENvcHlyaWdodCAyMDA1IE1pbGtvIEtyYWNob3Vub3YKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKCkxBTkdVQUdFIExBTkdfQlVMR0FSSUFOLCBTVUJMQU5HX0RFRkFVTFQKCi8qU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUyAixO7h4OL/IOrr/vfu4uUg6vrsIPHv6PH66uAg8SDu8uzl8uro8uUiCiAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUgIs/w5ezg9eLgIOrr/vfu4uUg7vIg8e/o8frq4CDxIO7y7OXy6ujy5SIKRU5EKi8KCklEUl9SRUdFRElUX01FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIibQ5ePo8fL68CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibC7Prq7egg9ODp6yDiIPDl4+jx8vrw4C4uLiIsICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICImyOft5fHoIPTg6esg7vIg8OXj6PHy+vDgLi4uIiwgICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibR4vrw5ugg8eUg8SDs8OXm7uIg8OXj6PHy+vAuLi4iLCBJRF9SRUdJU1RSWV9DT05ORUNUTkVUV09SS1JFR0lTVFJZLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiyOcm6uv+9+gg7PDl5u7iIPDl4+jx8vrwLi4uIiwgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibP5ffg8lx0Q3RybCtQIiwgICAgICAgICAgICAgIElEX1JFR0lTVFJZX1BSSU5ULCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiyOcm9e7kIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1JFR0lTVFJZX0VYSVQKICAgIEVORAogICAgUE9QVVAgIibQ5eTg6vLo8ODt5SIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibP8O7s5e3oIiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICImze7iIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImyuv+9yIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAiJtLl6vHy7uLgIPHy7unt7vHyIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJsTi7uj37eAg8fLu6e3u8fIiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRFdPUkQg8fLu6e3u8fIiLCAgICAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibI5/Lw6OlcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIs/w5egm7OXt8+Lg6Vx0RjIiLCAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJsru7+jw4Okg6Ozl8u4g7eAg6uv+9+AiLCAgICAgICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICIm0vrw8ehcdEN0cmwrRiIsICAgICAgICAgICAgICAgSURfRURJVF9GSU5ELCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAizeDs5fDoICbx6+Xk4uD5XHRGMyIsICAgICAgICAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIibI5+Pr5eQiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICLL5e3y4CDt4CAm8frx8u7/7ejl8u4iLCAgICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJtDg5+Tl6+jy5esiLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibO4e3u4uhcdEY1IiwgICAgICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICBFTkQKICAgIFBPUFVQICImzvLs5fLq6CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibE7uHg4ugg6vrsIO7y7OXy6ujy5SIsICAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICImz/Dl7OD17egg7vLs5fLq4CIsICAgICAgICAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgIEVORAogICAgUE9QVVAgIibP7uzu+SIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibP7uzu+e3oIPLl7OhcdEYxIiwgICAgICAgICAgICBJRF9IRUxQX0hFTFBUT1BJQ1MKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJs7y7e7x7e4g8OXk4Ory7vDgIO3gIPHo8fLl7O3o/yDw5ePo8fL68CIsICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1BPUFVQX01FTlVTIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICBQT1BVUCAiIgogIEJFR0lOCglNRU5VSVRFTSAiJs/w7uzl7egiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiz/Du7OXt6CDk4u7o9+3o8uUg5ODt7egiLCAgICAgICAgICBJRF9FRElUX01PRElGWV9CSU4KCU1FTlVJVEVNIFNFUEFSQVRPUgoJTUVOVUlURU0gIibI5/Lw6OlcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCglNRU5VSVRFTSAiJs/w5ejs5e3z4uDpIiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KICAgICAgICBQT1BVUCAiJs3u4iIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJsrr/vciLCAgICAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIibS5erx8u7i4CDx8u7p7e7x8iIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIibE4u7o9+3gIPHy7unt7vHyIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JEIPHy7unt7vHyIiwgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImyOfy8OjpXHREZWwiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImz/Dl6Ozl7fPi4OlcdEYyIiwgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibK7u/o8ODpIOjs5fLuIO3gIOrr/vfgIiwgICAgICAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJtL68PHoXHRDdHJsK0YiLCAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgRU5ECkVORAoKCi8qCiAqIERpYWxvZwogKi8KCklERF9GSU5EIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLS+vDx5e3lIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgItL68PHoOiIsSURDX1NUQVRJQyw1LDcsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw0MCw1LDEyNSwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBMVEVYVCAgICAgICAgICAgItL68PHoIOI6IixJRENfU1RBVElDLDUsIDIyLCAxMTksIDgKICAgIENIRUNLQk9YICAgICAgICAiyuv+9+7i5SIsIElEQ19GSU5EX0tFWVMsIDUsIDM0LCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgQ0hFQ0tCT1ggICAgICAgICLI7OXt4CDt4CDx8u7p7e7x8ugiLCBJRENfRklORF9WQUxVRVMsIDUsIDQ2LCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIENIRUNLQk9YICAgICAgICAi0frk+vDm4O3o5SDt4CDx8u7p7e7x8ugiLCBJRENfRklORF9DT05URU5ULCA1LCA1OCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgItL68PHoIOfgIPbl6+j/IO3o5yIsIElEQ19GSU5EX1dIT0xFLCA1LCA3MCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBERUZQVVNIQlVUVE9OICAgItL68PHoIixJRE9LLDE3NSw1LDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIsfg8uLu8OgiLElEQ0FOQ0VMLDE3NSwyMiwzMCwxMSwgV1NfR1JPVVAKRU5ECgpJRERfQURERkFWT1JJVEUgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgNTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsTu4eDi6CDu8uzl8urgIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIsjs5ToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxNDAsNDAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3oIixJRENBTkNFTCwxNzUsNDAsMzAsMTEsIFdTX0dST1VQCkVORAoKSUREX0RFTEZBVk9SSVRFIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDkwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLP8OXs4PXt6CDu8uzl8urgIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIsjs5ToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX05BTUVfTElTVCw1LDE1LDIwMCw1MiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0MCw3MywzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLO8uzl7egiLElEQ0FOQ0VMLDE3NSw3MywzMCwxMSwgV1NfR1JPVVAKRU5ECgpJRERfRURJVF9TVFJJTkcgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgNzUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItDl5ODq8ujw4Okg8ejs4u7r5e0g7ejnIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIsjs5SDt4CDx8u7p7e7x8vLgOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICLE4O3t6DoiLElEQ19TVEFUSUMsNSwzMCwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDYwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIs7y7OXt6CIsSURDQU5DRUwsMTc1LDYwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIyMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLQ5eTg6vLo8ODpIERXT1JEIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIsjs5SDt4CDx8u7p7e7x8vLgOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIxMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICLE4O3t6DoiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICLO8e3u4uAiLCBJRENfRFdPUkRfQkFTRSwgMTIwLCAzMCwgOTUsIDM3LCBCU19HUk9VUEJPWAogICAgQVVUT1JBRElPQlVUVE9OICLY5fHy4O3l5OXx5fLo9+3gIiwgSURDX0RXT1JEX0hFWCwgMTMwLCA0MCwgODAsIDEwLCBXU19UQUJTVE9QCiAgICBBVVRPUkFESU9CVVRUT04gIsTl8eXy6Pft4CIsIElEQ19EV09SRF9ERUMsIDEzMCwgNTIsIDcwLCAxMCwgV1NfVEFCU1RPUAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxNTAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAizvLs5e3oIixJRENBTkNFTCwxODUsODAsMzAsMTEsV1NfR1JPVVAKRU5ECgpJRERfRURJVF9CSU5BUlkgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLQ5eTg6vLo8ODpIOTi7uj37eAg8fLu6e3u8fIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiyOzlIO3gIPHy7unt7vHy8uA6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEx8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIsTg7e3oOiIsSURDX1NUQVRJQyw1LDMwLDkwLDgKICAgIENPTlRST0wgICAgICAgICAiIixJRENfVkFMVUVfREFUQSwiSGV4RWRpdCIsV1NfVEFCU1RPUCw0LDQwLDE2MCw0MAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxNDAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAizvLs5e3oIixJRENBTkNFTCwxNzUsODAsMzAsMTEsV1NfR1JPVVAKRU5ECgovKgogKiBTdHJpbmcgVGFibGUKICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0xJU1RfQ09MVU1OX05BTUUgICAgIsjs5SIKICAgIElEU19MSVNUX0NPTFVNTl9UWVBFICAgICLS6O8iCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAixODt7egiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BUFBfVElUTEUgICAgICAgICAgICLQ5eTg6vLu8CDt4CDx6PHy5ezt6P8g8OXj6PHy+vAiCiAgICBJRENfUkVHRURJVCAgICAgICAgICAgICAiUkVHRURJVCIKICAgIElEQ19SRUdFRElUX0ZSQU1FICAgICAgICJSRUdFRElUX0ZSQU1FIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9NRU5VICAgICAgICAi0frk+vDm4CDq7uzg7eToIOfgIPPv8ODi6+Xt6OUg7eAg9uXr6P8g8OXj6PHy+vAiCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAi0frk+vDm4CDq7uzg7eToIOfgIPDl5ODq8ujw4O3lIO3gIPHy7unt7vHy6CDo6+gg6uv+9+7i5SIKICAgIElEX1ZJRVdfTUVOVSAgICAgICAgICAgICLR+uT68ObgIOru7ODt5Ogg5+Ag7+Xw8e7t4Ovo5+jw4O3lIO3gIOL67fjt6P8g4ujkIO3gIPDl5ODq8u7w4CIKICAgIElEX0ZBVk9SSVRFU19NRU5VICAgICAgICLR+uT68ObgIOru7ODt5Ogg5+Ag5O7x8vrvIOTuIPfl8fLuIOjn7+7r5+Lg7egg6uv+9+7i5SIKICAgIElEX0hFTFBfTUVOVSAgICAgICAgICAgICLR+uT68ObgIOru7ODt5Ogg5+Ag6Ofi6Ori4O3lIO3gIO/u7O75IOfgIPDl5ODq8u7w4CDt4CDw5ePo8fL68OAiCiAgICBJRF9FRElUX05FV19NRU5VICAgICAgICAi0frk+vDm4CDq7uzg7eToIOfgIPH65+Tg4uDt5SDt4CDt7uLoIPHy7unt7vHy6CDo6+gg6uv+9+7i5SIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfRURJVF9NT0RJRlkgICAgICAgICAgIs/w7uzl7f8g5ODt7ejy5SDiIPHy7unt7vHy8uAiCiAgICBJRF9FRElUX05FV19LRVkgICAgICAgICAixO7h4OL/IO3u4iDq6/73IgogICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUgIsTu4eDi/yDt7uLgIPHy7unt7vHyIO7yIPLo7yDx6Ozi7uvl7SDt6OciCiAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRSAixO7h4OL/IO3u4uAg5OLu6Pft4CDx8u7p7e7x8iIKICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUgICLE7uHg4v8g7e7i4CBEV09SRCDx8u7p7e7x8iIKICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRSAiwuz66uLgIPLl6vHy7uIg9ODp6yDiIPHo8fLl7O3o/yDw5ePo8fL68CIKICAgIElEX1JFR0lTVFJZX0VYUE9SVFJFR0lTVFJZRklMRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIsfg7+jx4uAg9v/r7vLuIOjr6CD34PHyIO7yIPH65Prw5uDt6OXy7iDt4CDx6PHy5ezt6P8g8OXj6PHy+vAg4vriIPLl6vHy7uIg9ODp6yIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICLR4vrw5+LgIPHlIPH68SDx6PHy5ezt6P8g8OXj6PHy+vAg7eAg5PDz4yDq7uzv/vL68CIKICAgIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICLP8OXq8ODy/+LgIOLw+ufq4PLgIPH68SDx6PHy5ezt6P8g8OXj6PHy+vAg7eAg5PDz4yDq7uzv/vL68CIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICLQ4Ofv5ffg8uLgIPbl6+j/IOjr6CD34PHyIO7yIPHo8fLl7O3o/yDw5ePo8fL68CIKLyogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIHJlZ2lzdHJ5IGVkaXRvciBoZWxwIiAqLwogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIs/u6uDn4uAg6O307vDs4Pbo/yDn4CDv8O7j8ODs4Cwg4uXw8ej/8uAg6CDg4vLu8PHq6PLlIO/w4OLgIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiyOfr6OfgIO7yIPDl5ODq8u7w4CDt4CDx6PHy5ezt6P8g8OXj6PHy+vAiCiAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMgIsTu4eDi/yDq6/737uLlIOr67CDx7+jx+urgIPEg7vLs5fLq6PLlIgogICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFICLP8OXs4PXi4CDq6/737uLlIO7yIPHv6PH66uAg8SDu8uzl8uro8uUiCiAgICBJRF9WSUVXX1NUQVRVU0JBUiAgICAgICAiz+7q4Ofi4CDo6+gg8erw6OLgIOvl7fLg8uAg7eAg8frx8u7/7ejl8u4iCiAgICBJRF9WSUVXX1NQTElUICAgICAgICAgICAiz/Du7OXt/yDs5fHy7u/u6+7m5e3o5fLuIO3gIPDg5+Tl6+jy5ev/IOzl5uTzIOTi5fLlIO/u6+7i6O3oIO3gIPDl5ODq8u7w4CIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICLO4e3u4v/i4CDx+uT68Obg7ejl8u4g7eAg7/Du5+7w5fbgIgogICAgSURfRURJVF9ERUxFVEUgICAgICAgICAgIsjn8vDo4uAg6Ofh8ODt7vLuIgogICAgSURfRURJVF9SRU5BTUUgICAgICAgICAgIs/w5ejs5e3z4uAg6Ofh8ODt7vLuIgogICAgSURfRURJVF9DT1BZS0VZTkFNRSAgICAgIsru7+jw4CDo7OXy7iDt4CDo5+Hw4O3o/yDq6/73IOIg8ejx8uXs7ej/IOHz9OXwIgogICAgSURfRURJVF9GSU5EICAgICAgICAgICAgItL68PHoIOfgIPLl6vHy7uIg7ejnIOIg6uv+9+7i5fLlLCDx8u7p7e7x8ujy5SDoIOTg7e3o8uUiCiAgICBJRF9FRElUX0ZJTkRORVhUICAgICAgICAi0vrw8egg8evl5OLg+e7y7iDs//Hy7iwg7eAg6u7l8u4g8eUg8fDl+eAg8uXq8fLgIO7yIO/w5eTo+O3u8u4g8vrw8eXt5SIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0VSUk9SCQkgICAgIsPw5fjq4CIKICAgIElEU19CQURfS0VZCQkgICAgIsfg/+Lq4PLgIOfgIOrr/vcgJyVzJyDt5fPx7+X47eAiCiAgICBJRFNfQkFEX1ZBTFVFICAgICAgICAgICAix+D/4urg8uAg5+Ag8fLu6e3u8fIgJyVzJyDt5fPx7+X47eAiCiAgICBJRFNfVU5TVVBQT1JURURfVFlQRSAgICAizeUg7O7m5SDk4CDw5eTg6vLo8ODy5SDq6/737uLlIO7yIPLu5+gg8ujvICglbGQpIgogICAgSURTX1RPT19CSUdfVkFMVUUgICAgICAgItHy7unt7vHy8uAg5SDv8OXq4Ovl7e4g4+7r/+zgICglbGQpIgogICAgSURTX0RFTEVURV9CT1hfVElUTEUgICAgIs/u8uL68OTl8uUg6Ofy8Oji4O3l8u4g7eAg8fLu6e3u8fLy4CIKICAgIElEU19ERUxFVEVfQk9YX1RFWFQgICAgICLN4Ojx8ujt4CDr6CDo8erg8uUg5OAg6Ofy8Ojl8uUg8fLu6e3u8fLy4CAnJXMnPyIKICAgIElEU19ORVdLRVkgICAgICAgICAgICAgICLN7uIg6uv+9yAjJWQiCiAgICBJRFNfTkVXVkFMVUUgICAgICAgICAgICAize7i4CDx8u7p7e7x8iAjJWQiCkVORAoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyoKICogVEVYVElOQ0xVREUKICovCgoxIFRFWFRJTkNMVURFIERJU0NBUkRBQkxFCkJFR0lOCiAgICAicmVzb3VyY2UuaFwwIgpFTkQKCgoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKLyoKICpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQogKkJFR0lOCiAqICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyBSZWdpc3RyeSBFZGl0b3IgSGVscC4iCiAqICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJEaXNwbGF5cyBwcm9ncmFtIGluZm9ybWF0aW9uLCB2ZXJzaW9uIG51bWJlciwgYW5kIGNvcHlyaWdodC4iCiAqRU5ECiAqLwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo=