import base64
data = "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iR2V0Rm91bmRMb2NhbCBDb29raWUgUG9saWN5IC0gR0RQUiBhbmQgQ0NQQSBjb21wbGlhbnQiPgogIDx0aXRsZT5Db29raWUgUG9saWN5IC0gR2V0Rm91bmRMb2NhbDwvdGl0bGU+CiAgPHN0eWxlPgogICAgOnJvb3QgewogICAgICAtLWNvbG9yLW5hdnk6ICMxZTNhOGE7IC0tY29sb3ItYmxhY2s6ICMwZjE3MmE7IC0tY29sb3ItdGVhbDogIzBkOTQ4ODsKICAgICAgLS1jb2xvci1ncmF5LTUwOiAjZjhmYWZjOyAtLWNvbG9yLWdyYXktMjAwOiAjZTJlOGYwOwogICAgICAtLWNvbG9yLWdyYXktNjAwOiAjNDc1NTY5OyAtLWNvbG9yLWdyYXktNzAwOiAjMzM0MTU1OwogICAgfQogICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgYm9keSB7IGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBUYWhvbWEsIEdlbmV2YSwgVmVyZGFuYSwgc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6IDEuNzsgY29sb3I6ICMwMTAxMDE7IGJhY2tncm91bmQ6ICNmZmY7IH0KICAgIG5hdiB7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC45OCk7IHBhZGRpbmc6IDE2cHggNDBweDsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogMDsgei1pbmRleDogMTAwOwogICAgICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgICAubG9nbyB7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDgwMDsgY29sb3I6IHZhcigtLWNvbG9yLW5hdnkpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KICAgIC5sb2dvIHNwYW4geyBjb2xvcjogdmFyKC0tY29sb3ItdGVhbCk7IH0KICAgIC5sYW5nLXNpbmdsZSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5hdnkpOyBjb2xvcjogd2hpdGU7IGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9yLW5hdnkpOyBwYWRkaW5nOiA2cHggMTRweDsgYm9yZGVyLXJhZGl1czogNnB4OyBmb250LXdlaWdodDogNjAwOyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogMTRweDsgdHJhbnNpdGlvbjogYWxsIDAuMnM7IH0KICAgIC5sYW5nLXNpbmdsZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsYWNrKTsgfQogICAgLmNvbnRhaW5lciB7IG1heC13aWR0aDogOTAwcHg7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiA2MHB4IDQwcHg7IH0KICAgIGgxIHsgZm9udC1zaXplOiA0MnB4OyBmb250LXdlaWdodDogOTAwOyBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spOyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CiAgICAubGFzdC11cGRhdGVkIHsgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tYm90dG9tOiA0MHB4OyB9CiAgICBoMiB7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDgwMDsgY29sb3I6IHZhcigtLWNvbG9yLW5hdnkpOyBtYXJnaW4tdG9wOiA0MHB4OyBtYXJnaW4tYm90dG9tOiAxNXB4OyB9CiAgICBoMyB7IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTsgbWFyZ2luLXRvcDogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQogICAgcCB7IG1hcmdpbi1ib3R0b206IDE1cHg7IGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTcwMCk7IH0KICAgIHVsLCBvbCB7IG1hcmdpbjogMTVweCAwIDE1cHggMzBweDsgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTsgfQogICAgbGkgeyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CiAgICBhIHsgY29sb3I6IHZhcigtLWNvbG9yLXRlYWwpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KICAgIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQogICAgLmhpZ2hsaWdodCB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTApOyBwYWRkaW5nOiAyMHB4OyBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWNvbG9yLXRlYWwpOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyLXJhZGl1czogNHB4OyB9CiAgICAuY29va2llLXRhYmxlIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1hcmdpbjogMjBweCAwOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4wNik7IGJvcmRlci1yYWRpdXM6IDhweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQogICAgLmNvb2tpZS10YWJsZSB0aCB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5hdnkpOyBjb2xvcjogd2hpdGU7IHBhZGRpbmc6IDE1cHg7IHRleHQtYWxpZ246IGxlZnQ7IGZvbnQtd2VpZ2h0OiA3MDA7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1jb2xvci10ZWFsKTsgfQogICAgLmNvb2tpZS10YWJsZSB0ZCB7IHBhZGRpbmc6IDEycHggMTVweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMjAwKTsgfQogICAgLmNvb2tpZS10YWJsZSB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQogICAgLmNvb2tpZS10YWJsZSB0cjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTApOyB9CiAgICAudHlwZS1lc3NlbnRpYWwgeyBjb2xvcjogIzA1OTY2OTsgZm9udC13ZWlnaHQ6IDYwMDsgfQogICAgLnR5cGUtcHJlZmVyZW5jZSB7IGNvbG9yOiAjZDk3NzA2OyBmb250LXdlaWdodDogNjAwOyB9CiAgICAuYnJvd3Nlci1pbnN0cnVjdGlvbnMgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTUwKTsgcGFkZGluZzogMjBweDsgYm9yZGVyLXJhZGl1czogOHB4OyBtYXJnaW46IDIwcHggMDsgfQogICAgLmJyb3dzZXItaW5zdHJ1Y3Rpb25zIGgzIHsgY29sb3I6IHZhcigtLWNvbG9yLW5hdnkpOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDE1cHg7IH0KICAgIC5icm93c2VyLWluc3RydWN0aW9ucyBwIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApOyB9CiAgICAucmlnaHRzLWxpc3QgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDEzLDE0OCwxMzYsMC4xKSAwJSwgcmdiYSgxMywxNDgsMTM2LDAuMDUpIDEwMCUpOyBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWNvbG9yLXRlYWwpOyBwYWRkaW5nOiAyMHB4OyBib3JkZXItcmFkaXVzOiA4cHg7IG1hcmdpbjogMjBweCAwOyB9CiAgICAucmlnaHRzLWxpc3QgaDMgeyBjb2xvcjogdmFyKC0tY29sb3ItbmF2eSk7IG1hcmdpbi1ib3R0b206IDE1cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KICAgIC5yaWdodHMtbGlzdCB1bCB7IG1hcmdpbjogMDsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9CiAgICAucmlnaHRzLWxpc3QgbGkgeyBtYXJnaW4tYm90dG9tOiA4cHg7IGZvbnQtc2l6ZTogMTRweDsgfQogICAgZm9vdGVyIHsgYmFja2dyb3VuZDogIzAxMDEwMTsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiA0MHB4OyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDYwcHg7IH0KICAgIGZvb3RlciBhIHsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBtYXJnaW46IDAgMTVweDsgfQogICAgZm9vdGVyIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tY29sb3ItdGVhbCk7IH0KICAgIC5oaWRkZW4geyBkaXNwbGF5OiBub25lOyB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8bmF2PgogICAgPGEgaHJlZj0iLyIgY2xhc3M9ImxvZ28iPkdldEZvdW5kPHNwYW4+TG9jYWw8L3NwYW4+PC9hPgogICAgPGJ1dHRvbiBjbGFzcz0ibGFuZy1zaW5nbGUiIGlkPSJsYW5nLWJ0biIgb25jbGljaz0idG9nZ2xlTGFuZygpIj5Fc3Bhw7FvbDwvYnV0dG9uPgogIDwvbmF2PgoKICA8IS0tIEVOR0xJU0ggLS0+CiAgPGRpdiBpZD0iZW4tY29udGVudCI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8aDE+Q29va2llIFBvbGljeTwvaDE+CiAgICAgIDxwIGNsYXNzPSJsYXN0LXVwZGF0ZWQiPkxhc3QgVXBkYXRlZDogSnVuZSAyMDI2PC9wPgogICAgICA8aDI+MS4gV2hhdCBBcmUgQ29va2llcz88L2gyPgogICAgICA8cD5Db29raWVzIGFyZSBzbWFsbCB0ZXh0IGZpbGVzIHN0b3JlZCBvbiB5b3VyIGRldmljZSAoY29tcHV0ZXIsIHRhYmxldCwgcGhvbmUpIHRoYXQgaGVscCB3ZWJzaXRlcyByZW1lbWJlciBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHZpc2l0LiBUaGV5IGVuYWJsZSBmZWF0dXJlcyBsaWtlIGxvZ2luIHNlc3Npb25zLCBsYW5ndWFnZSBwcmVmZXJlbmNlcywgYW5kIHBlcnNvbmFsaXplZCBleHBlcmllbmNlcy48L3A+CiAgICAgIDxoMj4yLiBPdXIgRmlyc3QtUGFydHkgQ29va2llczwvaDI+CiAgICAgIDxwPkdldEZvdW5kTG9jYWwgc2V0cyB0aGUgZm9sbG93aW5nIGNvb2tpZXMgZGlyZWN0bHkgb24geW91ciBkZXZpY2U6PC9wPgogICAgICA8dGFibGUgY2xhc3M9ImNvb2tpZS10YWJsZSI+CiAgICAgICAgPHRoZWFkPjx0cj48dGg+Q29va2llIE5hbWU8L3RoPjx0aD5UeXBlPC90aD48dGg+RHVyYXRpb248L3RoPjx0aD5QdXJwb3NlPC90aD48L3RyPjwvdGhlYWQ+CiAgICAgICAgPHRib2R5PgogICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPmdmbF9zZXNzaW9uPC9zdHJvbmc+PC90ZD48dGQ+PHNwYW4gY2xhc3M9InR5cGUtZXNzZW50aWFsIj5Fc3NlbnRpYWw8L3NwYW4+PC90ZD48dGQ+OTAgZGF5czwvdGQ+PHRkPk1haW50YWlucyB5b3VyIGxvZ2luIHNlc3Npb24gYW5kIHVzZXIgcHJlZmVyZW5jZXMuPC90ZD48L3RyPgogICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPmxhbmc8L3N0cm9uZz48L3RkPjx0ZD48c3BhbiBjbGFzcz0idHlwZS1wcmVmZXJlbmNlIj5QcmVmZXJlbmNlPC9zcGFuPjwvdGQ+PHRkPjEgeWVhcjwvdGQ+PHRkPlN0b3JlcyB5b3VyIGxhbmd1YWdlIHByZWZlcmVuY2UgKEVuZ2xpc2ggb3IgU3BhbmlzaCkuPC90ZD48L3RyPgogICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPmNzcmZfdG9rZW48L3N0cm9uZz48L3RkPjx0ZD48c3BhbiBjbGFzcz0idHlwZS1lc3NlbnRpYWwiPkVzc2VudGlhbDwvc3Bhbj48L3RkPjx0ZD5TZXNzaW9uPC90ZD48dGQ+U2VjdXJpdHkgdG9rZW4gdGhhdCBwcmV2ZW50cyBjcm9zcy1zaXRlIHJlcXVlc3QgZm9yZ2VyeSBhdHRhY2tzLjwvdGQ+PC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICA8ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxzdHJvbmc+U2VjdXJpdHkgTm90ZTo8L3N0cm9uZz4gQWxsIEdldEZvdW5kTG9jYWwgY29va2llcyBhcmUgbWFya2VkIDxjb2RlPkh0dHBPbmx5PC9jb2RlPiBhbmQgPGNvZGU+U2VjdXJlPC9jb2RlPiwgbWVhbmluZyB0aGV5IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZhU2NyaXB0IGFuZCBhcmUgb25seSB0cmFuc21pdHRlZCBvdmVyIEhUVFBTLjwvZGl2PgogICAgICA8aDI+My4gVGhpcmQtUGFydHkgQ29va2llczwvaDI+CiAgICAgIDxwPldlIHVzZSB0aGlyZC1wYXJ0eSBzZXJ2aWNlcyB0aGF0IG1heSBzZXQgdGhlaXIgb3duIGNvb2tpZXMgb24geW91ciBkZXZpY2U6PC9wPgogICAgICA8dGFibGUgY2xhc3M9ImNvb2tpZS10YWJsZSI+CiAgICAgICAgPHRoZWFkPjx0cj48dGg+U2VydmljZTwvdGg+PHRoPkNvb2tpZXM8L3RoPjx0aD5QdXJwb3NlPC90aD48dGg+UHJpdmFjeSBQb2xpY3k8L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICA8dGJvZHk+CiAgICAgICAgICA8dHI+PHRkPjxzdHJvbmc+R29vZ2xlIHJlQ0FQVENIQSB2Mzwvc3Ryb25nPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJ0eXBlLWVzc2VudGlhbCI+X0dSRUNBUFRDSEE8L3NwYW4+PC90ZD48dGQ+RGV0ZWN0cyBib3QgYWN0aXZpdHkgYW5kIHByZXZlbnRzIGZyYXVkLjwvdGQ+PHRkPjxhIGhyZWY9Imh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5IiB0YXJnZXQ9Il9ibGFuayI+R29vZ2xlPC9hPjwvdGQ+PC90cj4KICAgICAgICAgIDx0cj48dGQ+PHN0cm9uZz5DbG91ZGZsYXJlPC9zdHJvbmc+PC90ZD48dGQ+PHNwYW4gY2xhc3M9InR5cGUtZXNzZW50aWFsIj5fX2NmcnVpZCwgX19jZl9ibTwvc3Bhbj48L3RkPjx0ZD5ERG9TIHByb3RlY3Rpb24gYW5kIENETiBkZWxpdmVyeS48L3RkPjx0ZD48YSBocmVmPSJodHRwczovL3d3dy5jbG91ZGZsYXJlLmNvbS9wcml2YWN5LyIgdGFyZ2V0PSJfYmxhbmsiPkNsb3VkZmxhcmU8L2E+PC90ZD48L3RyPgogICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPlN0cmlwZTwvc3Ryb25nPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJ0eXBlLWVzc2VudGlhbCI+U3RyaXBlIGNvb2tpZXM8L3NwYW4+PC90ZD48dGQ+UGF5bWVudCBwcm9jZXNzaW5nIGFuZCBmcmF1ZCBkZXRlY3Rpb24uPC90ZD48dGQ+PGEgaHJlZj0iaHR0cHM6Ly9zdHJpcGUuY29tL3ByaXZhY3kiIHRhcmdldD0iX2JsYW5rIj5TdHJpcGU8L2E+PC90ZD48L3RyPgogICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPlBheVBhbDwvc3Ryb25nPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJ0eXBlLWVzc2VudGlhbCI+UGF5UGFsIGNvb2tpZXM8L3NwYW4+PC90ZD48dGQ+QWx0ZXJuYXRpdmUgcGF5bWVudCBwcm9jZXNzaW5nLjwvdGQ+PHRkPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vdXMvd2ViYXBwcy9tcHAvdWEvcHJpdmFjeS1mdWxsIiB0YXJnZXQ9Il9ibGFuayI+UGF5UGFsPC9hPjwvdGQ+PC90cj4KICAgICAgICAgIDx0cj48dGQ+PHN0cm9uZz5Ud2lsaW88L3N0cm9uZz48L3RkPjx0ZD48c3BhbiBjbGFzcz0idHlwZS1lc3NlbnRpYWwiPlR3aWxpbyB0b2tlbnM8L3NwYW4+PC90ZD48dGQ+U01TIGRlbGl2ZXJ5IGZvciBib29raW5nIGNvbmZpcm1hdGlvbnMuPC90ZD48dGQ+PGEgaHJlZj0iaHR0cHM6Ly93d3cudHdpbGlvLmNvbS9sZWdhbC9wcml2YWN5IiB0YXJnZXQ9Il9ibGFuayI+VHdpbGlvPC9hPjwvdGQ+PC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICA8aDI+NC4gRG8gTm90IFRyYWNrIChETlQpPC9oMj4KICAgICAgPHA+SWYgeW91IGVuYWJsZSAiRG8gTm90IFRyYWNrIiBpbiB5b3VyIGJyb3dzZXIgc2V0dGluZ3MsIHdlIHdpbGwgaG9ub3IgaXQgZm9yIG91ciBmaXJzdC1wYXJ0eSBjb29raWVzLiBUaGlyZC1wYXJ0eSBzZXJ2aWNlcyBtYXkgbm90IGhvbm9yIEROVCBzaWduYWxzLjwvcD4KICAgICAgPGgyPjUuIE1hbmFnaW5nIENvb2tpZXM8L2gyPgogICAgICA8cD5Zb3UgaGF2ZSBmdWxsIGNvbnRyb2wgb3ZlciBjb29raWVzIG9uIHlvdXIgZGV2aWNlLiBJbnN0cnVjdGlvbnMgZm9yIG1ham9yIGJyb3dzZXJzOjwvcD4KICAgICAgPGgzPkNocm9tZTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImJyb3dzZXItaW5zdHJ1Y3Rpb25zIj48cD4xLiBNZW51ICh0aHJlZSBkb3RzKSDihpIgU2V0dGluZ3Mg4oaSIFByaXZhY3kgYW5kIFNlY3VyaXR5IOKGkiBDb29raWVzIGFuZCBzaXRlIGRhdGE8L3A+PHA+Mi4gRGVsZXRlIGFsbCBjb29raWVzIG9yIG1hbmFnZSBzcGVjaWZpYyBzaXRlczwvcD48L2Rpdj4KICAgICAgPGgzPkZpcmVmb3g8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJicm93c2VyLWluc3RydWN0aW9ucyI+PHA+MS4gTWVudSDihpIgU2V0dGluZ3Mg4oaSIFByaXZhY3kgJmFtcDsgU2VjdXJpdHkg4oaSIENvb2tpZXMgYW5kIFNpdGUgRGF0YSDihpIgTWFuYWdlIERhdGE8L3A+PC9kaXY+CiAgICAgIDxoMz5TYWZhcmk8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJicm93c2VyLWluc3RydWN0aW9ucyI+PHA+MS4gU2FmYXJpIOKGkiBQcmVmZXJlbmNlcyDihpIgUHJpdmFjeSDihpIgTWFuYWdlIFdlYnNpdGUgRGF0YSDihpIgUmVtb3ZlPC9wPjwvZGl2PgogICAgICA8aDM+TWljcm9zb2Z0IEVkZ2U8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJicm93c2VyLWluc3RydWN0aW9ucyI+PHA+MS4gTWVudSDihpIgU2V0dGluZ3Mg4oaSIFByaXZhY3ksIHNlYXJjaCwgYW5kIHNlcnZpY2VzIOKGkiBDbGVhciBicm93c2luZyBkYXRhIOKGkiBDb29raWVzIGFuZCBvdGhlciBzaXRlIGRhdGE8L3A+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBEZWxldGluZyBjb29raWVzIG1heSBsb2cgeW91IG91dCBvZiB5b3VyIGFjY291bnQuIFNvbWUgZmVhdHVyZXMgbWF5IG5vdCB3b3JrIHByb3Blcmx5IGlmIGNvb2tpZXMgYXJlIGRpc2FibGVkLjwvZGl2PgogICAgICA8aDI+Ni4gR0RQUiBSaWdodHMgKEVVL1VLIFVzZXJzKTwvaDI+CiAgICAgIDxkaXYgY2xhc3M9InJpZ2h0cy1saXN0Ij48aDM+WW91ciBHRFBSIFJpZ2h0czo8L2gzPjx1bD48bGk+PHN0cm9uZz5SaWdodCB0byBLbm93Ojwvc3Ryb25nPiBXaGF0IGNvb2tpZXMgd2UgdXNlIGFuZCB3aHk8L2xpPjxsaT48c3Ryb25nPlJpZ2h0IHRvIENvbnNlbnQ6PC9zdHJvbmc+IFdpdGhkcmF3IGNvbnNlbnQgdG8gbm9uLWVzc2VudGlhbCBjb29raWVzPC9saT48bGk+PHN0cm9uZz5SaWdodCB0byBEZWxldGU6PC9zdHJvbmc+IFJlcXVlc3QgZGVsZXRpb24gb2YgZGF0YSBjb2xsZWN0ZWQgdmlhIGNvb2tpZXM8L2xpPjxsaT48c3Ryb25nPlJpZ2h0IHRvIEFjY2Vzczo8L3N0cm9uZz4gUmVxdWVzdCBhIGNvcHkgb2YgYWxsIGRhdGEgd2UndmUgY29sbGVjdGVkPC9saT48bGk+PHN0cm9uZz5SaWdodCB0byBPYmplY3Q6PC9zdHJvbmc+IE9wdC1vdXQgb2YgbWFya2V0aW5nIGFuZCBwcm9maWxpbmc8L2xpPjxsaT48c3Ryb25nPlJpZ2h0IHRvIExvZGdlIGEgQ29tcGxhaW50Ojwvc3Ryb25nPiBDb250YWN0IHlvdXIgbG9jYWwgZGF0YSBwcm90ZWN0aW9uIGF1dGhvcml0eTwvbGk+PC91bD48L2Rpdj4KICAgICAgPGgyPjcuIENDUEEgUmlnaHRzIChDYWxpZm9ybmlhIFVzZXJzKTwvaDI+CiAgICAgIDxkaXYgY2xhc3M9InJpZ2h0cy1saXN0Ij48aDM+WW91ciBDQ1BBIFJpZ2h0czo8L2gzPjx1bD48bGk+PHN0cm9uZz5SaWdodCB0byBLbm93Ojwvc3Ryb25nPiBXaGF0IHBlcnNvbmFsIGluZm9ybWF0aW9uIHdlIGNvbGxlY3QgdmlhIGNvb2tpZXM8L2xpPjxsaT48c3Ryb25nPlJpZ2h0IHRvIERlbGV0ZTo8L3N0cm9uZz4gUmVxdWVzdCBkZWxldGlvbiBvZiBwZXJzb25hbCBkYXRhPC9saT48bGk+PHN0cm9uZz5SaWdodCB0byBPcHQtT3V0Ojwvc3Ryb25nPiBXZSBkbyBOT1Qgc2VsbCB5b3VyIGRhdGE8L2xpPjxsaT48c3Ryb25nPlJpZ2h0IHRvIE5vbi1EaXNjcmltaW5hdGlvbjo8L3N0cm9uZz4gV2Ugd2lsbCBub3QgZGlzY3JpbWluYXRlIGZvciBleGVyY2lzaW5nIHlvdXIgcmlnaHRzPC9saT48L3VsPjwvZGl2PgogICAgICA8aDI+OC4gQ29udGFjdCBVczwvaDI+CiAgICAgIDxwPjxzdHJvbmc+RW1haWw6PC9zdHJvbmc+IDxhIGhyZWY9Im1haWx0bzpwcml2YWN5QGdldGZvdW5kbG9jYWwuYXBwIj5wcml2YWN5QGdldGZvdW5kbG9jYWwuYXBwPC9hPjwvcD4KICAgICAgPHA+PHN0cm9uZz5QaG9uZTo8L3N0cm9uZz4gPGEgaHJlZj0idGVsOisxNDA0OTgxNTQ3NCI+KDQwNCkgOTgxLTU0NzQ8L2E+PC9wPgogICAgICA8cD48c3Ryb25nPkFkZHJlc3M6PC9zdHJvbmc+IEdldEZvdW5kTG9jYWwsIE5ld25hbiwgR2VvcmdpYSAzMDI2MywgVVNBPC9wPgogICAgICA8cD5XZSB3aWxsIHJlc3BvbmQgdG8gYWxsIHJlcXVlc3RzIHdpdGhpbiA0NSBkYXlzIChHRFBSICZhbXA7IENDUEEgcmVxdWlyZW1lbnQpLjwvcD4KICAgICAgPGgyPjkuIENoYW5nZXMgdG8gVGhpcyBQb2xpY3k8L2gyPgogICAgICA8cD5XZSBtYXkgdXBkYXRlIHRoaXMgQ29va2llIFBvbGljeSBhdCBhbnkgdGltZS4gQ29udGludWVkIHVzZSBvZiBHZXRGb3VuZExvY2FsIGFmdGVyIGNoYW5nZXMgbWVhbnMgeW91IGFjY2VwdCB0aGUgdXBkYXRlZCBwb2xpY3kuPC9wPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDwhLS0gU1BBTklTSCAtLT4KICA8ZGl2IGlkPSJlcy1jb250ZW50IiBjbGFzcz0iaGlkZGVuIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgIDxoMT5Qb2zDrXRpY2EgZGUgQ29va2llczwvaDE+CiAgICAgIDxwIGNsYXNzPSJsYXN0LXVwZGF0ZWQiPsOabHRpbWEgYWN0dWFsaXphY2nDs246IEp1bmlvIDIwMjY8L3A+CiAgICAgIDxoMj4xLiDCv1F1w6kgU29uIGxhcyBDb29raWVzPzwvaDI+CiAgICAgIDxwPkxhcyBjb29raWVzIHNvbiBwZXF1ZcOxb3MgYXJjaGl2b3MgZGUgdGV4dG8gYWxtYWNlbmFkb3MgZW4gdHUgZGlzcG9zaXRpdm8gcXVlIGF5dWRhbiBhIGxvcyBzaXRpb3Mgd2ViIGEgcmVjb3JkYXIgaW5mb3JtYWNpw7NuIHNvYnJlIHR1IHZpc2l0YS4gUGVybWl0ZW4gZnVuY2lvbmVzIGNvbW8gc2VzaW9uZXMgZGUgaW5pY2lvIGRlIHNlc2nDs24sIHByZWZlcmVuY2lhcyBkZSBpZGlvbWEgeSBleHBlcmllbmNpYXMgcGVyc29uYWxpemFkYXMuPC9wPgogICAgICA8aDI+Mi4gTnVlc3RyYXMgQ29va2llcyBQcm9waWFzPC9oMj4KICAgICAgPHA+R2V0Rm91bmRMb2NhbCBlc3RhYmxlY2UgbGFzIHNpZ3VpZW50ZXMgY29va2llcyBkaXJlY3RhbWVudGUgZW4gdHUgZGlzcG9zaXRpdm86PC9wPgogICAgICA8dGFibGUgY2xhc3M9ImNvb2tpZS10YWJsZSI+CiAgICAgICAgPHRoZWFkPjx0cj48dGg+Tm9tYnJlPC90aD48dGg+VGlwbzwvdGg+PHRoPkR1cmFjacOzbjwvdGg+PHRoPlByb3DDs3NpdG88L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICA8dGJvZHk+CiAgICAgICAgICA8dHI+PHRkPjxzdHJvbmc+Z2ZsX3Nlc3Npb248L3N0cm9uZz48L3RkPjx0ZD48c3BhbiBjbGFzcz0idHlwZS1lc3NlbnRpYWwiPkVzZW5jaWFsPC9zcGFuPjwvdGQ+PHRkPjkwIGTDrWFzPC90ZD48dGQ+TWFudGllbmUgdHUgc2VzacOzbiBkZSBpbmljaW8gZGUgc2VzacOzbiB5IHByZWZlcmVuY2lhcy48L3RkPjwvdHI+CiAgICAgICAgICA8dHI+PHRkPjxzdHJvbmc+bGFuZzwvc3Ryb25nPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJ0eXBlLXByZWZlcmVuY2UiPlByZWZlcmVuY2lhPC9zcGFuPjwvdGQ+PHRkPjEgYcOxbzwvdGQ+PHRkPkd1YXJkYSB0dSBwcmVmZXJlbmNpYSBkZSBpZGlvbWEgKGluZ2zDqXMgbyBlc3Bhw7FvbCkuPC90ZD48L3RyPgogICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPmNzcmZfdG9rZW48L3N0cm9uZz48L3RkPjx0ZD48c3BhbiBjbGFzcz0idHlwZS1lc3NlbnRpYWwiPkVzZW5jaWFsPC9zcGFuPjwvdGQ+PHRkPlNlc2nDs248L3RkPjx0ZD5Ub2tlbiBkZSBzZWd1cmlkYWQgcXVlIHByZXZpZW5lIGF0YXF1ZXMgZGUgZmFsc2lmaWNhY2nDs24gZGUgc29saWNpdHVkZXMuPC90ZD48L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CiAgICAgIDxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHN0cm9uZz5Ob3RhIGRlIHNlZ3VyaWRhZDo8L3N0cm9uZz4gVG9kYXMgbGFzIGNvb2tpZXMgZGUgR2V0Rm91bmRMb2NhbCBlc3TDoW4gbWFyY2FkYXMgY29tbyA8Y29kZT5IdHRwT25seTwvY29kZT4geSA8Y29kZT5TZWN1cmU8L2NvZGU+LCBsbyBxdWUgc2lnbmlmaWNhIHF1ZSBzb2xvIHNlIHRyYW5zbWl0ZW4gc29icmUgSFRUUFMuPC9kaXY+CiAgICAgIDxoMj4zLiBDb29raWVzIGRlIFRlcmNlcm9zPC9oMj4KICAgICAgPHA+VXRpbGl6YW1vcyBzZXJ2aWNpb3MgZGUgdGVyY2Vyb3MgcXVlIHB1ZWRlbiBlc3RhYmxlY2VyIHN1cyBwcm9waWFzIGNvb2tpZXMgZW4gdHUgZGlzcG9zaXRpdm86PC9wPgogICAgICA8dGFibGUgY2xhc3M9ImNvb2tpZS10YWJsZSI+CiAgICAgICAgPHRoZWFkPjx0cj48dGg+U2VydmljaW88L3RoPjx0aD5Db29raWVzPC90aD48dGg+UHJvcMOzc2l0bzwvdGg+PHRoPlBvbMOtdGljYTwvdGg+PC90cj48L3RoZWFkPgogICAgICAgIDx0Ym9keT4KICAgICAgICAgIDx0cj48dGQ+PHN0cm9uZz5Hb29nbGUgcmVDQVBUQ0hBIHYzPC9zdHJvbmc+PC90ZD48dGQ+PHNwYW4gY2xhc3M9InR5cGUtZXNzZW50aWFsIj5fR1JFQ0FQVENIQTwvc3Bhbj48L3RkPjx0ZD5EZXRlY3RhIGFjdGl2aWRhZCBkZSBib3RzIHkgcHJldmllbmUgZnJhdWRlcy48L3RkPjx0ZD48YSBocmVmPSJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeSIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZTwvYT48L3RkPjwvdHI+CiAgICAgICAgICA8dHI+PHRkPjxzdHJvbmc+Q2xvdWRmbGFyZTwvc3Ryb25nPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJ0eXBlLWVzc2VudGlhbCI+X19jZnJ1aWQsIF9fY2ZfYm08L3NwYW4+PC90ZD48dGQ+UHJvdGVjY2nDs24gRERvUyB5IGVudHJlZ2EgZGUgY29udGVuaWRvLjwvdGQ+PHRkPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNsb3VkZmxhcmUuY29tL3ByaXZhY3kvIiB0YXJnZXQ9Il9ibGFuayI+Q2xvdWRmbGFyZTwvYT48L3RkPjwvdHI+CiAgICAgICAgICA8dHI+PHRkPjxzdHJvbmc+U3RyaXBlPC9zdHJvbmc+PC90ZD48dGQ+PHNwYW4gY2xhc3M9InR5cGUtZXNzZW50aWFsIj5TdHJpcGUgY29va2llczwvc3Bhbj48L3RkPjx0ZD5Qcm9jZXNhbWllbnRvIGRlIHBhZ29zIHkgZGV0ZWNjacOzbiBkZSBmcmF1ZGVzLjwvdGQ+PHRkPjxhIGhyZWY9Imh0dHBzOi8vc3RyaXBlLmNvbS9wcml2YWN5IiB0YXJnZXQ9Il9ibGFuayI+U3RyaXBlPC9hPjwvdGQ+PC90cj4KICAgICAgICAgIDx0cj48dGQ+PHN0cm9uZz5QYXlQYWw8L3N0cm9uZz48L3RkPjx0ZD48c3BhbiBjbGFzcz0idHlwZS1lc3NlbnRpYWwiPlBheVBhbCBjb29raWVzPC9zcGFuPjwvdGQ+PHRkPlByb2Nlc2FtaWVudG8gYWx0ZXJuYXRpdm8gZGUgcGFnb3MuPC90ZD48dGQ+PGEgaHJlZj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS91cy93ZWJhcHBzL21wcC91YS9wcml2YWN5LWZ1bGwiIHRhcmdldD0iX2JsYW5rIj5QYXlQYWw8L2E+PC90ZD48L3RyPgogICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPlR3aWxpbzwvc3Ryb25nPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJ0eXBlLWVzc2VudGlhbCI+VHdpbGlvIHRva2Vuczwvc3Bhbj48L3RkPjx0ZD5FbnbDrW8gZGUgU01TIHBhcmEgY29uZmlybWFjaW9uZXMgZGUgcmVzZXJ2YXMuPC90ZD48dGQ+PGEgaHJlZj0iaHR0cHM6Ly93d3cudHdpbGlvLmNvbS9sZWdhbC9wcml2YWN5IiB0YXJnZXQ9Il9ibGFuayI+VHdpbGlvPC9hPjwvdGQ+PC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICA8aDI+NC4gTm8gUmFzdHJlYXIgKEROVCk8L2gyPgogICAgICA8cD5TaSBhY3RpdmFzICJObyBSYXN0cmVhciIgZW4gbGEgY29uZmlndXJhY2nDs24gZGUgdHUgbmF2ZWdhZG9yLCBsbyByZXNwZXRhcmVtb3MgcGFyYSBudWVzdHJhcyBjb29raWVzIHByb3BpYXMuIExvcyBzZXJ2aWNpb3MgZGUgdGVyY2Vyb3MgcHVlZGVuIG5vIHJlc3BldGFyIGxhcyBzZcOxYWxlcyBETlQuPC9wPgogICAgICA8aDI+NS4gR2VzdGnDs24gZGUgQ29va2llczwvaDI+CiAgICAgIDxwPlRpZW5lcyBjb250cm9sIHRvdGFsIHNvYnJlIGxhcyBjb29raWVzIGVuIHR1IGRpc3Bvc2l0aXZvLiBJbnN0cnVjY2lvbmVzIHBhcmEgbG9zIHByaW5jaXBhbGVzIG5hdmVnYWRvcmVzOjwvcD4KICAgICAgPGgzPkNocm9tZTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImJyb3dzZXItaW5zdHJ1Y3Rpb25zIj48cD4xLiBNZW7DuiAodHJlcyBwdW50b3MpIOKGkiBDb25maWd1cmFjacOzbiDihpIgUHJpdmFjaWRhZCB5IHNlZ3VyaWRhZCDihpIgQ29va2llcyB5IGRhdG9zIGRlbCBzaXRpbzwvcD48cD4yLiBFbGltaW5hIHRvZGFzIGxhcyBjb29raWVzIG8gZ2VzdGlvbmEgc2l0aW9zIGVzcGVjw61maWNvczwvcD48L2Rpdj4KICAgICAgPGgzPkZpcmVmb3g8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJicm93c2VyLWluc3RydWN0aW9ucyI+PHA+MS4gTWVuw7og4oaSIENvbmZpZ3VyYWNpw7NuIOKGkiBQcml2YWNpZGFkIHkgc2VndXJpZGFkIOKGkiBDb29raWVzIHkgZGF0b3MgZGVsIHNpdGlvIOKGkiBBZG1pbmlzdHJhciBkYXRvczwvcD48L2Rpdj4KICAgICAgPGgzPlNhZmFyaTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImJyb3dzZXItaW5zdHJ1Y3Rpb25zIj48cD4xLiBTYWZhcmkg4oaSIFByZWZlcmVuY2lhcyDihpIgUHJpdmFjaWRhZCDihpIgR2VzdGlvbmFyIGRhdG9zIGRlbCBzaXRpbyB3ZWIg4oaSIEVsaW1pbmFyPC9wPjwvZGl2PgogICAgICA8aDM+TWljcm9zb2Z0IEVkZ2U8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJicm93c2VyLWluc3RydWN0aW9ucyI+PHA+MS4gTWVuw7og4oaSIENvbmZpZ3VyYWNpw7NuIOKGkiBQcml2YWNpZGFkLCBiw7pzcXVlZGEgeSBzZXJ2aWNpb3Mg4oaSIEJvcnJhciBkYXRvcyBkZSBuYXZlZ2FjacOzbiDihpIgQ29va2llcyB5IG90cm9zIGRhdG9zIGRlbCBzaXRpbzwvcD48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaGlnaGxpZ2h0Ij48c3Ryb25nPkFkdmVydGVuY2lhOjwvc3Ryb25nPiBFbGltaW5hciBsYXMgY29va2llcyBwdWVkZSBjZXJyYXIgdHUgc2VzacOzbi4gQWxndW5hcyBmdW5jaW9uZXMgcHVlZGVuIG5vIGZ1bmNpb25hciBjb3JyZWN0YW1lbnRlIHNpIGxhcyBjb29raWVzIGVzdMOhbiBkZXNhY3RpdmFkYXMuPC9kaXY+CiAgICAgIDxoMj42LiBEZXJlY2hvcyBHRFBSIChVc3VhcmlvcyBVRS9SZWlubyBVbmlkbyk8L2gyPgogICAgICA8ZGl2IGNsYXNzPSJyaWdodHMtbGlzdCI+PGgzPlR1cyBEZXJlY2hvcyBHRFBSOjwvaDM+PHVsPjxsaT48c3Ryb25nPkRlcmVjaG8gYSBTYWJlcjo8L3N0cm9uZz4gUXXDqSBjb29raWVzIHVzYW1vcyB5IHBvciBxdcOpPC9saT48bGk+PHN0cm9uZz5EZXJlY2hvIGEgQ29uc2VudGlyOjwvc3Ryb25nPiBSZXRpcmFyIGVsIGNvbnNlbnRpbWllbnRvIGEgY29va2llcyBubyBlc2VuY2lhbGVzPC9saT48bGk+PHN0cm9uZz5EZXJlY2hvIGEgRWxpbWluYXI6PC9zdHJvbmc+IFNvbGljaXRhciBsYSBlbGltaW5hY2nDs24gZGUgZGF0b3MgcmVjb3BpbGFkb3M8L2xpPjxsaT48c3Ryb25nPkRlcmVjaG8gZGUgQWNjZXNvOjwvc3Ryb25nPiBTb2xpY2l0YXIgdW5hIGNvcGlhIGRlIHRvZG9zIHR1cyBkYXRvczwvbGk+PGxpPjxzdHJvbmc+RGVyZWNobyBhIE9iamV0YXI6PC9zdHJvbmc+IE9wdGFyIHBvciBubyByZWNpYmlyIG1hcmtldGluZzwvbGk+PGxpPjxzdHJvbmc+RGVyZWNobyBhIFJlY2xhbWFyOjwvc3Ryb25nPiBDb250YWN0YXIgYSB0dSBhdXRvcmlkYWQgbG9jYWwgZGUgcHJvdGVjY2nDs24gZGUgZGF0b3M8L2xpPjwvdWw+PC9kaXY+CiAgICAgIDxoMj43LiBEZXJlY2hvcyBDQ1BBIChVc3VhcmlvcyBkZSBDYWxpZm9ybmlhKTwvaDI+CiAgICAgIDxkaXYgY2xhc3M9InJpZ2h0cy1saXN0Ij48aDM+VHVzIERlcmVjaG9zIENDUEE6PC9oMz48dWw+PGxpPjxzdHJvbmc+RGVyZWNobyBhIFNhYmVyOjwvc3Ryb25nPiBRdcOpIGluZm9ybWFjacOzbiBwZXJzb25hbCByZWNvcGlsYW1vczwvbGk+PGxpPjxzdHJvbmc+RGVyZWNobyBhIEVsaW1pbmFyOjwvc3Ryb25nPiBTb2xpY2l0YXIgbGEgZWxpbWluYWNpw7NuIGRlIGRhdG9zIHBlcnNvbmFsZXM8L2xpPjxsaT48c3Ryb25nPkRlcmVjaG8gYSBObyBWZW5kZXI6PC9zdHJvbmc+IE5PIHZlbmRlbW9zIHR1cyBkYXRvczwvbGk+PGxpPjxzdHJvbmc+RGVyZWNobyBhIE5vIERpc2NyaW1pbmFjacOzbjo8L3N0cm9uZz4gTm8gdGUgZGlzY3JpbWluYXJlbW9zIHBvciBlamVyY2VyIHR1cyBkZXJlY2hvczwvbGk+PC91bD48L2Rpdj4KICAgICAgPGgyPjguIENvbnTDoWN0YW5vczwvaDI+CiAgICAgIDxwPjxzdHJvbmc+Q29ycmVvOjwvc3Ryb25nPiA8YSBocmVmPSJtYWlsdG86cHJpdmFjeUBnZXRmb3VuZGxvY2FsLmFwcCI+cHJpdmFjeUBnZXRmb3VuZGxvY2FsLmFwcDwvYT48L3A+CiAgICAgIDxwPjxzdHJvbmc+VGVsw6lmb25vOjwvc3Ryb25nPiA8YSBocmVmPSJ0ZWw6KzE0MDQ5ODE1NDc0Ij4oNDA0KSA5ODEtNTQ3NDwvYT48L3A+CiAgICAgIDxwPjxzdHJvbmc+RGlyZWNjacOzbjo8L3N0cm9uZz4gR2V0Rm91bmRMb2NhbCwgTmV3bmFuLCBHZW9yZ2lhIDMwMjYzLCBFRS4gVVUuPC9wPgogICAgICA8cD5SZXNwb25kZXJlbW9zIGEgdG9kYXMgbGFzIHNvbGljaXR1ZGVzIGRlbnRybyBkZSA0NSBkw61hcyAocmVxdWlzaXRvIEdEUFIgeSBDQ1BBKS48L3A+CiAgICAgIDxoMj45LiBDYW1iaW9zIGEgRXN0YSBQb2zDrXRpY2E8L2gyPgogICAgICA8cD5Qb2RlbW9zIGFjdHVhbGl6YXIgZXN0YSBQb2zDrXRpY2EgZGUgQ29va2llcyBlbiBjdWFscXVpZXIgbW9tZW50by4gRWwgdXNvIGNvbnRpbnVhZG8gZGUgR2V0Rm91bmRMb2NhbCBkZXNwdcOpcyBkZSBsb3MgY2FtYmlvcyBzaWduaWZpY2EgcXVlIGFjZXB0YXMgbGEgcG9sw610aWNhIGFjdHVhbGl6YWRhLjwvcD4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8Zm9vdGVyPgogICAgPGRpdj4KICAgICAgPGEgaHJlZj0iL3ByaXZhY3kiPlBvbMOtdGljYSBkZSBQcml2YWNpZGFkIC8gUHJpdmFjeSBQb2xpY3k8L2E+CiAgICAgIDxhIGhyZWY9Ii90ZXJtcyI+VMOpcm1pbm9zIC8gVGVybXM8L2E+CiAgICAgIDxhIGhyZWY9Ii9jb29raWVzIj5Db29raWVzPC9hPgogICAgICA8YSBocmVmPSIvYWJvdXQiPk5vc290cm9zIC8gQWJvdXQ8L2E+CiAgICAgIDxhIGhyZWY9Ii9jb250YWN0Ij5Db250YWN0byAvIENvbnRhY3Q8L2E+CiAgICA8L2Rpdj4KICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Ij7CqSAyMDI2IEdldEZvdW5kTG9jYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9wPgogIDwvZm9vdGVyPgoKICA8c2NyaXB0PgogICAgZnVuY3Rpb24gdG9nZ2xlTGFuZygpIHsKICAgICAgY29uc3QgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xhbmctYnRuJyk7CiAgICAgIGNvbnN0IGVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VuLWNvbnRlbnQnKTsKICAgICAgY29uc3QgZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXMtY29udGVudCcpOwogICAgICBjb25zdCBpc0VuZ2xpc2ggPSBidG4udGV4dENvbnRlbnQgPT09ICdFc3Bhw7FvbCc7CiAgICAgIGlmIChpc0VuZ2xpc2gpIHsKICAgICAgICBlbi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsgZXMuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7CiAgICAgICAgYnRuLnRleHRDb250ZW50ID0gJ0VuZ2xpc2gnOyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZycsICdlcycpOwogICAgICB9IGVsc2UgewogICAgICAgIGVzLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyBlbi5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKICAgICAgICBidG4udGV4dENvbnRlbnQgPSAnRXNwYcOxb2wnOyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZycsICdlbicpOwogICAgICB9CiAgICB9CiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmcnKSA9PT0gJ2VzJykgewogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW4tY29udGVudCcpLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOwogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXMtY29udGVudCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOwogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGFuZy1idG4nKS50ZXh0Q29udGVudCA9ICdFbmdsaXNoJzsKICAgIH0KICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+"
with open("/home/yopilaco/localnerd.app/templates/cookies.html","wb") as f:
    f.write(base64.b64decode(data))
print("cookies.html written")
