CiAgICAgICAgIAkJICAgICBIIEEgLSBQIHIgbyB4IHkKICAgICAgICAgCQkgICAgIC0tLS0tLS0tLS0tLS0tLQogICAgICAgICAJCSAgICAgIHZlcnNpb24gMS4xLjEKCQkJICAgICAgd2lsbHkgdGFycmVhdQoJCQkgICAgICAgMjAwMi8wMy8xMwoKPT09PT09PT09PT09PT09PQp8IEludHJvZHVjdGlvbiB8Cj09PT09PT09PT09PT09PT0KCkhBLVByb3h5IGVzdCB1biByZWxhaXMgVENQL0hUVFAgb2ZmcmFudCBkZXMgZmFjaWxpdOlzIGQnaW506WdyYXRpb24gZW4KZW52aXJvbm5lbWVudCBoYXV0ZW1lbnQgZGlzcG9uaWJsZS4gRW4gZWZmZXQsIGlsIGVzdCBjYXBhYmxlIGRlIDoKICAtIGFzc3VyZXIgdW4gYWlndWlsbGFnZSBzdGF0aXF1ZSBk6WZpbmkgcGFyIGRlcyBjb29raWVzIDsKICAtIGFzc3VyZXIgdW5lIHLpcGFydGl0aW9uIGRlIGNoYXJnZSBhdmVjIGNy6WF0aW9uIGRlIGNvb2tpZXMgcG91cgogICAgYXNzdXJlciBsYSBwZXJzaXN0ZW5jZSBkZSBzZXNzaW9uIDsKICAtIGZvdXJuaXIgdW5lIHZpc2liaWxpdOkgZXh0ZXJuZSBkZSBzb24g6XRhdCBkZSBzYW506SA7CiAgLSBzJ2Fycup0ZXIgZW4gZG91Y2V1ciBzYW5zIHBlcnRlIGJydXRhbGUgZGUgc2VydmljZS4KICAtIG1vZGlmaWVyL2Fqb3V0ZXIvc3VwcHJpbWVyIGRlcyBlbnTqdGVzIGRhbnMgbGEgcmVxdep0ZSBldCBsYSBy6XBvbnNlLgoKSWwgcmVxdWllcnQgcGV1IGRlIHJlc3NvdXJjZXMsIGV0IHNvbiBhcmNoaXRlY3R1cmUg6XbpbmVtZW50aWVsbGUKbW9uby1wcm9jZXNzdXMgbHVpIHBlcm1ldCBmYWNpbGVtZW50IGRlIGfpcmVyIHBsdXNpZXVycyBtaWxsaWVycyBkZQpjb25uZXhpb25zIHNpbXVsdGFu6WVzIHN1ciBwbHVzaWV1cnMgcmVsYWlzIHNhbnMgZWZmb25kcmVyIGxlIHN5c3TobWUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT0KfCBQYXJhbeh0cmVzIGRlIGxhbmNlbWVudCB8Cj09PT09PT09PT09PT09PT09PT09PT09PT09PQoKTGVzIG9wdGlvbnMgZGUgbGFuY2VtZW50IHNvbnQgcGV1IG5vbWJyZXVzZXMgOgoKICAgIC1mIDxmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24+CiAgICAtbiA8bm9tYnJlIG1heGltYWwgdG90YWwgZGUgY29ubmV4aW9ucyBzaW11bHRhbullcz4KICAgIC1OIDxub21icmUgbWF4aW1hbCBkZSBjb25uZXhpb25zIHNpbXVsdGFu6WVzIHBhciBwcm94eT4KICAgIC1kIGFjdGl2ZSBsZSBtb2RlIGRlYnVnCiAgICAtRCBwYXNzZSBlbiBkYWVtb24KICAgIC1zIGFmZmljaGUgbGVzIHN0YXRpc3RpcXVlcyAoc2kgb3B0aW9uIGNvbXBpbOllKQogICAgLWwgYWpvdXRlIGRlcyBpbmZvcm1hdGlvbnMgYXV4IHN0YXRpc3RpcXVlcwoKTGUgbm9tYnJlIG1heGltYWwgZGUgY29ubmV4aW9uIHNpbXVsdGFu6WVzIHBhciBwcm94eSBlc3QgbGUgcGFyYW3odHJlCnBhciBk6WZhdXQgcG91ciBsZXMgcHJveGllcyBwb3VyIGxlc3F1ZWxzIGNlIHBhcmFt6HRyZSBuJ2VzdCBwYXMKcHLpY2lz6SBkYW5zIGxlIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbi4KCkxlIG5vbWJyZSBtYXhpbWFsIHRvdGFsIGRlIGNvbm5leGlvbnMgc2ltdWx0YW7pZXMgbGltaXRlIGxlIG5vbWJyZSBkZQpjb25uZXhpb25zIFRDUCB1dGlsaXNhYmxlcyDgIHVuIGluc3RhbnQgcGFyIGxlIHByb2Nlc3N1cywgdG91cyBwcm94aWVzCmNvbmZvbmR1cy4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT0KfCBGaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gfAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoKQ29tbWVudGFpcmVzCj09PT09PT09PT09PQoKTCdhbmFseXNldXIgZHUgZmljaGllciBkZSBjb25maWd1cmF0aW9uIGlnbm9yZSBkZXMgbGlnbmVzIHZpZGVzLCBsZXMKZXNwYWNlcywgbGVzIHRhYnVsYXRpb25zLCBldCB0b3V0IGNlIHF1aSBlc3QgY29tcHJpcyBlbnRyZSBsZSBzeW1ib2xlCicjJyAocydpbCBuJ2VzdCBwYXMgcHLpY+lk6SBkJ3VuICdcJyksIGV0IGxhIGZpbiBkZSBsYSBsaWduZS4KCgpTZXJ2ZXVyCj09PT09PT0KCkxlIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBjb250aWVudCBkZXMgc2VjdGlvbnMgcmVw6XLpZXMgcGFyIGxlIG1vdApjbOkgImxpc3RlbiIgOgoKICAgIGxpc3RlbiA8bm9tX2luc3RhbmNlPiA8YWRyZXNzZV9JUD46PHBvcnQ+Cgo8bm9tX2luc3RhbmNlPiBlc3QgbGUgbm9tIGRlIGwnaW5zdGFuY2UgZOljcml0ZS4gQ2Ugbm9tIHNlcmEgZW52b3npCmRhbnMgbGVzIGxvZ3MsIGRvbmMgaWwgZXN0IHNvdWhhaXRhYmxlIGQndXRpbGlzZXIgdW4gbm9tIHJlbGF0aWYgYXUKc2VydmljZSByZWxheekuIEF1Y3VuIHRlc3Qgbidlc3QgZWZmZWN0dekgY29uY2VybmFudCBsJ3VuaWNpdOkgZGUgY2UKbm9tLCBxdWkgbidlc3QgcGFzIG9ibGlnYXRvaXJlLCBtYWlzIGZvcnRlbWVudCByZWNvbW1hbmTpZS4KCjxhZHJlc3NlX0lQPiBlc3QgbCdhZHJlc3NlIElQIHN1ciBsYXF1ZWxsZSBsZSByZWxhaXMgYXR0ZW5kIHNlcwpjb25uZXhpb25zLiBMJ2FkcmVzc2UgMC4wLjAuMCBzaWduaWZpZSBxdWUgbGVzIGNvbm5leGlvbnMgcG91cnJvbnQKcydlZmZlY3R1ZXIgc3VyIHRvdXRlcyBsZXMgYWRyZXNzZXMgZGUgbGEgbWFjaGluZS4KCjxwb3J0PiBlc3QgbGUgbnVt6XJvIGRlIHBvcnQgVENQIHN1ciBsZXF1ZWwgbGUgcmVsYWlzIGF0dGVuZCBzZXMKY29ubmV4aW9ucy4gTGUgY291cGxlIDxhZHJlc3NlX0lQPjo8cG9ydD4gZG9pdCDqdHJlIHVuaXF1ZSBwb3VyIHRvdXRlcwpsZXMgaW5zdGFuY2VzIGQndW5lIG3qbWUgbWFjaGluZS4gTCdhdHRhY2hlbWVudCDgIHVuIHBvcnQgaW5m6XJpZXVyIOAKMTAyNCBu6WNlc3NpdGUgdW4gbml2ZWF1IGRlIHByaXZpbOhnZSBwYXJ0aWN1bGllci4KCkV4ZW1wbGUgOgotLS0tLS0tLS0KICAgIGxpc3RlbiBodHRwX3Byb3h5IDEyNy4wLjAuMTo4MAoKCkluaGliaXRpb24KPT09PT09PT09PQoKVW4gc2VydmV1ciBwZXV0IOp0cmUgZOlzYWN0aXbpIHBvdXIgZGVzIGJlc29pbnMgZGUgbWFpbnRlbmFuY2UsIHNhbnMKYXZvaXIg4CBjb21tZW50ZXIgdG91dGUgdW5lIHBhcnRpZSBkdSBmaWNoaWVyLiBJbCBzdWZmaXQgZGUKcG9zaXRpb25uZXIgbGUgbW90IGNs6SAiZGlzYWJsZWQiIGRhbnMgc2Egc2VjdGlvbiA6CgogICAgbGlzdGVuIHNtdHBfcHJveHkgMC4wLjAuMDoyNQoJZGlzYWJsZWQKCk1vZGUKPT09PQoKVW4gc2VydmV1ciBwZXV0IGZvbmN0aW9ubmVyIGRhbnMgdHJvaXMgbW9kZXMgZGlmZulyZW50cyA6CiAgLSBUQ1AKICAtIEhUVFAKICAtIHN1cGVydmlzaW9uCgpNb2RlIFRDUAotLS0tLS0tLQpEYW5zIGNlIG1vZGUsIGxlIHNlcnZpY2UgcmVsYXllLCBk6HMgbGV1ciDpdGFibGlzc2VtZW50LCBsZXMKY29ubmV4aW9ucyBUQ1AgdmVycyB1biBvdSBwbHVzaWV1cnMgc2VydmV1cnMuIEF1Y3VuIHRyYWl0ZW1lbnQgbidlc3QKZWZmZWN0dekgc3VyIGxlIGZsdXguIElsIHMnYWdpdCBzaW1wbGVtZW50IGQndW5lIGFzc29jaWF0aW9uCjxhZHJlc3NlX3NvdXJjZTpwb3J0X3NvdXJjZT4gPGFkcmVzc2VfZGVzdGluYXRpb246cG9ydF9kZXN0aW5hdGlvbj4uClBvdXIgbCd1dGlsaXNlciwgcHLpY2lzZXIgbGUgbW9kZSBUQ1Agc291cyBsYSBk6WNsYXJhdGlvbiBkdSByZWxhaXMgOgoKICAgIGxpc3RlbiBzbXRwX3Byb3h5IDAuMC4wLjA6MjUKCW1vZGUgdGNwCgpNb2RlIEhUVFAKLS0tLS0tLS0tCkRhbnMgY2UgbW9kZSwgbGUgc2VydmljZSByZWxheWUgbGVzIGNvbm5leGlvbnMgVENQIHZlcnMgdW4gb3UKcGx1c2lldXJzIHNlcnZldXJzLCB1bmUgZm9pcyBxdSdpbCBkaXNwb3NlIGQnYXNzZXogZCdpbmZvcm1hdGlvbnMgcG91cgplbiBwcmVuZHJlIGxhIGTpY2lzaW9uLiBMZXMgZW506nRlcyBIVFRQIHNvbnQgYW5hbHlz6XMgcG91ciB5IHRyb3V2ZXIKdW4g6XZlbnR1ZWwgY29va2llLCBldCBjZXJ0YWlucyBkJ2VudHJlLWV1eCBwZXV2ZW50IOp0cmUgbW9kaWZp6XMgcGFyCmxlIGJpYWlzIGQnZXhwcmVzc2lvbnMgculndWxp6HJlcy4gUG91ciBhY3RpdmVyIGNlIG1vZGUsIHBy6WNpc2VyIGxlCm1vZGUgSFRUUCBzb3VzIGxhIGTpY2xhcmF0aW9uIGR1IHJlbGFpcyA6CgogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCgpNb2RlIHN1cGVydmlzaW9uCi0tLS0tLS0tLS0tLS0tLS0KSWwgcydhZ2l0IGQndW4gbW9kZSBvZmZyYW50IOAgdW4gY29tcG9zYW50IGV4dGVybmUgdW5lIHZpc2liaWxpdOkgZGUKbCfpdGF0IGRlIHNhbnTpIGR1IHNlcnZpY2UuIElsIHNlIGNvbnRlbnRlIGRlIHJldG91cm5lciAiT0siIOAgdG91dApjbGllbnQgc2UgY29ubmVjdGFudCBzdXIgc29uIHBvcnQuIElsIHBldXQg6nRyZSB1dGlsaXPpIGF2ZWMgZGVzCnLpcGFydGl0ZXVycyBkZSBjaGFyZ2Ug6XZvbHXpcyBwb3VyIGTpdGVybWluZXIgcXVlbHMgc29udCBsZXMgc2VydmljZXMKdXRpbGlzYWJsZXMuIFBvdXIgYWN0aXZlciBjZSBtb2RlLCBwculjaXNlciBsZSBtb2RlIEhFQUxUSCBzb3VzIGxhCmTpY2xhcmF0aW9uIGR1IHJlbGFpcyA6CgogICAgbGlzdGVuIGhlYWx0aF9jaGVjayAwLjAuMC4wOjYwMDAwCgltb2RlIGhlYWx0aAoKCkxpbWl0YXRpb24gZHUgbm9tYnJlIGRlIGNvbm5leGlvbnMgc2ltdWx0YW7pZXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKTGUgcGFyYW3odHJlICJtYXhjb25uIiBwZXJtZXQgZGUgZml4ZXIgbGEgbGltaXRlIGFjY2VwdGFibGUgZW4gbm9tYnJlCmRlIGNvbm5leGlvbnMgc2ltdWx0YW7pZXMgcGFyIHByb3h5LiBDaGFxdWUgcHJveHkgcXVpIGF0dGVpbnQgY2V0dGUKdmFsZXVyIGNlc3NlIGQn6WNvdXRlciBqdXNxdSfgIGxpYulyYXRpb24gZCd1bmUgY29ubmV4aW9uLiBWb2lyIHBsdXMKbG9pbiBjb25jZXJuYW50IGxlcyBsaW1pdGF0aW9ucyBsaellcyBhdSBzeXN06G1lLiBFeGVtcGxlOgoKICAgICBtYXhjb25uIDE2MDAwCgoKQXJy6nQgZW4gZG91Y2V1cgo9PT09PT09PT09PT09PT09CgpJbCBlc3QgcG9zc2libGUgZCdhcnLqdGVyIGxlcyBzZXJ2aWNlcyBlbiBkb3VjZXVyIGVuIGVudm95YW50IHVuCnNpZ25hbCBTSUdfVVNSMSBhdSBwcm9jZXNzdXMgcmVsYWlzLiBUb3VzIGxlcyBzZXJ2aWNlcyBzZXJvbnQgYWxvcnMKbWlzIGVuIHBoYXNlIGQnYXJy6nQsIG1haXMgcG91cnJvbnQgY29udGludWVyIGQnYWNjZXB0ZXIgZGVzIGNvbm5leGlvbnMKcGVuZGFudCB1biB0ZW1wcyBk6WZpbmkgcGFyIGxlIHBhcmFt6HRyZSAiZ3JhY2UiIChlbiBtaWxsaXNlY29uZGVzKS4KQ2VsYSBwZXJtZXQgcGFyIGV4ZW1wbGUsIGRlIGZhaXJlIHNhdm9pciByYXBpZGVtZW50IOAgdW4gculwYXJ0aXRldXIKZGUgY2hhcmdlIHF1J2lsIG5lIGRvaXQgcGx1cyB1dGlsaXNlciB1biByZWxhaXMsIHRvdXQgZW4gY29udGludWFudApkJ2Fzc3VyZXIgbGUgc2VydmljZSBsZSB0ZW1wcyBxdSdpbCBzJ2VuIHJlbmRlIGNvbXB0ZS4gUmVtYXJxdWUgOiBsZXMKY29ubmV4aW9ucyBhY3RpdmVzIG5lIHNvbnQgamFtYWlzIGNhc3PpZXMuIERhbnMgbGUgcGlyZSBkZXMgY2FzLCBpbApmYXVkcmEgYXR0ZW5kcmUgZW4gcGx1cyBsZXVyIGV4cGlyYXRpb24gYXZhbnQgbCdhcnLqdCB0b3RhbCBkdQpwcm9jZXNzdXMuIExhIHZhbGV1ciBwYXIgZOlmYXV0IGVzdCAwIChwYXMgZGUgZ3LiY2UpLgoKRXhlbXBsZSA6Ci0tLS0tLS0tLQoKICAgICMgbGUgc2VydmljZSB0b3VybmVyYSBlbmNvcmUgMTAgc2Vjb25kZXMgYXBy6HMgbGEgZGVtYW5kZSBkJ2Fycup0CiAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCgltb2RlIGh0dHAKCWdyYWNlIDEwMDAwCgogICAgbGlzdGVuIGhlYWx0aF9jaGVjayAwLjAuMC4wOjYwMDAwCgltb2RlIGhlYWx0aAoJZ3JhY2UgMAoKClRlbXBzIGQnZXhwaXJhdGlvbiBkZXMgY29ubmV4aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklsIGVzdCBwb3NzaWJsZSBkZSBwYXJhbel0cmVyIGNlcnRhaW5lcyBkdXLpZXMgZCdleHBpcmF0aW9uIGF1IG5pdmVhdQpkZXMgY29ubmV4aW9ucyBUQ1AuIFRyb2lzIHRlbXBzIGluZOlwZW5kYW50cyBzb250IGNvbmZpZ3VyYWJsZXMgZXQKYWNjZXB0ZW50IGRlcyB2YWxldXJzIGVuIG1pbGxpc2Vjb25kZXMuIFNpIGwndW5lIGRlIGNlcyB0cm9pcwp0ZW1wb3Jpc2F0aW9ucyBlc3QgZOlwYXNz6WUsIGxhIHNlc3Npb24gZXN0IHRlcm1pbullIOAgY2hhcXVlCmV4dHLpbWl06S4KCiAgLSB0ZW1wcyBkJ2F0dGVudGUgZCd1bmUgZG9ubullIGRlIGxhIHBhcnQgZHUgY2xpZW50LCBvdSBkZSBsYQogICAgcG9zc2liaWxpdOkgZGUgbHVpIGVudm95ZXIgZGVzIGRvbm7pZXMgOiAiY2xpdGltZW91dCIgOgoKCSMgdGltZS1vdXQgY2xpZW50IOAgMm1uMzAuCgljbGl0aW1lb3V0CTE1MDAwMAoKICAtIHRlbXBzIGQnYXR0ZW50ZSBkJ3VuZSBkb25u6WUgZGUgbGEgcGFydCBkdSBzZXJ2ZXVyLCBvdSBkZSBsYQogICAgcG9zc2liaWxpdOkgZGUgbHVpIGVudm95ZXIgZGVzIGRvbm7pZXMgOiAic3J2dGltZW91dCIgOgoKCSMgdGltZS1vdXQgY2xpZW50IOAgMzBzLgoJc3J2dGltZW91dAkzMDAwMAoKICAtIHRlbXBzIGQnYXR0ZW50ZSBkZSBsJ+l0YWJsaXNzZW1lbnQgZCd1bmUgY29ubmV4aW9uIHZlcnMgdW4gc2VydmV1cgogICAgImNvbnRpbWVvdXQiIDoKCiAgICAgICAgIyBvbiBhYmFuZG9ubmUgc2kgbGEgY29ubmV4aW9uIG4nZXN0IHBhcyDpdGFibGllIGFwcuhzIDMgc2Vjb25kZXMKCWNvbnRpbWVvdXQJMzAwMAoKUmVtYXJxdWU6ICJjb250aW1lb3V0IiBldCAic3J2dGltZW91dCIgbidvbnQgcGFzIGQndXRpbGl06SBkYW5zIGxlIGNhcwpkdSBzZXJ2ZXVyIGRlIHR5cGUgImhlYWx0aCIuCgpUZW50YXRpdmVzIGRlIHJlY29ubmV4aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT0KCkxvcnMgZCd1biDpY2hlYyBkZSBjb25uZXhpb24gdmVycyB1biBzZXJ2ZXVyLCBpbCBlc3QgcG9zc2libGUgZGUKcmV0ZW50ZXIgKHBvdGVudGllbGxlbWVudCB2ZXJzIHVuIGF1dHJlIHNlcnZldXIsIGVuIGNhcyBkZSBy6XBhcnRpdGlvbgpkZSBjaGFyZ2UpLiBMZSBub21icmUgZGUgbm91dmVsbGVzIHRlbnRhdGl2ZXMgaW5mcnVjdHVldXNlcyBhdmFudAphYmFuZG9uIGVzdCBmb3VybmkgcGFyIGxlIHBhcmFt6HRyZSAicmV0cmllcyIgOgoKCSMgb24gZXNzYWllIGVuY29yZSB0cm9pcyBmb2lzIG1heGkKCXJldHJpZXMgMwoKQWRyZXNzZSBkdSBzZXJ2ZXVyCj09PT09PT09PT09PT09PT09PQoKTGUgc2VydmV1ciB2ZXJzIGxlcXVlbCBzb250IHJlZGlyaWfpZXMgbGVzIGNvbm5leGlvbnMgZXN0IGTpZmluaSBwYXIKbGUgcGFyYW3odHJlICJkaXNwYXRjaCIgc291cyBsYSBmb3JtZSA8YWRyZXNzZV9pcD46PHBvcnQ+IDoKCiAgIAkjIG9uIGVudm9pZSB0b3V0ZXMgbGVzIG5vdXZlbGxlcyBjb25uZXhpb25zIGljaQoJZGlzcGF0Y2ggMTkyLjE2OC4xLjI6ODAKClJlbWFycXVlOiBjZSBwYXJhbeh0cmUgbidhIHBhcyBkJ3V0aWxpdOkgcG91ciB1biBzZXJ2ZXVyIGVuIG1vZGUgImhlYWx0aCIuCgpE6WZpbml0aW9uIGR1IG5vbSBkdSBjb29raWUKPT09PT09PT09PT09PT09PT09PT09PT09PT09CgpFbiBtb2RlIEhUVFAsIGlsIGVzdCBwb3NzaWJsZSBkZSByZWNoZXJjaGVyIGxhIHZhbGV1ciBkJ3VuIGNvb2tpZSBwb3VyCnNhdm9pciB2ZXJzIHF1ZWwgc2VydmV1ciBhaWd1aWxsZXIgbGEgcmVxdep0ZSB1dGlsaXNhdGV1ci4gTGUgbm9tIGR1CmNvb2tpZSBlc3QgZG9ubukgcGFyIGxlIHBhcmFt6HRyZSAiY29va2llIiA6CgogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCgljb29raWUgU0VSVkVSSUQKCk9uIHBldXQgbW9kaWZpZXIgbCd1dGlsaXNhdGlvbiBkdSBjb29raWUgcG91ciBsYSByZW5kcmUgcGx1cwppbnRlbGxpZ2VudGUgdmlzLeAtdmlzIGRlcyBhcHBsaWNhdGlvbnMgcmVsYXnpZXMuIElsIGVzdCBwb3NzaWJsZSxub3RhbW1lbnQKZGUgc3VwcHJpbWVyIG91IHLp6WNyaXJlIHVuIGNvb2tpZSByZXRvdXJu6SBwYXIgdW4gc2VydmV1ciBhY2PpZOkgZW4gZGlyZWN0LApldCBkJ2luc+lyZXIgdW4gY29va2llIGRhbnMgdW5lIHLpcG9uc2UgSFRUUCBvcmllbnTpZSB2ZXJzIHVuIHNlcnZldXIKc+lsZWN0aW9ubukgZW4gculwYXJ0aXRpb24gZGUgY2hhcmdlLgoKUG91ciBuZSBjb25zZXJ2ZXIgbGUgY29va2llIHF1J2VuIGFjY+hzIGluZGlyZWN0LCBkb25jIOAgdHJhdmVycyBsZQpkaXNwYXRjaGV1ciwgZXQgbGUgc3VwcHJpbWVyIGxvcnMgZGVzIGFjY+hzIGRpcmVjdHMgOgoKCWNvb2tpZSBTRVJWRVJJRCBpbmRpcmVjdAoKUG91ciBy6eljcmlyZSBsZSBub20gZHUgc2VydmV1ciBkYW5zIHVuIGNvb2tpZSBsb3JzIGQndW4gYWNj6HMgZGlyZWN0IDoKCgljb29raWUgU0VSVkVSSUQgcmV3cml0ZQoKUG91ciBjcullciB1biBjb29raWUgY29tcG9ydGFudCBsZSBub20gZHUgc2VydmV1ciBsb3JzIGQndW4gYWNj6HMgZW4KculwYXJ0aXRpb24gZGUgY2hhcmdlIGludGVybmUuIERhbnMgY2UgY2FzLCBpbCBlc3QgaW5kaXNwZW5zYWJsZSBxdWUgdG91cyBsZXMKc2VydmV1cnMgYWllbnQgdW4gY29va2llIHJlbnNlaWdu6S4KCgljb29raWUgU0VSVkVSSUQgaW5zZXJ0CgpSZW1hcnF1ZTogSWwgZXN0IHBvc3NpYmxlIGRlIGNvbWJpbmVyICdpbnNlcnQnIGF2ZWMgJ2luZGlyZWN0JyBvdSAncmV3cml0ZScKcG91ciBzJ2FkYXB0ZXIg4CBkZXMgYXBwbGljYXRpb25zIGfpbulyYW50IGTpauAgbGUgY29va2llLCBhdmVjIHVuIGNvbnRlbnUKaW52YWxpZGUuIElsIHN1ZmZpdCBwb3VyIGNlbGEgZGUgbGVzIHNw6WNpZmllciBzdXIgbGEgbeptZSBsaWduZS4KCkFzc2lnbmF0aW9uIGQndW4gc2VydmV1ciDgIHVuZSB2YWxldXIgZGUgY29va2llCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpFbiBtb2RlIEhUVFAsIGlsIGVzdCBwb3NzaWJsZSBkJ2Fzc29jaWVyIGRlcyBzZXJ2ZXVycyDgIGRlcyB2YWxldXJzIGRlCmNvb2tpZSBwYXIgbGUgcGFyYW3odHJlICJzZXJ2ZXIiLiBMYSBzeW50YXhlIGVzdCA6CgogICAgc2VydmVyIDxpZGVudGlmaWFudD4gPGFkcmVzc2VfaXA+Ojxwb3J0PiBjb29raWUgPHZhbGV1cj4KCjxpZGVudGlmaWFudD4gZXN0IHVuIG5vbSBxdWVsY29ucXVlIGRlIHNlcnZldXIgdXRpbGlz6SBwb3VyCmwnaWRlbnRpZmllciBkYW5zIGxhIGNvbmZpZ3VyYXRpb24gKGVycmV1cnMuLi4pLgo8YWRyZXNzZV9pcD46PHBvcnQ+IGxlIGNvdXBsZSBhZHJlc3NlLXBvcnQgc3VyIGxlcXVlbCBsZSBzZXJ2ZXVyIOljb3V0ZS4KPHZhbGV1cj4gZXN0IGxhIHZhbGV1ciB0cm91dullIGRhbnMgbGUgY29va2llLAoKRXhlbXBsZSA6IGxlIGNvb2tpZSBTRVJWRVJJRCBwZXV0IGNvbnRlbmlyIHNlcnZlcjAxIG91IHNlcnZlcjAyCi0tLS0tLS0KICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKCW1vZGUgaHR0cAoJY29va2llIFNFUlZFUklECglkaXNwYXRjaCAxOTIuMTY4LjEuMTAwOjgwCglzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEKCXNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMgoKQXR0ZW50aW9uIDogbGEgc3ludGF4ZSBhIGNoYW5n6SBkZXB1aXMgbGEgdmVyc2lvbiAxLjAuCi0tLS0tLS0tLQoKUulwYXJ0aXRldXIgZGUgY2hhcmdlIGludGVybmUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkxlIHJlbGFpcyBwZXV0IGVmZmVjdHVlciBsdWktbeptZSBsYSBy6XBhcnRpdGlvbiBkZSBjaGFyZ2UgZW50cmUgbGVzCmRpZmbpcmVudHMgc2VydmV1cnMgZOljcml0cyBwb3VyIHVuIHNlcnZpY2UgZG9ubuksIGVuIG1vZGUgVENQIGNvbW1lCmVuIG1vZGUgSFRUUC4gUG91ciBjZWxhLCBvbiBwculjaXNlIGxlIG1vdCBjbOkgJ2JhbGFuY2UnIGRhbnMgbGEKZOlmaW5pdGlvbiBkdSBzZXJ2aWNlLCDpdmVudHVlbGxlbWVudCBzdWl2aSBkdSBub20gZCd1biBhbGdvcml0aG1lIGRlCnLpcGFydGl0aW9uLiBFbiB2ZXJzaW9uIDEuMS4wLCBzZXVsICdyb3VuZHJvYmluJyBlc3QgZ+ly6SwgZXQgYydlc3QKYXVzc2kgbGEgdmFsZXVyIGltcGxpY2l0ZSBwYXIgZOlmYXV0LiBJbCBlc3Qg6XZpZGVudCBxdSdlbiBjYXMKZCd1dGlsaXNhdGlvbiBkdSBy6XBhcnRpdGV1ciBpbnRlcm5lLCBpbCBuZSBmYXVkcmEgcGFzIHNw6WNpZmllcgpkJ2FkcmVzc2UgZGUgZGlzcGF0Y2gsIGV0IHF1J2lsIGZhdWRyYSBhdSBtb2lucyB1biBzZXJ2ZXVyLgoKRXhlbXBsZSA6IG3qbWUgcXVlIHBy6WPpZGVtbWVudCBlbiBy6XBhcnRpdGlvbiBpbnRlcm5lCi0tLS0tLS0KCiAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCgltb2RlIGh0dHAKCWNvb2tpZSBTRVJWRVJJRAoJYmFsYW5jZSByb3VuZHJvYmluCglzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEKCXNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMgoKClN1cnZlaWxsYW5jZSBkZXMgc2VydmV1cnMKPT09PT09PT09PT09PT09PT09PT09PT09PQoKQSBjZXR0ZSBkYXRlLCBsJ+l0YXQgZGVzIHNlcnZldXJzIG4nZXN0IHRlc3TpIHF1ZSBwYXIg6XRhYmxpc3NlbWVudApkZSBjb25uZXhpb24gVENQIHRvdXRlcyBsZXMgMiBzZWNvbmRlcywgYXZlYyAzIGVzc2FpcyBwb3VyIGTpY2xhcmVyCnVuIHNlcnZldXIgZW4gcGFubmUsIDIgcG91ciBsZSBk6WNsYXJlciB1dGlsaXNhYmxlLiBVbiBzZXJ2ZXVyIGhvcnMKZCd1c2FnZSBuZSBzZXJhIHBhcyB1dGlsaXPpIGRhbnMgbGUgcHJvY2Vzc3VzIGRlIHLpcGFydGl0aW9uIGRlIGNoYXJnZQppbnRlcm5lLiBQb3VyIGFjdGl2ZXIgbGEgc3VydmVpbGxhbmNlLCBham91dGVyIGxlIG1vdCBjbOkgJ2NoZWNrJyDgIGxhCmZpbiBkZSBsYSBk6WNsYXJhdGlvbiBkdSBzZXJ2ZXVyLgoKRXhlbXBsZSA6IG3qbWUgcXVlIHBy6WPpZGVtbWVudCBhdmVjIHN1cnZlaWxsYW5jZQotLS0tLS0tCgogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCgljb29raWUgU0VSVkVSSUQKCWJhbGFuY2Ugcm91bmRyb2JpbgoJc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCglzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sKCgpSZWNvbm5leGlvbiB2ZXJzIHVuIHLpcGFydGl0ZXVyIGVuIGNhcyBkJ+ljaGVjIGRpcmVjdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKRW4gbW9kZSBIVFRQLCBzaSB1biBzZXJ2ZXVyIGTpZmluaSBwYXIgdW4gY29va2llIG5lIHLpcG9uZCBwbHVzLCBsZXMKY2xpZW50cyBzZXJvbnQgZOlmaW5pdGl2ZW1lbnQgYWlndWlsbOlzIGRlc3N1cyDgIGNhdXNlIGRlIGxldXIgY29va2llLApldCBkZSBjZSBmYWl0LCBk6WZpbml0aXZlbWVudCBwcml26XMgZGUgc2VydmljZS4gTGEgc3DpY2lmaWNhdGlvbiBkdQpwYXJhbeh0cmUgInJlZGlzcGF0Y2giIGF1dG9yaXNlIGRhbnMgY2UgY2FzIOAgcmVudm95ZXIgbGVzIGNvbm5leGlvbnMK6WNob3XpZXMgdmVycyBsZSBy6XBhcnRpdGV1ciAoZXh0ZXJuZSBvdSBpbnRlcm5lKSBhZmluIGQnYXNzaWduZXIgdW4Kbm91dmVhdSBzZXJ2ZXVyIOAgY2VzIGNsaWVudHMuCgpFeGVtcGxlIDoKLS0tLS0tLQogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCgljb29raWUgU0VSVkVSSUQKCWRpc3BhdGNoIDE5Mi4xNjguMS4xMDA6ODAKCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMQoJc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyCglyZWRpc3BhdGNoICMgcmVudm95ZXIgdmVycyBkaXNwYXRjaCBzaSBzZXJ2ZXVyIEhTLgoKRm9uY3Rpb25uZW1lbnQgZW4gbW9kZSB0cmFuc3BhcmVudAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpFbiBtb2RlIEhUVFAsIGxlIG1vdCBjbOkgInRyYW5zcGFyZW50IiBwZXJtZXQgZCdpbnRlcmNlcHRlciBkZXMKc2Vzc2lvbnMgcm91dOllcyDgIHRyYXZlcnMgbGEgbWFjaGluZSBo6WJlcmdlYW50IGxlIHByb3h5LiBEYW5zCmNlIG1vZGUsIG9uIG5lIHBy6WNpc2UgcGFzIGwnYWRyZXNzZSBkZSBy6XBhcnRpdGlvbiAiZGlzcGF0Y2giLApjYXIgY2VsbGUtY2kgZXN0IHRpcullIGRlIGwnYWRyZXNzZSBkZXN0aW5hdGlvbiBkZSBsYSBzZXNzaW9uCmTpdG91cm7pZS4gTGUgc3lzdOhtZSBkb2l0IHBlcm1ldHRyZSBkZSByZWRpcmlnZXIgbGVzIHBhcXVldHMKdmVycyB1biBwcm9jZXNzdXMgbG9jYWwuCgpFeGVtcGxlIDoKLS0tLS0tLQogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo2NTAwMAoJbW9kZSBodHRwCgl0cmFuc3BhcmVudAoJY29va2llIFNFUlZFUklECglzZXJ2ZXIgc2VydmVyMDEgMTkyLjE2OC4xLjE6ODAKCXNlcnZlciBzZXJ2ZXIwMiAxOTIuMTY4LjEuMjo4MAoKICAgICMgaXB0YWJsZXMgLXQgbmF0IC1BIFBSRVJPVVRJTkcgLWkgZXRoMCAtcCB0Y3AgLWQgMTkyLjE2OC4xLjEwMCBcCiAgICAgIC0tZHBvcnQgODAgLWogUkVESVJFQ1QgLS10by1wb3J0cyA2NTAwMAoKSm91cm5hbGlzYXRpb24gZGVzIGNvbm5leGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkxlcyBjb25uZXhpb25zIFRDUCBldCBIVFRQIHBldXZlbnQgZG9ubmVyIGxpZXUg4CB1bmUgam91cm5hbGlzYXRpb24Kc29tbWFpcmUgaW5kaXF1YW50LCBwb3VyIGNoYXF1ZSBjb25uZXhpb24sIGxhIGRhdGUsIGwnaGV1cmUsIGxlcyBhZHJlc3NlcwpJUCBzb3VyY2UgZXQgZGVzdGluYXRpb24sIGV0IGxlcyBwb3J0cyBzb3VyY2UgZXQgZGVzdGluYXRpb24gcXVpIGxhCmNhcmFjdOlyaXNlbnQuIFVsdOlyaWV1cmVtZW50LCBsZXMgVVJMcyBzZXJvbnQgbG9ndellcyBlbiBtb2RlIEhUVFAsCnRvdXQgY29tbWUgbGVzIGFycup0cyBkZSBzZXJ2aWNlLiBUb3VzIGxlcyBtZXNzYWdlcyBzb250IGVudm956XMgZW4Kc3lzbG9nIHZlcnMgdW4gb3UgZGV1eCBzZXJ2ZXVycy4gTGEgc3ludGF4ZSBlc3QgbGEgc3VpdmFudGUgOgoKICAgIGxvZyA8YWRyZXNzZV9pcD4gPGZhY2lsaXR5PgoKRXhlbXBsZSA6Ci0tLS0tLS0tLQogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCglsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKCWxvZyAxOTIuMTY4LjIuMjAxIGxvY2FsNAoKTGVzIGNvbm5leGlvbnMgc29udCBlbnZveellcyBlbiBuaXZlYXUgImluZm8iLiBMZXMgZOltYXJyYWdlcyBkZQpzZXJ2aWNlIHNlcm9udCBlbnZveelzIGVuICJub3RpY2UiLCBsZXMgc2lnbmF1eCBkJ2Fycup0cyBlbiAid2FybmluZyIKZXQgbGVzIGFycup0cyBk6WZpbml0aWZzIGVuICJhbGVydCIuCgpMZXMgY2F06WdvcmllcyBwb3NzaWJsZXMgc29udCA6CiAgICBrZXJuLCB1c2VyLCBtYWlsLCBkYWVtb24sIGF1dGgsIHN5c2xvZywgbHByLCBuZXdzLAogICAgdXVjcCwgY3JvbiwgYXV0aDIsIGZ0cCwgbnRwLCBhdWRpdCwgYWxlcnQsIGNyb24yLAogICAgbG9jYWwwLCBsb2NhbDEsIGxvY2FsMiwgbG9jYWwzLCBsb2NhbDQsIGxvY2FsNSwgbG9jYWw2LCBsb2NhbDcKCgpNb2RpZmljYXRpb24gZGVzIGVudOp0ZXMgSFRUUAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKRW4gbW9kZSBIVFRQIHVuaXF1ZW1lbnQsIGlsIGVzdCBwb3NzaWJsZSBkZSByZW1wbGFjZXIgY2VydGFpbnMgZW506nRlcwpkYW5zIGxhIHJlcXXqdGUgZXQvb3UgbGEgculwb25zZSDgIHBhcnRpciBkJ2V4cHJlc3Npb25zIHLpZ3VsaehyZXMuIFVuZQpsaW1pdGF0aW9uIGNlcGVuZGFudCA6IGxlcyBlbnTqdGVzIGZvdXJuaXMgYXUgbWlsaWV1IGRlIGNvbm5leGlvbnMKcGVyc2lzdGVudGVzIChrZWVwLWFsaXZlKSBuZSBzb250IHBhcyB2dXMuIExlcyBkb25u6WVzIG5lIHNvbnQgcGFzCmFmZmVjdOllcywgY2VjaSBuZSBzJ2FwcGxpcXVlIHF1J2F1eCBlbnTqdGVzLgoKTGEgc3ludGF4ZSBlc3QgOgogICByZXFhZGQgPHN0cmluZz4gICAgICAgICAgICAgcG91ciBham91dGVyIHVuIGVudOp0ZSBkYW5zIGxhIHJlcXXqdGUKICAgcmVxcmVwIDxzZWFyY2g+IDxyZXBsYWNlPiAgIHBvdXIgbW9kaWZpZXIgbGEgcmVxdep0ZQogICByZXFyZXAgPHNlYXJjaD4gICAgICAgICAgICAgcG91ciBzdXBwcmltZXIgdW4gZW506nRlIGRhbnMgbGEgcmVxdep0ZQoKICAgcnNwYWRkIDxzdHJpbmc+ICAgICAgICAgICAgIHBvdXIgYWpvdXRlciB1biBlbnTqdGUgZGFucyBsYSBy6XBvbnNlCiAgIHJzcHJlcCA8c2VhcmNoPiA8cmVwbGFjZT4gICBwb3VyIG1vZGlmaWVyIGxhIHLpcG9uc2UKICAgcnNwcmVwIDxzZWFyY2g+ICAgICAgICAgICAgIHBvdXIgc3VwcHJpbWVyIHVuIGVudOp0ZSBkYW5zIGxhIHLpcG9uc2UKCgo8c2VhcmNoPiBlc3QgdW5lIGV4cHJlc3Npb24gculndWxp6HJlIGNvbXBhdGlibGUgR05VIHJlZ2V4cCBzdXBwb3J0YW50CmxlIGdyb3VwYWdlIHBhciBwYXJlbnRo6HNlcyAoc2FucyBsZXMgJ1wnKS4gTGVzIGVzcGFjZXMgZXQgYXV0cmVzCnPpcGFyYXRldXJzIGRvaXZlbnQg6nRyZXMgcHLpY+lk6XMgZCd1biAnXCcgcG91ciBuZSBwYXMg6nRyZSBjb25mb25kdXMKYXZlYyBsYSBmaW4gZGUgbGEgY2hh7m5lLiBEZSBwbHVzLCBjZXJ0YWlucyBjYXJhY3TocmVzIHNw6WNpYXV4IHBldXZlbnQK6nRyZSBwculj6WTpcyBkJ3VuIGJhY2tzbGFjaCAoJ1wnKSA6CgogIFx0ICAgcG91ciB1bmUgdGFidWxhdGlvbgogIFxyICAgcG91ciB1biByZXRvdXIgY2hhcnJpb3QKICBcbiAgIHBvdXIgdW4gc2F1dCBkZSBsaWduZQogIFwgICAgcG91ciBkaWZm6XJlbmNpZXIgdW4gZXNwYWNlIGQndW4gc+lwYXJhdGV1cgogIFwjICAgcG91ciBkaWZm6XJlbmNpZXIgdW4gZGnoc2UgZCd1biBjb21tZW50YWlyZQogIFxcICAgcG91ciB1biBiYWNrc2xhc2gKICBceFhYIHBvdXIgdW4gY2FyYWN06HJlIHNw6WNpZmlxdWUgWFggKGNvbW1lIGVuIEMpCgoKPHJlcGxhY2U+IGNvbnRpZW50IGxhIGNoYe5uZSByZW1wbGHnYW50IGxhIHBvcnRpb24gdulyaWZp6WUgcGFyIGwnZXhwcmVzc2lvbi4KRWxsZSBwZXV0IGluY2x1cmUgbGVzIGNhcmFjdOhyZXMgc3DpY2lhdXggY2ktZGVzc3VzLCBmYWlyZSBy6WbpcmVuY2Ug4CB1bgpncm91cGUgZOlsaW1pdOkgcGFyIGRlcyBwYXJlbnRo6HNlcyBkYW5zIGwnZXhwcmVzc2lvbiBy6Wd1bGnocmUsIHBhciBzYQpwb3NpdGlvbiBudW3pcmFsZS4gTGVzIHBvc2l0aW9ucyB2b250IGRlIDEg4CA5LCBldCBzb250IGNvZOllcyBwYXIgdW4gJ1wnCnN1aXZpIGR1IGNoaWZmcmUgZOlzaXLpLiBJbCBlc3Qg6WdhbGVtZW50IHBvc3NpYmxlIGQnaW5z6XJlciB1biBjYXJhY3TocmUgbm9uCmltcHJpbWFibGUgKHV0aWxlIHBvdXIgbGUgc2F1dCBkZSBsaWduZSkgaW5zY3JpdmFudCAnXHgnIHN1aXZpIGR1IGNvZGUKaGV4YWTpY2ltYWwgZGUgY2UgY2FyYWN06HJlIChjb21tZSBlbiBDKS4KCjxzdHJpbmc+IHJlcHLpc2VudGUgdW5lIGNoYe5uZSBxdWkgc2VyYSBham91dOllIHN5c3TpbWF0aXF1ZW1lbnQgYXBy6HMgbGEKZGVybmnocmUgbGlnbmUgZCdlbnTqdGUuCgpSZW1hcnF1ZXMgOgotLS0tLS0tLS0KICAtIGxhIHByZW1p6HJlIGxpZ25lIGRlIGxhIHJlcXXqdGUgZXQgY2VsbGUgZGUgbGEgculwb25zZSBzb250IHRyYWl06WVzIGNvbW1lCiAgICBkZXMgZW506nRlcywgY2UgcXVpIHBlcm1ldCBkZSBy6eljcmlyZSBkZXMgVVJMIGV0IGRlcyBjb2RlcyBkJ2VycmV1ci4KICAtICdyZXFyZXAnIGVzdCBsJ+lxdWl2YWxlbnQgZGUgJ2NsaWV4cCcgZW4gdmVyc2lvbiAxLjAsIGV0ICdyc3ByZXAnIGNlbHVpIGRlCiAgICAnc3J2ZXhwJy4gQ2VzIG5vbXMgc29udCB0b3Vqb3VycyBzdXBwb3J06XMgbWFpcyBk6WNvbnNlaWxs6XMuCiAgLSBwb3VyIGRlcyByYWlzb25zIGRlIHBlcmZvcm1hbmNlcywgbGUgbm9tYnJlIHRvdGFsIGRlIGNhcmFjdOhyZXMgYWpvdXTpcyBzdXIKICAgIHVuZSByZXF16nRlIG91IHVuZSBy6XBvbnNlIGVzdCBsaW1pdOkg4CAyNTYuIENldHRlIHZhbGV1ciBlc3QgbW9kaWZpYWJsZSBkYW5zCiAgICBsZSBjb2RlLiBQb3VyIHVuIHVzYWdlIHRlbXBvcmFpcmUsIG9uIHBldXQgZ2FnbmVyIGRlIGxhIHBsYWNlIGVuIHN1cHByaW1hbnQKICAgIHF1ZWxxdWVzIGVudOp0ZXMgaW51dGlsZXMgYXZhbnQgbGVzIGFqb3V0cy4KCkV4ZW1wbGVzIDoKLS0tLS0tLS0KCXJlcXJlcAleKEdFVC4qKSguZnJlZS5mcikoLiopIFwxLm9ubGluZS5mclwzCglyZXFyZXAJXihQT1NULiopKC5mcmVlLmZyKSguKikgXDEub25saW5lLmZyXDMKCXJlcXJlcAleUHJveHktQ29ubmVjdGlvbjouKglQcm94eS1Db25uZWN0aW9uOlwgY2xvc2UKCXJzcHJlcAleU2VydmVyOi4qIFNlcnZlcjpcIFR1eC0yLjAKCXJzcHJlcAleKExvY2F0aW9uOlwgKShbXjpdKjovL1teL10qKSguKikgXDFcMwoJcnNwZGVsICBeQ29ubmVjdGlvbjouKgoJcnNwYWRkCUNvbm5lY3Rpb246XCBjbG9zZQoKClLpcGFydGl0aW9uIGF2ZWMgcGVyc2lzdGVuY2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKTGEgY29tYmluYWlzb24gZGUgbCdpbnNlcnRpb24gZGUgY29va2llIGF2ZWMgbGEgculwYXJ0aXRpb24gZGUgY2hhcmdlIGludGVybmUKcGVybWV0IGQnYXNzdXJlciB1bmUgcGVyc2lzdGVuY2UgZGFucyBsZXMgc2Vzc2lvbnMgSFRUUCBkJ3VuZSBtYW5p6HJlCnByYXRpcXVlbWVudCB0cmFuc3BhcmVudGUgcG91ciBsZXMgYXBwbGljYXRpb25zLiBMZSBwcmluY2lwZSBlc3Qgc2ltcGxlIDoKICAtIGFzc2lnbmVyIHVuIGNvb2tpZSDgIGNoYXF1ZSBzZXJ2ZXVyCiAgLSBlZmZlY3R1ZXIgdW5lIHLpcGFydGl0aW9uIGludGVybmUKICAtIGluc+lyZXIgdW4gY29va2llIGRhbnMgbGVzIHLpcG9uc2VzIGlzc3VlcyBkJ3VuZSBy6XBhcnRpdGlvbgoKRXhlbXBsZSA6Ci0tLS0tLS0KICAgIGxpc3RlbiBhcHBsaWNhdGlvbiAwLjAuMC4wOjgwCgltb2RlIGh0dHAKCWNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgaW5kaXJlY3QKCWJhbGFuY2Ugcm91bmRyb2JpbgoJc2VydmVyIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjawoJc2VydmVyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMiBjaGVjawoKPT09PT09PT09PT09PT09PT09PT09PT0KfCBQYXJhbel0cmFnZSBzeXN06G1lIHwKPT09PT09PT09PT09PT09PT09PT09PT0KClNvdXMgTGludXggMi40Cj09PT09PT09PT09PT09CgotLSBjdXQgaGVyZSAtLQojIS9iaW4vc2gKIyBzZXQgdGhpcyB0byBhYm91dCAyNTYvNE0gKDE2Mzg0IGZvciAyNTZNIG1hY2hpbmUpCk1BWEZJTEVTPTE2Mzg0CmVjaG8gJE1BWEZJTEVTID4gL3Byb2Mvc3lzL2ZzL2ZpbGUtbWF4CnVsaW1pdCAtbiAkTUFYRklMRVMKCmlmIFsgLWUgL3Byb2Mvc3lzL25ldC9pcHY0L2lwX2Nvbm50cmFja19tYXggXTsgdGhlbgoJZWNobyA2NTUzNiA+IC9wcm9jL3N5cy9uZXQvaXB2NC9pcF9jb25udHJhY2tfbWF4CmZpCgppZiBbIC1lIC9wcm9jL3N5cy9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY3RfdGNwX3RpbWVvdXRfZmluX3dhaXQgXTsgdGhlbgoJIyAzMCBzZWNvbmRzIGZvciBmaW4sIDE1IGZvciB0aW1lIHdhaXQKCWVjaG8gMzAwMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY3RfdGNwX3RpbWVvdXRfZmluX3dhaXQKCWVjaG8gMTUwMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY3RfdGNwX3RpbWVvdXRfdGltZV93YWl0CgllY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF9sb2dfaW52YWxpZF9zY2FsZQoJZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L25ldGZpbHRlci9pcF9jdF90Y3BfbG9nX291dF9vZl93aW5kb3cKZmkKCmVjaG8gMTAyNCA2MDk5OSA+IC9wcm9jL3N5cy9uZXQvaXB2NC9pcF9sb2NhbF9wb3J0X3JhbmdlCmVjaG8gMzI3NjggPiAvcHJvYy9zeXMvbmV0L2lwdjQvaXBfcXVldWVfbWF4bGVuCmVjaG8gMzAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX2Zpbl90aW1lb3V0CmVjaG8gNDA5NiA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfbWF4X3N5bl9iYWNrbG9nCmVjaG8gMjYyMTQ0ID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9tYXhfdHdfYnVja2V0cwplY2hvIDI2MjE0NCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfbWF4X29ycGhhbnMKZWNobyAzMDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX2tlZXBhbGl2ZV90aW1lCmVjaG8gMSA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfdHdfcmVjeWNsZQplY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX3RpbWVzdGFtcHMKZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9lY24KZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9zYWNrCmVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfZHNhY2sKCiMgYXV0by10dW5lZCBvbiAyLjQKI2VjaG8gMjYyMTQzID4gL3Byb2Mvc3lzL25ldC9jb3JlL3JtZW1fbWF4CiNlY2hvIDI2MjE0MyA+IC9wcm9jL3N5cy9uZXQvY29yZS9ybWVtX2RlZmF1bHQKCmVjaG8gMTYzODQgNjU1MzYgNTI0Mjg4ID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9ybWVtCmVjaG8gMTYzODQgMzQ5NTIwIDY5OTA0MCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3Bfd21lbQoKLS0gY3V0IGhlcmUgLS0KCi0tIGZpbiAtLQo=