{"id":17998,"date":"2026-10-06T14:07:57","date_gmt":"2026-10-06T06:07:57","guid":{"rendered":"https:\/\/tiffanysmandarin.com\/?p=17998"},"modified":"2026-10-07T10:12:27","modified_gmt":"2026-10-07T02:12:27","slug":"chinese-cooking-game","status":"publish","type":"post","link":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/","title":{"rendered":"Chinese cooking game"},"content":{"rendered":"\n<iframe id=\"tiffany-flashcards\" src=\"data:text\/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+Q29va2luZyBNZXRob2RzIEZsYXNoY2FyZHM8L3RpdGxlPgogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1iZy1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgICAgLS1jYXJkLWJnOiAjZmZmZmZmOwogICAgICAgICAgICAtLWJvcmRlci1jb2xvcjogI2VhZWFlYTsKICAgICAgICAgICAgLS1hY2NlbnQtYmx1ZTogIzdhOWNiNTsgLyogTW9yYW5kaSBCbHVlICovCiAgICAgICAgICAgIC0tYWNjZW50LWhvdmVyOiAjNjU4NDlkOwogICAgICAgICAgICAtLXRleHQtbWFpbjogIzMzMzMzMzsKICAgICAgICAgICAgLS10ZXh0LXN1YjogIzc3Nzc3NzsKICAgICAgICAgICAgLS1kYW5nZXI6ICNkOTUzNGY7CiAgICAgICAgICAgIC0tc3VjY2VzczogIzNjNzYzZDsKICAgICAgICB9CgogICAgICAgIGh0bWwgewogICAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKICAgICAgICB9CgogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sICdQaW5nRmFuZyBUQycsICdNaWNyb3NvZnQgSmhlbmdIZWknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvcik7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOwogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMTVweCA2MHB4IDE1cHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubWFpbi13cmFwcGVyIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIG1heC13aWR0aDogMTA1MHB4OwogICAgICAgIH0KCiAgICAgICAgLyogVG9wIEdsb2JhbCBUb29sYmFyICovCiAgICAgICAgI2dsb2JhbC1oZWFkZXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4OwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICB9CgogICAgICAgIC5uYXYtdGl0bGUgewogICAgICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpOwogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1hY3Rpb25zIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQoKICAgICAgICAuYnRuLXByaW1hcnkgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWJnKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYWNjZW50LWJsdWUpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpOwogICAgICAgICAgICBwYWRkaW5nOiA2cHggMTZweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICB9CgogICAgICAgIC5idG4tcHJpbWFyeTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC1ibHVlKTsKICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgICAgfQoKICAgICAgICAvKiBTZWN0aW9uIEhlYWRlciAqLwogICAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtYmx1ZSk7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICB9CgogICAgICAgIC8qID09PT09PT09PT09PT09PT09IEZsYXNoY2FyZCBTZWN0aW9uICgzRCBGbGlwKSA9PT09PT09PT09PT09PT09PSAqLwogICAgICAgICNmbGFzaGNhcmQtZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE1NXB4LCAxZnIpKTsKICAgICAgICAgICAgZ2FwOiAxOHB4OwogICAgICAgIH0KCiAgICAgICAgLmZsYXNoY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBwZXJzcGVjdGl2ZTogMTAwMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDE4NXB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmNhcmQtaW5uZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMC4yLCAwLjIsIDEpOwogICAgICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOwogICAgICAgIH0KCiAgICAgICAgLmZsYXNoY2FyZC5pcy1mbGlwcGVkIC5jYXJkLWlubmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7CiAgICAgICAgfQoKICAgICAgICAuY2FyZC1mcm9udCwgLmNhcmQtYmFjayB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1iZyk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMDQpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggOHB4IDEwcHggOHB4OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYm94LXNoYWRvdyAwLjJzOwogICAgICAgIH0KCiAgICAgICAgLmNhcmQtZnJvbnQ6aG92ZXIsIC5jYXJkLWJhY2s6aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1ibHVlKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA2cHggMTRweCByZ2JhKDEyMiwxNTYsMTgxLDAuMik7CiAgICAgICAgfQoKICAgICAgICAuY2FyZC1iYWRnZSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiA3cHg7CiAgICAgICAgICAgIGxlZnQ6IDdweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIH0KCiAgICAgICAgLyogQXVkaW8gYnV0dG9uICovCiAgICAgICAgLmF1ZGlvLWJ0biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiA3cHg7CiAgICAgICAgICAgIHJpZ2h0OiA3cHg7CiAgICAgICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYWNjZW50LWJsdWUpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIH0KCiAgICAgICAgLmF1ZGlvLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC1ibHVlKTsKICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7CiAgICAgICAgfQoKICAgICAgICAuYXVkaW8tYnRuLWlubGluZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpOwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDRweDsKICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzOwogICAgICAgIH0KCiAgICAgICAgLmF1ZGlvLWJ0bi1pbmxpbmU6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpOwogICAgICAgIH0KCiAgICAgICAgLnRleHQtZnJvbnQtd3JhcHBlciB7CiAgICAgICAgICAgIG1hcmdpbjogYXV0byAwOwogICAgICAgIH0KCiAgICAgICAgLmhhbnppLWJpZyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNDJweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOwogICAgICAgIH0KCiAgICAgICAgLmZsaXAtaGludCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICAgICAgY29sb3I6ICNhYWFhYWE7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB9CgogICAgICAgIC5jYXJkLWJhY2sgewogICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmJmYzsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDhweCA4cHggOHB4OwogICAgICAgIH0KCiAgICAgICAgLnRyYW5zLWxpc3QgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiA1cHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICB9CgogICAgICAgIC50cmFucy1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7CiAgICAgICAgfQoKICAgICAgICAubGFuZy1waWxsIHsKICAgICAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRmMmY3OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYWNjZW50LWJsdWUpOwogICAgICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRyYW5zLXRleHQgewogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tYWluKTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgfQoKICAgICAgICAuYmFjay1zdWIgewogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LXN1Yik7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDRweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC8qIFByaW50IE9wdGltaXphdGlvbiAqLwogICAgICAgIEBtZWRpYSBwcmludCB7CiAgICAgICAgICAgIGJvZHkgeyBiYWNrZ3JvdW5kOiB3aGl0ZTsgcGFkZGluZzogMDsgfQogICAgICAgICAgICAjZ2xvYmFsLWhlYWRlciwgLmhlYWRlci1hY3Rpb25zIHsgZGlzcGxheTogbm9uZTsgfQogICAgICAgICAgICAuZmxhc2hjYXJkIHsgYnJlYWstaW5zaWRlOiBhdm9pZDsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im1haW4td3JhcHBlciI+CiAgICA8IS0tIFRvcCBHbG9iYWwgVG9vbGJhciAtLT4KICAgIDxoZWFkZXIgaWQ9Imdsb2JhbC1oZWFkZXIiPgogICAgICAgIDxoMSBjbGFzcz0ibmF2LXRpdGxlIj7wn42zIENvb2tpbmcgTWV0aG9kcyBGbGFzaGNhcmRzPC9oMT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4tcHJpbWFyeSIgaWQ9ImxhbmctYnRuIiBvbmNsaWNrPSJ0b2dnbGVMYW5ndWFnZSgpIj5Td2l0Y2ggdG8gU2ltcGxpZmllZDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4tcHJpbWFyeSIgaWQ9ImZsaXAtYWxsLWJ0biIgb25jbGljaz0idG9nZ2xlRmxpcEFsbCgpIj7wn5SEIEZsaXAgQWxsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bi1wcmltYXJ5IiBvbmNsaWNrPSJ3aW5kb3cucHJpbnQoKSI+8J+WqO+4jyBQcmludCAvIFNhdmUgUERGPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICA8L2hlYWRlcj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Wb2NhYnVsYXJ5IFJldmlldyAoQ2xpY2sgdG8gRmxpcCDCtyBDbGljayDwn5SKIHRvIExpc3Rlbik8L2gyPgogICAgPC9kaXY+CgogICAgPCEtLSBGbGFzaGNhcmQgR3JpZCAtLT4KICAgIDxzZWN0aW9uIGlkPSJmbGFzaGNhcmQtZ3JpZCI+CiAgICAgICAgPCEtLSBGbGFzaGNhcmRzIGdlbmVyYXRlZCBkeW5hbWljYWxseSAtLT4KICAgIDwvc2VjdGlvbj4KPC9kaXY+Cgo8c2NyaXB0PgogICAgLy8gMjQgQ29va2luZyBNZXRob2RzIERhdGFiYXNlCiAgICBjb25zdCBjb29raW5nRGF0YWJhc2UgPSBbCiAgICAgICAgeyBpZDogMSwgdGM6ICLng6QiLCBzYzogIueDpCIsIHBpbnlpbjogImvHjm8iLCBlbjogInRvIGJha2UiLCBqYTogIueEvOOBjyIsIGtvOiAi6rW964ukIiB9LAogICAgICAgIHsgaWQ6IDIsIHRjOiAi54Gr54OkIiwgc2M6ICLngavng6QiLCBwaW55aW46ICJodceSa8eObyIsIGVuOiAidG8gZ3JpbGwiLCBqYTogIuebtOeBq+eEvOOBjSIsIGtvOiAi7KeB7ZmU6rWs7J20IiB9LAogICAgICAgIHsgaWQ6IDMsIHRjOiAi54eS54OkIiwgc2M6ICLng6fng6QiLCBwaW55aW46ICJzaMSBb2vHjm8iLCBlbjogInRvIGJhcmJlY3VlIiwgamE6ICLjg5Djg7zjg5njgq3jg6Xjg7wiLCBrbzogIuuwlOu5hO2BkCIgfSwKICAgICAgICB7IGlkOiA0LCB0YzogIueCuCIsIHNjOiAi54K4IiwgcGlueWluOiAiemjDoSIsIGVuOiAidG8gZGVlcC1mcnkiLCBqYTogIuaPmuOBkuOCiyIsIGtvOiAi7YqA6riw64ukIiB9LAogICAgICAgIHsgaWQ6IDUsIHRjOiAi54KSIiwgc2M6ICLngpIiLCBwaW55aW46ICJjaMeObyIsIGVuOiAidG8gc3Rpci1mcnkiLCBqYTogIueCkuOCgeOCiyIsIGtvOiAi67O264ukIiB9LAogICAgICAgIHsgaWQ6IDYsIHRjOiAi54WOIiwgc2M6ICLnhY4iLCBwaW55aW46ICJqacSBbiIsIGVuOiAidG8gZnJ5IiwgamE6ICLnhLzjgY8o44OV44Op44OR44OzKSIsIGtvOiAi67aA7LmY64ukIiB9LAogICAgICAgIHsgaWQ6IDcsIHRjOiAi54asIiwgc2M6ICLnhqwiLCBwaW55aW46ICLDoW8iLCBlbjogInRvIHNpbW1lciIsIGphOiAi54Wu6L6844KAIiwga286ICLtkbkg64GT7J2064ukIiB9LAogICAgICAgIHsgaWQ6IDgsIHRjOiAi54WuIiwgc2M6ICLnha4iLCBwaW55aW46ICJ6aMeUIiwgZW46ICJ0byBib2lsIiwgamE6ICLojLnjgafjgosiLCBrbzogIuuBk+ydtOuLpCIgfSwKICAgICAgICB7IGlkOiA5LCB0YzogIueHmSIsIHNjOiAi54OrIiwgcGlueWluOiAidMOgbmciLCBlbjogInRvIGJsYW5jaCIsIGphOiAi5rmv6YCa44GX44GZ44KLIiwga286ICLsgrTsp50g642w7LmY64ukIiB9LAogICAgICAgIHsgaWQ6IDEwLCB0YzogIueHiSIsIHNjOiAi54KWIiwgcGlueWluOiAiZMO5biIsIGVuOiAidG8gc3RldyIsIGphOiAi54Wu6L6844KAIiwga286ICLsobDrpqzri6QiIH0sCiAgICAgICAgeyBpZDogMTEsIHRjOiAi6JK4Iiwgc2M6ICLokrgiLCBwaW55aW46ICJ6aMSTbmciLCBlbjogInRvIHN0ZWFtIiwgamE6ICLokrjjgZkiLCBrbzogIuywjOuLpCIgfSwKICAgICAgICB7IGlkOiAxMiwgdGM6ICLmi4wiLCBzYzogIuaLjCIsIHBpbnlpbjogImLDoG4iLCBlbjogInRvIHRvc3MiLCBqYTogIuWSjOOBiOOCiyIsIGtvOiAi66y07LmY64ukIiB9LAogICAgICAgIHsgaWQ6IDEzLCB0YzogIumGgyIsIHNjOiAi6IWMIiwgcGlueWluOiAiecSBbiIsIGVuOiAidG8gbWFyaW5hdGUiLCBqYTogIua8rOOBkeOCiyIsIGtvOiAi7J6s7Jqw64ukIiB9LAogICAgICAgIHsgaWQ6IDE0LCB0YzogIuWJgSIsIHNjOiAi5YmBIiwgcGlueWluOiAiZHXDsiIsIGVuOiAidG8gY2hvcCIsIGphOiAi5Y+p44GN5YiH44KLIiwga286ICLri6Tsp4Dri6QiIH0sCiAgICAgICAgeyBpZDogMTUsIHRjOiAi5YiHIiwgc2M6ICLliIciLCBwaW55aW46ICJxacSTIiwgZW46ICJ0byBjdXQiLCBqYTogIuWIh+OCiyIsIGtvOiAi7J6Q66W064ukIiB9LAogICAgICAgIHsgaWQ6IDE2LCB0YzogIuWIh+eJhyIsIHNjOiAi5YiH54mHIiwgcGlueWluOiAicWnEk3Bpw6BuIiwgZW46ICJ0byBzbGljZSIsIGphOiAi44K544Op44Kk44K5Iiwga286ICLsjbDri6QiIH0sCiAgICAgICAgeyBpZDogMTcsIHRjOiAi5YmKIiwgc2M6ICLliYoiLCBwaW55aW46ICJ4acSBbyIsIGVuOiAidG8gcGVlbCIsIGphOiAi55qu44KS44KA44GPIiwga286ICLquY7ri6QiIH0sCiAgICAgICAgeyBpZDogMTgsIHRjOiAi5YioIiwgc2M6ICLliKgiLCBwaW55aW46ICJiw6BvIiwgZW46ICJ0byBncmF0ZSIsIGphOiAi5Y2D5YiH44KKL+OBmeOCiuOBiuOCjeOBmSIsIGtvOiAi7LGE7I2w64ukIiB9LAogICAgICAgIHsgaWQ6IDE5LCB0YzogIuaSkiIsIHNjOiAi5pKSIiwgcGlueWluOiAic8eOIiwgZW46ICJ0byBzcHJpbmtsZSIsIGphOiAi5oyv44KK5o6b44GR44KLIiwga286ICLrv4zrpqzri6QiIH0sCiAgICAgICAgeyBpZDogMjAsIHRjOiAi5YyFIiwgc2M6ICLljIUiLCBwaW55aW46ICJixIFvIiwgZW46ICJ0byB3cmFwIiwgamE6ICLljIXjgoAiLCBrbzogIuyLuOuLpCIgfSwKICAgICAgICB7IGlkOiAyMSwgdGM6ICLmiZPom4siLCBzYzogIuaJk+ibiyIsIHBpbnlpbjogImTHjiBkw6BuIiwgZW46ICJ0byBjcmFjayBhbiBlZ2ciLCBqYTogIuWNteOCkuWJsuOCiyIsIGtvOiAi64us6rGA7J2EIOq5qOuLpCIgfSwKICAgICAgICB7IGlkOiAyMiwgdGM6ICLmu7ciLCBzYzogIuWNpCIsIHBpbnlpbjogImzHlCIsIGVuOiAidG8gYnJhaXNlIGluIG1hc3RlciBzdG9jayIsIGphOiAi6Yak5rK554Wu6L6844G\/Iiwga286ICLqsITsnqXsl5Ag7KGw66as64ukIiB9LAogICAgICAgIHsgaWQ6IDIzLCB0YzogIue0heeHkiIsIHNjOiAi57qi54OnIiwgcGlueWluOiAiaMOzbmdzaMSBbyIsIGVuOiAidG8gYnJhaXNlIGluIHNveSBzYXVjZSIsIGphOiAi6Yak5rK554KS44KB54WuIiwga286ICLqsITsnqUg7KGw66a8IiB9LAogICAgICAgIHsgaWQ6IDI0LCB0YzogIua4heeHiSIsIHNjOiAi5riF54KWIiwgcGlueWluOiAiccSrbmdkw7luIiwgZW46ICJ0byBzdGV3IGluIGNsZWFyIHNvdXAiLCBqYTogIua4hea5r+eFrui+vOOBvyIsIGtvOiAi66eR7J2AIO2DleycvOuhnCDrgZPsnbTri6QiIH0KICAgIF07CgogICAgbGV0IGlzU2ltcGxpZmllZCA9IGZhbHNlOwogICAgbGV0IGlzQWxsRmxpcHBlZCA9IGZhbHNlOwogICAgbGV0IGN1cnJlbnRBdWRpbyA9IG51bGw7CgogICAgZnVuY3Rpb24gZ2V0QXVkaW9VcmwoaXRlbSkgewogICAgICAgIHJldHVybiBgaHR0cHM6Ly90aWZmYW55c21hbmRhcmluLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8xMC8ke2VuY29kZVVSSUNvbXBvbmVudChpdGVtLnRjKX0ubTRhYDsKICAgIH0KCiAgICBmdW5jdGlvbiBwbGF5QXVkaW8odXJsLCBldmVudCkgewogICAgICAgIGlmIChldmVudCkgewogICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICB9CiAgICAgICAgaWYgKGN1cnJlbnRBdWRpbykgewogICAgICAgICAgICBjdXJyZW50QXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgY3VycmVudEF1ZGlvLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICB9CiAgICAgICAgY3VycmVudEF1ZGlvID0gbmV3IEF1ZGlvKHVybCk7CiAgICAgICAgY3VycmVudEF1ZGlvLnBsYXkoKS5jYXRjaChlID0+IGNvbnNvbGUud2FybigiQXVkaW8gcGxheSBlcnJvcjoiLCBlKSk7CiAgICB9CgogICAgY29uc3QgbGFuZ0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYW5nLWJ0bicpOwogICAgY29uc3QgZmxhc2hjYXJkR3JpZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbGFzaGNhcmQtZ3JpZCcpOwogICAgY29uc3QgZmxpcEFsbEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbGlwLWFsbC1idG4nKTsKCiAgICBmdW5jdGlvbiBjaGVja0Nvb2tpZUxhbmcoKSB7CiAgICAgICAgbGV0IGNvb2tpZXMgPSBbXTsKICAgICAgICB0cnkgeyBjb29raWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7IH0gY2F0Y2ggKGUpIHt9CiAgICAgICAgZm9yIChsZXQgYyBvZiBjb29raWVzKSB7CiAgICAgICAgICAgIGlmIChjLnRyaW0oKS5zdGFydHNXaXRoKCJsYW5nPXNjIikpIHsKICAgICAgICAgICAgICAgIGlzU2ltcGxpZmllZCA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVVSVRleHRzKCkgewogICAgICAgIGxhbmdCdG4uaW5uZXJUZXh0ID0gaXNTaW1wbGlmaWVkID8gIlN3aXRjaCB0byBUcmFkaXRpb25hbCIgOiAiU3dpdGNoIHRvIFNpbXBsaWZpZWQiOwogICAgICAgIGZsaXBBbGxCdG4uaW5uZXJUZXh0ID0gaXNBbGxGbGlwcGVkID8gIvCflIQgUmVzZXQgRnJvbnQiIDogIvCflIQgRmxpcCBBbGwiOwoKICAgICAgICBjb29raW5nRGF0YWJhc2UuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgICAgY29uc3QgaGFuemlFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBoYW56aS0ke2l0ZW0uaWR9YCk7CiAgICAgICAgICAgIGNvbnN0IGJhY2tIYW56aUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGJhY2staGFuemktJHtpdGVtLmlkfWApOwogICAgICAgICAgICBpZiAoaGFuemlFbCkgaGFuemlFbC5pbm5lclRleHQgPSBpc1NpbXBsaWZpZWQgPyBpdGVtLnNjIDogaXRlbS50YzsKICAgICAgICAgICAgaWYgKGJhY2tIYW56aUVsKSBiYWNrSGFuemlFbC5pbm5lclRleHQgPSBpc1NpbXBsaWZpZWQgPyBpdGVtLnNjIDogaXRlbS50YzsKICAgICAgICB9KTsKICAgIH0KCiAgICBmdW5jdGlvbiB0b2dnbGVMYW5ndWFnZSgpIHsKICAgICAgICBpc1NpbXBsaWZpZWQgPSAhaXNTaW1wbGlmaWVkOwogICAgICAgIHRyeSB7IGRvY3VtZW50LmNvb2tpZSA9ICJsYW5nPSIgKyAoaXNTaW1wbGlmaWVkID8gInNjIiA6ICJ0YyIpICsgIjsgcGF0aD0vOyBtYXgtYWdlPTMxNTM2MDAwIjsgfSBjYXRjaCAoZSkge30KICAgICAgICB1cGRhdGVVSVRleHRzKCk7CiAgICB9CgogICAgZnVuY3Rpb24gdG9nZ2xlQ2FyZEZsaXAoY2FyZEVsKSB7CiAgICAgICAgY2FyZEVsLmNsYXNzTGlzdC50b2dnbGUoJ2lzLWZsaXBwZWQnKTsKICAgIH0KCiAgICBmdW5jdGlvbiB0b2dnbGVGbGlwQWxsKCkgewogICAgICAgIGlzQWxsRmxpcHBlZCA9ICFpc0FsbEZsaXBwZWQ7CiAgICAgICAgY29uc3QgY2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZmxhc2hjYXJkJyk7CiAgICAgICAgY2FyZHMuZm9yRWFjaChjYXJkID0+IHsKICAgICAgICAgICAgaWYgKGlzQWxsRmxpcHBlZCkgewogICAgICAgICAgICAgICAgY2FyZC5jbGFzc0xpc3QuYWRkKCdpcy1mbGlwcGVkJyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjYXJkLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWZsaXBwZWQnKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIGZsaXBBbGxCdG4uaW5uZXJUZXh0ID0gaXNBbGxGbGlwcGVkID8gIvCflIQgUmVzZXQgRnJvbnQiIDogIvCflIQgRmxpcCBBbGwiOwogICAgfQoKICAgIGZ1bmN0aW9uIHJlbmRlckZsYXNoY2FyZHMoKSB7CiAgICAgICAgZmxhc2hjYXJkR3JpZC5pbm5lckhUTUwgPSAnJzsKICAgICAgICBjb29raW5nRGF0YWJhc2UuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgICAgY29uc3QgY2FyZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICBjYXJkLmNsYXNzTmFtZSA9ICdmbGFzaGNhcmQnOwogICAgICAgICAgICBjYXJkLm9uY2xpY2sgPSAoKSA9PiB0b2dnbGVDYXJkRmxpcChjYXJkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpc1NpbXBsaWZpZWQgPyBpdGVtLnNjIDogaXRlbS50YzsKICAgICAgICAgICAgY29uc3QgYXVkaW9VcmwgPSBnZXRBdWRpb1VybChpdGVtKTsKCiAgICAgICAgICAgIGNhcmQuaW5uZXJIVE1MID0gYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBGcm9udDogUHVyZSBIYW56aSwgbm8gcGlueWluIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZnJvbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJhZGdlIj4ke2l0ZW0uaWR9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1ZGlvLWJ0biIgdGl0bGU9Ikxpc3RlbiIgb25jbGljaz0icGxheUF1ZGlvKCcke2F1ZGlvVXJsfScsIGV2ZW50KSI+8J+UijwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWZyb250LXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGFuemktYmlnIiBpZD0iaGFuemktJHtpdGVtLmlkfSI+JHtuYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxpcC1oaW50Ij7wn5GGIENsaWNrIHRvIGZsaXA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8IS0tIEJhY2s6IFRyYW5zbGF0aW9ucyArIFBpbnlpbiAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJhY2siPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJhZGdlIj4ke2l0ZW0uaWR9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1ZGlvLWJ0biIgdGl0bGU9Ikxpc3RlbiIgb25jbGljaz0icGxheUF1ZGlvKCcke2F1ZGlvVXJsfScsIGV2ZW50KSI+8J+UijwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFucy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYW5zLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYW5nLXBpbGwiPkVOPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0cmFucy10ZXh0IiB0aXRsZT0iJHtpdGVtLmVufSI+JHtpdGVtLmVufTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhbnMtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhbmctcGlsbCI+SkE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRyYW5zLXRleHQiIHRpdGxlPSIke2l0ZW0uamF9Ij4ke2l0ZW0uamF9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFucy1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFuZy1waWxsIj5LTzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idHJhbnMtdGV4dCIgdGl0bGU9IiR7aXRlbS5rb30iPiR7aXRlbS5rb308L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2stc3ViIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJiYWNrLWhhbnppLSR7aXRlbS5pZH0iPiR7bmFtZX08L3NwYW4+IMK3ICR7aXRlbS5waW55aW59CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhdWRpby1idG4taW5saW5lIiB0aXRsZT0iTGlzdGVuIiBvbmNsaWNrPSJwbGF5QXVkaW8oJyR7YXVkaW9Vcmx9JywgZXZlbnQpIj7wn5SKPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGlwLWhpbnQiPuKGuiBDbGljayB0byBmbGlwIGJhY2s8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOwogICAgICAgICAgICBmbGFzaGNhcmRHcmlkLmFwcGVuZENoaWxkKGNhcmQpOwogICAgICAgIH0pOwogICAgfQoKICAgIGNoZWNrQ29va2llTGFuZygpOwogICAgcmVuZGVyRmxhc2hjYXJkcygpOwogICAgdXBkYXRlVUlUZXh0cygpOwo8L3NjcmlwdD4KCjxzY3JpcHQ+CiAgICBmdW5jdGlvbiBwb3N0SGVpZ2h0KCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBoID0gTWF0aC5jZWlsKGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KTsKICAgICAgICAgICAgaWYgKHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7IHRpZmZhbnlGcmFtZTogJ2ZsYXNoY2FyZHMnLCBoOiBoIH0sICcqJyk7CiAgICAgICAgfSBjYXRjaCAoZSkge30KICAgIH0KICAgIHRyeSB7IG5ldyBSZXNpemVPYnNlcnZlcihwb3N0SGVpZ2h0KS5vYnNlcnZlKGRvY3VtZW50LmJvZHkpOyB9IGNhdGNoIChlKSB7fQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBwb3N0SGVpZ2h0KTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==\" style=\"width:100%;height:1000px;border:0;display:block;margin-bottom:24px\" title=\"Cooking Methods Flashcards\"><\/iframe><script>window.addEventListener(\"message\",function(e){var d=e.data;if(!d||!d.tiffanyFrame)return;var f=document.getElementById(\"tiffany-\"+d.tiffanyFrame);if(f)f.style.height=(d.h+4)+\"px\";});<\/script>\n\n\n\n<iframe id=\"tiffany-game\" src=\"data:text\/html;charset=utf-8;base64,PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InpoLUhhbnQiPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHZpZXdwb3J0LWZpdD1jb3ZlciI+Cjx0aXRsZT5UaWZmYW555ryi5a2X6aSQ5buzPC90aXRsZT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI\/ZmFtaWx5PUh1bmlubiZmYW1pbHk9TFhHVytXZW5LYWkrVEM6d2dodEA0MDA7NzAwJmZhbWlseT1GcmVkb2thOndnaHRANTAwOzYwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIExheW91dDogYSB0aWxlZCDlsI\/lkIPlupcga2l0Y2hlbiDigJQgc2lnbmJvYXJkIG9uIHRvcCwgY3VzdG9tZXIgJiBjaGVmIGZhY2luZyBlYWNoIG90aGVyLCBhIHdvb2RlbiBjb3VudGVyIG9mIHN0YXRpb25zLCBhbiBpbmdyZWRpZW50IHRyYXkgYmVsb3cuICovCjpyb290ewogIC0td2FsbDojZTJlYmU1OyAtLXRpbGU6I2QwZGRkNTsgLS1wYXBlcjojZmZmZGY2OyAtLWluazojMWUyYjI3OyAtLW11dGVkOiM1YjZjNjU7CiAgLS1qYWRlOiMxZDZiNTY7IC0tamFkZS1kZWVwOiMxMjQ2M2E7IC0tbWludDojZDllZmU0OwogIC0tbGFudGVybjojZDYzZjJjOyAtLW1hcmlnb2xkOiNmM2IyMmU7IC0tbWFyaWdvbGQtc29mdDojZmRlOWI4OwogIC0td29vZDojYzg4YjUyOyAtLXdvb2QtZGVlcDojOGQ1ODJjOyAtLXN0ZWVsOiNlZWYxZWY7CiAgLS1nb29kOiMyMzg1NWE7IC0tYmFkOiNjMjQxMmQ7CiAgLS11aToiSHVuaW5uIiwiUGluZ0ZhbmcgVEMiLCJOb3RvIFNhbnMgVEMiLCJNaWNyb3NvZnQgSmhlbmdIZWkiLHNhbnMtc2VyaWY7CiAgLS1oYW56aToiTFhHVyBXZW5LYWkgVEMiLCJLYWl0aSBUQyIsIkJpYXVLYWkiLCJERkthaS1TQiIsIlBpbmdGYW5nIFRDIixzZXJpZjsKICAtLWVuOiJGcmVkb2thIiwiQXZlbmlyIE5leHQiLCJTZWdvZSBVSSIsc2Fucy1zZXJpZjsKICBjb2xvci1zY2hlbWU6bGlnaHQ7Cn0KaHRtbCxib2R5e2hlaWdodDphdXRvfQpib2R5ewogIGJhY2tncm91bmQtY29sb3I6dmFyKC0td2FsbCk7CiAgYmFja2dyb3VuZC1pbWFnZToKICAgIGxpbmVhci1ncmFkaWVudCh2YXIoLS10aWxlKSAycHgsdHJhbnNwYXJlbnQgMnB4KSwKICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZyx2YXIoLS10aWxlKSAycHgsdHJhbnNwYXJlbnQgMnB4KTsKICBiYWNrZ3JvdW5kLXNpemU6NDRweCA0NHB4OwogIGNvbG9yOnZhcigtLWluayk7IGZvbnQtZmFtaWx5OnZhcigtLXVpKTsgZm9udC1zaXplOjE2cHg7Cn0KKntib3gtc2l6aW5nOmJvcmRlci1ib3h9CmJ1dHRvbntmb250OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcn0KYnV0dG9uOmZvY3VzLXZpc2libGV7b3V0bGluZTozcHggc29saWQgdmFyKC0tbWFyaWdvbGQpO291dGxpbmUtb2Zmc2V0OjJweH0KLmFwcHttYXgtd2lkdGg6MTEwMHB4O21hcmdpbjowIGF1dG87cGFkZGluZy1pbmxpbmU6MTZweDtwYWRkaW5nLWJsb2NrOjEycHggMjRweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMnB4fQoKLyogc2lnbmJvYXJkICovCi5zaWdue2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWphZGUtZGVlcCk7Y29sb3I6dmFyKC0tcGFwZXIpO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjEwcHggMTRweDtib3gtc2hhZG93OjAgNHB4IDAgIzBiMmUyNn0KLnNpZ24gaDEgc21hbGx7Zm9udC1mYW1pbHk6dmFyKC0tZW4pO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTVweDtsZXR0ZXItc3BhY2luZzouMDRlbTtvcGFjaXR5Oi44fQouc2lnbiBoMXttYXJnaW46MDtmb250LWZhbWlseTp2YXIoLS1oYW56aSk7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToyNnB4O2xldHRlci1zcGFjaW5nOi4wOGVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHh9Ci5sYW1we3dpZHRoOjIycHg7aGVpZ2h0OjI4cHg7Ym9yZGVyLXJhZGl1czo1MCUgNTAlIDQ1JSA0NSU7YmFja2dyb3VuZDp2YXIoLS1sYW50ZXJuKTtib3gtc2hhZG93Omluc2V0IDAgLTVweCAwIHJnYmEoMCwwLDAsLjE4KSwwIDAgMTJweCByZ2JhKDIxNCw2Myw0NCwuNik7cG9zaXRpb246cmVsYXRpdmV9Ci5sYW1wOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjdweDt0b3A6LTVweDt3aWR0aDo4cHg7aGVpZ2h0OjVweDtiYWNrZ3JvdW5kOnZhcigtLW1hcmlnb2xkKTtib3JkZXItcmFkaXVzOjJweH0KLnNpZ24gLm1ldGF7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo4cHg7bWFyZ2luLWxlZnQ6YXV0bzthbGlnbi1pdGVtczpjZW50ZXJ9Ci5jaGlwe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpO2JvcmRlci1yYWRpdXM6OTk5cHg7cGFkZGluZzo1cHggMTJweDtmb250LXNpemU6MTVweDt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfQouY2hpcCBie2NvbG9yOnZhcigtLW1hcmlnb2xkKX0KLnRvZ2dsZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zNSk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjVweCAxMnB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLXBhcGVyKX0KLnRvZ2dsZVthcmlhLXByZXNzZWQ9InRydWUiXXtiYWNrZ3JvdW5kOnZhcigtLW1hcmlnb2xkKTtib3JkZXItY29sb3I6dmFyKC0tbWFyaWdvbGQpO2NvbG9yOnZhcigtLWphZGUtZGVlcCl9CgovKiBzY2VuZSAqLwouc2NlbmV7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxMnB4fQouc2lkZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjEwcHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTMsMjQ2LC43KTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLXRpbGUpO2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjEwcHggMTJweDttaW4taGVpZ2h0OjE1MHB4O21pbi13aWR0aDowfQouc2lkZS5jaGVme2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfQouZmlne3dpZHRoOjk2cHg7ZmxleDpub25lfQouZmlnIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDphdXRvO2Rpc3BsYXk6YmxvY2t9Ci5idWJibGV7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDp2YXIoLS1wYXBlcik7Ym9yZGVyOjIuNXB4IHNvbGlkIHZhcigtLWluayk7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6MTBweCAxNHB4O2ZsZXg6MTttaW4td2lkdGg6MDttYXJnaW4tYm90dG9tOjM0cHh9Ci5idWJibGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0xMnB4O3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7YmFja2dyb3VuZDp2YXIoLS1wYXBlcik7Ym9yZGVyLXJpZ2h0OjIuNXB4IHNvbGlkIHZhcigtLWluayk7Ym9yZGVyLWJvdHRvbToyLjVweCBzb2xpZCB2YXIoLS1pbmspfQouY3VzdG9tZXIgLmJ1YmJsZTo6YWZ0ZXJ7bGVmdDoxOHB4O3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfQouY2hlZiAuYnViYmxle2JvcmRlci1zdHlsZTpkYXNoZWQ7Ym9yZGVyLXJhZGl1czoyMnB4fQouY2hlZiAuYnViYmxlOjphZnRlcntkaXNwbGF5Om5vbmV9Ci5jaGVmIC5idWJibGU6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjZweDtib3R0b206LTI2cHg7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXBhcGVyKTtib3JkZXI6Mi41cHggZGFzaGVkIHZhcigtLWluayk7Ym94LXNoYWRvdzoxNHB4IDEycHggMCAtNHB4IHZhcigtLXBhcGVyKSwxNHB4IDEycHggMCAtMS41cHggdmFyKC0taW5rKX0KLnNheXtmb250LWZhbWlseTp2YXIoLS1oYW56aSk7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MS41fQouZGlzaG5hbWV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6dmFyKC0taGFuemkpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MzBweDtjb2xvcjp2YXIoLS1sYW50ZXJuKTtsZXR0ZXItc3BhY2luZzouMDRlbTtsaW5lLWhlaWdodDoxLjN9Ci5oaW50e2ZvbnQtZmFtaWx5OnZhcigtLWhhbnppKTtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjU1O3RleHQtd3JhcDpwcmV0dHl9Ci5oaW50IHN0cm9uZ3tmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tamFkZS1kZWVwKTtiYWNrZ3JvdW5kOnZhcigtLW1pbnQpO2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6MCAzcHg7Ym9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tamFkZSl9Ci5sZWdlbmR7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLW11dGVkKTttYXJnaW4tdG9wOjZweH0ubGVnZW5kIGl7Zm9udC1zdHlsZTpub3JtYWw7Ym9yZGVyLXJhZGl1czo0cHg7cGFkZGluZzowIDVweH0ubGVnZW5kIC5sdntiYWNrZ3JvdW5kOnZhcigtLW1hcmlnb2xkLXNvZnQpO2NvbG9yOnZhcigtLWxhbnRlcm4pfS5sZWdlbmQgLmxpe2JhY2tncm91bmQ6dmFyKC0tbWludCk7Y29sb3I6dmFyKC0tamFkZS1kZWVwKX0KcnVieXtydWJ5LXBvc2l0aW9uOm92ZXJ9cnR7Zm9udC1mYW1pbHk6dmFyKC0tZW4pO2ZvbnQtc2l6ZTouNDJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2xldHRlci1zcGFjaW5nOjB9Ci5oaW50IGVte2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1sYW50ZXJuKTtiYWNrZ3JvdW5kOnZhcigtLW1hcmlnb2xkLXNvZnQpO2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6MCAzcHh9Ci5mYnttYXJnaW4tdG9wOjZweDtmb250LXNpemU6MTVweDtjb2xvcjp2YXIoLS1iYWQpO2ZvbnQtd2VpZ2h0OjcwMH0KLmZiLmluZm97Y29sb3I6dmFyKC0tamFkZSl9Ci5mYiBzbWFsbHtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjE0cHh9Ci5idWJibGUtbGFiZWx7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNwYWNpbmc6LjEyZW07Y29sb3I6dmFyKC0tbXV0ZWQpO21hcmdpbi1ib3R0b206MnB4fQouc3RhcnN7Zm9udC1zaXplOjI2cHg7bGV0dGVyLXNwYWNpbmc6NHB4O2NvbG9yOnZhcigtLW1hcmlnb2xkKTt0ZXh0LXNoYWRvdzowIDFweCAwIHZhcigtLXdvb2QtZGVlcCl9Ci5zdGFycyAub2Zme2NvbG9yOnZhcigtLXRpbGUpO3RleHQtc2hhZG93Om5vbmV9Ci5lbnRlciAuZmlne2FuaW1hdGlvbjp3YWxrIC43cyBlYXNlLW91dH0KQGtleWZyYW1lcyB3YWxre2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTYwcHgpO29wYWNpdHk6MH10b3t0cmFuc2Zvcm06bm9uZTtvcGFjaXR5OjF9fQouaGFwcHkgLmZpZ3thbmltYXRpb246aG9wIC41cyBlYXNlLWluLW91dCAyfQpAa2V5ZnJhbWVzIGhvcHs1MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwcHgpfX0KCi8qIHN0ZXBzICovCi5zdGVwc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tbXV0ZWQpfQouZG90e21pbi13aWR0aDozNHB4O2hlaWdodDozNHB4O3BhZGRpbmc6MCA2cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtib3JkZXI6MnB4IGRhc2hlZCB2YXIoLS1tdXRlZCk7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjtmb250LWZhbWlseTp2YXIoLS1oYW56aSk7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NzAwO2JhY2tncm91bmQ6dmFyKC0tcGFwZXIpfQouZG90LmRvbmV7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1nb29kKTtiYWNrZ3JvdW5kOnZhcigtLWdvb2QpO2NvbG9yOiNmZmZ9Ci5kb3Qubm93e2JvcmRlcjoyLjVweCBzb2xpZCB2YXIoLS1sYW50ZXJuKTtjb2xvcjp2YXIoLS1sYW50ZXJuKX0KLnNlbGJhcnttYXJnaW4tbGVmdDphdXRvO2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcH0KLnNlbGJhciAucGlsbCBzdmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnNlbGJhciAucGlsbHtiYWNrZ3JvdW5kOnZhcigtLXBhcGVyKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tamFkZSk7Y29sb3I6dmFyKC0tamFkZSk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjJweCAxMHB4O2ZvbnQtZmFtaWx5OnZhcigtLWhhbnppKTtmb250LXNpemU6MTZweH0KCi8qIGtpdGNoZW4gY291bnRlciAqLwouY291bnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh2YXIoLS13b29kKSwjYjk3YjQ0KTtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoxMHB4O2JveC1zaGFkb3c6aW5zZXQgMCAzcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4yNSksMCA1cHggMCB2YXIoLS13b29kLWRlZXApfQoua2l0Y2hlbntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg4LG1pbm1heCgwLDFmcikpO2dhcDo4cHh9Ci5zdGF0aW9ue3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6dmFyKC0tc3RlZWwpO2JvcmRlcjoyLjVweCBzb2xpZCB2YXIoLS13b29kLWRlZXApO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjhweCA0cHggNnB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEyc30KLnN0YXRpb246aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCl9Ci5zdGF0aW9uIHN2Zy50b29se3dpZHRoOjEwMCU7bWF4LXdpZHRoOjg0cHg7aGVpZ2h0OmF1dG99Ci5zdGF0aW9uIC5sYmx7Zm9udC1mYW1pbHk6dmFyKC0tZW4pO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTVweDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxLjE1fQouc3RhdGlvbiAub257bWluLWhlaWdodDoyNHB4O2Rpc3BsYXk6ZmxleDtnYXA6MXB4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MX0KLnN0YXRpb24gLm9uIHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQouc3RhdGlvbi5hY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWxhbnRlcm4pO2JhY2tncm91bmQ6I2ZmZn0KLmZ4e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoxMnB4fQouZnggc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NDAlfQouZnguY2hvcCBzcGFue2ZvbnQtc2l6ZTozMHB4O2FuaW1hdGlvbjpjaG9wIC4zcyBlYXNlLWluLW91dCBpbmZpbml0ZTtsZWZ0OjU4JTt0b3A6MTIlfQpAa2V5ZnJhbWVzIGNob3B7NTAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDE2cHgpIHJvdGF0ZSgtMTJkZWcpfX0KLmZ4LnJpc2Ugc3Bhbnt3aWR0aDoxNHB4O2hlaWdodDoxNHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSgxNTAsMTUwLDE1MCwuNTUpO2FuaW1hdGlvbjpyaXNlIDFzIGVhc2Utb3V0IGluZmluaXRlfQouZngucmlzZS5idWIgc3BhbntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoyLjVweCBzb2xpZCAjNmZiM2Q5O3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9Ci5meC5yaXNlLnN0ZWFtIHNwYW57YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45NSk7Ym94LXNoYWRvdzowIDAgNnB4ICNmZmY7d2lkdGg6MThweDtoZWlnaHQ6MThweH0KLmZ4LnJpc2Uub2lsIHNwYW57YmFja2dyb3VuZDpyZ2JhKDI0MywxNzgsNDYsLjc1KTt3aWR0aDoxMHB4O2hlaWdodDoxMHB4fQpAa2V5ZnJhbWVzIHJpc2V7ZnJvbXt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsMTBweCkgc2NhbGUoLjYpO29wYWNpdHk6Ljl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MHB4KSBzY2FsZSgxLjQpO29wYWNpdHk6MH19Ci5meC5oZWF0e2FuaW1hdGlvbjpoZWF0IC41cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGV9CkBrZXlmcmFtZXMgaGVhdHtmcm9te2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMCByZ2JhKDI0MywxMjAsMzAsMCl9dG97Ym94LXNoYWRvdzppbnNldCAwIDAgMzBweCA2cHggcmdiYSgyNDMsMTIwLDMwLC43KX19Ci5meC5zcGFyayBzcGFue2ZvbnQtc2l6ZToyMHB4O2FuaW1hdGlvbjp0d2lua2xlIC42cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGV9CkBrZXlmcmFtZXMgdHdpbmtsZXtmcm9te3RyYW5zZm9ybTpzY2FsZSguNSk7b3BhY2l0eTouM310b3t0cmFuc2Zvcm06c2NhbGUoMS4yKTtvcGFjaXR5OjF9fQouZnguc3RpciBzcGFue2ZvbnQtc2l6ZToyOHB4O3RvcDoxOCU7bGVmdDo0MCU7YW5pbWF0aW9uOnN0aXIgLjZzIGxpbmVhciBpbmZpbml0ZTt0cmFuc2Zvcm0tb3JpZ2luOjIwcHggMzBweH0KQGtleWZyYW1lcyBzdGlye3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19Ci5meC5wb3Agc3Bhbntmb250LXNpemU6MjhweDt0b3A6MTUlO2xlZnQ6NDIlO2FuaW1hdGlvbjpwb3BpbiAuNnMgZWFzZS1vdXR9CkBrZXlmcmFtZXMgcG9waW57ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMCl9NjAle3RyYW5zZm9ybTpzY2FsZSgxLjMpfXRve3RyYW5zZm9ybTpzY2FsZSgxKX19CgovKiB0cmF5ICovCi50cmF5aGVhZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjhweDtmbGV4LXdyYXA6d3JhcH0KLnRyYXloZWFkIGgye21hcmdpbjowO2ZvbnQtc2l6ZToxN3B4O2ZvbnQtZmFtaWx5OnZhcigtLWVuKTtjb2xvcjp2YXIoLS1qYWRlLWRlZXApO2xldHRlci1zcGFjaW5nOi4wNGVtfQoudHJheWhlYWQgcHttYXJnaW46MDtmb250LXNpemU6MTRweDtjb2xvcjp2YXIoLS1tdXRlZCl9Ci50cmF5e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCxtaW5tYXgoODhweCwxZnIpKTtnYXA6OHB4fQoudGlsZXtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOnZhcigtLXBhcGVyKTtib3JkZXI6Mi41cHggc29saWQgI2M5ZDZjZTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzo4cHggNHB4IDZweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O21pbi1oZWlnaHQ6OTZweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xMnMsYm9yZGVyLWNvbG9yIC4xMnN9Ci50aWxlIC5pY3tmb250LXNpemU6NDBweDtsaW5lLWhlaWdodDoxO2hlaWdodDo0NnB4O2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXJ9Ci50aWxlIC5pYyBzdmd7d2lkdGg6NDZweDtoZWlnaHQ6NDZweH0KLnRpbGUgLm5te2ZvbnQtZmFtaWx5OnZhcigtLWVuKTtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo2MDA7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MS4xNX0KLnRpbGUgLmNhcHtmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS1tdXRlZCk7bGV0dGVyLXNwYWNpbmc6LjFlbX0KLnRpbGUuc2Vse2JvcmRlci1jb2xvcjp2YXIoLS1qYWRlKTtiYWNrZ3JvdW5kOnZhcigtLW1pbnQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpfQoudGlsZS5zZWw6OmFmdGVye2NvbnRlbnQ6IuKckyI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjRweDtyaWdodDo2cHg7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWphZGUpO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEzcHg7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcn0KLnRpbGUud2lwe2JvcmRlci1zdHlsZTpkYXNoZWQ7Ym9yZGVyLWNvbG9yOnZhcigtLXdvb2QtZGVlcCl9Ci5nbG93e2FuaW1hdGlvbjpnbG93IC43cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGV9CkBrZXlmcmFtZXMgZ2xvd3tmcm9te2JveC1zaGFkb3c6MCAwIDAgMCByZ2JhKDI0MywxNzgsNDYsLjApfXRve2JveC1zaGFkb3c6MCAwIDAgNnB4IHJnYmEoMjQzLDE3OCw0NiwuOTUpLDAgMCAyMnB4IDZweCByZ2JhKDI0MywxNzgsNDYsLjgpfX0KLnNoYWtle2FuaW1hdGlvbjpzaGFrZSAuNHN9CkBrZXlmcmFtZXMgc2hha2V7MjAlLDYwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNnB4KX00MCUsODAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDZweCl9fQoKLyogc2VydmUgKi8KLnNlcnZlYmFye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MTZweDtiYWNrZ3JvdW5kOnZhcigtLXBhcGVyKTtib3JkZXI6Mi41cHggc29saWQgdmFyKC0taW5rKTtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoxNHB4fQouZGlzaHBob3Rve2ZsZXg6bm9uZTtkaXNwbGF5OmdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyfQouZGlzaHBob3RvIGltZ3tkaXNwbGF5OmJsb2NrO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWF4LXdpZHRoOjE1MHB4O21heC1oZWlnaHQ6MTIwcHg7b2JqZWN0LWZpdDpjb250YWluO2JvcmRlci1yYWRpdXM6MTJweH0KLmRpc2hwaG90byAucGxhdGV7ZGlzcGxheTpub25lfQouZGlzaHBob3RvLm5vaW1nIGltZ3tkaXNwbGF5Om5vbmV9Ci5kaXNocGhvdG8ubm9pbWcgLnBsYXRle2Rpc3BsYXk6YmxvY2t9Ci5wbGF0ZXtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxNTBweDtoZWlnaHQ6OTZweDtmbGV4Om5vbmV9Ci5wbGF0ZSBzdmd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfQoucGxhdGUgLml0ZW1ze3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjE0cHggMjBweCAyMnB4O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6MjZweDtsaW5lLWhlaWdodDoxfQoucGxhdGUgLml0ZW1zIHN2Z3twb3NpdGlvbjpzdGF0aWM7d2lkdGg6MjhweDtoZWlnaHQ6MjhweH0KLmJpZ3tmb250LWZhbWlseTp2YXIoLS11aSk7Zm9udC1zaXplOjIycHg7cGFkZGluZzoxMnB4IDI4cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnZhcigtLWxhbnRlcm4pO2NvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDRweCAwICM4ZjI0MTY7bGV0dGVyLXNwYWNpbmc6LjFlbX0KLmJpZzphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoM3B4KTtib3gtc2hhZG93OjAgMXB4IDAgIzhmMjQxNn0KLmJpZy5hbHR7YmFja2dyb3VuZDp2YXIoLS1qYWRlKTtib3gtc2hhZG93OjAgNHB4IDAgdmFyKC0tamFkZS1kZWVwKX0KCi8qIGFjdGlvbiBzaGVldCAqLwouc2hlZXR7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLXBhcGVyKTtib3JkZXI6M3B4IHNvbGlkIHZhcigtLWluayk7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MTRweCAxNnB4IDE2cHg7Ym94LXNoYWRvdzowIDZweCAwIHZhcigtLWphZGUtZGVlcCk7ei1pbmRleDoxfQouc2hlZXQuYW5pbXthbmltYXRpb246dXAgLjI1cyBlYXNlLW91dH0KQGtleWZyYW1lcyB1cHtmcm9te3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMnB4KTtvcGFjaXR5OjB9fQouc2hlZXQgaDN7bWFyZ2luOjAgMCAxMHB4O2ZvbnQtc2l6ZToxN3B4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0KLnNoZWV0IGgzIHNwYW57Zm9udC1mYW1pbHk6dmFyKC0taGFuemkpO2ZvbnQtc2l6ZToyMHB4fQouYWN0c3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCxtaW5tYXgoMTQwcHgsMWZyKSk7Z2FwOjEwcHh9Ci5hY3R7Zm9udC1mYW1pbHk6dmFyKC0tZW4pO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtwYWRkaW5nOjEycHggOHB4O2JvcmRlci1yYWRpdXM6MTRweDtib3JkZXI6Mi41cHggc29saWQgdmFyKC0tamFkZSk7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLWphZGUtZGVlcCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7bGluZS1oZWlnaHQ6MS4xNX0KLmFjdCBzbWFsbHtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tbXV0ZWQpfQouYWN0OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tbWludCl9Ci5hY3QucGxhY2V7Ym9yZGVyLXN0eWxlOmRhc2hlZDtib3JkZXItY29sb3I6dmFyKC0tbXV0ZWQpO2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTdweH0KLmJhY2t7YmFja2dyb3VuZDpub25lO2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1tdXRlZCk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjNweCAxMnB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLW11dGVkKX0KLmxlYXJuZWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxNHB4O3BhZGRpbmc6MTBweDtmb250LWZhbWlseTp2YXIoLS1lbik7Zm9udC1zaXplOjI2cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLWphZGUtZGVlcCl9Ci5sZWFybmVkIGJ7Zm9udC1mYW1pbHk6dmFyKC0taGFuemkpO2ZvbnQtc2l6ZTo1MnB4O2NvbG9yOnZhcigtLWxhbnRlcm4pO2FuaW1hdGlvbjpwb3BpbiAuNXMgZWFzZS1vdXR9CgovKiBzdGFydCArIHN1bW1hcnkgKi8KLmNhcmR7YmFja2dyb3VuZDp2YXIoLS1wYXBlcik7Ym9yZGVyOjNweCBzb2xpZCB2YXIoLS1pbmspO2JvcmRlci1yYWRpdXM6MjJweDtwYWRkaW5nOjI0cHggY2xhbXAoMTZweCw0dncsMzZweCk7Ym94LXNoYWRvdzowIDZweCAwIHZhcigtLWphZGUtZGVlcCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MThweH0KLmhlcm97ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MThweH0KLmhlcm8gLmZpZ3t3aWR0aDoxMjBweH0KLmhlcm8gaDJ7bWFyZ2luOjA7Zm9udC1mYW1pbHk6dmFyKC0taGFuemkpO2ZvbnQtc2l6ZTpjbGFtcCgzNHB4LDZ2dyw1MHB4KTtsZXR0ZXItc3BhY2luZzouMDZlbTt0ZXh0LXdyYXA6YmFsYW5jZX0KLmhlcm8gcHttYXJnaW46NnB4IDAgMDtmb250LXNpemU6MThweDtjb2xvcjp2YXIoLS1tdXRlZCk7bWF4LXdpZHRoOjM0ZW19Ci5ob3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDIwMHB4LDFmcikpO2dhcDoxMHB4O21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmU7Y291bnRlci1yZXNldDpzfQouaG93IGxpe2NvdW50ZXItaW5jcmVtZW50OnM7YmFja2dyb3VuZDp2YXIoLS1taW50KTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoxMnB4IDE0cHggMTJweCA1MHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuNX0KLmhvdyBsaTo6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihzKTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEycHg7dG9wOjEycHg7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWphZGUpO2NvbG9yOiNmZmY7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjtmb250LXdlaWdodDo3MDB9Ci5vcHRze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEycHh9Ci5vcHR7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4IDEycHh9Ci5vcHQgPiBzcGFue21pbi13aWR0aDoxMWVtO2ZvbnQtc2l6ZToxN3B4fQouc2Vne2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwfQouc2VnIGJ1dHRvbntib3JkZXI6MnB4IHNvbGlkIHZhcigtLWphZGUpO2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6NnB4IDE2cHg7Zm9udC1zaXplOjE2cHg7Y29sb3I6dmFyKC0tamFkZS1kZWVwKX0KLnNlZyBidXR0b25bYXJpYS1wcmVzc2VkPSJ0cnVlIl17YmFja2dyb3VuZDp2YXIoLS1qYWRlKTtjb2xvcjojZmZmfQouc3VtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCxtaW5tYXgoMjYwcHgsMWZyKSk7Z2FwOjE0cHh9Ci5zdW1ib3h7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoycHggc29saWQgdmFyKC0tdGlsZSk7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MTRweDttaW4td2lkdGg6MH0KLnN1bWJveCBoM3ttYXJnaW46MCAwIDEwcHg7Zm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6dmFyKC0tZW4pO2NvbG9yOnZhcigtLWphZGUtZGVlcCk7bGV0dGVyLXNwYWNpbmc6LjFlbX0KLmRpc2hyb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6NXB4IDA7Ym9yZGVyLWJvdHRvbToxcHggZGFzaGVkIHZhcigtLXRpbGUpfS5kaXNocm93IC5kaXNobmFtZXtmb250LXNpemU6MjJweDtjb2xvcjp2YXIoLS1pbmspfQouZGlzaHJvdyAuc3RhcnN7Zm9udC1zaXplOjE4cHg7bGV0dGVyLXNwYWNpbmc6MnB4O3doaXRlLXNwYWNlOm5vd3JhcH0KLmNoaXBze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6OHB4fQouaWNoaXAgc21hbGx7Zm9udC1mYW1pbHk6dmFyKC0tZW4pO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLW11dGVkKX0KLmljaGlwe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtiYWNrZ3JvdW5kOnZhcigtLW1pbnQpO2JvcmRlci1yYWRpdXM6OTk5cHg7cGFkZGluZzo0cHggMTJweCA0cHggNnB4O2ZvbnQtZmFtaWx5OnZhcigtLWhhbnppKTtmb250LXNpemU6MTlweH0KLmljaGlwIC5le2ZvbnQtc2l6ZToyMnB4O2xpbmUtaGVpZ2h0OjF9Ci5pY2hpcCBzdmd7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0KLnZjaGlwe2JhY2tncm91bmQ6dmFyKC0tbWFyaWdvbGQtc29mdCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6NnB4IDEycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2dhcDo4cHh9Ci52Y2hpcCBie2ZvbnQtZmFtaWx5OnZhcigtLWhhbnppKTtmb250LXNpemU6MjZweDtjb2xvcjp2YXIoLS1sYW50ZXJuKX0KLnZjaGlwIHNwYW57Zm9udC1mYW1pbHk6dmFyKC0tZW4pO2ZvbnQtc2l6ZToxNnB4O2NvbG9yOnZhcigtLWluayl9Ci50b3RhbHtmb250LXNpemU6MjBweH0KLnRvdGFsIGJ7Zm9udC1zaXplOjMwcHg7Y29sb3I6dmFyKC0tbGFudGVybik7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfQoKQG1lZGlhIChtYXgtd2lkdGg6OTAwcHgpey5raXRjaGVue2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCxtaW5tYXgoMCwxZnIpKX19CkBtZWRpYSAobWF4LXdpZHRoOjY4MHB4KXsKICAuc2NlbmV7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KICAuc2lkZXttaW4taGVpZ2h0OjB9CiAgLmZpZ3t3aWR0aDo3NnB4fQogIC5kaXNobmFtZXtmb250LXNpemU6MjZweH0KICAuaGludHtmb250LXNpemU6MTlweH0KICAuc2lnbiBoMXtmb250LXNpemU6MjJweH0KICAuc2lnbiAubWV0YXttYXJnaW4tbGVmdDowfQp9CkBtZWRpYSAobWF4LXdpZHRoOjQyMHB4KXsuc3RhdGlvbiAubGJse2ZvbnQtc2l6ZToxM3B4fS50cmF5e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maWxsLG1pbm1heCg3NnB4LDFmcikpfX0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7KiwqOjpiZWZvcmUsKjo6YWZ0ZXJ7YW5pbWF0aW9uLWR1cmF0aW9uOi4wMW1zIWltcG9ydGFudDthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjEhaW1wb3J0YW50O3RyYW5zaXRpb246bm9uZSFpbXBvcnRhbnR9fQouY3JlZGl0e21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtZmFtaWx5OnZhcigtLWVuKTtmb250LXNpemU6MTVweDtsZXR0ZXItc3BhY2luZzouMDZlbTtjb2xvcjp2YXIoLS1qYWRlLWRlZXApO3BhZGRpbmctaW5saW5lOjE2cHg7cGFkZGluZy1ibG9jazoycHggMTRweH0KaHRtbCxib2R5e21hcmdpbjowO21pbi1oZWlnaHQ6MH0KPC9zdHlsZT4KCjwvaGVhZD4KPGJvZHk+CjxkaXYgY2xhc3M9ImFwcCIgaWQ9ImFwcCI+PC9kaXY+Cjxmb290ZXIgY2xhc3M9ImNyZWRpdCI+T25lRG90RG90IENoaW5lc2UgwrcgVGlmZmFueSBIdWFuZzwvZm9vdGVyPgoKPHNjcmlwdD4KLyogLS0tLS0tLS0tLSBkYXRhIC0tLS0tLS0tLS0gKi8KY29uc3QgU1ZHID0gewogIGdyZWVuczonPHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiPjxlbGxpcHNlIGN4PSIyMiIgY3k9IjI0IiByeD0iMTAiIHJ5PSIxNyIgdHJhbnNmb3JtPSJyb3RhdGUoLTE4IDIyIDI0KSIgZmlsbD0iIzRmYWU0YSIgc3Ryb2tlPSIjMmM2ZTJhIiBzdHJva2Utd2lkdGg9IjIiLz48ZWxsaXBzZSBjeD0iNDIiIGN5PSIyNCIgcng9IjEwIiByeT0iMTciIHRyYW5zZm9ybT0icm90YXRlKDE4IDQyIDI0KSIgZmlsbD0iIzRmYWU0YSIgc3Ryb2tlPSIjMmM2ZTJhIiBzdHJva2Utd2lkdGg9IjIiLz48ZWxsaXBzZSBjeD0iMzIiIGN5PSIxOSIgcng9IjExIiByeT0iMTciIGZpbGw9IiM1Y2MwNTciIHN0cm9rZT0iIzJjNmUyYSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTI0IDYwIFEyMSA0NCAyNiAzNCBMMzggMzQgUTQzIDQ0IDQwIDYwIFoiIGZpbGw9IiNlZWY3ZGQiIHN0cm9rZT0iIzdhYTM1YSIgc3Ryb2tlLXdpZHRoPSIyIi8+PC9zdmc+JywKICBjYWJiYWdlOic8c3ZnIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGNpcmNsZSBjeD0iMzIiIGN5PSIzNCIgcj0iMjUiIGZpbGw9IiNiOWRmOGMiIHN0cm9rZT0iIzVmOWEzYSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48cGF0aCBkPSJNMTQgMzAgUTMyIDE2IDUwIDMwIE0xOCA0NCBRMzIgMjggNDYgNDQgTTMyIDEwIFEyNiAzNCAzMiA1OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNmZhYTQ1IiBzdHJva2Utd2lkdGg9IjIuNSIvPjwvc3ZnPicsCiAgZGFpa29uOic8c3ZnIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZD0iTTI2IDYgUTIyIDEyIDMwIDE4IE0zOCA2IFE0MiAxMiAzNCAxOCBNMzIgNCBWMTgiIHN0cm9rZT0iIzNmOWEzYyIgc3Ryb2tlLXdpZHRoPSI1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMjQgMTggUTIwIDQwIDI4IDU0IFEzMiA2MiAzNiA1NCBRNDQgNDAgNDAgMTggWiIgZmlsbD0iI2Y2ZjRlYyIgc3Ryb2tlPSIjOWFhNTlhIiBzdHJva2Utd2lkdGg9IjIuNSIvPjxwYXRoIGQ9Ik0yOCAzMCBoNCBNMzMgNDAgaDQiIHN0cm9rZT0iI2M3Y2NjNCIgc3Ryb2tlLXdpZHRoPSIyIi8+PC9zdmc+JywKICBzY2FsbGlvbjonPHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiPjxwYXRoIGQ9Ik0yMiA2IEwyNiA0MCIgc3Ryb2tlPSIjM2ZhMzRhIiBzdHJva2Utd2lkdGg9IjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik0zNiA0IEwzNiA0MCIgc3Ryb2tlPSIjNTJiODVhIiBzdHJva2Utd2lkdGg9IjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik00NCA4IEw0MCA0MCIgc3Ryb2tlPSIjM2ZhMzRhIiBzdHJva2Utd2lkdGg9IjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxyZWN0IHg9IjIwIiB5PSIzOCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjE2IiByeD0iNiIgZmlsbD0iI2Y3ZjdlZSIgc3Ryb2tlPSIjYTRhZDllIiBzdHJva2Utd2lkdGg9IjIiLz48cGF0aCBkPSJNMjYgNTQgbC0zIDYgTTMzIDU0IHY3IE00MCA1NCBsMyA2IiBzdHJva2U9IiNiOWE5ODgiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPicsCiAgc2hpaXRha2U6Jzxzdmcgdmlld0JveD0iMCAwIDY0IDY0Ij48cmVjdCB4PSIyNiIgeT0iMzAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyNiIgcng9IjUiIGZpbGw9IiNmMWUyYzQiIHN0cm9rZT0iI2E4OGE1YyIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTYgMzQgUTYgMTAgMzIgMTAgUTU4IDEwIDU4IDM0IFEzMiAyNyA2IDM0IFoiIGZpbGw9IiM4YTU2MzYiIHN0cm9rZT0iIzVhMzUyMCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48Y2lyY2xlIGN4PSIyMiIgY3k9IjIwIiByPSIyLjUiIGZpbGw9IiNkOGI5OGYiLz48Y2lyY2xlIGN4PSIzNiIgY3k9IjE2IiByPSIyIiBmaWxsPSIjZDhiOThmIi8+PGNpcmNsZSBjeD0iNDQiIGN5PSIyNCIgcj0iMi41IiBmaWxsPSIjZDhiOThmIi8+PC9zdmc+JywKICBub29kbGVzOic8c3ZnIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTljMzVhIiBzdHJva2Utd2lkdGg9IjMuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0aCBkPSJNMTQgOCBxNCA2IDAgMTIgcS00IDYgMCAxMiBxNCA2IDAgMTIgcS00IDYgMCAxMiIvPjxwYXRoIGQ9Ik0yNCA4IHE0IDYgMCAxMiBxLTQgNiAwIDEyIHE0IDYgMCAxMiBxLTQgNiAwIDEyIi8+PHBhdGggZD0iTTM0IDggcTQgNiAwIDEyIHEtNCA2IDAgMTIgcTQgNiAwIDEyIHEtNCA2IDAgMTIiLz48cGF0aCBkPSJNNDQgOCBxNCA2IDAgMTIgcS00IDYgMCAxMiBxNCA2IDAgMTIgcS00IDYgMCAxMiIvPjwvZz48cmVjdCB4PSI4IiB5PSIyOCIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjkiIHJ4PSIzIiBmaWxsPSIjZDYzZjJjIi8+PC9zdmc+JywKICBzb3k6Jzxzdmcgdmlld0JveD0iMCAwIDY0IDY0Ij48cmVjdCB4PSIyNyIgeT0iNCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjgiIHJ4PSIyIiBmaWxsPSIjZDYzZjJjIi8+PHBhdGggZD0iTTI2IDEyIGgxMiB2OCBxOCA0IDggMTIgdjI0IHEwIDQgLTQgNCBoLTIwIHEtNCAwIC00IC00IHYtMjQgcTAgLTggOCAtMTIgeiIgZmlsbD0iIzNhMjIxNCIgc3Ryb2tlPSIjMWQxMTBhIiBzdHJva2Utd2lkdGg9IjIiLz48cmVjdCB4PSIyMiIgeT0iMzQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIGZpbGw9IiNmNmVhZDIiLz48cmVjdCB4PSIyNiIgeT0iMzgiIHdpZHRoPSIxMiIgaGVpZ2h0PSIzIiBmaWxsPSIjZDYzZjJjIi8+PC9zdmc+JywKICB2aW5lZ2FyOic8c3ZnIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHJlY3QgeD0iMjgiIHk9IjIiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiBmaWxsPSIjZjNiMjJlIi8+PHBhdGggZD0iTTI4IDEwIGg4IHYxMCBxNiAzIDYgMTAgdjI2IHEwIDQgLTQgNCBoLTEyIHEtNCAwIC00IC00IHYtMjYgcTAgLTcgNiAtMTAgeiIgZmlsbD0iI2YyY2Y4YSIgZmlsbC1vcGFjaXR5PSIuODUiIHN0cm9rZT0iI2IwN2QyYSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHJlY3QgeD0iMjQiIHk9IjM0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTIiIHJ4PSIyIiBmaWxsPSIjZmZmIi8+PGNpcmNsZSBjeD0iMzIiIGN5PSI0MCIgcj0iMyIgZmlsbD0iIzFkNmI1NiIvPjwvc3ZnPicsCiAgbWF5bzonPHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiPjxwYXRoIGQ9Ik0zMiAyIGw2IDEwIGgtMTIgeiIgZmlsbD0iI2Q2M2YyYyIvPjxyZWN0IHg9IjI0IiB5PSIxMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjciIHJ4PSIyIiBmaWxsPSIjZDYzZjJjIi8+PHBhdGggZD0iTTIyIDE4IGgyMCBxNCAwIDQgNiB2MzAgcTAgNiAtNiA2IGgtMTYgcS02IDAgLTYgLTYgdi0zMCBxMCAtNiA0IC02IHoiIGZpbGw9IiNmZmY0Y2YiIHN0cm9rZT0iI2M5YTY1YSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTE4IDM0IHExNCA2IDI4IDAiIHN0cm9rZT0iIzJmN2ZjMCIgc3Ryb2tlLXdpZHRoPSI0IiBmaWxsPSJub25lIi8+PC9zdmc+JywKICBmbG91cjonPHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiPjxwYXRoIGQ9Ik0xNCAxNiBsNiAtOCBoMjQgbDYgOCB2NDAgcTAgNCAtNCA0IGgtMjggcS00IDAgLTQgLTQgeiIgZmlsbD0iI2YzZTNiOCIgc3Ryb2tlPSIjYTg4YTRjIiBzdHJva2Utd2lkdGg9IjIuNSIvPjxwYXRoIGQ9Ik0xNCAxNiBoMzYiIHN0cm9rZT0iI2E4OGE0YyIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTMyIDI2IHYyNCBNMzIgMzIgbC02IC00IE0zMiAzMiBsNiAtNCBNMzIgNDAgbC02IC00IE0zMiA0MCBsNiAtNCIgc3Ryb2tlPSIjYzc5YTNhIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBmaWxsPSJub25lIi8+PC9zdmc+JywKICBjbGFtOic8c3ZnIHZpZXdCb3g9XCIwIDAgNjQgNjRcIj48ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMjIgLTIpIHNjYWxlKC42MilcIj48cGF0aCBkPVwiTTMyIDggUTM4IDggNDYgMTggUTU4IDMyIDU2IDQ0IFE0NiA1NiAzMiA1NiBRMTggNTYgOCA0NCBRNiAzMiAxOCAxOCBRMjYgOCAzMiA4IFpcIiBmaWxsPVwiI2NiYmZhZVwiIHN0cm9rZT1cIiM1YTRhM2FcIiBzdHJva2Utd2lkdGg9XCIzXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xNCA0MCBRMzIgMzAgNTAgNDAgTDUyIDQ1IFE0NCA1NCAzMiA1NCBRMjAgNTQgMTIgNDUgWlwiIGZpbGw9XCIjOWM4Yjc2XCIvPjxwYXRoIGQ9XCJNMTIgNDQgUTMyIDM0IDUyIDQ0IE0xNSAzNSBRMzIgMjUgNDkgMzUgTTIwIDI2IFEzMiAxOCA0NCAyNlwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiIzVhNGEzYVwiIHN0cm9rZS13aWR0aD1cIjEuOFwiIHN0cm9rZS1vcGFjaXR5PVwiLjU1XCIvPjxwYXRoIGQ9XCJNOCA0NCBRMzIgNjAgNTYgNDRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cIiM1YTRhM2FcIiBzdHJva2Utd2lkdGg9XCIzXCIvPjwvZz48ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoLTIgMTApIHNjYWxlKC44KVwiPjxwYXRoIGQ9XCJNMzIgOCBRMzggOCA0NiAxOCBRNTggMzIgNTYgNDQgUTQ2IDU2IDMyIDU2IFExOCA1NiA4IDQ0IFE2IDMyIDE4IDE4IFEyNiA4IDMyIDggWlwiIGZpbGw9XCIjZThkZmNmXCIgc3Ryb2tlPVwiIzVhNGEzYVwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTE0IDQwIFEzMiAzMCA1MCA0MCBMNTIgNDUgUTQ0IDU0IDMyIDU0IFEyMCA1NCAxMiA0NSBaXCIgZmlsbD1cIiNiN2E2OGVcIi8+PHBhdGggZD1cIk0xMiA0NCBRMzIgMzQgNTIgNDQgTTE1IDM1IFEzMiAyNSA0OSAzNSBNMjAgMjYgUTMyIDE4IDQ0IDI2XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjNWE0YTNhXCIgc3Ryb2tlLXdpZHRoPVwiMS44XCIgc3Ryb2tlLW9wYWNpdHk9XCIuNTVcIi8+PHBhdGggZD1cIk04IDQ0IFEzMiA2MCA1NiA0NFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiIzVhNGEzYVwiIHN0cm9rZS13aWR0aD1cIjNcIi8+PC9nPjwvc3ZnPicsCiAgd3JhcHBlcjonPHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiPjxjaXJjbGUgY3g9IjMyIiBjeT0iMzQiIHI9IjI2IiBmaWxsPSIjZmJmNGUzIiBzdHJva2U9IiNjZGI5OGQiIHN0cm9rZS13aWR0aD0iMi41Ii8+PGNpcmNsZSBjeD0iMjQiIGN5PSIyOCIgcj0iMS41IiBmaWxsPSIjZTNkM2FkIi8+PGNpcmNsZSBjeD0iNDAiIGN5PSIzOCIgcj0iMS41IiBmaWxsPSIjZTNkM2FkIi8+PGNpcmNsZSBjeD0iMzAiIGN5PSI0NCIgcj0iMS41IiBmaWxsPSIjZTNkM2FkIi8+PC9zdmc+JywKICBkdW1wd3JhcDonPHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiPjxlbGxpcHNlIGN4PSIzMiIgY3k9IjQ4IiByeD0iMjQiIHJ5PSI5IiBmaWxsPSIjZjZlY2Q0IiBzdHJva2U9IiNjZGI5OGQiIHN0cm9rZS13aWR0aD0iMiIvPjxlbGxpcHNlIGN4PSIzMiIgY3k9IjQwIiByeD0iMjQiIHJ5PSI5IiBmaWxsPSIjZjlmMGRjIiBzdHJva2U9IiNjZGI5OGQiIHN0cm9rZS13aWR0aD0iMiIvPjxlbGxpcHNlIGN4PSIzMiIgY3k9IjMyIiByeD0iMjQiIHJ5PSI5IiBmaWxsPSIjZmNmNmU4IiBzdHJva2U9IiNjZGI5OGQiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPicsCiAgd2lwOic8c3ZnIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZD0iTTIyIDE0IHEtMyAtNSAwIC05IE0zMiAxMiBxLTMgLTUgMCAtOSBNNDIgMTQgcS0zIC01IDAgLTkiIHN0cm9rZT0iIzlmYjNhYSIgc3Ryb2tlLXdpZHRoPSIyLjUiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik0xMCA0MCBRMTAgMjAgMzIgMjAgUTU0IDIwIDU0IDQwIFoiIGZpbGw9IiNkOWU0ZGUiIHN0cm9rZT0iIzViNmM2NSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48Y2lyY2xlIGN4PSIzMiIgY3k9IjE4IiByPSI0IiBmaWxsPSIjNWI2YzY1Ii8+PHJlY3QgeD0iNiIgeT0iNDAiIHdpZHRoPSI1MiIgaGVpZ2h0PSI2IiByeD0iMyIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjNWI2YzY1IiBzdHJva2Utd2lkdGg9IjIuNSIvPjxwYXRoIGQ9Ik0xMiA0NiBRMTQgNTggMzIgNTggUTUwIDU4IDUyIDQ2IiBmaWxsPSIjYzg4YjUyIiBzdHJva2U9IiM1YjZjNjUiIHN0cm9rZS13aWR0aD0iMi41Ii8+PC9zdmc+Jwp9Owpjb25zdCBUT09MU1ZHID0gewogIGJvYXJkOic8c3ZnIGNsYXNzPSJ0b29sIiB2aWV3Qm94PSIwIDAgODQgNjAiPjxyZWN0IHg9IjYiIHk9IjIwIiB3aWR0aD0iNzIiIGhlaWdodD0iMzQiIHJ4PSI3IiBmaWxsPSIjZGNhNDY4IiBzdHJva2U9IiM4ZDU4MmMiIHN0cm9rZS13aWR0aD0iMi41Ii8+PGNpcmNsZSBjeD0iNjgiIGN5PSIzMCIgcj0iMy41IiBmaWxsPSIjOGQ1ODJjIi8+PHBhdGggZD0iTTE0IDM0IGg0MCBNMTYgNDQgaDM0IiBzdHJva2U9IiNjNDhhNTAiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik0yMCA4IGgzNCBsNCA4IGgtMzggeiIgZmlsbD0iI2Q3ZGRlMCIgc3Ryb2tlPSIjNWI2YzY1IiBzdHJva2Utd2lkdGg9IjIiLz48cmVjdCB4PSI1NiIgeT0iMTAiIHdpZHRoPSIyMCIgaGVpZ2h0PSI1IiByeD0iMi41IiBmaWxsPSIjMWUyYjI3Ii8+PC9zdmc+JywKICBwYW46JzxzdmcgY2xhc3M9InRvb2wiIHZpZXdCb3g9IjAgMCA4NCA2MCI+PGNpcmNsZSBjeD0iMzQiIGN5PSIzMiIgcj0iMjQiIGZpbGw9IiMzNzNjNDIiIHN0cm9rZT0iIzFlMmIyNyIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48Y2lyY2xlIGN4PSIzNCIgY3k9IjMyIiByPSIxOCIgZmlsbD0iIzRkNTQ1YyIvPjxyZWN0IHg9IjU2IiB5PSIyOCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjkiIHJ4PSI0LjUiIGZpbGw9IiM4ZDU4MmMiLz48L3N2Zz4nLAogIHBvdDonPHN2ZyBjbGFzcz0idG9vbCIgdmlld0JveD0iMCAwIDg0IDYwIj48cmVjdCB4PSI2IiB5PSIyOCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjNWI2YzY1Ii8+PHJlY3QgeD0iNjgiIHk9IjI4IiB3aWR0aD0iMTAiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM1YjZjNjUiLz48cGF0aCBkPSJNMTQgMjQgaDU2IHYyNCBxMCA4IC04IDggaC00MCBxLTggMCAtOCAtOCB6IiBmaWxsPSIjYzNjYmQxIiBzdHJva2U9IiM1YjZjNjUiIHN0cm9rZS13aWR0aD0iMi41Ii8+PGVsbGlwc2UgY3g9IjQyIiBjeT0iMjIiIHJ4PSIzMCIgcnk9IjYiIGZpbGw9IiNkZmU1ZTgiIHN0cm9rZT0iIzViNmM2NSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48cmVjdCB4PSIzNiIgeT0iMTEiIHdpZHRoPSIxMiIgaGVpZ2h0PSI2IiByeD0iMyIgZmlsbD0iIzFlMmIyNyIvPjwvc3ZnPicsCiAgc3RlYW1lcjonPHN2ZyBjbGFzcz0idG9vbCIgdmlld0JveD0iMCAwIDg0IDYwIj48cGF0aCBkPSJNMTQgMjIgUTQyIDQgNzAgMjIgWiIgZmlsbD0iI2U4YzU3YSIgc3Ryb2tlPSIjOGQ1ODJjIiBzdHJva2Utd2lkdGg9IjIuNSIvPjxyZWN0IHg9IjEyIiB5PSIyMiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjE2IiByeD0iNCIgZmlsbD0iI2VmY2Q4NSIgc3Ryb2tlPSIjOGQ1ODJjIiBzdHJva2Utd2lkdGg9IjIuNSIvPjxyZWN0IHg9IjEyIiB5PSIzOCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjE2IiByeD0iNCIgZmlsbD0iI2UyYmI2YyIgc3Ryb2tlPSIjOGQ1ODJjIiBzdHJva2Utd2lkdGg9IjIuNSIvPjxwYXRoIGQ9Ik0xMiAzMCBoNjAgTTEyIDQ2IGg2MCIgc3Ryb2tlPSIjYjk4YTNlIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvc3ZnPicsCiAgb3ZlbjonPHN2ZyBjbGFzcz0idG9vbCIgdmlld0JveD0iMCAwIDg0IDYwIj48cmVjdCB4PSIxMCIgeT0iNCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjUyIiByeD0iNyIgZmlsbD0iI2VjZTZkYSIgc3Ryb2tlPSIjNWI2YzY1IiBzdHJva2Utd2lkdGg9IjIuNSIvPjxjaXJjbGUgY3g9IjIyIiBjeT0iMTMiIHI9IjMuNSIgZmlsbD0iIzViNmM2NSIvPjxjaXJjbGUgY3g9IjM0IiBjeT0iMTMiIHI9IjMuNSIgZmlsbD0iIzViNmM2NSIvPjxyZWN0IHg9IjQ4IiB5PSIxMCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjZDYzZjJjIi8+PHJlY3QgeD0iMTgiIHk9IjIyIiB3aWR0aD0iNDgiIGhlaWdodD0iMjciIHJ4PSI0IiBmaWxsPSIjM2IyZTI2Ii8+PHBhdGggZD0iTTI0IDQwIHE0IC02IDggMCBxNCAtNiA4IDAgcTQgLTYgOCAwIHE0IC02IDggMCIgc3Ryb2tlPSIjZjM5MjNhIiBzdHJva2Utd2lkdGg9IjIuNSIgZmlsbD0ibm9uZSIvPjwvc3ZnPicsCiAgcGxhdGU6JzxzdmcgY2xhc3M9InRvb2wiIHZpZXdCb3g9IjAgMCA4NCA2MCI+PGVsbGlwc2UgY3g9IjQyIiBjeT0iMzYiIHJ4PSIzNiIgcnk9IjE3IiBmaWxsPSIjZmZmIiBzdHJva2U9IiM1YjZjNjUiIHN0cm9rZS13aWR0aD0iMi41Ii8+PGVsbGlwc2UgY3g9IjQyIiBjeT0iMzUiIHJ4PSIyNCIgcnk9IjEwIiBmaWxsPSJub25lIiBzdHJva2U9IiNjOWQ2Y2UiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPicsCiAgaGFuZDonPHN2ZyBjbGFzcz0idG9vbCIgdmlld0JveD0iMCAwIDg0IDYwIj48ZyBmaWxsPSIjZjRjZmE5IiBzdHJva2U9IiMxZTJiMjciIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjcgMzggcS0xMSAtMTIgLTE1IC03IHEtMyA0IDkgMTgiLz48cmVjdCB4PSIyOCIgeT0iNiIgd2lkdGg9IjgiIGhlaWdodD0iMjgiIHJ4PSI0Ii8+PHJlY3QgeD0iMzciIHk9IjMiIHdpZHRoPSI4IiBoZWlnaHQ9IjMwIiByeD0iNCIvPjxyZWN0IHg9IjQ2IiB5PSI1IiB3aWR0aD0iOCIgaGVpZ2h0PSIyOCIgcng9IjQiLz48cmVjdCB4PSI1NSIgeT0iMTEiIHdpZHRoPSI3IiBoZWlnaHQ9IjIyIiByeD0iMy41Ii8+PHBhdGggZD0iTTI1IDI4IGgzOCB2MTIgcTAgMTYgLTE5IDE2IHEtMTcgMCAtMTkgLTE2IHoiLz48L2c+PHBhdGggZD0iTTMzIDQ0IHE2IDQgMTQgMCIgc3Ryb2tlPSIjZTBhOThhIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiLz48L3N2Zz4nLAogIGJvd2w6JzxzdmcgY2xhc3M9InRvb2wiIHZpZXdCb3g9IjAgMCA4NCA2MCI+PHBhdGggZD0iTTggMjIgSDc2IFE3NCA1NCA0MiA1NCBRMTAgNTQgOCAyMiBaIiBmaWxsPSIjZmZmIiBzdHJva2U9IiM1YjZjNjUiIHN0cm9rZS13aWR0aD0iMi41Ii8+PHBhdGggZD0iTTEyIDMyIFE0MiAzOCA3MiAzMiIgc3Ryb2tlPSIjMmY2ZmIwIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTggNDIgcTQgLTQgOCAwIHE0IC00IDggMCIgc3Ryb2tlPSIjMmY2ZmIwIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiLz48ZWxsaXBzZSBjeD0iNDIiIGN5PSIyMiIgcng9IjM0IiByeT0iNSIgZmlsbD0iI2YxZjRmMiIgc3Ryb2tlPSIjNWI2YzY1IiBzdHJva2Utd2lkdGg9IjIuNSIvPjwvc3ZnPicKfTsKY29uc3QgUExBVEVTVkcgPSAnPHN2ZyB2aWV3Qm94PSIwIDAgMTUwIDk2Ij48ZWxsaXBzZSBjeD0iNzUiIGN5PSI1NiIgcng9IjcwIiByeT0iMzQiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzFlMmIyNyIgc3Ryb2tlLXdpZHRoPSIzIi8+PGVsbGlwc2UgY3g9Ijc1IiBjeT0iNTQiIHJ4PSI1MCIgcnk9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNjOWQ2Y2UiIHN0cm9rZS13aWR0aD0iMi41Ii8+PC9zdmc+JzsKCmNvbnN0IElORyA9IHsKICB0b21hdG86e3poOifnlarojIQnLGVuOidUb21hdG8nLGU6J\/CfjYUnfSwgZWdnOnt6aDon6Zue6JuLJyxlbjonRWdnJyxlOifwn6WaJ30sIGJlZWY6e3poOifniZvogoknLGVuOidCZWVmJyxlOifwn6WpJ30sIHBvcms6e3poOifosazogoknLGVuOidQb3JrJyxlOifwn6WTJ30sCiAgY2hpY2tlbjp7emg6J+mbnuiCiScsZW46J0NoaWNrZW4nLGU6J\/CfjZcnfSwgc2hyaW1wOnt6aDon6J2m5LuBJyxlbjonU2hyaW1wJyxlOifwn6aQJ30sIHJpY2U6e3poOifnmb3po68nLGVuOidSaWNlJyxlOifwn42aJ30sIHBvdGF0bzp7emg6J+mmrOmItOiWrycsZW46J1BvdGF0bycsZTon8J+llCd9LAogIGN1Y3VtYmVyOnt6aDon5bCP6buD55OcJyxlbjonQ3VjdW1iZXInLGU6J\/CfpZInfSwgZ2FybGljOnt6aDon6JKc6aCtJyxlbjonR2FybGljJyxlOifwn6eEJ30sIG9uaW9uOnt6aDon5rSL6JSlJyxlbjonT25pb24nLGU6J\/Cfp4UnfSwgY2Fycm90Ont6aDon57SF6Ji\/6JSUJyxlbjonQ2Fycm90JyxlOifwn6WVJ30sCiAgYmFzaWw6e3poOifkuZ3lsaTloZQnLGVuOidUaGFpIGJhc2lsJyxlOifwn4y\/J30sIHJpYnM6e3poOifmjpLpqqgnLGVuOidQb3JrIHJpYnMnLGU6J\/CfjZYnfSwgYnVuOnt6aDon6bq15YyFJyxlbjonQnVuJyxlOifwn42eJ30sIGxldHR1Y2U6e3poOifnlJ\/oj5wnLGVuOidMZXR0dWNlJyxlOifwn6WsJ30sCiAgcGVwcGVyOnt6aDon6Z2S5qSSJyxlbjonR3JlZW4gcGVwcGVyJyxlOifwn6uRJ30sIHN3ZWV0cG90YXRvOnt6aDon5Zyw55OcJyxlbjonU3dlZXQgcG90YXRvJyxlOifwn42gJ30sIGNsYW06e3poOifom6TonIonLGVuOidDbGFtcycsczonY2xhbSd9LCBncmVlbnM6e3poOifpnZLoj5wnLGVuOidMZWFmeSBncmVlbnMnLHM6J2dyZWVucyd9LCBjYWJiYWdlOnt6aDon6auY6bqX6I+cJyxlbjonQ2FiYmFnZScsczonY2FiYmFnZSd9LCBkYWlrb246e3poOifnmb3omL\/olJQnLGVuOidEYWlrb24gcmFkaXNoJyxzOidkYWlrb24nfSwKICBzY2FsbGlvbjp7emg6J+iUpScsZW46J1NjYWxsaW9uJyxzOidzY2FsbGlvbid9LCBzaGlpdGFrZTp7emg6J+mmmeiPhycsZW46J1NoaWl0YWtlJyxzOidzaGlpdGFrZSd9LCBub29kbGVzOnt6aDon6bq15qKdJyxlbjonTm9vZGxlcycsczonbm9vZGxlcyd9LCBzb3k6e3poOifphqzmsrknLGVuOidTb3kgc2F1Y2UnLHM6J3NveSd9LAogIHZpbmVnYXI6e3poOifphosnLGVuOidWaW5lZ2FyJyxzOid2aW5lZ2FyJ30sIG1heW86e3poOifnvo7kuYPmu4snLGVuOidNYXlvbm5haXNlJyxzOidtYXlvJ30sIGZsb3VyOnt6aDon54K457KJJyxlbjonRnJ5aW5nIGZsb3VyJyxzOidmbG91cid9LCB3cmFwcGVyOnt6aDon6bq155quJyxlbjonQnVuIGRvdWdoJyxzOid3cmFwcGVyJ30sCiAgZHVtcHdyYXA6e3poOifmsLTppIPnmq4nLGVuOidEdW1wbGluZyB3cmFwcGVycycsczonZHVtcHdyYXAnfQp9Owpjb25zdCBBQ1QgPSB7CiAgJ+WIhyc6e2VuOid0byBjdXQnfSwgJ+WIh+eJhyc6e2VuOid0byBzbGljZSd9LCAn5YmBJzp7ZW46J3RvIGNob3AnfSwKICAn54KSJzp7ZW46J3RvIHN0aXItZnJ5J30sICfnhY4nOntlbjondG8gZnJ5J30sICfngrgnOntlbjondG8gZGVlcC1mcnknfSwKICAn54WuJzp7ZW46J3RvIGJvaWwnfSwgJ+eHiSc6e2VuOid0byBzdGV3J30sICfnhqwnOntlbjondG8gc2ltbWVyJ30sICfnh5knOntlbjondG8gYmxhbmNoJ30sICfmu7cnOntlbjondG8gYnJhaXNlIGluIG1hc3RlciBzdG9jayd9LAogICfokrgnOntlbjondG8gc3RlYW0nfSwgJ+eDpCc6e2VuOid0byBiYWtlJ30sICfnh5Lng6QnOntlbjondG8gYmFyYmVjdWUnfSwgJ+mGgyc6e2VuOid0byBtYXJpbmF0ZSd9LAogICfmi4wnOntlbjondG8gdG9zcyd9LCAn5pKSJzp7ZW46J3RvIHNwcmlua2xlJ30sICfljIUnOntlbjondG8gd3JhcCd9LCAn5YmKJzp7ZW46J3RvIHBlZWwnfSwgJ+WKoCc6e2VuOid0byBhZGQnfSwgJ+aJk+ibiyc6e2VuOid0byBjcmFjayBhbiBlZ2cnfQp9Owpjb25zdCBUT09MUyA9IFsKICB7aWQ6J2JvYXJkJyxlbjonQ3V0dGluZyBib2FyZCcsemg6J+egp+advycsYWN0czpbJ+WIhycsJ+WIh+eJhycsJ+WJgSddfSwKICB7aWQ6J3BhbicsZW46J0ZyeWluZyBwYW4nLHpoOiflubPlupXpjYsnLGFjdHM6WyfnhY4nLCfngpInLCfngrgnXX0sCiAge2lkOidwb3QnLGVuOidQb3QnLHpoOifpjYvlrZAnLGFjdHM6Wyfnha4nLCfnh4knLCfnhqwnLCfnh5knLCfmu7cnXX0sCiAge2lkOidzdGVhbWVyJyxlbjonU3RlYW1lcicsemg6J+iSuOexoCcsYWN0czpbJ+iSuCddfSwKICB7aWQ6J292ZW4nLGVuOidPdmVuJyx6aDon54Ok566xJyxhY3RzOlsn54OkJywn54eS54OkJ119LAogIHtpZDoncGxhdGUnLGVuOidQbGF0ZScsemg6J+ebpOWtkCcsYWN0czpbJ+mGgyddfSwKICB7aWQ6J2Jvd2wnLGVuOidCb3dsJyx6aDon56KXJyxhY3RzOlsn5ouMJywn5pKSJywn5omT6JuLJ119LAogIHtpZDonaGFuZCcsZW46J0hhbmRzJyx6aDon5omLJyxhY3RzOlsn5YyFJywn5YmKJywn5YqgJ119Cl07CmNvbnN0IFRPT0wgPSBPYmplY3QuZnJvbUVudHJpZXMoVE9PTFMubWFwKHQ9Plt0LmlkLHRdKSk7Ci8vIHN0ZXA6IGkgPSBpbmdyZWRpZW50cyB0byBwaWNrICgnd2lwJyA9IHRoZSBoYWxmLW1hZGUgZGlzaCksIHQgPSB0b29sLCBhID0gYWN0aW9uIChudWxsID0gbm8gYnV0dG9uKSwgaCA9IGNoZWYgaGludCAoKnZlcmIqIGhpZ2hsaWdodGVkKQpjb25zdCBTPShpLHQsYSxoKT0+KHtpLHQsYSxofSk7CmNvbnN0IERJU0hFUyA9IFsKICB7bjon55Wq6IyE54KS6JuLJyxweTonZsSBbiBxacOpIGNox45vIGTDoG4nLGVuOidUb21hdG8gJiBlZ2cgc3Rpci1mcnknLHM6W1MoWyd0b21hdG8nXSwnYm9hcmQnLCfliIcnLCflhYjmiopb55Wq6IyEXSrliIcq5LiAKuWIhyrjgIInKSxTKFsnZWdnJ10sJ2Jvd2wnLCfmiZPom4snLCflhYgq5omT6JuLKu+8muaKilvpm57om4td5omT6YCy56KX6KOh44CCJyksUyhbJ2VnZyddLCdwYW4nLCfngpInLCfmiopb6JuLXeaUvuWIsOW5s+W6lemNi+ijoSrngpIq44CCJyksUyhbJ3RvbWF0byddLCdwYW4nLCfngpInLCflho3miopb55Wq6IyEXeaUvumAsuW5s+W6lemNi++8jOS4gOi1tyrngpIq77yBJyldfSwKICB7bjon54mb6IKJ6bq1JyxweTonbmnDuiByw7J1IG1pw6BuJyxlbjonQmVlZiBub29kbGUgc291cCcsczpbUyhbJ2JlZWYnXSwnYm9hcmQnLCfliIcnLCflhYjmiopb54mb6IKJXSrliIcq5oiQ5aGK44CCJyksUyhbJ2JlZWYnXSwncG90Jywn54eJJywn5oqKW+eJm+iCiV3mlL7pgLLpjYvlrZDoo6HmhaLmhaIq54eJKuOAgicpLFMoWydub29kbGVzJ10sJ3BvdCcsJ+eFricsJ+aKilvpurXmop1d5pS+6YCy6Y2L5a2Q6KOhKueFrirjgIInKSxTKFsnc2NhbGxpb24nXSwnYm9hcmQnLCfliIcnLCfmiopb6JSlXSrliIcq5LiAKuWIhyrjgIInKSxTKFsnc2NhbGxpb24nXSwnYm93bCcsJ+aSkicsJ+aKium6teWSjOa5r+WAkumAsueil+ijoe+8jOWGjeaKilvolKVdKuaSkirlnKjkuIrpnaLjgIInKV19LAogIHtuOifnh5npnZLoj5wnLHB5Oid0w6BuZyBxxKtuZyBjw6BpJyxlbjonQmxhbmNoZWQgZ3JlZW5zJyxzOltTKFsnZ3JlZW5zJ10sJ3BvdCcsJ+eHmScsJ+aKilvpnZLoj5xd5pS+6YCy6Y2L5a2Q6KOhKueHmSrkuIDkuIvjgIInKV19LAogIHtuOifmu7fogonpo6\/liqDom4snLHB5Oidsx5QgcsOydSBmw6BuIGppxIEgZMOgbicsZW46J0JyYWlzZWQgcG9yayByaWNlIHdpdGggZWdnJyxzOltTKFsncG9yayddLCdib2FyZCcsJ+WJgScsJ+WFiOaKilvosazogoldKuWJgSrmiJDlsI\/kuIHjgIInKSxTKFsncG9yaycsJ3NveSddLCdwb3QnLCfmu7cnLCfmiopb6LGs6IKJXeWSjFvphqzmsrld5pS+6YCy6Y2L5a2Q6KOhKua7tyrjgIInKSxTKFsnZWdnJ10sJ3BvdCcsJ+eFricsJ+aKilvpm57om4td5pS+6YCy6Y2L5a2Q6KOhKueFrirkuIAq54WuKuOAgicpLFMoWydyaWNlJ10sJ2hhbmQnLCfliqAnLCfmnIDlvozmiopb55m96aOvXSrliqAq6YCy56KX6KOh44CCJyldfSwKICB7bjon6J2m5LuB54KS6aOvJyxweToneGnEgSByw6luIGNox45vIGbDoG4nLGVuOidTaHJpbXAgZnJpZWQgcmljZScsczpbUyhbJ3NjYWxsaW9uJ10sJ2JvYXJkJywn5YiHJywn5YWI5oqKW+iUpV0q5YiHKuS4gCrliIcq44CCJyksUyhbJ3NocmltcCddLCdwYW4nLCfngpInLCfmiopb6J2m5LuBXeaUvuWIsOW5s+W6lemNi+ijoSrngpIq44CCJyksUyhbJ2VnZycsJ3JpY2UnXSwncGFuJywn54KSJywn5YaN5oqKW+mbnuibi13lkoxb55m96aOvXeaUvumAsuW5s+W6lemNi++8jOS4gOi1tyrngpIq77yBJyksUyhbJ3NjYWxsaW9uJ10sJ2Jvd2wnLCfmkpInLCfmiorngpLpo6\/nm5vpgLLnopfoo6HvvIzlho3miopb6JSlXSrmkpIq5Zyo5LiK6Z2i44CCJyldfSwKICB7bjon6aas6Yi06Jav6Zue6JuL5rKZ5ouJJyxweTonbceOIGzDrW5nIHNox5QgasSrIGTDoG4gc2jEgSBsxIEnLGVuOidQb3RhdG8gZWdnIHNhbGFkJyxzOltTKFsncG90YXRvJ10sJ2hhbmQnLCfliYonLCflhYjmiopb6aas6Yi06JavXeeahOearirliYoq5o6J44CCJyksUyhbJ3BvdGF0byddLCdib2FyZCcsJ+WIhycsJ+aKilvppqzpiLTolq9dKuWIhyrmiJDloYrjgIInKSxTKFsncG90YXRvJ10sJ3N0ZWFtZXInLCfokrgnLCfmiopb6aas6Yi06JavXeaUvumAsuiSuOexoOijoSrokrgq44CCJyksUyhbJ2VnZyddLCdwb3QnLCfnha4nLCfmiopb6Zue6JuLXeaUvumAsumNi+WtkOijoSrnha4q44CCJyksUyhbJ21heW8nXSwnYm93bCcsJ+aLjCcsJ+aKilvnvo7kuYPmu4td5Yqg6YCy56KX6KOh77yMKuaLjCrkuIAq5ouMKuOAgicpXX0sCiAge246J+a2vOaLjOWwj+m7g+eTnCcscHk6J2xpw6FuZyBiw6BuIHhpx45vIGh1w6FuZyBndcSBJyxlbjonQ3VjdW1iZXIgc2FsYWQnLHM6W1MoWydjdWN1bWJlciddLCdib2FyZCcsJ+WIh+eJhycsJ+WFiOaKilvlsI\/pu4Pnk5xdKuWIh+eJhyrjgIInKSxTKFsnY3VjdW1iZXInXSwncGxhdGUnLCfphoMnLCfmiopb5bCP6buD55OcXeaUvuWcqOebpOWtkOS4iirphoMq5LiA5LiL44CCJyksUyhbJ2dhcmxpYyddLCdib2FyZCcsJ+WJgScsJ+aKilvokpzpoK1dKuWJgSrnoo7jgIInKSxTKFsnZ2FybGljJywndmluZWdhciddLCdib3dsJywn5ouMJywn5oqKW+iSnOmgrV3lkoxb6YaLXeWKoOmAsueil+ijoe+8jCrmi4wq5LiAKuaLjCrjgIInKV19LAogIHtuOifngrjpm57mjpInLHB5Oid6aMOhIGrEqyBww6FpJyxlbjonRnJpZWQgY2hpY2tlbiBjdXRsZXQnLHM6W1MoWydjaGlja2VuJywnc295J10sJ3BsYXRlJywn6YaDJywn5oqKW+mbnuiCiV3lkoxb6Yas5rK5XeaUvuWcqOebpOWtkOS4iirphoMq5LiAKumGgyrjgIInKSxTKFsnZmxvdXInXSwnaGFuZCcsJ+WKoCcsJ+aKilvngrjnsoldKuWKoCrlnKjpm57ogonkuIrvvIzmsr7kuIDmsr7jgIInKSxTKFsnY2hpY2tlbiddLCdwYW4nLCfngrgnLCfmiopb6Zue6IKJXeaUvumAsuW5s+W6lemNiyrngrgq77yM54K45b6X6YeR6YeR6ISG6ISG77yBJyldfSwKICB7bjon5ryi5aChJyxweTonaMOgbiBix45vJyxlbjonSGFtYnVyZ2VyJyxzOltTKFsndG9tYXRvJ10sJ2JvYXJkJywn5YiH54mHJywn5YWI5oqKW+eVquiMhF0q5YiH54mHKuOAgicpLFMoWydiZWVmJ10sJ2JvYXJkJywn5YmBJywn5oqKW+eJm+iCiV0q5YmBKuaIkOiCieacq+OAgicpLFMoWydiZWVmJ10sJ3BhbicsJ+eFjicsJ+aKilvniZvogold5pS+5Zyo5bmz5bqV6Y2L5LiKKueFjirjgIInKSxTKFsnYnVuJ10sJ292ZW4nLCfng6QnLCfmiopb6bq15YyFXeaUvumAsueDpOeusSrng6Qq5LiAKueDpCrjgIInKSxTKFsnbGV0dHVjZSddLCdoYW5kJywn5YqgJywn5pyA5b6M5oqKW+eUn+iPnF0q5YqgKumAsum6teWMheijoeOAgicpXX0sCiAge246J+Wwj+exoOWMhScscHk6J3hpx45vIGzDs25nIGLEgW8nLGVuOidTb3VwIGR1bXBsaW5ncycsczpbUyhbJ3BvcmsnXSwnYm9hcmQnLCfliYEnLCflhYjmiopb6LGs6IKJXSrliYEq5oiQ6IKJ5pyr44CCJyksUyhbJ3BvcmsnXSwnYm93bCcsJ+aLjCcsJ+aKilvosazogold5pS+6YCy56KX6KOh77yMKuaLjCrmiJDogonppKHjgIInKSxTKFsnd3JhcHBlciddLCdoYW5kJywn5YyFJywn55So5omL5oqK6IKJ6aShKuWMhSrpgLJb6bq155quXeijoeOAgicpLFMoWyd3aXAnXSwnc3RlYW1lcicsJ+iSuCcsJ+aKilvljIXlpb3nmoTlsI\/nsaDljIVd5pS+6YCy6JK457GgKuiSuCrjgIInKV19LAogIHtuOifmsLTppIMnLHB5OidzaHXHkCBqaceObycsZW46J0JvaWxlZCBkdW1wbGluZ3MnLHM6W1MoWydjYWJiYWdlJ10sJ2JvYXJkJywn5YiHJywn5YWI5oqKW+mrmOm6l+iPnF0q5YiHKuS4gCrliIcq44CCJyksUyhbJ3BvcmsnXSwnYm9hcmQnLCfliYEnLCfmiopb6LGs6IKJXSrliYEq5oiQ6IKJ5pyr44CCJyksUyhbJ3BvcmsnLCdjYWJiYWdlJ10sJ2Jvd2wnLCfmi4wnLCfmiopb6LGs6IKJXeWSjFvpq5jpupfoj5xd5pS+6YCy56KX6KOh77yMKuaLjCrmiJDppKHjgIInKSxTKFsnZHVtcHdyYXAnXSwnaGFuZCcsJ+WMhScsJ+eUqOaJi+aKiumkoSrljIUq6YCyW+awtOmkg+earl3oo6HjgIInKSxTKFsnd2lwJ10sJ3BvdCcsJ+eFricsJ+aKilvljIXlpb3nmoTmsLTppINd5pS+6YCy6Y2L5a2Q6KOhKueFrirjgIInKV19LAogIHtuOifomL\/olJTmjpLpqqjmua8nLHB5OidsdcOzIGJvIHDDoWkgZ8eUIHTEgW5nJyxlbjonRGFpa29uIHBvcmsgcmliIHNvdXAnLHM6W1MoWydkYWlrb24nXSwnaGFuZCcsJ+WJiicsJ+WFiOaKilvnmb3omL\/olJRd55qE55quKuWJiirmjonjgIInKSxTKFsnZGFpa29uJ10sJ2JvYXJkJywn5YiHJywn5oqKW+eZveiYv+iUlF0q5YiHKuaIkOWhiuOAgicpLFMoWydyaWJzJ10sJ2JvYXJkJywn5YmBJywn5oqKW+aOkumqqF0q5YmBKuaIkOWwj+WhiuOAgicpLFMoWydyaWJzJ10sJ3BvdCcsJ+eHmScsJ+aKilvmjpLpqqhd5pS+6YCy6Y2L5a2Q6KOhKueHmSrkuIDkuIvjgIInKSxTKFsnZGFpa29uJ10sJ3BvdCcsJ+eGrCcsJ+WGjeaKilvnmb3omL\/olJRd5pS+6YCy6Y2L5a2Q6KOh77yM5oWi5oWiKueGrCrmiJDmua\/jgIInKV19LAogIHtuOifom6TonIrokrjom4snLHB5Oidnw6kgbMOtIHpoxJNuZyBkw6BuJyxlbjonU3RlYW1lZCBlZ2cgd2l0aCBjbGFtcycsczpbUyhbJ2VnZyddLCdib3dsJywn5omT6JuLJywn5YWIKuaJk+ibiyrvvJrmiopb6Zue6JuLXeaJk+mAsueil+ijoeOAgicpLFMoWydlZ2cnXSwnYm93bCcsJ+aLjCcsJ+aKiueil+ijoeeahFvpm57om4tdKuaLjCrkuIAq5ouMKuOAgicpLFMoWydjbGFtJ10sJ2hhbmQnLCfliqAnLCfmiopb6Juk6JyKXSrliqAq6YCy56KX6KOh55qE6JuL6KOh44CCJyksUyhbJ3dpcCddLCdzdGVhbWVyJywn6JK4Jywn5oqKW+aVtOeil+ibi13mlL7pgLLokrjnsaAq6JK4KuOAgicpXX0sCiAge246J+eCuOiWr+ainScscHk6J3pow6Egc2jHlCB0acOhbycsZW46J0ZyZW5jaCBmcmllcycsczpbUyhbJ3BvdGF0byddLCdoYW5kJywn5YmKJywn5YWI5oqKW+mmrOmItOiWr13nmoTnmq4q5YmKKuaOieOAgicpLFMoWydwb3RhdG8nXSwnYm9hcmQnLCfliIcnLCfmiopb6aas6Yi06JavXSrliIcq5oiQ6ZW35qKd44CCJyksUyhbJ3BvdGF0byddLCdwYW4nLCfngrgnLCfmiopb6aas6Yi06JavXeaUvumAsuW5s+W6lemNi+ijoSrngrgq77yBJyldfSwKICB7bjon6aas6Yi06Jav54eJ6LGs6IKJJyxweTonbceOIGzDrW5nIHNox5QgZMO5biB6aMWrIHLDsnUnLGVuOidQb3JrICYgcG90YXRvIHN0ZXcnLHM6W1MoWydwb3RhdG8nLCdjYXJyb3QnXSwnaGFuZCcsJ+WJiicsJ+WFiOaKilvppqzpiLTolq9d5ZKMW+e0heiYv+iUlF3nmoTnmq4q5YmKKuaOieOAgicpLFMoWydwb3RhdG8nLCdwb3JrJywnY2Fycm90Jywnb25pb24nXSwnYm9hcmQnLCfliIcnLCfmiopb6aas6Yi06JavXeOAgVvosazogold44CBW+e0heiYv+iUlF3lkoxb5rSL6JSlXemDvSrliIcq5LiAKuWIhyrjgIInKSxTKFsncG9yayddLCdwYW4nLCfngpInLCfmiopb6LGs6IKJXeaUvuWIsOW5s+W6lemNi+ijoSrngpIq5LiAKueCkirjgIInKSxTKFsncG90YXRvJywncG9yaycsJ2NhcnJvdCcsJ29uaW9uJ10sJ3BvdCcsJ+eHiScsJ+aKilvppqzpiLTolq9d44CBW+ixrOiCiV3jgIFb57SF6Ji\/6JSUXeWSjFvmtIvolKVd6YO95pS+6YCy6Y2L5a2Q6KOhKueHiSrjgIInKV19LAogIHtuOifkuZ3lsaTloZTnhY7om4snLHB5OidqaceUIGPDqW5nIHTHjiBqacSBbiBkw6BuJyxlbjonVGhhaSBiYXNpbCBvbWVsZXR0ZScsczpbUyhbJ2Jhc2lsJ10sJ2JvYXJkJywn5YiHJywn5YWI5oqKW+S5neWxpOWhlF0q5YiHKuS4gCrliIcq44CCJyksUyhbJ2VnZyddLCdib3dsJywn5omT6JuLJywnKuaJk+ibiyrvvJrmiopb6Zue6JuLXeaJk+mAsueil+ijoeOAgicpLFMoWydiYXNpbCcsJ2VnZyddLCdib3dsJywn5ouMJywn5oqKW+S5neWxpOWhlF3lkoxb6Zue6JuLXeaUvumAsueil+ijoe+8jCrmi4wq5LiAKuaLjCrjgIInKSxTKFsnd2lwJ10sJ3BhbicsJ+eFjicsJ+aKilvmi4zlpb3nmoTom4td5YCS6YCy5bmz5bqV6Y2LKueFjirjgIInKV19LAogIHtuOifntIXomL\/olJTngpLmtIvolKUnLHB5Oidow7NuZyBsdcOzIGJvIGNox45vIHnDoW5nIGPFjW5nJyxlbjonQ2Fycm90ICYgb25pb24gc3Rpci1mcnknLHM6W1MoWydjYXJyb3QnXSwnaGFuZCcsJ+WJiicsJ+WFiOaKilvntIXomL\/olJRd55qE55quKuWJiirmjonjgIInKSxTKFsnY2Fycm90Jywnb25pb24nXSwnYm9hcmQnLCfliIcnLCfmiopb57SF6Ji\/6JSUXeWSjFvmtIvolKVdKuWIhyrkuIAq5YiHKuOAgicpLFMoWydjYXJyb3QnLCdvbmlvbiddLCdwYW4nLCfngpInLCfmiopb57SF6Ji\/6JSUXeWSjFvmtIvolKVd5pS+6YCy5bmz5bqV6Y2L77yM5LiA6LW3KueCkirvvIEnKV19LAogIHtuOifpppnoj4fpm57mua8nLHB5Oid4acSBbmcgZ8WrIGrEqyB0xIFuZycsZW46J1NoaWl0YWtlIGNoaWNrZW4gc291cCcsczpbUyhbJ2NoaWNrZW4nXSwnYm9hcmQnLCfliYEnLCflhYjmiopb6Zue6IKJXSrliYEq5oiQ5aGK44CCJyksUyhbJ2NoaWNrZW4nXSwncG90Jywn54eZJywn5oqKW+mbnuiCiV3mlL7pgLLpjYvlrZDoo6Eq54eZKuS4gOS4i+OAgicpLFMoWydzaGlpdGFrZSddLCdwb3QnLCfnh4knLCflho3miopb6aaZ6I+HXeaUvumAsumNi+WtkOijoe+8jCrnh4kq5oiQ5rmv44CCJyldfQogICx7bjon54Ok6IKJ5LiyJyxweTona8eObyByw7J1IGNodcOgbicsZW46J0dyaWxsZWQgcG9yayBza2V3ZXJzJyxzOltTKFsncG9yayddLCdib2FyZCcsJ+WIhycsJ+WFiOaKilvosazogoldKuWIhyrmiJDloYrjgIInKSxTKFsncG9yaycsJ3NveSddLCdwbGF0ZScsJ+mGgycsJ+aKilvosazogold5ZKMW+mGrOayuV3mlL7lnKjnm6TlrZDkuIoq6YaDKuS4gCrphoMq44CCJyksUyhbJ3BlcHBlciddLCdib2FyZCcsJ+WIhycsJ+aKilvpnZLmpJJdKuWIhyrmiJDloYrjgIInKSxTKFsnb25pb24nXSwnYm9hcmQnLCfliIfniYcnLCfmiopb5rSL6JSlXSrliIfniYcq44CCJyksUyhbJ3BvcmsnLCdwZXBwZXInLCdvbmlvbiddLCdvdmVuJywn54eS54OkJywn5oqKW+ixrOiCiV3jgIFb6Z2S5qSSXeWSjFvmtIvolKVd5Liy6LW35L6G77yM5pS+6YCy54Ok566xKueHkueDpCrjgIInKV19CiAgLHtuOiflnLDnk5znqIDpo68nLHB5Oidkw6wgZ3XEgSB4xKsgZsOgbicsZW46J1N3ZWV0IHBvdGF0byBjb25nZWUnLHM6W1MoWydzd2VldHBvdGF0byddLCdoYW5kJywn5YmKJywn5YWI5oqKW+WcsOeTnF3nmoTnmq4q5YmKKuaOieOAgicpLFMoWydzd2VldHBvdGF0byddLCdib2FyZCcsJ+WIhycsJ+aKilvlnLDnk5xdKuWIhyrmiJDlsI\/loYrjgIInKSxTKFsncmljZScsJ3N3ZWV0cG90YXRvJ10sJ3BvdCcsJ+eGrCcsJ+aKilvnmb3po69d5ZKMW+WcsOeTnF3mlL7pgLLpjYvlrZDoo6HvvIzmhaLmhaIq54asKuaIkOeogOmjr+OAgicpXX0KXTsKY29uc3QgRElTSF9JTUcgPSAnaHR0cHM6Ly90aWZmYW55c21hbmRhcmluLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8xMC8nOwpjb25zdCBMSU5FUyA9IFsn5oiR5oOz5ZCDe2R977yBJywn6ICB6ZeG77yM5oiR6KaBe2R977yBJywn6KuL57Wm5oiRe2R977yM6Kyd6Kyd44CCJywn5L2g5aW977yM5oiR6KaB5LiA5Lu9e2R944CCJ107CmNvbnN0IExPT0tTID0gWwogIHtoYWlyOicjMmIyMTFjJyxzaGlydDonIzJmNmZiMCcsdjowfSx7aGFpcjonIzVhM2EyMicsc2hpcnQ6JyNkNjNmMmMnLHY6MX0se2hhaXI6JyMxZTJiMjcnLHNoaXJ0OicjZjNiMjJlJyx2OjJ9LAogIHtoYWlyOicjOGE1NjM2JyxzaGlydDonIzIzODU1YScsdjowfSx7aGFpcjonIzNhMmYyYScsc2hpcnQ6JyNhMzViYjUnLHY6Mn0se2hhaXI6JyNjN2E0NmInLHNoaXJ0OicjZTA3YTNjJyx2OjF9Cl07CgovKiAtLS0tLS0tLS0tIGhlbHBlcnMgLS0tLS0tLS0tLSAqLwpjb25zdCAkID0gcz0+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzKTsKY29uc3Qgc2h1ZmZsZSA9IGE9PnthPWEuc2xpY2UoKTtmb3IobGV0IGk9YS5sZW5ndGgtMTtpPjA7aS0tKXtjb25zdCBqPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooaSsxKSk7W2FbaV0sYVtqXV09W2Fbal0sYVtpXV07fXJldHVybiBhO307CmNvbnN0IGljb24gPSBpZD0+eyBpZihpZD09PSd3aXAnKSByZXR1cm4gU1ZHLndpcDsgY29uc3QgZz1JTkdbaWRdOyByZXR1cm4gZy5lP2A8c3BhbiBjbGFzcz0iZSI+JHtnLmV9PC9zcGFuPmA6U1ZHW2cuc107IH07CmNvbnN0IGhpbnRIVE1MID0gaD0+aC5yZXBsYWNlKC9cKiguKz8pXCovZywnPGVtPiQxPC9lbT4nKS5yZXBsYWNlKC9cWyguKz8pXF0vZywnPHN0cm9uZz4kMTwvc3Ryb25nPicpOwpjb25zdCBydWJ5ID0gZD0+eyBjb25zdCBweT1kLnB5LnNwbGl0KCcgJyk7IHJldHVybiBgPHNwYW4gY2xhc3M9ImRpc2huYW1lIj4ke1suLi5kLm5dLm1hcCgoYyxpKT0+YDxydWJ5PiR7Y308cnQ+JHtweVtpXXx8Jyd9PC9ydD48L3J1Ynk+YCkuam9pbignJyl9PC9zcGFuPmA7IH07CmNvbnN0IHNhbWVTZXQ9KGEsYik9PmEubGVuZ3RoPT09Yi5sZW5ndGgmJmEuZXZlcnkoeD0+Yi5pbmNsdWRlcyh4KSk7CgpmdW5jdGlvbiBwZXJzb25TVkcobG9vayxoYXBweSl7CiAgY29uc3QgaGFpciA9IGxvb2sudj09PTE\/YDxjaXJjbGUgY3g9IjYwIiBjeT0iMzIiIHI9IjExIiBmaWxsPSIke2xvb2suaGFpcn0iLz5gOicnOwogIGNvbnN0IGxvbmdIYWlyID0gbG9vay52PT09Mj9gPHBhdGggZD0iTTMyIDYyIFEzMCA5MiA0MCAxMDAgTDgwIDEwMCBROTAgOTIgODggNjIgWiIgZmlsbD0iJHtsb29rLmhhaXJ9Ii8+YDonJzsKICBjb25zdCBleWVzID0gaGFwcHk\/JzxwYXRoIGQ9Ik00NyA2NiBxNCAtNSA4IDAgTTY1IDY2IHE0IC01IDggMCIgc3Ryb2tlPSIjMWUyYjI3IiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPic6JzxjaXJjbGUgY3g9IjUxIiBjeT0iNjYiIHI9IjMuMiIgZmlsbD0iIzFlMmIyNyIvPjxjaXJjbGUgY3g9IjY5IiBjeT0iNjYiIHI9IjMuMiIgZmlsbD0iIzFlMmIyNyIvPic7CiAgY29uc3QgbW91dGggPSBoYXBweT8nPHBhdGggZD0iTTUwIDc4IFE2MCA5MCA3MCA3OCBaIiBmaWxsPSIjYzI0MTJkIi8+JzonPHBhdGggZD0iTTUzIDc5IFE2MCA4NCA2NyA3OSIgc3Ryb2tlPSIjMWUyYjI3IiBzdHJva2Utd2lkdGg9IjIuNSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+JzsKICByZXR1cm4gYDxzdmcgdmlld0JveD0iMCAwIDEyMCAxNDAiIGFyaWEtaGlkZGVuPSJ0cnVlIj4ke2xvbmdIYWlyfTxwYXRoIGQ9Ik0yMiAxNDAgUTIyIDEwMCA2MCA5OCBROTggMTAwIDk4IDE0MCBaIiBmaWxsPSIke2xvb2suc2hpcnR9IiBzdHJva2U9IiMxZTJiMjciIHN0cm9rZS13aWR0aD0iMi41Ii8+JHtoYWlyfTxjaXJjbGUgY3g9IjYwIiBjeT0iNjgiIHI9IjI2IiBmaWxsPSIjZjRjZmE5IiBzdHJva2U9IiMxZTJiMjciIHN0cm9rZS13aWR0aD0iMi41Ii8+PHBhdGggZD0iTTMzIDY0IFEzMyA0MCA2MCA0MCBRODcgNDAgODcgNjQgUTc4IDUyIDYwIDUyIFE0MiA1MiAzMyA2NCBaIiBmaWxsPSIke2xvb2suaGFpcn0iLz4ke2V5ZXN9PGVsbGlwc2UgY3g9IjQ1IiBjeT0iNzUiIHJ4PSI0IiByeT0iMi41IiBmaWxsPSIjZjJhMDhlIi8+PGVsbGlwc2UgY3g9Ijc1IiBjeT0iNzUiIHJ4PSI0IiByeT0iMi41IiBmaWxsPSIjZjJhMDhlIi8+JHttb3V0aH08L3N2Zz5gOwp9CmZ1bmN0aW9uIGNoZWZTVkcobW9vZCl7CiAgY29uc3QgZXllcyA9IG1vb2Q9PT0ndGhpbmsnPyc8Y2lyY2xlIGN4PSI1MiIgY3k9IjY0IiByPSIzLjIiIGZpbGw9IiMxZTJiMjciLz48Y2lyY2xlIGN4PSI3MCIgY3k9IjY0IiByPSIzLjIiIGZpbGw9IiMxZTJiMjciLz48cGF0aCBkPSJNNDYgNTYgbDEwIC0yIE02NCA1NCBsMTAgMiIgc3Ryb2tlPSIjMWUyYjI3IiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+JzonPHBhdGggZD0iTTQ3IDY2IHE0IC01IDggMCBNNjUgNjYgcTQgLTUgOCAwIiBzdHJva2U9IiMxZTJiMjciIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+JzsKICByZXR1cm4gYDxzdmcgdmlld0JveD0iMCAwIDEyMCAxNDAiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMjIgMTQwIFEyMiAxMDAgNjAgOTggUTk4IDEwMCA5OCAxNDAgWiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjMWUyYjI3IiBzdHJva2Utd2lkdGg9IjIuNSIvPjxwYXRoIGQ9Ik00NiAxMDAgTDYwIDExOCBMNzQgMTAwIFoiIGZpbGw9IiNkNjNmMmMiLz48Y2lyY2xlIGN4PSI1MiIgY3k9IjEyMiIgcj0iMi41IiBmaWxsPSIjMWUyYjI3Ii8+PGNpcmNsZSBjeD0iNTIiIGN5PSIxMzIiIHI9IjIuNSIgZmlsbD0iIzFlMmIyNyIvPjxjaXJjbGUgY3g9IjYwIiBjeT0iNzAiIHI9IjI2IiBmaWxsPSIjZjRjZmE5IiBzdHJva2U9IiMxZTJiMjciIHN0cm9rZS13aWR0aD0iMi41Ii8+PGNpcmNsZSBjeD0iNDQiIGN5PSIzMCIgcj0iMTUiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzFlMmIyNyIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48Y2lyY2xlIGN4PSI2MCIgY3k9IjIyIiByPSIxNyIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjMWUyYjI3IiBzdHJva2Utd2lkdGg9IjIuNSIvPjxjaXJjbGUgY3g9Ijc2IiBjeT0iMzAiIHI9IjE1IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMxZTJiMjciIHN0cm9rZS13aWR0aD0iMi41Ii8+PHJlY3QgeD0iMzgiIHk9IjMyIiB3aWR0aD0iNDQiIGhlaWdodD0iMTgiIHJ4PSI0IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMxZTJiMjciIHN0cm9rZS13aWR0aD0iMi41Ii8+JHtleWVzfTxwYXRoIGQ9Ik00OCA3OCBRNTQgNzIgNjAgNzcgUTY2IDcyIDcyIDc4IFE2NiA4MiA2MCA3OSBRNTQgODIgNDggNzggWiIgZmlsbD0iIzNhMmEyMiIvPjxlbGxpcHNlIGN4PSI0NCIgY3k9Ijc0IiByeD0iNCIgcnk9IjIuNSIgZmlsbD0iI2YyYTA4ZSIvPjxlbGxpcHNlIGN4PSI3NiIgY3k9Ijc0IiByeD0iNCIgcnk9IjIuNSIgZmlsbD0iI2YyYTA4ZSIvPjwvc3ZnPmA7Cn0KCi8qIC0tLS0tLS0tLS0gc291bmQgLS0tLS0tLS0tLSAqLwpsZXQgQUM9bnVsbDsKZnVuY3Rpb24gYWMoKXsgdHJ5eyBpZighQUMpIEFDPW5ldyAod2luZG93LkF1ZGlvQ29udGV4dHx8d2luZG93LndlYmtpdEF1ZGlvQ29udGV4dCkoKTsgaWYoQUMuc3RhdGU9PT0nc3VzcGVuZGVkJykgQUMucmVzdW1lKCk7IHJldHVybiBBQzsgfWNhdGNoKGUpeyByZXR1cm4gbnVsbDsgfSB9CmZ1bmN0aW9uIHRvbmUoZixkLHR5cGU9J3NpbmUnLHY9LjA4LGRlbGF5PTAsc2xpZGUpeyBjb25zdCBjPWFjKCk7IGlmKCFjfHwhc3Quc2V0dGluZ3Muc291bmQpIHJldHVybjsgY29uc3QgdD1jLmN1cnJlbnRUaW1lK2RlbGF5OyBjb25zdCBvPWMuY3JlYXRlT3NjaWxsYXRvcigpLCBnPWMuY3JlYXRlR2FpbigpOyBvLnR5cGU9dHlwZTsgby5mcmVxdWVuY3kuc2V0VmFsdWVBdFRpbWUoZix0KTsgaWYoc2xpZGUpIG8uZnJlcXVlbmN5LmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoc2xpZGUsdCtkKTsgZy5nYWluLnNldFZhbHVlQXRUaW1lKHYsdCk7IGcuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKC4wMDAxLHQrZCk7IG8uY29ubmVjdChnKS5jb25uZWN0KGMuZGVzdGluYXRpb24pOyBvLnN0YXJ0KHQpOyBvLnN0b3AodCtkKy4wMik7IH0KZnVuY3Rpb24gbm9pc2UoZCxmdHlwZSxmcmVxLHY9LjA4LGRlbGF5PTApeyBjb25zdCBjPWFjKCk7IGlmKCFjfHwhc3Quc2V0dGluZ3Muc291bmQpIHJldHVybjsgY29uc3QgdD1jLmN1cnJlbnRUaW1lK2RlbGF5OyBjb25zdCBiPWMuY3JlYXRlQnVmZmVyKDEsTWF0aC5tYXgoMSxjLnNhbXBsZVJhdGUqZCksYy5zYW1wbGVSYXRlKTsgY29uc3QgY2g9Yi5nZXRDaGFubmVsRGF0YSgwKTsgZm9yKGxldCBpPTA7aTxjaC5sZW5ndGg7aSsrKSBjaFtpXT1NYXRoLnJhbmRvbSgpKjItMTsgY29uc3Qgcz1jLmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOyBzLmJ1ZmZlcj1iOyBjb25zdCBmPWMuY3JlYXRlQmlxdWFkRmlsdGVyKCk7IGYudHlwZT1mdHlwZTsgZi5mcmVxdWVuY3kudmFsdWU9ZnJlcTsgY29uc3QgZz1jLmNyZWF0ZUdhaW4oKTsgZy5nYWluLnNldFZhbHVlQXRUaW1lKHYsdCk7IGcuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKC4wMDAxLHQrZCk7IHMuY29ubmVjdChmKS5jb25uZWN0KGcpLmNvbm5lY3QoYy5kZXN0aW5hdGlvbik7IHMuc3RhcnQodCk7IH0KY29uc3QgU0ZYID0gewogIHRpY2soKXt0b25lKDcwMCwuMDYsJ3RyaWFuZ2xlJywuMDYpfSwKICBnb29kKCl7dG9uZSg2NjAsLjEyLCd0cmlhbmdsZScsLjA5KTt0b25lKDk5MCwuMiwndHJpYW5nbGUnLC4wOSwuMSl9LAogIGJhZCgpe3RvbmUoMjQwLC4xNCwnc3F1YXJlJywuMDM1KTt0b25lKDE4MCwuMjIsJ3NxdWFyZScsLjAzNSwuMTIpfSwKICBjaG9wKCl7WzAsLjIyLC40NCwuNjZdLmZvckVhY2goZD0+bm9pc2UoLjA1LCdiYW5kcGFzcycsMjQwMCwuMjUsZCkpfSwKICBzaXp6bGUoKXtub2lzZSgxLjEsJ2hpZ2hwYXNzJywzMjAwLC4wOSl9LAogIGZyeSgpe25vaXNlKDEuMSwnaGlnaHBhc3MnLDIyMDAsLjEyKTtbLjEsLjMsLjUsLjhdLmZvckVhY2goZD0+bm9pc2UoLjAzLCdiYW5kcGFzcycsNDAwMCwuMTUsZCkpfSwKICBidWJibGUoKXtbMCwuMTUsLjMsLjQ1LC42LC44XS5mb3JFYWNoKGQ9PnRvbmUoMzAwK01hdGgucmFuZG9tKCkqMzAwLC4wOSwnc2luZScsLjA5LGQsOTAwKSl9LAogIHN0ZWFtKCl7bm9pc2UoMS4xLCdoaWdocGFzcycsNTAwMCwuMDcpfSwKICBoZWF0KCl7dG9uZSgxMTAsLjksJ3Nhd3Rvb3RoJywuMDIpO3RvbmUoMTMyMCwuMywnc2luZScsLjA3LC44NSl9LAogIHNwYXJrKCl7WzAsLjEyLC4yNF0uZm9yRWFjaCgoZCxpKT0+dG9uZSgxMjAwK2kqMzAwLC4xOCwnc2luZScsLjA2LGQpKX0sCiAgc3Rpcigpe1swLC4zLC42XS5mb3JFYWNoKGQ9Pm5vaXNlKC4yMiwnYmFuZHBhc3MnLDkwMCwuMTIsZCkpfSwKICBwb3AoKXt0b25lKDQwMCwuMTIsJ3NpbmUnLC4xLDAsOTAwKX0sCiAgc2VydmUoKXtbNTIzLDY1OSw3ODQsMTA0Nl0uZm9yRWFjaCgoZixpKT0+dG9uZShmLC4yNSwndHJpYW5nbGUnLC4wOCxpKi4xKSl9Cn07CmNvbnN0IEZYID0geyfmiZPom4snOidwb3AnLCfnh5Lng6QnOidoZWF0Jywn5YiH54mHJzonY2hvcCcsJ+WKoCc6J3BvcCcsJ+WJgSc6J2Nob3AnLCfliYonOidjaG9wJywn5pKSJzonc3BhcmsnLCfljIUnOidwb3AnLCfliIcnOidjaG9wJywn54KSJzonc2l6emxlJywn54WOJzonc2l6emxlJywn54K4JzonZnJ5Jywn54WuJzonYnViYmxlJywn54eJJzonYnViYmxlJywn54asJzonYnViYmxlJywn54eZJzonYnViYmxlJywn5ru3JzonYnViYmxlJywn6JK4Jzonc3RlYW0nLCfng6QnOidoZWF0Jywn6YaDJzonc3BhcmsnLCfmi4wnOidzdGlyJ307CgovKiAtLS0tLS0tLS0tIHN0YXRlIC0tLS0tLS0tLS0gKi8KbGV0IHN0ID0gewogIHNjcmVlbjonc3RhcnQnLCBzZXR0aW5nczp7Y291bnQ6NSxzaG93TmFtZXM6dHJ1ZSxzb3VuZDp0cnVlfSwKICBvcmRlcjpbXSwgaWR4OjAsIHN0ZXA6MCwgc2VsOltdLCBwaGFzZToncGljaycsIGVyclN0ZXA6MCwgZ2xvdzpmYWxzZSwgZGlzaEVycjowLCBkaXNoR2xvdzpmYWxzZSwKICByZXN1bHRzOltdLCB0cmF5OltdLCBvbjp7fSwgYWN0T3JkZXI6W10sIGxvb2s6MCwgbGluZTonJywgZmI6bnVsbCwgbGVhcm5lZDpudWxsLCBhbmltOm51bGwsIGFycml2ZTpmYWxzZSwgc2hha2U6bnVsbAp9OwpsZXQgZmJUaW1lcj1udWxsOwoKZnVuY3Rpb24gc3RhcnRHYW1lKCl7CiAgYWMoKTsKICBjb25zdCBuID0gc3Quc2V0dGluZ3MuY291bnQ7CiAgY29uc3QgcHJldj1zdC5sYXN0UGxheWVkfHxbXTsKICBsZXQgcG9vbD1zaHVmZmxlKERJU0hFUy5tYXAoKF8saSk9PmkpKTsKICBpZihuPERJU0hFUy5sZW5ndGgpIHBvb2wuc29ydCgoYSxiKT0+cHJldi5pbmNsdWRlcyhhKS1wcmV2LmluY2x1ZGVzKGIpKTsKICBzdC5vcmRlciA9IHBvb2wuc2xpY2UoMCxuKTsgc3QubGFzdFBsYXllZCA9IHN0Lm9yZGVyLnNsaWNlKCk7CiAgc3QuaWR4PTA7IHN0LnJlc3VsdHM9W107IHN0LnNjcmVlbj0ncGxheSc7CiAgaW5pdERpc2goKTsgcmVuZGVyKCk7Cn0KZnVuY3Rpb24gZGlzaCgpeyByZXR1cm4gRElTSEVTW3N0Lm9yZGVyW3N0LmlkeF1dOyB9CmZ1bmN0aW9uIGN1clN0ZXAoKXsgcmV0dXJuIGRpc2goKS5zW3N0LnN0ZXBdOyB9CmZ1bmN0aW9uIGRpc2hJbmdzKGQpeyBjb25zdCBzZXQ9W107IGQucy5mb3JFYWNoKHM9PnMuaS5mb3JFYWNoKHg9PnsgaWYoeCE9PSd3aXAnJiYhc2V0LmluY2x1ZGVzKHgpKSBzZXQucHVzaCh4KTsgfSkpOyByZXR1cm4gc2V0OyB9CmZ1bmN0aW9uIGluaXREaXNoKCl7CiAgY29uc3QgZD1kaXNoKCk7IGNvbnN0IG93bj1kaXNoSW5ncyhkKTsKICBjb25zdCBwb29sPXNodWZmbGUoT2JqZWN0LmtleXMoSU5HKS5maWx0ZXIoaz0+IW93bi5pbmNsdWRlcyhrKSkpOwogIGNvbnN0IGV4dHJhPXBvb2wuc2xpY2UoMCwgb3duLmxlbmd0aD49ND8yOjMpOwogIHN0LnRyYXkgPSBzaHVmZmxlKG93bi5jb25jYXQoZXh0cmEpKS5jb25jYXQoWyd3aXAnXSk7CiAgc3Quc3RlcD0wOyBzdC5zZWw9W107IHN0LnBoYXNlPSdwaWNrJzsgc3QuZXJyU3RlcD0wOyBzdC5nbG93PWZhbHNlOyBzdC5kaXNoRXJyPTA7IHN0LmRpc2hHbG93PWZhbHNlOwogIHN0Lm9uPXt9OyBzdC5mYj1udWxsOyBzdC5sZWFybmVkPW51bGw7IHN0LmFuaW09bnVsbDsKICBzdC5sb29rID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKkxPT0tTLmxlbmd0aCk7CiAgc3QubGluZSA9IExJTkVTW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpMSU5FUy5sZW5ndGgpXTsKICBzdC5hcnJpdmU9dHJ1ZTsgc2V0VGltZW91dCgoKT0+e3N0LmFycml2ZT1mYWxzZX0sODAwKTsKfQpmdW5jdGlvbiBmZWVkYmFjayhtYWluLHN1YixraW5kPSdiYWQnKXsKICBzdC5mYj17bWFpbixzdWIsa2luZH07IGNsZWFyVGltZW91dChmYlRpbWVyKTsKICBmYlRpbWVyPXNldFRpbWVvdXQoKCk9PntzdC5mYj1udWxsOyByZW5kZXIoKTt9LDI2MDApOwp9CmZ1bmN0aW9uIHdyb25nKHN1Yix0YXJnZXQpewogIHN0LmVyclN0ZXArKzsgc3QuZGlzaEVycisrOwogIGlmKHN0LmVyclN0ZXA+PTIpeyBzdC5nbG93PXRydWU7IHN0LmRpc2hHbG93PXRydWU7IH0KICBmZWVkYmFjaygn5aW95YOP5LiN5bCN5ZaU77yM5YaN5oOz5oOz77yBJywgc3QuZ2xvdz9zdWIrJyBMb29rIGZvciB0aGUgZ2xvdyEnOnN1Yik7CiAgc3Quc2hha2U9dGFyZ2V0OyBTRlguYmFkKCk7IHJlbmRlcigpOyBzdC5zaGFrZT1udWxsOwp9CmZ1bmN0aW9uIHRhcEluZyhpZCl7CiAgaWYoc3QucGhhc2UhPT0ncGljaycmJnN0LnBoYXNlIT09J2FjdGlvbicpIHJldHVybjsKICBjb25zdCBpPXN0LnNlbC5pbmRleE9mKGlkKTsgaWYoaT49MCkgc3Quc2VsLnNwbGljZShpLDEpOyBlbHNlIHN0LnNlbC5wdXNoKGlkKTsKICBTRlgudGljaygpOyByZW5kZXIoKTsKfQpmdW5jdGlvbiB0YXBUb29sKHRpZCl7CiAgaWYoc3QucGhhc2UhPT0ncGljaycmJnN0LnBoYXNlIT09J2FjdGlvbicpIHJldHVybjsKICBpZihzdC5waGFzZT09PSdhY3Rpb24nJiZzdC5hY3RUb29sPT09dGlkKXsgc3QucGhhc2U9J3BpY2snOyByZW5kZXIoKTsgcmV0dXJuOyB9CiAgY29uc3QgZnJlc2g9c3QucGhhc2UhPT0nYWN0aW9uJzsgc3QucGhhc2U9J2FjdGlvbic7IHN0LmFjdFRvb2w9dGlkOyBzdC5hY3RPcmRlcj1zaHVmZmxlKFRPT0xbdGlkXS5hY3RzKTsgc3Quc2hlZXRBbmltPWZyZXNoOyBTRlgudGljaygpOyByZW5kZXIoKTsgc3Quc2hlZXRBbmltPWZhbHNlOwp9CmZ1bmN0aW9uIHRhcEFjdChhKXsKICBpZihzdC5waGFzZSE9PSdhY3Rpb24nKSByZXR1cm47CiAgY29uc3Qgcz1jdXJTdGVwKCksIHRpZD1zdC5hY3RUb29sLCB3YW50PXMuYTsKICBpZighc3Quc2VsLmxlbmd0aCl7IGZlZWRiYWNrKCdQaWNrIGluZ3JlZGllbnRzIGZpcnN0IScsJ1RhcCBpbmdyZWRpZW50cyBiZWxvdywgdGhlbiBjaG9vc2UgYW4gYWN0aW9uLicsJ2luZm8nKTsgcmVuZGVyKCk7IHJldHVybjsgfQogIGlmKGEhPT13YW50KXsgd3JvbmcoJ1dyb25nIGFjdGlvbi4nLCdzaGVldCcpOyByZXR1cm47IH0KICBpZih0aWQhPT1zLnQpeyB3cm9uZygnV3Jvbmcgc3RhdGlvbi4nLCdzaGVldCcpOyByZXR1cm47IH0KICBpZighc2FtZVNldChzdC5zZWwscy5pKSl7IHdyb25nKCdDaGVjayB0aGUgaW5ncmVkaWVudHMuJywndHJheScpOyByZXR1cm47IH0KICBzdC5vblt0aWRdPXMuaS5zbGljZSgpOyBzdC5waGFzZT0nYnVzeSc7CiAgc3QubGVhcm5lZD17ZW46QUNUW2FdLmVuLHpoOmF9OyBzdC5hbmltPXt0b29sOnRpZCxmeDpGWFthXX07CiAgU0ZYLmdvb2QoKTsgc2V0VGltZW91dCgoKT0+U0ZYW0ZYW2FdXSgpLDE1MCk7IHJlbmRlcigpOwogIHNldFRpbWVvdXQoKCk9Pnsgc3QubGVhcm5lZD1udWxsOyByZW5kZXIoKTsgfSwxMzAwKTsKICBzZXRUaW1lb3V0KG5leHRTdGVwLDE3MDApOwp9CmZ1bmN0aW9uIGJhY2tGcm9tQWN0KCl7IGlmKHN0LnBoYXNlPT09J2FjdGlvbicpeyBzdC5waGFzZT0ncGljayc7IHJlbmRlcigpOyB9IH0KZnVuY3Rpb24gbmV4dFN0ZXAoKXsKICBzdC5zdGVwKys7IHN0LnNlbD1bXTsgc3QuZXJyU3RlcD0wOyBzdC5nbG93PWZhbHNlOyBzdC5hbmltPW51bGw7IHN0LmxlYXJuZWQ9bnVsbDsgc3QuZmI9bnVsbDsKICBzdC5waGFzZSA9IHN0LnN0ZXA+PWRpc2goKS5zLmxlbmd0aCA\/ICdyZWFkeScgOiAncGljayc7CiAgcmVuZGVyKCk7Cn0KZnVuY3Rpb24gc2VydmUoKXsKICBjb25zdCBzdGFycyA9IHN0LmRpc2hHbG93PzE6KHN0LmRpc2hFcnI+MD8yOjMpOwogIHN0LnJlc3VsdHMucHVzaCh7ZDpzdC5vcmRlcltzdC5pZHhdLHN0YXJzfSk7CiAgc3QucGhhc2U9J3NlcnZlZCc7IFNGWC5zZXJ2ZSgpOyByZW5kZXIoKTsKfQpmdW5jdGlvbiBuZXh0Q3VzdG9tZXIoKXsKICBpZihzdC5pZHgrMT49c3Qub3JkZXIubGVuZ3RoKXsgc3Quc2NyZWVuPSdzdW1tYXJ5JzsgcmVuZGVyKCk7IHJldHVybjsgfQogIHN0LmlkeCsrOyBpbml0RGlzaCgpOyByZW5kZXIoKTsKfQoKLyogLS0tLS0tLS0tLSByZW5kZXIgLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiBzdGFyU3RyKG4peyByZXR1cm4gJ+KYhScucmVwZWF0KG4pK2A8c3BhbiBjbGFzcz0ib2ZmIj4keyfimIUnLnJlcGVhdCgzLW4pfTwvc3Bhbj5gOyB9CmZ1bmN0aW9uIHRvdGFsU3RhcnMoKXsgcmV0dXJuIHN0LnJlc3VsdHMucmVkdWNlKChhLHIpPT5hK3Iuc3RhcnMsMCk7IH0KCmZ1bmN0aW9uIHJlbmRlclNpZ24oKXsKICBjb25zdCBwbGF5ID0gc3Quc2NyZWVuPT09J3BsYXknOwogIHJldHVybiBgPGhlYWRlciBjbGFzcz0ic2lnbiI+PGgxPjxzcGFuIGNsYXNzPSJsYW1wIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPlRpZmZhbnnmvKLlrZfppJDlu7MgPHNtYWxsPkhhbnppIEtpdGNoZW48L3NtYWxsPjwvaDE+PGRpdiBjbGFzcz0ibWV0YSI+CiAgICAke3BsYXk\/YDxzcGFuIGNsYXNzPSJjaGlwIj5DdXN0b21lciA8Yj4ke3N0LmlkeCsxfTwvYj4gLyAke3N0Lm9yZGVyLmxlbmd0aH08L3NwYW4+PHNwYW4gY2xhc3M9ImNoaXAiPuKYhSA8Yj4ke3RvdGFsU3RhcnMoKX08L2I+PC9zcGFuPmA6Jyd9CiAgICA8YnV0dG9uIGNsYXNzPSJ0b2dnbGUiIGlkPSJ0Zy1uYW1lcyIgYXJpYS1wcmVzc2VkPSIke3N0LnNldHRpbmdzLnNob3dOYW1lc30iPkxhYmVsczogJHtzdC5zZXR0aW5ncy5zaG93TmFtZXM\/J09uJzonT2ZmJ308L2J1dHRvbj4KICAgIDxidXR0b24gY2xhc3M9InRvZ2dsZSIgaWQ9InRnLXNvdW5kIiBhcmlhLXByZXNzZWQ9IiR7c3Quc2V0dGluZ3Muc291bmR9Ij5Tb3VuZDogJHtzdC5zZXR0aW5ncy5zb3VuZD8nT24nOidPZmYnfTwvYnV0dG9uPgogIDwvZGl2PjwvaGVhZGVyPmA7Cn0KCmZ1bmN0aW9uIHJlbmRlclN0YXJ0KCl7CiAgY29uc3QgYz1zdC5zZXR0aW5ncy5jb3VudDsKICByZXR1cm4gYDxzZWN0aW9uIGNsYXNzPSJjYXJkIj4KICAgIDxkaXYgY2xhc3M9Imhlcm8iPjxkaXYgY2xhc3M9ImZpZyI+JHtjaGVmU1ZHKCdoYXBweScpfTwvZGl2PjxkaXY+PGgyPlRpZmZhbnnmvKLlrZfppJDlu7M8L2gyPjxwPlJlYWQgZWFjaCBjdXN0b21lcidzIG9yZGVyLCBwaWNrIHRoZSByaWdodCBpbmdyZWRpZW50cywgdXNlIHRoZSByaWdodCBzdGF0aW9uLCBhbmQgY2hvb3NlIHRoZSByaWdodCBjb29raW5nIGFjdGlvbi4gVGhlIGNoZWYncyB0aG91Z2h0IGJ1YmJsZSBnaXZlcyB5b3UgaGludHMgaW4gQ2hpbmVzZS48L3A+PC9kaXY+PC9kaXY+CiAgICA8b2wgY2xhc3M9ImhvdyI+CiAgICAgIDxsaT5SZWFkIHdoYXQgdGhlIGN1c3RvbWVyIG9yZGVycy48L2xpPgogICAgICA8bGk+UmVhZCB0aGUgY2hlZidzIGhpbnQgYW5kIHRhcCB0aGUgaW5ncmVkaWVudHMgeW91IG5lZWQuPC9saT4KICAgICAgPGxpPk9wZW4gYW55IHN0YXRpb24gdG8gc2VlIGl0cyBhY3Rpb25zLCB0aGVuIGNob29zZSB0aGUgb25lIHRoYXQgbWF0Y2hlcyB0aGUgdmVyYiBpbiB0aGUgaGludC48L2xpPgogICAgPC9vbD4KICAgIDxkaXYgY2xhc3M9Im9wdHMiPgogICAgICA8ZGl2IGNsYXNzPSJvcHQiPjxzcGFuPkRpc2hlcyB0aGlzIHJvdW5kPC9zcGFuPjxkaXYgY2xhc3M9InNlZyI+CiAgICAgICAgJHtbNSwxMCxESVNIRVMubGVuZ3RoXS5tYXAobj0+YDxidXR0b24gZGF0YS1jb3VudD0iJHtufSIgYXJpYS1wcmVzc2VkPSIke2M9PT1ufSI+JHtuPT09RElTSEVTLmxlbmd0aD8nQWxsICcrbjpuKycgZGlzaGVzJ308L2J1dHRvbj5gKS5qb2luKCcnKX0KICAgICAgPC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Im9wdCI+PHNwYW4+SW5ncmVkaWVudCBsYWJlbHM8L3NwYW4+PGRpdiBjbGFzcz0ic2VnIj48YnV0dG9uIGRhdGEtbmFtZXM9IjEiIGFyaWEtcHJlc3NlZD0iJHtzdC5zZXR0aW5ncy5zaG93TmFtZXN9Ij5PbjwvYnV0dG9uPjxidXR0b24gZGF0YS1uYW1lcz0iMCIgYXJpYS1wcmVzc2VkPSIkeyFzdC5zZXR0aW5ncy5zaG93TmFtZXN9Ij5PZmYgKGhhcmRlcik8L2J1dHRvbj48L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdj48YnV0dG9uIGNsYXNzPSJiaWciIGlkPSJnbyI+T3BlbiB0aGUgcmVzdGF1cmFudDwvYnV0dG9uPjwvZGl2PgogIDwvc2VjdGlvbj5gOwp9CgpmdW5jdGlvbiByZW5kZXJQbGF5KCl7CiAgY29uc3QgZD1kaXNoKCksIGxvb2s9TE9PS1Nbc3QubG9va107CiAgY29uc3Qgc2VydmVkPXN0LnBoYXNlPT09J3NlcnZlZCcsIHJlYWR5PXN0LnBoYXNlPT09J3JlYWR5JzsKICBjb25zdCBvcmRlciA9IHN0LmxpbmUucmVwbGFjZSgvXHtkXH0oLj8pLywobSxwKT0+YDxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpub3dyYXAiPiR7cnVieShkKX0ke3B9PC9zcGFuPmApOwogIGNvbnN0IGN1c3RTYXkgPSBzZXJ2ZWQKICAgID8gYDxkaXYgY2xhc3M9InNheSI+6Kyd6Kyd77yB5aW95aW95ZCD77yBPC9kaXY+PGRpdiBjbGFzcz0ic3RhcnMiPiR7c3RhclN0cihzdC5yZXN1bHRzW3N0LnJlc3VsdHMubGVuZ3RoLTFdLnN0YXJzKX08L2Rpdj5gCiAgICA6IGA8ZGl2IGNsYXNzPSJidWJibGUtbGFiZWwiPk9SREVSPC9kaXY+PGRpdiBjbGFzcz0ic2F5Ij4ke29yZGVyfTwvZGl2PmA7CiAgbGV0IGNoZWZTYXk7CiAgaWYoc2VydmVkKSBjaGVmU2F5PWA8ZGl2IGNsYXNzPSJoaW50Ij7mraHov47lho3kvobvvIE8L2Rpdj5gOwogIGVsc2UgaWYocmVhZHkpIGNoZWZTYXk9YDxkaXYgY2xhc3M9ImhpbnQiPldlbGwgZG9uZSEg5b+r5oqK6I+c56uv57Wm5a6i5Lq65ZCn77yBPC9kaXY+YDsKICBlbHNlIGNoZWZTYXk9YDxkaXYgY2xhc3M9ImJ1YmJsZS1sYWJlbCI+Q0hFRiBJUyBUSElOS0lOR+KApjwvZGl2PjxkaXYgY2xhc3M9ImhpbnQiPiR7aGludEhUTUwoY3VyU3RlcCgpLmgpfTwvZGl2PjxkaXYgY2xhc3M9ImxlZ2VuZCI+PHNwYW4+PGkgY2xhc3M9Imx2Ij5yZWQ8L2k+ID0gYWN0aW9uPC9zcGFuPjxzcGFuPjxpIGNsYXNzPSJsaSI+Z3JlZW48L2k+ID0gaW5ncmVkaWVudDwvc3Bhbj48L2Rpdj5gOwogIGlmKHN0LmZiKSBjaGVmU2F5Kz1gPGRpdiBjbGFzcz0iZmIgJHtzdC5mYi5raW5kPT09J2luZm8nPydpbmZvJzonJ30iPiR7c3QuZmIubWFpbn08c21hbGw+JHtzdC5mYi5zdWJ9PC9zbWFsbD48L2Rpdj5gOwoKICBjb25zdCBzID0gKCFzZXJ2ZWQmJiFyZWFkeSk\/Y3VyU3RlcCgpOm51bGw7CiAgY29uc3QgZ2xvd0luZyA9IHN0Lmdsb3cmJihzdC5waGFzZT09PSdwaWNrJ3x8c3QucGhhc2U9PT0nYWN0aW9uJykmJnM\/cy5pOltdOwogIGNvbnN0IGdsb3dUb29sID0gc3QuZ2xvdyYmKHN0LnBoYXNlPT09J3BpY2snfHxzdC5waGFzZT09PSdhY3Rpb24nKSYmcz9zLnQ6bnVsbDsKCiAgY29uc3QgZG90cyA9IGQucy5tYXAoKHgsaSk9PnsKICAgIGNvbnN0IGRvbmU9aTxzdC5zdGVwLCBub3c9aT09PXN0LnN0ZXAmJiFyZWFkeSYmIXNlcnZlZDsKICAgIHJldHVybiBgPHNwYW4gY2xhc3M9ImRvdCAke2RvbmU\/J2RvbmUnOicnfSAke25vdz8nbm93JzonJ30iIHRpdGxlPSJTdGVwICR7aSsxfSI+JHtkb25lJiZ4LmE\/eC5hOihpKzEpfTwvc3Bhbj5gOwogIH0pLmpvaW4oJycpOwogIGNvbnN0IHNlbGJhciA9IHN0LnNlbC5sZW5ndGgmJihzdC5waGFzZT09PSdwaWNrJ3x8c3QucGhhc2U9PT0nYWN0aW9uJykgPyBgPGRpdiBjbGFzcz0ic2VsYmFyIj5TZWxlY3RlZDogJHtzdC5zZWwubWFwKGlkPT5gPHNwYW4gY2xhc3M9InBpbGwiPiR7aWNvbihpZCl9PC9zcGFuPmApLmpvaW4oJycpfTwvZGl2PmA6Jyc7CgogIGNvbnN0IHN0YXRpb25zID0gVE9PTFMubWFwKHQ9PnsKICAgIGNvbnN0IGZ4ID0gc3QuYW5pbSYmc3QuYW5pbS50b29sPT09dC5pZCA\/IGZ4SFRNTChzdC5hbmltLmZ4KSA6ICcnOwogICAgY29uc3Qgb24gPSAoc3Qub25bdC5pZF18fFtdKS5tYXAoaWQ9Pmljb24oaWQpKS5qb2luKCcnKTsKICAgIHJldHVybiBgPGJ1dHRvbiBjbGFzcz0ic3RhdGlvbiAke3N0LnBoYXNlPT09J2FjdGlvbicmJnN0LmFjdFRvb2w9PT10LmlkPydhY3RpdmUnOicnfSAke2dsb3dUb29sPT09dC5pZD8nZ2xvdyc6Jyd9ICR7c3Quc2hha2U9PT0nc3QtJyt0LmlkPydzaGFrZSc6Jyd9IiBkYXRhLXRvb2w9IiR7dC5pZH0iIGFyaWEtbGFiZWw9IiR7dC5lbn0iPgogICAgICAke1RPT0xTVkdbdC5pZF19PHNwYW4gY2xhc3M9ImxibCI+JHt0LmVufTwvc3Bhbj48c3BhbiBjbGFzcz0ib24iPiR7b259PC9zcGFuPiR7Znh9PC9idXR0b24+YDsKICB9KS5qb2luKCcnKTsKCiAgbGV0IGxvd2VyOwogIGlmKHJlYWR5fHxzZXJ2ZWQpewogICAgY29uc3QgaXRlbXMgPSBkaXNoSW5ncyhkKS5zbGljZSgwLDYpLm1hcChpZD0+aWNvbihpZCkpLmpvaW4oJycpOwogICAgbG93ZXIgPSBgPGRpdiBjbGFzcz0ic2VydmViYXIiPjxkaXYgY2xhc3M9ImRpc2hwaG90byI+PGltZyBzcmM9IiR7RElTSF9JTUd9JHtlbmNvZGVVUklDb21wb25lbnQoZC5uKX0ucG5nIiBhbHQ9IiR7ZC5ufSIgb25lcnJvcj0idGhpcy5wYXJlbnROb2RlLmNsYXNzTGlzdC5hZGQoJ25vaW1nJykiPjxkaXYgY2xhc3M9InBsYXRlIj4ke1BMQVRFU1ZHfTxkaXYgY2xhc3M9Iml0ZW1zIj4ke2l0ZW1zfTwvZGl2PjwvZGl2PjwvZGl2PgogICAgICA8ZGl2PiR7cnVieShkKX08ZGl2IHN0eWxlPSJjb2xvcjp2YXIoLS1tdXRlZCk7bWFyZ2luOjJweCAwIDEwcHgiPiR7ZC5lbn08L2Rpdj4KICAgICAgJHtyZWFkeT9gPGJ1dHRvbiBjbGFzcz0iYmlnIiBpZD0ic2VydmUiPlNlcnZlITwvYnV0dG9uPmA6YDxidXR0b24gY2xhc3M9ImJpZyBhbHQiIGlkPSJuZXh0Ij4ke3N0LmlkeCsxPj1zdC5vcmRlci5sZW5ndGg\/J1NlZSByZXN1bHRzJzonTmV4dCBjdXN0b21lcid9PC9idXR0b24+YH08L2Rpdj48L2Rpdj5gOwogIH0gZWxzZSB7CiAgICBjb25zdCBoYXNXID0gZC5zLnNvbWUoeD0+eC5pLmluY2x1ZGVzKCd3aXAnKSkgJiYgc3Quc3RlcD4wOwogICAgY29uc3QgdGlsZXMgPSBzdC50cmF5LmZpbHRlcihpZD0+aWQhPT0nd2lwJ3x8aGFzVykubWFwKGlkPT57CiAgICAgIGNvbnN0IGlzVz1pZD09PSd3aXAnLCBubT1pc1c\/J1lvdXIgZGlzaCc6SU5HW2lkXS5lbjsKICAgICAgY29uc3Qgc2hvd04gPSBpc1d8fHN0LnNldHRpbmdzLnNob3dOYW1lczsKICAgICAgcmV0dXJuIGA8YnV0dG9uIGNsYXNzPSJ0aWxlICR7aXNXPyd3aXAnOicnfSAke3N0LnNlbC5pbmNsdWRlcyhpZCk\/J3NlbCc6Jyd9ICR7Z2xvd0luZy5pbmNsdWRlcyhpZCk\/J2dsb3cnOicnfSIgZGF0YS1pbmc9IiR7aWR9IiBhcmlhLWxhYmVsPSIke25tfSIgYXJpYS1wcmVzc2VkPSIke3N0LnNlbC5pbmNsdWRlcyhpZCl9Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iaWMiPiR7aWNvbihpZCl9PC9zcGFuPiR7c2hvd04\/YDxzcGFuIGNsYXNzPSJubSI+JHtubX08L3NwYW4+YDonJ30ke2lzVz8nPHNwYW4gY2xhc3M9ImNhcCI+SU4gUFJPR1JFU1M8L3NwYW4+JzonJ308L2J1dHRvbj5gOwogICAgfSkuam9pbignJyk7CiAgICBsb3dlciA9IGA8ZGl2IGNsYXNzPSJ0cmF5aGVhZCI+PGgyPkluZ3JlZGllbnRzPC9oMj48cD5UYXAgaW5ncmVkaWVudHMgKHlvdSBjYW4gcGljayBtb3JlIHRoYW4gb25lKSwgdGhlbiBvcGVuIGEgc3RhdGlvbiB0byBzZWUgaXRzIGFjdGlvbnMuPC9wPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0cmF5ICR7c3Quc2hha2U9PT0ndHJheSc\/J3NoYWtlJzonJ30iPiR7dGlsZXN9PC9kaXY+YDsKICB9CgogIGxldCBzaGVldD0nJzsKICBpZihzdC5waGFzZT09PSdhY3Rpb24nIHx8IChzdC5waGFzZT09PSdidXN5JyYmc3QubGVhcm5lZCkpewogICAgY29uc3QgdD1UT09MW3N0LmFjdFRvb2xdOwogICAgc2hlZXQgPSBgPGRpdiBjbGFzcz0ic2hlZXQgJHtzdC5zaGVldEFuaW0\/J2FuaW0nOicnfSAke3N0LnNoYWtlPT09J3NoZWV0Jz8nc2hha2UnOicnfSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsPSJDaG9vc2UgYW4gYWN0aW9uIj5gOwogICAgaWYoc3QubGVhcm5lZCl7CiAgICAgIHNoZWV0ICs9IGA8ZGl2IGNsYXNzPSJsZWFybmVkIj4ke3N0LmxlYXJuZWQuZW59IDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj7ihpI8L3NwYW4+IDxiPiR7c3QubGVhcm5lZC56aH08L2I+PC9kaXY+YDsKICAgIH0gZWxzZSB7CiAgICAgIHNoZWV0ICs9IGA8aDM+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLWVuKSI+JHt0LmlkPT09J2hhbmQnPydXaGF0IGRvIHlvdSBkbyB3aXRoIHlvdXIgaGFuZHM\/JzonV2hhdCBkbyB5b3UgZG8gYXQgdGhlICcrdC5lbi50b0xvd2VyQ2FzZSgpKyc\/J308L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYmFjayIgaWQ9ImJhY2siPkNsb3NlPC9idXR0b24+PC9oMz48ZGl2IGNsYXNzPSJhY3RzIj4KICAgICAgICAke3N0LmFjdE9yZGVyLm1hcChhPT5gPGJ1dHRvbiBjbGFzcz0iYWN0ICR7c3QuZ2xvdyYmYT09PXMuYSYmc3QuYWN0VG9vbD09PXMudD8nZ2xvdyc6Jyd9IiBkYXRhLWFjdD0iJHthfSI+JHtBQ1RbYV0uZW59JHtBQ1RbYV0ubm90ZT9gPHNtYWxsPigke0FDVFthXS5ub3RlfSk8L3NtYWxsPmA6Jyd9PC9idXR0b24+YCkuam9pbignJyl9PC9kaXY+YDsKICAgIH0KICAgIHNoZWV0ICs9IGA8L2Rpdj5gOwogIH0KCiAgcmV0dXJuIGA8c2VjdGlvbiBjbGFzcz0ic2NlbmUiPgogICAgICA8ZGl2IGNsYXNzPSJzaWRlIGN1c3RvbWVyICR7c3QuYXJyaXZlPydlbnRlcic6Jyd9ICR7c2VydmVkPydoYXBweSc6Jyd9Ij48ZGl2IGNsYXNzPSJmaWciPiR7cGVyc29uU1ZHKGxvb2ssc2VydmVkKX08L2Rpdj48ZGl2IGNsYXNzPSJidWJibGUiPiR7Y3VzdFNheX08L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2lkZSBjaGVmIj48ZGl2IGNsYXNzPSJmaWciPiR7Y2hlZlNWRyhyZWFkeXx8c2VydmVkPydoYXBweSc6J3RoaW5rJyl9PC9kaXY+PGRpdiBjbGFzcz0iYnViYmxlIiBhcmlhLWxpdmU9InBvbGl0ZSI+JHtjaGVmU2F5fTwvZGl2PjwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPGRpdiBjbGFzcz0ic3RlcHMiPlN0ZXBzICR7ZG90c30ke3NlbGJhcn08L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvdW50ZXIiPjxkaXYgY2xhc3M9ImtpdGNoZW4iPiR7c3RhdGlvbnN9PC9kaXY+PC9kaXY+CiAgICAke3NoZWV0fSR7bG93ZXJ9YDsKfQpmdW5jdGlvbiBmeEhUTUwoZngpewogIGNvbnN0IG49KGssY2xzLHR4dD0nJyk9PkFycmF5LmZyb20oe2xlbmd0aDprfSwoXyxpKT0+YDxzcGFuIHN0eWxlPSJsZWZ0OiR7MjUraSooNTAvKGstMXx8MSkpfSU7YW5pbWF0aW9uLWRlbGF5OiR7KGkqMC4xNykudG9GaXhlZCgyKX1zIj4ke3R4dH08L3NwYW4+YCkuam9pbignJyk7CiAgc3dpdGNoKGZ4KXsKICAgIGNhc2UgJ2Nob3AnOiByZXR1cm4gYDxkaXYgY2xhc3M9ImZ4IGNob3AiPjxzcGFuPvCflKo8L3NwYW4+PC9kaXY+YDsKICAgIGNhc2UgJ3NpenpsZSc6IHJldHVybiBgPGRpdiBjbGFzcz0iZnggcmlzZSI+JHtuKDQpfTwvZGl2PmA7CiAgICBjYXNlICdmcnknOiByZXR1cm4gYDxkaXYgY2xhc3M9ImZ4IHJpc2Ugb2lsIj4ke24oNil9PC9kaXY+YDsKICAgIGNhc2UgJ2J1YmJsZSc6IHJldHVybiBgPGRpdiBjbGFzcz0iZnggcmlzZSBidWIiPiR7big1KX08L2Rpdj5gOwogICAgY2FzZSAnc3RlYW0nOiByZXR1cm4gYDxkaXYgY2xhc3M9ImZ4IHJpc2Ugc3RlYW0iPiR7big0KX08L2Rpdj5gOwogICAgY2FzZSAnaGVhdCc6IHJldHVybiBgPGRpdiBjbGFzcz0iZnggaGVhdCI+PC9kaXY+YDsKICAgIGNhc2UgJ3NwYXJrJzogcmV0dXJuIGA8ZGl2IGNsYXNzPSJmeCBzcGFyayI+JHtuKDMsJycsJ+KcqCcpfTwvZGl2PmA7CiAgICBjYXNlICdzdGlyJzogcmV0dXJuIGA8ZGl2IGNsYXNzPSJmeCBzdGlyIj48c3Bhbj7wn6WEPC9zcGFuPjwvZGl2PmA7CiAgICBkZWZhdWx0OiByZXR1cm4gYDxkaXYgY2xhc3M9ImZ4IHBvcCI+PHNwYW4+4pyoPC9zcGFuPjwvZGl2PmA7CiAgfQp9CgpmdW5jdGlvbiByZW5kZXJTdW1tYXJ5KCl7CiAgY29uc3QgcGxheWVkID0gc3QucmVzdWx0cy5tYXAocj0+RElTSEVTW3IuZF0pOwogIGNvbnN0IGluZ3M9W10sIHZlcmJzPVtdOwogIHBsYXllZC5mb3JFYWNoKGQ9PnsgZGlzaEluZ3MoZCkuZm9yRWFjaChpPT57aWYoIWluZ3MuaW5jbHVkZXMoaSkpIGluZ3MucHVzaChpKTt9KTsgZC5zLmZvckVhY2gocz0+eyBpZihzLmEmJiF2ZXJicy5pbmNsdWRlcyhzLmEpKSB2ZXJicy5wdXNoKHMuYSk7IH0pOyB9KTsKICBjb25zdCBtYXg9c3QucmVzdWx0cy5sZW5ndGgqMywgdG90PXRvdGFsU3RhcnMoKTsKICBjb25zdCBtc2cgPSB0b3Q9PT1tYXg\/J1BlcmZlY3Qgc2NvcmUhJzp0b3Q+PW1heCouNz8nR3JlYXQgam9iISBZb3VyIGN1c3RvbWVycyBhcmUgaGFwcHkuJzonTmljZSB3b3JrLiBQbGF5IGFnYWluIHRvIGdldCBtb3JlIHN0YXJzLic7CiAgcmV0dXJuIGA8c2VjdGlvbiBjbGFzcz0iY2FyZCI+CiAgICA8ZGl2IGNsYXNzPSJoZXJvIj48ZGl2IGNsYXNzPSJmaWciPiR7Y2hlZlNWRygnaGFwcHknKX08L2Rpdj48ZGl2PjxoMj5Ub2RheSdzIHJlc3VsdHM8L2gyPjxwIGNsYXNzPSJ0b3RhbCI+WW91IGVhcm5lZCA8Yj4ke3RvdH08L2I+IC8gJHttYXh9IHN0YXJzLiAke21zZ308L3A+PC9kaXY+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzdW1ncmlkIj4KICAgICAgPGRpdiBjbGFzcz0ic3VtYm94Ij48aDM+RElTSEVTPC9oMz4ke3N0LnJlc3VsdHMubWFwKHI9PmA8ZGl2IGNsYXNzPSJkaXNocm93Ij48c3Bhbj4ke3J1YnkoRElTSEVTW3IuZF0pfTwvc3Bhbj48c3BhbiBjbGFzcz0ic3RhcnMiPiR7c3RhclN0cihyLnN0YXJzKX08L3NwYW4+PC9kaXY+YCkuam9pbignJyl9PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InN1bWJveCI+PGgzPklOR1JFRElFTlRTPC9oMz48ZGl2IGNsYXNzPSJjaGlwcyI+JHtpbmdzLm1hcChpPT5gPHNwYW4gY2xhc3M9ImljaGlwIj4ke2ljb24oaSl9JHtJTkdbaV0uemh9IDxzbWFsbD4ke0lOR1tpXS5lbn08L3NtYWxsPjwvc3Bhbj5gKS5qb2luKCcnKX08L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3VtYm94Ij48aDM+Q09PS0lORyBWRVJCUzwvaDM+PGRpdiBjbGFzcz0iY2hpcHMiPiR7dmVyYnMubWFwKHY9PmA8c3BhbiBjbGFzcz0idmNoaXAiPjxiPiR7dn08L2I+PHNwYW4+JHtBQ1Rbdl0uZW59PC9zcGFuPjwvc3Bhbj5gKS5qb2luKCcnKX08L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdj48YnV0dG9uIGNsYXNzPSJiaWciIGlkPSJhZ2FpbiI+UGxheSBhZ2FpbjwvYnV0dG9uPjwvZGl2PgogIDwvc2VjdGlvbj5gOwp9CgpmdW5jdGlvbiByZW5kZXIoKXsKICBjb25zdCBib2R5ID0gc3Quc2NyZWVuPT09J3N0YXJ0Jz9yZW5kZXJTdGFydCgpOnN0LnNjcmVlbj09PSdwbGF5Jz9yZW5kZXJQbGF5KCk6cmVuZGVyU3VtbWFyeSgpOwogICQoJyNhcHAnKS5pbm5lckhUTUwgPSByZW5kZXJTaWduKCkrYm9keTsKfQoKLyogLS0tLS0tLS0tLSBldmVudHMgLS0tLS0tLS0tLSAqLwpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZT0+ewogIGNvbnN0IGI9ZS50YXJnZXQuY2xvc2VzdCgnYnV0dG9uJyk7IGlmKCFiKSByZXR1cm47CiAgaWYoYi5pZD09PSd0Zy1uYW1lcycpeyBzdC5zZXR0aW5ncy5zaG93TmFtZXM9IXN0LnNldHRpbmdzLnNob3dOYW1lczsgcmVuZGVyKCk7IHJldHVybjsgfQogIGlmKGIuaWQ9PT0ndGctc291bmQnKXsgc3Quc2V0dGluZ3Muc291bmQ9IXN0LnNldHRpbmdzLnNvdW5kOyBpZihzdC5zZXR0aW5ncy5zb3VuZCkgU0ZYLnRpY2soKTsgcmVuZGVyKCk7IHJldHVybjsgfQogIGlmKGIuZGF0YXNldC5jb3VudCl7IHN0LnNldHRpbmdzLmNvdW50PStiLmRhdGFzZXQuY291bnQ7IHJlbmRlcigpOyByZXR1cm47IH0KICBpZihiLmRhdGFzZXQubmFtZXMpeyBzdC5zZXR0aW5ncy5zaG93TmFtZXM9Yi5kYXRhc2V0Lm5hbWVzPT09JzEnOyByZW5kZXIoKTsgcmV0dXJuOyB9CiAgaWYoYi5pZD09PSdnbycpeyBzdGFydEdhbWUoKTsgcmV0dXJuOyB9CiAgaWYoYi5pZD09PSdhZ2FpbicpeyBzdC5zY3JlZW49J3N0YXJ0JzsgcmVuZGVyKCk7IHJldHVybjsgfQogIGlmKGIuZGF0YXNldC5pbmcpeyB0YXBJbmcoYi5kYXRhc2V0LmluZyk7IHJldHVybjsgfQogIGlmKGIuZGF0YXNldC50b29sKXsgdGFwVG9vbChiLmRhdGFzZXQudG9vbCk7IHJldHVybjsgfQogIGlmKGIuZGF0YXNldC5hY3QpeyB0YXBBY3QoYi5kYXRhc2V0LmFjdCk7IHJldHVybjsgfQogIGlmKGIuaWQ9PT0nYmFjaycpeyBiYWNrRnJvbUFjdCgpOyByZXR1cm47IH0KICBpZihiLmlkPT09J3NlcnZlJyl7IHNlcnZlKCk7IHJldHVybjsgfQogIGlmKGIuaWQ9PT0nbmV4dCcpeyBuZXh0Q3VzdG9tZXIoKTsgcmV0dXJuOyB9Cn0pOwoKZnVuY3Rpb24gcG9zdEhlaWdodCgpeyB0cnl7IGNvbnN0IGg9TWF0aC5jZWlsKGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KTsgaWYod2luZG93LnBhcmVudCE9PXdpbmRvdykgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dGlmZmFueUZyYW1lOidnYW1lJyxofSwnKicpOyB9Y2F0Y2goZSl7fSB9CnRyeXsgbmV3IFJlc2l6ZU9ic2VydmVyKHBvc3RIZWlnaHQpLm9ic2VydmUoZG9jdW1lbnQuYm9keSk7IH1jYXRjaChlKXt9CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJyxwb3N0SGVpZ2h0KTsKZnVuY3Rpb24gYm9vdChkYXRhKXsKICBpZihkYXRhICYmIGRhdGEuc3QgJiYgZGF0YS5zdC5zY3JlZW4peyBzdD1PYmplY3QuYXNzaWduKHN0LGRhdGEuc3QpOyBpZihzdC5waGFzZT09PSdidXN5Jykgc3QucGhhc2U9J3BpY2snOyBzdC5hbmltPW51bGw7IHN0LmxlYXJuZWQ9bnVsbDsgc3QuZmI9bnVsbDsgfQogIHJlbmRlcigpOwp9CmJvb3Qoe30pOwo8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=\" style=\"width:100%;height:760px;border:0;border-radius:12px;display:block\" title=\"Tiffany\u6f22\u5b57\u9910\u5ef3\"><\/iframe><script>window.addEventListener(\"message\",function(e){var d=e.data;if(!d||!d.tiffanyFrame)return;var f=document.getElementById(\"tiffany-\"+d.tiffanyFrame);if(f)f.style.height=(d.h+4)+\"px\";});<\/script>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium is-resized\"><a href=\"https:\/\/tiffanysmandarin.com\/index.php\/students-only\/\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"86\" src=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png\" alt=\"\" class=\"wp-image-571\" style=\"width:150px;height:43px\" srcset=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png 300w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-600x171.png 600w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963.png 700w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_wp_convertkit_post_meta":{"form":"-1","landing_page":"0","tag":"0","restrict_content":"0"},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1238],"tags":[],"class_list":["post-17998","post","type-post","status-publish","format-standard","hentry","category-food"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Chinese cooking game - OneDotDot Chinese<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Chinese cooking game - OneDotDot Chinese\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/\" \/>\n<meta property=\"og:site_name\" content=\"OneDotDot Chinese\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-06T06:07:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-07T02:12:27+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png\" \/>\n<meta name=\"author\" content=\"tiffany\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tiffany\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/\"},\"author\":{\"name\":\"tiffany\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"headline\":\"Chinese cooking game\",\"datePublished\":\"2026-10-06T06:07:57+00:00\",\"dateModified\":\"2026-10-07T02:12:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/\"},\"wordCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/e68f92e59c963-300x86.png\",\"articleSection\":[\"food\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/\",\"name\":\"Chinese cooking game - OneDotDot Chinese\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/e68f92e59c963-300x86.png\",\"datePublished\":\"2026-10-06T06:07:57+00:00\",\"dateModified\":\"2026-10-07T02:12:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/e68f92e59c963.png\",\"contentUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/e68f92e59c963.png\",\"width\":700,\"height\":200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/10\\\/06\\\/chinese-cooking-game\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chinese cooking game\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\",\"name\":\"OneDotDot Chinese\",\"description\":\"Learn a little Chinese every day\",\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tiffanysmandarin.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\",\"name\":\"tiffany\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"url\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"contentUrl\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"width\":214,\"height\":214,\"caption\":\"tiffany\"},\"logo\":{\"@id\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/tiffanys_talk\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/tiffany-huang-mandarin\\\/\"],\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/author\\\/tiffany\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Chinese cooking game - OneDotDot Chinese","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/","og_locale":"en_US","og_type":"article","og_title":"Chinese cooking game - OneDotDot Chinese","og_url":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/","og_site_name":"OneDotDot Chinese","article_published_time":"2026-10-06T06:07:57+00:00","article_modified_time":"2026-10-07T02:12:27+00:00","og_image":[{"url":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png","type":"","width":"","height":""}],"author":"tiffany","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tiffany"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/#article","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/"},"author":{"name":"tiffany","@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"headline":"Chinese cooking game","datePublished":"2026-10-06T06:07:57+00:00","dateModified":"2026-10-07T02:12:27+00:00","mainEntityOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/"},"wordCount":3,"publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/#primaryimage"},"thumbnailUrl":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png","articleSection":["food"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/","url":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/","name":"Chinese cooking game - OneDotDot Chinese","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/#primaryimage"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/#primaryimage"},"thumbnailUrl":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png","datePublished":"2026-10-06T06:07:57+00:00","dateModified":"2026-10-07T02:12:27+00:00","breadcrumb":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/#primaryimage","url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963.png","contentUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963.png","width":700,"height":200},{"@type":"BreadcrumbList","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/10\/06\/chinese-cooking-game\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/tiffanysmandarin.com\/"},{"@type":"ListItem","position":2,"name":"Chinese cooking game"}]},{"@type":"WebSite","@id":"https:\/\/tiffanysmandarin.com\/#website","url":"https:\/\/tiffanysmandarin.com\/","name":"OneDotDot Chinese","description":"Learn a little Chinese every day","publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tiffanysmandarin.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99","name":"tiffany","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","url":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","contentUrl":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","width":214,"height":214,"caption":"tiffany"},"logo":{"@id":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png"},"sameAs":["https:\/\/www.instagram.com\/tiffanys_talk\/","https:\/\/www.linkedin.com\/in\/tiffany-huang-mandarin\/"],"url":"https:\/\/tiffanysmandarin.com\/index.php\/author\/tiffany\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/17998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/comments?post=17998"}],"version-history":[{"count":11,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/17998\/revisions"}],"predecessor-version":[{"id":18032,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/17998\/revisions\/18032"}],"wp:attachment":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media?parent=17998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/categories?post=17998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/tags?post=17998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}