LyoKICogTm9yd2VnaWFuIEJva23lbCByZXNvdXJjZXMgZm9yIFdMREFQMzIKICoKICogQ29weXJpZ2h0IDIwMDUgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfTk9SV0VHSUFOLCBTVUJMQU5HX05PUldFR0lBTl9CT0tNQUwKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIDAgIlN1a3Nlc3MiCiAgICAxICJPcGVyYXNqb25zZmVpbCIKICAgIDIgIlByb3Rva29sbGZlaWwiCiAgICAzICJUaWRzYmVncmVuc25pbmcgb3ZlcnNrcmVkZXQiCiAgICA0ICJTdPhycmVsc2VzYmVncmVuc2luZyBvdmVyc2tyZWRldCIKICAgIDUgIlNhbW1lbmxpa25lIHVzYW5uIgogICAgNiAiU2FtbWVubGlrbmUgc2FubiIKICAgIDcgIkF1dGVudGlzZXJpbmdzbWV0b2RlbiBzdPh0dGVzIGlra2UiCiAgICA4ICJTdGVyayBhdXRlbnRpc2VyaW5nIGtyZXZlcyIKICAgIDkgIkhlbnZpc25pbmcgKHYyKSIKICAgIDEwICJIZW52aXNuaW5nIgogICAgMTEgIkFkbWluaXN0cmFzam9uc2JlZ3JlbnNpbmcgb3ZlcnNrcmVkZXQiCiAgICAxMiAiS3JpdGlzayB1dHZpZGVsc2UgdXRpbGdqZW5nZWxpZyIKICAgIDEzICJLcmV2ZXIga29uZmlkZW5zaWFsaXRldCIKICAgIDE0ICIiCiAgICAxNSAiIgogICAgMTYgIkluZ2VuIHPlbm4gYXR0cmlidXR0IgogICAgMTcgIlVkZWZpbmVydCB0eXBlIgogICAgMTggIlVwYXNzZW5kZSBzYW1tZW5saWtuaW5nIgogICAgMTkgIlByZXNzb3ZlcnRyZWRlbHNlIgogICAgMjAgIkF0dHJpYnV0dCBlbGxlciB2ZXJkaSBmaW5uZXMgYWxsZXJlZGUiCiAgICAyMSAiVWd5bGRpZyBzeW50YWtzIgogICAgMjIgIiIKICAgIDIzICIiCiAgICAyNCAiIgogICAgMjUgIiIKICAgIDI2ICIiCiAgICAyNyAiIgogICAgMjggIiIKICAgIDI5ICIiCiAgICAzMCAiIgogICAgMzEgIiIKICAgIDMyICJJa2tlIG5vZSBz5W50IG9iamVrdCIKICAgIDMzICJBbGlhcy1wcm9ibGVtIgogICAgMzQgIlVneWxkaWcgRE4tc3ludGFrcyIKICAgIDM1ICJFciBibGFkIgogICAgMzYgIlByb2JsZW0gbWVkIGFsaWFzLWRlcmVmZXJhbnNlIgogICAgMzcgIiIKICAgIDM4ICIiCiAgICAzOSAiIgogICAgNDAgIiIKICAgIDQxICIiCiAgICA0MiAiIgogICAgNDMgIiIKICAgIDQ0ICIiCiAgICA0NSAiIgogICAgNDYgIiIKICAgIDQ3ICIiCiAgICA0OCAiVXBhc3NlbmRlIGF1dGVudGlzZXJpbmciCiAgICA0OSAiVWd5bGRpZ2Uga3JlZGl0aXZlciIKICAgIDUwICJNYW5nbGVuZGUgcmV0dGlnaGV0ZXIiCiAgICA1MSAiT3BwdGF0dCIKICAgIDUyICJVdGlsZ2plbmdlbGlnIgogICAgNTMgIlV2aWxsaWcgdGlsIOUgdXRm+HJlIgogICAgNTQgIkz4a2tlIG9wcGRhZ2V0IgogICAgNTUgIiIKICAgIDU2ICIiCiAgICA1NyAiIgogICAgNTggIiIKICAgIDU5ICIiCiAgICA2MCAiU29ydGVyaW5nc2tvbnRyb2xsZXIgbWFuZ2xlciIKICAgIDYxICJGZWlsIG1lZCBpbmRla3NyZWtrZXZpZGRlIgogICAgNjIgIiIKICAgIDYzICIiCiAgICA2NCAiTmF2bmdpdmluZ3NvdmVydHJlZGVsc2UiCiAgICA2NSAiT2JqZWt0a2xhc3Nlb3ZlcnRyZWRlbHNlIgogICAgNjYgIklra2UgdGlsbGF0dCBw5SBpa2tlLWJsYWQiCiAgICA2NyAiSWtrZSB0aWxsYXR0IHDlIFJETiIKICAgIDY4ICJGaW5uZXMgYWxsZXJlZGUiCiAgICA2OSAiSW5nZW4gb2JqZWt0a2xhc3NlbW9kaWZpc2VyZXJlIgogICAgNzAgIlJlc3VsdGF0ZW5lIGVyIGZvciBzdG9yZSIKICAgIDcxICJCZXL4cmVyIGZsZXJlIERTQSdlciIKICAgIDcyICIiCiAgICA3MyAiIgogICAgNzQgIiIKICAgIDc1ICIiCiAgICA3NiAiIgogICAgNzcgIiIKICAgIDc4ICIiCiAgICA3OSAiIgogICAgODAgIkFubmVuIgogICAgODEgIlRqZW5lciBuZWRlIgogICAgODIgIkxva2FsIGZlaWwiCiAgICA4MyAiS29kaW5nc2ZlaWwiCiAgICA4NCAiRGVrb2RpbmdzZmVpbCIKICAgIDg1ICJUaWRzYXZicnVkZCIKICAgIDg2ICJVa2plbnQgYXV0ZW50aXNlcmluZyIKICAgIDg3ICJGaWx0ZXJmZWlsIgogICAgODggIkJydWtlciBhdmJy+HQiCiAgICA4OSAiUGFyYW1ldGVyZmVpbCIKICAgIDkwICJJbnRldCBtaW5uZSIKICAgIDkxICJLdW5uZSBpa2tlIGtvYmxlIHRpbCBMREFQLXRqZW5lcmVuIgogICAgOTIgIk9wZXJhc2pvbmVuIHN0+HR0ZXMgaWtrZSBhdiBkZW5uZSB2ZXJzam9uZW4gYXYgTERBUC1wcm90b2tvbGxlbiIKICAgIDkzICJEZW4gb3BwZ2l0dGUga29udHJvbGxlcmVuIGJsZSBpa2tlIGZ1bm5ldCBpIG1lbGRpbmdlbiIKICAgIDk0ICJJbmdlbiByZXN1bHRhdGVyIGkgbWVsZGluZyIKICAgIDk1ICJGbGVyZSByZXN1bHRhdGVyIHJldHVybmVydCIKICAgIDk2ICJM+GtrZSB1bmRlciBo5W5kdGVyaW5nIGF2IGhlbnZpc25pbmdlciIKICAgIDk3ICJHcmVuc2UgZm9yIGhlbnZpc25pbmdzaG9wcCBvdmVyc2tyZWRldCIKfQo=