eval %q{IyBDb3B5cmlnaHQgMjAwNiwgRC4gQnVyCiMgUGVybWlzc2lvbiB0byB1c2Us IGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBm b3IgCiMgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBn cmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQojIGNvcHlyaWdodCBu b3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCiMgVEhJUyBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiIEFORCBXSVRIT1VUIEFOWSBFWFBSRVNTIE9S CiMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElN SVRBVElPTiwgVEhFIElNUExJRUQKIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu CiMgTmFtZSA6SGVpZ2hmaWVsZF9nZW5lcmF0b3IucmIKIwkgUGx1Z2lucyBt ZW51ID0gSGVpZ2hmaWVsZF9nZW5lcmF0b3IKIyBBdXRob3IgOiAgICAgICAg RGlkaWVyIEJ1cgojIFVzYWdlIDogICAgICAgICBTZWxlY3QgYSBSQVcsIFBQ TSBvciBQR00gaW1hZ2UgYW5kIGZpbGwgdGhlIGRpYWxvZyBib3ggCiMgRGF0 ZSA6ICAgICAgICAgIDIxLzA4LzA2CiMgVHlwZSA6ICAgICAgICAgIFRvb2wK IyBIaXN0b3J5OiAgICAgICAgMS4wIEZpcnN0IFJlbGVhc2UgMDgvMDQvMDYK IyBBZGRlZCBzdXBwb3J0IGZvciBQUE0gYW5kIFJBVyBmaWxlcywgbGF5ZXIg c3VwcG9ydAojIEZpeGVkIGJ1Z3M6IGluY29ycmVjdCBoZWlnaHQgc2NhbGUg d2hlbiBtb2RlbCBpcyBpbiBjbSB1bml0cywKIyB3cm9uZyBhbHRpdHVkZSBz dGVwIGNvbXB1dGF0aW9uCiMgY29ycmVjdGVkICJubyBtZXNoIGdlbmVyYXRp b24iIHdoZW4gImNhbmNlbCIgYnV0dG9uIGhpdCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmRl ZiBoZl9nZW4KaGZfc2VsZWN0X2ltYWdlCmhmX3JlZGlyZWN0CgokY2FuY2Vs bGVkID0gZmFsc2UKaGZfZGlhbG9nCmlmICRjYW5jZWxsZWQgPT0gZmFsc2UK ICBoZl9jcmVhdGVfcG9pbnRzCiAgaGZfY3JlYXRlX3BvbHlnb25zCiAgaGZf ZHJhd19tZXNoCiAgZWxzZQogIHB1dHMgIk1lc2ggY3JlYXRpb24gY2FuY2Vs bGVkLiIKICBVSS5tZXNzYWdlYm94ICJNZXNoIGNyZWF0aW9uIGNhbmNlbGxl ZC4iCmVuZAplbmQKI19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZGVmIGhmX3NlbGVjdF9pbWFnZQojIFNlbGVjdCBp bWFnZSBmb3IgYmFja2dyb3VuZAp2YWxpZF9mb3JtYXRzID0gIioucHBtOyAq LnBnbTsgKi5yYXciCiMkaGZfZmlsZSA9IFVJLm9wZW5wYW5lbCggIlNlbGVj dCBpbWFnZSBmb3IgaGVpZ2h0ZmllbGQiLCAiLiIgLCAiKi5wP20iICkKJGhm X2ZpbGUgPSBVSS5vcGVucGFuZWwoICJTZWxlY3QgaW1hZ2UgZm9yIGhlaWdo dGZpZWxkIiwgIi4iLCB2YWxpZF9mb3JtYXRzICkKaGZfcGF0aCA9IEZpbGUu ZGlybmFtZSgkaGZfZmlsZSkKaGZfZmlsZSA9IEZpbGUuYmFzZW5hbWUoJGhm X2ZpbGUpCiRoZl9leHQgPSBoZl9maWxlLnNwbGl0KCIuIilbMV0KcCA9IGhm X3BhdGguc3BsaXQoIlxcIikKJHBhdGggPSAiIgpwLmVhY2ggZG8gfHN0cnwK ICAkcGF0aCA9ICRwYXRoICsgc3RyICsgIlxcIgplbmQKZW5kCiNfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRlZiBo Zl9yZWRpcmVjdAogIGNhc2UgJGhmX2V4dAogICAgd2hlbiAicHBtIiwiUFBN IiwicGdtIiwiUEdNIgogICAgICBoZl9yZWFkX2ZpbGVfcHBtX3BnbQogICAg d2hlbiAicmF3IiwiUkFXIgogICAgICBoZl9yZWFkX2ZpbGVfcmF3CiAgZW5k CmVuZAojX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkZWYgaGZfcmVhZF9maWxlX3BwbV9wZ20KbGluZXNfYXJyYXkg PSBJTy5yZWFkbGluZXMoJGhmX2ZpbGUpCiRhbHRpdHVkZXMgPSBbXQpmb3Jt YXQgPSBsaW5lc19hcnJheVswXQokd2lkdGggPSBsaW5lc19hcnJheVsxXS5z cGxpdCgiICIpWzBdLnRvX2kKJGhlaWdodCA9IGxpbmVzX2FycmF5WzFdLnNw bGl0KCIgIilbMV0udG9faQokZ3JleV9zY2FsZSA9IGxpbmVzX2FycmF5WzJd LnRvX2kKJGFsdGl0dWRlcyA9IGxpbmVzX2FycmF5WzNdLnNwbGl0KCIgIikK cHV0cyAiRm9ybWF0OiAiICsgZm9ybWF0LmNob21wICsgICIgKCIgKyAkaGZf ZXh0KyAiKSIgKyAiIFdpZHRoOiAiICsgJHdpZHRoLnRvX3MgKyAiIHggSGVp Z2h0OiAiICsgJGhlaWdodC50b19zICsgIiBHcmV5c2NhbGU6ICIgKyAoJGdy ZXlfc2NhbGUrMSkudG9fcyArICIgbGV2ZWxzLiIKcHV0cyAiTnVtYmVyIG9m IHBvaW50czogIiArICRhbHRpdHVkZXMubGVuZ3RoLnRvX3MKJGhmX21lc2gg PSBHZW9tOjpQb2x5Z29uTWVzaC5uZXcgJHdpZHRoKiRoZWlnaHQsICR3aWR0 aCokaGVpZ2h0KjIKaWYgJGhmX21lc2gKICBwdXRzICJFbXB0eSBtZXNoIGlu aXRpYWxpemVkLiIKZW5kCmVuZAojX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkZWYgaGZfcmVhZF9maWxlX3JhdwoK I0lucHV0IGZpbGUgYmluYXJ5IHJlYWQKaGVpZ2h0ZmllbGQgPSBGaWxlLm5l dygkaGZfZmlsZS50b19zLCAicmIiKQp0YWJsZV9saW5lcyA9IGhlaWdodGZp ZWxkLnN5c3JlYWQoRmlsZS5zaXplKGhlaWdodGZpZWxkKSkKaGVpZ2h0Zmll bGQuY2xvc2UKI1ByZXBhcmUgdmVydGljZXMgYXJyYXkgYW5kIG1lc2ggZm9y IHRyaWFuZ3VsYXRpb24KdmVydGljZXMgPSBBcnJheS5uZXcodGFibGVfbGlu ZXMubGVuZ3RoKQokaGZfbWVzaCA9IEdlb206OlBvbHlnb25NZXNoLm5ldyh0 YWJsZV9saW5lcy5sZW5ndGgpCgokYWx0aXR1ZGVzID0gW10KZm9ybWF0ID0g JGhmX2V4dAokd2lkdGggPSBNYXRoLnNxcnQodGFibGVfbGluZXMubGVuZ3Ro KS50b19pCiRoZWlnaHQgPSBNYXRoLnNxcnQodGFibGVfbGluZXMubGVuZ3Ro KS50b19pCiRncmV5X3NjYWxlID0gMjU1CgowLnN0ZXAodGFibGVfbGluZXMu bGVuZ3RoLCAxKSBkbyB8aXwKICAgICRhbHRpdHVkZXMucHVzaCB0YWJsZV9s aW5lc1tpXQplbmQKICAKcHV0cyAiRm9ybWF0OiAiICsgZm9ybWF0ICsgIiBX aWR0aDogIiArICR3aWR0aC50b19zICsgIiB4IEhlaWdodDogIiArICRoZWln aHQudG9fcyArICIgR3JleXNjYWxlOiAiICsgKCRncmV5X3NjYWxlKzEpLnRv X3MgKyAiIGxldmVscy4iCnB1dHMgIk51bWJlciBvZiBwb2ludHM6ICIgKyAo JGFsdGl0dWRlcy5sZW5ndGggLSAxKS50b19zCgppZiAkaGZfbWVzaAogIHB1 dHMgIkVtcHR5IG1lc2ggaW5pdGlhbGl6ZWQuIgplbmQKZW5kCiNfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRlZiBo Zl9kaWFsb2cKbW9kZWwgPSBTa2V0Y2h1cC5hY3RpdmVfbW9kZWwKI0N1cnJl bnQgbW9kZWwgdW5pdHM6IDAgPSBpbmNoZXMsIDEgPSBmZWV0LCAyID0gbWls bGltZXRlcnMsIDMgPSBjZW50aW1ldGVycywgNCA9IG1ldGVycwpvcHQgPSBT a2V0Y2h1cC5hY3RpdmVfbW9kZWwub3B0aW9ucwp1ID0gb3B0WzNdWzJdCmNh c2UgdQogIHdoZW4gMAogICAgJG11bHQgPSAxCiAgd2hlbiAxCiAgICAkbXVs dCA9IDEyCiAgd2hlbiAyCiAgICAkbXVsdCA9IDAuMDM5MzcwMDc4NzQwMQog IHdoZW4gMwogICAgJG11bHQgPSAwLjM5MzcwMDc4NzQwMQogIHdoZW4gNAog ICAgJG11bHQgPSAzOS4zNzAwNzg3NDAxCgplbmQKI0xheWVyIHN1cHBvcnQK bGF5ZXJzID0gbW9kZWwubGF5ZXJzCmxheWVyc19uYW1lcyA9IGxheWVycy5j b2xsZWN0IHt8bHwgbC5uYW1lfQpsX25hbWVzID0gbGF5ZXJzX25hbWVzLmpv aW4oInwiKQokbG93ZXN0X2FsdCA9IDAuMCBpZiBub3QgJGxvd2VzdF9hbHQK JGhpZ2hlc3RfYWx0ID0gMTAwLjAgaWYgbm90ICRoaWdoZXN0X2FsdAppZiBu b3QgJG1lc2hfd2lkdGgKICAkbWVzaF93aWR0aCA9IDEwMDAuMAogIGVsc2UK ICAkbWVzaF93aWR0aCA9ICRtZXNoX3dpZHRoIC8gJG11bHQKZW5kCmlmIG5v dCAkbWVzaF9oZWlnaHQKICAkbWVzaF9oZWlnaHQgPSAxMDAwLjAKICBlbHNl CiAgJG1lc2hfaGVpZ2h0ID0gJG1lc2hfaGVpZ2h0IC8gJG11bHQKZW5kCiRj cmVhdGVfZ3JvdXAgPSAiWWVzIiBpZiBub3QgJGNyZWF0ZV9ncm91cAokZGVz dF9sYXllciA9IG1vZGVsLmFjdGl2ZV9sYXllci5uYW1lIGlmIG5vdCAkZGVz dF9sYXllcgpjcmVhdGVfZ3JvdXBfbGlzdCA9ICV3W1llcyBOb10uam9pbigi fCIpCmRyb3Bkb3ducyA9IFtjcmVhdGVfZ3JvdXBfbGlzdCxsX25hbWVzXQoK cHJvbXB0cz1bIkNyZWF0ZSBncm91cDogICIsICJEZXN0aW5hdGlvbiBsYXll ciAgIiwgIkltYWdlIHdpZHRoOiAgIiwgIkltYWdlIGhlaWdodDogICIsICJH cmV5IHNjYWxlIGxldmVsczogICIsICJMb3dlc3QgYWx0aXR1ZGU6ICAiLCAi SGlnaGVzdCBhbHRpdHVkZTogICIsICJNZXNoIHdpZHRoOiAgIiwgIk1lc2gg aGVpZ2h0OiAgIl0KdmFsdWVzPVskY3JlYXRlX2dyb3VwLCAkZGVzdF9sYXll ciwgJHdpZHRoLCAkaGVpZ2h0LCAkZ3JleV9zY2FsZSwgJGxvd2VzdF9hbHQs ICRoaWdoZXN0X2FsdCwgJG1lc2hfd2lkdGgsICRtZXNoX2hlaWdodF0KcmVz dWx0cyA9IGlucHV0Ym94IHByb21wdHMsIHZhbHVlcywgZHJvcGRvd25zLCAi SGVpZ2h0ZmllbGQgUGFyYW1ldGVycyIKaWYgbm90IHJlc3VsdHMKICAkY2Fu Y2VsbGVkID0gdHJ1ZQogIHJldHVybiBuaWwgCmVuZAoKJGNyZWF0ZV9ncm91 cCA9IHJlc3VsdHNbMF0KJGRlc3RfbGF5ZXIgPSByZXN1bHRzWzFdCiRsb3dl c3RfYWx0ID0gcmVzdWx0c1s1XQokaGlnaGVzdF9hbHQgPSByZXN1bHRzWzZd CiRtZXNoX3dpZHRoID0gcmVzdWx0c1s3XSokbXVsdAokbWVzaF9oZWlnaHQg PSByZXN1bHRzWzhdKiRtdWx0CgokbWVzaF9oZWlnaHRfcmFuZ2UgPSAoJGhp Z2hlc3RfYWx0IC0gJGxvd2VzdF9hbHQpCiRwYXRjaF9kaW14ID0gJG1lc2hf d2lkdGggLyAoJHdpZHRoIC0gMSkKJHBhdGNoX2RpbXkgPSAkbWVzaF9oZWln aHQgLyAoJGhlaWdodCAtIDEpCiRhbHRpdHVkZV9zdGVwID0gKCRtZXNoX2hl aWdodF9yYW5nZSAvICRncmV5X3NjYWxlKQpwdXRzICJNZXNoIGFsdGl0dWRl IHJhbmdlOiAiICsgJG1lc2hfaGVpZ2h0X3JhbmdlLnRvX3MKcHV0cyAiUGF0 Y2ggTGVuZ3RoIFg6ICIgKyAkcGF0Y2hfZGlteC50b19zCnB1dHMgIlBhdGNo IFdpZHRoIFk6ICIgKyAkcGF0Y2hfZGlteS50b19zCnB1dHMgIkFsdGl0dWRl IFN0ZXAgWjogIiArICRhbHRpdHVkZV9zdGVwLnRvX3MKcHV0cyAiQ3JlYXRl IGdyb3VwOiAiICsgJGNyZWF0ZV9ncm91cApwdXRzICJEZXN0aW5hdGlvbiBs YXllcjogIiArICRkZXN0X2xheWVyCmVuZAojX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkZWYgaGZfY3JlYXRlX3Bv aW50cwpvcHQgPSBTa2V0Y2h1cC5hY3RpdmVfbW9kZWwub3B0aW9ucwp1ID0g b3B0WzNdWzJdCnN0YXJ0X2luZCA9IHN0ZXBfeSA9IDAKc3RlcF9hbHQgPSAk d2lkdGggLSAxCiNlbmRfaW5kID0gJHdpZHRoIC0gMQplbmRfaW5kID0gc3Rh cnRfaW5kICsgc3RlcF9hbHQKI3N0ZXAgPSAkd2lkdGgKY3VycmVudF9hbHRz ID0gY3VycmVudF9saW5lID0gW10KCjAudXB0bygkaGVpZ2h0LTEpIGRvIHx6 fAogICNHZXQgYSBsaW5lIG9mIGFsdGl0dWRlcwogIGN1cnJlbnRfbGluZSA9 ICRhbHRpdHVkZXNbc3RhcnRfaW5kLi5lbmRfaW5kXQogICMjIyNwdXRzICJD dXJyZW50IGxpbmU6ICIgKyB6LnRvX3MgKyAiIGZyb20gIiArIHN0YXJ0X2lu ZC50b19zICsgIiB0byAiICsgZW5kX2luZC50b19zCiAgY3VycmVudF9hbHRz ID0gW10KICAgIDAuc3RlcChjdXJyZW50X2xpbmUubGVuZ3RoLTEsIDEpIGRv IHxhbHR8CiAgICAjIyMjcHV0cyAiQUxUOiAgICIgKyBhbHQudG9fcwogICAg IyMjI3B1dHMgIkluZGljZTogIiArIChhbHQrMikudG9fcyArICIgQWx0aXR1 ZGU6ICIgKyBjdXJyZW50X2xpbmVbKGFsdCsyKV0udG9fcwogICAgICBjdXJy ZW50X2FsdHMucHVzaCBjdXJyZW50X2xpbmVbYWx0XS50b19mCiAgICBlbmQK ICAgICMjIyNwdXRzICJDdXJyZW50IGFsdGl0dWRlczogIiArIGN1cnJlbnRf YWx0cy50b19zCiAgI0NvbnN0cnVjdCB0aGUgcG9pbnRzIG9mIHRoZSBsaW5l CiAgMC51cHRvKCR3aWR0aCAtMSkgZG8gfHh8CiAgICBweCA9IHgqJHBhdGNo X2RpbXgKICAgIHB5ID0gc3RlcF95KiRwYXRjaF9kaW15CiAgICBweiA9IGN1 cnJlbnRfYWx0c1t4XSokYWx0aXR1ZGVfc3RlcCokbXVsdAogICAgCiAgICAj QWRkIHRoZSBwb2ludCB0byB0aGUgbWVzaAogICAgJGhmX21lc2guYWRkX3Bv aW50IEdlb206OlBvaW50M2QubmV3KHB4LHB5LHB6KQogICAgI3B1dHMgIi0t LS0tLS0tLS0tLS0iCiAgZW5kCiAgc3RhcnRfaW5kID0gc3RhcnRfaW5kICsg JHdpZHRoCiAgZW5kX2luZCA9IHN0YXJ0X2luZCArIHN0ZXBfYWx0IAogIHN0 ZXBfeSA9IHN0ZXBfeSAtIDEKICAKICBTa2V0Y2h1cC5zZXRfc3RhdHVzX3Rl eHQoIkxvYWRpbmcgbGluZSAiICsgKHorMSkudG9fcykKZW5kCmVuZAojX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk ZWYgaGZfY3JlYXRlX3BvbHlnb25zCnZlcnRpY2VzID0gJGhmX21lc2gucG9p bnRzCnN0ZXAgPSAkd2lkdGgKc3RhcnQxID0gMAplbmQxID0gc3RlcC0xCnN0 YXJ0MiA9IGVuZDErMQplbmQyID0gc3RhcnQyICsgKHN0ZXAtMSkKaW5kID0g MAowLnVwdG8oJGhlaWdodC0yKSBkbyB8enwKICBjdXJyZW50X2xpbmUgPSBu ZXh0X2xpbmUgPSBbXQogIGN1cnJlbnRfbGluZSA9ICB2ZXJ0aWNlc1tzdGFy dDEuLmVuZDFdCiAgbmV4dF9saW5lID0gdmVydGljZXNbc3RhcnQyLi5lbmQy XQogIChoZl9tZXNoX2FkZF9mYWNlcyBjdXJyZW50X2xpbmUsIG5leHRfbGlu ZSwgaW5kKQogIHN0YXJ0MSA9IHN0YXJ0MSArIHN0ZXAKICBlbmQxID0gZW5k MSArIHN0ZXAKICBzdGFydDIgPSBzdGFydDIgKyBzdGVwCiAgZW5kMiA9IGVu ZDIgKyBzdGVwCiAgaW5kID0gaW5kICsgMQplbmQKZW5kCiNfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRlZiBoZl9t ZXNoX2FkZF9mYWNlcyggbDEsbDIsIGluZF9saW5lICkKaW5kX25leHRfbGlu ZSA9IGluZF9saW5lICsgMQowLnVwdG8oJHdpZHRoLTIpIGRvIHxpfAogIHAx ID0gbDFbaV0KICBwMiA9IGwxW2krMV0KICBwMyA9IGwyW2ldCiAgcDQgPSBs MltpKzFdCiAgaWYgcDQgPT0gbmlsCiAgcHV0cyAicDQgbmlsIgogIGVuZAog IAogICRoZl9tZXNoLmFkZF9wb2x5Z29uIHAyLCBwMSwgcDMKICAkaGZfbWVz aC5hZGRfcG9seWdvbiBwNCwgcDIsIHAzCiAgCiAgU2tldGNodXAuc2V0X3N0 YXR1c190ZXh0KCJBZGRpbmcgcG9seWdvbnMgIiArICRoZl9tZXNoLmNvdW50 X3BvbHlnb25zLnRvX3MgKyAiIG9mIGxpbmVzICIgKyBpbmRfbGluZS50b19z ICsgIiBhbmQgIiArIGluZF9uZXh0X2xpbmUudG9fcykKZW5kCmVuZAojX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk ZWYgaGZfZHJhd19tZXNoCm1vZGVsID0gU2tldGNodXAuYWN0aXZlX21vZGVs Cm1vZGVsLnN0YXJ0X29wZXJhdGlvbiAiaGVpZ2h0ZmllbGQgZ2VuZXJhdG9y IgplbnRpdGllcyA9IG1vZGVsLmFjdGl2ZV9lbnRpdGllcwppZiAkY3JlYXRl X2dyb3VwID09ICJZZXMiCiAgJGdyb3VwID0gZW50aXRpZXMuYWRkX2dyb3Vw CiAgZW50aXRpZXMgPSAkZ3JvdXAuZW50aXRpZXMKZW5kCgpTa2V0Y2h1cC5z ZXRfc3RhdHVzX3RleHQoIkRyYXdpbmcgbWVzaCBvZiAiICsgJGhmX21lc2gu Y291bnRfcG9seWdvbnMudG9fcyArICIgZmFjZXMsIHBsZWFzZSB3YWl0Li4u IikKCiNMYXllciBzdXBwb3J0CmN1cnJlbnRfbGF5ZXIgPSBtb2RlbC5hY3Rp dmVfbGF5ZXIubmFtZQptb2RlbC5hY3RpdmVfbGF5ZXIgPSAkZGVzdF9sYXll cgojTWVzaCBkcmF3CmZhY2VzID0gZW50aXRpZXMuYWRkX2ZhY2VzX2Zyb21f bWVzaCAkaGZfbWVzaAojIGNvcnJlY3Qgb3JpZW50YXRpb24gb2YgZmFjZXMK I2VudGl0aWVzLmVhY2ggZG8gfGV8CiAgI2lmIGUuY2xhc3MgPT0gU2tldGNo dXA6OkZhY2UKICAgICNlLnJldmVyc2UhIGlmIGUubm9ybWFsWzJdPDAKICAj ZW5kCiNlbmQKCiMgTWVzaCBjbGVhbnVwIChjb3BsYW5hciBlZGdlcykKc3Rv cCA9IGZhbHNlCndoaWxlIG5vdCBzdG9wCiAga2V5cHJlc3MgPSBVSS5tZXNz YWdlYm94KCAiUHJvY2VzcyBjb3BsYW5hciBlZGdlcyBjbGVhbnVwID8iICwg TUJfWUVTTk8sICJNZXNoIGNsZWFudXAiKQogIGlmIChrZXlwcmVzcyA9PSA2 KQogICAgI3NlbGVjdCBhbGwgZWRnZXMgb2YgdGhlIG1lc2gKICAgIG1lc2hf ZWRnZXMgPSBbXQogICAgZ3JvdXBfZW50cyA9ICRncm91cC5lbnRpdGllcwog ICAgZm9yIGUgaW4gZ3JvdXBfZW50cwogICAgICBpZiBlLmtpbmRfb2Y/IFNr ZXRjaHVwOjpFZGdlCiAgICAgICAgbWVzaF9lZGdlcy5wdXNoIGUKICAgICAg ZW5kCiAgICBlbmQKICAgIChoZl9jbGVhbnVwIG1lc2hfZWRnZXMpCiAgZWxz ZQogICAgc3RvcCA9IHRydWUKICBlbmQKCmVuZAoKaWYgKGZhY2VzKQogIFVJ Lm1lc3NhZ2Vib3ggIkNyZWF0ZWQgIiArICRoZl9tZXNoLmNvdW50X3BvbHln b25zLnRvX3MgKyAiIGZhY2VzLiIKZWxzZQogIFVJLm1lc3NhZ2Vib3ggIkZh aWxlZCB0byBjcmVhdGUgZmFjZXMgZnJvbSBtZXNoLiIKZW5kCgojTGF5ZXIg c3VwcG9ydAokZ3JvdXAubGF5ZXIgPSAkZGVzdF9sYXllcgojUmVzdG9yZSBv bGQgbGF5ZXIKbW9kZWwuYWN0aXZlX2xheWVyID0gY3VycmVudF9sYXllcgpl bmQKI19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZGVmIGhmX2NsZWFudXAoIGhmX2VkZ2VzICkKI2NoZWNrIHRoZSBm YWNlcyBjb25uZWN0ZWQgdG8gdGhlIGVkZ2VzCiAgdHJ1bmsgPSBBcnJheS5u ZXcKICBmb3IgZSBpbiBoZl9lZGdlcwogICAgaWYgKGUuZmFjZXMubGVuZ3Ro PT0yKSAKICAgICAgaWYgKGUuZmFjZXNbMF0ubWF0ZXJpYWwgPT0gZS5mYWNl c1sxXS5tYXRlcmlhbCAmJiBlLmZhY2VzWzBdLm5vcm1hbCA9PSBlLmZhY2Vz WzFdLm5vcm1hbCkKICAgICAgI2lmIChlLmZhY2VzWzBdLm5vcm1hbCA9PSBl LmZhY2VzWzFdLm5vcm1hbCkKICAgICAgICB0cnVuay5wdXNoKGUpCiAgICAg IGVuZAogICAgZW5kCiAgZW5kCiAgZm9yIGUgaW4gdHJ1bmsKICAgIGUuZXJh c2UhCiAgZW5kCiAgVUkubWVzc2FnZWJveCB0cnVuay5sZW5ndGgudG9fcyAr ICIgZWRnZXMgZXJhc2VkLiIKZW5kCgojX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZiBub3QgZmlsZV9sb2FkZWQ/ KCJoZWlnaHRmaWVsZF9nZW4ucmIiKQogIGFkZF9zZXBhcmF0b3JfdG9fbWVu dSgiUGx1Z2lucyIpCiAgICBVSS5tZW51KCJQbHVnaW5zIikuYWRkX2l0ZW0o IkhlaWdodGZpZWxkIE1lc2ggR2VuZXJhdG9yIikgeyBoZl9nZW4gfQplbmQK ZmlsZV9sb2FkZWQoImhlaWdodGZpZWxkX2dlbi5yYiIpCiNfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgoKCgo=}.unpack("m").to_s