LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogUnVzc2lhbiBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAzIElnb3IgU3RlcGluCiAqIENvcHlyaWdodCAyMDA2IFZpdGFsaXkgTWFyZ29sZW4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19SVVNTSUFOLCBTVUJMQU5HX0RFRkFVTFQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKSURSX1dJTkVDRkcgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkNvbmZpZ3VyZSIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAovKgogICAgTFRFWFQgICAgICAgICAgICLd8uAg4ejh6+ju8uXq4CD/4uv/5fLx/yDx4u7h7uTt++wg7/Du4/Dg7Ozt++wg7uHl8e/l9+Xt6OXsOyDi+yDs7ubl8uUg8ODx7/Du8fLw4O3/8vwg5bgg6C/o6+gg7O7k6PTo9ujw7uLg8vwg8e7j6+Dx7e4g8/Hr7uLo/+wg6+j25e3n6OggR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCDu7/Ph6+jq7uLg7e3u6SBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IOLl8PHo6CAyLjEg6+j25e3n6Ogg6OvoICjt4CDi4PjlIPPx7O7y8OXt6OUpIOv+4e7pIOHu6+XlIO/u5+Tt5ekuIiwKKi8KICAgIExURVhUICAgICAgICAgICAiVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDv8Ojr7ubl7ejpICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiV2luZSDs7ubl8iDo7Ojy6PDu4uDy/CDw4Oft++Ug4uXw8ejoIFdpbmRvd3Mg5Ov/IPDg5+379SDv8Ojr7ubl7ejpLiDd8uAg4urr4OTq4CDx4v/n4O3gIPEg4urr4OTq4OzoIMHo4evo7vLl6ugg6CDD8OD06OrgLCDk6/8g8u7j7iD38u7h+yDv7ufi7uvo8vwg4uDsIOjn7OXt6PL8IOPr7uHg6/zt++Ug7eDx8vDu6eroIOjr6CDt4PHy8O7p6ugg8u7r/OruIOTr/yDu7/Dl5OXruO3t7uPuIO/w6Ovu5uXt6P8g8uDq5uUg6CDiIP3y6PUg4urr4OTq4PUuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNyw2MAogICAgQ09OVFJPTCAgICAgICAgICLP8Ojr7ubl7ej/IixJRENfQVBQX0xJU1RWSUVXLCJTeXNMaXN0VmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTFZTX0xJU1QgfCBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMsCiAgICAgICAgICAgICAgICAgICAgMTUsNjUsMjMwLDEzNAogICAgUFVTSEJVVFRPTgkgICAgIibE7uHg4ujy/CDv8Ojr7ubl7ejlLi4uIixJRENfQVBQX0FEREFQUCwgNjgsMjA0LDk0LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiJtPk4Ovo8vwg7/Do6+7m5e3o5SIsSURDX0FQUF9SRU1PVkVBUFAsIDE2NCwyMDQsNzgsMTQKICAgIExURVhUICAgICAgICAgICAiJsLl8PHo/yBXaW5kb3dzOiIsSURDX1NUQVRJQywxNywyMjYsNTgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMjI0LDE2Myw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgICAgCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDN4PHy8O7p6ugg7urt4CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxODAKCiAgICBDT05UUk9MCSAgICAi0ODn8OX46PL8IO/w6Ovu5uXt6P4gRGlyZWN0WCDz5OXw5uji4PL8IOz7+Pwg4iDx4u647CDu6u3lIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE0LDIzNSw4CiAgICBDT05UUk9MCSAgICAi0ODn8OX46PL8IOzl7eXk5uXw8yDu6u7tIPPv8ODi6//y/CDu6u3g7OggV2luZSIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzQsMjMwLDgKCiAgICBMVEVYVCAgICAgICAgICAgIsXx6+gg4urr/vfo8vwg/ezz6//26P4g8ODh7vfl4+4g8fLu6+AsIPLuIOLx5SDu6u3gIOHz5PPyIO7y7uHw4Obg8vzx/yDiIO7k7e7sICfi6PDy8+Dr/O3u7CD96vDg7eUnIOfg5ODt7e7j7iDw4Ofs5fDgLiDI7eD35SDu6u3gIPDg5+zl+eD+8vH/LCDq4Oog7uH79+3uLCDt4CDx8uDt5ODw8u3u7CDw4OHu9+XsIPHy7uvlLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwxMTcsMjI4LDM2CiAgICBMVEVYVCAgICAgICAgICAgItDg5+zl8CDw4OHu9+Xj7iDx8u7r4DoiLElEQ19ERVNLVE9QX1NJWkUsMTUsMTY3LDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTA4LDE2Nyw4LDgsV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAi3ezz6+jw7uLg8vwg4ujw8vPg6/zt++kg8ODh7vfo6SDx8u7rIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxNTIsMjMwLDEwCgogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDE2Nyw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNywxNjcsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdDNEICIsSURDX1NUQVRJQyw4LDE4OSwyNDQsNTUKCiAgICBMVEVYVAkgICAgIsLl8Pjo7e375SD45enk5fD7OiAiLElEQ19TVEFUSUMsMTUsMTk5LDEyMCwzMAogICAgQ09NQk9CT1gJICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEyMCwxOTcsMTI1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiwurr/vfo8vwgUGl4ZWwgU2hhZGVyICjl8evoIO/u5OTl8Obo4uDl8vH/IO7h7vDz5O7i4O3o5ewpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIxNiwyMzAsMTAKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDH4Ozl+eXt6P8gRExMICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICLE6O3g7Oj35fHq6CDv7uTq6/734OXs++Ug4ejh6+ju8uXq6CDs7uPz8iDh+/L8IOLx8vDu5e3t++zoIGJ1aWx0aW4gKO/w5eTu8fLg4uv//vLx/yBXaW5lKSDo6+gg8O7k7fvs6CBuYXRpdmUgKOHl8PPy8f8g6OcgV2luZG93cyDo6+gg7/Dl5O7x8uDi6//+8vH/IO/w6Ovu5uXt6OXsKS4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIs3u4u7lIOfg7OX55e3o5SDk6/8g4ejh6+ju8uXq6DoiLElEQ19TVEFUSUMsMTYsNTgsMTYwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRExMQ09NQk8sMTYsNjgsMTQwLDE0LENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQgfCBDQlNfTE9XRVJDQVNFCiAgICBQVVNIQlVUVE9OICAgICAgIibE7uHg4ujy/CIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAi0fP55fHy4vP++ejlIOfg7OX55e3o/zoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJtDl5ODq8ujw7uLg8vwiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIibT5ODr6PL8IixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDEzMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItDl5ODq8ujw7uLg8vwg5+Ds5fnl7ejlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDP7vD/5O7qIOfg4/Dz5+roICIsSURDX1NUQVRJQyw4LDQsMTE1LDY2CiAgICBDT05UUk9MICAgICAgICAgIibC8fLw7uXt7eD/IChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCwxMDUsMTAKICAgIENPTlRST0wgICAgICAgICAiJtDu5O3g/yAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsMTA1LDEwCiAgICBDT05UUk9MICAgICAgICAgIsIm8fLw7uXt7eD/IOfg8uXsIPDu5O3g/yIsSURDX1JBRF9CVUlMVElOX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDM0LDEwNSwxMAogICAgQ09OVFJPTCAgICAgICAgICLQ7uQm7eD/IOfg8uXsIOLx8vDu5e3t4P8iLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCwxMDUsMTAKICAgIENPTlRST0wgICAgICAgICAiJsHr7uro8O7i4PL8IixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw1NCwxMDUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLO8uzl7eAiLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDN4PHy8O7p6uAg5Ojx6u7iICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfRFJJVkVTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDE4LDIzMiw3NgogICAgUFVTSEJVVFRPTiAgICAgICImxO7h4OLo8vwuLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDQ1LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIibT5ODr6PL8IixJRENfQlVUVE9OX1JFTU9WRSw2Niw5OCw0NywxNAogICAgUFVTSEJVVFRPTiAgICAgICImwOLy7u7v8OXk5evl7ejlLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTY1LDk4LDgwLDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIibP8/L8OiIsSURDX1NUQVRJQywxNSwxMjMsMjAsOSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDQxLDEyMCwxNjAsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIibO4efu8C4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwyMDYsMTIwLDQwLDEzCiAgICAKICAgIExURVhUICAgICAgICAgICAiJtLo7zoiLElEQ19TVEFUSUNfVFlQRSwxNSwxMzgsMjEsMTAKICAgIENPTUJPQk9YICAgICAgICBJRENfQ09NQk9fVFlQRSw0MSwxMzUsNzcsNjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICAKICAgIExURVhUICAgICAgICAgICAizOXy6uAg6CDx5fDo6e376SDt7uzl8CIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICLE7u/u6+3o8uXr/O3uLi4uIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxNTAsMTM2LDk2LDEzCiAgICBDT05UUk9MICAgICAgICAgIsDi8u7u7/Dl5OXr6PL8ICZjIPPx8vDu6fHy4uA6IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTY2LDE1MCwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTc0LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIs7hJufu8C4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwNiwxNzYsNDAsMTMKICAgIENPTlRST0wgICAgICAgICAiJs3g5+3g9+jy/CDi8PP37fP+OiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDEwMCwxMAoKICAgIExURVhUICAgICAgICAgICAiJszl8urgOiIsSURDX1NUQVRJQ19MQUJFTCwzMywyMDgsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCwxMDMsMjA1LDExOCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi0eXw6Ont++kg7e7s5fA6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsODAsMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsMTAzLDIyMSwxMTgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICLP7urg5/vi4PL8IPTg6ev7LCDt4Pfo7eD++ejl8f8g8SDy7vfq6CIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIML74e7wIOTw4Oni5fDgICIsSURDX1NUQVRJQyw4LDQsMjQ0LDE5NQogICAgTFRFWFQJICAgICLH4vPq7uLu6SDk8ODp4uXwOiAiLElEQ19TVEFUSUMsMTUsMjAsMjI3LDMwCiAgICBDT05UUk9MICAgICAgICAgIkRldmljZXMiLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDUwLDE0MCwxNDAKICAgIFBVU0hCVVRUT04JICAgICLP4O3l6/wg8+/w4OLr5e3o/yIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDUwLDgwLDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVAkgICAgIsDv7+Dw4PLt7uUg8/Hq7vDl7ejlOiAiLElEQ19TVEFUSUMsMTUsMjE1LDkwLDEwCiAgICBDT01CT0JPWAkgICAgSURDX0RTT1VORF9IV19BQ0NFTCwxMDAsMjEzLDE0NSw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi1+Dx8u7y4CAo4+Xw9ik6IixJRENfU1RBVElDLDE1LDIzMiw3MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9SQVRFUywxMDAsMjMwLDQyLDc2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLK7uTo8O7i4O3o5SAo4ejyKToiLElEQ19TVEFUSUMsMTQ0LDIzMiw4MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIxNiwyMzAsMzAsNTIsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgIt3s8+v/9uj/IOTw4Oni5fDgIixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjUwLDIzMCwxMApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDC7eX47ejpIOLo5CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAi0uXs4DoiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgItPx8uDt7uLo8vwg8uXs8y4uLiIsSURDX1RIRU1FX0lOU1RBTEwsMTUyLDIzLDkzLDE0CiAgICBMVEVYVCAgICAgICAgICAgItbi5fI6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLQ4Ofs5fA6IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLd6+Xs5e3yOiIsSURDX1NUQVRJQywxNSw2NCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19TWVNQQVJBTV9DT01CTywxNSw3NCwxMTIsMTIwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUCiAgICBMVEVYVCAgICAgICAgICAgItbi5fI6IixJRENfU1lTUEFSQU1fQ09MT1JfVEVYVCwxMzUsNjQsMjUsOCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICIiLElEQ19TWVNQQVJBTV9DT0xPUiwxMzUsNzQsMjUsMTMsV1NfRElTQUJMRUQgfCBCU19PV05FUkRSQVcKICAgIExURVhUICAgICAgICAgICAi0ODn7OXwOiIsSURDX1NZU1BBUkFNX1NJWkVfVEVYVCwxNjYsNjQsMzAsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19TWVNQQVJBTV9TSVpFLDE2Niw3NCwyMywxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19TWVNQQVJBTV9TSVpFX1VELFVQRE9XTl9DTEFTUyxVRFNfU0VUQlVERFlJTlQgfCBXU19ESVNBQkxFRCwxODcsNzQsMTUsMTMKICAgIFBVU0hCVVRUT04gICAgICAi2PDo9PIiLElEQ19TWVNQQVJBTV9GT05ULDIwOCw3NCwzNywxMyxXU19ESVNBQkxFRAogICAgR1JPVVBCT1ggICAgICAgICIg0fLg7eTg8PLt++Ug7+Dv6uggIixJRENfU1RBVElDLDgsMTE0LDI0NCwxMDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX1NGUEFUSFMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDEyNiwyMzAsNjQKICAgIENPTlRST0wgICAgICAgICAizeDv8ODi6PL8IOI6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDUwLDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw2NSwxOTUsMTQ1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiwvvh8ODy/CIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfV0lORV9WRVJTSU9OICAgICAgICAiQ1ZTIgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIs/w6Ovu5uXt6P8iCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiwejh6+ju8uXq6CIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICLE6PHq6CIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICLC++Hl8Ojy5SD25evl4u7pIOrg8uDr7uMg4iDx6PHy5ezlLiIKICAgIElEU19ISURFX0FEVkFOQ0VEICAgICAgICLR6vD78vwg5O7v7uvt6PLl6/zt++UiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiz+7q4Ofg8vwg5O7v7uvt6PLl6/zt++UiCiAgICBJRFNfTk9USEVNRSAgICAgICAgICAgICAiKOHl5yDy5ez7KSIKICAgIElEU19UQUJfR1JBUEhJQ1MgICAgICAgICLD8OD06OrgIgogICAgSURTX1RBQl9ERVNLVE9QX0lOVEVHUkFUSU9OICLC6OQg6CDo7fLl4/Dg9uj/IgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIsDz5OjuIgogICAgSURTX1RBQl9BQk9VVCAgICAgICAgICAgIs4g7/Du4/Dg7OzlIgogICAgSURTX1dJTkVDRkdfVElUTEUgICAgICAgIs3g8fLw7unq4CBXaW5lIgogICAgSURTX1dJTkVDRkdfVElUTEVfQVBQICAgIs3g8fLw7unq4CBXaW5lIOTr/yAlcyIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICLU4Onr+yDy5ewiCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAiwvvh5fDo8uUg9ODp6yDxIPLl7O7pIgogICAgSURTX0FVRElPX01JU1NJTkcgICAgICAgIsru7fTo4/Pw4Pbo/yDn4vPq7uLu4+4g5PDg6eLl8OAg7eUg7eDp5OXt4C5cblxuwvvh8ODtIOTw4Oni5fAg7+4g8+zu6/fg7ej+LiDF8evoIO3l7uH17uTo7O4sIOL7IOzu5uXy5SDi++Hw4PL8IOTw8+Pu6SDo5yDx7+jx6uAg5O7x8vPv7fv1IOTw4Oni5fDu4i5cblxuxOv/IPHu9fDg7eXt6P8g6Ofs5e3l7ejpIO3g5uzo8uUg6u3u7+rzIM/w6Ozl7ejy/C4iCiAgICBJRFNfU0hFTExfRk9MREVSICAgICAgICAi0fLg7eTg8PLt++Ug7+Dv6ugiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAi0eL/5+Dt7iDxIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRExMX1dBUk5JTkcgICAgICAgICAgICAgIsjn7OXt5e3o5SDv7vD/5OrgIOfg4/Dz5+roIP3y7ukg4ejh6+ju8uXq6CDt5SDw5eru7OXt5PPl8vH/Llxuwvsg5OXp8fLi6PLl6/zt7iD17vLo8uUg6Ofs5e3o8vwg7+7w/+Tu6j8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAgICAgIsLt6Ozg7ejlOiDx6PHy5ezt4P8g4ejh6+ju8uXq4CIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICAgICAi8O7k7eD/IgogICAgSURTX0RMTF9CVUlMVElOICAgICAgICAgICAgICLi8fLw7uXt7eD/IgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgICAgICLw7uTt4P8sIOLx8vDu5e3t4P8iCiAgICBJRFNfRExMX0JVSUxUSU5fTkFUSVZFICAgICAgIuLx8vDu5e3t4P8sIPDu5O3g/yIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICAgICAi7vLq6/735e3gIgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgICAgICLT8fLg7e7i6ugg7+4g8+zu6/fg7ej+IgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgICAgICLP8O7j8ODs7PsgV2luZSAoKi5leGUsKi5leGUuc28pXDAqLmV4ZTsqLmV4ZS5zb1wwIgogICAgSURTX1VTRV9HTE9CQUxfU0VUVElOR1MgICAgICLI8e/u6/zn7uLg8vwg7+4g8+zu6/fg7ej+IgogICAgSURTX1NFTEVDVF9FWEVDVVRBQkxFICAgICAgICLC++Hl8Ojy5SDo8e/u6+3/5ez76SD04OnrIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfU0hBREVSX01PREVfSEFSRFdBUkUgICAgIsLq6/735e37IgogICAgSURTX1NIQURFUl9NT0RFX05PTkUgICAgICAgICLC++rr/vfl7fsiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19EUklWRV9VTktOT1dOICAgICAgICAgICAiwOLy7u7v8OXk5evo8vwiCiAgICBJRFNfRFJJVkVfRklYRUQgICAgICAgICAgICAgIsbl8fLq6Okg5Ojx6iIKICAgIElEU19EUklWRV9SRU1PVEUgICAgICAgICAgICAi0eXy5eLu6SDk6PHqIgogICAgSURTX0RSSVZFX1JFTU9WQUJMRSAgICAgICAgICLE6PHq7uLu5CIKICAgIElEU19EUklWRV9DRFJPTSAgICAgICAgICAgICAiQ0QtUk9NIgogICAgSURTX0RSSVZFX0xFVFRFUlNfRVhDRUVERUQgICLN5eLu5+zu5u3uIPHu5+Tg8vwg7e7i++kg5Ojx6i5cblxu0yDq4Obk7uPuIOTo8ergIOTu6+bt4CDh+/L8IOHz6uLgIC0g7vIgQSDk7iBaLCDoIPMgwuDxIPPm5SAyNiDk6PHq7uIuIgogICAgSURTX1NZU1RFTV9EUklWRV9MQUJFTCAgICAgICLR6PHy5ezt++kg5Ojx6iIKICAgIElEU19DT05GSVJNX0RFTEVURV9DICAgICAgICAiwvsg5OXp8fLi6PLl6/zt7iD17vLo8uUg8+Tg6+jy/CDk6PHqIEM/XG5cbsHu6/z46O3x8uLuIFdpbmRvd3Mg7/Du4/Dg7Owg7+Xw5fHy4O3z8iDw4OHu8uDy/CDh5ecg5Ojx6uAgQy4gxfHr6CDC+yDi8eUg5uUg8OX46OvoIPPk4Ovo8vwg5Ojx6iwg7eUg5+Dh8+T88uUg8e7n5ODy/CDt7uL76SEiCiAgICBJRFNfQ09MX0RSSVZFTEVUVEVSICAgICAgICAgIsTo8eoiCiAgICBJRFNfQ09MX0RSSVZFTUFQUElORyAgICAgICAgIs/z8vwiCiAgICBJRFNfTk9fRFJJVkVfQyAgICAgICAgICAgICAgIsL7IO3lIO3g5+3g9+jr6CDk6PHqIEMuXG5cbs3lIOfg4fPk/PLlIOXj7iDx7ufk4PL8IVxuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIs/u6+3u5SIKICAgIElEU19BQ0NFTF9TVEFOREFSRCAgICAgICAgICAi0fLg7eTg8PLt7uUiCiAgICBJRFNfQUNDRUxfQkFTSUMgICAgICAgICAgICAgIszo7ejs4Ov87e7lIgogICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICLd7PPr//bo/yIKICAgIElEU19EUklWRVJfQUxTQSAgICAgICAgICAgICAiQUxTQSDk8ODp4uXwIgogICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQg5PDg6eLl8CIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTIOTw4Oni5fAiCiAgICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0sg5PDg6eLl8CIKICAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTIOTw4Oni5fAiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKSDk8ODp4uXwIgogICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8g5PDg6eLl8CIKICAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAizeXi7ufs7ubt7iDu8urw+/L8ICVzISIKICAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiwPPk6O4g5PDg6eLl8OAiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgItPx8vDu6fHy4u4g4vvi7uTgIOfi8+rgIgogICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICLT8fLw7unx8uLuIOLi7uTgIOfi8+rgIgogICAgSURTX0RFVklDRVNfTUlESU9VVCAgICAgICAgICLT8fLw7unx8uLuIOL74u7k4CBNSURJIgogICAgSURTX0RFVklDRVNfTUlESUlOICAgICAgICAgICLT8fLw7unx8uLuIOLi7uTgIE1JREkiCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIsTu7+7r7ejy5ev87e7lIPPx8vDu6fHy4u4iCiAgICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgItPx8vDu6fHy4u4g7Ojq+Ojw7uLg7ej/IgogICAgSURTX1VOQVZBSUxBQkxFX0RSSVZFUiAgICAgICLE8ODp4uXwLCDz6uDn4O3t++kg4iDw5eXx8vDlLCDt5SDt4Onk5e0hXG5cbtPk4Ovo8vwgXCIlc1wiIOjnIPDl5fHy8OA/IgogICAgSURTX1dBUk5JTkcgICAgICAgICAgICAgICAgICLC7ejs4O3o5SIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURDX1NZU1BBUkFNU19CVVRUT04gICAgICAgICAgICAi3evl7OXt8vsg8+/w4OLr5e3o/yAtIPTu7SIKICAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX1RFWFQgICAgICAgIt3r5ezl7fL7IPPv8ODi6+Xt6P8gLSDy5erx8iIKICAgIElEQ19TWVNQQVJBTVNfREVTS1RPUCAgICAgICAgICAgItHy7usiCiAgICBJRENfU1lTUEFSQU1TX01FTlUgICAgICAgICAgICAgICLM5e3+IC0g9O7tIgogICAgSURDX1NZU1BBUkFNU19NRU5VX1RFWFQgICAgICAgICAizOXt/iAtIPLl6vHyIgogICAgSURDX1NZU1BBUkFNU19TQ1JPTExCQVIgICAgICAgICAiz+7r7vHgIO/w7urw8/Lq6CIKICAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OICAgICAgICAgIsL75OXr5e3o5SAtIPTu7SIKICAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OX1RFWFQgICAgIsL75OXr5e3o5SAtIPLl6vHyIgogICAgSURDX1NZU1BBUkFNU19UT09MVElQICAgICAgICAgICAiz+7k8erg5+rgIC0g9O7tIgogICAgSURDX1NZU1BBUkFNU19UT09MVElQX1RFWFQgICAgICAiz+7k8erg5+rgIC0g8uXq8fIiCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPVyAgICAgICAgICAgICLR7uTl8Obo7O7lIO7q7eAgLSD07u0iCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPV19URVhUICAgICAgICLR7uTl8Obo7O7lIO7q7eAgLSDy5erx8iIKICAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFICAgICAgIsDq8uji7e7lIO7q7e4iCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRV9URVhUICLA6vLo4u3u5SDu6u3uIC0g8uXq8fIiCiAgICBJRENfU1lTUEFSQU1TX0lOQUNUSVZFX1RJVExFICAgICLP4PHx6OLt7uUg7urt7iIKICAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfVEVYVCAiz+Dx8eji7e7lIO7q7e4gLSDy5erx8iIKRU5ECg==