LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBGcmVuY2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwMyBTeWx2YWluIFBldHJlb2xsZQogKiAKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfREVGQVVMVAoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQWlkZSBkJyBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxmaWNoaWVyYmF0Y2g+IHNlcnQg4CBhcHBlbGVyIHVuIGZpY2hpZXIgYmF0Y2ggXG5cCmRlcHVpcyB1biBhdXRyZSBmaWNoaWVyIGJhdGNoLiBRdWFuZCBsZSBmaWNoaWVyIGJhdGNoIHNvcnQsIGxlIGNvbnRyb2xlIHJldmllbnRcblwKYXUgZmljaGllciBxdWkgbCdhIGFwcGVs6S4gTGEgY29tbWFuZGUgQ0FMTCBkb2l0IOp0cmUgc3VpdmllIGRlcyBwYXJhbeh0cmVzXG5cCmRlIGxhIHByb2PpZHVyZSBhcHBlbOllLlxuXApcblwKTGVzIGNoYW5nZW1lbnRzIGRlIHLpcGVydG9pcmUgY291cmFudCwgZGUgdmFyaWFibGVzIGQnZW52aXJvbm1lbnQgZXRjIGZhaXRzXG5cCmRhbnMgdW5lIHByb2PpZHVyZSBhcHBlbOllIHNvbnQgdHJhbnNtaXMg4CBsJ2FwcGVsYW50LlxuIgoKICBXQ01EX0NELCAgICAgIkNoYW5nZSBsZSBy6XBlcnRvaXJlIGNvdXJhbnQgcGFyIGTpZmF1dFxuIgogIFdDTURfQ0hESVIsICAiQ2hhbmdlIGxlIHLpcGVydG9pcmUgY291cmFudCBwYXIgZOlmYXV0XG4iCgogIFdDTURfQ0xTLAoiQ0xTIGVmZmFjZSBsJ+ljcmFuXG4iCgogIFdDTURfQ09QWSwgICAiQWlkZSBkZSBDT1BZXG4iCiAgV0NNRF9DVFRZLCAgICJBaWRlIGRlIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkFpZGUgZGUgREFURVxuIgogIFdDTURfREVMLCAgICAiQWlkZSBkZSBERUxcbiIKICBXQ01EX0RJUiwgICAgIkFpZGUgZGUgRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPGNoYe5uZT4gYWZmaWNoZSA8Y2hh7m5lPiBzdXIgbGEgY29uc29sZSBjb3VyYW50ZS5cblwKXG5cCkVDSE8gT04gcHJvdm9xdWUgbCdhZmZpY2hhZ2UgZGUgdG91dGVzIGxlcyBjb21tYW5kZXMgc3VyIGxhIGNvbnNvbGVcblwKYXZhbnQgbGV1ciBleOljdXRpb24uXG5cClxuXApFQ0hPIE9GRiBhbm51bGUgbCdlZmZldCBkZSB0b3V0IHByZWPpZGVudCBFQ0hPIE9OIChFQ0hPIGVzdCBPRkYgcGFyXG5cCmTpZmF1dCkuIE9uIHBldXQgZW1w6mNoZXIgbCdhZmZpY2hhZ2UgZGUgRUNITyBPRkYgZW4gbGUgZmFpc2FudFxuXApwculj6WRlciBkJ3VuIHNpZ25lIEAuXG4iCgogIFdDTURfRVJBU0UsICAiQWlkZSBkZSBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkxhIGNvbW1hbmRlIEZPUiBzZXJ0IOAgZXjpY3V0ZXIgdW5lIGNvbW1hbmRlIHBvdXIgdW4gZ3JvdXBlIGRlIGZpY2hpZXJzLlxuXApcblwKU3ludGF4ZTogRk9SICV2YXJpYWJsZSBJTiAoZ3JvdXBlKSBETyBjb21tYW5kZVxuXApcblwKTGEgbuljZXNzaXTpIGRlIGRvdWJsZXIgbGUgc2lnbmUgJyUnIGVuIHV0aWxpc2FudCBGT1IgZGFucyB1biBmaWNoaWVyIGJhdGNoIFxuXApuJ2V4aXN0ZSBwYXMgZGFucyB3Y21kLlxuIgoKICBXQ01EX0dPVE8sCiJMYSBjb21tYW5kZSBHT1RPIHRyYW5zZuhyZSBsJ2V46WN1dGlvbiDgIHVuIGF1dHJlIGxhYmVsIGRhbnMgdW4gXG5cCmZpY2hpZXIgYmF0Y2guXG5cClxuXApMZSBsYWJlbCBjaWJsZSBkZSBHT1RPIHBldXQgZXRyZSBsb25nIGRlIDI1NSBjYXJhY3TocmVzXG5cCm1haXMgbmUgcGV1dCBpbmNsdXJlIGQnZXNwYWNlcyAodGhpcyBpcyBkaWZmZXJlbnQgdG8gb3RoZXIgb3BlcmF0aW5nXG5cCnN5c3RlbXMpLiBTaSBkZXV4IG91IHBsdXNpZXVycyBsYWJlbHMgaWRlbnRpcXVlcyBzb250IGRhbnMgbGUgbWVtZSBmaWNoaWVyIFxuXApzZXVsIGxlIHByZW1pZXIgc2VyYSBleOljdXTpLiBFc3NheWVyIGRlIHNhdXRlciDgIHVuIGxhYmVsIG5vbi1leGlzdGFudFxuXAp0ZXJtaW5lIGwnZXjpY3V0aW9uIGR1IGZpY2hpZXIgYmF0Y2ggLlxuXApcblwKR09UTyBuJ2EgcGFzIGQnZWZmZXQgc2kgdXRpbGlz6SBpbnRlcmFjdGl2ZW1lbnQuXG4iCgogIFdDTURfSEVMUCwgICAiQWZmaWNoZSB1bmUgYnLodmUgYWlkZSBzdXIgbGVzIGNvbW1hbmRlcyBpbnRlcm5lcyBkZSBXQ01EXG4iCgogIFdDTURfSUYsCiJJRiBlc3QgdXRpbGlz6SBwb3VyIGV46WN1dGVyIHVuZSBjb21tYW5kZSBkZSBmYedvbiBjb25kaXRpb25uZWxsZS5cblwKXG5cClN5bnRheGU6CUlGIFtOT1RdIEVYSVNUIG5vbWZpY2hpZXIgY29tbWFuZGVcblwKCUlGIFtOT1RdIGNoYe5uZTE9PWNoYe5uZTIgY29tbWFuZGVcblwKCUlGIFtOT1RdIEVSUk9STEVWRUwgbm9tYnJlIGNvbW1hbmRlXG5cClxuXApEYW5zIGxhIGRldXhpZW1lIGZvcm1lIGRlIGxhIGNvbW1hbmRlLCBjaGHubmUxIGV0IGNoYe5uZTIgZG9pdmVudCDqdHJlIFxuXAplbnRyZSBndWlsbGVtZXRzLiBMYSBjb21wYXJhaXNvbiBlc3QgaW5zZW5zaWJsZSDgIGxhIGNhc3NlLlxuIgoKICBXQ01EX0xBQkVMLCAgIkxBQkVMIHNlcnQg4CBy6WdsZXIgbGUgbm9tIGRlIHZvbHVtZSBkJ3VuIGRpc3F1ZS4gIFxuXApcblwKU3ludGF4ZTogTEFCRUwgW2xlY3RldXI6XVxuXApMYSBjb21tbmFuZGUgbGUgbm91dmVhdSBub20gZGUgdm9sdW1lIHBvdXIgbGUgbGVjdGV1ciBkb25u6S5cblwKVm91cyBwb3V2ZXogYWZmaWNoZXIgbGUgbm9tIGRlIHZvbHVtZSBhdmVjIGxhIGNvbW1hbmRlIFZPTC5cbiIKCiAgV0NNRF9NRCwgICAgICJDcullICBsZSBy6XBlcnRvaXJlIGRvbm7pIGVuIHBhcmFt6HRyZS5cbiIKICBXQ01EX01LRElSLCAgIkNy6WUgIGxlIHLpcGVydG9pcmUgZG9ubukgZW4gcGFyYW3odHJlLlxuIgogIFdDTURfTU9WRSwKIk1PVkUgZOlwbGFjZSB1biBmaWNoaWVyLHVuIGdyb3VwZSBkZSBmaWNoaWVycyBvdSB1biBy6XBlcnRvaXJlXG5cCuAgdW4gYXV0cmUgZW5kcm9pdC4gU2kgbCdvYmpldCBk6XBsYWPpIGVzdCB1biBy6XBlcnRvaXJlIGFsb3JzXG5cCnRvdXMgbGVzIGZpY2hpZXJzIGV0IHNvdXMtculwZXJ0b2lyZXMgZGUgbCdvYmpldCBzb250IOlnYWxlbWVudCBk6XBsYWPpcy5cblwKTU9WRSDpY2hvdWUgc2kgbCdhbmNpZW4gZXQgbGUgbm91dmVsIGVtcGxhY2VtZW50IHNvbnQgc3VyIGRlcyBsZWN0ZXVycyBET1MgZGlmZulyZW50cy5cbiIKCiAgV0NNRF9QQVRILAoiUEFUSCBhZmZpY2hlIG91IGNoYW5nZSBsZSBjaGVtaW4gZGUgcmVjaGVyY2hlIGRlIHdjbWQuXG5cCkVudHJlciBQQVRIIGFmZmljaGVyYSBsZSBy6WdsYWdlIGNvdXJhbnQgZGUgUEFUSCAoYXUgZOlwYXJ0XG5cCmMnZXN0IGxhIHZhbGV1ciBkb25u6WUgZGFucyBsZSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gd2luZSkuIFBvdXIgY2hhbmdlclxuXApsZSBy6WdsYWdlLCBmYWl0ZXMgc3VpdnJlIGxhIGNvbW1hbmRlIFBBVEggZGUgbGEgbm91dmVsbGUgdmFsZXVyLlxuXApJbCBlc3QgcG9zc2libGUgZGUgbW9kaWZpZXIgbGUgUEFUSCBlbiB1dGlsaXNhbnQgbGEgdmFyaWFibGUgZCdlbnZpcm9ubWVudCBQQVRILCBcblwKcGFyIGV4ZW1wbGUgOlxuXAoJCVBBVEggJVBBVEglO2M6XFx0ZW1wIFxuIgoKICBXQ01EX1BBVVNFLAoiUEFVU0UgYWZmaWNoZSB1biBtZXNzYWdlIHN1ciBsJ+ljcmFuIDogJ1ByZXNzZXogRW50cullIHBvdXIgY29udGludWVyJ1xuXApldCBhdHRlbmQgcXVlIGwndXRpbGlzYXRldXIgcHJlc3NlIGxhIHRvdWNoZSBFbnRy6WUuIFBBVVNFIGVzdCBzdXJvdXQgdXRpbGlz6SBkYW5zXG5cCmxlcyBmaWNoaWVycyBiYXRjaHMgcG91ciBwZXJtZXR0cmUg4CBsJ3V0aWxpc2F0ZXVyIGRlIGxpcmUgbGEgc29ydGllIGRlXG5cCmxhIGRlcm5p6HJlIGNvbW1hbmRlIGF2YW50IHF1J2VsbGUgbmUgZGVzY2VuZGUgbCfpY3JhblxuIgoKICBXQ01EX1BST01QVCwKIlBST01QVCBy6GdsZSBsJ2ludml0ZSBkZSBjb21tYW5kZS5cblwKXG5cCkxhIGNoYWluZSBzdWl2YW50IGxhIGNvbW1hbmRlIFBST01QVCAoYW5kIHRoZSBzcGFjZSBpbW1lZGlhdGVseSBhZnRlcilcblwKYXBwcmFpdCBhdSBk6WJ1dCBkZSBsYSBsaWduZSBxdWFuZCB3Y21kIGF0dGVuZCB1bmUgZW50cullIHRleHRlLlxuXApcblwKTGVzIGNoYe5uZXMgZGUgY2FyYWN06HJlcyBzdWl2YW50ZXMgb250IHVuZSBzaWduaWZpY2F0aW9uIHNw6WNpYWxlIDpcblwKXG5cCiQkICAgIFNpZ25lIERvbGxhciAgICAgICAgJF8gICAgU2F1dCBkZSBsaWduZSAgICAgICAkYiAgICBTaWduZSBQaXBlICh8KVxuXAokZCAgICBEYXRlIGNvdXJhbnRlICAgICAgICRlICAgIEVzY2FwZSAgICAgICAgICAgICAgJGcgICAgU2lnbmUgPlxuXAokbCAgICBTaWduZSA8ICAgICAgICAgICAgICRuICAgIExlY3RldXIgY291cmFudCAgICAgJHAgICAgUulwZXJ0b2lyZSBjb3VyYW50XG5cCiRxICAgIFNpZ25lID0gICAgICAgICAgICAgJHQgICAgSGV1cmUgY291cmFudGUgICAgICAkdiAgICBWZXJzaW9uIGRlIHdjbWRcblwKXG5cCk5vdGV6IHF1JyBlbnRyZXIgbGEgY29tbWFuZGUgUFJPTVBUIHNhbnMgdGV4dGUgZCdpbnZpdGUgcmVtZXQgXG5cCnByb21wdCDgIGxhIHZhbGV1ciBwYXIgZOlmYXV0LCBxdWkgZXN0IGxhIGxldHRyZSBkdSBsZWN0ZXVyIGNvdXJhbnQgc3VpdmllIGRlXG5cCnNvbiBy6XBlcnRvaXJlIGNvdXJhbnQgZXQgZCd1biBzaWduZSBwbHVzLWdyYW5kLXF1ZS4gKD4pIFxuXApcblwKTCdpbnZpdGUgcGV1dCBhdXNzaSDqdHJlIG1vZGlmaellIGVuIGNoYW5nZWFudCBsYSB2YXJpYWJsZSBkJ2Vudmlyb25tZW50IFBST01QVCxcblwKZG9uYyBsYSBjb21tYW5kZSAnU0VUIFBST01QVD10ZXh0ZScgYSBsZSBt6m1lIGVmZmV0IHF1ZSAnUFJPTVBUIHRleHRlJ1xuIgoKICBXQ01EX1JFTSwKIlVuZSBsaWduZSBkZSBjb21tYW5kZSBjb21tZW7nYW50IHBhciBSRU0gKHN1aXZpIGQndW5lIGVzcGFjZSkgbidlbmdlbmRyZSBcblwKYXVjdW5lIGFjdGlvbiwgZXQgcGV1dCBkb25jIHNlcnZpciBkZSBjb21tZW50YWlyZSBkYW5zIHVuIGZpY2hpZXIgYmF0Y2guXG4iCgogIFdDTURfUkVOLCAgICAiQWlkZSBkZSBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIkFpZGUgZGUgUkVOQU1FXG4iCiAgV0NNRF9SRCwgICAgICJFZmZhY2UgbGUgculwZXJ0b2lyZSBkb25u6SBlbiBwYXJhbeh0cmUuXG4iCiAgV0NNRF9STURJUiwgICJFZmZhY2UgbGUgculwZXJ0b2lyZSBkb25u6SBlbiBwYXJhbeh0cmUuXG4iCgogIFdDTURfU0VULAoiU0VUIGFmZmljaGUgb3UgY2hhbmdlIGxlcyB2YXJpYWJsZXMgZCdlbnZpcm9ubmVtZW50IGRlIHdjbWQuXG5cClxuXApTRVQgc2FucyBwYXJhbeh0cmUgYWZmaWNoZSBsJ2Vudmlyb25uZW1lbnQgY291cmFudC5cblwKXG5cClBvdXIgY3LpZXIgZXQgbW9kaWZpZXIgdW5lIHZhcmlhYmxlIGQnZW52aXJvbm5lbWVudCBsYSBzeW50YXhlIGVzdDpcblwKXG5cCiAgICAgIFNFVCA8dmFyaWFibGU+PTx2YWxldXI+XG5cClxuXApv+SA8dmFyaWFibGU+IGV0IDx2YWxldXI+IHNvbnQgZGVzIGNoYWluZXMgZGUgY2FyYWN06HJlcy4gSWwgZXN0IOAgbm90ZXIgcXVlIDx2YXJpYWJsZT5cblwKbmUgcGV1dCBjb250ZW5pciBkJ2VzcGFjZS5cblwKXG5cClNvdXMgV2luZSwgbCdlbnZpcm9ubWVudCBkdSBzeXN06G1lIGj0dGUgZXN0XG5cCmluY2x1cyBkYW5zIGwnZW52aXJvbm5tZW50IFdpbjMyLCBpbCB5IGF1cmEgcGFyIGNvbnPpcXVlbnQgZ+lu6XJhbGVtZW50XG5cCmJpZW4gcGx1cyBkZSB2YWxldXJzIHF1ZSBkYW5zIHVuIHN5c3TobWUgV2luMzIgbmF0aWYuIE5vdGV6IHF1J2lsXG5cCm4nZXN0IHBhcyBwb3NzaWJsZSBkZSBtb2RpZmllciBsJ2Vudmlyb25uZW1lbnQgZHUgc3lzdOhtZSBkJ2V4cGxvaXRhdGlvbiBkYW5zIHdjbWQuXG4iCgogIFdDTURfU0hJRlQsCiJTSElGVCBlc3QgdXRpbGlz6SBkYW5zIHVuIGZpY2hpZXIgYmF0Y2ggcG91ciBlbmxldmVyIHVuIHBhcmFt6HRyZSBkZSBsYVxuXApxdWUgZGUgbGEgbGlzdGUsIGFpbnNpIGxlIHBhcmFt6XRyZSAxIGRldmllbnQgcGFyYW3odHJlIDEgZXQgYWluc2kgZGUgc3VpdGUuIElsIGVzdCBzYW5zIGVmZmV0XG5cCnMnaWwgZXN0IGFwcGVs6SBkZXB1aXMgbGEgbGlnbmUgZGUgY29tbWFuZGUuXG4iCgogIFdDTURfVElNRSwgICAiQWlkZSBkZSBUSU1FXG4iCgogIFdDTURfVElUTEUsCiJS6GdsZSBsZSB0aXRyZSBkZSBsYSBmZW7qdHJlIHBvdXIgbGEgc2Vzc2lvbiB3Y21kLCBzeW50YXhlOiBUSVRMRSBbY2hh7m5lXVxuIgoKICBXQ01EX1RZUEUsCiJUWVBFIDxub21maWNoaWVyPiBhZmZpY2hlIDxub21maWNoaWVyPiBzdXIgbGEgY29uc29sZSAob3UgYWlsbGV1cnNcblwKc2kgcmVkaXJpZ+kpLiBBdWN1biB0ZXN0IG4nZXN0IGZhaXQgcXVhbmQgYXUgZm9ybWF0IHRleHRlIGR1IGZpY2hpZXIuXG4iCgogIFdDTURfVkVSSUZZLAoiVkVSSUZZIGVzdCB1dGlsaXPpIHBvdXIgcG9zaXRpb25uZXIsIGVmZmFjZXIgb3UgdGVzdGVyIGxlIGZsYWcgZGUgdulyaWZpY2F0aW9uLlxuXApMZXMgZm9ybWVzIHN1aXZhbnRlcyBzb250IGNvcnJlY3RlcyA6XG5cClZFUklGWSBPTglQb3NpdGlvbm5lIGxlIGZsYWdcblwKVkVSSUZZIE9GRglFZmZhY2UgbGUgZmxhZ1xuXApWRVJJRllcdFx0QWZmaWNoZSBsJ+l0YXQgT04gb3UgT0ZGIGR1IGZsYWcuXG5cClxuXApMZSBmbGFnIGRlIHZlcmlmaWNhdGlvbiBuJ2EgcGFzIGRlIGZvbmN0aW9uIGRhbnMgV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgYWZmaWNoZSBsYSB2ZXJzaW9uIGRlIHdjbWQgYWN0dWVsbGVtZW50IGVuIG3pbW9pcmUuXG4iCgogIFdDTURfVk9MLCAiXHRcdEFmZmljaGUgbGUgbm9tIGRlIHZvbHVtZSBkJ3VuIGxlY3RldXIgZGUgZGlzcXVlXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgdGVybWluZSBsYSBzZXNzaW9uIGRlIGxpZ25lIGRlIGNvbW1hbmRlIGV0IHJldG91cm5lXG5cCmF1IHN5c3TobWUgZCdleHBsb2l0YXRpb24gb3UgYXUgc2hlbGwgb/kgdm91cyBhdmV6IGludm9xdekgd2NtZC5cbiIKCiAgMTAwMCwgIkxlcyBjb21tYW5kZXMgaW50ZXJuZXMgV0NNRCBzb250OlxuXApBVFRSSUJcdFx0QWZmaWNoZSBvdSBjaGFuZ2UgbGVzIGF0dHJpYnV0cyBkZSBmaWNoaWVycyBET1NcblwKQ0FMTFx0XHRcSW52b3F1ZSB1biBmaWNoaWVyIGJhdGNoIOAgbCdpbnTpcmlldXIgZCd1biBhdXRyZVxuXApDRCAoQ0hESVIpXHRDaGFuZ2UgbGUgculwZXJ0b2lyZSBjb3VyYW50IHBhciBk6WZhdXRcblwKQ0xTXHRcdEVmZmFjZSBsJ+ljcmFuXG5cCkNPUFlcdFx0Q29waWUgdW4gb3UgcGx1c2lldXJzIGZpY2hpZXJzXG5cCkNUVFlcdFx0Q2hhbmdlIGxlIHDpcmlwaOlyaXF1ZSBkJ2VudHLpZS9zb3J0aWVcblwKREFURVx0XHRBZmZpY2hlIG91IGNoYW5nZSBsYSBkYXRlIHN5c3TobWVcblwKREVMIChFUkFTRSlcdEVmZmFjZSB1biBmaWNoaWVyIG91IHVuIGdyb3VwZSBkZSBmaWNoaWVyc1xuXApESVJcdFx0TGlzdGUgbGUgY29udGVudSBkJ3VuIHLpcGVydG9pcmVcblwKRUNIT1x0XHRBZmZpY2hlIGR1IHRleHRlIHN1ciBsYSBjb25zb2xlXG5cCkhFTFBcdFx0QWZmaWNoZSBkZSBicmVmcyBk6XRhaWxzIHN1ciBsJ3V0aWxpc2F0aW9uIGQndW5lIGNvbW1hbmRlXG5cCk1EIChNS0RJUilcdENy6WUgdW4gculwZXJ0b2lyZVxuXApNT1ZFXHRcdETpcGxhY2UgdW4gZmljaGllcix1biBncm91cGUgZGUgZmljaGllcnMgb3UgdW4gculwZXJ0b2lyZVxuXApQQVRIXHRcdFLoZ2xlIG91IGFmZmljaGUgbGUgY2hlbWluIGRlIHJlY2hlcmNoZVxuXApQUk9NUFRcdFx0Q2hhbmdlIGwnaW52aXRlIGRlIGNvbW1hbmRlXG5cClJFTiAoUkVOQU1FKVx0UmVub21tZSB1biBmaWNoaWVyLHVuIGdyb3VwZSBkZSBmaWNoaWVycyBvdSB1biBy6XBlcnRvaXJlXG5cClJEIChSTURJUilcdEVmZmFjZSB1biBy6XBlcnRvaXJlXG5cClNFVFx0XHRS6GdsZSBvdSBhZmZpY2hlIGxlcyB2YXJpYWJsZXMgZCdlbnZpcm9ubWVudFxuXApUSU1FXHRcdFLoZ2xlIG91IGFmZmljaGUgbCdoZXVyZSBzeXN06G1lIGNvdXJhbnRlXG5cClRJVExFXHRcdFLoZ2xlIGxlIHRpdHJlIGRlIGxhIGZlbup0cmUgcG91ciBsYSBzZXNzaW9uIFdDTURcblwKVFlQRVx0XHRBZmZpY2hlIGxlIGNvbnRlbnUgZCd1biBmaWNoaWVyIHRleHRlXG5cClZFUlx0XHRBZmZpY2hlIGxhIHZlcnNpb24gZGUgd2NtZCBhY3R1ZWxsZW1lbnQgZW4gbeltb2lyZS5cblwKVk9MXHRcdEFmZmljaGUgbGUgbm9tIGRlIHZvbHVtZSBkJ3VuIGxlY3RldXIgZGUgZGlzcXVlXG5cCkVYSVRcdFx0UXVpdHRlIFdDTURcblxuXApFbnRyZXIgSEVMUCA8Y29tbWFuZGU+IHBvdXIgcGx1cyBkJ2luZm9ybWF0aW9ucyBzdXIgbGVzIGNvbW1hbmRlcyBjaS1kZXNzdXNcbiIKfQo=