f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAA0KgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHNxbDsKcGtncGF0aCBkYXRhYmFzZS9zcWw7CnByaW9yaXR5IDg7CmltcG9ydCBkcml2ZXIgZGF0YWJhc2Uvc3FsL2RyaXZlciAiZGF0YWJhc2Uvc3FsL2RyaXZlciI7CmltcG9ydCBlcnJvcnMgZXJyb3JzICJlcnJvcnMiOwppbXBvcnQgZm10IGZtdCAiZm10IjsKaW1wb3J0IGlvIGlvICJpbyI7CmltcG9ydCByZWZsZWN0IHJlZmxlY3QgInJlZmxlY3QiOwppbXBvcnQgcnVudGltZSBydW50aW1lICJydW50aW1lIjsKaW1wb3J0IHNvcnQgc29ydCAic29ydCI7CmltcG9ydCBzdHJjb252IHN0cmNvbnYgInN0cmNvbnYiOwppbXBvcnQgc3luYyBzeW5jICJzeW5jIjsKaW5pdCBzcWwgZGF0YWJhc2Vfc3FsLi5pbXBvcnQgOCBtYXRoIG1hdGguLmltcG9ydCAxIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgc3RyY29udiBzdHJjb252Li5pbXBvcnQgMiBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgdGltZSB0aW1lLi5pbXBvcnQgNCBvcyBvcy4uaW1wb3J0IDUgZm10IGZtdC4uaW1wb3J0IDYgZHJpdmVyIGRhdGFiYXNlX3NxbF9kcml2ZXIuLmltcG9ydCA3Owp0eXBlIDx0eXBlIDEgIkRCIiA8dHlwZSAyIHN0cnVjdCB7IC5kYXRhYmFzZS9zcWwuZHJpdmVyIDx0eXBlIDMgImRhdGFiYXNlL3NxbC9kcml2ZXIuRHJpdmVyIiA8dHlwZSA0IGludGVyZmFjZSB7IE9wZW4gKG5hbWUgPHR5cGUgLTE2PikgKD8gPHR5cGUgNSAiZGF0YWJhc2Uvc3FsL2RyaXZlci5Db25uIiA8dHlwZSA2IGludGVyZmFjZSB7IFByZXBhcmUgKHF1ZXJ5IDx0eXBlIC0xNj4pICg/IDx0eXBlIDcgImRhdGFiYXNlL3NxbC9kcml2ZXIuU3RtdCIgPHR5cGUgOCBpbnRlcmZhY2UgeyBDbG9zZSAoKSA8dHlwZSAtMTk+OyBOdW1JbnB1dCAoKSA8dHlwZSAtMTE+OyBFeGVjIChhcmdzIDx0eXBlIDkgW10gPHR5cGUgMTAgImRhdGFiYXNlL3NxbC9kcml2ZXIuVmFsdWUiIDx0eXBlIDExIGludGVyZmFjZSB7IH0+Pj4pICg/IDx0eXBlIDEyICJkYXRhYmFzZS9zcWwvZHJpdmVyLlJlc3VsdCIgPHR5cGUgMTMgaW50ZXJmYWNlIHsgTGFzdEluc2VydElkICgpICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsgUm93c0FmZmVjdGVkICgpICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsgfT4+LCA/IDx0eXBlIC0xOT4pOyBRdWVyeSAoYXJncyA8dHlwZSAxNCBbXSA8dHlwZSAxMD4+KSAoPyA8dHlwZSAxNSAiZGF0YWJhc2Uvc3FsL2RyaXZlci5Sb3dzIiA8dHlwZSAxNiBpbnRlcmZhY2UgeyBDb2x1bW5zICgpIDx0eXBlIDE3IFtdIDx0eXBlIC0xNj4+OyBDbG9zZSAoKSA8dHlwZSAtMTk+OyBOZXh0IChkZXN0IDx0eXBlIDE4IFtdIDx0eXBlIDEwPj4pIDx0eXBlIC0xOT47IH0+PiwgPyA8dHlwZSAtMTk+KTsgfT4+LCA/IDx0eXBlIC0xOT4pOyBDbG9zZSAoKSA8dHlwZSAtMTk+OyBCZWdpbiAoKSAoPyA8dHlwZSAxOSAiZGF0YWJhc2Uvc3FsL2RyaXZlci5UeCIgPHR5cGUgMjAgaW50ZXJmYWNlIHsgQ29tbWl0ICgpIDx0eXBlIC0xOT47IFJvbGxiYWNrICgpIDx0eXBlIC0xOT47IH0+PiwgPyA8dHlwZSAtMTk+KTsgfT4+LCA/IDx0eXBlIC0xOT4pOyB9Pj47IC5kYXRhYmFzZS9zcWwuZHNuIDx0eXBlIC0xNj47IC5kYXRhYmFzZS9zcWwubXUgPHR5cGUgMjEgInN5bmMuTXV0ZXgiIDx0eXBlIDIyIHN0cnVjdCB7IC5zeW5jLnN0YXRlIDx0eXBlIC0zPjsgLnN5bmMuc2VtYSA8dHlwZSAtNz47IH0+CiBmdW5jIChtIDx0eXBlIDIzICo8dHlwZSAyMT4+KSBVbmxvY2sgKCk7CiBmdW5jIChtIDx0eXBlIDIzPikgTG9jayAoKTsKPjsgLmRhdGFiYXNlL3NxbC5mcmVlQ29ubiA8dHlwZSAyNCBbXSA8dHlwZSAyNSAqPHR5cGUgMjYgIi5kYXRhYmFzZS9zcWwuZHJpdmVyQ29ubiIgPHR5cGUgMjcgc3RydWN0IHsgLmRhdGFiYXNlL3NxbC5kYiA8dHlwZSAyOCAqPHR5cGUgMT4+OyA/IDx0eXBlIDIxPjsgLmRhdGFiYXNlL3NxbC5jaSA8dHlwZSA1PjsgLmRhdGFiYXNlL3NxbC5jbG9zZWQgPHR5cGUgLTE1PjsgLmRhdGFiYXNlL3NxbC5maW5hbENsb3NlZCA8dHlwZSAtMTU+OyAuZGF0YWJhc2Uvc3FsLm9wZW5TdG10IDx0eXBlIDI5IG1hcCBbPHR5cGUgNz5dIDx0eXBlIC0xNT4+OyAuZGF0YWJhc2Uvc3FsLmluVXNlIDx0eXBlIC0xNT47IC5kYXRhYmFzZS9zcWwub25QdXQgPHR5cGUgMzAgW10gPHR5cGUgMzEgKCk+PjsgLmRhdGFiYXNlL3NxbC5kYm11Q2xvc2VkIDx0eXBlIC0xNT47IH0+CiBmdW5jIChkYyA8dHlwZSAzMiAqPHR5cGUgMjY+PikgLmRhdGFiYXNlL3NxbC5yZWxlYXNlQ29ubiAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoZGMgPHR5cGUgMzI+KSAuZGF0YWJhc2Uvc3FsLnJlbW92ZU9wZW5TdG10IChzaSA8dHlwZSA3Pik7CiBmdW5jIChkYyA8dHlwZSAzMj4pIC5kYXRhYmFzZS9zcWwucHJlcGFyZUxvY2tlZCAocXVlcnkgPHR5cGUgLTE2PikgKD8gPHR5cGUgNz4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChkYyA8dHlwZSAzMj4pIC5kYXRhYmFzZS9zcWwuY2xvc2VEQkxvY2tlZCAoKSA8dHlwZSAzMyAoKSA8dHlwZSAtMTk+PjsKIGZ1bmMgKGRjIDx0eXBlIDMyPikgQ2xvc2UgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGRjIDx0eXBlIDMyPikgLmRhdGFiYXNlL3NxbC5maW5hbENsb3NlICgpIDx0eXBlIC0xOT47Cj4+PjsgLmRhdGFiYXNlL3NxbC5jb25uUmVxdWVzdHMgPHR5cGUgMzQgW10gPHR5cGUgMzUgY2hhbiA8dHlwZSAzNiAiLmRhdGFiYXNlL3NxbC5jb25uUmVxdWVzdCIgPHR5cGUgMzcgc3RydWN0IHsgLmRhdGFiYXNlL3NxbC5jb25uIDx0eXBlIDMyPjsgLmRhdGFiYXNlL3NxbC5lcnIgPHR5cGUgLTE5PjsgfT4+Pj47IC5kYXRhYmFzZS9zcWwubnVtT3BlbiA8dHlwZSAtMTE+OyAuZGF0YWJhc2Uvc3FsLnBlbmRpbmdPcGVucyA8dHlwZSAtMTE+OyAuZGF0YWJhc2Uvc3FsLm9wZW5lckNoIDx0eXBlIDM4IGNoYW4gPHR5cGUgMzkgc3RydWN0IHsgfT4+OyAuZGF0YWJhc2Uvc3FsLmNsb3NlZCA8dHlwZSAtMTU+OyAuZGF0YWJhc2Uvc3FsLmRlcCA8dHlwZSA0MCBtYXAgWzx0eXBlIDQxICIuZGF0YWJhc2Uvc3FsLmZpbmFsQ2xvc2VyIiA8dHlwZSA0MiBpbnRlcmZhY2UgeyAuZGF0YWJhc2Uvc3FsLmZpbmFsQ2xvc2UgKCkgPHR5cGUgLTE5PjsgfT4+XSA8dHlwZSA0MyAiLmRhdGFiYXNlL3NxbC5kZXBTZXQiIDx0eXBlIDQ0IG1hcCBbPHR5cGUgNDUgaW50ZXJmYWNlIHsgfT5dIDx0eXBlIC0xNT4+Pj47IC5kYXRhYmFzZS9zcWwubGFzdFB1dCA8dHlwZSA0NiBtYXAgWzx0eXBlIDQ3ICo8dHlwZSAyNj4+XSA8dHlwZSAtMTY+PjsgLmRhdGFiYXNlL3NxbC5tYXhJZGxlIDx0eXBlIC0xMT47IC5kYXRhYmFzZS9zcWwubWF4T3BlbiA8dHlwZSAtMTE+OyB9PgogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLmFkZERlcCAoeCA8dHlwZSA0MT4sIGRlcCA8dHlwZSA0OCBpbnRlcmZhY2UgeyB9Pik7CiBmdW5jIChkYiA8dHlwZSAyOD4pIC5kYXRhYmFzZS9zcWwuYWRkRGVwTG9ja2VkICh4IDx0eXBlIDQxPiwgZGVwIDx0eXBlIDQ5IGludGVyZmFjZSB7IH0+KTsKIGZ1bmMgKGRiIDx0eXBlIDI4PikgLmRhdGFiYXNlL3NxbC5yZW1vdmVEZXAgKHggPHR5cGUgNDE+LCBkZXAgPHR5cGUgNTAgaW50ZXJmYWNlIHsgfT4pIDx0eXBlIC0xOT47CiBmdW5jIChkYiA8dHlwZSAyOD4pIC5kYXRhYmFzZS9zcWwucmVtb3ZlRGVwTG9ja2VkICh4IDx0eXBlIDQxPiwgZGVwIDx0eXBlIDUxIGludGVyZmFjZSB7IH0+KSA8dHlwZSA1MiAoKSA8dHlwZSAtMTk+PjsKIGZ1bmMgKGRiIDx0eXBlIDI4PikgUGluZyAoKSA8dHlwZSAtMTk+OwogZnVuYyAoZGIgPHR5cGUgMjg+KSBDbG9zZSAoKSA8dHlwZSAtMTk+OwogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLm1heElkbGVDb25uc0xvY2tlZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAoZGIgPHR5cGUgMjg+KSBTZXRNYXhJZGxlQ29ubnMgKG4gPHR5cGUgLTExPik7CiBmdW5jIChkYiA8dHlwZSAyOD4pIFNldE1heE9wZW5Db25ucyAobiA8dHlwZSAtMTE+KTsKIGZ1bmMgKGRiIDx0eXBlIDI4PikgLmRhdGFiYXNlL3NxbC5tYXliZU9wZW5OZXdDb25uZWN0aW9ucyAoKTsKIGZ1bmMgKGRiIDx0eXBlIDI4PikgLmRhdGFiYXNlL3NxbC5jb25uZWN0aW9uT3BlbmVyICgpOwogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLm9wZW5OZXdDb25uZWN0aW9uICgpOwogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLmNvbm4gKCkgKD8gPHR5cGUgMzI+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLmNvbm5JZkZyZWUgKHdhbnRlZCA8dHlwZSAzMj4pICg/IDx0eXBlIDMyPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGRiIDx0eXBlIDI4PikgLmRhdGFiYXNlL3NxbC5ub3RlVW51c2VkRHJpdmVyU3RhdGVtZW50IChjIDx0eXBlIDMyPiwgc2kgPHR5cGUgNz4pOwogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLnB1dENvbm4gKGRjIDx0eXBlIDMyPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLnB1dENvbm5EQkxvY2tlZCAoZGMgPHR5cGUgMzI+LCBlcnIgPHR5cGUgLTE5PikgPHR5cGUgLTE1PjsKIGZ1bmMgKGRiIDx0eXBlIDI4PikgUHJlcGFyZSAocXVlcnkgPHR5cGUgLTE2PikgKD8gPHR5cGUgNTMgKjx0eXBlIDU0ICJTdG10IiA8dHlwZSA1NSBzdHJ1Y3QgeyAuZGF0YWJhc2Uvc3FsLmRiIDx0eXBlIDI4PjsgLmRhdGFiYXNlL3NxbC5xdWVyeSA8dHlwZSAtMTY+OyAuZGF0YWJhc2Uvc3FsLnN0aWNreUVyciA8dHlwZSAtMTk+OyAuZGF0YWJhc2Uvc3FsLmNsb3NlbXUgPHR5cGUgNTYgInN5bmMuUldNdXRleCIgPHR5cGUgNTcgc3RydWN0IHsgLnN5bmMudyA8dHlwZSAyMT47IC5zeW5jLndyaXRlclNlbSA8dHlwZSAtNz47IC5zeW5jLnJlYWRlclNlbSA8dHlwZSAtNz47IC5zeW5jLnJlYWRlckNvdW50IDx0eXBlIC0zPjsgLnN5bmMucmVhZGVyV2FpdCA8dHlwZSAtMz47IH0+CiBmdW5jIChydyA8dHlwZSA1OCAqPHR5cGUgNTY+PikgUlVubG9jayAoKTsKIGZ1bmMgKHJ3IDx0eXBlIDU4PikgVW5sb2NrICgpOwogZnVuYyAocncgPHR5cGUgNTg+KSBSTG9ja2VyICgpIDx0eXBlIDU5ICJzeW5jLkxvY2tlciIgPHR5cGUgNjAgaW50ZXJmYWNlIHsgTG9jayAoKTsgVW5sb2NrICgpOyB9Pj47CiBmdW5jIChydyA8dHlwZSA1OD4pIFJMb2NrICgpOwogZnVuYyAocncgPHR5cGUgNTg+KSBMb2NrICgpOwo+OyAuZGF0YWJhc2Uvc3FsLnR4IDx0eXBlIDYxICo8dHlwZSA2MiAiVHgiIDx0eXBlIDYzIHN0cnVjdCB7IC5kYXRhYmFzZS9zcWwuZGIgPHR5cGUgMjg+OyAuZGF0YWJhc2Uvc3FsLmRjIDx0eXBlIDMyPjsgLmRhdGFiYXNlL3NxbC50eGkgPHR5cGUgMTk+OyAuZGF0YWJhc2Uvc3FsLmRvbmUgPHR5cGUgLTE1PjsgLmRhdGFiYXNlL3NxbC5zdG10cyA8dHlwZSA2NCBzdHJ1Y3QgeyA/IDx0eXBlIDIxPjsgLmRhdGFiYXNlL3NxbC52IDx0eXBlIDY1IFtdIDx0eXBlIDY2ICo8dHlwZSA1ND4+PjsgfT47IH0+CiBmdW5jICh0eCA8dHlwZSA2NyAqPHR5cGUgNjI+PikgLmRhdGFiYXNlL3NxbC5jbG9zZSAoKTsKIGZ1bmMgKHR4IDx0eXBlIDY3PikgLmRhdGFiYXNlL3NxbC5ncmFiQ29ubiAoKSAoPyA8dHlwZSAzMj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0eCA8dHlwZSA2Nz4pIC5kYXRhYmFzZS9zcWwuY2xvc2VQcmVwYXJlZCAoKTsKIGZ1bmMgKHR4IDx0eXBlIDY3PikgQ29tbWl0ICgpIDx0eXBlIC0xOT47CiBmdW5jICh0eCA8dHlwZSA2Nz4pIFJvbGxiYWNrICgpIDx0eXBlIC0xOT47CiBmdW5jICh0eCA8dHlwZSA2Nz4pIFByZXBhcmUgKHF1ZXJ5IDx0eXBlIC0xNj4pICg/IDx0eXBlIDY4ICo8dHlwZSA1ND4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodHggPHR5cGUgNjc+KSBTdG10IChzdG10IDx0eXBlIDY5ICo8dHlwZSA1ND4+KSA8dHlwZSA3MCAqPHR5cGUgNTQ+PjsKIGZ1bmMgKHR4IDx0eXBlIDY3PikgRXhlYyAocXVlcnkgPHR5cGUgLTE2PiwgYXJncyAuLi48dHlwZSA3MSBpbnRlcmZhY2UgeyB9PikgKD8gPHR5cGUgNzIgIlJlc3VsdCIgPHR5cGUgNzMgaW50ZXJmYWNlIHsgTGFzdEluc2VydElkICgpICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsgUm93c0FmZmVjdGVkICgpICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsgfT4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodHggPHR5cGUgNjc+KSBRdWVyeSAocXVlcnkgPHR5cGUgLTE2PiwgYXJncyAuLi48dHlwZSA3NCBpbnRlcmZhY2UgeyB9PikgKD8gPHR5cGUgNzUgKjx0eXBlIDc2ICJSb3dzIiA8dHlwZSA3NyBzdHJ1Y3QgeyAuZGF0YWJhc2Uvc3FsLmRjIDx0eXBlIDMyPjsgLmRhdGFiYXNlL3NxbC5yZWxlYXNlQ29ubiA8dHlwZSA3OCAoPyA8dHlwZSAtMTk+KT47IC5kYXRhYmFzZS9zcWwucm93c2kgPHR5cGUgMTU+OyAuZGF0YWJhc2Uvc3FsLmNsb3NlZCA8dHlwZSAtMTU+OyAuZGF0YWJhc2Uvc3FsLmxhc3Rjb2xzIDx0eXBlIDc5IFtdIDx0eXBlIDEwPj47IC5kYXRhYmFzZS9zcWwubGFzdGVyciA8dHlwZSAtMTk+OyAuZGF0YWJhc2Uvc3FsLmNsb3NlU3RtdCA8dHlwZSA3PjsgfT4KIGZ1bmMgKHJzIDx0eXBlIDgwICo8dHlwZSA3Nj4+KSBOZXh0ICgpIDx0eXBlIC0xNT47CiBmdW5jIChycyA8dHlwZSA4MD4pIEVyciAoKSA8dHlwZSAtMTk+OwogZnVuYyAocnMgPHR5cGUgODA+KSBDb2x1bW5zICgpICg/IDx0eXBlIDgxIFtdIDx0eXBlIC0xNj4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAocnMgPHR5cGUgODA+KSBTY2FuIChkZXN0IC4uLjx0eXBlIDgyIGludGVyZmFjZSB7IH0+KSA8dHlwZSAtMTk+OwogZnVuYyAocnMgPHR5cGUgODA+KSBDbG9zZSAoKSA8dHlwZSAtMTk+Owo+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHR4IDx0eXBlIDY3PikgUXVlcnlSb3cgKHF1ZXJ5IDx0eXBlIC0xNj4sIGFyZ3MgLi4uPHR5cGUgODMgaW50ZXJmYWNlIHsgfT4pIDx0eXBlIDg0ICo8dHlwZSA4NSAiUm93IiA8dHlwZSA4NiBzdHJ1Y3QgeyAuZGF0YWJhc2Uvc3FsLmVyciA8dHlwZSAtMTk+OyAuZGF0YWJhc2Uvc3FsLnJvd3MgPHR5cGUgODA+OyB9PgogZnVuYyAociA8dHlwZSA4NyAqPHR5cGUgODU+PikgU2NhbiAoZGVzdCAuLi48dHlwZSA4OCBpbnRlcmZhY2UgeyB9PikgPHR5cGUgLTE5PjsKPj47Cj4+OyAuZGF0YWJhc2Uvc3FsLnR4c2kgPHR5cGUgODkgKjx0eXBlIDkwICIuZGF0YWJhc2Uvc3FsLmRyaXZlclN0bXQiIDx0eXBlIDkxIHN0cnVjdCB7ID8gPHR5cGUgNTk+OyAuZGF0YWJhc2Uvc3FsLnNpIDx0eXBlIDc+OyB9PgogZnVuYyAoZHMgPHR5cGUgOTIgKjx0eXBlIDkwPj4pIENsb3NlICgpIDx0eXBlIC0xOT47Cj4+OyAuZGF0YWJhc2Uvc3FsLm11IDx0eXBlIDIxPjsgLmRhdGFiYXNlL3NxbC5jbG9zZWQgPHR5cGUgLTE1PjsgLmRhdGFiYXNlL3NxbC5jc3MgPHR5cGUgOTMgW10gPHR5cGUgOTQgIi5kYXRhYmFzZS9zcWwuY29ublN0bXQiIDx0eXBlIDk1IHN0cnVjdCB7IC5kYXRhYmFzZS9zcWwuZGMgPHR5cGUgMzI+OyAuZGF0YWJhc2Uvc3FsLnNpIDx0eXBlIDc+OyB9Pj4+OyB9PgogZnVuYyAocyA8dHlwZSA5NiAqPHR5cGUgNTQ+PikgRXhlYyAoYXJncyAuLi48dHlwZSA5NyBpbnRlcmZhY2UgeyB9PikgKD8gPHR5cGUgNzI+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAocyA8dHlwZSA5Nj4pIC5kYXRhYmFzZS9zcWwuY29ublN0bXQgKCkgKGNpIDx0eXBlIDMyPiwgcmVsZWFzZUNvbm4gPHR5cGUgOTggKD8gPHR5cGUgLTE5Pik+LCBzaSA8dHlwZSA3PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAocyA8dHlwZSA5Nj4pIFF1ZXJ5IChhcmdzIC4uLjx0eXBlIDk5IGludGVyZmFjZSB7IH0+KSAoPyA8dHlwZSAxMDAgKjx0eXBlIDc2Pj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChzIDx0eXBlIDk2PikgUXVlcnlSb3cgKGFyZ3MgLi4uPHR5cGUgMTAxIGludGVyZmFjZSB7IH0+KSA8dHlwZSAxMDIgKjx0eXBlIDg1Pj47CiBmdW5jIChzIDx0eXBlIDk2PikgQ2xvc2UgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKHMgPHR5cGUgOTY+KSAuZGF0YWJhc2Uvc3FsLmZpbmFsQ2xvc2UgKCkgPHR5cGUgLTE5PjsKPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChkYiA8dHlwZSAyOD4pIC5kYXRhYmFzZS9zcWwucHJlcGFyZSAocXVlcnkgPHR5cGUgLTE2PikgKD8gPHR5cGUgMTAzICo8dHlwZSA1ND4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZGIgPHR5cGUgMjg+KSBFeGVjIChxdWVyeSA8dHlwZSAtMTY+LCBhcmdzIC4uLjx0eXBlIDEwNCBpbnRlcmZhY2UgeyB9PikgKD8gPHR5cGUgNzI+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLmV4ZWMgKHF1ZXJ5IDx0eXBlIC0xNj4sIGFyZ3MgPHR5cGUgMTA1IFtdIDx0eXBlIDEwNiBpbnRlcmZhY2UgeyB9Pj4pIChyZXMgPHR5cGUgNzI+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChkYiA8dHlwZSAyOD4pIFF1ZXJ5IChxdWVyeSA8dHlwZSAtMTY+LCBhcmdzIC4uLjx0eXBlIDEwNyBpbnRlcmZhY2UgeyB9PikgKD8gPHR5cGUgMTA4ICo8dHlwZSA3Nj4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZGIgPHR5cGUgMjg+KSAuZGF0YWJhc2Uvc3FsLnF1ZXJ5IChxdWVyeSA8dHlwZSAtMTY+LCBhcmdzIDx0eXBlIDEwOSBbXSA8dHlwZSAxMTAgaW50ZXJmYWNlIHsgfT4+KSAoPyA8dHlwZSAxMTEgKjx0eXBlIDc2Pj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChkYiA8dHlwZSAyOD4pIC5kYXRhYmFzZS9zcWwucXVlcnlDb25uIChkYyA8dHlwZSAzMj4sIHJlbGVhc2VDb25uIDx0eXBlIDExMiAoPyA8dHlwZSAtMTk+KT4sIHF1ZXJ5IDx0eXBlIC0xNj4sIGFyZ3MgPHR5cGUgMTEzIFtdIDx0eXBlIDExNCBpbnRlcmZhY2UgeyB9Pj4pICg/IDx0eXBlIDExNSAqPHR5cGUgNzY+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGRiIDx0eXBlIDI4PikgUXVlcnlSb3cgKHF1ZXJ5IDx0eXBlIC0xNj4sIGFyZ3MgLi4uPHR5cGUgMTE2IGludGVyZmFjZSB7IH0+KSA8dHlwZSAxMTcgKjx0eXBlIDg1Pj47CiBmdW5jIChkYiA8dHlwZSAyOD4pIEJlZ2luICgpICg/IDx0eXBlIDExOCAqPHR5cGUgNjI+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGRiIDx0eXBlIDI4PikgLmRhdGFiYXNlL3NxbC5iZWdpbiAoKSAodHggPHR5cGUgMTE5ICo8dHlwZSA2Mj4+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChkYiA8dHlwZSAyOD4pIERyaXZlciAoKSA8dHlwZSAzPjsKPjsKZnVuYyBEcml2ZXJzICgpIDx0eXBlIDEyMCBbXSA8dHlwZSAtMTY+PjsKdmFyIEVyck5vUm93cyA8dHlwZSAtMTk+Owp2YXIgRXJyVHhEb25lIDx0eXBlIC0xOT47CnR5cGUgPHR5cGUgMTIxICJOdWxsQm9vbCIgPHR5cGUgMTIyIHN0cnVjdCB7IEJvb2wgPHR5cGUgLTE1PjsgVmFsaWQgPHR5cGUgLTE1PjsgfT4KIGZ1bmMgKG4gPHR5cGUgMTIzICo8dHlwZSAxMjE+PikgU2NhbiAodmFsdWUgPHR5cGUgMTI0IGludGVyZmFjZSB7IH0+KSA8dHlwZSAtMTk+OwogZnVuYyAobiA8dHlwZSAxMjE+KSBWYWx1ZSAoKSAoPyA8dHlwZSAxMD4sID8gPHR5cGUgLTE5Pik7Cj47CnR5cGUgPHR5cGUgMTI1ICJOdWxsRmxvYXQ2NCIgPHR5cGUgMTI2IHN0cnVjdCB7IEZsb2F0NjQgPHR5cGUgLTEwPjsgVmFsaWQgPHR5cGUgLTE1PjsgfT4KIGZ1bmMgKG4gPHR5cGUgMTI3ICo8dHlwZSAxMjU+PikgU2NhbiAodmFsdWUgPHR5cGUgMTI4IGludGVyZmFjZSB7IH0+KSA8dHlwZSAtMTk+OwogZnVuYyAobiA8dHlwZSAxMjU+KSBWYWx1ZSAoKSAoPyA8dHlwZSAxMD4sID8gPHR5cGUgLTE5Pik7Cj47CnR5cGUgPHR5cGUgMTI5ICJOdWxsSW50NjQiIDx0eXBlIDEzMCBzdHJ1Y3QgeyBJbnQ2NCA8dHlwZSAtND47IFZhbGlkIDx0eXBlIC0xNT47IH0+CiBmdW5jIChuIDx0eXBlIDEzMSAqPHR5cGUgMTI5Pj4pIFNjYW4gKHZhbHVlIDx0eXBlIDEzMiBpbnRlcmZhY2UgeyB9PikgPHR5cGUgLTE5PjsKIGZ1bmMgKG4gPHR5cGUgMTI5PikgVmFsdWUgKCkgKD8gPHR5cGUgMTA+LCA/IDx0eXBlIC0xOT4pOwo+Owp0eXBlIDx0eXBlIDEzMyAiTnVsbFN0cmluZyIgPHR5cGUgMTM0IHN0cnVjdCB7IFN0cmluZyA8dHlwZSAtMTY+OyBWYWxpZCA8dHlwZSAtMTU+OyB9PgogZnVuYyAobnMgPHR5cGUgMTM1ICo8dHlwZSAxMzM+PikgU2NhbiAodmFsdWUgPHR5cGUgMTM2IGludGVyZmFjZSB7IH0+KSA8dHlwZSAtMTk+OwogZnVuYyAobnMgPHR5cGUgMTMzPikgVmFsdWUgKCkgKD8gPHR5cGUgMTA+LCA/IDx0eXBlIC0xOT4pOwo+OwpmdW5jIE9wZW4gKGRyaXZlck5hbWUgPHR5cGUgLTE2PiwgZGF0YVNvdXJjZU5hbWUgPHR5cGUgLTE2PikgKD8gPHR5cGUgMjg+LCA/IDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDEzNyAiUmF3Qnl0ZXMiIDx0eXBlIDEzOCBbXSA8dHlwZSAtMjA+Pj47CmZ1bmMgUmVnaXN0ZXIgKG5hbWUgPHR5cGUgLTE2PiwgZHJpdmVyIDx0eXBlIDM+KTsKdHlwZSA8dHlwZSA3Mj47CnR5cGUgPHR5cGUgODU+Owp0eXBlIDx0eXBlIDc2PjsKdHlwZSA8dHlwZSAxMzkgIlNjYW5uZXIiIDx0eXBlIDE0MCBpbnRlcmZhY2UgeyBTY2FuIChzcmMgPHR5cGUgMTQxIGludGVyZmFjZSB7IH0+KSA8dHlwZSAtMTk+OyB9Pj47CnR5cGUgPHR5cGUgNTQ+Owp0eXBlIDx0eXBlIDYyPjsKY2hlY2tzdW0gOEIwODkyN0M5MjlDNTI3OTBEQzc4QzhBNDQwMDgzNTgwOTA5NzZENzsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAALQpAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAAOgpAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAAQKgAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAMCoAAAEAAAAAAAAAAAAAAAEAAAAAAAAA