LlwiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgouXCIKLlwiIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIHdpdGggcG80YS4gVHJhbnNsYXRlIHRoZSBzb3VyY2UgZmlsZS4KLlwiCi5cIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLlRIIGRwa2dcLWJ1aWxkZmxhZ3MgMSAyMDExXC0wOVwtMTMgRGViaWFucHJvamVrdGV0IERwa2dcLXN2aXRlbgouU0ggTkFNTgpkcGtnXC1idWlsZGZsYWdzIFwtIHJldHVybmVyYXIgYnlnZ2ZsYWdnb3IgYXR0IGFuduRuZGEgZvZyIGF0dCBieWdnYSBwYWtldAouCi5TSCBTWU5PUFMKXGZCZHBrZ1wtYnVpbGRmbGFnc1xmUCBbXGZJZmxhZ2dhXGZQLi4uXSBcZklrb21tYW5kb1xmUAouCi5TSCBCRVNLUklWTklORwpcZkJkcGtnXC1idWlsZGZsYWdzXGZQIORyIGV0dCB2ZXJrdHlnIGb2ciBhdHQgaORtdGEga29tcGlsZXJpbmdzZmxhZ2dvciBhdHQKYW525G5kYSBm9nIgYXR0IGJ5Z2dhIERlYmlhbnBha2V0LgouCkRlIGb2cnZhbGRhIGZsYWdnb3JuYSBhbmdlcyBhdiBsZXZlcmFudPZyZW4sIG1lbiBkZSBrYW4gdXT2a2FzL/Z2ZXJzdHlyYXMgcOUKZmxlcmEgc+R0dDoKLklQIDEuCnDlIGhlbGEgc3lzdGVtZXQgbWVkIFxmQi9ldGMvZHBrZy9idWlsZGZsYWdzLmNvbmZcZlA7Ci5JUCAyLgpm9nIgZGVuIG51dmFyYW5kZSBhbnbkbmRhcmVuIG1lZCBcZkIkWERHX0NPTkZJR19IT01FL2Rwa2cvYnVpbGRmbGFncy5jb25mXGZQCmTkciBcZkIkWERHX0NPTkZJR19IT01FXGZQIGhhciBzdGFuZGFyZHbkcmRldCBcZkIkSE9NRS8uY29uZmlnXGZQOwouSVAgMy4KdGVtcG9y5HJ0IGF2IGFuduRuZGFyZW4gbWVkIG1pbGr2dmFyaWFibGVyIChzZSBzdHlja2V0IFxmQk1JTErWXGZQKS4KLklQIDQuCmR5bmFtaXNrdCBhdiBwYWtldGFuc3ZhcmlnYSBtZWQgbWlsavZ2YXJpYWJsZXIgc29tIHPkdHRzIHZpYSBcZkJkZWJpYW4vcnVsZXNcZlAKKHNlIHN0eWNrZXQgXGZCTUlMStZcZlApLgouUApLb25maWd1cmF0aW9uc2ZpbGVybmEga2FuIGlubmVo5WxsYSB0duUgc29ydGVycyBkaXJla3RpdjoKLlRQIApcZkJTRVRcZlBcZkkgZmxhZ2dhIHbkcmRlXGZQCtZ2ZXJzdHlyIGZsYWdnYW4gXGZJZmxhZ2dhXGZQIHRpbGwgYXR0IGhhIHbkcmRldCBcZkl25HJkZVxmUC4KLlRQIApcZkJTVFJJUFxmUFxmSSBmbGFnZ2EgduRyZGVcZlAKVGEgYm9ydCBhbGxhIGZsYWdnb3Igc29tIGxpc3RhcyBpIFxmSXbkcmRlXGZQIGZy5W4gZmxhZ2dhbiBzb20gYW5nZXMgaQpcZklmbGFnZ2FcZlAuCi5UUCAKXGZCQVBQRU5EXGZQXGZJIGZsYWdnYSB25HJkZVxmUApVdPZrYSBmbGFnZ2FuIFxmSWZsYWdnYVxmUCBnZW5vbSBhdHQgbORnZ2EgdGlsbCBhbHRlcm5hdGl2ZW4gc29tIGFuZ2VzIGkKXGZJduRyZGVcZlAuIEV0dCBibGFua3N0ZWcgbORnZ3MgdGlsbCBm9nJlIHbkcmRldCBvbSBmbGFnZ2FucyBudXZhcmFuZGUgduRyZGUKaW50ZSDkciB0b210LgouVFAgClxmQlBSRVBFTkRcZlBcZkkgZmxhZ2dhIHbkcmRlXGZQClV09mthIGZsYWdnYW4gXGZJZmxhZ2dhXGZQIGdlbm9tIGF0dCBs5GdnYSB0aWxsIGFsdGVybmF0aXZlbiBzb20gYW5nZXMgaQpcZkl25HJkZVxmUCBm9nJzdC4gRXR0IGJsYW5rc3RlZyBs5GdncyB0aWxsIGVmdGVyIHbkcmRldCBvbSBmbGFnZ2FucyBudXZhcmFuZGUKduRyZGUgaW50ZSDkciB0b210LgouUApLb25maWd1cmF0aW9uc2ZpbGVybmEga2FuIGlubmVo5WxsYSBrb21tZW50YXJlciBw5SByYWRlciBzb20gYvZyamFyIG1lZCBldHQKbnVtbWVydGVja2VuICgjKS4gxHZlbiB0b21tYSByYWRlciBpZ25vcmVyYXMuCi5TSCBLT01NQU5ET04KLlRQIApcZkJcLVwtZHVtcFxmUApTa3JpdiBhbGxhIGtvbXBpbGVyaW5nc2ZsYWdnb3Igb2NoIGRlcmFzIHbkcmRlIHDlIHN0YW5kYXJkIHV0LiBFbiBmbGFnZ2EKc2tyaXZzIHBlciByYWQsIGF2ZGVsYWRlIGZy5W4gc2l0dCB25HJkZSBtZWQgZXR0IGxpa2FtZWR0ZWNrZW4KKCJcZklmbGFnZ2FcZlA9XGZJduRyZGVcZlAiKS4gRGV0dGEg5HIgc3RhbmRhcmTldGfkcmRlbi4KLlRQIApcZkJcLVwtbGlzdFxmUApTa3JpdiB1dCBsaXN0YW4g9nZlciBmbGFnZ29yIHNvbSBzdPZkcyBhdiBkZW4gYWt0dWVsbGEgbGV2ZXJhbnT2cmVuIChlbiBwZXIKcmFkKS4gU2Ugc3R5Y2tldCBcZkJGTEFHR09SIFNPTSBTVNZEU1xmUCBm9nIgbWVyIGluZm9ybWF0aW9uIG9tIGRlbS4KLlRQIApcZkJcLVwtZXhwb3J0PVxmUFxmSWZvcm1hdFxmUApTa3JpdiBza2FsXC0gKG9tIFxmSWZvcm1hdFxmUCDkciBcZkJzaFxmUCkgZWxsZXIgbWFrZVwta29tbWFuZG9uIChvbSBcZklmb3JtYXRcZlAg5HIKXGZCbWFrZVxmUCkgc29tIGthbiBhbnbkbmRhcyBm9nIgYXR0IGV4cG9ydGVyYSBhbGxhIGtvbXBpbGVyaW5nc2ZsYWdnb3IgaQptaWxq9m4gdGlsbCBzdGFuZGFyZCB1dC4gT20gXGZJZm9ybWF0XGZQIORyIFxmQmNvbmZpZ3VyZVxmUCBrYW4gdXRkYXRhIGFuduRuZGFzIHDlCmVuIFxmQi4vY29uZmlndXJlXGZQXC1rb21tYW5kb3JhZC4gT20gXGZJZm9ybWF0XGZQIGludGUgYW5nZXMgYW50YXMgXGZCc2hcZlAuIEVuZGFzdAprb21waWxlcmluZ3NmbGFnZ29yIHNvbSBi9nJqYXIgbWVkIGVuIHN0b3IgYm9rc3RhdiB0YXMgbWVkLCBhbmRyYSBhbnRhcyBhdHQKaW50ZSB2YXJhIGzkbXBsaWdhIGb2ciBtaWxq9m4uCi5UUCAKXGZCXC1cLWdldFxmUFxmSSBmbGFnZ2FcZlAKU2tyaXYgdXQgduRyZGV0IHDlIGZsYWdnYW4gcOUgc3RhbmRhcmQgdXQuIEF2c2x1dGFyIG1lZCAwIG9tIGZsYWdnYW4g5HIKa+RuZCwgb20gaW50ZSBhdnNsdXRhciBkZW4gbWVkIDEuCi5UUCAKXGZCXC1cLW9yaWdpblxmUFxmSSBmbGFnZ2FcZlAKQW5nZXIgdXJzcHJ1bmdldCB0aWxsIGZsYWdnYW4gc29tIHJldHVybmVyYXMgYXYgXGZCXC1cLWdldFxmUC4gQXZzbHV0YXIgbWVkIDAgb20KZmxhZ2dhbiDkciBr5G5kLCBvbSBpbnRlIGF2c2x1dGFyIG1lZCAxLiBVcnNwcnVuZ2V0IGthbiB2YXJhIGV0dCBhdiBm9mxqYW5kZQp25HJkZW46Ci5SUwouVFAgClxmQnZlbmRvclxmUApvcmlnaW5hbGZsYWdnYSBzYXR0IGF2IGxldmVyYW509nJlbiByZXR1cm5lcmFzOwouVFAgClxmQnN5c3RlbVxmUApmbGFnZ2FuIORyIHNhdHQvbW9kaWZpZXJhZCBhdiBzeXN0ZW1rb25maWd1cmF0aW9uZW47Ci5UUCAKXGZCdXNlclxmUApmbGFnZ2FuIORyIHNhdHQvbW9kaWZpZXJhZCBhdiBhbnbkbmRhcmtvbmZpZ3VyYXRpb25lbjsKLlRQIApcZkJlbnZcZlAKZmxhZ2dhbiDkciBzYXR0L21vZGlmaWVyYWQgYXYgZW4gbWlsavZzcGVjaWZpayBrb25maWd1cmF0aW9uLgouUkUKLlRQIApcZkJcLVwtaGVscFxmUApWaXNhciBoauRscHNr5HJtIG9jaCBhdnNsdXRhci4KLlRQIApcZkJcLVwtdmVyc2lvblxmUApWaXNhciB2ZXJzaW9uIG9jaCBhdnNsdXRhci4KLgouU0ggIkZMQUdHT1IgU09NIFNU1kRTIgouVFAgClxmQkNGTEFHU1xmUApGbGFnZ29yIGb2ciBDXC1rb21waWxhdG9ybi4gU3RhbmRhcmR25HJkZXQgc29tIHNhdHRzIGF2IGxldmVyYW509nJlbgppbm5laOVsbGVyIFxmSVwtZ1xmUCBvY2ggZGVuIGb2cnZhbGRhIG9wdGltZXJpbmdzbml25W4gKHZhbmxpZ3R2aXMgXGZJXC1PMlxmUCwgZWxsZXIKXGZJXC1PMFxmUCBvbSBtaWxq9nZhcmlhYmVsbiBcZkJERUJfQlVJTERfT1BUSU9OU1xmUCBkZWZpbmllcmFyIFxmSW5vb3B0XGZQKS4KLlRQIApcZkJDUFBGTEFHU1xmUApGbGFnZ29yIGb2ciBDXC1m9nJwcm9jZXNzZXJhcmVuLiBG9nJ2YWx0IHbkcmRlOiB0b210LgouVFAgClxmQkNYWEZMQUdTXGZQCkZsYWdnb3IgZvZyIEMrK1wta29tcGlsYXRvcm4uIFNhbW1hIHNvbSBcZkJDRkxBR1NcZlAuCi5UUCAKXGZCRkZMQUdTXGZQCkZsYWdnb3IgZvZyIEZvcnRyYW5rb21waWxhdG9ybi4gU2FtbWEgc29tIFxmQkNGTEFHU1xmUC4KLlRQIApcZkJMREZMQUdTXGZQCkZsYWdnb3Igc29tIHPkbmRzIHRpbGwga29tcGlsYXRvcm4gdmlkIGzkbmtuaW5nIGF2IGJpbuRyZXIgZWxsZXIgZGVsYWRlCm9iamVrdCAob20gbORua2FyZW4gYW5yb3BhcyBkaXJla3QgbeVzdGUgXGZCXC1XbFxmUCBvY2ggXGZCLFxmUCB0YXMgYm9ydCBmcuVuIGRlc3NhCmZsYWdnb3IpLiBTdGFuZGFyZHbkcmRlOiB0b210LgouCi5TSCBGSUxFUgouVFAgClxmQi9ldGMvZHBrZy9idWlsZGZsYWdzLmNvbmZcZlAKS29uZmlndXJhdGlvbnNmaWwgZvZyIGhlbGEgc3lzdGVtZXQuCi5UUCAKXGZCJFhER19DT05GSUdfSE9NRS9kcGtnL2J1aWxkZmxhZ3MuY29uZlxmUCBlbGxlciBcZkIkSE9NRS8uY29uZmlnL2Rwa2cvYnVpbGRmbGFncy5jb25mXGZQCkFuduRuZGFyZW5zIGtvbmZpZ3VyYXRpb25zZmlsLgouU0ggTUlMStZWQVJJQUJMRVIKRGV0IGZpbm5zIHR25SB1cHBz5HR0bmluZ2FyIG1pbGr2dmFyaWFibGVyIHNvbSB1dGb2ciBzYW1tYSBvcGVyYXRpb25lciwgZGVuCmb2cnN0YSAoREVCX1xmSWZsYWdnYVxmUF9cZklvcFxmUCkgYvZyIGFsZHJpZyBhbnbkbmRhcyBpbnV0aSBcZkJkZWJpYW4vcnVsZXNcZlApLiBEZW4K5HIgdORua3QgZvZyIGFuduRuZGFyZSBzb20gdmlsbCBieWdnYSBvbSBr5Gxsa29kc3Bha2V0ZXQgbWVkIGFuZHJhCmJ5Z2dmbGFnZ29yLiBEZW4gYW5kcmEgdXBwc+R0dG5pbmdlbiAoREVCX1xmSWZsYWdnYVxmUF9NQUlOVF9cZklvcFxmUCkgYvZyIGVuZGFzdAphbnbkbmRhcyBpIFxmQmRlYmlhbi9ydWxlc1xmUCBhdiBwYWtldGFuc3ZhcmlnYSBm9nIgYXR0IORuZHJhIGRlIHNsdXRnaWx0aWdhCmJ5Z2dmbGFnZ29ybmEuCi5UUCAKXGZCREVCX1xmUFxmSWZsYWdnYVxmUFxmQl9TRVRcZlAKLlRRClxmQkRFQl9cZlBcZklmbGFnZ2FcZlBcZkJfTUFJTlRfU0VUXGZQCkRlbm5hIHZhcmlhYmVsIGthbiBhbnbkbmRhcyBm9nIgYXR0IHR2aW5nYSBmcmFtIHbkcmRldCBzb20gcmV0dXJuZXJhcyBm9nIKZ2l2ZW4gXGZJZmxhZ2dhXGZQLgouVFAgClxmQkRFQl9cZlBcZklmbGFnZ2FcZlBcZkJfU1RSSVBcZlAKLlRRClxmQkRFQl9cZlBcZklmbGFnZ2FcZlBcZkJfTUFJTlRfU1RSSVBcZlAKRGVubmEgdmFyaWFiZWwga2FuIGFuduRuZGFzIGb2ciBhdHQgdGlsbGhhbmRhaOVsbGEgZW4gYmxhbmtzdGVnc2F2ZGVsYWQKbGlzdGEgbWVkIGZsYWdnb3Igc29tIGtvbW1lciBhdHQgdGFzIGJvcnQgZnLlbiB1cHBz5HR0bmluZ2VuIGZsYWdnb3Igc29tIGdlcwpm9nIgZ2l2ZW4gXGZJZmxhZ2dhXGZQLgouVFAgClxmQkRFQl9cZlBcZklmbGFnZ2FcZlBcZkJfQVBQRU5EXGZQCi5UUQpcZkJERUJfXGZQXGZJZmxhZ2dhXGZQXGZCX01BSU5UX0FQUEVORFxmUApEZW5uYSB2YXJpYWJlbCBrYW4gYW525G5kYXMgZvZyIGF0dCBs5GdnYSB0aWxsIHl0dGVybGlnYXJlIGZsYWdnb3IgdGlsbAp25HJkZXQgc29tIHJldHVybmVyYXMgZvZyIGdpdmVuIFxmSWZsYWdnYVxmUC4KLlRQIApcZkJERUJfXGZQXGZJZmxhZ2dhXGZQXGZCX1BSRVBFTkRcZlAKLlRRClxmQkRFQl9cZlBcZklmbGFnZ2FcZlBcZkJfTUFJTlRfUFJFUEVORFxmUApEZW5uYSB2YXJpYWJlbCBrYW4gYW525G5kYXMgZvZyIGF0dCBs5GdnYSB0aWxsIHl0dGVybGlnYXJlIGZsYWdnb3IgZvZyc3QgaQp25HJkZXQgc29tIHJldHVybmVyYXMgZvZyIGdpdmVuIFxmSWZsYWdnYVxmUC4KLlRQIApcZkJERUJfQlVJTERfTUFJTlRfT1BUSU9OU1xmUApEZW4gaORyIHZhcmlhYmVsbiBrYW4gYW525G5kYXMgZvZyIGF0dCBzbOUgYXYvcOUgb2xpa2EgaORyZG5pbmdzYnlnZ2ZsYWdnb3IKZ2Vub20gYWx0ZXJuYXRpdmV0IFxmQmhhcmRlbmluZ1xmUC4gU2UgYXZzbml0dGV0IFxmQkjEUkROSU5HXGZQIGb2ciBtZXIKaW5mb3JtYXRpb24uCi4KLlNIIEjEUkROSU5HCkR1IGthbiBhbnbkbmRhIGZsZXJhIGtvbXBpbGVyaW5nc2ZsYWdnb3IgKHNlIGRldGFsamVyIG5lZGFuKSBm9nIgYXR0IGjkcmRhCmRlbiBm5HJkaWdhIGJpbuRyZW4gbW90IG1pbm5lc2b2cmTkcnZuaW5nc2FuZ3JlcHAsIGVsbGVyIGb2ciBhdHQgZ2UKeXR0ZXJsaWdhcmUgdmFybmluZ3NtZWRkZWxhbmRlbiB1bmRlciBrb21waWxlcmluZ2VuLiBG9nJ1dG9tIGRldCBzb20gYW5nZXMKbmVkYW4gYWt0aXZlcmFzIGRlc3NhIHNvbSBzdGFuZGFyZCBm9nIgYXJraXRla3R1cmVyIHNvbSBzdPZkZXIgZGVtLgouUApWYXJqZSBo5HJkbmluZ3NmdW5rdGlvbiBrYW4gYWt0aXZlcmFzIG9jaCBpbmFrdGl2ZXJhcyBpIG1pbGr2dmFyaWFiZWxuClxmQkRFQl9CVUlMRF9NQUlOVF9PUFRJT05TXGZQIHbkcmRlIFxmQmhhcmRlbmluZ1xmUCBtZWQgbW9kaWZpZXJhcm5hICIrIiBvY2gKIlwtIi4gRHUga2FuIHRpbGwgZXhlbXBlbCBha3RpdmVyYSBvY2ggZnVua3Rpb25lbiAicGllIiBvY2ggaW5ha3RpdmVyYQpmdW5rdGlvbmVuICJmb3J0aWZ5IiBnZW5vbSBhdHQgYW5nZSBkZXR0YSBpIFxmQmRlYmlhbi9ydWxlc1xmUDoKLlAKICBleHBvcnQgREVCX0JVSUxEX01BSU5UX09QVElPTlM9aGFyZGVuaW5nPStwaWUsXC1mb3J0aWZ5Ci5QCkRlbiBzcGVjaWVsbGEgZnVua3Rpb25lbiBcZkJhbGxcZlAga2FuIGFuduRuZGFzIGb2ciBhdHQgYWt0aXZlcmEgZWxsZXIKaW5ha3RpdmVyYSBhbGxhIGjkcmRuaW5nc2Z1bmt0aW9uZXIgc2FtdGlkaWd0LiBEdSBrYW4gdGlsbCBleGVtcGVsCmluYWt0aXZlcmEgYWxsdCBvY2ggZW5kYXN0IGFrdGl2ZXJhICJmb3JtYXQiIG9jaCAiZm9ydGlmeSIgbWVkOgouUAogIGV4cG9ydCBERUJfQlVJTERfTUFJTlRfT1BUSU9OUz1oYXJkZW5pbmc9XC1hbGwsK2Zvcm1hdCwrZm9ydGlmeQouCi5UUCAKXGZCZm9ybWF0XGZQCkluc3TkbGxuaW5nZW4gKGFrdGl2ZXJhZCBzb20gc3RhbmRhcmQpIGzkZ2dlciB0aWxsIFxmQlwtV2Zvcm1hdApcLVdmb3JtYXRcLXNlY3VyaXR5IFwtV2Vycm9yPWZvcm1hdFwtc2VjdXJpdHlcZlAgdGlsbCBcZkJDRkxBR1NcZlAgb2NoClxmQkNYWEZMQUdTXGZQLiBEZXR0YSBrb21tZXIgYXR0IHZhcm5hIG9tIG9s5G1wbGlnIGFuduRuZG5pbmcgYXYKZm9ybWF0c3Ry5G5nYXIsIG9jaCBhdHQgbWlzc2x5Y2thcyBu5HIgZm9ybWF0ZnVua3Rpb25lcm5hIGFuduRuZHMgcOUgZXR0CnPkdHQgc29tIHJlcHJlc2VudGVyYXIgbfZqbGlnYSBz5GtlcmhldHNwcm9ibGVtLiBG9nIgbuRydmFyYW5kZSB2YXJuYXIgZGV0dGEKb20gYW5yb3AgdGlsbCBmdW5rdGlvbmVybmEgXGZCcHJpbnRmXGZQIG9jaCBcZkJzY2FuZlxmUCBk5HIgZm9ybWF0c3Ry5G5nZW4gaW50ZSDkcgplbiBmYXN0IHN0cuRuZyBvY2ggbuRyIGRldCBpbnRlIGZpbm5zIG7lZ3JhIGZvcm1hdGFyZ3VtZW50LCBzb20gaQpcZkJwcmludGYoZm9vKTtcZlAgaXN05GxsZXQgZvZyIFxmQnByaW50ZigiJXMiLCBmb28pO1xmUCBEZXR0YSBrYW4gdmFyYSBldHQKc+RrZXJoZXRzaOVsIG9tIGZvcm1hdHN0cuRuZ2VuIGtvbW1lciBmcuVuIGVuIG9iZXRyb2RkIGvkbGxhIG9jaCBpbm5laOVsbGVyCiIlbiIuCi4KLlRQIApcZkJmb3J0aWZ5XGZQCkluc3TkbGxuaW5nZW4gKGFrdGl2ZXJhZCBzb20gc3RhbmRhcmQpIGzkZ2dlciB0aWxsICBcZkJcLURfRk9SVElGWV9TT1VSQ0U9MlxmUAp0aWxsIFxmQkNGTEFHU1xmUC4gS29tcGlsYXRvcm4gaGFyIHVuZGVyIGtvZGdlbmVyZXJpbmdlbiBr5G5uZWRvbSBvbSBlbiBoZWwgZGVsCmluZm9ybWF0aW9uIG9tIGJ1ZmZlcnRzdG9ybGVrYXIgKGTkciB0aWxs5G1wbGlndCkgb2NoIGb2cnP2a2VyIGVyc+R0dGEKb3Pka3JhIGZ1bmt0aW9uc2Fucm9wIG1lZCBvYmVncuRuc2FkZSBidWZmZXJ0bORuZ2RlciBtZWQgbORuZ2RiZWdy5G5zYWRlCmRpdG8uIERldCBo5HIg5HIgc3BlY2llbGx0IGFuduRuZGJhcnQgZvZyIGdhbW1hbCwgc2ty5HBpZyBrb2QuIERlc3N1dG9tCmJsb2NrZXJhcyBmb3JtYXRzdHLkbmdhciBpIHNrcml2YmFydCBtaW5uZSBzb20gaW5uZWjlbGxlciAiJW4iLiBPbSBldHQKcHJvZ3JhbSDkciBiZXJvZW5kZSBhdiBlbiBz5WRhbiBmb3JtYXRzdHLkbmcgbeVzdGUgZGV0IGflcyBydW50IGkga29kLgoKT2JzZXJ2ZXJhIGF0dCwgZvZyIGF0dCBkZW4gaORyIGZsYWdnYW4gc2thbGwgaGEgbuVnb24gZWZmZWt0LCBt5XN0ZQpr5Gxsa29kZW4gb2Nrc+Uga29tcGlsZXJhcyBtZWQgXGZCXC1PMVxmUCBlbGxlciBo9mdyZS4KLlRQIApcZkJzdGFja3Byb3RlY3RvclxmUApJbnN05GxsbmluZ2VuIChha3RpdmVyYWQgc29tIHN0YW5kYXJkKSBs5GdnZXIgdGlsbCBcZkJcLWZzdGFja1wtcHJvdGVjdG9yClwtXC1wYXJhbT1zc3BcLWJ1ZmZlclwtc2l6ZT00XGZQIHRpbGwgXGZCQ0ZMQUdTXGZQIG9jaCBcZkJDWFhGTEFHU1xmUC4gRGV0dGEgbORnZ2VyIHRpbGwKc+RrZXJoZXRza29udHJvbGxlciBtb3Qgc3RhY2v2dmVyc2tyaXZuaW5nYXIsIHZpbGtldCBn9nIgYXR0IG3lbmdhIG32amxpZ2EKa29kaW5qaWNlcmluZ3NhbmdyZXBwIGlzdORsbGV0IGF2YnJ5dGVyIHByb2dyYW1tZXQuIEkgZGV0IGLkc3RhIGZhbGxldCBn9nIKZGV0IGtvZGluamljZXJpbmdzYW5ncmVwcCB0aWxsIPZ2ZXJiZWxhc3RuaWduc2FuZ3JlcHAgZWxsZXIgaWNrZVwtcHJvYmxlbQooYmVyb2VuZGUgcOUgcHJvZ3JhbW1ldCkuCgpEZW4gaORyIGZ1bmt0aW9uZW4ga3LkdmVyIGzkbmtuaW5nIG1vdCBnbGliYyAoZWxsZXIgZXR0IGFubmF0IGJpYmxpb3RlayBzb20KdGlsbGhhbmRhaOVsbGVyIFxmQl9fc3RhY2tfY2hrX2ZhaWxcZlApLCBz5SBkZXQgbeVzdGUgaW5ha3RpdmVyYXMgbuRyIGR1IGJ5Z2dlcgptZWQgXGZCXC1ub3N0ZGxpYlxmUCBlbGxlciBcZkJcLWZmcmVlc3RhbmRpbmdcZlAgZWxsZXIgbGlrbmFuZGUuCi4KLlRQIApcZkJyZWxyb1xmUApJbnN05GxsbmluZ2VuIChha3RpdmVyYWQgc29tIHN0YW5kYXJkKSBs5GdnZXIgdGlsbCBcZkJcLVdsLFwteixyZWxyb1xmUCB0aWxsClxmQkxERkxBR1NcZlAuIFZpZCBpbmzkc25pbmcgYXYgcHJvZ3JhbW1ldCBt5XN0ZSBs5G5rYXJlbiBza3JpdmEgdGlsbCBmbGVyYQpFTEZcLW1pbm5lc3Nla3Rpb25lci4gRGVuIGjkciBpbnN05GxsbmluZ2VuIGZsYWdnYXIgdGlsbCBpbmzkc2FyZW4gYXR0IGRlc3NhCnNla3Rpb25lciBza2FsbCBn9nJhcyBza3JpdnNreWRkYWRlIGlubmFuIHByb2dyYW1tZXQgZuVyIGtvbnRyb2xsLiBEZXR0YQpza3lkZGFyIGh1dnVkc2FrbGluZ2VuIG1vdCBHT1RcLfZ2ZXJza3Jpdm5pbmdzYW5ncmVwcC4KLgouVFAgClxmQmJpbmRub3dcZlAKVGhpcyBzZXR0aW5nIChkaXNhYmxlZCBieSBkZWZhdWx0KSBhZGRzIFxmQlwtV2wsXC16LG5vd1xmUCB0byBcZkJMREZMQUdTXGZQLiBEdXJpbmcKcHJvZ3JhbSBsb2FkLCBhbGwgZHluYW1pYyBzeW1ib2xzIGFyZSByZXNvbHZlZCwgYWxsb3dpbmcgZm9yIHRoZSBlbnRpcmUgUExUCnRvIGJlIG1hcmtlZCByZWFkXC1vbmx5IChkdWUgdG8gXGZCcmVscm9cZlAgYWJvdmUpLgouCi5UUCAKXGZCcGllXGZQCkluc3TkbGxuaW5nZW4gKGluYWt0aXZlcmFkIHNvbSBzdGFuZGFyZCkgbORnZ2VyIHRpbGwgXGZCXC1mUElFXGZQIHRpbGwgXGZCQ0ZMQUdTXGZQCm9jaCBcZkJDWFhGTEFHU1xmUCwgc2FtdCBcZkJcLWZQSUUgXC1waWVcZlAgdGlsbCBcZkJMREZMQUdTXGZQLiBQb3NpdGlvbnNvYmVyb2VuZGUKZXhla3ZlcmJhcmEgcHJvZ3JhbSAoUElFKSBiZWj2dnMgZvZyIGF0dCBkcmEgZvZyZGVsIGF2IHNsdW1wbeRzc2lnCmFkcmVzc3J5bWQgKEFTTFIpLCB2aWxrZXQgc3T2ZHMgYXYgdmlzc2EgdmVyc2lvbmVyIGF2IGvkcm5hbi4gTWVkYW4gQVNMUgpyZWRhbiBrYW4gYW525G5kYXMgZvZyIGRhdGF1dHJ5bW1lbiBpIHN0YWNrZW4gb2NoIGhlYXA6ZW4gKGJyayBvY2ggbW1hcCksCm3lc3RlIGtvZG9tcuVkZW4gZvZyc3Qga29tcGlsZXJhcyBzb20gcG9zaXRpb25zb2Jlcm9lbmRlLiBEZWxhZGUgYmlibGlvdGVrCmf2ciByZWRhbiBkZXR0YSAoXC1mUEkgQyksIHPlIGRlIGRyYXIgYXV0b21hdGlza3QgZvZyZGVsIGF2IEFTTFIgbWVkYW4gYmlu5HJhClwmLnRleHRcLXJlZ2lvbmVyIG3lc3RlIGJ5Z2dhcyBtZWQgUElFIGb2ciBhdHQgdXBwbuUgQVNMUi4gTuRyIGRldHRhIHNrZXIg5HIKUk9QXC1hbmdyZXBwIChSZXR1cm4gT3JpZW50ZWQgUHJvZ3JhbW1pbmcpIG15Y2tldCBzduVyYXJlIGVmdGVyc29tIGRldCBpbnRlCmZpbm5zIG7lZ3JhIHN0YXRpc2thIHBsYXRzZXIgYXR0IHN0dWRzYSBmcuVuIGkgZXR0Cm1pbm5lc2b2cmTkcnZuaW5nc2FuZ3JlcHAuCgpEZXR0YSDkciBpbnRlIGtvbXBhdGliZWx0IG1lZCBcZkJcLWZQSUNcZlAgc+UgbWFuIG3lc3RlIHZhcmEgZvZyc2lrdGlnIG7kciBtYW4KYnlnZ2VyIGRlbGFkZSBvYmpla3QuCgpFZnRlcnNvbSBQSUUgaSB0aWxs5GdnIGltcGxlbWVudGVyYXMgbWVkIGV0dCBnZW5lcmVsbHQgcmVnaXN0ZXIga2FuIHZpc3NhCmFya2l0ZWt0dXJlciAoaHV2dWRzYWtsaWdlbiBpMzg2KSBzZSBwcmVzdGFuZGFm9nJsdXN0ZXIgdXBwIHRpbGwgMTUlIGkKduRsZGlndCB0ZXh0c2VnbWVudFwtdHVuZ2EgcHJvZ3JhbXMga/ZybmluZzsgZGUgZmxlc3RhIGv2cm5pbmdhciBzZXIgbWluZHJlCuRuIDElLiBBcmtpdGVrdHVyZXIgbWVkIG3lbmdhIGdlbmVyZWxsYSByZWdpc3RlciAodC5leCBhbWQ2NCkgc2VyIGludGUgZW4KbGlrYSBzdG9yIHbkcnN0YSBmYWxsc1wtZvZybHVzdC4KLgouU0ggRtZSRkFUVEFSRQpVcHBob3ZzcuR0dHNza3lkZGF0IKkgMjAxMFwtMjAxMSBSYXBoYetsIEhlcnR6b2cKLnNwClVwcGhvdnNy5HR0c3NreWRkYXQgqSAyMDExIEtlZXMgQ29vawouc3AKRGV0dGEg5HIgZnJpIHByb2dyYW12YXJhOyBzZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgZWxsZXIKc2VuYXJlIGb2ciBrb3BpZXJpbmdzdmlsbGtvci4gRGV0IGZpbm5zIElOR0VOIEdBUkFOVEkuCgouU0ggItZWRVJTxFRUTklORyIKUGV0ZXIgS3JlZnRpbmcgb2NoIERhbmllbCBOeWxhbmRlci4K