PHN0eWxlPgoua3EtaGVybyB7IG1heC13aWR0aDogNzYwcHg7IG1hcmdpbjogMCBhdXRvIDIycHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNGQkY2RUEgMCUsICNGM0U3Q0MgMTAwJSk7IGJvcmRlcjogMnB4IHNvbGlkICNDNjhGM0U7IGJvcmRlci1yYWRpdXM6IDIycHg7IHBhZGRpbmc6IDI0cHggMjZweDsgYm94LXNoYWRvdzogMCAxMnB4IDM0cHggcmdiYSgxNTAsIDExMCwgNDAsIDAuMTYpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDIwcHg7IGZsZXgtd3JhcDogd3JhcDsgfQoua3EtaGVybyAua3EtaGVyby1pYyB7IGZvbnQtc2l6ZTogNDZweDsgbGluZS1oZWlnaHQ6IDE7IGZsZXg6IG5vbmU7IH0KLmtxLWhlcm8gLmtxLWhlcm8tdHh0IHsgZmxleDogMSAxIDI2MHB4OyBtaW4td2lkdGg6IDA7IH0KLmtxLWhlcm8gLmtxLWhlcm8tZXllYnJvdyB7IGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDgwMDsgbGV0dGVyLXNwYWNpbmc6IDIuNXB4OyBjb2xvcjogI0EwNkYyNDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQoua3EtaGVybyAua3EtaGVyby10aXRsZSB7IGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBzZXJpZjsgZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogODAwOyBjb2xvcjogIzJBMkEyQTsgbGluZS1oZWlnaHQ6IDEuMjsgbWFyZ2luLXRvcDogNHB4OyB9Ci5rcS1oZXJvIC5rcS1oZXJvLXN1YiB7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICM2YjVkNDM7IG1hcmdpbi10b3A6IDRweDsgbGluZS1oZWlnaHQ6IDEuNTsgfQoua3EtaGVybyBhLmtxLWhlcm8tYnRuIHsgZmxleDogMSAxIDEwMCU7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjQzY4RjNFLCAjQTA2RjI0KTsgY29sb3I6ICNmZmYgIWltcG9ydGFudDsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogODAwOyBwYWRkaW5nOiAxN3B4IDI0cHg7IGJvcmRlci1yYWRpdXM6IDE2cHg7IGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgxNjYsIDExMSwgMzYsIDAuMzUpOyBtYXJnaW4tdG9wOiA0cHg7IH0KLmtxLWhlcm8gYS5rcS1oZXJvLWJ0bjphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKC45ODUpOyB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9ImtxLWhlcm8iPgogIDxkaXYgY2xhc3M9ImtxLWhlcm8taWMiPvCfj5Q8L2Rpdj4KICA8ZGl2IGNsYXNzPSJrcS1oZXJvLXR4dCI+CiAgICA8ZGl2IGNsYXNzPSJrcS1oZXJvLWV5ZWJyb3ciIGlkPSJrcUhlcm9FeWVicm93Ij5Zb3VyIGNvdXJzZTwvZGl2PgogICAgPGRpdiBjbGFzcz0ia3EtaGVyby10aXRsZSI+VGhlIDMwLURheSBTcGVha2luZyBQYXRoPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJrcS1oZXJvLXN1YiIgaWQ9ImtxSGVyb1N1YiI+UGljayB1cCBleGFjdGx5IHdoZXJlIHlvdSBsZWZ0IG9mZi4gVGhpcnR5IG1pbnV0ZXMsIG91dCBsb3VkLCBhbmQgdG9kYXkgY291bnRzLjwvZGl2PgogIDwvZGl2PgogIDxhIGNsYXNzPSJrcS1oZXJvLWJ0biIgaWQ9ImtxSGVyb0J0biIgaHJlZj0iaHR0cHM6Ly90b21waGFtLmNhL21lbWJlci1ob21lLyI+4pa2IE9wZW4gbXkgY291cnNlPC9hPgo8L2Rpdj4KPHNjcmlwdD4KKGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiB0eHQoaWQsIHMpIHsgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IGlmIChlKSBlLnRleHRDb250ZW50ID0gczsgfQogIGZ1bmN0aW9uIGFwcGx5KHNhdmUpIHsKICAgIHRyeSB7CiAgICAgIHZhciBwID0gc2F2ZSAmJiBzYXZlLnBhdGg7IGlmICghcCB8fCAhcC5kb25lKSByZXR1cm47CiAgICAgIHZhciBkb25lTiA9IDAsIGN1ciA9IDMwOyBmb3IgKHZhciBkID0gMTsgZCA8PSAzMDsgZCsrKSB7IGlmIChwLmRvbmVbZF0pIGRvbmVOKys7IH0KICAgICAgZm9yICh2YXIgayA9IDE7IGsgPD0gMzA7IGsrKykgeyBpZiAoIXAuZG9uZVtrXSkgeyBjdXIgPSBrOyBicmVhazsgfSB9CiAgICAgIHZhciBzdHJlYWsgPSBzYXZlLnN0cmVhayAmJiBzYXZlLnN0cmVhay5jb3VudCA/IHNhdmUuc3RyZWFrLmNvdW50IDogMDsKICAgICAgaWYgKGRvbmVOID49IDMwIHx8IHAuZ3JhZCkgeyB0eHQoImtxSGVyb1N1YiIsICJBbGwgMzAgZGF5cyBkb25lLiBUaGUgRmx1ZW5jeSBUcmFjayBrZWVwcyBpdCBzaGFycCwgdGVuIG1pbnV0ZXMgYSBkYXkuIik7IHR4dCgia3FIZXJvQnRuIiwgIktlZXAgZ29pbmc6IHRoZSBGbHVlbmN5IFRyYWNrIik7IHJldHVybjsgfQogICAgICB0eHQoImtxSGVyb0V5ZWJyb3ciLCAiWW91ciBjb3Vyc2UgXHUwMGI3IGRheSAiICsgY3VyICsgIiBvZiAzMCIpOwogICAgICB0eHQoImtxSGVyb1N1YiIsIChkb25lTiA/IGRvbmVOICsgKGRvbmVOID09PSAxID8gIiBkYXkiIDogIiBkYXlzIikgKyAiIGRvbmUiIDogIkRheSAxIGlzIHdhaXRpbmciKSArIChzdHJlYWsgPiAxID8gIiBcdTAwYjcgIiArIHN0cmVhayArICItZGF5IHN0cmVhayIgOiAiIikgKyAiLiBUaGlydHkgbWludXRlcywgb3V0IGxvdWQsIGFuZCB0b2RheSBjb3VudHMuIik7CiAgICAgIHR4dCgia3FIZXJvQnRuIiwgIlx1MjViNiBDb250aW51ZSBcdTIwMTQgRGF5ICIgKyBjdXIpOwogICAgfSBjYXRjaCAoZSkge30KICB9CiAgdHJ5IHsgdmFyIGxvY2FsID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgia29yZWFuUXVlc3RTYXZlMiIpIHx8ICJudWxsIik7IGlmIChsb2NhbCkgYXBwbHkobG9jYWwpOyB9IGNhdGNoIChlKSB7fQogIGZldGNoKCIvd3AtYWRtaW4vYWRtaW4tYWpheC5waHA/YWN0aW9uPXJlc3Qtbm9uY2UiLCB7IGNyZWRlbnRpYWxzOiAic2FtZS1vcmlnaW4iIH0pLnRoZW4oZnVuY3Rpb24gKHIpIHsgcmV0dXJuIHIudGV4dCgpOyB9KS50aGVuKGZ1bmN0aW9uIChuKSB7CiAgICByZXR1cm4gZmV0Y2goIi93cC1qc29uL2txL3YxL3NhdmUiLCB7IGNyZWRlbnRpYWxzOiAic2FtZS1vcmlnaW4iLCBoZWFkZXJzOiB7ICJYLVdQLU5vbmNlIjogbi50cmltKCkgfSB9KTsKICB9KS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLm9rID8gci5qc29uKCkgOiBudWxsOyB9KS50aGVuKGZ1bmN0aW9uIChqKSB7IGlmIChqICYmIGouc2F2ZSkgYXBwbHkoai5zYXZlKTsgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwp9KSgpOwo8L3NjcmlwdD4=
๐ฑ
The app is out โ your Path, in your pocket
Sign in with this same account and your progress comes with you.
Forgot your password? ยท New here? See how the Speaking Path works โ
PHNjcmlwdD4KKGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiByZWFkeShmKSB7IGlmIChkb2N1bWVudC5yZWFkeVN0YXRlICE9PSAibG9hZGluZyIpIGYoKTsgZWxzZSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZik7IH0KICByZWFkeShmdW5jdGlvbiAoKSB7CiAgICAvLyBzdGVwIDI6IGlmIHdlIGFycml2ZSBvbiBQTVMncyBvd24gY29uZmlybSBmb3JtIHJpZ2h0IGFmdGVyIG91ciBzdXJ2ZXksIGNvbXBsZXRlIGl0IGF1dG9tYXRpY2FsbHkKICAgIHRyeSB7CiAgICAgIHZhciBjb25maXJtQnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbbmFtZT1wbXNfY29uZmlybV9jYW5jZWxfc3Vic2NyaXB0aW9uXSwgYnV0dG9uW25hbWU9cG1zX2NvbmZpcm1fY2FuY2VsX3N1YnNjcmlwdGlvbl0iKTsKICAgICAgaWYgKGNvbmZpcm1CdG4gJiYgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgia3FDeEdvIikgPT09ICIxIikgewogICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oImtxQ3hHbyIpOwogICAgICAgIGNvbmZpcm1CdG4uY2xpY2soKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0gY2F0Y2ggKGUpIHt9CiAgICB2YXIgbGlua3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJhLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1hY3Rpb24tbGluayIpKS5maWx0ZXIoZnVuY3Rpb24gKGEpIHsgcmV0dXJuIC9jYW5jZWwvaS50ZXN0KGEudGV4dENvbnRlbnQgfHwgIiIpOyB9KTsKICAgIGxpbmtzLmZvckVhY2goZnVuY3Rpb24gKGEpIHsKICAgICAgYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uIChldikgewogICAgICAgIGlmIChhLl9fa3FPaykgcmV0dXJuOwogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgc2hvdyhhKTsKICAgICAgfSk7CiAgICB9KTsKICAgIGZ1bmN0aW9uIHNob3coYSkgewogICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImtxQ3hXcmFwIikpIHJldHVybjsKICAgICAgdmFyIHdyYXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgd3JhcC5pZCA9ICJrcUN4V3JhcCI7CiAgICAgIHdyYXAuaW5uZXJIVE1MID0gJzxkaXYgc3R5bGU9InBvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDpyZ2JhKDQyLDQyLDQyLC40NSk7ei1pbmRleDo5OTk5ODsiPjwvZGl2PicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTk5O3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNFM0Q1Qjg7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MjZweCAyNHB4O21heC13aWR0aDo0NDBweDt3aWR0aDo5MnZ3O21heC1oZWlnaHQ6ODZ2aDtvdmVyZmxvdy15OmF1dG87Ym94LXNoYWRvdzowIDIwcHggNjBweCByZ2JhKDAsMCwwLC4yNSk7Zm9udC1zaXplOjE1cHg7Y29sb3I6IzJBMkEyQTsiPicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MS4zNXJlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luLWJvdHRvbTo2cHg7Ij5Tb3JyeSB0byBzZWUgeW91IGdvIPCfp6E8L2Rpdj4nICsKICAgICAgICAnPGRpdiBzdHlsZT0iZm9udC1zaXplOjEzLjVweDtjb2xvcjojNmI1ZDQzO2xpbmUtaGVpZ2h0OjEuNTU7bWFyZ2luLWJvdHRvbToxNHB4OyI+WW91IGtlZXAgYWNjZXNzIHVudGlsIHRoZSBlbmQgb2YgeW91ciBwYWlkIG1vbnRoLCB5b3VyIHByb2dyZXNzIHN0YXlzIHNhdmVkLCBhbmQgeW91IGNhbiBjb21lIGJhY2sgYW55dGltZS4gQmVmb3JlIHlvdSBnbyDigJQgd2hhdCBpcyB0aGUgbWFpbiByZWFzb24/IEl0IGdlbnVpbmVseSBoZWxwcyBtZSBidWlsZCB0aGlzIGJldHRlci48L2Rpdj4nICsKICAgICAgICAnPGRpdiBpZD0ia3FDeFJlYXNvbnMiPjwvZGl2PicgKwogICAgICAgICc8dGV4dGFyZWEgaWQ9ImtxQ3hOb3RlIiBwbGFjZWhvbGRlcj0iQW55dGhpbmcgZWxzZSB5b3Ugd2FudCBtZSB0byBrbm93PyAob3B0aW9uYWwpIiBzdHlsZT0id2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyOjFweCBzb2xpZCAjRTNENUI4O2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjEwcHg7Zm9udC1zaXplOjE0cHg7bWFyZ2luLXRvcDo4cHg7bWluLWhlaWdodDo1OHB4OyI+PC90ZXh0YXJlYT4nICsKICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDoxMHB4O21hcmdpbi10b3A6MTRweDsiPicgKwogICAgICAgICc8YnV0dG9uIGlkPSJrcUN4U3RheSIgc3R5bGU9ImZsZXg6MS4yO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjQzY4RjNFLCNBMDZGMjQpO2NvbG9yOiNmZmY7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTNweDtmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjE0LjVweDsiPktlZXAgbXkgUGF0aCDwn4+UPC9idXR0b24+JyArCiAgICAgICAgJzxidXR0b24gaWQ9ImtxQ3hHbyIgc3R5bGU9ImZsZXg6MTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRTNENUI4O2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjEzcHg7Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjpwb2ludGVyO2NvbG9yOiM4NTdhNjM7Zm9udC1zaXplOjE0cHg7Ij5DYW5jZWwgYW55d2F5PC9idXR0b24+JyArCiAgICAgICAgJzwvZGl2PjwvZGl2Pic7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQod3JhcCk7CiAgICAgIHZhciByZWFzb25zID0gWyJObyB0aW1lIHJpZ2h0IG5vdyIsICJUb28gZXhwZW5zaXZlIiwgIk5vdCB3aGF0IEkgZXhwZWN0ZWQiLCAiSSBmaW5pc2hlZCB0aGUgY291cnNlIPCfjpMiLCAiVGVjaG5pY2FsIHByb2JsZW1zIiwgIk90aGVyIl07CiAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgia3FDeFJlYXNvbnMiKTsKICAgICAgcmVhc29ucy5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7CiAgICAgICAgdmFyIGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgIGwuc3R5bGUuY3NzVGV4dCA9ICJkaXNwbGF5OmZsZXg7Z2FwOjlweDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo3cHggNHB4O2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6OHB4OyI7CiAgICAgICAgdmFyIGlucCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiAgICAgICAgaW5wLnR5cGUgPSAicmFkaW8iOyBpbnAubmFtZSA9ICJrcUN4UiI7IGlucC52YWx1ZSA9IHI7CiAgICAgICAgaW5wLnN0eWxlLmNzc1RleHQgPSAiYWNjZW50LWNvbG9yOiNDNjhGM0U7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtmbGV4Om5vbmU7IjsKICAgICAgICBsLmFwcGVuZENoaWxkKGlucCk7CiAgICAgICAgbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShyKSk7CiAgICAgICAgYm94LmFwcGVuZENoaWxkKGwpOwogICAgICB9KTsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImtxQ3hTdGF5Iikub25jbGljayA9IGZ1bmN0aW9uICgpIHsgd3JhcC5yZW1vdmUoKTsgfTsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImtxQ3hHbyIpLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHNlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W25hbWU9a3FDeFJdOmNoZWNrZWQiKTsKICAgICAgICB2YXIgcmVhc29uID0gc2VsID8gc2VsLnZhbHVlIDogIk5vIHJlYXNvbiBnaXZlbiI7CiAgICAgICAgdmFyIG5vdGUgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImtxQ3hOb3RlIikudmFsdWUgfHwgIiIpLnNsaWNlKDAsIDQ4MCk7CiAgICAgICAgdmFyIGZpcmVkID0gZmFsc2U7CiAgICAgICAgdmFyIGRvbmUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAoZmlyZWQpIHJldHVybjsgZmlyZWQgPSB0cnVlOwogICAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgia3FDeEdvIiwgIjEiKTsgfSBjYXRjaCAoZSkge30KICAgICAgICAgIGEuX19rcU9rID0gdHJ1ZTsgd3JhcC5yZW1vdmUoKTsgYS5jbGljaygpOwogICAgICAgIH07CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGZldGNoKCIvd3AtanNvbi9rcS92MS9mZWVkYmFjayIsIHsgbWV0aG9kOiAiUE9TVCIsIGNyZWRlbnRpYWxzOiAic2FtZS1vcmlnaW4iLAogICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiB9LCB3aW5kb3cuS1FfTk9OQ0UgPyB7ICJYLVdQLU5vbmNlIjogd2luZG93LktRX05PTkNFIH0gOiB7fSksCiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcmVhc29uOiByZWFzb24sIG5vdGU6IG5vdGUgfSkgfSkudGhlbihkb25lLCBkb25lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZG9uZSwgMjUwMCk7CiAgICAgICAgfSBjYXRjaCAoZSkgeyBkb25lKCk7IH0KICAgICAgfTsKICAgIH0KICB9KTsKfSkoKTsKPC9zY3JpcHQ+
PHN0eWxlPgovKiBNeSBBY2NvdW50OiB0aGUgdXBkYXRlLXBheW1lbnQgLyBjYW5jZWwgLyB1cGdyYWRlIGZvcm1zIGluIHRoZSBzYW1lIGNyZWFtLWFuZC1nb2xkIGFzIHRoZSBjaGVja291dCAqLwojcG1zLXVwZGF0ZS1wYXltZW50LW1ldGhvZC1mb3JtLCAjcG1zLWNhbmNlbC1zdWJzY3JpcHRpb24tZm9ybSwgI3Btcy1hYmFuZG9uLXN1YnNjcmlwdGlvbi1mb3JtLCAjcG1zLXVwZ3JhZGUtc3Vic2NyaXB0aW9uLWZvcm0geyBtYXgtd2lkdGg6IDY4MHB4OyBtYXJnaW46IDAgYXV0bzsgfQojcG1zLXVwZGF0ZS1wYXltZW50LW1ldGhvZC1mb3JtID4gcCwgI3Btcy1jYW5jZWwtc3Vic2NyaXB0aW9uLWZvcm0gPiBwLCAjcG1zLWFiYW5kb24tc3Vic2NyaXB0aW9uLWZvcm0gPiBwIHsgZm9udC1mYW1pbHk6IEdlb3JnaWEsIHNlcmlmOyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiAjMkEyQTJBOyBtYXJnaW46IDAgMCAxOHB4OyB9CiNwbXMtdXBkYXRlLXBheW1lbnQtbWV0aG9kLWZvcm0gLnBtcy1wYXlnYXRlLWV4dHJhLWZpZWxkcywgI3Btcy11cGRhdGUtcGF5bWVudC1tZXRob2QtZm9ybSAjcG1zLXN0cmlwZS1jb25uZWN0IHsgYmFja2dyb3VuZDogI0ZCRjZFQTsgYm9yZGVyOiAxcHggc29saWQgI0UzRDVCODsgYm9yZGVyLXRvcDogNHB4IHNvbGlkICNDNjhGM0U7IGJvcmRlci1yYWRpdXM6IDIwcHg7IHBhZGRpbmc6IDIycHggMjJweCAxOHB4OyBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDEyMCw5MCwzMCwuMDgpOyBtYXJnaW46IDAgMCAxOHB4OyB9CiNwbXMtdXBkYXRlLXBheW1lbnQtbWV0aG9kLWZvcm0gaDMsICNwbXMtdXBkYXRlLXBheW1lbnQtbWV0aG9kLWZvcm0gaDQgeyBmb250LWZhbWlseTogR2VvcmdpYSwgc2VyaWY7IGZvbnQtc2l6ZTogMjJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICMyQTJBMkE7IG1hcmdpbjogMCAwIDE0cHg7IH0KI3Btcy11cGRhdGUtcGF5bWVudC1tZXRob2QtZm9ybSAjcG1zLXN0cmlwZS1wYXltZW50LWVsZW1lbnRzIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDAgIWltcG9ydGFudDsgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IGJvcmRlcjogMCAhaW1wb3J0YW50OyBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH0KI3Btcy11cGRhdGUtcGF5bWVudC1tZXRob2QtZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF0sICNwbXMtY2FuY2VsLXN1YnNjcmlwdGlvbi1mb3JtIGlucHV0W3R5cGU9c3VibWl0XSwgI3Btcy1hYmFuZG9uLXN1YnNjcmlwdGlvbi1mb3JtIGlucHV0W3R5cGU9c3VibWl0XSwgI3Btcy11cGdyYWRlLXN1YnNjcmlwdGlvbi1mb3JtIGlucHV0W3R5cGU9c3VibWl0XSB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTdweDsgZm9udC13ZWlnaHQ6IDgwMDsgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiAxNnB4OyBwYWRkaW5nOiAxNnB4IDIwcHg7IG1hcmdpbjogMCAwIDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDsgfQojcG1zLXVwZGF0ZS1wYXltZW50LW1ldGhvZC1mb3JtIGlucHV0W3R5cGU9c3VibWl0XSwgI3Btcy1jYW5jZWwtc3Vic2NyaXB0aW9uLWZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLCAjcG1zLWFiYW5kb24tc3Vic2NyaXB0aW9uLWZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLCAjcG1zLXVwZ3JhZGUtc3Vic2NyaXB0aW9uLWZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLCAjcG1zLXVwZGF0ZS1wYXltZW50LW1ldGhvZC1mb3JtIGJ1dHRvbiwgI3Btcy1jYW5jZWwtc3Vic2NyaXB0aW9uLWZvcm0gYnV0dG9uIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0M2OEYzRSwgI0E4NzIyQSkgIWltcG9ydGFudDsgY29sb3I6ICNmZmYgIWltcG9ydGFudDsgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDE1MCwxMTAsNDAsLjI1KSAhaW1wb3J0YW50OyBib3JkZXI6IDAgIWltcG9ydGFudDsgfQojcG1zLXVwZGF0ZS1wYXltZW50LW1ldGhvZC1mb3JtIGlucHV0W25hbWU9cG1zX3JlZGlyZWN0X2JhY2tdLCAjcG1zLWNhbmNlbC1zdWJzY3JpcHRpb24tZm9ybSBpbnB1dFtuYW1lPXBtc19yZWRpcmVjdF9iYWNrXSwgI3Btcy1hYmFuZG9uLXN1YnNjcmlwdGlvbi1mb3JtIGlucHV0W25hbWU9cG1zX3JlZGlyZWN0X2JhY2tdLCAjcG1zLXVwZ3JhZGUtc3Vic2NyaXB0aW9uLWZvcm0gaW5wdXRbbmFtZT1wbXNfcmVkaXJlY3RfYmFja10geyBiYWNrZ3JvdW5kOiAjRkJGNkVBICFpbXBvcnRhbnQ7IGNvbG9yOiAjNmI1ZDQzICFpbXBvcnRhbnQ7IGJvcmRlcjogMS41cHggc29saWQgI0UzRDVCOCAhaW1wb3J0YW50OyBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KI3Btcy11cGRhdGUtcGF5bWVudC1tZXRob2QtZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSguOTg1KTsgfQoKLyog4pSA4pSAIE15IEFjY291bnQsIGV2ZXJ5IHRhYjogdGhlIGxvZ2luIHBhZ2UncyBsb29rIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqLwovKiB0YWIgcGlsbHMg4oCUIFBNUyBtYXJrdXAgaXMgdWwucG1zLWFjY291bnQtbmF2aWdhdGlvbiA+IGxpLnBtcy1hY2NvdW50LW5hdmlnYXRpb24tbGluayA+IGEgKi8KLnBtcy1hY2NvdW50LW5hdmlnYXRpb24geyBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWF4LXdpZHRoOiA3NjBweDsgbWFyZ2luOiAwIGF1dG8gMjZweCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IGxpc3Qtc3R5bGU6IG5vbmU7IH0KLnBtcy1hY2NvdW50LW5hdmlnYXRpb24gbGkucG1zLWFjY291bnQtbmF2aWdhdGlvbi1saW5rIHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMTQwcHg7IG1hcmdpbjogMCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDsgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfQoucG1zLWFjY291bnQtbmF2aWdhdGlvbiBsaS5wbXMtYWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsgYSB7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiAjRkJGNkVBICFpbXBvcnRhbnQ7IGJvcmRlcjogMnB4IHNvbGlkICNFM0Q1QjggIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czogOTk5cHggIWltcG9ydGFudDsgcGFkZGluZzogMTNweCAyMnB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMTUuNXB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogI0EwNkYyNCAhaW1wb3J0YW50OyBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH0KLnBtcy1hY2NvdW50LW5hdmlnYXRpb24gbGkucG1zLWFjY291bnQtbmF2aWdhdGlvbi1saW5rLS1hY3RpdmUgYSwgLnBtcy1hY2NvdW50LW5hdmlnYXRpb24gbGkgYS5wbXMtYWNjb3VudC1uYXZpZ2F0aW9uLWxpbmstLWFjdGl2ZSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNDNjhGM0UsICNBMDZGMjQpICFpbXBvcnRhbnQ7IGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgYm94LXNoYWRvdzogMCA4cHggMjZweCByZ2JhKDE2NiwgMTExLCAzNiwgMC4zMCkgIWltcG9ydGFudDsgfQoucG1zLWFjY291bnQtbmF2aWdhdGlvbiBsaS5wbXMtYWNjb3VudC1uYXZpZ2F0aW9uLWxpbmstLWxvZ291dCBhLCAucG1zLWFjY291bnQtbmF2aWdhdGlvbiBsaSBhLnBtcy1hY2NvdW50LW5hdmlnYXRpb24tbGluay0tbG9nb3V0IHsgY29sb3I6ICM2YjVkNDMgIWltcG9ydGFudDsgfQovKiBlZGl0IHByb2ZpbGU6IGEgd2hpdGUgY2FyZCwgY3JlYW0gZmllbGRzLCBvbmUgZ29sZCBidXR0b24gKi8KI3Btc19lZGl0LXByb2ZpbGUtZm9ybSB7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlcjogMXB4IHNvbGlkICNFM0Q1Qjg7IGJvcmRlci1yYWRpdXM6IDIwcHg7IHBhZGRpbmc6IDMwcHggMjZweCAyNnB4OyBtYXgtd2lkdGg6IDU2MHB4OyBtYXJnaW46IDAgYXV0bzsgYm94LXNoYWRvdzogMCAxNHB4IDQwcHggcmdiYSg4MCwgNjAsIDIwLCAwLjEwKTsgfQojcG1zX2VkaXQtcHJvZmlsZS1mb3JtIHVsLnBtcy1mb3JtLWZpZWxkcy13cmFwcGVyIHsgbGlzdC1zdHlsZTogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiNwbXNfZWRpdC1wcm9maWxlLWZvcm0gbGkucG1zLWZpZWxkIHsgbWFyZ2luOiAwIDAgMThweDsgcGFkZGluZzogMDsgfQojcG1zX2VkaXQtcHJvZmlsZS1mb3JtIGxhYmVsIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMyQTJBMkE7IG1hcmdpbi1ib3R0b206IDZweDsgfQojcG1zX2VkaXQtcHJvZmlsZS1mb3JtIGlucHV0W3R5cGU9dGV4dF0sICNwbXNfZWRpdC1wcm9maWxlLWZvcm0gaW5wdXRbdHlwZT1lbWFpbF0sICNwbXNfZWRpdC1wcm9maWxlLWZvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF0geyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYmFja2dyb3VuZDogI0ZERkJGNjsgYm9yZGVyOiAxcHggc29saWQgI0UzRDVCODsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMTRweDsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogaW5oZXJpdDsgY29sb3I6ICMyQTJBMkE7IGJveC1zaGFkb3c6IG5vbmU7IH0KI3Btc19lZGl0LXByb2ZpbGUtZm9ybSBpbnB1dDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogI0M2OEYzRTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTk4LCAxNDMsIDYyLCAwLjE4KTsgYmFja2dyb3VuZDogI2ZmZjsgfQojcG1zX2VkaXQtcHJvZmlsZS1mb3JtIGlucHV0W3JlYWRvbmx5XSwgI3Btc19lZGl0LXByb2ZpbGUtZm9ybSBpbnB1dFtkaXNhYmxlZF0geyBiYWNrZ3JvdW5kOiAjRjNFRERGOyBjb2xvcjogIzg1N2E2MzsgfQojcG1zX2VkaXQtcHJvZmlsZS1mb3JtIGxpLnBtcy1maWVsZDpoYXMoI3Btcy1kZWxldGUtYWNjb3VudCkgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDlweDsgbWFyZ2luLXRvcDogNHB4OyB9CiNwbXNfZWRpdC1wcm9maWxlLWZvcm0gbGkucG1zLWZpZWxkOmhhcygjcG1zLWRlbGV0ZS1hY2NvdW50KSBsYWJlbCB7IG1hcmdpbjogMDsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAxMy41cHg7IGNvbG9yOiAjNmI1ZDQzOyB9CiNwbXNfZWRpdC1wcm9maWxlLWZvcm0gI3Btcy1kZWxldGUtYWNjb3VudCB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IGFjY2VudC1jb2xvcjogI0M2OEYzRTsgfQojcG1zX2VkaXQtcHJvZmlsZS1mb3JtIGlucHV0W3R5cGU9c3VibWl0XSwgI3Btc19lZGl0LXByb2ZpbGUtZm9ybSBidXR0b25bdHlwZT1zdWJtaXRdIHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGhlaWdodDogYXV0byAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7IGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250LXNpemU6IDE3cHg7IGZvbnQtd2VpZ2h0OiA4MDA7IGJvcmRlcjogMCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOiAxNnB4OyBwYWRkaW5nOiAxNnB4IDIwcHg7IG1hcmdpbjogNnB4IDAgMDsgY3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjQzY4RjNFLCAjQTg3MjJBKSAhaW1wb3J0YW50OyBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMTUwLDExMCw0MCwuMjUpICFpbXBvcnRhbnQ7IH0KI3Btc19lZGl0LXByb2ZpbGUtZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSguOTg1KTsgfQovKiBzdWJzY3JpcHRpb25zIGxpc3QgKyBkZXRhaWxzICovCi5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb25zLWhlYWRlciwgLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbiB7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlcjogMXB4IHNvbGlkICNFM0Q1Qjg7IGJvcmRlci1yYWRpdXM6IDE2cHg7IHBhZGRpbmc6IDE2cHggMjBweCAhaW1wb3J0YW50OyBtYXJnaW46IDAgMCAxMHB4ICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSg4MCw2MCwyMCwuMDYpOyB9Ci5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb25zLWhlYWRlciB7IGJhY2tncm91bmQ6ICNGQkY2RUE7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjNmI1ZDQzOyBmb250LXNpemU6IDEzcHg7IGxldHRlci1zcGFjaW5nOiAuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBib3gtc2hhZG93OiBub25lOyB9Ci5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb24gYSB7IGNvbG9yOiAjQTA2RjI0OyBmb250LXdlaWdodDogNzAwOyB9CnRhYmxlLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1kZXRhaWxzLXRhYmxlLCB0YWJsZSNwbXMtcGF5bWVudC1oaXN0b3J5IHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IGJvcmRlci1zcGFjaW5nOiAwOyBiYWNrZ3JvdW5kOiAjRkZGREY4OyBib3JkZXI6IDEuNXB4IHNvbGlkICNFM0Q1Qjg7IGJvcmRlci10b3A6IDRweCBzb2xpZCAjQzY4RjNFOyBib3JkZXItcmFkaXVzOiAxOHB4OyBvdmVyZmxvdzogaGlkZGVuOyBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDEyMCw5MCwzMCwuMDgpOyBtYXJnaW46IDAgMCAxOHB4OyB9CnRhYmxlLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1kZXRhaWxzLXRhYmxlIHRkLCB0YWJsZSNwbXMtcGF5bWVudC1oaXN0b3J5IHRkLCB0YWJsZSNwbXMtcGF5bWVudC1oaXN0b3J5IHRoIHsgcGFkZGluZzogMTRweCAxOHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VGRTZEMzsgZm9udC1zaXplOiAxNS41cHg7IGNvbG9yOiAjMkEyQTJBOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9CnRhYmxlI3Btcy1wYXltZW50LWhpc3RvcnkgdGggeyBiYWNrZ3JvdW5kOiAjRkJGNkVBOyBmb250LXdlaWdodDogODAwOyBjb2xvcjogI0EwNkYyNDsgZm9udC1zaXplOiAxMnB4OyBsZXR0ZXItc3BhY2luZzogMS4ycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRleHQtYWxpZ246IGxlZnQ7IH0KdGFibGUjcG1zLXBheW1lbnQtaGlzdG9yeSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQgeyBiYWNrZ3JvdW5kOiAjRkRGQUYyOyB9CnRhYmxlLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1kZXRhaWxzLXRhYmxlIHRkOmZpcnN0LWNoaWxkIHsgYmFja2dyb3VuZDogI0ZCRjZFQTsgY29sb3I6ICNBMDZGMjQ7IGZvbnQtd2VpZ2h0OiA4MDA7IGZvbnQtc2l6ZTogMTJweDsgbGV0dGVyLXNwYWNpbmc6IDEuMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB3aWR0aDogMzQlOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRUZFNkQzOyB9CnRhYmxlLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1kZXRhaWxzLXRhYmxlIHRyLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1kZXRhaWxzLXRhYmxlX19wbGFuIHRkOmxhc3QtY2hpbGQgeyBmb250LWZhbWlseTogR2VvcmdpYSwgc2VyaWY7IGZvbnQtc2l6ZTogMjBweDsgZm9udC13ZWlnaHQ6IDgwMDsgfQp0YWJsZS5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb24tZGV0YWlscy10YWJsZSB0ZFtjbGFzc149InN0YXR1cy0iXSwgdGFibGUjcG1zLXBheW1lbnQtaGlzdG9yeSB0ZFtjbGFzcyo9InN0YXR1cy0iXSB7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KdGFibGUucG1zLWFjY291bnQtc3Vic2NyaXB0aW9uLWRldGFpbHMtdGFibGUgdGQuc3RhdHVzLWFjdGl2ZTo6YmVmb3JlLCB0YWJsZSNwbXMtcGF5bWVudC1oaXN0b3J5IHRkLnN0YXR1cy1jb21wbGV0ZWQ6OmJlZm9yZSB7IGNvbnRlbnQ6ICLil48gIjsgY29sb3I6ICMyRjdENEY7IH0KdGFibGUucG1zLWFjY291bnQtc3Vic2NyaXB0aW9uLWRldGFpbHMtdGFibGUgdGQuc3RhdHVzLWNhbmNlbGVkOjpiZWZvcmUsIHRhYmxlLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1kZXRhaWxzLXRhYmxlIHRkLnN0YXR1cy1leHBpcmVkOjpiZWZvcmUsIHRhYmxlI3Btcy1wYXltZW50LWhpc3RvcnkgdGQuc3RhdHVzLWZhaWxlZDo6YmVmb3JlIHsgY29udGVudDogIuKXjyAiOyBjb2xvcjogI0IzNDIzRjsgfQp0YWJsZS5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb24tZGV0YWlscy10YWJsZSB0ZC5zdGF0dXMtcGVuZGluZzo6YmVmb3JlLCB0YWJsZSNwbXMtcGF5bWVudC1oaXN0b3J5IHRkLnN0YXR1cy1wZW5kaW5nOjpiZWZvcmUgeyBjb250ZW50OiAi4pePICI7IGNvbG9yOiAjQzY4RjNFOyB9CnRhYmxlLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1kZXRhaWxzLXRhYmxlIHRyOmxhc3QtY2hpbGQgdGQsIHRhYmxlI3Btcy1wYXltZW50LWhpc3RvcnkgdHI6bGFzdC1jaGlsZCB0ZCB7IGJvcmRlci1ib3R0b206IDA7IH0KLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1hY3Rpb24tbGluayB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luOiA0cHggOHB4IDRweCAwOyBwYWRkaW5nOiA4cHggMTRweDsgYm9yZGVyLXJhZGl1czogOTk5cHg7IGJvcmRlcjogMS41cHggc29saWQgI0UzRDVCODsgYmFja2dyb3VuZDogI0ZCRjZFQTsgY29sb3I6ICNBMDZGMjQgIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxMy41cHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9Ci5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb24tYWN0aW9uLWxpbmtfX3VwZGF0ZS1wYXltZW50LW1ldGhvZCwgLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbi1hY3Rpb24tbGlua19fcmVuZXcgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjQzY4RjNFLCAjQTg3MjJBKTsgY29sb3I6ICNmZmYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfQoucG1zLWFjY291bnQtc3Vic2NyaXB0aW9uLWFjdGlvbi1saW5rX19jYW5jZWwsIC5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb24tYWN0aW9uLWxpbmtfX2FiYW5kb24geyBjb2xvcjogIzg1N2E2MyAhaW1wb3J0YW50OyB9Ci5wbXMtbm8tcGF5bWVudHMsIC5wbXMtcmVnaXN0ZXItcGFnZS1saW5rIHsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzZiNWQ0MzsgfQovKiB0aGUgcGx1Z2luJ3MgaW5saW5lIG5vdGljZXMgKi8KLnBtcy1hY2NvdW50LXN1YnNjcmlwdGlvbnMtbWVzc2FnZSwgLnBtcy1ub3RpY2UsIC5wbXMtZm9ybSAucG1zLW5vdGljZSB7IGJhY2tncm91bmQ6ICNGQkY2RUE7IGJvcmRlcjogMXB4IHNvbGlkICNFM0Q1Qjg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgI0M2OEYzRTsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMTJweCAxNHB4OyB9CgovKiDilIDilIAgdGhlIGNoZWNrb3V0IGZvcm0gQ1NTLCB2ZXJiYXRpbSwgc28gdGhlIENoYW5nZS1wbGFuIGZvcm0gKGFsc28gZm9ybS5wbXMtZm9ybSkgbWF0Y2hlcyB0aGUgY2hlY2tvdXQg4pSA4pSAICovCi5zcGotYm94IHsgbWF4LXdpZHRoOiA2NDBweDsgbWFyZ2luOiAwIGF1dG8gMjZweDsgY29sb3I6ICMyQTJBMkE7IH0KLnNwai1jaGlwcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiA4cHg7IG1hcmdpbjogMTRweCAwIDRweDsgfQouc3BqLWNoaXAgeyBiYWNrZ3JvdW5kOiAjRkJGNkVBOyBib3JkZXI6IDFweCBzb2xpZCAjRTNENUI4OyBib3JkZXItcmFkaXVzOiA5OTlweDsgcGFkZGluZzogN3B4IDE0cHg7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogIzZiNWQ0MzsgfQouc3BqLXN0ZXBzIHsgYmFja2dyb3VuZDogI0ZCRjZFQTsgYm9yZGVyOiAxcHggc29saWQgI0UzRDVCODsgYm9yZGVyLXJhZGl1czogMTRweDsgcGFkZGluZzogMTZweCAxOHB4OyBtYXJnaW4tdG9wOiAxNHB4OyBmb250LXNpemU6IDE0LjVweDsgbGluZS1oZWlnaHQ6IDEuNzsgfQouc3BqLW5vdGUgeyBtYXgtd2lkdGg6IDY0MHB4OyBtYXJnaW46IDI2cHggYXV0byAwOyB9Ci5zcGotZyB7IGJhY2tncm91bmQ6IHJnYmEoMTk4LCAxNDMsIDYyLCAwLjEwKTsgYm9yZGVyOiAxcHggc29saWQgI0UzRDVCODsgYm9yZGVyLXJhZGl1czogMTRweDsgcGFkZGluZzogMTZweCAxOHB4OyBmb250LXNpemU6IDE0LjVweDsgbGluZS1oZWlnaHQ6IDEuNjU7IH0KLnNwai1xdWlldCB7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogIzg1N2E2MzsgbWFyZ2luLXRvcDogMTBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CgovKiAtLS0tIFBhaWQgTWVtYmVyIFN1YnNjcmlwdGlvbnMgZm9ybSwgcmVzdHlsZWQgdG8gdGhlIHNpdGUgLS0tLSAqLwpmb3JtLnBtcy1mb3JtIHsgYmFja2dyb3VuZDogI2ZmZjsgYm9yZGVyOiAxcHggc29saWQgI0UzRDVCODsgYm9yZGVyLXJhZGl1czogMjBweDsgcGFkZGluZzogMjZweCAyMnB4OyBib3gtc2hhZG93OiAwIDE0cHggNDBweCByZ2JhKDgwLCA2MCwgMjAsIDAuMDkpOyB9Ci5rcS1zZWN0IHsgZm9udC1mYW1pbHk6IENvcm1vcmFudCBHYXJhbW9uZCwgc2VyaWY7IGZvbnQtc2l6ZTogMS40cmVtOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogIzJBMkEyQTsgbWFyZ2luOiAyNnB4IDAgMTRweDsgcGFkZGluZy1ib3R0b206IDhweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMUU3Q0Y7IH0KLmtxLXNlY3Q6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9Ci5rcS1kdWUgeyBiYWNrZ3JvdW5kOiAjRUFGM0U1OyBib3JkZXI6IDFweCBzb2xpZCAjQzNEREI4OyBib3JkZXItcmFkaXVzOiAxMnB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMyRjVEMkY7IG1hcmdpbjogMCAwIDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IH0KZm9ybS5wbXMtZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIgeyBjb2xvcjogI0JGQjQ5QTsgfQoucG1zLXBheWdhdGVzLWhvbGRlciAucG1zLWZpZWxkLXR5cGUtaGVhZGluZyB7IGRpc3BsYXk6IG5vbmU7IH0KLnBtcy1mb3JtIHsgbWF4LXdpZHRoOiA2NDBweDsgbWFyZ2luOiAwIGF1dG87IH0KLnBtcy1mb3JtIHVsLCAucG1zLWZvcm0gbGkgeyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KLnBtcy1mb3JtIGxpIHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQoucG1zLWZvcm0gbGFiZWwgeyBkaXNwbGF5OiBibG9jazsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tYm90dG9tOiA2cHg7IGNvbG9yOiAjMkEyQTJBOyB9Ci5wbXMtZm9ybSBpbnB1dFt0eXBlPXRleHRdLCAucG1zLWZvcm0gaW5wdXRbdHlwZT1lbWFpbF0sIC5wbXMtZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7CiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgYmFja2dyb3VuZDogI0ZERkJGNiAhaW1wb3J0YW50OyBib3JkZXI6IDFweCBzb2xpZCAjRTNENUI4ICFpbXBvcnRhbnQ7CiAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50OyBwYWRkaW5nOiAxM3B4IDE0cHggIWltcG9ydGFudDsgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7CiAgY29sb3I6ICMyQTJBMkEgIWltcG9ydGFudDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7Cn0KLnBtcy1mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsIC5wbXMtZm9ybSBpbnB1dFt0eXBlPWVtYWlsXTpmb2N1cywgLnBtcy1mb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdOmZvY3VzIHsKICBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6ICNDNjhGM0U7IGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDE5OCwgMTQzLCA2MiwgMC4xOCk7Cn0KLnBtcy1maWVsZC1zdWJzY3JpcHRpb25zIHsKICBiYWNrZ3JvdW5kOiAjRkJGNkVBOyBib3JkZXI6IDFweCBzb2xpZCAjRTNENUI4OyBib3JkZXItcmFkaXVzOiAxNHB4OwogIHBhZGRpbmc6IDE4cHggMjBweDsgbWFyZ2luOiA0cHggMCAxOHB4Owp9Ci5wbXMtc3Vic2NyaXB0aW9uLXBsYW4tbmFtZSB7IGZvbnQtZmFtaWx5OiBDb3Jtb3JhbnQgR2FyYW1vbmQsIHNlcmlmOyBmb250LXNpemU6IDEuNTVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IH0KLnBtcy1zdWJzY3JpcHRpb24tcGxhbi1wcmljZSB7IGZvbnQtc2l6ZTogMS4wNXJlbTsgY29sb3I6ICNBMDZGMjQ7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KLnBtcy1zdWJzY3JpcHRpb24tcGxhbi1kZXNjcmlwdGlvbiB7IG1hcmdpbi10b3A6IDhweDsgY29sb3I6ICM0YTQ0Mzg7IGZvbnQtc2l6ZTogMTQuNXB4OyBsaW5lLWhlaWdodDogMS41NTsgZm9udC1zdHlsZTogbm9ybWFsOyB9Ci5wbXMtcGF5Z2F0ZXMtaG9sZGVyIHsKICBiYWNrZ3JvdW5kOiAjRkJGNkVBOyBib3JkZXI6IDFweCBzb2xpZCAjRTNENUI4OyBib3JkZXItdG9wOiA0cHggc29saWQgI0M2OEYzRTsKICBib3JkZXItcmFkaXVzOiAxNnB4OyBwYWRkaW5nOiAyNHB4IDI0cHggMjZweDsgbWFyZ2luLXRvcDogMjBweDsKICBib3gtc2hhZG93OiAwIDEycHggMzRweCByZ2JhKDgwLCA2MCwgMjAsIDAuMTApOwp9Ci5wbXMtcGF5Z2F0ZXMtaG9sZGVyIC5wbXMtZmllbGQtdHlwZS1oZWFkaW5nIHsgbWFyZ2luLWJvdHRvbTogMTRweDsgfQoucG1zLXBheWdhdGVzLWhvbGRlciAucG1zLWZpZWxkLXR5cGUtaGVhZGluZywgLnBtcy1wYXlnYXRlcy1ob2xkZXIgLnBtcy1maWVsZC10eXBlLWhlYWRpbmcgaDEsCi5wbXMtcGF5Z2F0ZXMtaG9sZGVyIC5wbXMtZmllbGQtdHlwZS1oZWFkaW5nIGgyLCAucG1zLXBheWdhdGVzLWhvbGRlciAucG1zLWZpZWxkLXR5cGUtaGVhZGluZyBoMywKLnBtcy1wYXlnYXRlcy1ob2xkZXIgLnBtcy1maWVsZC10eXBlLWhlYWRpbmcgaDQgewogIGZvbnQtZmFtaWx5OiBDb3Jtb3JhbnQgR2FyYW1vbmQsIHNlcmlmOyBmb250LXNpemU6IDEuNDVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjMkEyQTJBOyBtYXJnaW46IDA7Cn0KLnBtcy1wYXlnYXRlcy1ob2xkZXI6YmVmb3JlIHsKICBjb250ZW50OiBub25lOwp9Ci5TdHJpcGVFbGVtZW50IHsgbWFyZ2luOiA2cHggMCAycHg7IH0KI3Btcy1zdHJpcGUtcGF5bWVudC1lbGVtZW50cyB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDAgIWltcG9ydGFudDsgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50Owp9CmZvcm0ucG1zLWZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLCBmb3JtLnBtcy1mb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF0gewogIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6IDE4cHggIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjQzY4RjNFLCAjQTA2RjI0KSAhaW1wb3J0YW50OyBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogIGJvcmRlcjogMCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOiAxNHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDE3cHggMjJweCAhaW1wb3J0YW50OwogIGZvbnQtc2l6ZTogMS4xMnJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7IGxldHRlci1zcGFjaW5nOiAwLjNweDsgY3Vyc29yOiBwb2ludGVyOwogIGJveC1zaGFkb3c6IDAgOHB4IDI2cHggcmdiYSgxNjYsIDExMSwgMzYsIDAuMzUpICFpbXBvcnRhbnQ7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzOwogIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7Cn0KZm9ybS5wbXMtZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06aG92ZXIsIGZvcm0ucG1zLWZvcm0gYnV0dG9uW3R5cGU9c3VibWl0XTpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgfQovKiBDaGFuZ2UtcGxhbiBmb3JtOiBoZWFkaW5nLCBkaXNjb3VudCByb3csIGFuZCB0aGUgb25lIHRoaW5nIHRoYXQgc2hvdWxkIE5PVCBiZSB0aGVyZSAqLwojcG1zLXVwZ3JhZGUtc3Vic2NyaXB0aW9uLWZvcm0gLnBtcy11cGdyYWRlX19tZXNzYWdlIHsgZm9udC1mYW1pbHk6IEdlb3JnaWEsIHNlcmlmOyBmb250LXNpemU6IDIycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjMkEyQTJBOyBtYXJnaW46IDAgMCAxNHB4OyB9CiNwbXMtdXBncmFkZS1zdWJzY3JpcHRpb24tZm9ybSAucG1zLXVwZ3JhZGVfX21lc3NhZ2UgcCB7IG1hcmdpbjogMDsgfQojcG1zLXVwZ3JhZGUtc3Vic2NyaXB0aW9uLWZvcm0gaW5wdXRbbmFtZT1kaXNjb3VudF9jb2RlXSwgI3Btcy11cGdyYWRlLXN1YnNjcmlwdGlvbi1mb3JtIGlucHV0W2lkKj1kaXNjb3VudF0geyBiYWNrZ3JvdW5kOiAjRkRGQkY2OyBib3JkZXI6IDFweCBzb2xpZCAjRTNENUI4OyBib3JkZXItcmFkaXVzOiAxMnB4OyBwYWRkaW5nOiAxNHB4OyBmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9CiNwbXMtdXBncmFkZS1zdWJzY3JpcHRpb24tZm9ybSBpbnB1dFt0eXBlPWJ1dHRvbl0sICNwbXMtdXBncmFkZS1zdWJzY3JpcHRpb24tZm9ybSBidXR0b246bm90KFt0eXBlPXN1Ym1pdF0pLCAjcG1zLXVwZ3JhZGUtc3Vic2NyaXB0aW9uLWZvcm0gW2NsYXNzKj1kaXNjb3VudF0gaW5wdXRbdHlwZT1zdWJtaXRdIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0M2OEYzRSwgI0E4NzIyQSkgIWltcG9ydGFudDsgY29sb3I6ICNmZmYgIWltcG9ydGFudDsgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDsgcGFkZGluZzogMTNweCAyMnB4ICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGhlaWdodDogYXV0byAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7IGN1cnNvcjogcG9pbnRlcjsgfQojcG1zLXVwZ3JhZGUtc3Vic2NyaXB0aW9uLWZvcm0gaW5wdXRbbmFtZT1wbXNfdXBncmFkZV9zdWJzY3JpcHRpb25dIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0M2OEYzRSwgI0E4NzIyQSkgIWltcG9ydGFudDsgY29sb3I6ICNmZmYgIWltcG9ydGFudDsgfQojcG1zLXVwZ3JhZGUtc3Vic2NyaXB0aW9uLWZvcm0gaW5wdXRbbmFtZT1wbXNfcmVkaXJlY3RfYmFja10geyBiYWNrZ3JvdW5kOiAjRkJGNkVBICFpbXBvcnRhbnQ7IGNvbG9yOiAjNmI1ZDQzICFpbXBvcnRhbnQ7IGJvcmRlcjogMS41cHggc29saWQgI0UzRDVCOCAhaW1wb3J0YW50OyBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH0KLyogQSBTcGVha2luZyBQYXRoIG1lbWJlciBtdXN0IG5ldmVyIGJlIG9mZmVyZWQgVGhlIEZpcnN0IFN0cmVhbSBhcyBhICJjaGFuZ2UiLCBhbmQgdmljZSB2ZXJzYS4KICAgRWFjaCBwcm9ncmFtIGlzIGl0cyBvd24gcGF0aDsgc3dpdGNoaW5nIGlzIGEgY29udmVyc2F0aW9uIHdpdGggVG9tLCBub3QgYSBidXR0b24uICovCi5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb24tYWN0aW9uLWxpbmtfX2NoYW5nZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfQovKiAiQWJhbmRvbiIgZGVsZXRlcyB0aGUgc3Vic2NyaXB0aW9uIGZyb20gdGhlIGFjY291bnQgb24gdGhlIHNwb3QgKGFjY2VzcyBnb25lLCBub3RoaW5nIHJlZnVuZGVkKSDigJQgUE1TIHByaW50cyBpdAogICBiZXNpZGUgZXZlcnkgQ2FuY2VsLiBDYW5jZWwga2VlcHMgYWNjZXNzIHRvIHRoZSBlbmQgb2YgdGhlIHBhaWQgcGVyaW9kOyB0aGF0IGlzIHRoZSBvbmx5IGV4aXQgYSBtZW1iZXIgbmVlZHMuICovCi5wbXMtYWNjb3VudC1zdWJzY3JpcHRpb24tYWN0aW9uLWxpbmtfX2FiYW5kb24geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KPC9zdHlsZT4KPHNjcmlwdD4KKGZ1bmN0aW9uICgpIHsKICB2YXIgVkFSUyA9IHsKICAgIGNvbG9yUHJpbWFyeTogIiNDNjhGM0UiLAogICAgY29sb3JCYWNrZ3JvdW5kOiAiI0ZCRjZFQSIsCiAgICBjb2xvclRleHQ6ICIjMkEyQTJBIiwKICAgIGNvbG9yVGV4dFNlY29uZGFyeTogIiM2YjVkNDMiLAogICAgY29sb3JUZXh0UGxhY2Vob2xkZXI6ICIjQjNBODhGIiwKICAgIGNvbG9yRGFuZ2VyOiAiI0IzNDIzRiIsCiAgICBmb250RmFtaWx5OiAiR2VvcmdpYSwgc2VyaWYiLAogICAgZm9udFNpemVCYXNlOiAiMTVweCIsCiAgICBib3JkZXJSYWRpdXM6ICIxMHB4IgogIH07CiAgdmFyIFJVTEVTID0gewogICAgIi5JbnB1dCI6IHsgYmFja2dyb3VuZENvbG9yOiAiI0ZGRkZGRiIsIGJvcmRlcjogIjFweCBzb2xpZCAjRTNENUI4IiwgYm94U2hhZG93OiAibm9uZSIgfSwKICAgICIuSW5wdXQ6Zm9jdXMiOiB7IGJvcmRlcjogIjFweCBzb2xpZCAjQzY4RjNFIiwgYm94U2hhZG93OiAiMCAwIDAgM3B4IHJnYmEoMTk4LCAxNDMsIDYyLCAwLjE4KSIsIG91dGxpbmU6ICJub25lIiB9LAogICAgIi5MYWJlbCI6IHsgY29sb3I6ICIjMkEyQTJBIiwgZm9udFdlaWdodDogIjYwMCIsIGZvbnRTaXplOiAiMTRweCIgfQogIH07CiAgZnVuY3Rpb24gZm9yY2UoYXApIHsKICAgIGFwID0gYXAgfHwge307CiAgICBhcC50aGVtZSA9ICJzdHJpcGUiOwogICAgYXAudmFyaWFibGVzID0gT2JqZWN0LmFzc2lnbih7fSwgYXAudmFyaWFibGVzIHx8IHt9LCBWQVJTKTsKICAgIGFwLnJ1bGVzID0gT2JqZWN0LmFzc2lnbih7fSwgYXAucnVsZXMgfHwge30sIFJVTEVTKTsKICAgIHJldHVybiBhcDsKICB9CiAgZnVuY3Rpb24gYXBwbHkobykgewogICAgdHJ5IHsKICAgICAgaWYgKG8gJiYgdHlwZW9mIG8gPT09ICJvYmplY3QiKSB7CiAgICAgICAgby5wbXNfZWxlbWVudHNfYXBwZWFyYW5jZV9hcGkgPSBmb3JjZShvLnBtc19lbGVtZW50c19hcHBlYXJhbmNlX2FwaSk7CiAgICAgICAgd2luZG93Ll9fa3FBcENvbG9ycyA9IHRydWU7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGUpIHt9CiAgICByZXR1cm4gbzsKICB9CiAgdHJ5IHsKICAgIGlmICh3aW5kb3cucG1zKSB7IGFwcGx5KHdpbmRvdy5wbXMpOyB9CiAgICBlbHNlIHsKICAgICAgdmFyIGN1cjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgInBtcyIsIHsKICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBjdXI7IH0sCiAgICAgICAgc2V0OiBmdW5jdGlvbiAodikgeyBjdXIgPSBhcHBseSh2KTsgfQogICAgICB9KTsKICAgIH0KICB9IGNhdGNoIChlKSB7fQp9KSgpOwo8L3NjcmlwdD4=