LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBUdXJraXNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChDKSAyMDA2IEZhdGloIEH+/WP9CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJ3Y21kLmgiCgpMQU5HVUFHRSBMQU5HX1RVUktJU0gsIFNVQkxBTkdfREVGQVVMVAoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQVRUUklCIGhha2v9bmRhIHlhcmT9bVxuIgogIFdDTURfQ0FMTCwKIkNBTEwgPHRvcGx1af5sZW1kb3N5YXP9PiBrb211dHUgYmlyIHRvcGx1IGn+bGVtIGRvc3lhc/1uZGEgYmH+a2EgYmlyXG5cCnRvcGx1IGn+bGVtIGRvc3lhc/1uZGFraSBrb211dGxhcv0g52Fs/f50/XJtYWsgaedpbiBrdWxsYW79bP1yLiBF8GVyXG5cCmRvc3lhIG1ldmN1dHNhLCBkZW5ldGltIHlpbmUgb251IOdh8P1yYW4gZG9zeWF5YSBk9m5lci4gQ0FMTCBrb211dHVcblwK52Hwcv1sYW4geW9yZGFtbGFyIGnnaW4gcGFyYW1ldHJlIHZlcmViaWxpci5cblwKXG5cCsdh8HL9bGFuIGJpciB5b3JkYW1kYSBkZfBp/nRpcmlsZW4gZGl6aW5sZXIsIOdldnJlIGRl8Gn+a2VubGVyaSB2Yi5cblwKa2VuZGlzaW5pIOdh8P1yYW4gdGFyYWb9bmRhbiBtaXJhcyBhbP1u/XIuXG4iCgogIFdDTURfQ0QsICAgICAiQ0QgaGFra/1uZGEgeWFyZP1tXG4iCiAgV0NNRF9DSERJUiwgICJDSERJUiBoYWtr/W5kYSB5YXJk/W1cbiIKCiAgV0NNRF9DTFMsICAgICJDTFMga29uc29sIGVrcmFu/W79IHRlbWl6bGVyXG4iCgogIFdDTURfQ09QWSwgICAiQ09QWSBoYWtr/W5kYSB5YXJk/W1cbiIKICBXQ01EX0NUVFksICAgIkNUVFkgaGFra/1uZGEgeWFyZP1tXG4iCiAgV0NNRF9EQVRFLCAgICJEQVRFIGhha2v9bmRhIHlhcmT9bVxuIgogIFdDTURfREVMLCAgICAiREVMIGhha2v9bmRhIHlhcmT9bVxuIgogIFdDTURfRElSLCAgICAiRElSIGhha2v9bmRhIHlhcmT9bVxuIgoKICBXQ01EX0VDSE8sCiJFQ0hPIDxpbGV0aT4gZ2XnZXJsaSB152JpcmltIGF5Z/10/W5kYSA8aWxldGk+J3lpIGf2c3RlcmlyLlxuXApcblwKRUNITyBPTiBiaXIgdG9wbHUgaf5sZW0gZG9zeWFz/W5kYSB0/G0ga29tdXRsYXL9biDnYWz9/nT9cv1sbWFkYW4g9m5jZVxuXAp152JpcmltIGF5Z/10/W5kYSBn9nL8bnT8bGVubWVzaW5pIHNh8GxhclxuXApcblwKRUNITyBPRkYgYmlyIPZuY2VraSBFQ0hPIE9OIChFQ0hPIPZudGFu/W1s/SBvbGFyYWsga2FwYWz9ZP1yKWtvbXV0dW51blxuXAp0ZXJzaW5pIHlhcGFyLiBFQ0hPIE9GRiDn/Wt0/XP9bv1uIGf2cvxudPxsZW5tZXNpbmkgYmH+/W5hIEAgaf5hcmV0aVxuXApnZXRpcmVyZWsgZW5nZWxsZXllYmlsaXJzaW5pei5cbiIKCiAgV0NNRF9FUkFTRSwgICJFUkFTRSBoYWtr/W5kYSB5YXJk/W1cbiIKCiAgV0NNRF9GT1IsCiJGT1Iga29tdXR1IGJpciBkb3N5YSBr/G1lc2luaW4gaGVyIPbwZXNpIGnnaW4gYmlyIGtvbXV0IOdhbP3+dP1ybWFkYVxuXAprdWxsYW79bP1yLlxuXApcblwKU/Z6ZGl6aW06IEZPUiAlZGXwaf5rZW4gSU4gKGv8bWUpIERPIGtvbXV0XG5cClxuXApGT1Iga3VsbGFu/W39IGnnaW4gdG9wbHUgaf5sZW0gZG9zeWFz/W5kYSAlIGn+YXJldGluaSDnaWZ0IGt1bGxhbm1hXG5cCmdlcmVrc2luaW1pIGNtZCdkZSB5b2t0dXIuXG4iCgogIFdDTURfR09UTywKIkdPVE8ga29tdXR1IOdhbP3+bWEgc2F0/XL9bv0gdG9wbHUgaf5sZW0gZG9zeWFz/W5kYWtpIGJh/mthIGJpciBzYXT9cmFcblwKefZubGVuZGlyaXIuXG5cClxuXApHT1RPIGtvbXV0dW51biBoZWRlZmkgb2xhY2FrIGV0aWtldCBlbiBmYXpsYSAyNTUga2FyYWt0ZXJkZW4gb2x1/mFiaWxpcjtcblwKYW5jYWsgYm/+bHVrIGnnZXJlbWV6IChidSBkafBlciBp/mxldGltIHNpc3RlbWxlcmluZGVuIGZhcmts/WT9cikuIEXwZXJcblwKdG9wbHUgaf5sZW0gZG9zeWFz/W5kYSBheW79IGV0aWtldCBiaXIgdmV5YSBkYWhhIGZhemxhIHllcmRlIGt1bGxhbv1sbf3+c2FcblwKaGVyIHphbWFuIGlsayBldGlrZXQga3VsbGFu/WxhY2FrdP1yLiBHT1RPIHZhciBvbG1heWFuIGJpciBldGlrZXQgYWz9cnNhXG5cCnRvcGx1IGn+bGVtIGRvc3lhc/0gc29ubGFuYWNha3T9ci5cblwKXG5cCkdPVE8ga29tdXR1bnVuIGV0a2lsZf5pbWxpIG9sYXJhayBrdWxsYW79bf1u/W4gYmlyIGV0a2lzaSB5b2t0dXIuXG4iCgogIFdDTURfSEVMUCwgICAiSEVMUCBoYWtr/W5kYSB5YXJk/W1cbiIKCiAgV0NNRF9JRiwKIklGIGJpciBrb211dHUga2/+dWxhIGJh8Gz9IG9sYXJhayDnYWz9/nT9cm1hZGEga3VsbGFu/Wz9ci5cblwKXG5cClP2emR6aW1pOiAgIElGIFtOT1RdIEVYSVNUIGRvc3lhYWT9IGtvbXV0XG5cCiAgICAgICAgICAgIElGIFtOT1RdIGRpemUxPT1kaXplMiBrb211dFxuXAogICAgICAgICAgICBJRiBbTk9UXSBFUlJPUkxFVkVMIHNhef0ga29tdXRcblwKXG5cCt1raW5jaSBiaedpbWRlIGRpemUxIHZlIGRpemUyIOdpZnQgdP1ybmFrIGnnZXJpc2luZGUgb2xtYWz9ZP1yLlxuXApLYXL+/Wxh/nT9cm1hIELcWdxLL2v85/xrIGhhcmYgZHV5YXJs/SBkZfBpbGRpci5cbiIKCiAgV0NNRF9MQUJFTCwgICJMQUJFTCBiaXIgZGlzayBi9mz8bfxuZSBldGlrZXQgdmVyaXIuXG5cClxuXApT9npkaXppbWk6IExBQkVMIFtz/HL8Y/w6XVxuXApLb211dCBzaXpkZW4gdmVyaWxlbiBz/HL8Y/wgaedpbiB5ZW5pIGJpciBldGlrZXQgZ2lybWVuaXppIGJla2xleWVjZWt0aXIuXG5cCkRpc2sgYvZs/G0gZXRpa2V0aW5pIFZPTCBrb211dHUgaWxlIGf2c3RlcmViaWxpcnNpbml6LlxuIgoKICBXQ01EX01ELCAgICAgIk1EIGhha2v9bmRhIHlhcmT9bVxuIgogIFdDTURfTUtESVIsICAiTUtESVIgaGFra/1uZGEgeWFyZP1tXG4iCiAgV0NNRF9NT1ZFLAoiTU9WRSBiaXIgZG9zeWEgdmV5YSBkaXppbmkgZG9zeWEgc2lzdGVtaSBp52luZGUgeWVuaSBiaXIgbm9rdGF5YSB0Yf79ci5cblwKXG5cCkXwZXIgdGH+/W5hY2FrIPbwZSBiaXIgZGl6aW5zZSBkaXppbiBp52VyaXNpbmRla2kgdPxtIGRvc3lhbGFyIHZlIGFsdFxuXApkaXppbmxlciBkZSBiaXJsaWt0ZSB0Yf79bmFjYWt0/XIuXG5cClxuXApF8GVyIGVza2kgdmUgeWVuaSBrb251bWxhciBmYXJrbP0gRE9TIHP8cvxj/Gxlcmkg/HplcmluZGV5c2UgTU9WRSBoYXRhXG5cCnZlcmVjZWt0aXIuXG4iCgogIFdDTURfUEFUSCwKIlBBVEggY21kIGFyYW1hIHlvbHVudSBn9nN0ZXJpciB2ZXlhIGRl8Gn+dGlyaXIuXG5cClxuXApTYWRlY2UgUEFUSCBnaXJtZWsgZ2XnZXJsaSBQQVRIIGF5YXL9bv0gZ/ZzdGVyZWNla3RpciAoYmH+bGFuZ/3ndGEgYnVcblwKd2luZS5jb25mIGRvc3lhbv16ZGEgdmVyaWxlbiBkZfBlciBvbGFjYWt0/XIpLiBBeWFy/SBkZfBp/nRpcm1layBp52luXG5cClBBVEgga29tdXR1bmEgeWVuaSBkZfBlcmkgZWtsZXlpbi5cblwKXG5cCkF5cv1jYSBQQVRIIGF5YXL9bv0gZPx6ZW5sZW1layBp52luIFBBVEgg52V2cmUgZGXwaWtlbmluaSBkZVxuXAprdWxsYW5hYmlsaXJzaW5peiwg9nJuZfBpbjpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcFxuIgoKICBXQ01EX1BBVVNFLAoiUEFVU0UgJ0RldmFtIGV0bWVrIGnnaW4gYmlyIHR1/mEgYmFz/W4nIGlsZXRpc2luaSBla3JhbmRhIGf2c3RlcmlwXG5cCmt1bGxhbv1j/W79biBiaXIgdHX+YSBiYXNtYXP9bv0gYmVrbGVyLiDHb/B1bmx1a2xhIHRvcGx1IGn+bGVtXG5cCmRvc3lhbGFy/W5kYSBrdWxsYW79Y/15YSD2bmNla2kga29tdXR1biDn/Wt0/XP9bv0gZWtyYW5kYW4g5/1rbWFkYW5cblwK9m5jZSBva3V0bWFrIGnnaW4ga3VsbGFu/Wz9ci5cbiIKCiAgV0NNRF9QUk9NUFQsCiJQUk9NUFQga29tdXQgaXN0ZW1pbmkgZGXwaf50aXJpci5cblwKXG5cClBST01QVCBrb211dHVudSBpemxleWVuIGRpemUgKHZlIGhlbWVuIGFyZP1uZGFuIGJpciBib/5sdWspIGNtZCBzaXpkZW5cblwKa29tdXQgYmVrbGVya2VuIHNhdP1yIGJh/v1uZGEgZ/Zy/G78ci5cblwKXG5cCkH+YfD9ZGFraSBrYXJha3RlciBkaXplbGVyaSBn9nN0ZXJpbGVuIPZ6ZWwgYW5sYW1sYXL9IGnnZXJpcjpcblwKXG5cCiQkICAgIERvbGFyIGn+YXJldGkgICAgICAgJF8gICAgQWx0IHNhdP1yICAgICAgICAgICAkYiAgICBib3J1IGn+YXJldGkgKHwpXG5cCiRkICAgIEdl52VybGkgdGFyaWggICAgICAgJGUgICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgICA+IGn+YXJldGlcblwKJGwgICAgPCBp/mFyZXRpICAgICAgICAgICAkbiAgICBHZedlcmxpIHP8cvxj/CAgICAgICRwICAgIEdl52VybGkgeW9sXG5cCiRxICAgIEX+aXR0aXIgaf5hcmV0aSAgICAgJHQgICAgR2XnZXJsaSBzYWF0ICAgICAgICAkdiAgICBjbWQgc/xy/G38XG5cClxuXApTYWRlY2UgUFJPTVBUIGtvbXV0dW51IGdpcmVyc2VuaXoga29tdXQgaXN0ZW1pIGdl52VybGkgZGl6aW5pIChz/HL8Y/wgaGFyZmlcblwKZGFoaWwpIHZlIG9udSBpemxleWVuIGL8efxrdPxyICg+KSBp/mFyZXRpIGnnZXJlbiD2bnRhbv1tbP0gZGXwZXJsZXJlXG5cCmT2bmVjZWt0aXIuXG5cCihQUk9NUFQgJHAkZyBrb211dHUgZ2liaSkuXG5cClxuXApLb211dCBpc3RlbWkgYXly/WNhIFBST01QVCDnZXZyZSBkZfBp/mtlbmkgZGXwaf50aXJpbGVyZWsgZGUgYmVsaXJsZW5lYmlsaXIuXG5cCllhbmkgJ1NFVCBQUk9NUFQ9bWV0aW4nIGlsZSAnUFJPTVBUIG1ldGluJyBheW79IGn+aSBn9nL8ci5cbiIKCiAgV0NNRF9SRU0sCiJSRU0gKGFyZP1uZGFuIGRhIGJpciBib/5sdWspIGlsZSBiYf5sYXlhbiBiaXIga29tdXQgc2F0/XL9bv1uXG5cCmhp52JpciBp/mxldmkgeW9rdHVyOyBkb2xhef1z/XlsYSB0b3BsdSBp/mxlbSBkb3N5YWxhcv1uZGFcblwKYef9a2xhbWEgb2xhcmFrIGt1bGxhbv1sYWJpbGlyLlxuIgoKICBXQ01EX1JFTiwgICAgIlJFTiBoYWtr/W5kYSB5YXJk/W1cbiIKICBXQ01EX1JFTkFNRSwgIlJFTkFNRSBoYWtr/W5kYSB5YXJk/W1cbiIKICBXQ01EX1JELCAgICAgIlJEIGhha2v9bmRhIHlhcmT9bVxuIgogIFdDTURfUk1ESVIsICAiUk1ESVIgaGFra/1uZGEgeWFyZP1tXG4iCgogIFdDTURfU0VULAoiU0VUIGNtZCDnZXZyZSBkZfBp/mtlbmxlcmluaSBn9nN0ZXJpciB2ZXlhIGRl8Gn+dGlyaXIuXG5cClxuXApQYXJhbWV0cmVzaXogZ2lyaWxlbiBTRVQgZ2XnZXJsaSDnZXZyZW5pbiB0/G38bvwgZ/ZzdGVyaXIuXG5cClxuXApCaXIg52V2cmUgZGXwaf5rZW5pbmkgb2x1/nR1cm1hayB2ZXlhIGT8emVubGVtZWsgaedpbiBz9npkaXppbWk6XG5cClxuXAogICAgICBTRVQgPGRl8Gn+a2VuPj08ZGXwZXI+XG5cClxuXAo8ZGXwaf5rZW4+IHZlIDxkZfBlcj4ga2FyYWt0ZXIgZGl6ZWxlcmlkaXIuIE5lIGX+aXR0aXIgaf5hcmV0aW5kZW5cblwK9m5jZSBuZSBkZSBkZfBp/mtlbiBhZP0gaedlcmlzaW5kZSBib/5sdWsgYnVsdW5hYmlsaXIuXG5cClxuXApXaW5lIGFsdP1uZGEsIPx6ZXJpbmRlIOdhbP3+/WxhbiBp/mxldGltIHNpc3RlbWkg52V2cmVzaSBXaW4zMiDnZXZyZXNpbmVcblwKZGFoaWwgZWRpbGlyLiBEb2xhef1z/XlsYSBkb/BhbCBiaXIgV2luMzIgZ2Vy52VrbGVtZXNpbmRlbiBkYWhhIGZhemxhXG5cCmRl8GVyIGJ1bHVuYWNha3T9ci4gY21kIGFsdP1uZGEgaf5sZXRpbSBzaXN0ZW1pIOdldnJlc2luaSBkZfBp/nRpcm1la1xuXApt/G1r/G4gZGXwaWxkaXIuXG4iCgogIFdDTURfU0hJRlQsCiJTSElGVCB0b3BsdSBp/mxlbSBkb3N5YXP9bmRhIHBhcmFtZXRyZSBsaXN0ZXNpbmluIGJh/v1uZGFuIGJpciB0YW5lc2luaVxuXApzaWxlci4gQvZ5bGVjZSAyLiBwYXJhbWV0cmUgMS4gcGFyYW1ldHJlIG9sYWNha3T9ci4gS29tdXQgc2F0/XL9bmRhXG5cCudh8HL9bGT98P1uZGEgYmlyIGV0a2lzaSB5b2t0dXIuXG4iCgogIFdDTURfVElNRSwgICAiVElNRSBoYWtr/W5kYSB5YXJk/W1cbiIKCiAgV0NNRF9USVRMRSwgICJjbWQgcGVuY2VyZXNpIGnnaW4gcGVuY2VyZSBiYf5s/fD9bv0gZGXwaf50aXJpci4gU/Z6ZGl6aW1pOiBUSVRMRSBbZGl6ZV1cbiIKCiAgV0NNRF9UWVBFLAoiVFlQRSA8ZG9zeWFhZP0+IGtvbXV0dSA8ZG9zeWFhZP0+J279IGtvbnNvbCBheWf9dP1uYSBrb3B5YWxhciAoZfBlclxuXAp59m5sZW5kaXJpbG1p/nNlIGJh/mthIHllcmUpLiBEb3N5YW79biBva3VuYWJpbGlybGnwaSBkZW5ldGxlbm1lei5cbiIKCiAgV0NNRF9WRVJJRlksCiJWRVJJRlkgZG/wcnVsYW1hIGJheXJh8P1u/SBh52FyLCBrYXBhdP1yIHZleWEgc/1uYXIuIEdl52VybGkgYmnnaW1sZXI6XG5cClxuXApWRVJJRlkgT04JQmF5cmHw/SBh51xuXApWRVJJRlkgT0ZGCUJheXJh8P0ga2FsZP1yXG5cClZFUklGWQkJQmF5cmHw/W4gZHVydW11bnUgZ/ZzdGVyaXIuXG5cClxuXApEb/BydWxhbWEgYmF5cmHw/W79biBXaW5lJ2RhIGJpciBp/mxldmkgeW9rdHVyLlxuIgoKICBXQ01EX1ZFUiwKIlZFUiBrdWxsYW5k/fD9bv16IGNtZCBz/HL8bfxu/CBn9nN0ZXJpclxuIgoKICBXQ01EX1ZPTCwgICAgIlZPTCBoYWtr/W5kYSB5YXJk/W1cbiIKCiAgV0NNRF9QVVNIRCwgICJQVVNIRCA8ZGlyZWN0b3J5bmFtZT4gc2F2ZXMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG9udG8gYVxuXApzdGFjaywgYW5kIHRoZW4gY2hhbmdlcyB0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gdGhlIHN1cHBsaWVkIG9uZS5cbiIKCiAgV0NNRF9QT1BELCAgICJQT1BEIGNoYW5nZXMgY3VycmVudCBkaXJlY3RvcnkgdG8gdGhlIGxhc3Qgb25lIHNhdmVkIHdpdGhcblwKUFVTSEQuXG4iCgogIFdDTURfTU9SRSwgICAiTU9SRSBkaXNwbGF5cyBvdXRwdXQgb2YgZmlsZXMgb3IgcGlwZWQgaW5wdXQgaW4gcGFnZXMuXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgZ2XnZXJsaSBrb211dCBvdHVydW11bnUgc29ubGFuZP1y/XIgdmUgY21kJ3lpIOdh8P1yZP3w/W79elxuXAp5ZXJkZW4gaf5sZXRpbSBzaXN0ZW1pbmUgZPZuZXIuXG4iCgogIFdDTURfQUxMSEVMUCwgIkNNRCBkYWhpbGkga29tdXRsYXL9OlxuXApBVFRSSUJcdFx0RE9TIGRvc3lhIPZ6ZWxsaWtsZXJpbmkgZ/ZzdGVyIHZleWEgZGXwaf50aXJcblwKQ0FMTFx0XHRUb3BsdSBp/mxlbSBkb3N5YXP9IGnnZXJpc2luZGVuIGJpciBkafBlcmluaSDnYWz9/nT9clxuXApDRCAoQ0hESVIpXHRHZedlcmxpIGRpemluaSBkZfBp/nRpclxuXApDTFNcdFx0S29uc29sIGVrcmFu/W79IHRlbWl6bGVcblwKQ09QWVx0XHREb3N5YSBrb3B5YWxhXG5cCkNUVFlcdFx0R2lyaf4v5/1r/f4gYXln/XT9bv0gZGXwaf50aXJcblwKREFURVx0XHRTaXN0ZW0gdGFyaWhpbmkgZ/ZzdGVyIHZleWEgZGXwaf50aXJcblwKREVMIChFUkFTRSlcdEJpciB2ZXlhIGRhaGEgZmF6bGEgZG9zeWF5/SBzaWxcblwKRElSXHRcdERpemluIGnnZXJp8GluaSBsaXN0ZWxlXG5cCkVDSE9cdFx0TWV0bmkgZG/wcnVkYW4ga29uc29sIOf9a/3+/W5hIGtvcHlhbGFcblwKSEVMUFx0XHRCaXIga29udSD8emVyaW5kZSD2emV0IHlhcmT9bSBn9nN0ZXJcblwKTUQgKE1LRElSKVx0QWx0IGRpemluIG9sdf50dXJcblwKTU9SRVx0XHREaXNwbGF5IG91dHB1dCBpbiBwYWdlc1xuXApNT1ZFXHRcdEJpciB2ZXlhIGRhaGEgZmF6bGEgZG9zeWF5/SB5YSBkYSBkaXppbiBh8GFj/W79IHRh/v1cblwKUEFUSFx0XHRBcmFtYSB5b2x1bnUgZPx6ZW5sZSB2ZXlhIGf2c3RlclxuXApQT1BEXHRcdFJlc3RvcmVzIHRoZSBkaXJlY3RvcnkgdG8gdGhlIGxhc3Qgb25lIHNhdmVkIHdpdGggUFVTSERcblwKUFJPTVBUXHRcdEtvbXV0IGlzdGVtaW5pIGRl8Gn+dGlyXG5cClBVU0hEXHRcdENoYW5nZXMgdG8gYSBuZXcgZGlyZWN0b3J5LCBzYXZpbmcgdGhlIGN1cnJlbnQgb25lXG5cClJFTiAoUkVOQU1FKVx0RG9zeWF5/SB5ZW5pZGVuIGFkbGFuZP1yXG5cClJEIChSTURJUilcdEFsdCBkaXppbmkgc2lsXG5cClNFVFx0XHTHZXZyZSBkZfBp/mtlbmxlcmluaSBk/HplbmxlIHZleWEgZ/ZzdGVyXG5cClRJTUVcdFx0R2XnZXJsaSBzaXN0ZW0gc2FhdGluaSBk/HplbmxlIHZleWEgZ/ZzdGVyXG5cClRJVExFXHRcdENNRCBvdHVydW11IGnnaW4gcGVuY2VyZSBiYf5s/fD9bv0gYmVsaXJsZVxuXApUWVBFXHRcdE1ldGluIGRvc3lhc/1u/W4gaedlcmnwaW5pIGf2c3RlclxuXApWRVJcdFx0R2XnZXJsaSBDTUQgc/xy/G38bvwgZ/ZzdGVyXG5cClZPTFx0XHREaXNrIGF5Z/10/W79biBi9mz8bSBldGlrZXRpbmkgZ/ZzdGVyXG5cCkVYSVRcdFx0Q01EJ3lpIGthcGF0XG5cblwKWXVrYXL9ZGFraSBrb211dGxhciBoYWtr/W5kYSBkYWhhIGZhemxhIGJpbGdpIGnnaW4gSEVMUCA8a29tdXQ+IGdpcmluXG4iCgogIFdDTURfQ09ORklSTSwgIkFyZSB5b3Ugc3VyZSIKICBXQ01EX1lFUywgIlkiCiAgV0NNRF9OTywgIk4iCiAgV0NNRF9OT0FTU09DLCAiRmlsZSBhc3NvY2lhdGlvbiBtaXNzaW5nIGZvciBleHRlbnNpb24gJXNcbiIKICBXQ01EX05PRlRZUEUsICJObyBvcGVuIGNvbW1hbmQgYXNzb2NpYXRlZCB3aXRoIGZpbGUgdHlwZSAnJXMnXG4iCiAgV0NNRF9PVkVSV1JJVEUsICJPdmVyd3JpdGUgJXMiCiAgV0NNRF9NT1JFU1RSLCAiTW9yZS4uLiIKICBXQ01EX1RSVU5DQVRFRExJTkUsICJMaW5lIGluIEJhdGNoIHByb2Nlc3NpbmcgcG9zc2libHkgdHJ1bmNhdGVkLiBVc2luZzpcbiIKICBXQ01EX05ZSSwgIk5vdCBZZXQgSW1wbGVtZW50ZWRcblxuIgogIFdDTURfTk9BUkcsICJBcmd1bWVudCBtaXNzaW5nXG4iCiAgV0NNRF9TWU5UQVhFUlIsICJTeW50YXggZXJyb3JcbiIKICBXQ01EX0ZJTEVOT1RGT1VORCwgIiVzIDogRmlsZSBOb3QgRm91bmRcbiIKICBXQ01EX05PQ01ESEVMUCwgIk5vIGhlbHAgYXZhaWxhYmxlIGZvciAlc1xuIgogIFdDTURfTk9UQVJHRVQsICJUYXJnZXQgdG8gR09UTyBub3QgZm91bmRcbiIKICBXQ01EX0NVUlJFTlREQVRFLCAiQ3VycmVudCBEYXRlIGlzICVzXG4iCiAgV0NNRF9DVVJSRU5UVElNRSwgIkN1cnJlbnQgVGltZSBpcyAlc1xuIgogIFdDTURfTkVXREFURSwgIkVudGVyIG5ldyBkYXRlOiAiCiAgV0NNRF9ORVdUSU1FLCAiRW50ZXIgbmV3IHRpbWU6ICIKICBXQ01EX01JU1NJTkdFTlYsICJFbnZpcm9ubWVudCB2YXJpYWJsZSAlcyBub3QgZGVmaW5lZFxuIgogIFdDTURfUkVBREZBSUwsICJGYWlsZWQgdG8gb3BlbiAnJXMnXG4iCiAgV0NNRF9DQUxMSU5TQ1JJUFQsICJDYW5ub3QgY2FsbCBiYXRjaCBsYWJlbCBvdXRzaWRlIG9mIGEgYmF0Y2ggc2NyaXB0XG4iCiAgV0NNRF9BTEwsICJBIgogIFdDTURfREVMUFJPTVBULCAiJXMsIERlbGV0ZSIKICBXQ01EX0VDSE9QUk9NUFQsICJFY2hvIGlzICVzXG4iCiAgV0NNRF9WRVJJRllQUk9NUFQsICJWZXJpZnkgaXMgJXNcbiIKICBXQ01EX1ZFUklGWUVSUiwgIlZlcmlmeSBtdXN0IGJlIE9OIG9yIE9GRlxuIjsKICBXQ01EX0FSR0VSUiwgIlBhcmFtZXRlciBlcnJvclxuIgogIFdDTURfVk9MVU1FREVUQUlMLCAiVm9sdW1lIGluIGRyaXZlICVjIGlzICVzXG5Wb2x1bWUgU2VyaWFsIE51bWJlciBpcyAlMDR4LSUwNHhcblxuIgogIFdDTURfVk9MVU1FUFJPTVBULCAiVm9sdW1lIGxhYmVsICgxMSBjaGFyYWN0ZXJzLCBFTlRFUiBmb3Igbm9uZSk/IgogIFdDTURfTk9QQVRILCAiUEFUSCBub3QgZm91bmRcbiIKICBXQ01EX0FOWUtFWSwiUHJlc3MgUmV0dXJuIGtleSB0byBjb250aW51ZTogIgogIFdDTURfQ09OU1RJVExFLCJXaW5lIENvbW1hbmQgUHJvbXB0IgogIFdDTURfVkVSU0lPTiwiQ01EIFZlcnNpb24gJXNcblxuIgogIFdDTURfTU9SRVBST01QVCwgIk1vcmU/ICIKICBXQ01EX0xJTkVUT09MT05HLCAiVGhlIGlucHV0IGxpbmUgaXMgdG9vIGxvbmcuXG4iCn0K