{"id":145,"date":"2026-04-23T14:09:26","date_gmt":"2026-04-23T14:09:26","guid":{"rendered":"https:\/\/arkfx.eu\/?page_id=145"},"modified":"2026-10-15T17:11:12","modified_gmt":"2026-10-15T17:11:12","slug":"moldr","status":"publish","type":"page","link":"https:\/\/arkfx.eu\/?page_id=145","title":{"rendered":"Moldr &#8211; The Workshop Calculators"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-block-7e6c5a27 alignfull uagb-is-root-container\">\n<div class=\"wp-block-uagb-info-box uagb-block-f4blcgxg uagb-infobox__content-wrap  uagb-infobox-icon-above-title uagb-infobox-image-valign-top wp-block-uagb-info-box--has-margin\"><div class=\"uagb-infobox-margin-wrapper\"><div class=\"uagb-ifb-content\"><div class=\"uagb-ifb-title-wrap\"><p class=\"uagb-ifb-title-prefix\">the WORKSHOP CALCULATORS<\/p><\/div><p class=\"uagb-ifb-desc\"><br>Release agents, mix ratios, pot-life timer, pigment recipes and more. Every calculation a mold maker needs, in one place. <br>Designed and made by ARKFX and Panos Kondylis practically transforming to an app, many notebooks and excel documents gathered over the years from books, online valuable colleagues and experience. <br><br><br><\/p><\/div><\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-b31a8f3a alignfull uagb-is-root-container\">\n<div id=\"moldr-embed\" style=\"max-width:100%;background:#000\"><\/div><script>(function(){var b=\"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KPHRpdGxlPk1vbGRyIEZYIENhbGN1bGF0b3JzPC90aXRsZT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1TcGFjZStHcm90ZXNrOndnaHRANTAwOzcwMCZmYW1pbHk9SW50ZXI6d2dodEA0MDA7NTAwOzYwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjxzdHlsZT4KICA6cm9vdCB7CiAgICAtLWJnOiAjMDAwMDAwOwogICAgLS1wYW5lbDogIzExMTExMTsKICAgIC0tZmllbGQ6ICMxYjFiMWI7CiAgICAtLWxpbmU6ICMyYzJjMmM7CiAgICAtLWxpbmUtc3Ryb25nOiAjM2QzZDNkOwogICAgLS10ZXh0OiAjZjJmMmYyOwogICAgLS1tdXRlZDogIzliOWI5YjsKICAgIC0tYWNjZW50OiAjYmJmZjAwOwogICAgLS1hY2NlbnQtaW5rOiAjMDAwMDAwOwogICAgLS1hY2NlbnQtc29mdDogcmdiYSgxODcsIDI1NSwgMCwgMC4xKTsKICAgIC0tYmFkOiAjZmY1YzVjOwogICAgLS1iYWQtc29mdDogcmdiYSgyNTUsIDkyLCA5MiwgMC4xMik7CiAgICAtLW9rOiAjNWNlMWE2OwogICAgLS1vay1zb2Z0OiByZ2JhKDkyLCAyMjUsIDE2NiwgMC4xMik7CiAgICAtLXJhZGl1czogMTBweDsKICAgIC0tZGlzcGxheTogIlNwYWNlIEdyb3Rlc2siLCAiSW50ZXIiLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7CiAgICAtLWJvZHk6ICJJbnRlciIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjsKICB9CiAgKiB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0KICBodG1sLCBib2R5IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQogIGJvZHkgeyBmb250LWZhbWlseTogdmFyKC0tYm9keSk7IGZvbnQtc2l6ZTogMTVweDsgbGluZS1oZWlnaHQ6IDEuNDU7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9CgogIC5tb2xkciB7IG1heC13aWR0aDogOTIwcHg7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAyMHB4IDE2cHggMjhweDsgfQoKICAvKiBIZWFkZXIgKi8KICAuYnJhbmQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogMTJweDsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQogIC5icmFuZC1tYWluIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBnYXA6IDEycHg7IGZsZXgtd3JhcDogd3JhcDsgbWluLXdpZHRoOiAwOyB9CiAgLyogQVJLRlggU3R1ZGlvIGxvZ28gKHdoaXRlIG9uIHRyYW5zcGFyZW50KSwgZW1iZWRkZWQgc28gTW9sZHIgc3RheXMgYSBzaW5nbGUgZmlsZSAqLwogIC5hcmtmeC1sb2dvIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBhc3BlY3QtcmF0aW86IDI2NCAvIDkwOyBiYWNrZ3JvdW5kOiB1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUWdBQUFCYUNBWUFBQUJFeDhpM0FBQWl4a2xFUVZSNDJ1MWRaOWhjVmJWKzE1bjVVZ2dFQWtnTEVialM1VUx3WXFGSXVVZ1J2UVJCcElOU3dyVlJ4QkJxcEplRThseEFCUXNvU0FuWVVDOUZ2TmRDdVdCQk1BRU5Fb0VnaEFnaGtFQ1NyOHk4OThkWm02eHNwK3c5Yzg3TStaTHZQTTk1NWlzelovWmVlKysxMzczS3U0Q0NYQ1JGNzdWSTNrYXlURkt3Z2x6YXQ3TDN0NUVrZHlaNUdzbTdTUDZSNUQ5SVZyajhOWi9rMHlSL1N2SThrbnVUSE9NOXF5MTV1YmFSdkZLL3M1LzFMOWUrbmZVenBUYmxrcEJjbGVTejN2UHJYYTV0NStnemh1bnJ0d0xhbnNjMW9LL2YwM2FzVGZKNWt0V0l2cHpacml6cnlMZWtyL2Q1YlczV2x6dUt0b0RjQkQxVEczaFVIZ0xyVXQ5SzN1KzdrYnlPNURNQkU2amU5WGVTdDVLY1FISkV2ZThhQkFyQ1RlQnpBaWR3UlJmZWJKS2pyZUx0b29Kdzdlb24rV0Z0eTdHQi9hbnEvUnJKRFp6Q3pGZzVmQ3hROFRxRjlqYkpMWXUwZ0JJVnpNWWtGMmtqWHlRNXh2MXZFS09Ha3RuaGp5RDVhSjNKTldBbWY3MUpWTzg5VDVNOGhlUnFkbGN1dW9JdzQ3NFJ5YmRNUDBOMnVFUGNkeHNaZDFOQnVIWTlxbU5kSXZsSTVLNTlVMWFib2tGbUkwak9DbFFRcmgyWEZtcHpOZ044bXphd1YxK25EbFlVWWR0TWNoK1N2L1VXZkg4YjZJR2V3bkRYWDBrZTNRcWE2SktDY09OK2ErUkMrbDlQK1JaQlFkajJmVWJiczR2S0tuVG5ycEQ4WUJaejNvem5wRWhrTm9ma0dvWFptTTNnN21vNjRnUzJtT1FXV2NLdURoK1h4cGhKeXhvTE9rdDRheWZBVDBodUhEUFJPcTBnekxoL09QQ3NidnU1Zy9lTW9pZ0l0OGorVG5KTmJkTXRrY3J2TjdvNDJ6bTJPV1EybHVTQ0JzaTAxdmNmYldXYUZHaTNuV3IrSkFBSVlDU0FxU0pDL2R1Z1VBNGlNa0R5L1FBZUJuQWNnS3JlcFp4a251aXpxd0FxQVA0RHdLTWtKNGhJcGFBSWpOcXVLODE0TjdvR3RKL2ZGcEhma3l5SlNLVmdmVXAwRE1ZQ21LUi9PeGZBbXdGOUxPbllmUmpBNFcyT20raWFPUi9BR3ZxOWpkWlBSYi8vTVFEZkk1a1VRclpHOHg5WFI4dTYzL2NaREVjTnN3dFBJUGxtRjNjeis1MWZDcEZkSnhHRUdmZlBSQmp5S2lSZko3bStqeWdMaENEb29kK3R0RjFuUjhMODU5VUFHdzN6alN3K0VJaFlxd2ExLzlONEp0MDA0T2t1c29acXVrWmE3Z3AxWmJHb0JrdURIRDRKNEFjQVJxdG1MbmVoT1dXREpxNGtlWmJ1U09VaUdHNTFITWNBdUNoZ2Q0UDJKUUZ3a1lqTUJaQ0lTTFdnKzRSRnZ4ZnIzNjRCOEZlRE1Kb2hrSTBBVE5JK3RycEdweWtxWUlCc1N3QnVGWkdIZldUV3pTT0dHK1N6RlpKVmFyVEh3YTV0QUp6WXBzQnlSVUtxSEE0QWNJY1o2RmpFUTdPd0IvU3U2Ti9ZQXR4TjlCa1hrenhkMjlodEplSEcvVXdBRzVqRjN3eitQZzNncTRvY3NsQU9Wc1paM3dUUUIyQi9rbnVKeUNLZDV5RkhLZGUvVTBqK0M0QnFxUDNOTFc2U2h3SFkxY2l1MFh3VEFJc0FuTzJVZDVIY21sc29GR3RrUkhHdXIxZEpybGMwdDZlQmREc1lWMTJsQlcvRUFNT3M1QU1CQnFkYXp5ZkpRK3NkQ1RweHhJZ2NkLytZK2ZFR2JTL1NFY08vbm5kQmJTUWZpRFJZM2hrcVgrUFdIRVh5dWNCNTZMN243SHJmMDYzZFJFU2txbTdNa2FwMXl3MGdXd1hBMmdET0ZaSFBhMGNxQllQTHR3TVlGYUMxYSsyTzd2MTlBRjRBTUFmQUcvcTNVUUEyQkxDSi9tdy9td1RBYzlHN0N1QmJKR2VJeUZOZE12TDU0MTRKUkEvM2lNalBNbXp6QUlBSEFDek91YjlWQUQwQXRnTHdDSURKQUI0MTBGK2FHQ3dQSnJtN2lQd3FvTytKb29kSkFEWU9tSWNPdWYwVndOVVpJclBNZHR4OUFyV3BOZnowa2R5K0tBWkwwNWZ2UnU1Y05pQm9nT1RQMUdEM0hwTERhKzN1R21WM0VNbnZrVnhZWXpjUDlkSC9ubVNQQnZKSXB4Q0VrZFhla1liSkpTUzNkZ2lreWJPYklRZ244MFVrMStyU1hQbHFKSXI0ZzQ1WFhlUnNrTmttaW1KamtOa25DK01BY01FdEpJZVRuQkdoSU96N0hpaENoMm9vdXY1QTZHLzdPMTNkb2JVR3ZLeDNVdVAvbTVLOHhpeUVnVWp2eGlTckZQSldFQWIrRGlQNXA4Z0ZjbFd6NzJoQlFieWxNaXhybThvNTM2Ny9DY2wxOUxoY2lUZ0NUR3drQTlQLzZaR3kvVVhSSWliZEpEd3BjbUlYU3V1WkFSOU84cWtJdThPQXlhTTR3Rk1JcFhxN2hFbGtLM2tSbWp1UmZMSUZKUFlHeVEydHV6Qm5CVkdLSEhlM0E4NGx1YVpiWEJrcmlFMGFvWktjTjVVdnRpQ0h0V3ZKd1R4emR5L1FzTmtjNkNjNXZram93V25ROVNJMGFEMkJQYU9aa0YweFdKcEIrWFRFNG5UditaMlpuS1ZXSnFoREdQcnpxaVIvRkhIRWNlMjR4dXRMTGdyQzJ6bGZpOXc1VDRoVVFFVlhFTzBncWF2ckpQNlY5QWp5dThqblhWL1VmSXV2dDRnZWZKaDhWcmM2NkRJSTlaZ1VnaDRxNXZ5L3VnL3ZNNUNwTUUwWGo4a2VmSVBrZW40cWVnNEt3ajk3OXpQODdGMEsyUVFHaTRMdzJycHZwQzFtS2NuM2VxalBQZXVFQ0VSU1VVVzlUbUZTR0V4SHRsZERZeVhTVlZjUEpvL3JkQ2RyR05zcWdRdnlKWkxqc2xacXhrQTFndVJqZ1JQRkxhRFRqQkUwY3dWaEp2TDJFY2xwN2oyN3QyQUFMYnlDOE5yNzQ4aGQveDZER2h3YUdhTnpLd2FablJ5NlNYVmFPTlBVN2ROT2JvVUw1bGdkd01WZHpOTTQzQVEyTlhOMUFjRHhJdktpUmx4V012UWJWdFhGdFJUQTBRQVdCZ1RrSlByL3czUjNydVFZVlFpa2VUYmxpSHlMdXdKZGV4aThGQ0VVZFhzdWljalQrQ2pKajZsTWVuVHN6MFVhY01ZbTY5a0Y3czBFY0wwcXhrTGxXeHpZNXRHaUZvcW9rdHlwVTBjTkIzVkpya2J5NVFBRTRmcDZlMWJIaWdBRDhGa1IwTFdmNUw5aWVWYW1UQkNFR2ZlRElxSDBJblgzU2t3RTRXQkNFRjZiTDRzMFdENXQ3Rzg3dEJCd3RtL01la2s2RkVnMEVzRGxFY2loR29naUJNQzBEZzZ5KzU0UEFGZy9JRXc0QWRBTDRIeVZSWjZCS0JXVnc3VUEvaDRRaCsveVJIYjNkdnNzeDMwVWdFc2o4eTJ1RnBIWkJjKzN5T0p5SWRTWEFYZ3BJazlqS3dBbnFXejJRQnB3RnBxdGViZUkzQmVEekpJT3hkMmZDbURUZ01nNUh3SWpBSGJ0Qk9ESURxVTF1MEhZT1VDUlZmVDk5NHZJWDF3VVlZNGhpbFI1THdMd0hkT0dadGZPT1k3N0tRQTJDMUNrN3YvUEc0Vy9JaXNITjE0aUltL29NU0VtVCtNTWt1c0R1QjdBYzAyVWkxTWV2UURPaXMyM1NQSjBhNnFXZkRlQU15S1NseW9BZmgyNG83bk9YcVJab1hsbmV6ckJqby80ekhSdFU5S2hYVWtBM0dYa3pTWmp2NDBxMXY2TXgzMGNVazZFa0FRN040blBWZ1huK0F5d2dpc0poL3B1UnNyRjBDeUZ3S0hRTmRUK3RralhWcU5GNytSL2pZZzhIWXZNa3B6ajdxa3B2YXNGd2lBQWVCQXA0Y21zQUNPZzA1empBRXpPTTl1VHBKZ0IzYVNKL0tpRHZSakFneXFIVGhpRXFOLzFad0RQTkprNGJpekdBVmdyUTNUanh2MFNwSWJrYWlEOGZRakE3U3V3WWJLUnZDcXFUQmxvc0t3Q09KcmtCMFhrVHQxUWF5a1h0eDdtQXJpMEZXU1c1SmorWEZFajFoRUJ1d2pOWkhHN3lGbVJzT3Rra3B2RnBNZTJlSzBLWU4xQXBQR3NuaTg3Qmx0Vjl2MEFaZ1RhYzBhcFBTWExjZDlSeHowMDNiZ0s0TFNWQVRYVVFSRWxFWGxRRS82YUxXSXhHOUEwL2R1WGtIcUEvUFhpNUh1dWlDeG9CWmtsT2JweEV1MUFFb0FlSEJ5K1dVUWVJVGxNUkg0STRMNUEyT1VJT2k3dmdOdHpwRUs4Um9ZOU44QXZhUFppMHNISjc5cjB0NEQzT2JtUHlkZzZmNlZwaHdUWUhyNHJJcjlkQ2RHRDcvWThHOEJiTWZSMEpBOFhrY2NCM09RcEY2ZWNmd2ZncGxidE9rbE82S0VLNENnQU8wYnNJZ3NBbk9OWiswL1hzM0dvd0Q1QmNzOEM4VEF1NmlJeHp6ODZPUTlNZk1jUmtlUCtoaGwzcm9US3djYXlQSTgwWmlTSjhPUmRRbkpWQUZNQXpEZUszOG5ZTVZPMVpOZEpjbkpycnE1MFd5Rzd1Zk5zWENvaUw2dWdCbFRSekVCcXFRMFZHSlJpclZ3UWVqcXVKTjh0ZXJSYnZRVWF1VXZNdUZleDhsN3VhSHdWZ05tUjlIUm5pTWdyYXZkeExHSWxBSGVJeUsvYlFXWkpqblJpWXdQZFd5VUFmd0Z3clFlRDNBSy9RSGZERUlGVkFHd0hZR0tYNmVuRUhFZTZwU2pXUU9kcDVNNUFhdlJzWjl6YlZZcWhkMUhkbm04SGVDWnEwZE50RE9DckFKNUNHdC95UmhZMGNra09iczNOQUp3VTZkNDZYVU9GMzRGQkJuYTlCdUM4UUlFNWVEV0Y1TnJHRnRJdEJUSFdHS0trdzhoaDQ0RDNPZnZRd2phL3M1L2s1cEhqRHQzNWxtYm8xdXhSMmZjWUppMTdPd2F1NFVVc28yQU1sdDhIOE1zSSs5c29BTk5FcEJmQWw3V2ZWNG5JYyswaXN5UUh0K2Jsa2RGZDk0dklUK3ZBSUFlN3ZnbmdpUUNCdVFtL0xvQ3Z1TE5YRnhYRUZwMW1Makt4RU5zZ0xFSnlNVkkzV0x1NzM2VUFWb2tZOS90RTVPNk1hekFzQVBDcTl1ZlZHdmMvOVBWbFU1ZWo1SGcyQXU1T3pxVXYxL0ZNMUVNUm55UzVxNGpjcDg2Qkd6b1F2UnNkVjc1WFpOeDlyOGtGYU1hV3MyY0x6OTR1eTFxSCtycXV4cit6U2Z5N3kxZll5NWFKeTV0elExODNVYXEyUm0xMDdYdE8rUW1raFZ5TVhkRWFmV0F2eVcxenlHd1ZrOTFhNjA0R1E2MVhNK2UvRVpudCtWalcrVDdsRE4wMFBWNTFyQkF1L2h0RVpFWWpJNHFCWGY5RDhvY0FEbXhpSVhkYWM1aWltWDI3WlhSUzdYNndpRHhBc3BPVm5UNE9ZRVFUT2JrR1BTMGlmWnFzMVlkNDhsY2dkV3N5OFAxbEFOZUx5Sit5Y210cUVCc0JiSzQya0lGbXlLa0Z4WlFBK0lPSXpEZmZoNXpEQk00QmNCQ0FOUU5KYmo4QTRETWtiMVJFUDFBa2JmZUZ5S3kwZVlaR3E5bGd1bDFoc3hheTF5WmtWQXcxRmtHNC84M1hmdWJLVzJGMnlCNURRMWNKNElUNGluNStSQXNJWWhlMHhvVjRmN3YxSit2TXdadHpwckRmdHhPWnc2WS9PeWtTckFiTXRRRWRzOTJ5YkdPU0FhU2xHZ1RQQ1FpcnRZYko4OVFBMlZRYkc0UGxYd0ZjSGVrbm5xclpwSjEyZTRydVpHdGlXWlJnbmdaVEYzL3lLUURiQm1hYUVzQXZBaU11RzlsYUppRzgvbVFWd040QURzc2hYcVZYbjk5bjZxRm1jVmZNejUyaUZFaDBybzhJV0ZjT2tYOUgzWnJ2eXNxdWsyUlI1d0RBVjlRd3lNQTZCMzhFOE0xSTk1YURYWmNqVFdjT2RYdHVEdUNMWFhKN2xrd1krRFl1dmlQSHhMalJXQmFIRUhMOG1ZMDAwcTVWQlZIVlNUQkh4eVYwUEYyQzNXb1pLMjR4RmNYeXVEdmxNcTRBT0VhUERDSDFMUVRBNnhwd3RncUErNVhGcTIzVW1tUVFkNzh0Z0ltQjdpMTNUZEx6VWZCWnprU0RMVVI0R1RPM1FNOGtPYllEZVJxTjRpRnVVaGlmcWV2VlpZcXFmTDZPMUwwWm12dnlJN1UvbERPQXhQK0ZOUGNrTk1CbjR3enFUMklGaTdlMjlXb3ZEQXc0YzV2eTVTSXlEMmxleHZZQXBuU1JiVzI1YzlMUEk4K2ZkN1Y2UnZJczBROUg4aTkrdTUyeldRczJpRnA5djgzV0I4bXF6b2orUENXQzJicXEzS0JiMVdESmJvVlJ5ckZSZlNMUzAvUldMSHRVbTR4UzdUQ1lrZVRlZWRvZ1REK210Y0F5Tlp6a1JscFV5ZlgvbzEwaGRqWWRtUkE1SWQ3V2dpVXRUd2p6M1R0R1VPZFh0STBmYWtjNXRhRWc3S1M5eFN5b2NxdncyaXQ2TXlXd0prSXRSWjFKWFF3ekxyL0lxLzdraXF3Z3ZMcWxTeUlOOGZ2ck0yN1gzM3YxZGFhNnNEdm4yalc3K0VpU3M3emlzTTA2Y25GR0hnVy81RjNvOS8rbVZlV1VnWUt3N2ZpMTI3Mk5vbWc0aUVidVZqR3N5YlFVWDJ6aG5BRnpSaTFsckNER1J6Q1h1K2ZzMFNhNld4RVVoT3ZEM1pGeitqNzkzSWU5dGVneldKYzZqUjVPajRSQmMwaXUzcXhLVXFTMjNWRHA3Mk8wN1pHdENDd2pCV0hiOFFiSkw2dWh6aStFVXZKS3QvbkZVc29ranlZNXU4WFNlMS8zWlpBRjdiMTUvVnJrSlArOTYyY3JPOTFnVnhBdDFLdTF3WURiNkhyd0MrZTROZkdhRnF0S2NyZS9tWVU1anVTQ3lJVjVWSmJDTlVJOU0xSlJQYWZWcUtKZ1Y0WUt3bS9yY3lRdjFKMjNwMGtiTmlmNUpaSi9yUE9za1A2L1NISXRGMTJZc1lKdzgyTWRrdi9Jc3Y1a0RnckN4UTJFM0gzNnVsZU8wWisyMmxhb3pLN1ZaeHhYWnk0TTFOc1E4a1lQTjBYdUVBK2IycEtTc1dCWFlWcUtMNlRDbFpzNEY4WUtMR01Gd1RwSHM1bGFJZXRLcGErZlRQSjhQVVk4cmhQVnlyWVM4VjBORFZkWkZjNWhOdlVucFdBSXdsMGZ5MEZCdENLdmlnWWFya1Z5RFMyY1UydisyenFjNzJ1bDdlVVczSm9mUWtvR0UwTkNlNXJTb1NHckVGVjlYaUlpaTBtZUFlQUhBVDU0NS9ZOGxlUk5BSjdUWjFTN2xOQlZNZ0U0WlFEdjFSc0J4V1ZLa1NIUlBRQXVFSkY3bGR4bElHZGVnK3NCSEkvbVFWc3VYbVU5cFJzOFZTZHhuc3hTL2RxK0JZRU02bzdpYlZZYk1TT05BZzNYUWNwc0hScG9XRUthakRpZjVEU2toWE5xeFV1SW1WdlRBT3paaWVQRmc1SG80VHNkY2czbGFqM1BBVUUwTWlENkVIZWdqWEtGRG5WODE1WnRhMUI0cCszQ09UWEtFOGJVbjl5NkJYUVhXemhuVVJleWJCdTFPOVptODdpTzQvakExQVAzdVlOalpadEUwc2dkQVdDWENEcXhOd0djMnlFNnNkTWk2ZWtPSnJsSGdlanB4Q0NEc25lWERKY0JXa0FPM3dmd2FSZHhtVGMvcGttdyt6bUFuMFR3R2d3M1JLeDV5M3FNR2thSGVRYmhScmZrUU95OFBZRGpBbXJHMktDbnlScHR1VGZDcUJXY2ZDL1ZTTXZnNk5Va0FnYXRobkFhT1FjcEx4T1JGL09rRXpPVDhVbWt2QkV4NGR2VG5HRXdKejh4dTFULzBCNWJiZ0Z3aUVlTDMwa2kxa21JcXorNW42cy9tYlBpcnVneGEwQkVRbS9tVks5MldBVEI3NTJhSFZ3QzhJMkF3amsyZXZVOUFFNk5pVjVOSXZJdFRnZnc3Z0JONTc3OFdRRFhkS2hLa2d0ZlBnOHBJVWpvWlB3M0FNZXFOaTdsYUdlb2RJam1qTVpHa1FDNFVFU09kdC9kU1ZwNWsyRDNESURySXZNMHBwSWNYaEJlMFR6TFFoeW9kb0ZRUkw0WXk2cGpKVnFWSzdZOHhHUXRaaFdVZHBBRUpnRnRpalRHTzhRdzZUb3pXVVFXZDZKS2twbU1yMm9NZTBqbFltZkErWXBtbzJhWnArRVd3c01BZnE0eWM5bWR6QkdwaUtLR0Z3QWNJQ0pUUExhdmJoR3hYb3F3QkR0bnROMGF3QmRXeER3TmsyK3hDc0xyMVRvNVhHSHFsdmFyYktjakxUWVZlb3hiRGNCRm9Ya2FTU0NOM01WSTZjU3E1b3Rxa1lBNk50MWZpTWdQTzF6bm9HS3M1My95ZHU1YXQ1dXM2NnYxUEV0Nk9yY0lab25JUHFybFg5ZkZLeVo5bUJsOHo0QkJLczQ2UDE3cDNJNGlPZG5WNXVnaUVlc0NwTFRzTVR2ZFdTVFg2MEtDSFRwRThIc3kwbnExb1hWTFh3QndoWWZJM2ZvOHpXd1FJZW4yUjVMY3BhMWpYQTJxdDBxRXYzMjdiaVNKMUloSUM4M1RXRXB5bXliVWR6RmVER2RGdjkxOGZpT1NWMmhrVzYyQW5Vb0RZcEJxRFMrSGZkOVNrcmVSSEsvZnRSckpyNXIrYmRFc3hEeExMMGF0aERLOUg0MjAxbjh6WkI2MTRNVjRpK1FtTmhlbFEvUFRlUUxmVGZMTnlFRERJNXA0akw0VktkdEhXcWJnODRLUWZ1OEY5VlRyM0c1UXJyR0pTRjI0M1VUL3Zwa3M5ZHBzQlhaUG8zRGZGaFhFclRCc1RmcnoraG9OK1ZpRHdiUUtvZEVFK2d2Snk1UlIyajEvb2tabldoZm4zUUVMT1JjRjRVMWlteTlRRFhCNzlwUGNJYUR0ZzBWQnRKcEQ5R0M5UUVPamROWW4rWHBrOU9veHpXUmJiZ0FOU2JJWEtYRkZKY0p0T2t1ZjBTMCtQUGU5UnlxUnpVRGcwU0hKc2MwRHhyQTBGMmx4bEtzVXRld080RU5JNjNsc0FHQzBHUmN4TUhNaFVsYm1HVWhKWG40cElyOTFDb2praVFBK2h6UXd5UVdvOWVqci9pVDNFWkg3dTFIZXp0YWYxSlQzSXdKNVJjdEkrUzUzRyt4VnQ0eGhjaWVkbTVrRUd1cnhzU1FpYzBsZW9sNlJTaURiMmtVa2Z3eGdVVDJlelhJVEV0QlZkTUhIUUpCVkNuSm1yQ0N0Y0IwemlLTkZaR0VlcEtTdXdyY3FpcEs2eldZQ21BbmdPdjM3bW1vVFdkMFlISHZWZXYwS2dOZnM0aWI1RVFDZkFIQ0FLaGVZczJqSlV6SlRTZjdTS2FzdUdDMmRSK0lzQVBzanJlVVFRc1M2SzhsRFJHVDZZSy9kcWV2aWlrQWp1bE9nTndYVUxYVjJtdXNBSEF0Z3k4RG8xUTBCbkNraVo5U0xYaTAzMEhSVEFaeGdRanRqcXh1aEFJRkhFcWxRaE9SNUl2SmZlVTFHWFpnRFpzSWtHcDlRUVZwYmNYNEFENFFnclp4MWw2bWc1U3NHZnpKc0MrQkVFYm0yQTZITU5UMU5LdE01R2g1OFFZQjd6KzEwbDVIOGJ3Q0x1NlRjc2tJUHh5QytYbTNUUUVPVGRyQ1U1R1Nrd1duVlFHUHdTVXFtOUd6VHRBTjN4aUc1dFpjWXRESmRDMGh1NEJ2MTJyUkJsQVB0UHM3MjR4ZHNTV3oycGJFWFRQUnNEU0VKUHV2VU1sam1hWU9vWTl1YUhaaGc1ODdMVStySnNzZzJDTlBuMFVwNUVOUG4wMFBuanllSGV5TnRIRCtxTjQ1Sm5SM3VDajIvRGtUV094enM5NER1eU9kMW1zOVBSS2gzVlVRcTNsMTEvL2RjdWpjQ2VOellHcG94V0svVGpiN1ZjSHN1YmlIQVo1SXU2c29nYzN1MlVyYzBRVnEzOURydGF5emFtNlJIMDVDcVhCVUFCNURjdTViYk02a0JnejRPNEtQNndYS2RHb2NyNnUzOHhNZVNmSCtCOGpUcUxiUUJwQ1hhUWczSUZRREhreHpmcmI3cDl5WWlNajJ5L3VTcVNDdUJzNGgxTlJ2czZLNWU3Y21SOVdyUGlBMDBOTWJnbVFCdUNBaE1zM0tjcWxTSXkwV3ZKbDUwMXdpRVIzZXRpSmNZbTh1MFFqZDAyV1Q0SllBN0F4Y2FGRzFjVVFBNXc5U2ZSR0NhL2lGTTYwOFdVbkUzVU9hWHRWaTN0QlU3bUROWVhnQmdudkVJTlVzNzJBN0FSRDk2TmZGZzBPZVJocm11ekZUa1RtQzdrVHkwNEpQUmVnYmVqc2hCMlpQa2dWMUdFU1VSZVZ5UFNhVUFSZUVXMXpSdE13ZUpZZklqYUY0dTB2YXZYNDhJN2FMTCtacWJGTUozNFpUSUZPV21lQ2Q2TlRINUZoc2dyVGN4VktkZytmVFlVUUVGZ2JxMU83a2NsTmxJWXl1U0NCLzQ1YkdwdnprbTJNMFBtTWkyL3VTbm5WZWs0UGtXd3lMUW1sdDMxNHZJekRhOWFHNkJmd3Rwa2FwU29JM3FYWDQ5amNTY2NTNEVNR1lsUGw3VU9xOXZqRFJJcGNoSzAwMkdhVWpqOVV1QnFiK2JBamk1VzMwemhaRG1JcTBHRmxOTzhRSXRMc09DR2l3ZElqOWVvWHRJZGF3RWFTRGNCWTVpSVNNYjFhVEl3czhua056T29ieEVmeGlQTkxxcnoxanpWL2FiS285VFNZNFRrWDRzSDYwWmNsYzdhTEJjWkNxT2hiU3JIOENYU1c2Z08xWGlKWUNGeWlnTDVmWjFBSC9XdHZjRmpNbjZTTE9GL1FTN21MYm5GZ3lsYTJvTTBucTEvYW9nR3JYRkVSMmRiK3JWVmpNNnh2MFBVc0tnRWxMUFJyMDJWRXl5NWVYdkhIdlVKLzFIRGwyTnJudE5uTUQ2RVovN01TTDgyTzJlZWRYbi9sQmszKzdXenc3ejZNOUNydDB5TEhxelh3dmo4a0VzWDlucnRvalB2aWVQT0FnVHQzSkxaRitlQ0ttUDBtSnkyS1l0RVBrZUE2UnV6TTJRc3RJOGE3VHh5bjdFc1BVcjNaRnJyRUw0cFFCdVIwcVBWdTg0NWlEbGc5Nnpja2NUV2lqbHpDWjJFM3E3N3JvaThyTCsvcGdXWW00RWl4MGtudGR1LzNTbkV4RzVoK1RsT2grcmdVV2czNmZ0ZGJ2dFF6b3U5ZHJ1eG1zcGdFVlpqNDMybzZMOEltWGR1WnRGOWJxMlh1MktPMmZGdnViUy9FWGtXWkpmQkxCWFJESGdMVmRFc3A2aGEzQVRxUXpKb0dEUGRlRzdwYUVwMmxqR1hwSlU2SkdoMm1sS2ZaUGYwV3JmWWo1ZnlUSXZRbzhiTVpONU9mbkd0RDN2Yk9OMisxS1U5a2lqa3ZKZXVqR0xtQ1RUcnRZdFVwLzh2alJyVyt6N2l6ZzJneW54cXVqeURtaTd2ZDlKTVFqdVI3T3k5SU1sZW0zb0dsU3d1cHhseGJXaHE2YlJ0QlF3QmtuRFdHeWI2a2x5WFFEYkFGZ2JxUXRtTm9DWnhxREVBdVhYajJyRHFGb0Y4SFlSK3FQSEZodU9Td0J2TldxYkJuR1ZyUEZOUlBvS05EbFhiUUQ1QnpUWDRKK2lEd3U4MkZZMVFVVUNZSW5uL2k0Y1lqQnJlbFVBbXlNTmhob0o0QTJrUk1LejNSeXJLMytUUnJ3T3lldEp6cStSRnZxa0tjQ2JGRUF4UUxuOVhsU3FyZm42R25LL3BxOVA2aUxybXBITXVFLzMwemJOMDlkWkpFZldhcHNacjRmMXZYUDFkV0tuM0tvQkZjaUdrM3lxeHRpNG4xOVVqc29iU1I1TWNyUk5leS9hc1lKa0Q4a1oydlpYOVBXZ2JzdTcwZnJRbi8rZDVLMGsvMTZEbm1DSmhqaGNvRlQ0L3l4L2owaHpsc2Rwc0ZSdisrQkx1cTBraklMWTJIQXp0SEs5b0pxMUNBcmlBSzl0OHpVVXVwR0MrTE9YMTM5S3dSVEV2SWl4bU8wVVhKRzhHcDZDZU5uand6aWlhQXJDckkyeEpPK29zZEgzNnQzbnJldjVKRS8xbFlSZDVOOVdDTkpuK0FDSDYrMmk4M29CbkVueXVJTEV3b3ZDcFViTVZvMFlybFlwV053RlRUUnJDSFR0Tis5bEp5STNFVjhrbDAwby9udjFmZjhDNEFhU1AxRHF2eUlXelNtMHZKMlpnT1I3a2NiZ0hLSnQ3RFA1TE1QMDdqRWxHUHFSMGgxZVJmSm1WM2lKcEpUMWdUc0ErSWdoT2hXa0JWL3VSQm9nOUZtazFaZkxBUDRBNEc4ZHFyZlpMSWhwQ1lDN0FZd3c1OEtLZHZaRDVtOVZBTC9XOXlkZTdIdWxZRWxpOXM3Ni9kM3FqeHVISndDOHJMSmZDMmsreUJpUGJQaEFBR3VRM0E5QWY1WVY0YnN3UHAxR0RpUTVGc0M5U01scEhHSHpNS1NCWWZmcCtuMGR3RVpJeVlCMzhXcklIS1cyckludkFBQ1NuMVc0MFd2Q1B1MDVabXVTejVPOFdFdWlGVHF3UmFzZVd5allSL0pkUmJYaTYrc0VqejV1WHNBUlk0YXBpMEdTSnhYc2lQR1MxNmNEdlBldVIvSllrcytZOFhMdnZiSUlualB2aURGSDIrYld5V0ZGT1dLWW84VlBqWW5BemY4ZmtOeW96dWYyTStOazVmOHBlOFFZNCszTUx5aXlHRW15UjBTZUJ2QStFVGxiUkhvVnloVEZreUdtQUVpUENtcDRqYmVPMFBlVVd5NFlNblMxZXcxVHVRL1RPSUpYUk9SR3BFU3VENW1hb2hVQUo1UGMyakZRRFltdUtmZEVWZG5nUG02UVF3Smd1b2djSkNJdnFNdXpiRjRURWJrSGFYM1FlVjdHN01Va1J6bkJ2MklvMTRpVWFueEhFVm1pTlFCN1JPUjF0Nmc2SFIwWXdPWG9vdERjSyt0RURMN3pIc2Z6T0RTOU9oNlI2aXFQTytYZW8rUW1oeU4xdlNXbVpzVG5oM0tEb283Y0p4cGJWZ25BSEFBVFhYeVQ4cHNPbU5jcXlXRWk4aGVseEV1TUczZFRBQk9jZ25qVW5NdXB4SzBQa0x5STVFYkcxenMwVUVOWDFzcTluMlJaUkY0RWNJc1g1YmVub28zcUVOcHJtQ0JXSmJrV2dKMjlOWHFEaUN6VU9pejFiRzJ1Q1BCZEFKNHlDSTRBUHBFb3pIZ2FLWmQrWXZMdVJ5SGxGM2lTNURkSmJxK2FoME9RYitqS2lUcnY1MWhtYlJla2hEMWpCeE5STGJwRGJnU2tWSkdPOEttc0cvNzlJVFUxRE1ITi9aNUJkbnhpQnVkenFrR0c2Y01yZXErT2xCbm5NUzBJdTNhM3FrVVBYU3YwMFlOSWFRZGdqcnJEa1hyUGhxN21CTUFiWXBrM1NBQzhDZUJsVjBZejhGblBlTThjbXhoR29ybHFyUGlKRGxESklJb0JwTzdQendGNGlPUVdRMHBpNk1yaFdsSWpMbVMxb2VOdDBEV3lSc3hHYnlUbnhSSlAxaU1UajFoaW5vaE1RRnJyOFZlbVBtVFowSlJ0QWVCdXBkVGkwTmx3Nk1yd1d0TWpkaEVBcjNhU2RHY1FHeWdYZUl0N1ZJeHlOYlZobDN0bTR0ZE9WS1BIM1NLeUI0QTkxSGpoempvOVJrbDhWdEhIVUlibjBOWDJPVm9uNkZaWXZzN29td0RtRGltSUlBWHhOMk4vcUtpQzJOeWtlWWNjOGY3TmUrYnppY25IU0p5bDB5aUtYNG5JcDVCR1djN3pJaFAzTTRNNWRHVTMwUFVxSDRWOHBqcEk0YmpMRUQ3VThvOGdMVDgzYnpBVzdPM0N2SmtGNEhrdkJQd3daNFFNaU1CY0E4Qyszdng1MkNtR3FpS0lMZTFBcUtJWXJzeTQ1eHNYVkFMZzNmcS9vV05HTmdNODM2dTRQaHJBMmhwSm1QaXNTWnFGdWhhV0dmVmc0SGhSbGJhWTlyc2l4V1YxZGY0SDBwS1BWVU5XTkgwSXBRYnhrSlpGWkNtQWU3enc5c08waEdRL3lXRTFJbklUZFlGV0FVeFJlb2VLaVVXNTNTVjNqQ041RTRESFNSN2szSm1lTnBwZm81REprR0xJRmlJdU1vbHhJd0FjN0FyNDJxT2cvcjRQZ0ExTVVKSGJjUUZnVk5GU2tQWHEwL2IzbVNMRkF5UW5BTGpab0llU0hpMitxNU42Q0tXaUthOEpBRnlIWlVWN3F6cUg3aUM1dWNxY3RySzdqa0UveWY4RWNJcEJiZ21BKzBYa0VaZUhZZE55RjVNODNuRVJxS2JaVXJrVHFocXJYU0g1VU5GeU1neUYrZ2RxNUdKc1dBUXVpeVp4OVBlYU9Qb3F5WVVrVDFDRDhEc2tNU1FQVkE2SXFubnZETlAvOTVyK1NvRnlNYjZnS2ZxYmtYd2Z5YU5KL3N6TXZZcWhaLy9rVUM1R1MzUC8zQnE1R0hOSlRpUzVucGVpc0EzSkcvUTlWVTBIcjVKOG0rU1c3bzFIbWs0UG1NSDZtdzdlcnd6bmdrM29PcjJBdWZDRFZVRzRkdTlxOHZidFdNd2orUWVTdnpXVDFFK3VPY3c4YjF1U214UklRVlJOVXRsYmVyTk9QMGp5cktKUUhBNGlCU0dtSnNkMG95UnNQWXpYU2Y2ZmJrUXp6ZjhxM3ZzT1hVNytKRS8xaUdKcUZkbm9ONVAyQ1pLakM4ais0eGJhKzdXdGZmcTZwTWdLd2tNUlozc3k3NnN6Rm5hTXZ1WTlZODE2bWFBZFZoQnpWUDc5Wm5leVNxSFg2OGViSkU4b0V2K3BweUNlMDM0czF0ZERpN1JKdXZXb2lWZzMxaUNLOGErcTkvZUZKQS8zbFVQSklJazVOUmhvS3Q3Zkh0Q2M4OEl0TnRPWEhXc0lZMXlSRllTM3dJOVZTalovbC9YSDRuV1NreTB6V0lFVzFIQmQ4Q0hYU3lTdk5kV3VTZ1dsblBPcEdJOHVJSXEyUExPSHFHbUFOZWFTdmZwSTNrVnlhMS8rNHBVcVh3L0FNVWhkbUZzZ3JiQlVCZkFTZ0JrQWJnTndtek4yRkpCbTNSbGROd013MVNPUk9WRkU1aGZkWldiNnNBR0FJN3l4U05SWVBBdkFBd0MrcDFXVHhQTStkYTJQN3J0SjlnQzRIc3VDYi94ck1kTFEzaWNBUEt3MUtRdEhYR3Y2VTlMK3JLMUc1REtBcTBUa3dTSzIyUkhXcWkxeGY3MjMxM2swQ2lscHpBc0FmZ1BnK3lMeXUxcnkvMy9sVFVjSS8xK0JVd0FBQUFCSlJVNUVya0pnZ2c9PSIpIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0OyB9CiAgLmJ5IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBmbGV4OiAwIDAgYXV0bzsgY29sb3I6IHZhcigtLW11dGVkKTsgZm9udC1zaXplOiAxMnB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IG9wYWNpdHk6IC44OyB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXM7IH0KICAuYnk6aG92ZXIsIC5ieTpmb2N1cy12aXNpYmxlIHsgb3BhY2l0eTogMTsgfQogIC5ieSAuYXJrZngtbG9nbyB7IGhlaWdodDogMjZweDsgfQogIC5icmFuZCBoMSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1kaXNwbGF5KTsgZm9udC1zaXplOiAzMHB4OyBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsgbWFyZ2luOiAwOyBsaW5lLWhlaWdodDogMTsgfQogIC5icmFuZCBoMSBzcGFuIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0KICAuYnJhbmQgcCB7IG1hcmdpbjogMDsgY29sb3I6IHZhcigtLW11dGVkKTsgZm9udC1zaXplOiAxNHB4OyB9CgogIC8qIFRhYnMgKi8KICAudGFicyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNnB4OyBvdmVyZmxvdy14OiBhdXRvOyBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IHBhZGRpbmctYm90dG9tOiAycHg7IG1hcmdpbi1ib3R0b206IDE0cHg7IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfQogIC50YWJzOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3BsYXk6IG5vbmU7IH0KICAudGFiIHsKICAgIGZsZXg6IDAgMCBhdXRvOyBmb250OiA2MDAgMTRweC8xIHZhcigtLWJvZHkpOyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogOTk5cHg7IHBhZGRpbmc6IDEwcHggMTZweDsgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogY29sb3IgLjE1cywgYmFja2dyb3VuZCAuMTVzLCBib3JkZXItY29sb3IgLjE1czsgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICB9CiAgLnRhYjpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1saW5lLXN0cm9uZyk7IH0KICAudGFiW2FyaWEtc2VsZWN0ZWQ9InRydWUiXSB7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTsgY29sb3I6IHZhcigtLWFjY2VudC1pbmspOyB9CiAgLnRhYjpmb2N1cy12aXNpYmxlLCBidXR0b246Zm9jdXMtdmlzaWJsZSwgaW5wdXQ6Zm9jdXMtdmlzaWJsZSwgc2VsZWN0OmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYWNjZW50KTsgb3V0bGluZS1vZmZzZXQ6IDJweDsgfQoKICAvKiBQYW5lbHMgKi8KICAucGFuZWwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiAxNHB4OyBwYWRkaW5nOiAyMnB4OyB9CiAgLnBhbmVsW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9CiAgLnBhbmVsLWhlYWQgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9CiAgLnBhbmVsLWhlYWQgaDIgeyBmb250LWZhbWlseTogdmFyKC0tZGlzcGxheSk7IGZvbnQtc2l6ZTogMjJweDsgbWFyZ2luOiAwIDAgNHB4OyBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsgfQogIC5wYW5lbC1oZWFkIHAgeyBtYXJnaW46IDA7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IGZvbnQtc2l6ZTogMTRweDsgbWF4LXdpZHRoOiA2MGNoOyB9CgogIC5ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ2FwOiAxNHB4OyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsgfQogIC5maWVsZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNnB4OyBtaW4td2lkdGg6IDA7IH0KICAuZmllbGQgbGFiZWwsIC5sYWJlbCB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLW11dGVkKTsgfQogIGlucHV0W3R5cGU9Im51bWJlciJdLCBpbnB1dFt0eXBlPSJ0ZXh0Il0sIHNlbGVjdCB7CiAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiA0NnB4OyBwYWRkaW5nOiAwIDE0cHg7IGZvbnQ6IDUwMCAxNnB4IHZhcigtLWJvZHkpOyBjb2xvcjogdmFyKC0tdGV4dCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1maWVsZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXM7IC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyBhcHBlYXJhbmNlOiBub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgfQogIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgbWFyZ2luOiAwOyB9CiAgaW5wdXQ6aG92ZXIsIHNlbGVjdDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tbGluZS1zdHJvbmcpOyB9CiAgaW5wdXQ6Zm9jdXMsIHNlbGVjdDpmb2N1cyB7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTsgb3V0bGluZTogbm9uZTsgfQogIHNlbGVjdCB7CiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4OyBjdXJzb3I6IHBvaW50ZXI7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDEyIDgnJTNFJTNDcGF0aCBkPSdNMSAxbDUgNSA1LTUnIHN0cm9rZT0nJTIzYmJmZjAwJyBzdHJva2Utd2lkdGg9JzInIGZpbGw9J25vbmUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcvJTNFJTNDL3N2ZyUzRSIpOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTRweCBjZW50ZXI7CiAgfQogIHNlbGVjdCBvcHRpb24geyBiYWNrZ3JvdW5kOiAjMWIxYjFiOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KICAuY29tYm8geyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQogIC5jb21ibyBpbnB1dCB7IGZsZXg6IDEgMSBhdXRvOyBtaW4td2lkdGg6IDA7IH0KICAuY29tYm8gc2VsZWN0IHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiBhdXRvOyBtaW4td2lkdGg6IDExOHB4OyB9CgogIC5idG4gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDhweDsgaGVpZ2h0OiA0OHB4OyBwYWRkaW5nOiAwIDI2cHg7CiAgICBmb250OiA3MDAgMTVweCB2YXIoLS1kaXNwbGF5KTsgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsgY29sb3I6IHZhcigtLWFjY2VudC1pbmspOyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpOwogICAgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMDhzLCBmaWx0ZXIgLjE1czsKICB9CiAgLmJ0bjpob3ZlciB7IGZpbHRlcjogYnJpZ2h0bmVzcygxLjEpOyB9CiAgLmJ0bjphY3RpdmUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsgfQogIC5idG4tZ2hvc3QgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLXRleHQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLXN0cm9uZyk7IGhlaWdodDogNDBweDsgcGFkZGluZzogMCAxNHB4OyBmb250OiA2MDAgMTRweCB2YXIoLS1ib2R5KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgY3Vyc29yOiBwb2ludGVyOyB9CiAgLmJ0bi1naG9zdDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0KICAuYWN0aW9ucyB7IG1hcmdpbi10b3A6IDE4cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTBweDsgZmxleC13cmFwOiB3cmFwOyB9CgogIC5zZWcgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYmFja2dyb3VuZDogdmFyKC0tZmllbGQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgcGFkZGluZzogM3B4OyBnYXA6IDNweDsgZmxleC13cmFwOiB3cmFwOyB9CiAgLnNlZyBidXR0b24geyBmb250OiA2MDAgMTRweCB2YXIoLS1ib2R5KTsgY29sb3I6IHZhcigtLW11dGVkKTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogN3B4OyBwYWRkaW5nOiA5cHggMTRweDsgY3Vyc29yOiBwb2ludGVyOyB9CiAgLnNlZyBidXR0b25bYXJpYS1wcmVzc2VkPSJ0cnVlIl0geyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50LWluayk7IH0KICAuc2VnIGJ1dHRvbjpob3Zlcjpub3QoW2FyaWEtcHJlc3NlZD0idHJ1ZSJdKSB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQoKICAuY2hpcHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgZmxleC13cmFwOiB3cmFwOyBtYXJnaW4tdG9wOiA4cHg7IH0KICAuY2hpcCB7IGZvbnQ6IDYwMCAxM3B4IHZhcigtLWJvZHkpOyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBwYWRkaW5nOiA2cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOyB9CiAgLmNoaXA6aG92ZXIgeyBjb2xvcjogdmFyKC0tYWNjZW50KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9CgogIC8qIFJlc3VsdHMgKi8KICAucmVzdWx0IHsgbWFyZ2luLXRvcDogMjBweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IDEycHg7IHBhZGRpbmc6IDE4cHggMjBweDsgYmFja2dyb3VuZDogIzBiMGIwYjsgfQogIC5yZXN1bHQgLmV5ZWJyb3cgeyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IG1hcmdpbi1ib3R0b206IDZweDsgfQogIC5yZXN1bHQgLmJpZyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1kaXNwbGF5KTsgZm9udC1zaXplOiAyOHB4OyBmb250LXdlaWdodDogNzAwOyBsaW5lLWhlaWdodDogMS4xNTsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0KICAucmVzdWx0IC50aXAgeyBtYXJnaW4tdG9wOiAxMnB4OyBwYWRkaW5nLXRvcDogMTJweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KICAucmVzdWx0IC50aXAgYiB7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTJweDsgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDRweDsgfQogIC5yZXN1bHQuaXMtb2sgeyBib3JkZXItY29sb3I6IHJnYmEoOTIsMjI1LDE2NiwuNCk7IGJhY2tncm91bmQ6IHZhcigtLW9rLXNvZnQpOyB9CiAgLnJlc3VsdC5pcy1vayAuYmlnIHsgY29sb3I6IHZhcigtLW9rKTsgfQogIC5yZXN1bHQuaXMtYmFkIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSw5Miw5MiwuNDUpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iYWQtc29mdCk7IH0KICAucmVzdWx0LmlzLWJhZCAuYmlnIHsgY29sb3I6IHZhcigtLWJhZCk7IH0KICAucmVzdWx0LmlzLWVtcHR5IC5iaWcgeyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1ib2R5KTsgfQoKICAuc3RhdHMgeyBkaXNwbGF5OiBncmlkOyBnYXA6IDEwcHg7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUwcHgsIDFmcikpOyBtYXJnaW4tdG9wOiAyMHB4OyB9CiAgLnN0YXQgeyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMTRweCAxNnB4OyBiYWNrZ3JvdW5kOiAjMGIwYjBiOyBtaW4td2lkdGg6IDA7IH0KICAuc3RhdCAuayB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLW11dGVkKTsgfQogIC5zdGF0IC52IHsgZm9udC1mYW1pbHk6IHZhcigtLWRpc3BsYXkpOyBmb250LXNpemU6IDI2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IG1hcmdpbi10b3A6IDRweDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7IH0KICAuc3RhdCAudiBzbWFsbCB7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHZhcigtLW11dGVkKTsgZm9udC13ZWlnaHQ6IDUwMDsgbWFyZ2luLWxlZnQ6IDNweDsgfQogIC5zdGF0LmhsIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQtc29mdCk7IH0KICAuc3RhdC5obCAudiB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9CiAgLnN0YXQuZGltIC52IHsgY29sb3I6ICM1NTU7IH0KCiAgLm5vdGUgeyBtYXJnaW4tdG9wOiAxNHB4OyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IH0KICAuZGl2aWRlciB7IGhlaWdodDogMXB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1saW5lKTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMDsgfQogIC5zaGFwZS1maWVsZHNbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0KCiAgLyogUGlnbWVudCBtaXhlciAqLwogIC5waWctcm93cyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4OyBtYXJnaW4tdG9wOiA4cHg7IH0KICAucGlnLXJvdyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDZweCBtaW5tYXgoMCwgMWZyKSAxMDhweCAxMDRweCA4NHB4IDQwcHg7IGdyaWQtdGVtcGxhdGUtYXJlYXM6ICJzdyBuYW1lIGhleCByYWwgcGFydHMgeCI7IGdhcDogOHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9CiAgLnBpZy1yb3cgPiA6bnRoLWNoaWxkKDEpIHsgZ3JpZC1hcmVhOiBzdzsgfSAucGlnLXJvdyA+IDpudGgtY2hpbGQoMikgeyBncmlkLWFyZWE6IG5hbWU7IH0gLnBpZy1yb3cgPiA6bnRoLWNoaWxkKDMpIHsgZ3JpZC1hcmVhOiBoZXg7IH0KICAucGlnLXJvdyA+IDpudGgtY2hpbGQoNCkgeyBncmlkLWFyZWE6IHJhbDsgfSAucGlnLXJvdyA+IDpudGgtY2hpbGQoNSkgeyBncmlkLWFyZWE6IHBhcnRzOyB9IC5waWctcm93ID4gOm50aC1jaGlsZCg2KSB7IGdyaWQtYXJlYTogeDsgfQogIC5waWctcm93IGlucHV0LmNvZGUgeyBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCAiU0YgTW9ubyIsIE1lbmxvLCBtb25vc3BhY2U7IGZvbnQtc2l6ZTogMTRweDsgcGFkZGluZzogMCAxMHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiAgLnBpZy1yb3cgaW5wdXQuY29kZS5iYWQgeyBib3JkZXItY29sb3I6IHZhcigtLWJhZCk7IH0KICAubWl4LWNvZGVzIHsgbWFyZ2luLXRvcDogNnB4OyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IH0KICAubWl4LWNvZGVzIGIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAucGlnLXJvdyBpbnB1dFt0eXBlPSJjb2xvciJdIHsgd2lkdGg6IDQ2cHg7IGhlaWdodDogNDZweDsgcGFkZGluZzogMDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IGJhY2tncm91bmQ6IHZhcigtLWZpZWxkKTsgY3Vyc29yOiBwb2ludGVyOyB9CiAgLnBpZy1yb3cgaW5wdXRbdHlwZT0iY29sb3IiXTo6LXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciB7IHBhZGRpbmc6IDVweDsgfQogIC5waWctcm93IGlucHV0W3R5cGU9ImNvbG9yIl06Oi13ZWJraXQtY29sb3Itc3dhdGNoIHsgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiA2cHg7IH0KICAucGlnLXJvdyBpbnB1dFt0eXBlPSJjb2xvciJdOjotbW96LWNvbG9yLXN3YXRjaCB7IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogNnB4OyB9CiAgLmljb24tYnRuIHsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDZweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogMjBweDsgbGluZS1oZWlnaHQ6IDE7IH0KICAuaWNvbi1idG46aG92ZXIgeyBjb2xvcjogdmFyKC0tYmFkKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1iYWQpOyB9CiAgLmljb24tYnRuOmRpc2FibGVkIHsgb3BhY2l0eTogLjM7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH0KICAucGlnLWhlYWQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ2cHggbWlubWF4KDAsIDFmcikgMTA4cHggMTA0cHggODRweCA0MHB4OyBnYXA6IDhweDsgfQogIC5taXgtb3V0IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxNDBweCAxZnI7IGdhcDogMTZweDsgbWFyZ2luLXRvcDogMjBweDsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH0KICAuc3dhdGNoIHsgYm9yZGVyLXJhZGl1czogMTJweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS1zdHJvbmcpOyBtaW4taGVpZ2h0OiAxNDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB9CiAgLnN3YXRjaCBzcGFuIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA4cHg7IGJvdHRvbTogOHB4OyBmb250OiA2MDAgMTJweCB2YXIoLS1ib2R5KTsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuNik7IHBhZGRpbmc6IDNweCA3cHg7IGJvcmRlci1yYWRpdXM6IDZweDsgfQogIC5taXgtdGFibGUgeyB3aWR0aDogMTAwJTsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQogIC5taXgtdGFibGUgdGgsIC5taXgtdGFibGUgdGQgeyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiA5cHggNnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZSk7IH0KICAubWl4LXRhYmxlIHRoIHsgZm9udC1zaXplOiAxMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogLjA2ZW07IGNvbG9yOiB2YXIoLS1tdXRlZCk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAubWl4LXRhYmxlIHRkLm51bSwgLm1peC10YWJsZSB0aC5udW0geyB0ZXh0LWFsaWduOiByaWdodDsgfQogIC5taXgtdGFibGUgdGZvb3QgdGQgeyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgYm9yZGVyLWJvdHRvbTogMDsgfQogIC5kb3QgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgbWFyZ2luLXJpZ2h0OiA4cHg7IHZlcnRpY2FsLWFsaWduOiAtMXB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4yKTsgfQogIGlucHV0W3R5cGU9InJhbmdlIl0geyB3aWR0aDogMTAwJTsgYWNjZW50LWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBoZWlnaHQ6IDQ2cHg7IG1hcmdpbjogMDsgfQoKICAvKiBUaW1lciAqLwogIC50aW1lci1jYXJkcyB7IGRpc3BsYXk6IGdyaWQ7IGdhcDogMTJweDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNDBweCwgMWZyKSk7IG1hcmdpbi10b3A6IDIwcHg7IH0KICAudGNhcmQgeyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMTZweCAxOHB4OyBiYWNrZ3JvdW5kOiAjMGIwYjBiOyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjJzLCBiYWNrZ3JvdW5kIC4yczsgfQogIC50Y2FyZCAuayB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IC4wNmVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogOHB4OyB9CiAgLnRjYXJkIC5jbG9jayB7IGZvbnQtZmFtaWx5OiB2YXIoLS1kaXNwbGF5KTsgZm9udC1zaXplOiA0NHB4OyBmb250LXdlaWdodDogNzAwOyBsaW5lLWhlaWdodDogMS4xOyBtYXJnaW46IDZweCAwIDRweDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQogIC50Y2FyZCAuYXQgeyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBmb250LXNpemU6IDE0cHg7IH0KICAudHJhY2sgeyBoZWlnaHQ6IDZweDsgYmFja2dyb3VuZDogdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IDk5cHg7IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbi10b3A6IDEycHg7IH0KICAudHJhY2sgZGl2IHsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMDsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgYm9yZGVyLXJhZGl1czogOTlweDsgdHJhbnNpdGlvbjogd2lkdGggLjI1cyBsaW5lYXI7IH0KICAudGNhcmQubGl2ZSB7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LXNvZnQpOyB9CiAgLnRjYXJkLmxpdmUgLmNsb2NrIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0KICAudGNhcmQud2FybiB7IGJvcmRlci1jb2xvcjogI2ZmYjAyMDsgYmFja2dyb3VuZDogcmdiYSgyNTUsMTc2LDMyLC4xKTsgfQogIC50Y2FyZC53YXJuIC5jbG9jayB7IGNvbG9yOiAjZmZiMDIwOyB9CiAgLnRjYXJkLm92ZXIgeyBib3JkZXItY29sb3I6IHJnYmEoMjU1LDkyLDkyLC40NSk7IGJhY2tncm91bmQ6IHZhcigtLWJhZC1zb2Z0KTsgfQogIC50Y2FyZC5vdmVyIC5jbG9jayB7IGNvbG9yOiB2YXIoLS1iYWQpOyB9CiAgLnRjYXJkLmRvbmUgeyBib3JkZXItY29sb3I6IHJnYmEoOTIsMjI1LDE2NiwuNSk7IGJhY2tncm91bmQ6IHZhcigtLW9rLXNvZnQpOyB9CiAgLnRjYXJkLmRvbmUgLmNsb2NrIHsgY29sb3I6IHZhcigtLW9rKTsgfQogIC50Y2FyZC5kb25lIC50cmFjayBkaXYgeyBiYWNrZ3JvdW5kOiB2YXIoLS1vayk7IH0KICAudGNhcmQub3ZlciAudHJhY2sgZGl2IHsgYmFja2dyb3VuZDogdmFyKC0tYmFkKTsgfQogIC50c3RhdHVzIHsgbWFyZ2luLXRvcDogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxNnB4OyBtaW4taGVpZ2h0OiAxLjQ1ZW07IH0KICAuZmxhc2ggeyBhbmltYXRpb246IGZsYXNoIC42cyBlYXNlLWluLW91dCA0OyB9CiAgQGtleWZyYW1lcyBmbGFzaCB7IDUwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS1hY2NlbnQpOyB9IH0KICAuY2hlY2sgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IGZvbnQtc2l6ZTogMTRweDsgY3Vyc29yOiBwb2ludGVyOyB9CiAgLmNoZWNrIGlucHV0IHsgYWNjZW50LWNvbG9yOiB2YXIoLS1hY2NlbnQpOyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyB9CiAgLmJ0bi1naG9zdC5iaWcgeyBoZWlnaHQ6IDQ4cHg7IHBhZGRpbmc6IDAgMjJweDsgfQoKICAvKiBQcmludCBmYWxsYmFjayAodXNlZCBvbmx5IGlmIHRoZSByZWNpcGUgc2hlZXQgY2FuJ3Qgb3BlbiBpbiBhIG5ldyB3aW5kb3cpICovCiAgQG1lZGlhIHByaW50IHsKICAgIGJvZHksIGh0bWwgeyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiAjMTExICFpbXBvcnRhbnQ7IH0KICAgIC5icmFuZCwgLnRhYnMsIGZvb3RlciwgLnBhbmVsOm5vdCgjcC1waWcpLCAjcC1waWcgLmFjdGlvbnMsICNwLXBpZyAuY2hpcHMsICNwLXBpZyAucmVjaXBlLWJhciwgI3AtcGlnIC5pY29uLWJ0biwgI3AtcGlnIC5kaXZpZGVyIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9CiAgICAjcC1waWcgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiAjZmZmOyBib3JkZXI6IDA7IHBhZGRpbmc6IDA7IH0KICAgICNwLXBpZywgI3AtcGlnICogeyBjb2xvcjogIzExMSAhaW1wb3J0YW50OyB9CiAgICAjcC1waWcgaW5wdXQgeyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjogI2NjYyAhaW1wb3J0YW50OyB9CiAgICAuc3dhdGNoLCAuZG90IHsgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0OyBwcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0OyB9CiAgfQoKICBmb290ZXIgeyBtYXJnaW4tdG9wOiAyMnB4OyBwYWRkaW5nLXRvcDogMThweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBmb250LXNpemU6IDEycHg7IGNvbG9yOiAjNmY2ZjZmOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9CiAgZm9vdGVyIHAgeyBtYXJnaW46IDA7IH0KICBmb290ZXIgYSB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZS1zdHJvbmcpOyB9CiAgZm9vdGVyIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tYWNjZW50KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9CiAgZm9vdGVyIC5zaXRlIHsgYm9yZGVyOiAwOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBvcGFjaXR5OiAuODsgbWFyZ2luLXRvcDogNHB4OyB9CiAgZm9vdGVyIC5zaXRlOmhvdmVyIHsgb3BhY2l0eTogMTsgY29sb3I6IHZhcigtLXRleHQpOyB9CiAgZm9vdGVyIC5zaXRlIC5hcmtmeC1sb2dvIHsgaGVpZ2h0OiAyMnB4OyB9CiAgZm9vdGVyIC5zaXRlIHNwYW4geyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IH0KCiAgQG1lZGlhIChtYXgtd2lkdGg6IDU2MHB4KSB7CiAgICAubW9sZHIgeyBwYWRkaW5nOiAxNHB4IDEycHggMjBweDsgfQogICAgLnBhbmVsIHsgcGFkZGluZzogMTZweDsgfQogICAgLmJyYW5kIGgxIHsgZm9udC1zaXplOiAyNnB4OyB9CiAgICAuYnJhbmQtbWFpbiB7IGdhcDogMnB4IDEwcHg7IH0KICAgIC5ieSAuYXJrZngtbG9nbyB7IGhlaWdodDogMjJweDsgfQogICAgLnJlc3VsdCAuYmlnIHsgZm9udC1zaXplOiAyNHB4OyB9CiAgICAuYnRuIHsgd2lkdGg6IDEwMCU7IH0KICAgIC5taXgtb3V0IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0KICAgIC5zd2F0Y2ggeyBtaW4taGVpZ2h0OiA5MHB4OyB9CiAgICAucGlnLWhlYWQgeyBkaXNwbGF5OiBub25lOyB9CiAgICAucGlnLXJvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDZweCBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKSA3MnB4OyBncmlkLXRlbXBsYXRlLWFyZWFzOiAic3cgbmFtZSBuYW1lIHgiICJoZXggaGV4IHJhbCBwYXJ0cyI7IHBhZGRpbmctYm90dG9tOiAxMHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZSk7IH0KICAgIC5waWctcm93IC5pY29uLWJ0biB7IGp1c3RpZnktc2VsZjogZW5kOyB9CiAgfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJtb2xkciIgaWQ9Im1vbGRyIj4KICA8aGVhZGVyIGNsYXNzPSJicmFuZCI+CiAgICA8ZGl2IGNsYXNzPSJicmFuZC1tYWluIj4KICAgICAgPGgxPk1PTEQ8c3Bhbj5SPC9zcGFuPjwvaDE+CiAgICAgIDxwPkZYIHdvcmtzaG9wIGNhbGN1bGF0b3JzPC9wPgogICAgPC9kaXY+CiAgICA8YSBjbGFzcz0iYnkiIGhyZWY9Imh0dHBzOi8vYXJrZnguZXUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj5ieSA8c3BhbiBjbGFzcz0iYXJrZngtbG9nbyIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJBUktGWCBTdHVkaW8iPjwvc3Bhbj48L2E+CiAgPC9oZWFkZXI+CgogIDxuYXYgY2xhc3M9InRhYnMiIHJvbGU9InRhYmxpc3QiIGFyaWEtbGFiZWw9IkNhbGN1bGF0b3JzIj4KICAgIDxidXR0b24gY2xhc3M9InRhYiIgcm9sZT0idGFiIiBpZD0idC1tb2xkIiBhcmlhLWNvbnRyb2xzPSJwLW1vbGQiPk1vbGQ8L2J1dHRvbj4KICAgIDxidXR0b24gY2xhc3M9InRhYiIgcm9sZT0idGFiIiBpZD0idC1jYXN0IiBhcmlhLWNvbnRyb2xzPSJwLWNhc3QiPkNhc3Q8L2J1dHRvbj4KICAgIDxidXR0b24gY2xhc3M9InRhYiIgcm9sZT0idGFiIiBpZD0idC1kZWFkIiBhcmlhLWNvbnRyb2xzPSJwLWRlYWQiPkRlYWRlbmVyPC9idXR0b24+CiAgICA8YnV0dG9uIGNsYXNzPSJ0YWIiIHJvbGU9InRhYiIgaWQ9InQtbGlmZSIgYXJpYS1jb250cm9scz0icC1saWZlIj5MaWZlY2FzdDwvYnV0dG9uPgogICAgPGJ1dHRvbiBjbGFzcz0idGFiIiByb2xlPSJ0YWIiIGlkPSJ0LW1peCIgYXJpYS1jb250cm9scz0icC1taXgiPk1peCBSYXRpbzwvYnV0dG9uPgogICAgPGJ1dHRvbiBjbGFzcz0idGFiIiByb2xlPSJ0YWIiIGlkPSJ0LXRpbWVyIiBhcmlhLWNvbnRyb2xzPSJwLXRpbWVyIj5UaW1lcjwvYnV0dG9uPgogICAgPGJ1dHRvbiBjbGFzcz0idGFiIiByb2xlPSJ0YWIiIGlkPSJ0LXZvbCIgYXJpYS1jb250cm9scz0icC12b2wiPlZvbHVtZTwvYnV0dG9uPgogICAgPGJ1dHRvbiBjbGFzcz0idGFiIiByb2xlPSJ0YWIiIGlkPSJ0LWRlbnMiIGFyaWEtY29udHJvbHM9InAtZGVucyI+RGVuc2l0eTwvYnV0dG9uPgogICAgPGJ1dHRvbiBjbGFzcz0idGFiIiByb2xlPSJ0YWIiIGlkPSJ0LXBpZyIgYXJpYS1jb250cm9scz0icC1waWciPkNvbG9yIE1peGVyPC9idXR0b24+CiAgPC9uYXY+CgogIDwhLS0gTU9MRCAtLT4KICA8c2VjdGlvbiBjbGFzcz0icGFuZWwiIHJvbGU9InRhYnBhbmVsIiBpZD0icC1tb2xkIiBhcmlhLWxhYmVsbGVkYnk9InQtbW9sZCI+CiAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkIj4KICAgICAgPGgyPlRoZSBSZWxlYXNlIE1hY2hpbmU8L2gyPgogICAgICA8cD5NYWtpbmcgYSBtb2xkPyBQaWNrIHdoYXQgeW91ciBvcmlnaW5hbCBpcyBtYWRlIG9mIGFuZCB3aGF0IHlvdSdyZSBtb2xkaW5nIGl0IHdpdGguPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9Im1vbGQtYSI+T2JqZWN0IG1hdGVyaWFsPC9sYWJlbD48c2VsZWN0IGlkPSJtb2xkLWEiPjwvc2VsZWN0PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0ibW9sZC1iIj5Nb2xkaW5nIG1hdGVyaWFsPC9sYWJlbD48c2VsZWN0IGlkPSJtb2xkLWIiPjwvc2VsZWN0PjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJtb2xkLWdvIj5SZWxlYXNlIGl0ITwvYnV0dG9uPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icmVzdWx0IGlzLWVtcHR5IiBpZD0ibW9sZC1vdXQiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgPGRpdiBjbGFzcz0iZXllYnJvdyI+UmVsZWFzZSBhZ2VudDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJiaWciPlBpY2sgeW91ciBtYXRlcmlhbHMgYW5kIGhpdCBSZWxlYXNlIGl0ITwvZGl2PgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIENBU1QgLS0+CiAgPHNlY3Rpb24gY2xhc3M9InBhbmVsIiByb2xlPSJ0YWJwYW5lbCIgaWQ9InAtY2FzdCIgYXJpYS1sYWJlbGxlZGJ5PSJ0LWNhc3QiIGhpZGRlbj4KICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWQiPgogICAgICA8aDI+Q2FzdCBNYWNoaW5lPC9oMj4KICAgICAgPHA+Q2FzdGluZyBpbnRvIGEgbW9sZD8gUGljayB0aGUgbW9sZCBtYXRlcmlhbCBhbmQgd2hhdCB5b3UncmUgcG91cmluZyBpbi48L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iY2FzdC1hIj5Nb2xkIG1hdGVyaWFsPC9sYWJlbD48c2VsZWN0IGlkPSJjYXN0LWEiPjwvc2VsZWN0PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iY2FzdC1iIj5DYXN0aW5nIG1hdGVyaWFsPC9sYWJlbD48c2VsZWN0IGlkPSJjYXN0LWIiPjwvc2VsZWN0PjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJjYXN0LWdvIj5SZWxlYXNlIGl0ITwvYnV0dG9uPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icmVzdWx0IGlzLWVtcHR5IiBpZD0iY2FzdC1vdXQiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgPGRpdiBjbGFzcz0iZXllYnJvdyI+UmVsZWFzZSBhZ2VudDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJiaWciPlBpY2sgeW91ciBtYXRlcmlhbHMgYW5kIGhpdCBSZWxlYXNlIGl0ITwvZGl2PgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIExJRkVDQVNUIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJwYW5lbCIgcm9sZT0idGFicGFuZWwiIGlkPSJwLWxpZmUiIGFyaWEtbGFiZWxsZWRieT0idC1saWZlIiBoaWRkZW4+CiAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkIj4KICAgICAgPGgyPkNhc3QgTWUhPC9oMj4KICAgICAgPHA+SG93IG11Y2ggc2lsaWNvbmUgYW5kIHBsYXN0ZXIgYmFuZGFnZSB5b3UgbmVlZCBmb3IgYSBsaWZlY2FzdC48L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0ibGlmZS1wYXJ0Ij5Cb2R5IHBhcnQ8L2xhYmVsPjxzZWxlY3QgaWQ9ImxpZmUtcGFydCI+PC9zZWxlY3Q+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJsaWZlLXF0eSI+SG93IG1hbnk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJsaWZlLXF0eSIgbWluPSIxIiBzdGVwPSIxIiB2YWx1ZT0iMSIgaW5wdXRtb2RlPSJudW1lcmljIj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ic3RhdHMiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgPGRpdiBjbGFzcz0ic3RhdCBobCI+PGRpdiBjbGFzcz0iayI+U2lsaWNvbmU8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0ibGlmZS1rZyI+4oCTPC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InN0YXQgaGwiPjxkaXYgY2xhc3M9ImsiPlNpbGljb25lPC9kaXY+PGRpdiBjbGFzcz0idiIgaWQ9ImxpZmUtbGIiPuKAkzwvZGl2PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzdGF0IiBpZD0ibGlmZS1iNC1ib3giPjxkaXYgY2xhc3M9ImsiPjQiIGJhbmRhZ2Ugcm9sbHM8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0ibGlmZS1iNCI+4oCTPC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InN0YXQiIGlkPSJsaWZlLWI4LWJveCI+PGRpdiBjbGFzcz0iayI+OCIgYmFuZGFnZSByb2xsczwvZGl2PjxkaXYgY2xhc3M9InYiIGlkPSJsaWZlLWI4Ij7igJM8L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgogICAgPHAgY2xhc3M9Im5vdGUiPkVzdGltYXRlcy4gQnV5IGEgbGl0dGxlIGV4dHJhIHNvIHlvdSBuZXZlciBydW4gc2hvcnQgbWlkLWNhc3QuPC9wPgogIDwvc2VjdGlvbj4KCiAgPCEtLSBNSVggUkFUSU8gLS0+CiAgPHNlY3Rpb24gY2xhc3M9InBhbmVsIiByb2xlPSJ0YWJwYW5lbCIgaWQ9InAtbWl4IiBhcmlhLWxhYmVsbGVkYnk9InQtbWl4IiBoaWRkZW4+CiAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkIj4KICAgICAgPGgyPk1peCBSYXRpbzwvaDI+CiAgICAgIDxwPkdldCBleGFjdCBQYXJ0IEEgYW5kIFBhcnQgQiBhbW91bnRzIGZvciBhbnkgcmF0aW8sIGZyb20gYSB0b3RhbCBiYXRjaCBvciBmcm9tIHdoYXQncyBsZWZ0IGluIHRoZSBib3R0bGUuPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTZweCI+CiAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+TWVhc3VyZWQgYnk8L3NwYW4+CiAgICAgIDxkaXYgY2xhc3M9InNlZyIgaWQ9Im1peC1ieSIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9Ik1lYXN1cmVkIGJ5Ij4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS12PSJnIiBhcmlhLXByZXNzZWQ9InRydWUiPldlaWdodCAoZyk8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS12PSJtbCIgYXJpYS1wcmVzc2VkPSJmYWxzZSI+Vm9sdW1lIChtbCk8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0ibWl4LWEiPlBhcnQgQSByYXRpbzwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9Im1peC1hIiBtaW49IjAiIHN0ZXA9ImFueSIgaW5wdXRtb2RlPSJkZWNpbWFsIiB2YWx1ZT0iMSI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJtaXgtYiI+UGFydCBCIHJhdGlvPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ibWl4LWIiIG1pbj0iMCIgc3RlcD0iYW55IiBpbnB1dG1vZGU9ImRlY2ltYWwiIHZhbHVlPSIxIj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY2hpcHMiIGlkPSJtaXgtY2hpcHMiPjwvZGl2PgogICAgPGhyIGNsYXNzPSJkaXZpZGVyIj4KICAgIDxkaXYgY2xhc3M9ImZpZWxkIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxNnB4Ij4KICAgICAgPHNwYW4gY2xhc3M9ImxhYmVsIj5JIGtub3c8L3NwYW4+CiAgICAgIDxkaXYgY2xhc3M9InNlZyIgaWQ9Im1peC1tb2RlIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iS25vd24gYW1vdW50Ij4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS12PSJ0b3RhbCIgYXJpYS1wcmVzc2VkPSJ0cnVlIj5Ub3RhbCBiYXRjaDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLXY9ImEiIGFyaWEtcHJlc3NlZD0iZmFsc2UiPlBhcnQgQSBJIGhhdmU8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS12PSJiIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj5QYXJ0IEIgSSBoYXZlPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9Im1peC1hbXQiIGlkPSJtaXgtYW10LWxhYmVsIj5Ub3RhbCBiYXRjaCAoZyk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJtaXgtYW10IiBtaW49IjAiIHN0ZXA9ImFueSIgaW5wdXRtb2RlPSJkZWNpbWFsIiBwbGFjZWhvbGRlcj0iMCI+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InN0YXRzIiBhcmlhLWxpdmU9InBvbGl0ZSI+CiAgICAgIDxkaXYgY2xhc3M9InN0YXQgaGwiIGlkPSJtaXgtYS1ib3giPjxkaXYgY2xhc3M9ImsiPlBhcnQgQTwvZGl2PjxkaXYgY2xhc3M9InYiIGlkPSJtaXgtYS1vdXQiPuKAkzwvZGl2PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzdGF0IGhsIiBpZD0ibWl4LWItYm94Ij48ZGl2IGNsYXNzPSJrIj5QYXJ0IEI8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0ibWl4LWItb3V0Ij7igJM8L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3RhdCIgaWQ9Im1peC10LWJveCI+PGRpdiBjbGFzcz0iayI+VG90YWw8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0ibWl4LXQtb3V0Ij7igJM8L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgogICAgPHAgY2xhc3M9Im5vdGUiIGlkPSJtaXgtbm90ZSI+PC9wPgogIDwvc2VjdGlvbj4KCiAgPCEtLSBUSU1FUiAtLT4KICA8c2VjdGlvbiBjbGFzcz0icGFuZWwiIHJvbGU9InRhYnBhbmVsIiBpZD0icC10aW1lciIgYXJpYS1sYWJlbGxlZGJ5PSJ0LXRpbWVyIiBoaWRkZW4+CiAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkIj4KICAgICAgPGgyPlBvdCBMaWZlICZhbXA7IERlbW9sZCBUaW1lcjwvaDI+CiAgICAgIDxwPlN0YXJ0IGl0IHRoZSBtb21lbnQgeW91IGJlZ2luIG1peGluZy4gSXQgY291bnRzIGRvd24geW91ciB3b3JraW5nIHRpbWUgYW5kIHRlbGxzIHlvdSB3aGVuIGl0J3Mgc2FmZSB0byBkZW1vbGQuPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9InRtLW5hbWUiPldoYXQgYXJlIHlvdSBwb3VyaW5nPyAob3B0aW9uYWwpPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRtLW5hbWUiIHBsYWNlaG9sZGVyPSJlLmcuIFBsYXRpbnVtIHNpbGljb25lLCBmYWNlIG1vbGQiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0idG0tcG90Ij5Qb3QgbGlmZSAobWludXRlcyk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ0bS1wb3QiIG1pbj0iMCIgc3RlcD0iYW55IiBpbnB1dG1vZGU9ImRlY2ltYWwiIHZhbHVlPSIyMCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcHMiIGlkPSJ0bS1wb3QtY2hpcHMiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9InRtLWRtIj5EZW1vbGQgdGltZTwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iY29tYm8iPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ0bS1kbSIgbWluPSIwIiBzdGVwPSJhbnkiIGlucHV0bW9kZT0iZGVjaW1hbCIgdmFsdWU9IjQiPgogICAgICAgICAgPHNlbGVjdCBpZD0idG0tZG0tdW5pdCIgYXJpYS1sYWJlbD0iRGVtb2xkIHRpbWUgdW5pdCI+PG9wdGlvbiB2YWx1ZT0iNjAiPmhvdXJzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMSI+bWludXRlczwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNoaXBzIiBpZD0idG0tZG0tY2hpcHMiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIiBpZD0idG0tc3RhcnQiPlN0YXJ0IG1peGluZzwvYnV0dG9uPgogICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0bi1naG9zdCBiaWciIGlkPSJ0bS1yZXNldCIgaGlkZGVuPlJlc2V0PC9idXR0b24+CiAgICAgIDxsYWJlbCBjbGFzcz0iY2hlY2siIHN0eWxlPSJtYXJnaW4tbGVmdDphdXRvIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ0bS1zb3VuZCIgY2hlY2tlZD4gU291bmQgYWxlcnRzPC9sYWJlbD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0idGltZXItY2FyZHMiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgPGRpdiBjbGFzcz0idGNhcmQiIGlkPSJ0bS1wb3QtY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iayI+PHNwYW4+UG90IGxpZmU6IHBvdXIgd2l0aGluPC9zcGFuPjxzcGFuIGlkPSJ0bS1wb3QtcGN0Ij48L3NwYW4+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2xvY2siIGlkPSJ0bS1wb3QtY2xvY2siPjIwOjAwPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXQiIGlkPSJ0bS1wb3QtYXQiPk5vdCBzdGFydGVkPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHJhY2siPjxkaXYgaWQ9InRtLXBvdC1iYXIiPjwvZGl2PjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idGNhcmQiIGlkPSJ0bS1kbS1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJrIj48c3Bhbj5EZW1vbGQgaW48L3NwYW4+PHNwYW4gaWQ9InRtLWRtLXBjdCI+PC9zcGFuPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb2NrIiBpZD0idG0tZG0tY2xvY2siPjQ6MDA6MDA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdCIgaWQ9InRtLWRtLWF0Ij5Ob3Qgc3RhcnRlZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIj48ZGl2IGlkPSJ0bS1kbS1iYXIiPjwvZGl2PjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0idHN0YXR1cyIgaWQ9InRtLXN0YXR1cyI+PC9kaXY+CiAgICA8cCBjbGFzcz0ibm90ZSI+VXNlIHRoZSBwb3QgbGlmZSBhbmQgZGVtb2xkIHRpbWVzIGZyb20geW91ciBwcm9kdWN0J3MgZGF0YSBzaGVldC4gSGVhdCBzcGVlZHMgY3VyaW5nIGFuZCBjb2xkIHNsb3dzIGl0IGRvd24uIDxzcGFuIGlkPSJ0bS1rZWVwIj5LZWVwIHRoaXMgcGFnZSBvcGVuOyB0aGUgdGltZXIga2VlcHMgcnVubmluZyBpZiB5b3Ugc3dpdGNoIHRhYnMgaGVyZS48L3NwYW4+PC9wPgogIDwvc2VjdGlvbj4KCiAgPCEtLSBWT0xVTUUgLS0+CiAgPHNlY3Rpb24gY2xhc3M9InBhbmVsIiByb2xlPSJ0YWJwYW5lbCIgaWQ9InAtdm9sIiBhcmlhLWxhYmVsbGVkYnk9InQtdm9sIiBoaWRkZW4+CiAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkIj4KICAgICAgPGgyPlZvbHVtZSBNYWNoaW5lPC9oMj4KICAgICAgPHA+TWVhc3VyZSB5b3VyIG1vbGQgYm94IGFuZCBnZXQgdGhlIHZvbHVtZSBhbmQgaG93IG11Y2ggbWF0ZXJpYWwgaXQgdGFrZXMgdG8gZmlsbC48L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZpZWxkIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxNnB4Ij4KICAgICAgPHNwYW4gY2xhc3M9ImxhYmVsIj5TaGFwZTwvc3Bhbj4KICAgICAgPGRpdiBjbGFzcz0ic2VnIiBpZD0idm9sLXNoYXBlIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iU2hhcGUiPgogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLXNoYXBlPSJib3giIGFyaWEtcHJlc3NlZD0idHJ1ZSI+Qm94PC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtc2hhcGU9ImN5bCIgYXJpYS1wcmVzc2VkPSJmYWxzZSI+Q3lsaW5kZXI8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1zaGFwZT0ic3BoIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj5TcGhlcmU8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0idm9sLXVuaXQiPk1lYXN1cmVkIGluPC9sYWJlbD4KICAgICAgICA8c2VsZWN0IGlkPSJ2b2wtdW5pdCI+PG9wdGlvbiB2YWx1ZT0iMC4xIj5tbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjEiIHNlbGVjdGVkPmNtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTAwIj5tPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMi41NCI+aW5jaGVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMzAuNDgiPmZlZXQ8L29wdGlvbj48L3NlbGVjdD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIHNoYXBlLWZpZWxkcyIgZGF0YS1mb3I9ImJveCI+PGxhYmVsIGZvcj0idm9sLWwiPkxlbmd0aDwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InZvbC1sIiBtaW49IjAiIHN0ZXA9ImFueSIgaW5wdXRtb2RlPSJkZWNpbWFsIiBwbGFjZWhvbGRlcj0iMCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIHNoYXBlLWZpZWxkcyIgZGF0YS1mb3I9ImJveCI+PGxhYmVsIGZvcj0idm9sLXciPldpZHRoPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idm9sLXciIG1pbj0iMCIgc3RlcD0iYW55IiBpbnB1dG1vZGU9ImRlY2ltYWwiIHBsYWNlaG9sZGVyPSIwIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQgc2hhcGUtZmllbGRzIiBkYXRhLWZvcj0iYm94IGN5bCI+PGxhYmVsIGZvcj0idm9sLWgiPkhlaWdodDwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InZvbC1oIiBtaW49IjAiIHN0ZXA9ImFueSIgaW5wdXRtb2RlPSJkZWNpbWFsIiBwbGFjZWhvbGRlcj0iMCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIHNoYXBlLWZpZWxkcyIgZGF0YS1mb3I9ImN5bCBzcGgiIGhpZGRlbj48bGFiZWwgZm9yPSJ2b2wtZCI+RGlhbWV0ZXI8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ2b2wtZCIgbWluPSIwIiBzdGVwPSJhbnkiIGlucHV0bW9kZT0iZGVjaW1hbCIgcGxhY2Vob2xkZXI9IjAiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzdGF0cyIgYXJpYS1saXZlPSJwb2xpdGUiPgogICAgICA8ZGl2IGNsYXNzPSJzdGF0IGhsIj48ZGl2IGNsYXNzPSJrIj5Wb2x1bWU8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0idm9sLW1sIj7igJM8L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3RhdCI+PGRpdiBjbGFzcz0iayI+TGl0ZXJzPC9kaXY+PGRpdiBjbGFzcz0idiIgaWQ9InZvbC1sLW91dCI+4oCTPC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InN0YXQiPjxkaXYgY2xhc3M9ImsiPkN1YmljIGluY2hlczwvZGl2PjxkaXYgY2xhc3M9InYiIGlkPSJ2b2wtaW4zIj7igJM8L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3RhdCI+PGRpdiBjbGFzcz0iayI+VVMgZmwgb3o8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0idm9sLWZsb3oiPuKAkzwvZGl2PjwvZGl2PgogICAgPC9kaXY+CiAgICA8aHIgY2xhc3M9ImRpdmlkZXIiPgogICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJ2b2wtbWF0Ij5GaWxsIG1hdGVyaWFsPC9sYWJlbD48c2VsZWN0IGlkPSJ2b2wtbWF0Ij48L3NlbGVjdD48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9InZvbC1zZyI+RGVuc2l0eSAoZy9tbCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ2b2wtc2ciIG1pbj0iMCIgc3RlcD0iMC4wMSIgaW5wdXRtb2RlPSJkZWNpbWFsIj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ic3RhdHMiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgPGRpdiBjbGFzcz0ic3RhdCBobCI+PGRpdiBjbGFzcz0iayI+TWF0ZXJpYWwgbmVlZGVkPC9kaXY+PGRpdiBjbGFzcz0idiIgaWQ9InZvbC1nIj7igJM8L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3RhdCI+PGRpdiBjbGFzcz0iayI+S2lsb2dyYW1zPC9kaXY+PGRpdiBjbGFzcz0idiIgaWQ9InZvbC1rZyI+4oCTPC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InN0YXQiPjxkaXYgY2xhc3M9ImsiPlBvdW5kczwvZGl2PjxkaXYgY2xhc3M9InYiIGlkPSJ2b2wtbGIiPuKAkzwvZGl2PjwvZGl2PgogICAgPC9kaXY+CiAgICA8cCBjbGFzcz0ibm90ZSI+VGhlIHZvbHVtZSBvZiB5b3VyIG9yaWdpbmFsIG9iamVjdCB0YWtlcyB1cCBzcGFjZSB0b28uIFN1YnRyYWN0IGl0LCBvciBtZWFzdXJlIGJ5IGZpbGxpbmcgdGhlIGJveCB3aXRoIHJpY2Ugb3Igd2F0ZXIgZmlyc3QuPC9wPgogIDwvc2VjdGlvbj4KCiAgPCEtLSBERU5TSVRZIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJwYW5lbCIgcm9sZT0idGFicGFuZWwiIGlkPSJwLWRlbnMiIGFyaWEtbGFiZWxsZWRieT0idC1kZW5zIiBoaWRkZW4+CiAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkIj4KICAgICAgPGgyPkRlbnNpdHkgTWFjaGluZTwvaDI+CiAgICAgIDxwPkNvbnZlcnQgYmV0d2VlbiB3ZWlnaHQgKGdyYW1zKSBhbmQgdm9sdW1lIChtbCkgZm9yIHlvdXIgc2lsaWNvbmUuPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9ImRlbnMtbWF0Ij5NYXRlcmlhbDwvbGFiZWw+PHNlbGVjdCBpZD0iZGVucy1tYXQiPjwvc2VsZWN0PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iZGVucy1zZyI+RGVuc2l0eSAoZy9tbCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJkZW5zLXNnIiBtaW49IjAiIHN0ZXA9IjAuMDEiIGlucHV0bW9kZT0iZGVjaW1hbCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJkZW5zLXZhbCI+QW1vdW50PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJjb21ibyI+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImRlbnMtdmFsIiBtaW49IjAiIHN0ZXA9ImFueSIgaW5wdXRtb2RlPSJkZWNpbWFsIiBwbGFjZWhvbGRlcj0iMCI+CiAgICAgICAgICA8c2VsZWN0IGlkPSJkZW5zLXVuaXQiIGFyaWEtbGFiZWw9IlVuaXQiPjxvcHRpb24gdmFsdWU9ImciPmdyYW1zPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibWwiPm1sPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzdGF0cyIgYXJpYS1saXZlPSJwb2xpdGUiPgogICAgICA8ZGl2IGNsYXNzPSJzdGF0IiBpZD0iZGVucy1nLWJveCI+PGRpdiBjbGFzcz0iayI+V2VpZ2h0PC9kaXY+PGRpdiBjbGFzcz0idiIgaWQ9ImRlbnMtZyI+4oCTPC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InN0YXQgaGwiIGlkPSJkZW5zLW1sLWJveCI+PGRpdiBjbGFzcz0iayI+Vm9sdW1lPC9kaXY+PGRpdiBjbGFzcz0idiIgaWQ9ImRlbnMtbWwiPuKAkzwvZGl2PjwvZGl2PgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIERFQURFTkVSIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJwYW5lbCIgcm9sZT0idGFicGFuZWwiIGlkPSJwLWRlYWQiIGFyaWEtbGFiZWxsZWRieT0idC1kZWFkIiBoaWRkZW4+CiAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkIj4KICAgICAgPGgyPkRlYWRlbmVyIENhbGN1bGF0b3I8L2gyPgogICAgICA8cD5TcGxpdCBhIHRvdGFsIGJhdGNoIHdlaWdodCBpbnRvIFBhcnQgQSwgUGFydCBCIGFuZCBzaWxpY29uZSBkZWFkZW5lciAoUGFydCBEKS48L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iZGVhZC13Ij5Ub3RhbCBiYXRjaCB3ZWlnaHQgKGcpPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZGVhZC13IiBtaW49IjAiIHN0ZXA9ImFueSIgaW5wdXRtb2RlPSJkZWNpbWFsIiBwbGFjZWhvbGRlcj0iMCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJkZWFkLXAiPkRlYWRlbmVyICglIG9mIEErQik8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJkZWFkLXAiIG1pbj0iMCIgc3RlcD0iYW55IiBpbnB1dG1vZGU9ImRlY2ltYWwiIHZhbHVlPSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlwcyIgaWQ9ImRlYWQtY2hpcHMiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ic3RhdHMiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgPGRpdiBjbGFzcz0ic3RhdCBobCI+PGRpdiBjbGFzcz0iayI+UGFydCBBPC9kaXY+PGRpdiBjbGFzcz0idiIgaWQ9ImRlYWQtYSI+4oCTPC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InN0YXQgaGwiPjxkaXYgY2xhc3M9ImsiPlBhcnQgQjwvZGl2PjxkaXYgY2xhc3M9InYiIGlkPSJkZWFkLWIiPuKAkzwvZGl2PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzdGF0IGhsIj48ZGl2IGNsYXNzPSJrIj5QYXJ0IEQgKGRlYWRlbmVyKTwvZGl2PjxkaXYgY2xhc3M9InYiIGlkPSJkZWFkLWQiPuKAkzwvZGl2PjwvZGl2PgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIENPTE9SIE1JWEVSIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJwYW5lbCIgcm9sZT0idGFicGFuZWwiIGlkPSJwLXBpZyIgYXJpYS1sYWJlbGxlZGJ5PSJ0LXBpZyIgaGlkZGVuPgogICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZCI+CiAgICAgIDxoMj5Db2xvciBNaXhlcjwvaDI+CiAgICAgIDxwPkNob29zZSBvbmUgb2YgdGhlIHJlY2lwZXMsIG9yIG1ha2UgYW5kIHByaW50IHlvdXIgb3duLCB3aGV0aGVyIGl0J3MgcHJvc3RoZXRpY3MgZm9yIHlvdXIgYWN0b3IsIHlvdXIgUEFYIHJlY2lwZSBvciBhIG1peCBmb3IgeW91ciB3YWxsLjwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icmVjaXBlLWJhciI+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJyZWMtYnJhbmQiPlBpZ21lbnQgYnJhbmQ8L2xhYmVsPjxzZWxlY3QgaWQ9InJlYy1icmFuZCI+PC9zZWxlY3Q+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9InJlYy1waWNrIj5SZWNpcGU8L2xhYmVsPjxzZWxlY3QgaWQ9InJlYy1waWNrIj48L3NlbGVjdD48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJub3RlIiBpZD0icmVjLWRlc2MiIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHgiPjwvcD4KICAgIDwvZGl2PgogICAgPGhyIGNsYXNzPSJkaXZpZGVyIj4KICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0icGlnLXciPkJhdGNoIHdlaWdodCAoZyk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJwaWctdyIgbWluPSIwIiBzdGVwPSJhbnkiIGlucHV0bW9kZT0iZGVjaW1hbCIgcGxhY2Vob2xkZXI9IjAiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0icGlnLXAiPlBpZ21lbnQgbG9hZCAoJSk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJwaWctcCIgbWluPSIwIiBtYXg9IjEwMCIgc3RlcD0iMC4xIiB2YWx1ZT0iMiIgaW5wdXRtb2RlPSJkZWNpbWFsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlwcyIgaWQ9InBpZy1jaGlwcyI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZCIgc3R5bGU9Im1hcmdpbi10b3A6MThweCI+CiAgICAgIDxkaXYgY2xhc3M9InBpZy1oZWFkIj48c3BhbiBjbGFzcz0ibGFiZWwiPkNvbG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJsYWJlbCI+UGlnbWVudDwvc3Bhbj48c3BhbiBjbGFzcz0ibGFiZWwiPkhleDwvc3Bhbj48c3BhbiBjbGFzcz0ibGFiZWwiPlJBTDwvc3Bhbj48c3BhbiBjbGFzcz0ibGFiZWwiPlBhcnRzPC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgPGRhdGFsaXN0IGlkPSJyYWwtbGlzdCI+PC9kYXRhbGlzdD4KICAgICAgPGRpdiBjbGFzcz0icGlnLXJvd3MiIGlkPSJwaWctcm93cyI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHgiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWdob3N0IiBpZD0icGlnLWFkZCI+KyBBZGQgcGlnbWVudDwvYnV0dG9uPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtaXgtb3V0Ij4KICAgICAgPGRpdj48ZGl2IGNsYXNzPSJzd2F0Y2giIGlkPSJwaWctc3dhdGNoIj48c3BhbiBpZD0icGlnLWhleCI+Izwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJtaXgtY29kZXMiIGlkPSJwaWctY29kZXMiPjwvZGl2PjwvZGl2PgogICAgICA8dGFibGUgY2xhc3M9Im1peC10YWJsZSI+CiAgICAgICAgPHRoZWFkPjx0cj48dGg+UGlnbWVudDwvdGg+PHRoIGNsYXNzPSJudW0iPiU8L3RoPjx0aCBjbGFzcz0ibnVtIj5HcmFtczwvdGg+PC90cj48L3RoZWFkPgogICAgICAgIDx0Ym9keSBpZD0icGlnLXRib2R5Ij48L3Rib2R5PgogICAgICAgIDx0Zm9vdD48dHI+PHRkPlRvdGFsIHBpZ21lbnQ8L3RkPjx0ZCBjbGFzcz0ibnVtIiBpZD0icGlnLXRwIj48L3RkPjx0ZCBjbGFzcz0ibnVtIiBpZD0icGlnLXRnIj7igJM8L3RkPjwvdHI+PC90Zm9vdD4KICAgICAgPC90YWJsZT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4iIGlkPSJwaWctcHJpbnQiPlByaW50IC8gU2F2ZSBQREY8L2J1dHRvbj48L2Rpdj4KICAgIDxwIGNsYXNzPSJub3RlIj5UaGUgc3dhdGNoIGlzIGEgcm91Z2ggb24tc2NyZWVuIHByZXZpZXcuIFJlYWwgcGlnbWVudHMgbWl4IGRpZmZlcmVudGx5LCBzbyBhbHdheXMgdGVzdCBhIHNtYWxsIGJhdGNoIGZpcnN0LiBSZWNpcGVzIGFyZSBzdGFydGluZyBwb2ludHMuIEFkanVzdCB0aGVtIHRvIHlvdXIgc3ViamVjdCBhbmQgY2hlY2sgeW91ciBwaWdtZW50J3MgbWF4IGxvYWQgaW4gaXRzIGRhdGEgc2hlZXQuIFRvIGtlZXAgYSByZWNpcGUsIHByaW50IGl0IG9yIGNob29zZSAiU2F2ZSBhcyBQREYiIGluIHRoZSBwcmludCBkaWFsb2cuPC9wPgogIDwvc2VjdGlvbj4KCiAgPGZvb3Rlcj4KICAgIDxwPkFsd2F5cyB0ZXN0IG9uIGEgc21hbGwgYXJlYSBmaXJzdCBhbmQgZm9sbG93IHRoZSBtYW51ZmFjdHVyZXIncyB0ZWNobmljYWwgZGF0YSBzaGVldC48L3A+CiAgICA8cD5Gb3IgZmVlZGJhY2sgYW5kIHN1Z2dlc3Rpb25zLCBmZWVsIGZyZWUgdG8gc2VuZCBhbiBlbWFpbCB0byA8YSBocmVmPSJtYWlsdG86bW9sZHJAYXJrZnguZXU\/c3ViamVjdD1Nb2xkciUyMGZlZWRiYWNrIj5tb2xkckBhcmtmeC5ldTwvYT4uPC9wPgogICAgPGEgY2xhc3M9InNpdGUiIGhyZWY9Imh0dHBzOi8vYXJrZnguZXUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj48c3BhbiBjbGFzcz0iYXJrZngtbG9nbyIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJBUktGWCBTdHVkaW8iPjwvc3Bhbj48c3Bhbj5hcmtmeC5ldTwvc3Bhbj48L2E+CiAgPC9mb290ZXI+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uICgpIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIFNUUj1bIkFkZCAxLTMlIERpc2ggU29hcCB0byB3YXRlciBzb2x1dGlvbiBhbmQgc3ByYXkgb3IgYnJ1c2ggb24iLCAiQWxnaW5hdGUgaG9sZHMgd2F0ZXIsIHdoaWNoIHJ1aW5zIHVyZXRoYW5lLCBwb2x5ZXN0ZXIgYW5kIGVwb3h5IGNhc3RzLiBQb3VyIHBsYXN0ZXIgb3Igc2lsaWNvbmUgaW5zdGVhZC4iLCAiQWxnaW5hdGUgaXMgYSBzaG9ydC1saWZlLCB3ZXQgbW9sZC4gVXNlIGl0IGZvciBwbGFzdGVyLCBzaWxpY29uZSBvciB3YXggY2FzdHMuIiwgIkFsZ2luYXRlIHRlYXJzIGludG8gb3BlbiBmb2FtIGNlbGxzLiBTZWFsIHRoZSBmb2FtIHdlbGwsIG9yIHVzZSBzaWxpY29uZSBpbnN0ZWFkLiIsICJBcHBseSAxIGNvYXQiLCAiQXBwbHkgMiBjb2F0cyBvZiBtZWx0ZWQgYnV0dGVyIiwgIkFwcGx5IDIgbGlnaHQgY29hdHMiLCAiQXBwbHkgMi0zIGxpZ2h0IGNvYXRzIiwgIkJydXNoIG9uIDItMyBjb2F0cyIsICJCdXR0ZXIiLCAiQ2hlY2sgZm9yIHRlbXBlcmF0dXJlIHJlcXVpcmVtZW50cyIsICJDbGVhciBBY3J5bGljIChzZWFsIGNvYXQpIiwgIkNvYXQgYWxsIGhhaXIgKGV5ZWJyb3dzLCBsYXNoZXMsIGhhaXJsaW5lKSB3ZWxsLiBTb21lIHBlb3BsZSBhcmUgYWxsZXJnaWMgdG8gbGF0ZXgsIHNvIGNoZWNrIGZpcnN0LiIsICJDdXJlIGluaGliaXRpb24gbWlnaHQgb2NjdXIiLCAiRGFiIiwgIkRpcCB0aGUgbW9sZCBpbiB3YXRlciBmb3IgYSBzaG9ydCB0aW1lIiwgIkRpc2ggU29hcCBNaXgiLCAiRWFzZSBSZWxlYXNlIDIwMCIsICJFcG94eSBQYXJmaWxtIiwgIkV4b3RoZXJtIHJlYWN0aW9uIG1pZ2h0IG1lbHQgdGhlIHdheCIsICJGaXJzdCBhcHBseSBhIHNlYWwgY29hdCBvZiBDbGVhciBBY3J5bGljIFNwcmF5IiwgIkZpcnN0IGFwcGx5IGEgc2VhbCBjb2F0IG9mIENsZWFyIEFjcnlsaWMgU3ByYXkgYW5kIHRoZW4gYXBwbHkgMiBsaWdodCBjb2F0cyIsICJGaXJzdCBhcHBseSBhIHNlYWwgY29hdCBvZiBQZXRyb2xldW0gSmVsbHkgYW5kIHRoZW4gYXBwbHkgMiBsaWdodCBjb2F0cyIsICJGaXJzdCBhcHBseSBhIHNlYWwgY29hdCBvZiBTaGVsbGFjIGFuZCBicnVzaCBvbiAyIGxpZ2h0IGNvYXRzIiwgIkZpcnN0IGFwcGx5IGEgc2VhbCBjb2F0IG9mIFNoZWxsYWMgYW5kIHRoZW4gc3ByYXkgMiBsaWdodCBjb2F0cyIsICJGaXJzdCBhcHBseSBhIHNlYWwgY29hdCBvZiBTaGVsbGFjIG9yIFdheCBhbmQgdGhlbiBzcHJheSAyIGxpZ2h0IGNvYXRzIiwgIkZpcnN0IGFwcGx5IGEgc2VhbCBjb2F0IG9mIFhUQy0zRCBwcmludCBhbmQgdGhlbiBzcHJheSAyIGxpZ2h0IGNvYXRzIiwgIkZ1bGx5IHBvc3QtY3VyZSB0aGUgcHJpbnQgdW5kZXIgVVYgZmlyc3QuIiwgIkhhemFyZG91cyBtYXRlcmlhbCBmb3IgaHVtYW4gc2tpbiIsICJJdCBpcyBwb3NzaWJsZSB0aGF0IGdsYXNzIHdpbGwgYnJlYWsiLCAiSXQgd2lsbCBwcm9iYWJseSBiZSBpbXBvc3NpYmxlIHRvIGRlbW9sZCIsICJMZXQgdGhlIHdheCBjb29sIHRvIGp1c3QgYWJvdmUgaXRzIG1lbHRpbmcgcG9pbnQgYmVmb3JlIHBvdXJpbmcuIiwgIkxpZ2h0bHkgYnJ1c2ggb24gdGFsYyBwb3dkZXIgYW5kIGJydXNoIG9mZiB0aGUgZXhjZXNzIiwgIkxpcXVpZCBXYXgiLCAiTWFrZSBzdXJlIHRoZSBjbGF5IGlzIHRydWx5IHN1bGZ1ci1mcmVlIGFuZCB0ZXN0IGEgc21hbGwgYXJlYSBmaXJzdC4gU29tZSBjbGF5cyBzdGlsbCBpbmhpYml0IHBsYXRpbnVtLiIsICJNYWtlIHN1cmUgdGhlIHVyZXRoYW5lIGlzIGZ1bGx5IGN1cmVkLiBTZWFsIGl0IHdpdGggY2xlYXIgYWNyeWxpYyBmaXJzdCB0byBhdm9pZCBjdXJlIGluaGliaXRpb24sIHRoZW4gc3ByYXkgMiBsaWdodCBjb2F0cy4iLCAiTm8gcmVsZWFzZSBhZ2VudCBpcyBuZWVkZWQiLCAiTm90IHJlY29tbWVuZGVkIiwgIk5vdGhpbmciLCAiUFZBIiwgIlBldHJvbGV1bSBKZWxseSIsICJQb2wtRWFzZSAyMzAwIiwgIlBvbC1FYXNlIDIzNTAiLCAiUG9vciBtYXRjaDogdGhlIG1hdGVyaWFscyBjYW4gYm9uZCwgZGFtYWdlIHRoZSBtb2xkIG9yIGdpdmUgYSBiYWQgc3VyZmFjZS4gUGljayBhIGRpZmZlcmVudCBjb21iaW5hdGlvbi4iLCAiUmVzaW4gc29ha3MgaW50byB0aGUgZm9hbSBjZWxscyBhbmQgbG9ja3Mgb24uIFNlYWwgdGhlIGZvYW0gdGhvcm91Z2hseSBmaXJzdCwgb3IgbWFrZSBhIHNpbGljb25lIG1vbGQgaW5zdGVhZC4iLCAiU2VhbCB0aGUgbGF5ZXIgbGluZXMgZmlyc3QgKFhUQy0zRCBvciBmaWxsZXIgcHJpbWVyKSBzbyB0aGUgc2lsaWNvbmUgY2FuJ3QgbG9jayBpbnRvIHRoZW0sIHRoZW4gc3ByYXkgMiBsaWdodCBjb2F0cy4iLCAiU2VhbCB0aGUgc3RvbmUgZmlyc3QgKDIgY29hdHMgb2YgY2xlYXIgYWNyeWxpYyBvciBzaGVsbGFjKSwgdGhlbiBzcHJheSAyIGxpZ2h0IGNvYXRzLiIsICJTaWxpY29uZSBzdGlja3MgdG8gc2lsaWNvbmUuIEFwcGx5IDItMyBsaWdodCBjb2F0cyBhbmQgbGV0IGRyeS4gVGhpbm5lZCBwZXRyb2xldW0gamVsbHkgYWxzbyB3b3Jrcy4iLCAiU29sdmVudHMgaW4gY2FwIHBsYXN0aWMgYXR0YWNrIDNELXByaW50ZWQgcGxhc3RpYyIsICJTb2x2ZW50cyBpbiBjYXAgcGxhc3RpYyBjYW4gYXR0YWNrIG1hbnkgcGxhc3RpY3MuIFRlc3QgYSBoaWRkZW4gYXJlYSBmaXJzdCwgdGhlbiBzcHJheSAyIGxpZ2h0IGNvYXRzLiIsICJTcHJheSAyIGxpZ2h0IGNvYXRzIiwgIlNwcmF5IDIgbGlnaHQgY29hdHMgYW5kIGxldCBpdCBmbGFzaCBvZmYgYmVmb3JlIHNwcmF5aW5nIHRoZSBjYXAgcGxhc3RpYy4iLCAiU3RlYXJhdGUiLCAiU3VsZnVyIHdpbGwgcHJldmVudCBwbGF0aW51bSBzaWxpY29uZSBmcm9tIGN1cmluZyIsICJUYWxjIFBvd2RlciIsICJUaW4tY3VyZSBzaWxpY29uZSBjYW4gc3RvcCBwbGF0aW51bSBzaWxpY29uZSBmcm9tIGN1cmluZyIsICJVbmN1cmVkIHByaW50IHJlc2luIHN0b3BzIHBsYXRpbnVtIHNpbGljb25lIGZyb20gY3VyaW5nLiBQb3N0LWN1cmUgdGhlIHByaW50IHVuZGVyIFVWLCBzZWFsIHdpdGggMiBjb2F0cyBvZiBjbGVhciBhY3J5bGljLCBhbmQgdGVzdCBhIHNtYWxsIGFyZWEgZmlyc3QuIiwgIlVuaXZlcnNhbCBNb2xkIFJlbGVhc2UiLCAiVXNlIG9ubHkgZm9vZC1zYWZlIHNpbGljb25lcyIsICJVc2Ugb25seSBza2luLXNhZmUgc2lsaWNvbmVzIChlLmcuIEJvZHkgRG91YmxlKS4gQ29hdCBhbGwgaGFpciB3aXRoIHBldHJvbGV1bSBqZWxseS4iLCAiV2F0ZXIgRGlwIiwgIldheCBTcHJheSIsICJXYXggdGhlIG1vbGQgZmlyc3QgKDMtNSBjb2F0cyBvZiBtb2xkIHJlbGVhc2Ugd2F4LCBidWZmZWQpLCB0aGVuIGFwcGx5IGEgdGhpbiwgZXZlbiBjb2F0IG9mIFBWQS4iXTsKdmFyIFJFTEVBU0U9eyJtb2xkIjp7ImEiOlsiV0VEIENsYXkgKHdhdGVyLWJhc2VkKSIsIlN1bGZ1ciBDbGF5IChvaWwtYmFzZWQpIiwiU3VsZnVyLUZyZWUgQ2xheSAob2lsLWJhc2VkKSIsIldheCIsIlBvbHl1cmV0aGFuZSBGb2FtIiwiUG9seXVyZXRoYW5lIFJlc2luIiwiSGFyZCBQbGFzdGljcyIsIldvb2QiLCJQbGFzdGVyIiwiRkRNIDNEIFByaW50IChQTEEvQUJTKSIsIlJlc2luIDNEIFByaW50IChTTEEvRExQKSIsIk1ldGFsIiwiR2xhc3MiLCJIdW1hbiBCb2R5IiwiVGluIFNpbGljb25lcyIsIlBsYXRpbnVtIFNpbGljb25lcyIsIlBvbHl1cmV0aGFuZSBSdWJiZXIiLCJMYXRleCJdLCJiIjpbIlBsYXN0ZXIvQ29uY3JldGUiLCJBbGdpbmF0ZSIsIkxhdGV4IiwiUG9seXVyZXRoYW5lIFJ1YmJlciIsIlRpbiBTaWxpY29uZSIsIlBsYXRpbnVtIFNpbGljb25lIiwiUG9seXVyZXRoYW5lIFJlc2luIiwiUG9seWVzdGVyIFJlc2luIiwiRXBveHkgUmVzaW4iXSwibSI6W1tbMzgsMzZdLFszOCwzNl0sWzM4LDIwXSxbNTcsMjRdLFsxNywyMV0sWzE3LDIxXSxbNDAsMjNdLFs0MCwyM10sWzQwLDIzXV0sW1szMyw4XSxbNDAsOF0sWzM4LDIwXSxbNTcsMjRdLFszOCwzNl0sWzM3LDUzXSxbNDEsMjRdLFs0MSwyNF0sWzQxLDI0XV0sW1s0MSw3XSxbNDAsOF0sWzM4LDIwXSxbNDAsMjNdLFszOCwzNl0sWzM4LDM0XSxbNDEsN10sWzU3LDUwXSxbNTcsNTBdXSxbWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzU3LDI0XSxbMzgsMzZdLFszOCwzNl0sWzM3LDE5XSxbMzcsMTldLFszNywxOV1dLFtbMzMsOF0sWzM3LDNdLFs2MSw1MF0sWzU3LDI0XSxbMzgsMjBdLFszOCwyMF0sWzM3LDQ0XSxbMzcsNDRdLFszNyw0NF1dLFtbMzMsOF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzU3LDUwXSxbNTcsNTBdXSxbWzMzLDhdLFszOCwzNl0sWzQxLDddLFs1Nyw1MF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzU3LDUwXSxbNTcsNTBdXSxbWzMzLDhdLFszMyw4XSxbMzgsMjBdLFs1NywyNV0sWzE3LDIyXSxbMTcsMjJdLFs0MSwyNF0sWzQxLDI0XSxbNDEsMjRdXSxbWzE2LDBdLFsxNiwwXSxbMzgsMjBdLFs1NywyNV0sWzE3LDIyXSxbMTcsMjJdLFs0MSwyNF0sWzQxLDI0XSxbNTcsMjRdXSxbWzMzLDhdLFszOCwzNl0sWzM4LDIwXSxbNTcsMjVdLFsxNyw0NV0sWzE3LDQ1XSxbNDEsMjRdLFs0MSwyNF0sWzQxLDI0XV0sW1szMyw4XSxbMzgsMzZdLFszOCwzNl0sWzU3LDUwXSxbMzgsMjddLFsxMSw1Nl0sWzU3LDUwXSxbNTcsNTBdLFs1Nyw1MF1dLFtbMzMsOF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzM4LDM2XSxbMzgsMzZdLFsxNyw1MF0sWzE3LDUwXSxbNDEsNTBdXSxbWzMzLDhdLFszOCwzNl0sWzM4LDM2XSxbNTcsNTBdLFszOCwzNl0sWzM4LDM2XSxbNTcsNTBdLFs1Nyw1MF0sWzU3LDUwXV0sW1s0MCw4XSxbNDAsOF0sWzQwLDEyXSxbMzcsMjhdLFszNywyOF0sWzQwLDU5XSxbMzcsMjhdLFszNywyOF0sWzM3LDI4XV0sW1szOCwzNl0sWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzE3LDQ3XSxbMzcsNTVdLFszOCwzNl0sWzM4LDM2XSxbMzgsMzZdXSxbWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzM4LDM2XSxbNDIsNDddLFs0Miw0N10sWzM4LDM2XSxbMzgsMzZdLFszOCwzNl1dLFtbMzgsMzZdLFszOCwzNl0sWzM4LDM2XSxbNTcsNTBdLFs1Nyw1MF0sWzU3LDM1XSxbNTcsNTBdLFs1Nyw1MF0sWzU3LDUwXV0sW1szOCwzNl0sWzM4LDM2XSxbNTQsMzJdLFsxNyw1MF0sWzM4LDM2XSxbMzcsMTNdLFsxNyw1MF0sWzQxLDddLFs0MSw3XV1dfSwiY2FzdCI6eyJhIjpbIlBvbHl1cmV0aGFuZSBSZXNpbiIsIlBvbHllc3RlciBSZXNpbiAvIEZpYmVyZ2xhc3MiLCJFcG94eSBSZXNpbiIsIkhhcmQgUGxhc3RpY3MiLCJXb29kIiwiUGxhc3RlciIsIlN0b25lL0NlbWVudCIsIkZETSAzRCBQcmludCAoUExBL0FCUykiLCJNZXRhbCIsIkdsYXNzIiwiVGluIFNpbGljb25lcyIsIlBsYXRpbnVtIFNpbGljb25lcyIsIlBvbHl1cmV0aGFuZSBSdWJiZXIiLCJMYXRleCIsIkFsZ2luYXRlIl0sImIiOlsiUGxhc3RlciAvIENvbmNyZXRlIiwiQWxnaW5hdGUiLCJMYXRleCIsIlBvbHl1cmV0aGFuZSBSdWJiZXIiLCJUaW4gU2lsaWNvbmUiLCJQbGF0aW51bSBTaWxpY29uZSIsIlBvbHl1cmV0aGFuZSBSZXNpbiIsIlBvbHllc3RlciBSZXNpbiIsIkVwb3h5IFJlc2luIiwiUG9seXVyZXRoYW5lIEZvYW0iLCJXYXgiLCJDYXAgUGxhc3RpYyAoQmFsZGlleikiLCJGb2FtIExhdGV4IiwiSWNlIiwiQ2hvY29sYXRlIiwiU3VsZnVyLUZyZWUgQ2xheSIsIkhvdCBHbHVlIiwiTG93IE1lbHQgTWV0YWwiLCJQVE0gQm9uZG8iXSwibSI6W1tbMzMsOF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzU3LDUwXSxbNTcsNTBdLFszOSw2XSxbMzksNl0sWzE4LDUxXSxbNTIsNl0sWzM4LDM2XSxbMzcsNThdLFszOSw2XSxbNTcsNTBdLFszNywxMF0sWzM3LDMwXV0sW1szMyw4XSxbMzgsMzZdLFszOCwzNl0sWzU3LDUwXSxbMzgsMzZdLFszOCwzNl0sWzU3LDUwXSxbMzksNjJdLFszOSw2Ml0sWzM5LDZdLFszOSw2XSxbMTgsNTFdLFs1Miw2XSxbMzgsMzZdLFszNyw1OF0sWzM5LDZdLFs1Nyw1MF0sWzM3LDEwXSxbMzcsMzBdXSxbWzMzLDhdLFszOCwzNl0sWzM4LDM2XSxbNTcsNTBdLFszOCwzNl0sWzM4LDM2XSxbNTcsNTBdLFszOSw2Ml0sWzM5LDYyXSxbMzksNl0sWzM5LDZdLFsxOCw1MV0sWzUyLDZdLFszOCwzNl0sWzM3LDU4XSxbMzksNl0sWzU3LDUwXSxbMzcsMTBdLFszNywzMF1dLFtbMzMsOF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzU3LDUwXSxbNTcsNTBdLFszMyw4XSxbMzksNl0sWzE4LDQ5XSxbNTIsNl0sWzM4LDM2XSxbMzcsNThdLFszOSw2XSxbMzgsMzZdLFszNywxMF0sWzM3LDMwXV0sW1szMyw4XSxbMzMsOF0sWzM4LDIwXSxbNTcsMjVdLFsxNywyMl0sWzE3LDIyXSxbNDEsMjRdLFs0MSwyNF0sWzU3LDI0XSxbMzksNl0sWzM3LDQzXSxbMzcsNDNdLFszNyw0M10sWzM3LDMwXSxbMzcsNThdLFszNywzMF0sWzM4LDM2XSxbMzcsMTBdLFszNywzMF1dLFtbMTYsMF0sWzE2LDBdLFszOCwyMF0sWzU3LDI1XSxbMTcsMjJdLFsxNywyMl0sWzU3LDI0XSxbNDEsMjRdLFs0MSwyNF0sWzMzLDhdLFszOSw2XSxbMTgsNDZdLFs2MSw1MF0sWzM3LDMwXSxbMzcsNThdLFszNywzMF0sWzYwLDE1XSxbMzcsMTBdLFszNywzMF1dLFtbMzMsOF0sWzE2LDBdLFszOCwyMF0sWzU3LDI1XSxbMTcsMjJdLFsxNywyMl0sWzQxLDI0XSxbNDEsMjRdLFs1NywyNF0sWzMzLDhdLFszOSw2XSxbMTgsNDZdLFs2MSw1MF0sWzM3LDMwXSxbMzcsNThdLFszNywzMF0sWzYwLDZdLFszOCwzNl0sWzM3LDMwXV0sW1szMyw4XSxbMzgsMzZdLFszOCwyMF0sWzM4LDIwXSxbNDEsMjZdLFsxNywyNl0sWzU3LDI2XSxbNTcsMjZdLFs1NywyNl0sWzMzLDhdLFs0MCw4XSxbMzcsNDhdLFs1Miw2XSxbMzgsMzZdLFszNyw1OF0sWzM3LDMwXSxbMzcsMTBdLFszNywxMF0sWzM3LDMwXV0sW1szMyw4XSxbMzgsMzZdLFszOCwzNl0sWzU3LDUwXSxbMzgsMzZdLFszOCwzNl0sWzQxLDddLFs0MSw3XSxbNDEsN10sWzMzLDhdLFszOSw2XSxbMTgsNTFdLFs1Miw2XSxbMzgsMzZdLFs5LDVdLFszNywzMF0sWzM4LDM2XSxbMzcsMTBdLFszNywzMF1dLFtbMzcsMjldLFs0MCw4XSxbMzgsMzZdLFs1Nyw1MF0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzU3LDUwXSxbNTcsNTBdLFszMyw4XSxbMzksN10sWzE4LDUxXSxbMzcsNDNdLFszNywzMF0sWzM3LDU4XSxbMzcsMzBdLFszOCwzNl0sWzM3LDEwXSxbMzcsMzBdXSxbWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzM4LDM2XSxbNDIsNDddLFszNywxM10sWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzM4LDM2XSxbMzgsMzZdLFsxOCw1MV0sWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzM4LDM2XSxbMzgsMzZdLFs1NCwzMl0sWzE0LDRdXSxbWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzM4LDM2XSxbNDIsNDddLFs0Miw0N10sWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzM4LDM2XSxbMzgsMzZdLFsxOCw1MV0sWzM4LDM2XSxbMzgsMzZdLFszOCw1OF0sWzM4LDM2XSxbMzgsMzZdLFs1NCwzMl0sWzE0LDRdXSxbWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzE3LDUwXSxbMzgsMzZdLFszNywxM10sWzE3LDUwXSxbMTcsNTBdLFsxNyw1MF0sWzMzLDhdLFszOCwzNl0sWzM3LDQzXSxbMzcsNDNdLFszOCwzNl0sWzM4LDM2XSxbMzgsMzZdLFs1Nyw1MF0sWzM3LDEwXSxbMzcsMzBdXSxbWzM4LDM2XSxbMzgsMzZdLFs1NCwzMl0sWzE3LDUwXSxbMzgsMzZdLFszNywxM10sWzE3LDUwXSxbMzksNl0sWzE3LDUwXSxbMzksNl0sWzM4LDM2XSxbMzcsNDNdLFszNyw0M10sWzM4LDM2XSxbMzgsMzZdLFszOCwzNl0sWzM3LDQzXSxbMzcsMTBdLFszNywzMF1dLFtbMzgsMzZdLFszNywyXSxbMzgsMzZdLFszNywxXSxbMzgsMzZdLFszOCwzNl0sWzM3LDFdLFszNywxXSxbMzcsMV0sWzM3LDFdLFszOCwzMV0sWzM3LDJdLFszNywyXSxbMzcsMl0sWzM3LDJdLFszNywyXSxbMzcsMl0sWzM4LDM2XSxbMzcsMzBdXV19fTsKCiAgdmFyICQgPSBmdW5jdGlvbiAoaWQpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsgfTsKICB2YXIgbnVtID0gZnVuY3Rpb24gKGlkKSB7IHZhciB2ID0gcGFyc2VGbG9hdCgkKGlkKS52YWx1ZSk7IHJldHVybiBpc0Zpbml0ZSh2KSA\/IHYgOiBOYU47IH07CiAgZnVuY3Rpb24gZm10KG4sIG1heCkgewogICAgaWYgKCFpc0Zpbml0ZShuKSkgcmV0dXJuICLigJMiOwogICAgcmV0dXJuIG4udG9Mb2NhbGVTdHJpbmcoImVuLVVTIiwgeyBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IG1heCA9PSBudWxsID8gMiA6IG1heCwgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwIH0pOwogIH0KICBmdW5jdGlvbiB1bml0KG4sIHUsIG1heCkgeyByZXR1cm4gaXNGaW5pdGUobikgPyBmbXQobiwgbWF4KSArICI8c21hbGw+IiArIHUgKyAiPC9zbWFsbD4iIDogIuKAkyI7IH0KICBmdW5jdGlvbiBzdG9yZShrLCB2KSB7IHRyeSB7IGlmICh2ID09PSB1bmRlZmluZWQpIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgibW9sZHIuIiArIGspOyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgibW9sZHIuIiArIGssIHYpOyB9IGNhdGNoIChlKSB7IHJldHVybiBudWxsOyB9IH0KCiAgLyogLS0tLS0tLS0tLSBUYWJzIC0tLS0tLS0tLS0gKi8KICB2YXIgdGFicyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50YWIiKSk7CiAgZnVuY3Rpb24gc2VsZWN0VGFiKHRhYiwgZm9jdXMpIHsKICAgIHRhYnMuZm9yRWFjaChmdW5jdGlvbiAodCkgewogICAgICB2YXIgb24gPSB0ID09PSB0YWI7CiAgICAgIHQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwgb24gPyAidHJ1ZSIgOiAiZmFsc2UiKTsKICAgICAgdC50YWJJbmRleCA9IG9uID8gMCA6IC0xOwogICAgICAkKHQuZ2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIikpLmhpZGRlbiA9ICFvbjsKICAgIH0pOwogICAgaWYgKGZvY3VzKSB0YWIuZm9jdXMoKTsKICAgIC8vIFNjcm9sbCBvbmx5IHRoZSB0YWIgYmFyIChzY3JvbGxJbnRvVmlldyB3b3VsZCBhbHNvIHNjcm9sbCB0aGUgaG9zdCBwYWdlIHdoZW4gTW9sZHIgaXMgZW1iZWRkZWQpLgogICAgdmFyIGJhciA9IHRhYi5wYXJlbnROb2RlLCBsZWZ0ID0gdGFiLm9mZnNldExlZnQgLSBiYXIub2Zmc2V0TGVmdDsKICAgIGlmIChsZWZ0IDwgYmFyLnNjcm9sbExlZnQpIGJhci5zY3JvbGxMZWZ0ID0gbGVmdCAtIDg7CiAgICBlbHNlIGlmIChsZWZ0ICsgdGFiLm9mZnNldFdpZHRoID4gYmFyLnNjcm9sbExlZnQgKyBiYXIuY2xpZW50V2lkdGgpIGJhci5zY3JvbGxMZWZ0ID0gbGVmdCArIHRhYi5vZmZzZXRXaWR0aCAtIGJhci5jbGllbnRXaWR0aCArIDg7CiAgICBzdG9yZSgidGFiIiwgdGFiLmlkKTsKICB9CiAgdGFicy5mb3JFYWNoKGZ1bmN0aW9uICh0LCBpKSB7CiAgICB0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBzZWxlY3RUYWIodCk7IH0pOwogICAgdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgZnVuY3Rpb24gKGUpIHsKICAgICAgdmFyIGQgPSBlLmtleSA9PT0gIkFycm93UmlnaHQiID8gMSA6IGUua2V5ID09PSAiQXJyb3dMZWZ0IiA\/IC0xIDogMDsKICAgICAgaWYgKGQpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBzZWxlY3RUYWIodGFic1soaSArIGQgKyB0YWJzLmxlbmd0aCkgJSB0YWJzLmxlbmd0aF0sIHRydWUpOyB9CiAgICB9KTsKICB9KTsKICAvLyBBIGxpbmsgbGlrZSBtb2xkci5odG1sI3QtcGlnIG9wZW5zIHN0cmFpZ2h0IG9uIHRoYXQgdGFiOyBvdGhlcndpc2UgcmVvcGVuIHRoZSBsYXN0LXVzZWQgdGFiLgogIHZhciBzdGFydFRhYiA9ICQobG9jYXRpb24uaGFzaC5zbGljZSgxKSkgfHwgJChzdG9yZSgidGFiIikpOwogIHNlbGVjdFRhYihzdGFydFRhYiAmJiBzdGFydFRhYi5jbGFzc0xpc3QuY29udGFpbnMoInRhYiIpID8gc3RhcnRUYWIgOiB0YWJzWzBdKTsKCiAgZnVuY3Rpb24gZmlsbChzZWwsIGxpc3QpIHsKICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAobGFiZWwsIGkpIHsKICAgICAgdmFyIG8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKICAgICAgby52YWx1ZSA9IGk7IG8udGV4dENvbnRlbnQgPSBsYWJlbDsKICAgICAgc2VsLmFwcGVuZENoaWxkKG8pOwogICAgfSk7CiAgfQoKICAvKiAtLS0tLS0tLS0tIE1vbGQgJiBDYXN0IChyZWxlYXNlIGFnZW50IGxvb2t1cCkgLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIHJlbGVhc2VUb29sKGtleSkgewogICAgdmFyIGQgPSBSRUxFQVNFW2tleV0sIGEgPSAkKGtleSArICItYSIpLCBiID0gJChrZXkgKyAiLWIiKSwgb3V0ID0gJChrZXkgKyAiLW91dCIpLCBzaG93biA9IGZhbHNlOwogICAgZmlsbChhLCBkLmEpOyBmaWxsKGIsIGQuYik7CiAgICBmdW5jdGlvbiBydW4oKSB7CiAgICAgIHNob3duID0gdHJ1ZTsKICAgICAgdmFyIGNlbGwgPSBkLm1bYS52YWx1ZV0gJiYgZC5tW2EudmFsdWVdW2IudmFsdWVdOwogICAgICB2YXIgcmVzID0gY2VsbCA\/IFNUUltjZWxsWzBdXSA6ICJOL0EiLCB0aXAgPSBjZWxsID8gU1RSW2NlbGxbMV1dIDogIiI7CiAgICAgIHZhciBjbHMgPSAicmVzdWx0IiwgaGVhZGxpbmUgPSByZXM7CiAgICAgIGlmIChyZXMgPT09ICJOb3RoaW5nIikgeyBjbHMgKz0gIiBpcy1vayI7IGhlYWRsaW5lID0gIk5vIHJlbGVhc2UgYWdlbnQgbmVlZGVkIjsgfQogICAgICBlbHNlIGlmIChyZXMgPT09ICJOb3QgcmVjb21tZW5kZWQiKSB7IGNscyArPSAiIGlzLWJhZCI7IGhlYWRsaW5lID0gIk5vdCByZWNvbW1lbmRlZCI7IH0KICAgICAgaWYgKHRpcCA9PT0gIk5vIHJlbGVhc2UgYWdlbnQgaXMgbmVlZGVkIikgdGlwID0gIiI7CiAgICAgIG91dC5jbGFzc05hbWUgPSBjbHM7CiAgICAgIG91dC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iZXllYnJvdyI+UmVsZWFzZSBhZ2VudDwvZGl2PjxkaXYgY2xhc3M9ImJpZyI+PC9kaXY+JyArCiAgICAgICAgKHRpcCA\/ICc8ZGl2IGNsYXNzPSJ0aXAiPjxiPicgKyAoY2xzLmluZGV4T2YoImlzLWJhZCIpID4gLTEgPyAiV2h5IiA6IHJlcyA9PT0gIk5vdGhpbmciID8gIlRpcCIgOiAiSG93IHRvIGFwcGx5IikgKyAnPC9iPjxzcGFuPjwvc3Bhbj48L2Rpdj4nIDogIiIpOwogICAgICBvdXQucXVlcnlTZWxlY3RvcigiLmJpZyIpLnRleHRDb250ZW50ID0gaGVhZGxpbmU7CiAgICAgIGlmICh0aXApIG91dC5xdWVyeVNlbGVjdG9yKCIudGlwIHNwYW4iKS50ZXh0Q29udGVudCA9IHRpcDsKICAgIH0KICAgICQoa2V5ICsgIi1nbyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgcnVuKTsKICAgIFthLCBiXS5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7IHMuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgZnVuY3Rpb24gKCkgeyBpZiAoc2hvd24pIHJ1bigpOyB9KTsgfSk7CiAgfQogIHJlbGVhc2VUb29sKCJtb2xkIik7CiAgcmVsZWFzZVRvb2woImNhc3QiKTsKCiAgLyogLS0tLS0tLS0tLSBMaWZlY2FzdCAtLS0tLS0tLS0tICovCiAgLy8gW3NpbGljb25lIGtnLCBzaWxpY29uZSBsYnMsIDQiIHJvbGxzLCA4IiByb2xsc10KICB2YXIgTElGRSA9IFsKICAgIFsiRmFjZSIsIDAuNTcsIDEuMjUsIDIsIDBdLAogICAgWyJGYWNlICYgRnJvbnQgTmVjayIsIDAuNywgMS41LCAzLCAwXSwKICAgIFsiRnJvbnQgSGFsZiBIZWFkICh3aXRoIGVhcnMpIiwgMC45LCAyLCA0LCAwXSwKICAgIFsiRnVsbCBIZWFkIHdpdGggTmVjayIsIDEuOCwgNCwgOCwgMF0sCiAgICBbIlVwcGVyIFRvcnNvIEZyb250IiwgMS4zNSwgMywgMCwgM10sCiAgICBbIkZyb250IFRvcnNvIiwgMi4yNSwgNSwgMCwgNV0sCiAgICBbIkZ1bGwgVG9yc28gKEZyb250ICYgQmFjaykiLCA2LjM1LCAxNCwgMCwgMTRdLAogICAgWyJGdWxsIFRvcnNvIHdpdGggSGVhZCIsIDguMTUsIDE4LCAwLCAxNl0sCiAgICBbIkZ1bGwgVG9yc28gd2l0aCBVcHBlciBUaGlnaHMiLCA0LjEsIDksIDAsIDZdLAogICAgWyJPbmUgSGFuZCIsIDAuNDUsIDEsIDIsIDBdLAogICAgWyJPbmUgQXJtIiwgMS4zNiwgMywgOCwgMF0sCiAgICBbIk9uZSBGb290IiwgMC45LCAyLCAzLCAwXSwKICAgIFsiT25lIExvd2VyIExlZyIsIDEuOCwgNCwgOCwgMF0sCiAgICBbIk9uZSBGdWxsIExlZyIsIDMuMTgsIDcsIDgsIDBdLAogICAgWyJGdWxsIEJvZHkiLCAxNi4zMywgMzYsIDE2LCAyNF0KICBdOwogIGZpbGwoJCgibGlmZS1wYXJ0IiksIExJRkUubWFwKGZ1bmN0aW9uIChyKSB7IHJldHVybiByWzBdOyB9KSk7CiAgZnVuY3Rpb24gbGlmZSgpIHsKICAgIHZhciByID0gTElGRVskKCJsaWZlLXBhcnQiKS52YWx1ZV0sIHEgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKG51bSgibGlmZS1xdHkiKSkgfHwgMSk7CiAgICAkKCJsaWZlLWtnIikuaW5uZXJIVE1MID0gdW5pdChyWzFdICogcSwgImtnIik7CiAgICAkKCJsaWZlLWxiIikuaW5uZXJIVE1MID0gdW5pdChyWzJdICogcSwgImxiIik7CiAgICAkKCJsaWZlLWI0IikuaW5uZXJIVE1MID0gclszXSA\/IGZtdChyWzNdICogcSkgOiAi4oCTIjsKICAgICQoImxpZmUtYjgiKS5pbm5lckhUTUwgPSByWzRdID8gZm10KHJbNF0gKiBxKSA6ICLigJMiOwogICAgJCgibGlmZS1iNC1ib3giKS5jbGFzc05hbWUgPSAic3RhdCIgKyAoclszXSA\/ICIiIDogIiBkaW0iKTsKICAgICQoImxpZmUtYjgtYm94IikuY2xhc3NOYW1lID0gInN0YXQiICsgKHJbNF0gPyAiIiA6ICIgZGltIik7CiAgfQogICQoImxpZmUtcGFydCIpLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGxpZmUpOwogICQoImxpZmUtcXR5IikuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBsaWZlKTsKICBsaWZlKCk7CgogIC8qIC0tLS0tLS0tLS0gU2hhcmVkIG1hdGVyaWFsIGRlbnNpdGllcyAoZy9tbCkgLS0tLS0tLS0tLSAqLwogIHZhciBNQVRTID0gWwogICAgWyJMb3cgRGVuc2l0eSBTaWxpY29uZSIsIDAuNzZdLAogICAgWyJIaWdoIERlbnNpdHkgU2lsaWNvbmUiLCAxLjA3XSwKICAgIFsiV2F0ZXIiLCAxLjBdLAogICAgWyJDdXN0b20iLCBudWxsXQogIF07CiAgZnVuY3Rpb24gZGVuc2l0eVBpY2tlcihzZWxJZCwgaW5JZCwgb25DaGFuZ2UsIHN0YXJ0SWR4KSB7CiAgICB2YXIgc2VsID0gJChzZWxJZCksIGlucCA9ICQoaW5JZCk7CiAgICBmaWxsKHNlbCwgTUFUUy5tYXAoZnVuY3Rpb24gKG0pIHsgcmV0dXJuIG1bMF0gKyAobVsxXSA\/ICIgKCIgKyBtWzFdICsgIikiIDogIiIpOyB9KSk7CiAgICBzZWwudmFsdWUgPSBzdGFydElkeDsgaW5wLnZhbHVlID0gTUFUU1tzdGFydElkeF1bMV07CiAgICBzZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgZnVuY3Rpb24gKCkgewogICAgICB2YXIgbSA9IE1BVFNbc2VsLnZhbHVlXTsKICAgICAgaWYgKG1bMV0gIT0gbnVsbCkgaW5wLnZhbHVlID0gbVsxXTsgZWxzZSBpbnAuZm9jdXMoKTsKICAgICAgb25DaGFuZ2UoKTsKICAgIH0pOwogICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgZnVuY3Rpb24gKCkgewogICAgICB2YXIgdiA9IHBhcnNlRmxvYXQoaW5wLnZhbHVlKSwgaGl0ID0gTUFUUy5maW5kSW5kZXgoZnVuY3Rpb24gKG0pIHsgcmV0dXJuIG1bMV0gPT09IHY7IH0pOwogICAgICBzZWwudmFsdWUgPSBoaXQgPiAtMSA\/IGhpdCA6IE1BVFMubGVuZ3RoIC0gMTsKICAgICAgb25DaGFuZ2UoKTsKICAgIH0pOwogIH0KCiAgLyogLS0tLS0tLS0tLSBWb2x1bWUgLS0tLS0tLS0tLSAqLwogIHZhciBzaGFwZSA9ICJib3giOwogIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3ZvbC1zaGFwZSBidXR0b24iKSwgZnVuY3Rpb24gKGJ0bikgewogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgewogICAgICBzaGFwZSA9IGJ0bi5nZXRBdHRyaWJ1dGUoImRhdGEtc2hhcGUiKTsKICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdm9sLXNoYXBlIGJ1dHRvbiIpLCBmdW5jdGlvbiAoYikgeyBiLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwgYiA9PT0gYnRuID8gInRydWUiIDogImZhbHNlIik7IH0pOwogICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zaGFwZS1maWVsZHMiKSwgZnVuY3Rpb24gKGYpIHsKICAgICAgICBmLmhpZGRlbiA9IGYuZ2V0QXR0cmlidXRlKCJkYXRhLWZvciIpLnNwbGl0KCIgIikuaW5kZXhPZihzaGFwZSkgPT09IC0xOwogICAgICB9KTsKICAgICAgdm9sKCk7CiAgICB9KTsKICB9KTsKICBmdW5jdGlvbiB2b2woKSB7CiAgICB2YXIgayA9IHBhcnNlRmxvYXQoJCgidm9sLXVuaXQiKS52YWx1ZSksIG1sID0gTmFOOyAvLyBrID0gY20gcGVyIHVuaXQsIHNvIGNtwrMgPSBtbAogICAgdmFyIEwgPSBudW0oInZvbC1sIikgKiBrLCBXID0gbnVtKCJ2b2wtdyIpICogaywgSCA9IG51bSgidm9sLWgiKSAqIGssIEQgPSBudW0oInZvbC1kIikgKiBrOwogICAgaWYgKHNoYXBlID09PSAiYm94IikgbWwgPSBMICogVyAqIEg7CiAgICBlbHNlIGlmIChzaGFwZSA9PT0gImN5bCIpIG1sID0gTWF0aC5QSSAqIE1hdGgucG93KEQgLyAyLCAyKSAqIEg7CiAgICBlbHNlIG1sID0gKDQgLyAzKSAqIE1hdGguUEkgKiBNYXRoLnBvdyhEIC8gMiwgMyk7CiAgICB2YXIgb2sgPSBpc0Zpbml0ZShtbCkgJiYgbWwgPj0gMDsKICAgICQoInZvbC1tbCIpLmlubmVySFRNTCA9IG9rID8gdW5pdChtbCwgIm1sIiwgbWwgPCAxMCA\/IDIgOiAwKSA6ICLigJMiOwogICAgJCgidm9sLWwtb3V0IikuaW5uZXJIVE1MID0gb2sgPyB1bml0KG1sIC8gMTAwMCwgIkwiLCAzKSA6ICLigJMiOwogICAgJCgidm9sLWluMyIpLmlubmVySFRNTCA9IG9rID8gdW5pdChtbCAvIDE2LjM4NzA2NCwgImluwrMiLCAxKSA6ICLigJMiOwogICAgJCgidm9sLWZsb3oiKS5pbm5lckhUTUwgPSBvayA\/IHVuaXQobWwgLyAyOS41NzM1LCAiZmwgb3oiLCAxKSA6ICLigJMiOwogICAgdmFyIGcgPSBvayA\/IG1sICogbnVtKCJ2b2wtc2ciKSA6IE5hTjsKICAgICQoInZvbC1nIikuaW5uZXJIVE1MID0gdW5pdChnLCAiZyIsIGcgPCAxMCA\/IDIgOiAwKTsKICAgICQoInZvbC1rZyIpLmlubmVySFRNTCA9IHVuaXQoZyAvIDEwMDAsICJrZyIsIDMpOwogICAgJCgidm9sLWxiIikuaW5uZXJIVE1MID0gdW5pdChnIC8gNDUzLjU5MjM3LCAibGIiLCAyKTsKICB9CiAgWyJ2b2wtdW5pdCIsICJ2b2wtbCIsICJ2b2wtdyIsICJ2b2wtaCIsICJ2b2wtZCJdLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7ICQoaWQpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0Iiwgdm9sKTsgfSk7CiAgZGVuc2l0eVBpY2tlcigidm9sLW1hdCIsICJ2b2wtc2ciLCB2b2wsIDEpOwogIHZvbCgpOwoKICAvKiAtLS0tLS0tLS0tIERlbnNpdHkgLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIGRlbnMoKSB7CiAgICB2YXIgc2cgPSBudW0oImRlbnMtc2ciKSwgdiA9IG51bSgiZGVucy12YWwiKSwgdSA9ICQoImRlbnMtdW5pdCIpLnZhbHVlOwogICAgdmFyIGcgPSB1ID09PSAiZyIgPyB2IDogdiAqIHNnLCBtbCA9IHUgPT09ICJtbCIgPyB2IDogdiAvIHNnOwogICAgJCgiZGVucy1nIikuaW5uZXJIVE1MID0gdW5pdChnLCAiZyIpOwogICAgJCgiZGVucy1tbCIpLmlubmVySFRNTCA9IHVuaXQobWwsICJtbCIpOwogICAgJCgiZGVucy1nLWJveCIpLmNsYXNzTmFtZSA9ICJzdGF0IiArICh1ID09PSAibWwiID8gIiBobCIgOiAiIik7CiAgICAkKCJkZW5zLW1sLWJveCIpLmNsYXNzTmFtZSA9ICJzdGF0IiArICh1ID09PSAiZyIgPyAiIGhsIiA6ICIiKTsKICB9CiAgWyJkZW5zLXZhbCIsICJkZW5zLXVuaXQiXS5mb3JFYWNoKGZ1bmN0aW9uIChpZCkgeyAkKGlkKS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIGRlbnMpOyB9KTsKICBkZW5zaXR5UGlja2VyKCJkZW5zLW1hdCIsICJkZW5zLXNnIiwgZGVucywgMCk7CiAgZGVucygpOwoKICAvKiAtLS0tLS0tLS0tIENoaXBzIGhlbHBlciAtLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gY2hpcHMoYm94SWQsIGlucHV0SWQsIHZhbHVlcywgc3VmZml4LCBvbkNoYW5nZSkgewogICAgdmFsdWVzLmZvckVhY2goZnVuY3Rpb24gKHYpIHsKICAgICAgdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKICAgICAgYy50eXBlID0gImJ1dHRvbiI7IGMuY2xhc3NOYW1lID0gImNoaXAiOyBjLnRleHRDb250ZW50ID0gdiArIHN1ZmZpeDsKICAgICAgYy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgJChpbnB1dElkKS52YWx1ZSA9IHY7IG9uQ2hhbmdlKCk7IH0pOwogICAgICAkKGJveElkKS5hcHBlbmRDaGlsZChjKTsKICAgIH0pOwogIH0KCiAgLyogLS0tLS0tLS0tLSBEZWFkZW5lciAtLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gZGVhZCgpIHsKICAgIHZhciB3ID0gbnVtKCJkZWFkLXciKSwgcCA9IG51bSgiZGVhZC1wIikgfHwgMDsKICAgIHZhciBhID0gdyAvICgyICogKDEwMCArIHApIC8gMTAwKSwgZCA9IDIgKiBhICogKHAgLyAxMDApOwogICAgJCgiZGVhZC1hIikuaW5uZXJIVE1MID0gdW5pdChhLCAiZyIpOwogICAgJCgiZGVhZC1iIikuaW5uZXJIVE1MID0gdW5pdChhLCAiZyIpOwogICAgJCgiZGVhZC1kIikuaW5uZXJIVE1MID0gdW5pdChkLCAiZyIpOwogIH0KICBbImRlYWQtdyIsICJkZWFkLXAiXS5mb3JFYWNoKGZ1bmN0aW9uIChpZCkgeyAkKGlkKS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIGRlYWQpOyB9KTsKICBjaGlwcygiZGVhZC1jaGlwcyIsICJkZWFkLXAiLCBbNTAsIDEwMCwgMTI1LCAxNTAsIDIwMCwgMjUwXSwgIiUiLCBkZWFkKTsKICBkZWFkKCk7CgogIC8qIC0tLS0tLS0tLS0gTWl4IHJhdGlvIC0tLS0tLS0tLS0gKi8KICB2YXIgbWl4QnkgPSAiZyIsIG1peE1vZGUgPSAidG90YWwiOwogIGZ1bmN0aW9uIHNlZyhncm91cElkLCBvblBpY2spIHsKICAgIHZhciBidG5zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiIyIgKyBncm91cElkICsgIiBidXR0b24iKTsKICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYnRucywgZnVuY3Rpb24gKGJ0bikgewogICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChidG5zLCBmdW5jdGlvbiAoYikgeyBiLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwgYiA9PT0gYnRuID8gInRydWUiIDogImZhbHNlIik7IH0pOwogICAgICAgIG9uUGljayhidG4uZ2V0QXR0cmlidXRlKCJkYXRhLXYiKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIG1peENhbGMoKSB7CiAgICB2YXIgcmEgPSBudW0oIm1peC1hIiksIHJiID0gbnVtKCJtaXgtYiIpLCBhbXQgPSBudW0oIm1peC1hbXQiKSwgdSA9IG1peEJ5OwogICAgdmFyIGEgPSBOYU4sIGIgPSBOYU47CiAgICBpZiAocmEgPiAwICYmIHJiID49IDApIHsKICAgICAgaWYgKG1peE1vZGUgPT09ICJ0b3RhbCIpIHsgYSA9IGFtdCAqIHJhIC8gKHJhICsgcmIpOyBiID0gYW10ICogcmIgLyAocmEgKyByYik7IH0KICAgICAgZWxzZSBpZiAobWl4TW9kZSA9PT0gImEiKSB7IGEgPSBhbXQ7IGIgPSBhbXQgKiByYiAvIHJhOyB9CiAgICAgIGVsc2UgaWYgKHJiID4gMCkgeyBiID0gYW10OyBhID0gYW10ICogcmEgLyByYjsgfQogICAgfQogICAgJCgibWl4LWFtdC1sYWJlbCIpLnRleHRDb250ZW50ID0gKG1peE1vZGUgPT09ICJ0b3RhbCIgPyAiVG90YWwgYmF0Y2giIDogbWl4TW9kZSA9PT0gImEiID8gIlBhcnQgQSBJIGhhdmUiIDogIlBhcnQgQiBJIGhhdmUiKSArICIgKCIgKyB1ICsgIikiOwogICAgJCgibWl4LWEtb3V0IikuaW5uZXJIVE1MID0gdW5pdChhLCB1KTsKICAgICQoIm1peC1iLW91dCIpLmlubmVySFRNTCA9IHVuaXQoYiwgdSk7CiAgICAkKCJtaXgtdC1vdXQiKS5pbm5lckhUTUwgPSB1bml0KGEgKyBiLCB1KTsKICAgICQoIm1peC1hLWJveCIpLmNsYXNzTmFtZSA9ICJzdGF0IiArIChtaXhNb2RlID09PSAiYSIgPyAiIiA6ICIgaGwiKTsKICAgICQoIm1peC1iLWJveCIpLmNsYXNzTmFtZSA9ICJzdGF0IiArIChtaXhNb2RlID09PSAiYiIgPyAiIiA6ICIgaGwiKTsKICAgICQoIm1peC10LWJveCIpLmNsYXNzTmFtZSA9ICJzdGF0IiArIChtaXhNb2RlID09PSAidG90YWwiID8gIiIgOiAiIGhsIik7CiAgICAkKCJtaXgtbm90ZSIpLnRleHRDb250ZW50ID0gcmEgPiAwICYmIHJiID49IDAKICAgICAgPyAiUGFydCBCIGlzICIgKyBmbXQocmIgLyByYSAqIDEwMCwgMSkgKyAiJSBvZiBQYXJ0IEEuIE9ubHkgdXNlIHRoZSByYXRpbyB0eXBlICh3ZWlnaHQgb3Igdm9sdW1lKSB5b3VyIHByb2R1Y3QncyBkYXRhIHNoZWV0IGdpdmVzLiIKICAgICAgOiAiRW50ZXIgYSByYXRpbyBmb3IgUGFydCBBIGFuZCBQYXJ0IEIuIjsKICB9CiAgc2VnKCJtaXgtYnkiLCBmdW5jdGlvbiAodikgeyBtaXhCeSA9IHY7IG1peENhbGMoKTsgfSk7CiAgc2VnKCJtaXgtbW9kZSIsIGZ1bmN0aW9uICh2KSB7IG1peE1vZGUgPSB2OyBtaXhDYWxjKCk7ICQoIm1peC1hbXQiKS5mb2N1cygpOyB9KTsKICBbIm1peC1hIiwgIm1peC1iIiwgIm1peC1hbXQiXS5mb3JFYWNoKGZ1bmN0aW9uIChpZCkgeyAkKGlkKS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIG1peENhbGMpOyB9KTsKICBbWzEsIDFdLCBbMiwgMV0sIFs0LCAxXSwgWzEwLCAxXSwgWzEwMCwgM10sIFsxMDAsIDVdLCBbMTAwLCAxMF1dLmZvckVhY2goZnVuY3Rpb24gKHIpIHsKICAgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CiAgICBjLnR5cGUgPSAiYnV0dG9uIjsgYy5jbGFzc05hbWUgPSAiY2hpcCI7IGMudGV4dENvbnRlbnQgPSByWzBdICsgIjoiICsgclsxXTsKICAgIGMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7ICQoIm1peC1hIikudmFsdWUgPSByWzBdOyAkKCJtaXgtYiIpLnZhbHVlID0gclsxXTsgbWl4Q2FsYygpOyB9KTsKICAgICQoIm1peC1jaGlwcyIpLmFwcGVuZENoaWxkKGMpOwogIH0pOwogIG1peENhbGMoKTsKCiAgLyogLS0tLS0tLS0tLSBQb3QgbGlmZSAmIGRlbW9sZCB0aW1lciAtLS0tLS0tLS0tICovCiAgdmFyIHRtID0geyBydW5uaW5nOiBmYWxzZSwgc3RhcnRlZEF0OiAwLCBiZWZvcmU6IDAsIGZpcmVkOiB7fSB9LCB0bVRpY2sgPSBudWxsLCBhdWRpbyA9IG51bGw7CiAgZnVuY3Rpb24gdG1FbGFwc2VkKCkgeyByZXR1cm4gdG0uYmVmb3JlICsgKHRtLnJ1bm5pbmcgPyBEYXRlLm5vdygpIC0gdG0uc3RhcnRlZEF0IDogMCk7IH0KICBmdW5jdGlvbiB0bUR1cigpIHsKICAgIHJldHVybiB7IHBvdDogTWF0aC5tYXgoMCwgbnVtKCJ0bS1wb3QiKSB8fCAwKSAqIDYwMDAwLCBkbTogTWF0aC5tYXgoMCwgbnVtKCJ0bS1kbSIpIHx8IDApICogcGFyc2VGbG9hdCgkKCJ0bS1kbS11bml0IikudmFsdWUpICogNjAwMDAgfTsKICB9CiAgZnVuY3Rpb24gY2xvY2sobXMpIHsKICAgIHZhciBzID0gTWF0aC5tYXgoMCwgTWF0aC5jZWlsKG1zIC8gMTAwMCkpLCBoID0gTWF0aC5mbG9vcihzIC8gMzYwMCksIG0gPSBNYXRoLmZsb29yKHMgJSAzNjAwIC8gNjApLCBzZWMgPSBzICUgNjA7CiAgICB2YXIgdHdvID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuIChuIDwgMTAgPyAiMCIgOiAiIikgKyBuOyB9OwogICAgcmV0dXJuIGggPyBoICsgIjoiICsgdHdvKG0pICsgIjoiICsgdHdvKHNlYykgOiB0d28obSkgKyAiOiIgKyB0d28oc2VjKTsKICB9CiAgZnVuY3Rpb24gYXQobXNGcm9tTm93KSB7CiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSArIG1zRnJvbU5vdykudG9Mb2NhbGVUaW1lU3RyaW5nKFtdLCB7IGhvdXI6ICJudW1lcmljIiwgbWludXRlOiAiMi1kaWdpdCIgfSk7CiAgfQogIGZ1bmN0aW9uIGJlZXAodGltZXMpIHsKICAgIGlmICghJCgidG0tc291bmQiKS5jaGVja2VkKSByZXR1cm47CiAgICB0cnkgewogICAgICBhdWRpbyA9IGF1ZGlvIHx8IG5ldyAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSgpOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWVzOyBpKyspIHsKICAgICAgICB2YXIgbyA9IGF1ZGlvLmNyZWF0ZU9zY2lsbGF0b3IoKSwgZyA9IGF1ZGlvLmNyZWF0ZUdhaW4oKSwgdDAgPSBhdWRpby5jdXJyZW50VGltZSArIGkgKiAwLjM1OwogICAgICAgIG8udHlwZSA9ICJzcXVhcmUiOyBvLmZyZXF1ZW5jeS52YWx1ZSA9IDg4MDsKICAgICAgICBnLmdhaW4uc2V0VmFsdWVBdFRpbWUoMC4wMDAxLCB0MCk7IGcuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMjUsIHQwICsgMC4wMik7IGcuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSwgdDAgKyAwLjI1KTsKICAgICAgICBvLmNvbm5lY3QoZyk7IGcuY29ubmVjdChhdWRpby5kZXN0aW5hdGlvbik7IG8uc3RhcnQodDApOyBvLnN0b3AodDAgKyAwLjMpOwogICAgICB9CiAgICB9IGNhdGNoIChlKSB7fQogIH0KICBmdW5jdGlvbiBhbGVydE9uY2Uoa2V5LCB0aW1lcywgY2FyZCkgewogICAgaWYgKHRtLmZpcmVkW2tleV0pIHJldHVybjsKICAgIHRtLmZpcmVkW2tleV0gPSB0cnVlOwogICAgYmVlcCh0aW1lcyk7CiAgICBjYXJkLmNsYXNzTGlzdC5yZW1vdmUoImZsYXNoIik7IHZvaWQgY2FyZC5vZmZzZXRXaWR0aDsgY2FyZC5jbGFzc0xpc3QuYWRkKCJmbGFzaCIpOwogIH0KICBmdW5jdGlvbiB0bVJlbmRlcigpIHsKICAgIHZhciBkID0gdG1EdXIoKSwgZSA9IHRtRWxhcHNlZCgpLCBzdGFydGVkID0gdG0ucnVubmluZyB8fCB0bS5iZWZvcmUgPiAwOwogICAgdmFyIHBvdExlZnQgPSBkLnBvdCAtIGUsIGRtTGVmdCA9IGQuZG0gLSBlOwogICAgdmFyIHBjID0gJCgidG0tcG90LWNhcmQiKSwgZGMgPSAkKCJ0bS1kbS1jYXJkIiksIHN0YXR1cyA9ICIiOwogICAgJCgidG0tcG90LWNsb2NrIikudGV4dENvbnRlbnQgPSBjbG9jayhwb3RMZWZ0KTsKICAgICQoInRtLWRtLWNsb2NrIikudGV4dENvbnRlbnQgPSBjbG9jayhkbUxlZnQpOwogICAgJCgidG0tcG90LWJhciIpLnN0eWxlLndpZHRoID0gKGQucG90ID8gTWF0aC5taW4oMTAwLCBlIC8gZC5wb3QgKiAxMDApIDogMCkgKyAiJSI7CiAgICAkKCJ0bS1kbS1iYXIiKS5zdHlsZS53aWR0aCA9IChkLmRtID8gTWF0aC5taW4oMTAwLCBlIC8gZC5kbSAqIDEwMCkgOiAwKSArICIlIjsKICAgICQoInRtLXBvdC1wY3QiKS50ZXh0Q29udGVudCA9IHN0YXJ0ZWQgJiYgZC5wb3QgPyBNYXRoLm1pbigxMDAsIE1hdGguZmxvb3IoZSAvIGQucG90ICogMTAwKSkgKyAiJSIgOiAiIjsKICAgICQoInRtLWRtLXBjdCIpLnRleHRDb250ZW50ID0gc3RhcnRlZCAmJiBkLmRtID8gTWF0aC5taW4oMTAwLCBNYXRoLmZsb29yKGUgLyBkLmRtICogMTAwKSkgKyAiJSIgOiAiIjsKICAgIHBjLmNsYXNzTmFtZSA9ICJ0Y2FyZCIgKyAocGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGFzaCIpID8gIiBmbGFzaCIgOiAiIik7CiAgICBkYy5jbGFzc05hbWUgPSAidGNhcmQiICsgKGRjLmNsYXNzTGlzdC5jb250YWlucygiZmxhc2giKSA\/ICIgZmxhc2giIDogIiIpOwogICAgaWYgKCFzdGFydGVkKSB7CiAgICAgICQoInRtLXBvdC1hdCIpLnRleHRDb250ZW50ID0gIk5vdCBzdGFydGVkIjsKICAgICAgJCgidG0tZG0tYXQiKS50ZXh0Q29udGVudCA9ICJOb3Qgc3RhcnRlZCI7CiAgICB9IGVsc2UgewogICAgICB2YXIgcGF1c2VkID0gIXRtLnJ1bm5pbmc7CiAgICAgICQoInRtLXBvdC1hdCIpLnRleHRDb250ZW50ID0gcG90TGVmdCA+IDAgPyAocGF1c2VkID8gIlBhdXNlZCIgOiAiUG91ciBieSAiICsgYXQocG90TGVmdCkpIDogIlBvdCBsaWZlIGlzIG92ZXIiOwogICAgICAkKCJ0bS1kbS1hdCIpLnRleHRDb250ZW50ID0gZG1MZWZ0ID4gMCA\/IChwYXVzZWQgPyAiUGF1c2VkIiA6ICJEZW1vbGQgYXQgIiArIGF0KGRtTGVmdCkpIDogIlJlYWR5IjsKICAgICAgaWYgKHBvdExlZnQgPiAwKSB7CiAgICAgICAgdmFyIHdhcm4gPSBwb3RMZWZ0IDw9IE1hdGgubWluKDYwMDAwLCBkLnBvdCAqIDAuMik7CiAgICAgICAgcGMuY2xhc3NMaXN0LmFkZCh3YXJuID8gIndhcm4iIDogImxpdmUiKTsKICAgICAgICBzdGF0dXMgPSB3YXJuID8gIkh1cnJ5OiB1bmRlciBhIG1pbnV0ZSBvZiB3b3JraW5nIHRpbWUgbGVmdCEiIDogIk1peCBhbmQgcG91ci4gWW91J3JlIHdpdGhpbiBwb3QgbGlmZS4iOwogICAgICAgIGlmICh3YXJuICYmIHRtLnJ1bm5pbmcpIGFsZXJ0T25jZSgid2FybiIsIDEsIHBjKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBwYy5jbGFzc0xpc3QuYWRkKCJvdmVyIik7CiAgICAgICAgaWYgKHRtLnJ1bm5pbmcpIGFsZXJ0T25jZSgicG90IiwgMiwgcGMpOwogICAgICB9CiAgICAgIGlmIChkbUxlZnQgPiAwKSB7CiAgICAgICAgaWYgKHBvdExlZnQgPD0gMCkgeyBkYy5jbGFzc0xpc3QuYWRkKCJsaXZlIik7IHN0YXR1cyA9ICJQb3QgbGlmZSBpcyBvdmVyLiBMZWF2ZSBpdCBhbG9uZSBhbmQgbGV0IGl0IGN1cmUuIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGRjLmNsYXNzTGlzdC5hZGQoImRvbmUiKTsKICAgICAgICBzdGF0dXMgPSAiUmVhZHkgdG8gZGVtb2xkISI7CiAgICAgICAgaWYgKHRtLnJ1bm5pbmcpIGFsZXJ0T25jZSgiZG0iLCA0LCBkYyk7CiAgICAgIH0KICAgICAgaWYgKHBhdXNlZCAmJiBkbUxlZnQgPiAwKSBzdGF0dXMgPSAiUGF1c2VkIjsKICAgIH0KICAgIHZhciBuYW1lID0gJCgidG0tbmFtZSIpLnZhbHVlLnRyaW0oKTsKICAgICQoInRtLXN0YXR1cyIpLnRleHRDb250ZW50ID0gc3RhdHVzICYmIG5hbWUgPyBuYW1lICsgIjogIiArIHN0YXR1cyA6IHN0YXR1czsKICAgICQoInRtLXN0YXJ0IikudGV4dENvbnRlbnQgPSB0bS5ydW5uaW5nID8gIlBhdXNlIiA6IHN0YXJ0ZWQgPyAiUmVzdW1lIiA6ICJTdGFydCBtaXhpbmciOwogICAgJCgidG0tcmVzZXQiKS5oaWRkZW4gPSAhc3RhcnRlZDsKICAgIGlmIChzdGFydGVkICYmIGRtTGVmdCA8PSAwICYmIHRtLnJ1bm5pbmcpIHsgdG0uYmVmb3JlID0gdG1FbGFwc2VkKCk7IHRtLnJ1bm5pbmcgPSBmYWxzZTsgY2xlYXJJbnRlcnZhbCh0bVRpY2spOyB0bVRpY2sgPSBudWxsOyAkKCJ0bS1zdGFydCIpLnRleHRDb250ZW50ID0gIkRvbmUiOyAkKCJ0bS1zdGFydCIpLmRpc2FibGVkID0gdHJ1ZTsgdG1TYXZlKHRydWUpOyB9CiAgfQogIGZ1bmN0aW9uIHRtU2F2ZShmaW5pc2hlZCkgeyBzdG9yZSgidGltZXIiLCBKU09OLnN0cmluZ2lmeSh7IHRtOiB0bSwgcG90OiAkKCJ0bS1wb3QiKS52YWx1ZSwgZG06ICQoInRtLWRtIikudmFsdWUsIHU6ICQoInRtLWRtLXVuaXQiKS52YWx1ZSwgbjogJCgidG0tbmFtZSIpLnZhbHVlIH0pKTsgdG1OYXRpdmUoZmluaXNoZWQpOyB9CiAgLy8gSW4gdGhlIEFuZHJvaWQgYXBwICh3aW5kb3cuTW9sZHJBcHApLCBzY2hlZHVsZSByZWFsIG5vdGlmaWNhdGlvbnMgc28gYWxlcnRzIGFycml2ZSBldmVuIHdoZW4gdGhlIGFwcCBpcyBjbG9zZWQuCiAgLy8gZmluaXNoZWQgPSB0aGUgY291bnRkb3duIGp1c3QgcmVhY2hlZCBkZW1vbGQgdGltZTsgbGVhdmUgdGhlIGFsYXJtcyBhbG9uZSBzbyB0aGUgZGVtb2xkIG5vdGlmaWNhdGlvbiBzdGlsbCBhcnJpdmVzLgogIGZ1bmN0aW9uIHRtTmF0aXZlKGZpbmlzaGVkKSB7CiAgICB2YXIgQSA9IHdpbmRvdy5Nb2xkckFwcDsKICAgIGlmICghQSkgcmV0dXJuOwogICAgdHJ5IHsKICAgICAgQS5rZWVwQXdha2UoISF0bS5ydW5uaW5nKTsKICAgICAgaWYgKGZpbmlzaGVkKSByZXR1cm47CiAgICAgIEEuY2FuY2VsQWxlcnRzKCk7CiAgICAgIGlmICghdG0ucnVubmluZykgcmV0dXJuOwogICAgICB2YXIgZCA9IHRtRHVyKCksIGUgPSB0bUVsYXBzZWQoKSwgbm93ID0gRGF0ZS5ub3coKSwgbmFtZSA9ICQoInRtLW5hbWUiKS52YWx1ZS50cmltKCksIHByZSA9IG5hbWUgPyBuYW1lICsgIjogIiA6ICIiOwogICAgICB2YXIgd2FybkF0ID0gZC5wb3QgLSBNYXRoLm1pbig2MDAwMCwgZC5wb3QgKiAwLjIpOwogICAgICBpZiAoZC5wb3QgPiAwICYmIHdhcm5BdCA+IGUpIEEuc2NoZWR1bGVBbGVydCgxLCBub3cgKyB3YXJuQXQgLSBlLCAiUG90IGxpZmUgYWxtb3N0IG92ZXIiLCBwcmUgKyAiVW5kZXIgYSBtaW51dGUgb2Ygd29ya2luZyB0aW1lIGxlZnQuIik7CiAgICAgIGlmIChkLnBvdCA+IGUpIEEuc2NoZWR1bGVBbGVydCgyLCBub3cgKyBkLnBvdCAtIGUsICJQb3QgbGlmZSBpcyBvdmVyIiwgcHJlICsgIkxlYXZlIGl0IGFsb25lIGFuZCBsZXQgaXQgY3VyZS4iKTsKICAgICAgaWYgKGQuZG0gPiBlKSBBLnNjaGVkdWxlQWxlcnQoMywgbm93ICsgZC5kbSAtIGUsICJSZWFkeSB0byBkZW1vbGQhIiwgcHJlICsgIllvdXIgY2FzdCBpcyByZWFkeSB0byBkZW1vbGQuIik7CiAgICB9IGNhdGNoIChlcnIpIHt9CiAgfQogICQoInRtLXN0YXJ0IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICB0cnkgeyBhdWRpbyA9IGF1ZGlvIHx8IG5ldyAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSgpOyBhdWRpby5yZXN1bWUoKTsgfSBjYXRjaCAoZSkge30KICAgIHRyeSB7IGlmICh3aW5kb3cuTW9sZHJBcHAgJiYgIXRtLnJ1bm5pbmcpIHdpbmRvdy5Nb2xkckFwcC5yZXF1ZXN0Tm90aWZpY2F0aW9ucygpOyB9IGNhdGNoIChlKSB7fQogICAgaWYgKHRtLnJ1bm5pbmcpIHsgdG0uYmVmb3JlID0gdG1FbGFwc2VkKCk7IHRtLnJ1bm5pbmcgPSBmYWxzZTsgY2xlYXJJbnRlcnZhbCh0bVRpY2spOyB0bVRpY2sgPSBudWxsOyB9CiAgICBlbHNlIHsgdG0uc3RhcnRlZEF0ID0gRGF0ZS5ub3coKTsgdG0ucnVubmluZyA9IHRydWU7IHRtVGljayA9IHNldEludGVydmFsKHRtUmVuZGVyLCAyNTApOyB9CiAgICB0bVNhdmUoKTsgdG1SZW5kZXIoKTsKICB9KTsKICAkKCJ0bS1yZXNldCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgewogICAgY2xlYXJJbnRlcnZhbCh0bVRpY2spOyB0bVRpY2sgPSBudWxsOwogICAgdG0gPSB7IHJ1bm5pbmc6IGZhbHNlLCBzdGFydGVkQXQ6IDAsIGJlZm9yZTogMCwgZmlyZWQ6IHt9IH07CiAgICAkKCJ0bS1zdGFydCIpLmRpc2FibGVkID0gZmFsc2U7CiAgICB0bVNhdmUoKTsgdG1SZW5kZXIoKTsKICB9KTsKICBbInRtLXBvdCIsICJ0bS1kbSIsICJ0bS1kbS11bml0IiwgInRtLW5hbWUiXS5mb3JFYWNoKGZ1bmN0aW9uIChpZCkgeyAkKGlkKS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIGZ1bmN0aW9uICgpIHsgdG1TYXZlKCk7IHRtUmVuZGVyKCk7IH0pOyB9KTsKICBbNSwgMTAsIDIwLCAzMCwgNDUsIDYwXS5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7CiAgICB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOyBjLnR5cGUgPSAiYnV0dG9uIjsgYy5jbGFzc05hbWUgPSAiY2hpcCI7IGMudGV4dENvbnRlbnQgPSB2ICsgIiBtaW4iOwogICAgYy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgJCgidG0tcG90IikudmFsdWUgPSB2OyB0bVNhdmUoKTsgdG1SZW5kZXIoKTsgfSk7CiAgICAkKCJ0bS1wb3QtY2hpcHMiKS5hcHBlbmRDaGlsZChjKTsKICB9KTsKICBbWzMwLCAxLCAiMzAgbWluIl0sIFsxLCA2MCwgIjEgaCJdLCBbNCwgNjAsICI0IGgiXSwgWzYsIDYwLCAiNiBoIl0sIFsxNiwgNjAsICIxNiBoIl0sIFsyNCwgNjAsICIyNCBoIl1dLmZvckVhY2goZnVuY3Rpb24gKHYpIHsKICAgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7IGMudHlwZSA9ICJidXR0b24iOyBjLmNsYXNzTmFtZSA9ICJjaGlwIjsgYy50ZXh0Q29udGVudCA9IHZbMl07CiAgICBjLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyAkKCJ0bS1kbSIpLnZhbHVlID0gdlswXTsgJCgidG0tZG0tdW5pdCIpLnZhbHVlID0gdlsxXTsgdG1TYXZlKCk7IHRtUmVuZGVyKCk7IH0pOwogICAgJCgidG0tZG0tY2hpcHMiKS5hcHBlbmRDaGlsZChjKTsKICB9KTsKICAoZnVuY3Rpb24gcmVzdG9yZSgpIHsKICAgIHRyeSB7CiAgICAgIHZhciBzID0gSlNPTi5wYXJzZShzdG9yZSgidGltZXIiKSB8fCAibnVsbCIpOwogICAgICBpZiAoIXMpIHJldHVybjsKICAgICAgdG0gPSBzLnRtOyB0bS5maXJlZCA9IHRtLmZpcmVkIHx8IHt9OwogICAgICAkKCJ0bS1wb3QiKS52YWx1ZSA9IHMucG90OyAkKCJ0bS1kbSIpLnZhbHVlID0gcy5kbTsgJCgidG0tZG0tdW5pdCIpLnZhbHVlID0gcy51OyAkKCJ0bS1uYW1lIikudmFsdWUgPSBzLm4gfHwgIiI7CiAgICAgIGlmICh0bS5ydW5uaW5nKSB0bVRpY2sgPSBzZXRJbnRlcnZhbCh0bVJlbmRlciwgMjUwKTsKICAgIH0gY2F0Y2ggKGUpIHt9CiAgfSkoKTsKICAvLyBJbiB0aGUgQW5kcm9pZCBhcHAsIG9wZW4gd2Vic2l0ZSBhbmQgZW1haWwgbGlua3MgaW4gdGhlIHBob25lJ3MgYnJvd3NlciAvIG1haWwgYXBwLgogIGlmICh3aW5kb3cuTW9sZHJBcHAgJiYgd2luZG93Lk1vbGRyQXBwLm9wZW5FeHRlcm5hbCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoZSkgewogICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QgJiYgZS50YXJnZXQuY2xvc2VzdCgiYVtocmVmXSIpOwogICAgICBpZiAoIWEgfHwgIS9eKGh0dHBzPzp8bWFpbHRvOikvLnRlc3QoYS5nZXRBdHRyaWJ1dGUoImhyZWYiKSkpIHJldHVybjsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB3aW5kb3cuTW9sZHJBcHAub3BlbkV4dGVybmFsKGEuaHJlZik7CiAgICB9KTsKICB9CiAgaWYgKHdpbmRvdy5Nb2xkckFwcCkgJCgidG0ta2VlcCIpLnRleHRDb250ZW50ID0gIllvdSdsbCBnZXQgYSBub3RpZmljYXRpb24gd2hlbiBpdCdzIHRpbWUsIGV2ZW4gaWYgeW91IGxlYXZlIHRoZSBhcHAuIjsKICB0bVJlbmRlcigpOwoKICAvKiAtLS0tLS0tLS0tIENvbG9yIG1peGVyIC0tLS0tLS0tLS0gKi8KICAvKgogICAqIFBJR01FTlQgUkVDSVBFUy4gRWRpdCB0aGlzIGxpc3QgdG8gYWRkIHlvdXIgb3duIGhvdXNlIHJlY2lwZXMuCiAgICogYnJhbmQ6ICAgIHRoZSBwaWdtZW50IGxpbmUgdGhlIHJlY2lwZSBpcyB3cml0dGVuIGZvciAoc2hvd3MgaW4gdGhlICJQaWdtZW50IGJyYW5kIiBtZW51KQogICAqIGxvYWQ6ICAgICBwaWdtZW50ICUgb2YgdGhlIHRvdGFsIGJhdGNoIHdlaWdodAogICAqIHBpZ21lbnRzOiBbcGlnbWVudCBuYW1lLCBwcmV2aWV3IGNvbG9yLCBwYXJ0c10KICAgKiBQcmV2aWV3IGNvbG9ycyBhcmUgb25seSBmb3IgdGhlIG9uLXNjcmVlbiBzd2F0Y2guCiAgICovCiAgdmFyIEMgPSB7IHdoaXRlOiAiI2Y0ZjFlYSIsIGZsZXNoOiAiI2U4YjQ5NiIsIHllbGxvdzogIiNlM2I1MmEiLCByZWQ6ICIjYjUzMDJhIiwgYnJvd246ICIjNmIzYjIyIiwgYmxhY2s6ICIjMWMxYzFjIiwgYmx1ZTogIiMyNDUwOWUiLCBncmVlbjogIiMzZjdhM2MiLCBwdXJwbGU6ICIjNWUyYzZlIiB9OwogIHZhciBSRUNJUEVTID0gWwogICAgeyBicmFuZDogIkFSS0ZYIiwgbmFtZTogIkxpZ2h0IiwgbG9hZDogMiwgdGFyZ2V0OiAiI0ZGRThDQyIsIHBpZ21lbnRzOiBbWyJXaGl0ZSIsIEMud2hpdGUsIDkwXSwgWyJZZWxsb3ciLCBDLnllbGxvdywgOF0sIFsiUmVkIiwgQy5yZWQsIDJdXSB9LAogICAgeyBicmFuZDogIkFSS0ZYIiwgbmFtZTogIkZhaXIiLCBsb2FkOiAyLCB0YXJnZXQ6ICIjRkZEQkM5IiwgcGlnbWVudHM6IFtbIldoaXRlIiwgQy53aGl0ZSwgODVdLCBbIlllbGxvdyIsIEMueWVsbG93LCAxMF0sIFsiUmVkIiwgQy5yZWQsIDRdLCBbIkJsdWUiLCBDLmJsdWUsIDFdXSB9LAogICAgeyBicmFuZDogIkFSS0ZYIiwgbmFtZTogIk1lZGl1bSBMaWdodCIsIGxvYWQ6IDIsIHRhcmdldDogIiNGRkQ2QjkiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA4MF0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDE0XSwgWyJSZWQiLCBDLnJlZCwgNF0sIFsiQmx1ZSIsIEMuYmx1ZSwgMl1dIH0sCiAgICB7IGJyYW5kOiAiQVJLRlgiLCBuYW1lOiAiTWVkaXVtIiwgbG9hZDogMiwgdGFyZ2V0OiAiI0ZGQ0VBMyIsIHBpZ21lbnRzOiBbWyJXaGl0ZSIsIEMud2hpdGUsIDc1XSwgWyJZZWxsb3ciLCBDLnllbGxvdywgMThdLCBbIlJlZCIsIEMucmVkLCA1XSwgWyJCbHVlIiwgQy5ibHVlLCAyXV0gfSwKICAgIHsgYnJhbmQ6ICJBUktGWCIsIG5hbWU6ICJNZWRpdW0gRGFyayIsIGxvYWQ6IDIsIHRhcmdldDogIiNFNUI4OTEiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA3MF0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDIwXSwgWyJSZWQiLCBDLnJlZCwgNV0sIFsiQmx1ZSIsIEMuYmx1ZSwgM10sIFsiQmxhY2siLCBDLmJsYWNrLCAyXV0gfSwKICAgIHsgYnJhbmQ6ICJBUktGWCIsIG5hbWU6ICJEYXJrIiwgbG9hZDogMiwgdGFyZ2V0OiAiI0NDOUM3NiIsIHBpZ21lbnRzOiBbWyJXaGl0ZSIsIEMud2hpdGUsIDY1XSwgWyJZZWxsb3ciLCBDLnllbGxvdywgMjJdLCBbIlJlZCIsIEMucmVkLCA2XSwgWyJCbHVlIiwgQy5ibHVlLCA0XSwgWyJCbGFjayIsIEMuYmxhY2ssIDNdXSB9LAogICAgeyBicmFuZDogIkFSS0ZYIiwgbmFtZTogIkRlZXAgRGFyayIsIGxvYWQ6IDIsIHRhcmdldDogIiNCMzg2NjAiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA2MF0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDI0XSwgWyJSZWQiLCBDLnJlZCwgOF0sIFsiQmx1ZSIsIEMuYmx1ZSwgNF0sIFsiQmxhY2siLCBDLmJsYWNrLCA0XV0gfSwKICAgIHsgYnJhbmQ6ICJBUktGWCIsIG5hbWU6ICJPbGl2ZSIsIGxvYWQ6IDIsIHRhcmdldDogIiM5OTcxNEMiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA1NV0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDI1XSwgWyJSZWQiLCBDLnJlZCwgMTBdLCBbIkJsdWUiLCBDLmJsdWUsIDVdLCBbIkJsYWNrIiwgQy5ibGFjaywgNV1dIH0sCiAgICB7IGJyYW5kOiAiQVJLRlgiLCBuYW1lOiAiR29sZGVuIiwgbG9hZDogMiwgdGFyZ2V0OiAiIzgwNEQzMyIsIHBpZ21lbnRzOiBbWyJXaGl0ZSIsIEMud2hpdGUsIDUwXSwgWyJZZWxsb3ciLCBDLnllbGxvdywgMzBdLCBbIlJlZCIsIEMucmVkLCAxMl0sIFsiQmxhY2siLCBDLmJsYWNrLCA4XV0gfSwKICAgIHsgYnJhbmQ6ICJBUktGWCIsIG5hbWU6ICJCcm9uemUiLCBsb2FkOiAyLCB0YXJnZXQ6ICIjNjYzNjFGIiwgcGlnbWVudHM6IFtbIldoaXRlIiwgQy53aGl0ZSwgNDVdLCBbIlllbGxvdyIsIEMueWVsbG93LCAyOF0sIFsiUmVkIiwgQy5yZWQsIDEyXSwgWyJCbHVlIiwgQy5ibHVlLCA3XSwgWyJCbGFjayIsIEMuYmxhY2ssIDhdXSB9LAogICAgeyBicmFuZDogIkFSS0ZYIiwgbmFtZTogIldhcm0gSXZvcnkiLCBsb2FkOiAyLCB0YXJnZXQ6ICIjRkZFOEQxIiwgcGlnbWVudHM6IFtbIldoaXRlIiwgQy53aGl0ZSwgODhdLCBbIlllbGxvdyIsIEMueWVsbG93LCA5XSwgWyJSZWQiLCBDLnJlZCwgMl0sIFsiQmx1ZSIsIEMuYmx1ZSwgMV1dIH0sCiAgICB7IGJyYW5kOiAiQVJLRlgiLCBuYW1lOiAiQmVpZ2UiLCBsb2FkOiAyLCB0YXJnZXQ6ICIjRkZEQUJFIiwgcGlnbWVudHM6IFtbIldoaXRlIiwgQy53aGl0ZSwgNzhdLCBbIlllbGxvdyIsIEMueWVsbG93LCAxNF0sIFsiUmVkIiwgQy5yZWQsIDVdLCBbIkJsdWUiLCBDLmJsdWUsIDNdXSB9LAogICAgeyBicmFuZDogIkFSS0ZYIiwgbmFtZTogIkNvb2wgUGluayIsIGxvYWQ6IDIsIHRhcmdldDogIiNGRkVCRjciLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA5Ml0sIFsiUmVkIiwgQy5yZWQsIDZdLCBbIkJsdWUiLCBDLmJsdWUsIDJdXSB9LAogICAgeyBicmFuZDogIkFSS0ZYIiwgbmFtZTogIlBlYWNoeSIsIGxvYWQ6IDIsIHRhcmdldDogIiNGRkRCQzAiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA4MF0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDEwXSwgWyJSZWQiLCBDLnJlZCwgN10sIFsiQmxhY2siLCBDLmJsYWNrLCAzXV0gfSwKICAgIHsgYnJhbmQ6ICJBUktGWCIsIG5hbWU6ICJSb3N5IiwgbG9hZDogMiwgdGFyZ2V0OiAiI0ZGQ0VDQyIsIHBpZ21lbnRzOiBbWyJXaGl0ZSIsIEMud2hpdGUsIDcwXSwgWyJZZWxsb3ciLCBDLnllbGxvdywgNV0sIFsiUmVkIiwgQy5yZWQsIDIwXSwgWyJCbHVlIiwgQy5ibHVlLCA1XV0gfSwKICAgIHsgYnJhbmQ6ICJBUktGWCIsIG5hbWU6ICJNb2NoYSIsIGxvYWQ6IDIsIHRhcmdldDogIiNEMkE1N0MiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA3MF0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDE4XSwgWyJSZWQiLCBDLnJlZCwgNV0sIFsiQmx1ZSIsIEMuYmx1ZSwgNF0sIFsiQmxhY2siLCBDLmJsYWNrLCAzXV0gfSwKICAgIHsgYnJhbmQ6ICJBUktGWCIsIG5hbWU6ICJDaGVzdG51dCIsIGxvYWQ6IDIsIHRhcmdldDogIiNCMzg0NjMiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA2NV0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDE1XSwgWyJSZWQiLCBDLnJlZCwgOV0sIFsiQmx1ZSIsIEMuYmx1ZSwgN10sIFsiQmxhY2siLCBDLmJsYWNrLCA0XV0gfSwKICAgIHsgYnJhbmQ6ICJBUktGWCIsIG5hbWU6ICJNYWhvZ2FueSIsIGxvYWQ6IDIsIHRhcmdldDogIiM5ODY1NDgiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA2MF0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDE0XSwgWyJSZWQiLCBDLnJlZCwgMTJdLCBbIkJsdWUiLCBDLmJsdWUsIDhdLCBbIkJsYWNrIiwgQy5ibGFjaywgNl1dIH0sCiAgICB7IGJyYW5kOiAiQVJLRlgiLCBuYW1lOiAiRWJvbnkiLCBsb2FkOiAyLCB0YXJnZXQ6ICIjNEQzNTI0IiwgcGlnbWVudHM6IFtbIldoaXRlIiwgQy53aGl0ZSwgNTBdLCBbIlllbGxvdyIsIEMueWVsbG93LCAxMF0sIFsiUmVkIiwgQy5yZWQsIDEwXSwgWyJCbHVlIiwgQy5ibHVlLCAxMF0sIFsiQmxhY2siLCBDLmJsYWNrLCAyMF1dIH0sCiAgICB7IGJyYW5kOiAiQVJLRlgiLCBuYW1lOiAiT255eCIsIGxvYWQ6IDIsIHRhcmdldDogIiMyOTI3MzQiLCBwaWdtZW50czogW1siV2hpdGUiLCBDLndoaXRlLCA0NV0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDVdLCBbIlJlZCIsIEMucmVkLCA1XSwgWyJCbHVlIiwgQy5ibHVlLCAzMF0sIFsiQmxhY2siLCBDLmJsYWNrLCAxNV1dIH0sCiAgICB7IGJyYW5kOiAiR2VuZXJpYyIsIG5hbWU6ICJTa2luOiBGYWlyIC8gUG9yY2VsYWluIiwgbG9hZDogMSwgbm90ZTogIkxpZ2h0IGJhc2UuIEFkZCByZWQgaW4gdGlueSBzdGVwcyBmb3Igd2FybXRoLiIsCiAgICAgIHBpZ21lbnRzOiBbWyJXaGl0ZSIsIEMud2hpdGUsIDRdLCBbIkZsZXNoIiwgQy5mbGVzaCwgNF0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDFdLCBbIlJlZCIsIEMucmVkLCAwLjVdXSB9LAogICAgeyBicmFuZDogIkdlbmVyaWMiLCBuYW1lOiAiU2tpbjogTGlnaHQgV2FybSIsIGxvYWQ6IDEuNSwgbm90ZTogIlBlYWNoeSBsaWdodCBza2luLiIsCiAgICAgIHBpZ21lbnRzOiBbWyJGbGVzaCIsIEMuZmxlc2gsIDZdLCBbIldoaXRlIiwgQy53aGl0ZSwgMl0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDFdLCBbIlJlZCIsIEMucmVkLCAxXV0gfSwKICAgIHsgYnJhbmQ6ICJHZW5lcmljIiwgbmFtZTogIlNraW46IE1lZGl1bSAvIE9saXZlIiwgbG9hZDogMS41LCBub3RlOiAiVGhlIHRvdWNoIG9mIGdyZWVuIGdpdmVzIHRoZSBvbGl2ZSBjYXN0LiIsCiAgICAgIHBpZ21lbnRzOiBbWyJGbGVzaCIsIEMuZmxlc2gsIDZdLCBbIlllbGxvdyIsIEMueWVsbG93LCAyXSwgWyJCcm93biIsIEMuYnJvd24sIDFdLCBbIkdyZWVuIiwgQy5ncmVlbiwgMC4yNV1dIH0sCiAgICB7IGJyYW5kOiAiR2VuZXJpYyIsIG5hbWU6ICJTa2luOiBUYW4iLCBsb2FkOiAyLCBub3RlOiAiV2FybSBtaWQtdG9uZS4iLAogICAgICBwaWdtZW50czogW1siRmxlc2giLCBDLmZsZXNoLCA1XSwgWyJCcm93biIsIEMuYnJvd24sIDJdLCBbIlllbGxvdyIsIEMueWVsbG93LCAxXSwgWyJSZWQiLCBDLnJlZCwgMV1dIH0sCiAgICB7IGJyYW5kOiAiR2VuZXJpYyIsIG5hbWU6ICJTa2luOiBEZWVwIEJyb3duIiwgbG9hZDogMiwgbm90ZTogIlJpY2ggYnJvd24gYmFzZS4iLAogICAgICBwaWdtZW50czogW1siQnJvd24iLCBDLmJyb3duLCA2XSwgWyJSZWQiLCBDLnJlZCwgMV0sIFsiWWVsbG93IiwgQy55ZWxsb3csIDFdLCBbIkJsYWNrIiwgQy5ibGFjaywgMC41XV0gfSwKICAgIHsgYnJhbmQ6ICJHZW5lcmljIiwgbmFtZTogIlNraW46IFZlcnkgRGVlcCIsIGxvYWQ6IDIuNSwgbm90ZTogIkNvb2wsIHZlcnkgZGFyayBiYXNlLiIsCiAgICAgIHBpZ21lbnRzOiBbWyJCcm93biIsIEMuYnJvd24sIDVdLCBbIkJsYWNrIiwgQy5ibGFjaywgMV0sIFsiUmVkIiwgQy5yZWQsIDFdLCBbIkJsdWUiLCBDLmJsdWUsIDAuMjVdXSB9LAogICAgeyBicmFuZDogIkdlbmVyaWMiLCBuYW1lOiAiTGlwcyIsIGxvYWQ6IDIsIG5vdGU6ICJGb3IgaW50cmluc2ljIGxpcCBjb2xvciBvciBhIGxpcCBsYXllci4iLAogICAgICBwaWdtZW50czogW1siUmVkIiwgQy5yZWQsIDNdLCBbIkZsZXNoIiwgQy5mbGVzaCwgMl0sIFsiQnJvd24iLCBDLmJyb3duLCAwLjVdXSB9LAogICAgeyBicmFuZDogIkdlbmVyaWMiLCBuYW1lOiAiVmVpbnMiLCBsb2FkOiAyLCBub3RlOiAiRm9yIHRoaW4gdmVpbnMgYW5kIGZsaWNraW5nLiIsCiAgICAgIHBpZ21lbnRzOiBbWyJCbHVlIiwgQy5ibHVlLCAyXSwgWyJSZWQiLCBDLnJlZCwgMV0sIFsiQmxhY2siLCBDLmJsYWNrLCAwLjI1XV0gfSwKICAgIHsgYnJhbmQ6ICJHZW5lcmljIiwgbmFtZTogIkJydWlzZSAoZnJlc2gpIiwgbG9hZDogMi41LCBub3RlOiAiRGVlcCByZWQtcHVycGxlLiBBZGQgeWVsbG93LWdyZWVuIGF0IHRoZSBlZGdlcyBmb3Igb2xkZXIgYnJ1aXNlcy4iLAogICAgICBwaWdtZW50czogW1siUHVycGxlIiwgQy5wdXJwbGUsIDJdLCBbIlJlZCIsIEMucmVkLCAyXSwgWyJCbHVlIiwgQy5ibHVlLCAxXV0gfQogIF07CiAgZnVuY3Rpb24gYWxsUmVjaXBlcygpIHsgcmV0dXJuIFJFQ0lQRVM7IH0KCiAgdmFyIHBpZ3MgPSBbXSwgY3VycmVudCA9IG51bGwsIGRpcnR5ID0gZmFsc2U7CiAgZnVuY3Rpb24gbG9hZFJlY2lwZShyKSB7CiAgICBwaWdzID0gci5waWdtZW50cy5tYXAoZnVuY3Rpb24gKHApIHsgcmV0dXJuIHsgbjogcFswXSwgYzogcFsxXSwgcDogcFsyXSB9OyB9KTsKICAgICQoInBpZy1wIikudmFsdWUgPSByLmxvYWQ7CiAgICBjdXJyZW50ID0gcjsgZGlydHkgPSBmYWxzZTsKICAgIHJlbmRlclBpZ3MoKTsKICB9CiAgZnVuY3Rpb24gZmlsbEJyYW5kcygpIHsKICAgIHZhciBzZWwgPSAkKCJyZWMtYnJhbmQiKSwgYnJhbmRzID0gW107CiAgICBhbGxSZWNpcGVzKCkuZm9yRWFjaChmdW5jdGlvbiAocikgeyBpZiAoYnJhbmRzLmluZGV4T2Yoci5icmFuZCkgPCAwKSBicmFuZHMucHVzaChyLmJyYW5kKTsgfSk7CiAgICBzZWwuaW5uZXJIVE1MID0gIiI7CiAgICBbWyIiLCAiQWxsIGJyYW5kcyJdXS5jb25jYXQoYnJhbmRzLm1hcChmdW5jdGlvbiAoYikgeyByZXR1cm4gW2IsIGJdOyB9KSkuZm9yRWFjaChmdW5jdGlvbiAoYikgewogICAgICB2YXIgbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOyBvLnZhbHVlID0gYlswXTsgby50ZXh0Q29udGVudCA9IGJbMV07IHNlbC5hcHBlbmRDaGlsZChvKTsKICAgIH0pOwogIH0KICBmdW5jdGlvbiBmaWxsUmVjaXBlcygpIHsKICAgIHZhciBzZWwgPSAkKCJyZWMtcGljayIpLCBicmFuZCA9ICQoInJlYy1icmFuZCIpLnZhbHVlLCBsaXN0ID0gYWxsUmVjaXBlcygpLCBncm91cHMgPSB7fTsKICAgIHNlbC5pbm5lckhUTUwgPSAnPG9wdGlvbiB2YWx1ZT0iIj5DdXN0b20gbWl4PC9vcHRpb24+JzsKICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAociwgaSkgewogICAgICBpZiAoYnJhbmQgJiYgci5icmFuZCAhPT0gYnJhbmQpIHJldHVybjsKICAgICAgaWYgKCFncm91cHNbci5icmFuZF0pIHsgZ3JvdXBzW3IuYnJhbmRdID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0Z3JvdXAiKTsgZ3JvdXBzW3IuYnJhbmRdLmxhYmVsID0gci5icmFuZDsgc2VsLmFwcGVuZENoaWxkKGdyb3Vwc1tyLmJyYW5kXSk7IH0KICAgICAgdmFyIG8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsgby52YWx1ZSA9IGk7IG8udGV4dENvbnRlbnQgPSByLm5hbWU7IGdyb3Vwc1tyLmJyYW5kXS5hcHBlbmRDaGlsZChvKTsKICAgIH0pOwogICAgdmFyIGlkeCA9IGxpc3QuaW5kZXhPZihjdXJyZW50KTsKICAgIHNlbC52YWx1ZSA9IGlkeCA+IC0xICYmIHNlbC5xdWVyeVNlbGVjdG9yKCdvcHRpb25bdmFsdWU9IicgKyBpZHggKyAnIl0nKSA\/IGlkeCA6ICIiOwogICAgcmVjSW5mbygpOwogIH0KICBmdW5jdGlvbiByZWNJbmZvKCkgewogICAgJCgicmVjLWRlc2MiKS50ZXh0Q29udGVudCA9ICFjdXJyZW50ID8gIkJ1aWxkIHlvdXIgb3duIG1peCBiZWxvdy4gUHJpbnQgaXQgb3Igc2F2ZSBpdCBhcyBhIFBERiB0byBrZWVwIGl0LiIKICAgICAgOiBkaXJ0eSA\/ICJBZGp1c3RlZCBmcm9tIOKAnCIgKyBjdXJyZW50Lm5hbWUgKyAi4oCdLiBQcmludCBpdCBvciBzYXZlIGl0IGFzIGEgUERGIHRvIGtlZXAgeW91ciB2ZXJzaW9uLiIKICAgICAgOiAoY3VycmVudC5ub3RlID8gY3VycmVudC5ub3RlICsgIiAiIDogIiIpICsgKGN1cnJlbnQudGFyZ2V0ID8gIlRhcmdldCBjb2xvciAiICsgY3VycmVudC50YXJnZXQgKyAiLiAiIDogIiIpICsgIldyaXR0ZW4gZm9yICIgKyBjdXJyZW50LmJyYW5kICsgIiBwaWdtZW50cy4iOwogIH0KICAkKCJyZWMtYnJhbmQiKS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBmaWxsUmVjaXBlcyk7CiAgJCgicmVjLXBpY2siKS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBmdW5jdGlvbiAoKSB7CiAgICB2YXIgdiA9ICQoInJlYy1waWNrIikudmFsdWU7CiAgICBpZiAodiA9PT0gIiIpIHsgY3VycmVudCA9IG51bGw7IGRpcnR5ID0gZmFsc2U7IHJlY0luZm8oKTsgcmV0dXJuOyB9CiAgICBsb2FkUmVjaXBlKGFsbFJlY2lwZXMoKVsrdl0pOwogICAgcmVjSW5mbygpOwogIH0pOwogIGZ1bmN0aW9uIGVkaXRlZCgpIHsgaWYgKGN1cnJlbnQgJiYgIWRpcnR5KSB7IGRpcnR5ID0gdHJ1ZTsgcmVjSW5mbygpOyB9IH0KCiAgLyogUHJpbnQgLyBTYXZlIGFzIFBERjogYnVpbGRzIGEgY2xlYW4sIGxpZ2h0IHJlY2lwZSBzaGVldCBpbiBhIG5ldyB3aW5kb3cgYW5kIG9wZW5zIHRoZSBwcmludCBkaWFsb2cuICovCiAgZnVuY3Rpb24gZXNjKHMpIHsgcmV0dXJuIFN0cmluZyhzKS5yZXBsYWNlKC9bJjw+Il0vZywgZnVuY3Rpb24gKGMpIHsgcmV0dXJuIHsgIiYiOiAiJmFtcDsiLCAiPCI6ICImbHQ7IiwgIj4iOiAiJmd0OyIsICciJzogIiZxdW90OyIgfVtjXTsgfSk7IH0KICAvLyBCbGFjayB2ZXJzaW9uIG9mIHRoZSBBUktGWCBTdHVkaW8gbG9nbyBmb3IgdGhlIHdoaXRlIHByaW50ZWQgc2hlZXQKICB2YXIgQVJLRlhfTE9HT19EQVJLID0gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUWdBQUFCYUNBWUFBQUJFeDhpM0FBQWlCRWxFUVZSNDJ1MmRlWnhjVmJISHYzMjdaN0lNQVVJQ0JBSWFOQkMyaDRBQ0FqNUJRVkJFRUpRMUJIZFE4QWtJWVNjR0NBSUp3ZlY5MkFSRUVFVVdBWDBJcUIvRkJVVVFFUUVOSW9zaVFSQklRQVBKVFBkOWYxU1ZYVng2dXMvdHZ0MTlaOUwzODdtZm1VeDZPZmZVT1hXcWZ2V3Jxc0xFaVJQSnlWWFFuMnNBWHdFT0JjcEF6T2k0Q2tBUkdISi9Hd2RzRGJ4VjcrbkFWR0FTRUxuWFBRLzhBL2dMOEZ2Z1R1QnU0QVgzbWxLTDgxWFNzUzBFUHF1L2w0WjViVVhIOXpiZ2wvcGM1UmJtcFFDTUIrNEQzdWcrZjdqTHhuWWFNQS9vQjFZQVh3TSsxbURzN2JqS09nZmZCQTRCSmdQM0FLOVRlWVE4eThuQTJTM09aYTNMUHU5V1lIYzMxa2JQY2cxd1lDbEhHOGcyejJIQVFjQVBnQ3ZiTUdIZGVyYXlVdzQ3QWZzQnUrbUdpQnE4ZncyOU53SDIxTC85SGJnRCtBNXdHL0JLNHJ0R3loWHBlSS9XdVdpMGdDdjYvNDhDWDFibFVzbUJmQ3ZBQWNCRndNK0JNNEJMQThaV1ZDVnlMSEFGc0ZqbnBKTGh1bnV2S29kS2c3bU5kVDZYQVhNSldKaWRYaVRUVkpOV2dNOERFOTJnUjdMVlVOWlRZaWJ3YStDbndKSEFobTR4bFBWblBJemc0c1JycGdJSEF6Y0M5K29HbTZDdktlUkl0bzNrWGdGZUQ1d1ljTnI2Ulh3eThLSytQZzlXWnF3eVhxQS9yd0IrRmFDd1RjRk5BczdLY0wwWDlMUEdBdWNIdnNjc3R5OERmd0tLVVk0MlVxeEtZUlU5YWRjRFRnb3dOL05zTmRpbTNsM2RncXVBN2ZUdlErNlVpUFQxMFRDTG8rQ1VUZVRteXhUR0pzQVhWRkVjcXYvWDZMVEltOXdIZE15RkFQUDNKMm81NWNsYXNyRnNCOHpTMzQ4UGVDYXZLQS9WOTVjemtKMVpOZjhEYktTZkdRVW9oNzhCNTlxWW9oeE43TnZWdFNnRGZUcmdUd016UnFDU01EeGdvdnJGdHdMYnVBMWQwTmRFR1ZnbjNnS1pyaWZYeldxTmxYT3NKRXp1LzYxeUQxRm9CYmZ4NGh3cnZEUFZKZndGY0xXemtCdTlMMUlMcE5XMWJ0ODMxVm5rb1piWnFjQVNHMU9VbzhVeXY4YUVqZE8vanlRM3c4QytiUlRBKzVnS3FPSTJkRHRNOWFKVEZPOVRWMmJ2SEN1SldNZTEwTW1iQm1CZXBINzlQVG5GV2t4WlR3Vm02OTlPQTVZR1BLTlhtQWUzS0RmN3J0T0IxUVAyajMzWFhXcmwva2VoUlRrNVJUNWN3N1N5LzlzckVIM05rM0xZRy9pUm12NjJzS01PTFZBRGU5ZFdmT0t6T1p5N29qT3B0d2tZbjUydUx5aDRWc2h4ZE11VXhGRXEvOGVkVlZBSjNOanpnRldiUEJodDMyeXIreW9FbU1RQnBhOXlpYUljbUdPcnE2YXJOeG5uSWFHc1BGc1NwaHcrQ0Z5dkFpNTNPTnpteDJMV3hFSTFNN3MxbHVIa1BsRTNRb2hNelVTZVI3WW9menVmYnh3Q09vS0FmbjhPR0xjSGJXZTM2Rm92Y0RnWUFWR2hiOVlLV1hkVFFkaGtuS0ltV1MwUXhRYTdPWEI0anJFSU83WGZEM3piUFZ1eENiTzc0a0tpUXcyaUc0M21OOUxQT0V2OTlxRWNLQW1ibTVPQWRRTmthdGJGUThEL1pxZ2MvQnhuZmNjSUwyTXY0RjNBUzdyT1F5d2ZlNzZqZ1Rla1hQTzJYdzVTVEs4Y0dOWWNkbnhSbHhmSkRDVGNWMjh6V1JockRqQWxoMWFFQ2VVdHpuK0xVOHl0UlNOOGVMS29HN21VaUZ5VVU1S2hmSmoxWE9CQVhjREZITWo5MHlrWC93bkE4Z3pkQ3ovSDdiajc5VHN1VVd2cFduVTdpNEdBNVNyQU9Tbld1NzF2QUlrS3BiSE16Z1grV2t2NWxycG9obFVRQUhKY2c1UE5Oc1prQlh5T3pCRkE1YzNsYjZsdzB2ajc5bHA3L1FyZ0NSWFdFdjNiQUJMeTNVQi85KytOQWhaQndjMzMxNEEvQUE5MmFRNlRjaThIV2crM0FOL1BjTXhEd0E4UlFsQTdyd29Ta2RzRUNYT2ZnSURIeFFZYjJKNXpQMkJuaERmVDZOa05XSnhOV0FUTGxNT2ZrUkI1VGN1czFNVVRkM2Mxd1VKOFl4djhKM1NSL3k0blNzS0U4a1VreEJocXdzYzFhTERYQXo4RG50U1RNaW1udFlEdGdYMTAzaVlrQkIweXpnRWtETHE5QTZQaURzdDlOeWYzRVBQM0ZSY1JhSFdzL2pObkFjOTFlTjNmcXhiRkVTa09rb1VJRGI5Y1IxNjJQellBamtzUjFvd1VuMXJtZ0dPNjZXS1l4aHlqd0dQYWs3b3ZFUTdOZzJ1eE80TEdoNXJ1WlhlcWYwYzM2NTdBNVVpdXhYS1ZTOGx4SllhQXAxU0pISUxrYjN6RlJVaktLWENTTjZ0LzI4bkloc212UDRYY2JaRmZvUGhETVVOZ3NxQlduN2tDcFRiZm51ZHdPdkRQQUlxNHJhK3RnWTgwMlBUMitlZm9JUkFhMXZ3eGNGMjl3emJxMHFZNlhJSEhOSXZVM3JzckVpbm9adWpPQkRJR29iSEdnZWEramZudmFna2NnQ1JkSlptVUZRZDRWUkpNeWlMd0NQQVpKS2ZqL2hUV1ZORUJ3K3NGbVBoWll3K2ZCUDRyaGZuN05CSzVhQWVkdXAwZ1pTM1EwdVQ0REpLbkVmSk1uczh3ZVJoc3kyUy9NN0IvZ0V4TmVReXB0ZEZRY0owR3FLWW9sbEJwQW16MDFOeHhYUVFzN1ZrT0FqWU5OT2xzVTl5RGtHRnVyTUdFRE1uRktEc0w0MDVnUi9kWlE0SHp0eHBWTm1LaEEzTVZxNHMwSjFEdU5xNDVTQ1pySWNkaHpiU1lSSVFrZFAwaEVGZXdQWE5LbmJuclE4S2FTVXU5M2hndVJiSm42NDRoNmdKQTliazYyakRVNTk4UU9LYUxZYytLYnRCalU2REZSU1JWZTFmZ01VZkhyalQ1L2ViUy9BdllWMDNGVW9BbFlSdjJVRjE0NVRZckNTLzNTU25DbXZjQ2wrV2M4OUFzQnJKQ0ZYU2F3K2hUd0dhSitmTkV3N2NFV21ZRnhWN21oR0JRVVlkZGk2Mm9VbytqRmxsNHh3UHJkMEZKR0FMOVRuV1Q0a0NUN2lsMUs1WUdudmFoWnJKOTl5emdONEZodExKYUVUUGRNN1VUeE4wS1NlT3ZCSUM0cHF5T2JRRE1qZFRMTnZHdHdFMHB3cDVqMUVxSW5jdHBFYlM1S1N5ekNNa1ZlU1lFMStuMDZidEF6YUZXVEZ0dkpwL1ZSVGZqWU9kYk5qcnRBVDZPWk1xVk1vNittSUo4UmEyQ0Z3TTJsVmtSQnptRjBVNVFlcjQrZDJpK3hiV0VoZlpHdWlWeEF2QnlpanlOOXlDMUhYeEM0MmtJNFN3T3lOWXNBZzhBRjRhQzIxRUhyWWQ5Z1YweUFoZk43RG9FMktHRGdLVnRwZ2xJdUs0UWFDNWZneFRBS1dWa09kVDZuaEt3Q0plcUd5RDNOd1ZhUWEzSS9RUHFWb1htVy93TFlWbU9Oc3VobGxKZmhOQ3cwK1JwTEhEY29iY2d3RzlvV0JNa1pCeE1PSXM2eUVzL044VnBIenBaaFl6U1k5TW9KcEJFbUhVQ0JCT3BNRTd2QU5CbTdzWlhFQzVGSXg2K0taV2RBNEN0WnVVK2dKUlJTOFBxK3dJUzdoMU4yRU85NXowSGlXcUY1bWxzZ2tTd0tzQTdBc0Y2VTg0M3FXc1RiSmxGSFVMN2owR0lSS0ZodFpBUWtEM2tEbXBKZE1LS01DSHNHS0RJekgrK0Rhbk8wMjRGWVNmd1M4RFgzUmdhWFR1MlVlNUhJNEJ5SmJCWXllTXBNaDlIaTV1eFJOMkVOSGthSitvQmRTRUNlTmViTC91ZTVRZ3BLcFZsRm5WQU9ieE9INmlTZ2toMFIwcisrVHpDOHQ2ekVDckFsaW5lYzAwSFM4QVpVSFd0bSsrNGdldzMxOWNOWml6MzlWTmtKSnJjVGxFRk41cmRpMXBXM3plUVdneWg1ZWxXVi96dEpkMWI5ZWJMbDVGN0tLM3lqVHJnWHN4VG56M0VEQUlwK1BrKzljL2lRTE5yZlFWODJoblJLRGlCYnRCZy9xd1l5ako5bnJoRFlKdnhKZjRJUE54ZzRaZ3MxcWNhZnN5NmpOeHFLY3JJL1FMSlp4bXR3R1NqZFRYYjdaRTRzSmJHZGdnYjk0NWg1czMydzJKMTlWSmJabEdiZ2NrZGtWQmFKU0FVYUl2RlRwR1RVNXBkUndXYXM2MWVxeURGV0VJc2pVZlV2K3gwbGFaQmhJZ1RndWNNcUxtYXBkeTNWN21INWx0VXFISktWcmJMNXVqbnFpQWJiZUtDazdPUm82eE5RWEsvMlB5ZWhoVGJTVzJaUlczMmh4YzRQS0VRRUlMNUJzSU83QWR1Q0FSVW1nVkNtNzNHcVlsWEQ5Z3pBVC9oRkZiYzRYeVhSd01KVEVVa2xwN2w0YkRRalNPRTFYY0ZZUnlPMFk1SG5JSkVjZEtXcDdzWHllWHh5c1VVejkwMS9xK3JDc0pNb0ZsNmtvU2VJaThnQlRNOW1IZThub2FoRTdZUDJZVlNzN2hlNm1MZGpXYzZ2QTZNM3pFenBkeVhPTG12akJaRUVxU2RuekxzYVpYZzV5QU1TYjkvWW9jRE5UVy9VWnR3aHpRa0p2UHJ6MGJZaHBHakVmK0JLcW1qRW5oeUxuU2tuRUlPVG9hVjRidHRVYTdXUkJtNXp6dTVWMWg1TDV1UDh3a0w4eVo3aWp5dGMrbjN6N2ZyNEJOZFVSQytuTmpVd1BCV0VRa0RmaVV4S2JiSXp0RFRNR1RDeWdqNTU3QXVsNmNyT0hla1c0cGlkVHFmdkhZaVlmVDNlbkxQQXFRTnVmUHFadnc3SURKUks1dzhEU25KOTZBZWtFdFNsTG5yaUlLd3dXNUlsY2dSR3Q0NkhxRUsrNGV4OS8rVDhFckdkcExOb2ZtRXNDd1Z4TlFFSjZLVGxzTzBRSndvUnVqWnJWeURTSE9XejZSazlaMVlRKzZ0WEgzNldYMHVYOEhmbGs0L0pxZkZqODB0dXc1cERoU0t2dzBnZU45eUpJWGJMSkhIV2xXK1VSdmNpM05Uc3J0dUE3N1hJRXh6Q1FHcHFXN0JyNDFrRDFhNnRCRHNPMmNnSWNST202b0ZoTjhRd3BCY2hvVEJXbFZLWnlNTmVFUGxic2xLVVliQTVBdkFzL284ejlhNG45R2ZUN2xJUUpxN2sydnB1R0VpRThNZHpCOUVDdFhlcXNyaW9pekllVkhHNGExM0lVQmhLRUMxd3BVVGE3bTRSV0xDRGxOM294dUFwU2UwYk4xQm9wUXB5R2xJbllwR1hBM2M1aWswS1hlUXFscjdCczUxcEhJL0lVT0tkOW1GKzZhbzViWjJqWHNkL2Y4TjlIUXRxL1ZURHJ6akRsb1I5d1pHSDd3Q3NiNmd4NnN5Yk5tZEttVm8xcVlwQjJjK2FFamhERjhlNjRhQWhXaWJzMSt0bVhkM0dYVGFEeW1RMmtrc1lFK2thV3U5ZWJLRjg1QnUySDc5U2NyaXJ5REFjQno0K2hJQ1BOK2ZZVmpUTnNsR2lvRU1CU2llWWhOeisxdXFrWUoyS2d0ei8wNUZrdDNXQ0N4eXV5MVNudTR5ZDdEU2JRVmhnenNDb1NDSGxoUHpwYmNxZ1ZqRmlVaks2NWpBQ2RzZDZYSjFVeGRpN0RZSEgwQklYOCsxR2FrdnVDcktIdzg0blcyQi82WUZhOUxlOHlCU3pDVFU5ZHE0RGZpWGtleG10VkdtNzFFVFBtcnpXaXE0WHF2akE1UlI3QlR3dzFsYXpWRkdKdTFrMVhacHlvbk5wVnE4TXc0OGpldVc2QjdtVkpuZnBmSjBwc0hYb01vU2pEclF6bTUvWUl2QVROTVk2ZFZBazRxcjRGS0lsNmFnQ2U5R3RWRnpsdTdmY3YzOEZhNGZhaFozMmYzZUtmektNbHZIQnV3cnM4aS9qb1ExMTh4S2dVVVpsaE5iTzJBVDJJTDRuUUtQYVU3VTJEWDVlREpGMkhNanBBVjZwVXRGZW8wR3Zua2JtOWJZWEt4S2xZY1FvbkQvZ2pEdGFLSDBIVWdmajNOVHlETk5qazdhOVJpMThlNWtLNFVQcWNzUVdrYnVlVDJreHlQQS8xWlpZRjlSQnE3RkZrM3dEbVlISXJTMUp1TEZGUEhkWWtwZVJqdjVFSmZyYVJDM0lYcGtHL01DQlNoRGMxKytxNmR0S1FORitDVWs5eVNVNERNdGcvNlRqTUxFTGV0WGUyYWc4dlFINXo4UW9IWXJKTlRmc3ZMTlFqQ2hqWFY5alBmSFRXSUN0cGl1UW5JMjBxVEhudEVsZG1Ya1d2TmQ1aXBYRnpOVURrTzZJQTRPdEZJaUJMMi92QVhySWFrZ2xpSG9lUnFDejJlQk4vYVV4TEQ5YWtQcmFQeFJGZlRyWFEvVzl5dG0wcEliRjdWb1BleU5oRFpEdzVyTFdpd241clAvamd2RVBLelQ5WWVvZGlqcWROalRpdFFlQkZ5cFFHTFpOVldoU1lEWjBzam5JRldyUXA3TlNGczM2Y0xLQWppMTcvMXVvUEp2cHVMVXlxSWMwdlF0OWVEOWNxUTYxUVFuendXQmgzZW1Dc0puVDg0UDNPajJzRjhNTkVOREZ1T3ZYTFBjY21BYTlQd3VKZ1ZaTXRNaFNOaHpFOWRVcFJUUWVLZmcrbUhnQU5DckVzcWhFTENneWdodnY5Q0dqWGxjaWdTN0NoSUdma2VPRXV5NjdWN01kNjVvS05Id1ppU3o4d0Q5ZTcvKzNBd3BsOSswaFJhMW9PbitSd0hBU21CWTgyOHVVeTNPTUQxMmFjcjAySmtwcWx1MXEwN0cyMVhCSGFjYWZ5amhlaVE3VHhkZDhSempFaHlxQU9QTUZKdXI3SmlwdjhzNFhHZGp1QS9wbnhvYXZ2WUVIMVpTUzZKV3Y5cFFvcUduVmhkcUtKelRFSEpZVTloWDFFSTVzWk9hS0NlMk5LUGFqUGE5VDZaQXoyM0N6a1RTWTd0bDFoWmRYNG9GQ0dIb1RJUkQwdWRZZTc1MW0yM2lqZFJ2dnh1cG9mQ0dGTXJCbE9LVHZEYXRub3dUanVaU1pXZUc5Sjk4TS9EUkRyWUNiTGIxWHR6bXZxVUxBcFdrcmYrTGtUTDJINm5ST01mMnhDUmFTRHNvTlJuV1BFT0J2OUQyN1hlcUtaeGxBMWFicEMvcEJFMXZvTEFNekp1RzBIeFA2MktCRW04UlROTU5leXBDT1BvakVqWjhUc2MyWG9HOFRaRlFhVjhDU3lnR2JseHJXbk9ZZm5ZN250MlUwRE9xOUw0YzhCMisvK1FOVkZ2dHhSMGlzcVc1K3RzSVloOU9lTjlTNi9FNXR3RUFiMHJpNDJvMTNwdFc3cVVtVHI2M0lteTFORVZvZlRteHJBUnZKdE15QldtdUQxQStSVmRsKzNJeXlIWnI4ZVFvT2dKT1NYM0d6UUtieXhSVFVxTDdkQ0cxc3orSFY5d1g2c0xjSWtCeGwxMy95V002b0xnSGRYd3ZCTHE4NXZvdHlpanFVNnR2NldrcGlJWkZ0UXFlVTZ0ajNXRVVTOEd0clFWSU1hVzJXUkMrRDBXSUFHM0FWd0MvYnBQUTdUdHVRTkR6WFFMek5BWVF4SGYvSElUWElyZFFocXRYNEZPV1MwMXNoajZrbk4vbk9yRDVZaGRHbmEwZ1dweWkvK1FsU0g1SU84YnBTOENmcmh1c204VjRERENlUzVYOVdFeEJOTndTT0xLQkFyWjVmQ2NDQ0YvYmpyNFlkdExOQk42V0FrUlptcUxtZjZ2WHNTbkwwK1VOUFM4NHk2QlVBNlNNbXZBaHpYSzREbW53R3RYcElONE94WDA3Z3JDbjdUL1ppYm1lcUhQYlgyTytoN3NMYmV4WFd3N3M4WXE2eUdXRXNoNlNSbEJJbVpLZlNrSFk2VGFCOERKeXZtdlEzOXBzeHR0aS9IMFQ5TzBGenFjdnRPazBMWGNwazlSTXl5dVI4QmQwdHBxU3JaUFpwT3MvdVFmVi9wUEZsUUNrWE9Dd2paQUN2OTlCd3VSRkJTa2ZTOEZlZmFPNmNNRmh6eWdGTUhrODBnU25ITWp1ZWlSRjM4R3N6TnE1Vk5Iek9DVjZYbXdqenRDcFdnS3h3eWlzaS9PaGJjQi8wbUFSRHdOZlRabW5NVDhnWTVkUkVOWU03VmZyaVlZbk8ydHpTUlB0SVU3UWZSeWtKS0xBRDUyT2hOZENnRW5mdVhoWmg5d0xlOWhuZFZORWdlaTVKWnBOenBqdWF4dmhsMnBtRjExMlo5eEdTOFV3aWljUXF1MmNHa1ZGdWxFVDQyekNFdXpNbGQyVWNEWWhJNVFRTlo3d05nMDJEK2RSTFdnN3FEK3ZRWHBxaExweEV3Z3ZMTnh3OHUxRHo5SUg4dVd6YTRGcWxnZndJd1VPT3hsR0xEdjAvUDdFeVYzcnRzVzZEb0tlWjFtZXpqYkJJb1Q4Y2pJU3ZpczVZQ29MTEtEaWt0NktEcDNmRXFGU3orcEF4ekVDV3hyTVNYblNuWXhFTmthYmt2Q05ucWFueUxkNFFoV0VWN0kybjhlNkF5S0V2WHBJSUpaWWQyQzJ3WFpCMFA1S2d1Mld2SDNPd1hGZFhJeURMbW1vM28zTDAvZ1V3akhJMnRVWXJ6L1BSa3JQTGFUS1FZaWNzdkJNeXJoT3RlYUtlMzNzcU5mTGthNU0yK3F6bEpFS3g5OUFLTlV6dWxqQTF6ZEZ1aXZGU2JkR2lvekdrYVljZkwvYVZ2cVcrdVk0WDA5WmZHbCtTRk9yS0lVWkZEY29MVzRuMlFVS0dKYmNxZHlwMjVUWWJRZ3ZJbktiYVRpcng5RHorVzJnKzVxd3h1b0pjQnhDaGprV3FlUlVkbEdMeUQySFZ3aHhvaXB6MFZraWkxUStXeUNablBjaFJLajdrUXBmWm9iTzcrSkc4NHQ1ZGlBZVlndjl3N3lXSVRnYTNJc3prZG9kY1lxK3BWY1BRelNzMVY2dkV0Z2VjVllqSlZWcTBGOWdPWklGV1U2aElSY2w2aFYyK3JMdlBVVHhoYUhBalJHMWNjeERib012Um5qejU2dlZzak5DUG5zVFFuaFp0WWFpcWlCMU1KNUJhbmplalpSRi80MVRRSWVyVXRqQ0xTNmpidStscnM1dFhXS1ArdjZUVjlNNGY4UXIrNFhBVHFPZzY1Yk4rdzY2TnJNaUd0cm5MRlpyY1VFSzl1bzg0TVo2SGRWTEFSYkVvcFFuei9pYytJeGxCRUZQYzYycUc3RWRvRjZjb0VjUElUejZCeENVdjZCbTlUcElua2JCdVEvTGtNNUovMHdJZjFla2l2ajdWYm5Vb21DYjdPYXJVaG5xRW1ocEo5M0pxckFHQXV1S3ZoMEowMTR6Q25wM1JnNUhDQ1VhWGg3UXQ5U3NnSzhpVWJtTkE5bXI2eUU1VlNjTzkvbWxPb0taRDN5aWllSW1lZWxjbERhVnVld1NqYjdVeHNVWU8wdkZzeWpMaWs4OEY4QitMU0FjL0d0ZEI2M2hjak1pVi9ucmNLU1RWVGMybXAxMGY5VlQ3b3dBMThFVTJUbkEvM1V3S3RZdTYrRkRUZlNyRFNFYUdyNzBDZ0pLM3h5QVJaZ2I5eG5nVW9ZcHcxQ3FFMlk2MnBHSVZxWnJybTY4eFIzZ2NGUVNpUFJ3aWkwWktTb2hJZDBUa05ZQmd3MWtaU2I3cVhvU1A5dWxIQlE3MVJZcXZyQkI0RWszRFFtem45SG1QSkoyNGc2cnBnQmRUWm1lQS93OThKbE42WHdQcWJ6OTdrQTN6dXE2N0ZOTER0RXcydWc4WFhCREtmc2RqdlI3U0Uva3VWMEE5WktSQ244bkl4d1cwcjBNeWREckMrdzR0bGFYbnEwZTRTYzA3RGxiRlVwNWhJVTltK2xiR2lGOVM3L2FaTTJPMmVxYWhuVGxLcXVMdWxzdGhSTFZNSVAycEZyTHJ0VGhLRVMzYjdPZ1BncHNrMlAwdk5tT1kyVWt3M0xMTGo1YjJSRjgwdlNmWEVWQnVKRVU5aXk2ZnJWSE5WRkdMcTFMWlRKOVFDM0xrSzVjT0l6cU5lWHBvb1FReGhMTzdtSVVsLzBxZGlocEtJdkl3RThRZm43SVJrT3RqZk55TU0rNC9wT2hHKzBBQlMxSFV0alRNSlJtK3BhMlV0ajVES1RLZFdqWTgwM1VxRTRmSmN5Z0l4Vi9XSm1yRE51RTdRUWNtUFBGNkNNRC8wNlJnN0lMNGIwMDI5MS84aklYMVVsVGJpQWVJZXRvMThDNTlrUy8yUm1zaWVmVW5ReXBkMkZLWkk2Nm9mL1ovNUZURHV0U3BSeEh2ZjRFLzBtUEhlZ2lDNUVVRFhET1Q1R0RZbDNZeDNjWmo3QUV1K2NDRnJMdlAvbmhMdFlWVFZ0Rzdyd21DdTA4MEdLa3lUN3JhMGp0aUdJZ1JyVm1zcDlHbEdCM1RleVZJSDhOZW41c3pwV21qVzBCd3RZc0JxYitUay9oRjdkcjNBVWtXalF2WlYxUkszbVlWOFh0UzcyOXFjbCt0YTFZU0I2am1wMXl6Si93WTdhTnNDWEM3bHJoMFB5Vi9ZNTFQbzVCME9kQlhzMk1ETGtySFhRelhuSWR4MExHTmFnWXdMcUp5RUNsZy9VUmJHTmNnTlRpdEVyTmpXU3lEdFVrdEVLTjVMV1F1OTJIeTBRa3JEd1lVSHZDQ2gyZFRyVmZiVmE5U242TUZBd3FJcEdONGNaUWRzbVc1OXJhaXRUTXZGek5vVFRWZFViNzNhZnpzVHBTbUtQa0ZzQUU5NXBhN3gyclB5ZDAyS2UvR2treDd3OTR0ajZFdVhsQjRuUWJTRHhEcmJ2ZmZVNVdKZUNzZkh1OXNSZVJ2QmxEK2JkTG5NNnJOQmk3eVd1MU5sb2VScW4vc2lxeXZnQjVqRUh5bHk3T21KOWk4M3VTYnY0eERjYlJyM081TzBMcXFwU1FFTXhqQ0pPcXdNcmJtMkM0SkNPYjVLbHF3citDWkU3V0syamljdy9vY0JXbm8zUkIxRE8vNDhTcHV6YndsUDc3THYxM1BiUFlUdjUvWlBCOHhnQzlSVSt1RFFQY0hodmIxanBlMjFDL1VMa01OM2FUMXl0cWNXVXRHOHZPbmF3Yjdyb0FWcStOOVF2dUJNKzY4dnNqU0IrYmQ2V29tcjB4VUNoTW5EaXhwd3A2VjU2QXZkNGM1T2h6U3lsNks2enMxa1M1aVdyZ2xTN1FtZE8ycWs4K1c1cjNsek51WTFCTWFiMG01emZOMkljNkVPWnM1Vm15WHI5TmphZVVTQjVLK2xFKzNUZ3ZTVmoxMkdDZEttRSsxS0ZuaVp0NGZhc0xMY3VGV2tnNS8rVU1jMXU2TFo5eURxTmRoUm8xUitydTY5SXdpcUU4ekFQbU1kMTJOSm1sOFNoNzlqaEZsL0xLS0hrZWNrallhbVR0bFlaVHJxVWFjZEF5QWxKdHJtRExJRUxFZVNDdzdsMm56ZW1CRnF5SUNzSkF6TVB6bEhnMWNTa0cvdFZnYkFPT1ZXamcyNG9jTGM1VjZwajhRMGl1d1ZET0Q2QmF6MlB6L1hJaS9KMDN5N3JnNW5NVnBMZnJta2dHNXhLa2tQQmZuQXhlTS8rbEJOVnlMWVNvc1I4U0F2UG0wb01JSyt6S0xyYXJTeXF6OVpDdzNrQktncGZ2T0w1RElFMjVuWXBoQ01tbXU4cWxiaitMOEZOcTlaU3dmOThPYklLRUNjY2dvYitMdTV3UzdadmczSVdFK3J4czdQZC9JNm5NRHlIdEFHK2pXcXduVDZlMVBVOGYwcEY5cWlyaGZvUlVkSDBPVTlCOWc2UjNJbzE1ZGtJNEwzNlB2SUpralg0UFlWMytOVG4vSmFjUlg0YzA1TmpJYWZpeWExcTZCVko0ZEJPRSs5OXRKV0VUTVVrMVlqUFhTemtLNmZZajVKcGFuWlNHdTliUTkxam9hbnpPVHJISmlXZnkxMFJWOE5zaHpaY2ZSY0tjRitjNHFqRkp4MjBIekZqeXkrS2NpdFRkT0NCeDBKZmQvSTdSUThoYStNMUR3cTMvd1NtOCtYZXBLb2NWcmg3Z0dLckVsQ0U5cVU1U2paUUhMbnloam5JSUFXSEc1OHkvalIyYk5jUjBIWFN2alhPZ3NJY2JYejE4WWJtKzdnMUlpdkwxaEJWMDdlYno1SFcrVFRsc2huQndEdEIvcjNBdWhCRWkrNXdMTXFpSHpmbHFCRmcwcUdEZ3hGdVFyTE95ZStQdFNCcnhWS1NVK2hSVkdyOVZiZDlORFcvZit6S1NGanZXTGFpeVB1eGIzZDhxd0IzNitpakJmUy9uMEc4TUxaZVg5dlhkZWg2VHczMElJY3NzdituT3dqQVRmVitFdmJxSFU1THhDSlZQcDVWRHJQdjFCMGg2Z05VZjdWZHIrVmJkdjg4RHIxZTM0MjJKSGpLejFQVTREQ2dhQnJHTmk0ZGJuOHYzT0ExNUhjSjArNlppRk1zejRvdTNxaUNlUnFyaEpLOHRrU3cycnpUMlY3OStaWWlHa01QYUZSR1NhM0NqKy9zVVZRUW5VbVZRRHFyZi9Ia2tVVzZrRjZydDlMNjQwQ2tIc3dSdVFFcjJQVkhqUFhzZ1BXM1hkZlAvQ2FUNTFYY2k1dy82VGZLRXExZlhwMERTMWtneTBQSU1zczNhd1gyUGRLeVJ1a1hKYTZ4ck5CTTEyUzI3ZDdXT3MwU3VXZTNUU0QySTdSR2FkT1RDN0VjaHRVbkt2ZklEaEJiVTJWTnYzMmJoR3VBREx0TzNsT2pGY2d0U0grUWZOYnJwRFVST1VBVVhNbnU3Q3UxbGg2by83elpWSldkYXM1SzQ0eFplMTdzNkl5dGJqSDFJUFlpRGtkQmI1UEN0STN1NVFha3M2c01kbG1VVnhBOUxOSkVlU25SejYwY2lHVWNscXF4UEIvWTJCZkZyNTVmSDZnUCtFRUUxWCs5OHdaNmdlbGZXQzN0UVQ3Ty9JU0Ywei9MYlJSZHdwYmYyR2xhRG1nVHNtSmluaTVEUWNUMDN6YnF2WFl0UUdTS0hSK3hqR3VNaHBKYStiMVUzb0M3Rjc5VkgyY3E5c1dmeTlhNTIxTFM0UFpISE1BMEIzWHBGakdqWVgzZFRWL0RKZ2crM3BlaXBZYS8zaW1kTHp3bzdRalZJZjZMMCttcElaWnk3a0lhd2szdGw2WHBYbTBLOGp6a0ZZV1NyS2IzcENjb1BXWTlYdDNsY2lrU00wdVJRUFp6NHpLbGVRU3hXays1bUZWRFJXUlJENmlzZW9XRFNqSjZTNkYxdHVGNnVvVFFtOU56Ym9HdGNEZGRoZWNvSTNjdUp1UjRYMVNnQXNqY1NPdnlwNnc5WmNpR1FHUWozb0ZlL3NuZGxmYTJSY0RrS1ZFUFRQVUM1UGtENVFtSnpENlJVcm9YRS9BTzhFTlZvOTFWUUJmQU92YTkxdms2ZlV4S2ZhcUp2WisvcVhjUDUwUVdFeGcvVnBNQ2xhdG4yRkVSakJmR293eC9LcWlBMkNpUjFtYlgyNXNSblBoNGxDbTJVRXlEUlR4R0MwYTVxWFhobTRoNDV6WHNmVGFuZWhaVHZxWXhRYzl5QXRBTVQ5VWYrNUpxLzlCUkUvVFd3Q0hnOFFRRS9LQ0NvNENPWDcwNnNuMS82dmhnVnBBNWRuQ0JnakVFcTQ1N3VCQlVoeVYxamVtNUdaZ0orTHBGaHV5b0NDQmNUQW81Y212dWtSTTcvc3psWDJwN1VGam5DemlEd1BxcnNYYk1vcnVsWnFVSHJwNFRRbzI5SjBOc1BRbGpTZzBqd29WQkRPUlJkMDV6SmpwaFdBYjVsdjZ5UFZMYStGMkZkbFJQTlpLblJscjdZVXd5Wm00Z3Z1Y1M0c1VqYWZiSjRqMFdZZHFkS2p5MjZFOWRYcHM3YnRjSWxEMVVjWVdkdkpFbkl1N3FMZ1NzU05RMTZGOE9XTHdCcDl1dlRJTVlDMzNaSm1MRlQwamhjOFpQQTBjNXlpNUNRNTUyUllnbjNJTjJLeGlGa2xZL3I3L1lCR3lPY2lOaDk4R09xdFhybVh6YVZoeGRyYlF1dk9PWWd2UGlKaVNJeCt5SWhaNi9BSDBTSytxRFczWlFjdWh2cklkeUdEUkhxL3FIQTk1SDhqTlhkT2lvQW42SEszdTJ0cjhacnFLZ0h4Rm51d0tnZ1diSjNJSXpLS2U3dkJhUW8xRVZJNndOZnUzSVprcnRCU1UrdHRWVERGRlV4WElMVWZIZ0lxVVN6cmY0OWRocm1abWRKRFBWa2xFa3MrMnoxQSswRW1JRFVSNWlIVlA4cHE1RFhUL2pxQlNTNXlXTklmVGw2UHJObXprTWEyWnFpUzFwRmxrdHpDdFZtTHozcklaMlNPRXMzL3Y2T1RqMUZGY0U1aWxVczBUVTBJMUZ1enVUME1WVTJ4UkpTeFdoTkpCY2N0OWszMEpzRUFhTWZZVmRlbUdQenp6SlRLeldxTnBQamJNZWZJZDJZNXJrNWoxV0JyMVdqYUc3SmRhYjZsdk1kbjFUckxnL1BWWFpLck44bDBsVmN4cUU5eDR0SUE1MUxjcW9jeW9rN3ptR2VDOEJNcEdMWFJ4TGpub2lVUWZEdldlR1M2RjVTZCtQYk52K1JhOW94QytIRGw1d21LYnN2dFN5d0h3SHZkZVhCOG1qK2xkd3BXbFJmckRCQ1hJMnpWSU0vbWVoZVZVbklvb1RFdms5RUNHemVGSDllemNSdWh3ZFhTMlFRRmhJQW1YV2Nla3I5NTYxenJCeEFnR096c29zdUt6VnZlTllROEZFa0tuUi9qYkg2YUZlL3dnalhxZks0MnMrL05jNHBPdlAxUTBnSWN3WlN2TGFDMUE3OGc3NzU2a1JoVlhKWVVXZERZSDZpSHNUaENOQ2FkOHpFZDF1Zm1aQkZwTSt3Q0VtbXU0cHFSN1E0SjAxb2ZBM0hDM2wxYlZOL0xVT292ZmNwOXZMUG5CYXVMVGpmL0VJRTZSOVN4WFkrVXJtcG1OUENRMWF5WVMrOXQ5SjFOS0NIeUJOcXRWNEgzRjFyL3Y4ZmZlbTQwM1NrbEtzQUFBQUFTVVZPUks1Q1lJST0iOwogIGZ1bmN0aW9uIHJlY2lwZVNoZWV0KCkgewogICAgdmFyIHcgPSBudW0oInBpZy13IiksIGxvYWQgPSBudW0oInBpZy1wIikgfHwgMCwgdG90YWwgPSAwOwogICAgcGlncy5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7IHRvdGFsICs9IE1hdGgubWF4KDAsIHAucCk7IH0pOwogICAgdmFyIHRnID0gdyAqIGxvYWQgLyAxMDA7CiAgICB2YXIgdGl0bGUgPSBjdXJyZW50ID8gY3VycmVudC5uYW1lICsgKGRpcnR5ID8gIiAoYWRqdXN0ZWQpIiA6ICIiKSA6ICJDdXN0b20gbWl4IjsKICAgIHZhciByb3dzID0gcGlncy5tYXAoZnVuY3Rpb24gKHApIHsKICAgICAgdmFyIHNoYXJlID0gdG90YWwgPyBNYXRoLm1heCgwLCBwLnApIC8gdG90YWwgOiAwOwogICAgICByZXR1cm4gIjx0cj48dGQ+PGkgc3R5bGU9J2JhY2tncm91bmQ6IiArIGVzYyhwLmMpICsgIic+PC9pPiIgKyBlc2MocC5uIHx8ICJQaWdtZW50IikgKyAiPC90ZD48dGQgY2xhc3M9J2MnPiIgKyBlc2MocC5jLnRvVXBwZXJDYXNlKCkpICsgIjwvdGQ+PHRkIGNsYXNzPSdjJz4iICsgZXNjKHJhbExhYmVsKHAuYykpICsgIjwvdGQ+PHRkPiIgKyBmbXQocC5wLCAzKSArICI8L3RkPjx0ZD4iICsKICAgICAgICBmbXQoc2hhcmUgKiAxMDAsIDEpICsgIiU8L3RkPjx0ZD4iICsgKGlzRmluaXRlKHRnKSA\/IGZtdCh0ZyAqIHNoYXJlKSArICIgZyIgOiAi4oCTIikgKyAiPC90ZD48L3RyPiI7CiAgICB9KS5qb2luKCIiKTsKICAgIHZhciBkYXRlID0gbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcodW5kZWZpbmVkLCB7IHllYXI6ICJudW1lcmljIiwgbW9udGg6ICJsb25nIiwgZGF5OiAibnVtZXJpYyIgfSk7CiAgICByZXR1cm4gIjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9J3V0Zi04Jz48dGl0bGU+TW9sZHIgcmVjaXBlOiAiICsgZXNjKHRpdGxlKSArICI8L3RpdGxlPjxzdHlsZT4iICsKICAgICAgIip7Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OmV4YWN0O3ByaW50LWNvbG9yLWFkanVzdDpleGFjdH0iICsKICAgICAgImJvZHl7Zm9udDoxNHB4LzEuNDUgSW50ZXIsc3lzdGVtLXVpLEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzExMTtiYWNrZ3JvdW5kOiNmZmY7bWFyZ2luOjA7cGFkZGluZzozMnB4O21heC13aWR0aDo3NjBweH0iICsKICAgICAgImhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgIzExMTtwYWRkaW5nLWJvdHRvbToxMHB4O21hcmdpbi1ib3R0b206MjBweH0iICsKICAgICAgIi5sb2dve2ZvbnQ6NzAwIDI0cHggJ1NwYWNlIEdyb3Rlc2snLEFyaWFsLHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LS4wMmVtfS5sb2dvIGJ7YmFja2dyb3VuZDojYmJmZjAwO3BhZGRpbmc6MCA0cHh9IiArCiAgICAgICJoMXtmb250OjcwMCAyNnB4ICdTcGFjZSBHcm90ZXNrJyxBcmlhbCxzYW5zLXNlcmlmO21hcmdpbjowIDAgNHB4fS5tZXRhe2NvbG9yOiM1NTU7bWFyZ2luOjAgMCAxOHB4fSIgKwogICAgICAiLnRvcHtkaXNwbGF5OmZsZXg7Z2FwOjIwcHg7YWxpZ24taXRlbXM6c3RyZXRjaDttYXJnaW4tYm90dG9tOjIycHh9LnN3e3dpZHRoOjEyMHB4O21pbi1oZWlnaHQ6MTAwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JvcmRlcjoxcHggc29saWQgI2NjY30iICsKICAgICAgIi5mYWN0c3tmbGV4OjE7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxMHB4fS5mYWN0cyBkaXZ7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTBweCAxMnB4fSIgKwogICAgICAiLmZhY3RzIHNwYW57ZGlzcGxheTpibG9jaztmb250LXNpemU6MTFweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjA2ZW07Y29sb3I6IzY2Nn0uZmFjdHMgc3Ryb25ne2ZvbnQtc2l6ZToxOHB4fSIgKwogICAgICAidGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7bWFyZ2luLWJvdHRvbToyMnB4fXRoLHRke3RleHQtYWxpZ246bGVmdDtwYWRkaW5nOjlweCA4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZH0iICsKICAgICAgInRoe2ZvbnQtc2l6ZToxMXB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDZlbTtjb2xvcjojNjY2fXRkOm5vdCg6Zmlyc3QtY2hpbGQpLHRoOm5vdCg6Zmlyc3QtY2hpbGQpe3RleHQtYWxpZ246cmlnaHR9dGQuYyx0aC5je3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEycHh9c21hbGx7Y29sb3I6IzU1NX0iICsKICAgICAgInRmb290IHRke2ZvbnQtd2VpZ2h0OjcwMDtib3JkZXItYm90dG9tOjA7Ym9yZGVyLXRvcDoycHggc29saWQgIzExMX0iICsKICAgICAgIml7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDtib3JkZXItcmFkaXVzOjUwJTttYXJnaW4tcmlnaHQ6OHB4O3ZlcnRpY2FsLWFsaWduOi0xcHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKX0iICsKICAgICAgIi5ub3Rlc3tib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzoxMHB4IDEycHg7bWluLWhlaWdodDoxMTBweDtjb2xvcjojNjY2fSIgKwogICAgICAiZm9vdGVye21hcmdpbi10b3A6MjRweDtwYWRkaW5nLXRvcDoxMnB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7Zm9udC1zaXplOjExcHg7Y29sb3I6Izc3N31mb290ZXIgcHttYXJnaW46MCAwIDZweH1mb290ZXIgYntjb2xvcjojMTExO2ZvbnQtd2VpZ2h0OjYwMH0iICsKICAgICAgImZvb3RlciAuc2l0ZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6MTBweH1mb290ZXIgLnNpdGUgaW1ne2hlaWdodDoxOHB4fSIgKwogICAgICAiLmxvZ28gLnN1Yntmb250OjUwMCAxM3B4IEludGVyLHN5c3RlbS11aSxBcmlhbCxzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjA7Y29sb3I6IzU1NTttYXJnaW4tbGVmdDoxMnB4fS5ieXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6IzU1NX0uYnkgaW1ne2hlaWdodDoyNnB4fS5iYXJ7bWFyZ2luLWJvdHRvbToyMHB4fS5iYXIgYnV0dG9ue2ZvbnQ6NjAwIDE0cHggQXJpYWwsc2Fucy1zZXJpZjtwYWRkaW5nOjEwcHggMThweDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNiYmZmMDA7Y3Vyc29yOnBvaW50ZXJ9IiArCiAgICAgICJAbWVkaWEgcHJpbnR7Ym9keXtwYWRkaW5nOjB9LmJhcntkaXNwbGF5Om5vbmV9fTwvc3R5bGU+PC9oZWFkPjxib2R5PiIgKwogICAgICAiPGRpdiBjbGFzcz0nYmFyJz48YnV0dG9uIG9uY2xpY2s9J3dpbmRvdy5wcmludCgpJz5QcmludCAvIFNhdmUgYXMgUERGPC9idXR0b24+PC9kaXY+IiArCiAgICAgICI8aGVhZGVyPjxkaXYgY2xhc3M9J2xvZ28nPk1PTEQ8Yj5SPC9iPjxzcGFuIGNsYXNzPSdzdWInPkNvbG9yIHJlY2lwZTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSdieSc+YnkgPGltZyBzcmM9JyIgKyBBUktGWF9MT0dPX0RBUksgKyAiJyBhbHQ9J0FSS0ZYIFN0dWRpbyc+PC9kaXY+PC9oZWFkZXI+IiArCiAgICAgICI8aDE+IiArIGVzYyh0aXRsZSkgKyAiPC9oMT48cCBjbGFzcz0nbWV0YSc+IiArIGVzYyhjdXJyZW50ID8gY3VycmVudC5icmFuZCArICIgcGlnbWVudHMiIDogIkN1c3RvbSBwaWdtZW50cyIpICsgIiDCtyAiICsgZXNjKGRhdGUpICsgKGN1cnJlbnQgJiYgY3VycmVudC50YXJnZXQgJiYgIWRpcnR5ID8gIiDCtyBUYXJnZXQgY29sb3IgIiArIGVzYyhjdXJyZW50LnRhcmdldCkgOiAiIikgKyAiPC9wPiIgKwogICAgICAiPGRpdiBjbGFzcz0ndG9wJz48ZGl2IGNsYXNzPSdzdycgc3R5bGU9J2JhY2tncm91bmQ6IiArIGVzYygkKCJwaWctaGV4IikudGV4dENvbnRlbnQpICsgIic+PC9kaXY+PGRpdiBjbGFzcz0nZmFjdHMnPiIgKwogICAgICAiPGRpdj48c3Bhbj5CYXRjaCB3ZWlnaHQ8L3NwYW4+PHN0cm9uZz4iICsgKGlzRmluaXRlKHcpID8gZm10KHcpICsgIiBnIiA6ICLigJMiKSArICI8L3N0cm9uZz48L2Rpdj4iICsKICAgICAgIjxkaXY+PHNwYW4+UGlnbWVudCBsb2FkPC9zcGFuPjxzdHJvbmc+IiArIGZtdChsb2FkLCAyKSArICIlPC9zdHJvbmc+PC9kaXY+IiArCiAgICAgICI8ZGl2PjxzcGFuPlRvdGFsIHBpZ21lbnQ8L3NwYW4+PHN0cm9uZz4iICsgKGlzRmluaXRlKHRnKSA\/IGZtdCh0ZykgKyAiIGciIDogIuKAkyIpICsgIjwvc3Ryb25nPjwvZGl2PiIgKwogICAgICAiPGRpdj48c3Bhbj5NaXggY29sb3I8L3NwYW4+PHN0cm9uZz4iICsgZXNjKCQoInBpZy1oZXgiKS50ZXh0Q29udGVudCkgKyAiPC9zdHJvbmc+PGJyPjxzbWFsbD4iICsgZXNjKHJhbExhYmVsKCQoInBpZy1oZXgiKS50ZXh0Q29udGVudC50b0xvd2VyQ2FzZSgpKSkgKyAiPC9zbWFsbD48L2Rpdj48L2Rpdj48L2Rpdj4iICsKICAgICAgIjx0YWJsZT48dGhlYWQ+PHRyPjx0aD5QaWdtZW50PC90aD48dGggY2xhc3M9J2MnPkhleDwvdGg+PHRoIGNsYXNzPSdjJz5SQUw8L3RoPjx0aD5QYXJ0czwvdGg+PHRoPlNoYXJlPC90aD48dGg+R3JhbXM8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+IiArIHJvd3MgKyAiPC90Ym9keT4iICsKICAgICAgIjx0Zm9vdD48dHI+PHRkIGNvbHNwYW49JzMnPlRvdGFsPC90ZD48dGQ+IiArIGZtdCh0b3RhbCwgMykgKyAiPC90ZD48dGQ+MTAwJTwvdGQ+PHRkPiIgKyAoaXNGaW5pdGUodGcpID8gZm10KHRnKSArICIgZyIgOiAi4oCTIikgKyAiPC90ZD48L3RyPjwvdGZvb3Q+PC90YWJsZT4iICsKICAgICAgIjxkaXYgY2xhc3M9J25vdGVzJz5Ob3Rlczo8L2Rpdj4iICsKICAgICAgIjxmb290ZXI+PHA+VGhlIHN3YXRjaCwgaGV4IGFuZCBSQUwgdmFsdWVzIGFyZSBvbi1zY3JlZW4gYXBwcm94aW1hdGlvbnM7IGNoZWNrIFJBTCBjb2xvcnMgYWdhaW5zdCBhIHBoeXNpY2FsIFJBTCBmYW4gZGVjay4gQWx3YXlzIHRlc3QgYSBzbWFsbCBiYXRjaCBmaXJzdC48L3A+IiArCiAgICAgICI8cD5Gb3IgZmVlZGJhY2sgYW5kIHN1Z2dlc3Rpb25zLCBmZWVsIGZyZWUgdG8gc2VuZCBhbiBlbWFpbCB0byA8Yj5tb2xkckBhcmtmeC5ldTwvYj4uPC9wPiIgKwogICAgICAiPGRpdiBjbGFzcz0nc2l0ZSc+PGltZyBzcmM9JyIgKyBBUktGWF9MT0dPX0RBUksgKyAiJyBhbHQ9J0FSS0ZYIFN0dWRpbyc+PHNwYW4+TWFkZSB3aXRoIE1vbGRyIGJ5IEFSS0ZYIFN0dWRpbyDCtyA8Yj5hcmtmeC5ldTwvYj48L3NwYW4+PC9kaXY+PC9mb290ZXI+IiArCiAgICAgICI8L2JvZHk+PC9odG1sPiI7CiAgfQogICQoInBpZy1wcmludCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgewogICAgaWYgKHdpbmRvdy5Nb2xkckFwcCkgeyB0cnkgeyB3aW5kb3cuTW9sZHJBcHAucHJpbnRIdG1sKHJlY2lwZVNoZWV0KCksICJNb2xkciByZWNpcGUiKTsgcmV0dXJuOyB9IGNhdGNoIChlKSB7fSB9CiAgICB2YXIgd2luID0gbnVsbDsKICAgIHRyeSB7IHdpbiA9IHdpbmRvdy5vcGVuKCIiLCAiX2JsYW5rIik7IH0gY2F0Y2ggKGUpIHsgd2luID0gbnVsbDsgfQogICAgaWYgKHdpbiAmJiB3aW4uZG9jdW1lbnQpIHsKICAgICAgd2luLmRvY3VtZW50Lm9wZW4oKTsgd2luLmRvY3VtZW50LndyaXRlKHJlY2lwZVNoZWV0KCkpOyB3aW4uZG9jdW1lbnQuY2xvc2UoKTsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHRyeSB7IHdpbi5mb2N1cygpOyB3aW4ucHJpbnQoKTsgfSBjYXRjaCAoZSkge30gfSwgNDAwKTsKICAgIH0gZWxzZSB7CiAgICAgIC8vIFBvcHVwIGJsb2NrZWQ6IHByaW50IHRoZSBDb2xvciBNaXhlciBwYW5lbCBpdHNlbGYgKHN0eWxlZCBieSB0aGUgQG1lZGlhIHByaW50IHJ1bGVzKS4KICAgICAgdHJ5IHsgd2luZG93LnByaW50KCk7IH0gY2F0Y2ggKGUpIHt9CiAgICB9CiAgfSk7CgogIHZhciByb3dzQm94ID0gJCgicGlnLXJvd3MiKTsKICAvLyBSQUwgQ2xhc3NpYyBjb2xvcnMgd2l0aCBhcHByb3hpbWF0ZSBvbi1zY3JlZW4gaGV4IHZhbHVlczogImNvZGV8bmFtZXxoZXgiCiAgdmFyIFJBTCA9ICIxMDAwfEdyZWVuIGJlaWdlfEJFQkQ3RjsxMDAxfEJlaWdlfEMyQjA3ODsxMDAyfFNhbmQgeWVsbG93fEM2QTY2NDsxMDAzfFNpZ25hbCB5ZWxsb3d8RTVCRTAxOzEwMDR8R29sZGVuIHllbGxvd3xDREE0MzQ7MTAwNXxIb25leSB5ZWxsb3d8QTk4MzA3OzEwMDZ8TWFpemUgeWVsbG93fEU0QTAxMDsxMDA3fERhZmZvZGlsIHllbGxvd3xEQzlEMDA7MTAxMXxCcm93biBiZWlnZXw4QTY2NDI7MTAxMnxMZW1vbiB5ZWxsb3d8QzdCNDQ2OzEwMTN8T3lzdGVyIHdoaXRlfEVBRTZDQTsxMDE0fEl2b3J5fEUxQ0M0RjsxMDE1fExpZ2h0IGl2b3J5fEU2RDY5MDsxMDE2fFN1bGZ1ciB5ZWxsb3d8RURGRjIxOzEwMTd8U2FmZnJvbiB5ZWxsb3d8RjVEMDMzOzEwMTh8WmluYyB5ZWxsb3d8RjhGMzJCOzEwMTl8R3JleSBiZWlnZXw5RTk3NjQ7MTAyMHxPbGl2ZSB5ZWxsb3d8OTk5OTUwOzEwMjF8UmFwZSB5ZWxsb3d8RjNEQTBCOzEwMjN8VHJhZmZpYyB5ZWxsb3d8RkFEMjAxOzEwMjR8T2NocmUgeWVsbG93fEFFQTA0QjsxMDI2fEx1bWlub3VzIHllbGxvd3xGRkZGMDA7MTAyN3xDdXJyeXw5RDkxMDE7MTAyOHxNZWxvbiB5ZWxsb3d8RjRBOTAwOzEwMzJ8QnJvb20geWVsbG93fEQ2QUUwMTsxMDMzfERhaGxpYSB5ZWxsb3d8RjNBNTA1OzEwMzR8UGFzdGVsIHllbGxvd3xFRkE5NEE7MTAzNXxQZWFybCBiZWlnZXw2QTVENEQ7MTAzNnxQZWFybCBnb2xkfDcwNTMzNTsxMDM3fFN1biB5ZWxsb3d8RjM5RjE4OzIwMDB8WWVsbG93IG9yYW5nZXxFRDc2MEU7MjAwMXxSZWQgb3JhbmdlfEM5M0MyMDsyMDAyfFZlcm1pbGlvbnxDQjI4MjE7MjAwM3xQYXN0ZWwgb3JhbmdlfEZGNzUxNDsyMDA0fFB1cmUgb3JhbmdlfEY0NDYxMTsyMDA1fEx1bWlub3VzIG9yYW5nZXxGRjIzMDE7MjAwN3xMdW1pbm91cyBicmlnaHQgb3JhbmdlfEZGQTQyMDsyMDA4fEJyaWdodCByZWQgb3JhbmdlfEY3NUUyNTsyMDA5fFRyYWZmaWMgb3JhbmdlfEY1NDAyMTsyMDEwfFNpZ25hbCBvcmFuZ2V8RDg0QjIwOzIwMTF8RGVlcCBvcmFuZ2V8RUM3QzI2OzIwMTJ8U2FsbW9uIG9yYW5nZXxFNTUxMzc7MjAxM3xQZWFybCBvcmFuZ2V8QzM1ODMxOzMwMDB8RmxhbWUgcmVkfEFGMkIxRTszMDAxfFNpZ25hbCByZWR8QTUyMDE5OzMwMDJ8Q2FybWluZSByZWR8QTIyMzFEOzMwMDN8UnVieSByZWR8OUIxMTFFOzMwMDR8UHVycGxlIHJlZHw3NTE1MUU7MzAwNXxXaW5lIHJlZHw1RTIxMjk7MzAwN3xCbGFjayByZWR8NDEyMjI3OzMwMDl8T3hpZGUgcmVkfDY0MjQyNDszMDExfEJyb3duIHJlZHw3ODFGMTk7MzAxMnxCZWlnZSByZWR8QzE4NzZCOzMwMTN8VG9tYXRvIHJlZHxBMTIzMTI7MzAxNHxBbnRpcXVlIHBpbmt8RDM2RTcwOzMwMTV8TGlnaHQgcGlua3xFQTg5OUE7MzAxNnxDb3JhbCByZWR8QjMyODIxOzMwMTd8Um9zZXxFNjMyNDQ7MzAxOHxTdHJhd2JlcnJ5IHJlZHxENTMwMzI7MzAyMHxUcmFmZmljIHJlZHxDQzA2MDU7MzAyMnxTYWxtb24gcGlua3xEOTUwMzA7MzAyNHxMdW1pbm91cyByZWR8RjgwMDAwOzMwMjZ8THVtaW5vdXMgYnJpZ2h0IHJlZHxGRTAwMDA7MzAyN3xSYXNwYmVycnkgcmVkfEM1MUQzNDszMDI4fFB1cmUgcmVkfENCMzIzNDszMDMxfE9yaWVudCByZWR8QjMyNDI4OzMwMzJ8UGVhcmwgcnVieSByZWR8NzIxNDIyOzMwMzN8UGVhcmwgcGlua3xCNDRDNDM7NDAwMXxSZWQgbGlsYWN8NkQzRjVCOzQwMDJ8UmVkIHZpb2xldHw5MjJCM0U7NDAwM3xIZWF0aGVyIHZpb2xldHxERTRDOEE7NDAwNHxDbGFyZXQgdmlvbGV0fDY0MUMzNDs0MDA1fEJsdWUgbGlsYWN8NkM0Njc1OzQwMDZ8VHJhZmZpYyBwdXJwbGV8QTAzNDcyOzQwMDd8UHVycGxlIHZpb2xldHw0QTE5MkM7NDAwOHxTaWduYWwgdmlvbGV0fDkyNEU3RDs0MDA5fFBhc3RlbCB2aW9sZXR8QTE4NTk0OzQwMTB8VGVsZW1hZ2VudGF8Q0YzNDc2OzQwMTF8UGVhcmwgdmlvbGV0fDg2NzNBMTs0MDEyfFBlYXJsIGJsYWNrYmVycnl8NkM2ODc0OzUwMDB8VmlvbGV0IGJsdWV8MzU0RDczOzUwMDF8R3JlZW4gYmx1ZXwxRjM0Mzg7NTAwMnxVbHRyYW1hcmluZSBibHVlfDIwMjE0Rjs1MDAzfFNhcHBoaXJlIGJsdWV8MUQxRTMzOzUwMDR8QmxhY2sgYmx1ZXwxODE3MUM7NTAwNXxTaWduYWwgYmx1ZXwxRTI0NjA7NTAwN3xCcmlsbGlhbnQgYmx1ZXwzRTVGOEE7NTAwOHxHcmV5IGJsdWV8MjYyNTJEOzUwMDl8QXp1cmUgYmx1ZXwwMjU2Njk7NTAxMHxHZW50aWFuIGJsdWV8MEUyOTRCOzUwMTF8U3RlZWwgYmx1ZXwyMzFBMjQ7NTAxMnxMaWdodCBibHVlfDNCODNCRDs1MDEzfENvYmFsdCBibHVlfDFFMjEzRDs1MDE0fFBpZ2VvbiBibHVlfDYwNkU4Qzs1MDE1fFNreSBibHVlfDIyNzFCMzs1MDE3fFRyYWZmaWMgYmx1ZXwwNjM5NzE7NTAxOHxUdXJxdW9pc2UgYmx1ZXwzRjg4OEY7NTAxOXxDYXByaSBibHVlfDFCNTU4Mzs1MDIwfE9jZWFuIGJsdWV8MUQzMzRBOzUwMjF8V2F0ZXIgYmx1ZXwyNTZEN0I7NTAyMnxOaWdodCBibHVlfDI1Mjg1MDs1MDIzfERpc3RhbnQgYmx1ZXw0OTY3OEQ7NTAyNHxQYXN0ZWwgYmx1ZXw1RDlCOUI7NTAyNXxQZWFybCBnZW50aWFuIGJsdWV8MkE2NDc4OzUwMjZ8UGVhcmwgbmlnaHQgYmx1ZXwxMDJDNTQ7NjAwMHxQYXRpbmEgZ3JlZW58MzE2NjUwOzYwMDF8RW1lcmFsZCBncmVlbnwyODcyMzM7NjAwMnxMZWFmIGdyZWVufDJENTcyQzs2MDAzfE9saXZlIGdyZWVufDQyNDYzMjs2MDA0fEJsdWUgZ3JlZW58MUYzQTNEOzYwMDV8TW9zcyBncmVlbnwyRjQ1Mzg7NjAwNnxHcmV5IG9saXZlfDNFM0IzMjs2MDA3fEJvdHRsZSBncmVlbnwzNDNCMjk7NjAwOHxCcm93biBncmVlbnwzOTM1MkE7NjAwOXxGaXIgZ3JlZW58MzEzNzJCOzYwMTB8R3Jhc3MgZ3JlZW58MzU2ODJEOzYwMTF8UmVzZWRhIGdyZWVufDU4NzI0Njs2MDEyfEJsYWNrIGdyZWVufDM0M0U0MDs2MDEzfFJlZWQgZ3JlZW58NkM3MTU2OzYwMTR8WWVsbG93IG9saXZlfDQ3NDAyRTs2MDE1fEJsYWNrIG9saXZlfDNCM0MzNjs2MDE2fFR1cnF1b2lzZSBncmVlbnwxRTU5NDU7NjAxN3xNYXkgZ3JlZW58NEM5MTQxOzYwMTh8WWVsbG93IGdyZWVufDU3QTYzOTs2MDE5fFBhc3RlbCBncmVlbnxCREVDQjY7NjAyMHxDaHJvbWUgZ3JlZW58MkUzQTIzOzYwMjF8UGFsZSBncmVlbnw4OUFDNzY7NjAyMnxPbGl2ZSBkcmFifDI1MjIxQjs2MDI0fFRyYWZmaWMgZ3JlZW58MzA4NDQ2OzYwMjV8RmVybiBncmVlbnwzRDY0MkQ7NjAyNnxPcGFsIGdyZWVufDAxNUQ1Mjs2MDI3fExpZ2h0IGdyZWVufDg0QzNCRTs2MDI4fFBpbmUgZ3JlZW58MkM1NTQ1OzYwMjl8TWludCBncmVlbnwyMDYwM0Q7NjAzMnxTaWduYWwgZ3JlZW58MzE3RjQzOzYwMzN8TWludCB0dXJxdW9pc2V8NDk3RTc2OzYwMzR8UGFzdGVsIHR1cnF1b2lzZXw3RkI1QjU7NjAzNXxQZWFybCBncmVlbnwxQzU0MkQ7NjAzNnxQZWFybCBvcGFsIGdyZWVufDE5MzczNzs2MDM3fFB1cmUgZ3JlZW58MDA4RjM5OzYwMzh8THVtaW5vdXMgZ3JlZW58MDBCQjJEOzcwMDB8U3F1aXJyZWwgZ3JleXw3ODg1OEI7NzAwMXxTaWx2ZXIgZ3JleXw4QTk1OTc7NzAwMnxPbGl2ZSBncmV5fDdFN0I1Mjs3MDAzfE1vc3MgZ3JleXw2QzcwNTk7NzAwNHxTaWduYWwgZ3JleXw5Njk5OTI7NzAwNXxNb3VzZSBncmV5fDY0NkI2Mzs3MDA2fEJlaWdlIGdyZXl8NkQ2NTUyOzcwMDh8S2hha2kgZ3JleXw2QTVGMzE7NzAwOXxHcmVlbiBncmV5fDRENTY0NTs3MDEwfFRhcnBhdWxpbiBncmV5fDRDNTE0QTs3MDExfElyb24gZ3JleXw0MzRCNEQ7NzAxMnxCYXNhbHQgZ3JleXw0RTU3NTQ7NzAxM3xCcm93biBncmV5fDQ2NDUzMTs3MDE1fFNsYXRlIGdyZXl8NDM0NzUwOzcwMTZ8QW50aHJhY2l0ZSBncmV5fDI5MzEzMzs3MDIxfEJsYWNrIGdyZXl8MjMyODJCOzcwMjJ8VW1icmEgZ3JleXwzMzJGMkM7NzAyM3xDb25jcmV0ZSBncmV5fDY4NkM1RTs3MDI0fEdyYXBoaXRlIGdyZXl8NDc0QTUxOzcwMjZ8R3Jhbml0ZSBncmV5fDJGMzUzQjs3MDMwfFN0b25lIGdyZXl8OEI4QzdBOzcwMzF8Qmx1ZSBncmV5fDQ3NEI0RTs3MDMyfFBlYmJsZSBncmV5fEI4Qjc5OTs3MDMzfENlbWVudCBncmV5fDdEODQ3MTs3MDM0fFllbGxvdyBncmV5fDhGOEI2Njs3MDM1fExpZ2h0IGdyZXl8RDdEN0Q3OzcwMzZ8UGxhdGludW0gZ3JleXw3Rjc2Nzk7NzAzN3xEdXN0eSBncmV5fDdEN0Y3RDs3MDM4fEFnYXRlIGdyZXl8QjVCOEIxOzcwMzl8UXVhcnR6IGdyZXl8NkM2OTYwOzcwNDB8V2luZG93IGdyZXl8OURBMUFBOzcwNDJ8VHJhZmZpYyBncmV5IEF8OEQ5NDhEOzcwNDN8VHJhZmZpYyBncmV5IEJ8NEU1NDUyOzcwNDR8U2lsayBncmV5fENBQzRCMDs3MDQ1fFRlbGVncmV5IDF8OTA5MDkwOzcwNDZ8VGVsZWdyZXkgMnw4Mjg5OEY7NzA0N3xUZWxlZ3JleSA0fEQwRDBEMDs3MDQ4fFBlYXJsIG1vdXNlIGdyZXl8ODk4MTc2OzgwMDB8R3JlZW4gYnJvd258ODI2QzM0OzgwMDF8T2NocmUgYnJvd258OTU1RjIwOzgwMDJ8U2lnbmFsIGJyb3dufDZDM0IyQTs4MDAzfENsYXkgYnJvd258NzM0MjIyOzgwMDR8Q29wcGVyIGJyb3dufDhFNDAyQTs4MDA3fEZhd24gYnJvd258NTkzNTFGOzgwMDh8T2xpdmUgYnJvd258NkY0RjI4OzgwMTF8TnV0IGJyb3dufDVCM0EyOTs4MDEyfFJlZCBicm93bnw1OTIzMjE7ODAxNHxTZXBpYSBicm93bnwzODJDMUU7ODAxNXxDaGVzdG51dCBicm93bnw2MzNBMzQ7ODAxNnxNYWhvZ2FueSBicm93bnw0QzJGMjc7ODAxN3xDaG9jb2xhdGUgYnJvd258NDUzMjJFOzgwMTl8R3JleSBicm93bnw0MDNBM0E7ODAyMnxCbGFjayBicm93bnwyMTIxMjE7ODAyM3xPcmFuZ2UgYnJvd258QTY1RTJFOzgwMjR8QmVpZ2UgYnJvd258Nzk1NTNEOzgwMjV8UGFsZSBicm93bnw3NTVDNDg7ODAyOHxUZXJyYSBicm93bnw0RTNCMzE7ODAyOXxQZWFybCBjb3BwZXJ8NzYzQzI4OzkwMDF8Q3JlYW18RkRGNEUzOzkwMDJ8R3JleSB3aGl0ZXxFN0VCREE7OTAwM3xTaWduYWwgd2hpdGV8RjRGNEY0OzkwMDR8U2lnbmFsIGJsYWNrfDI4MjgyODs5MDA1fEpldCBibGFja3wwQTBBMEE7OTAwNnxXaGl0ZSBhbHVtaW5pdW18QTVBNUE1OzkwMDd8R3JleSBhbHVtaW5pdW18OEY4RjhGOzkwMTB8UHVyZSB3aGl0ZXxGRkZGRkY7OTAxMXxHcmFwaGl0ZSBibGFja3wxQzFDMUM7OTAxNnxUcmFmZmljIHdoaXRlfEY2RjZGNjs5MDE3fFRyYWZmaWMgYmxhY2t8MUUxRTFFOzkwMTh8UGFweXJ1cyB3aGl0ZXxEN0Q3RDc7OTAyMnxQZWFybCBsaWdodCBncmV5fDlDOUM5Qzs5MDIzfFBlYXJsIGRhcmsgZ3JleXw4MjgyODIiLnNwbGl0KCI7IikubWFwKGZ1bmN0aW9uIChzKSB7IHMgPSBzLnNwbGl0KCJ8Iik7IHJldHVybiB7IGNvZGU6IHNbMF0sIG5hbWU6IHNbMV0sIGhleDogIiMiICsgc1syXS50b0xvd2VyQ2FzZSgpIH07IH0pOwogIChmdW5jdGlvbiAoKSB7CiAgICB2YXIgZGwgPSAkKCJyYWwtbGlzdCIpOwogICAgUkFMLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgdmFyIG8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsgby52YWx1ZSA9IHIuY29kZTsgby5sYWJlbCA9IHIubmFtZTsgby50ZXh0Q29udGVudCA9IHIuY29kZSArICIgIiArIHIubmFtZTsgZGwuYXBwZW5kQ2hpbGQobyk7IH0pOwogIH0pKCk7CiAgZnVuY3Rpb24gbm9ybUhleCh2KSB7CiAgICB2ID0gU3RyaW5nKHYpLnRyaW0oKS5yZXBsYWNlKC9eIy8sICIiKTsKICAgIGlmICgvXlswLTlhLWZdezN9JC9pLnRlc3QodikpIHYgPSB2LnJlcGxhY2UoLy4vZywgIiQmJCYiKTsKICAgIHJldHVybiAvXlswLTlhLWZdezZ9JC9pLnRlc3QodikgPyAiIyIgKyB2LnRvTG93ZXJDYXNlKCkgOiBudWxsOwogIH0KICBmdW5jdGlvbiBmaW5kUmFsKGNvZGUpIHsKICAgIGNvZGUgPSBTdHJpbmcoY29kZSkucmVwbGFjZSgvW14wLTldL2csICIiKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUkFMLmxlbmd0aDsgaSsrKSBpZiAoUkFMW2ldLmNvZGUgPT09IGNvZGUpIHJldHVybiBSQUxbaV07CiAgICByZXR1cm4gbnVsbDsKICB9CiAgZnVuY3Rpb24gbmVhcmVzdFJhbChoZXgpIHsKICAgIHZhciBhID0gWzEsIDMsIDVdLm1hcChmdW5jdGlvbiAoaSkgeyByZXR1cm4gcGFyc2VJbnQoaGV4LnN1YnN0cihpLCAyKSwgMTYpOyB9KSwgYmVzdCA9IG51bGwsIGJkID0gSW5maW5pdHk7CiAgICBSQUwuZm9yRWFjaChmdW5jdGlvbiAocikgewogICAgICB2YXIgYiA9IFsxLCAzLCA1XS5tYXAoZnVuY3Rpb24gKGkpIHsgcmV0dXJuIHBhcnNlSW50KHIuaGV4LnN1YnN0cihpLCAyKSwgMTYpOyB9KTsKICAgICAgdmFyIHJtID0gKGFbMF0gKyBiWzBdKSAvIDIsIGRyID0gYVswXSAtIGJbMF0sIGRnID0gYVsxXSAtIGJbMV0sIGRiID0gYVsyXSAtIGJbMl07CiAgICAgIHZhciBkID0gKDIgKyBybSAvIDI1NikgKiBkciAqIGRyICsgNCAqIGRnICogZGcgKyAoMiArICgyNTUgLSBybSkgLyAyNTYpICogZGIgKiBkYjsgLy8gInJlZG1lYW4iIGNvbG9yIGRpc3RhbmNlCiAgICAgIGlmIChkIDwgYmQpIHsgYmQgPSBkOyBiZXN0ID0gcjsgfQogICAgfSk7CiAgICByZXR1cm4gYmVzdDsKICB9CiAgZnVuY3Rpb24gcmFsTGFiZWwoaGV4KSB7CiAgICB2YXIgciA9IG5lYXJlc3RSYWwoaGV4KTsKICAgIHJldHVybiAoci5oZXggPT09IGhleCA\/ICJSQUwgIiA6ICLiiYggUkFMICIpICsgci5jb2RlICsgIiAiICsgci5uYW1lOwogIH0KICBmdW5jdGlvbiBwaWdSb3cocGcsIGkpIHsKICAgIHZhciByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHJvdy5jbGFzc05hbWUgPSAicGlnLXJvdyI7CiAgICByb3cuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJjb2xvciIgYXJpYS1sYWJlbD0iUGlnbWVudCBjb2xvciI+PGlucHV0IHR5cGU9InRleHQiIGFyaWEtbGFiZWw9IlBpZ21lbnQgbmFtZSIgcGxhY2Vob2xkZXI9IlBpZ21lbnQgbmFtZSI+JyArCiAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImNvZGUiIGFyaWEtbGFiZWw9IkhleCBjb2RlIiBwbGFjZWhvbGRlcj0iI0hFWCIgbWF4bGVuZ3RoPSI3IiBzcGVsbGNoZWNrPSJmYWxzZSI+JyArCiAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImNvZGUiIGFyaWEtbGFiZWw9IlJBTCBjb2RlIiBwbGFjZWhvbGRlcj0iUkFMIiBsaXN0PSJyYWwtbGlzdCIgaW5wdXRtb2RlPSJudW1lcmljIiBtYXhsZW5ndGg9IjgiPicgKwogICAgICAnPGlucHV0IHR5cGU9Im51bWJlciIgbWluPSIwIiBzdGVwPSJhbnkiIGlucHV0bW9kZT0iZGVjaW1hbCIgYXJpYS1sYWJlbD0iUGFydHMiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iaWNvbi1idG4iIGFyaWEtbGFiZWw9IlJlbW92ZSBwaWdtZW50Ij7DlzwvYnV0dG9uPic7CiAgICB2YXIgZiA9IHJvdy5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dCIpLCBjb2xvciA9IGZbMF0sIG5hbWUgPSBmWzFdLCBoZXggPSBmWzJdLCByYWwgPSBmWzNdLCBwYXJ0cyA9IGZbNF07CiAgICBmdW5jdGlvbiBzeW5jQ29kZXMoc2tpcCkgewogICAgICBpZiAoc2tpcCAhPT0gaGV4KSB7IGhleC52YWx1ZSA9IHBnLmMudG9VcHBlckNhc2UoKTsgaGV4LmNsYXNzTGlzdC5yZW1vdmUoImJhZCIpOyB9CiAgICAgIGlmIChza2lwICE9PSByYWwpIHsgdmFyIHIgPSBuZWFyZXN0UmFsKHBnLmMpOyByYWwudmFsdWUgPSByLmNvZGU7IHJhbC50aXRsZSA9IHJhbExhYmVsKHBnLmMpOyByYWwuY2xhc3NMaXN0LnJlbW92ZSgiYmFkIik7IH0KICAgICAgaWYgKHNraXAgIT09IGNvbG9yKSBjb2xvci52YWx1ZSA9IHBnLmM7CiAgICB9CiAgICBuYW1lLnZhbHVlID0gcGcubjsgcGFydHMudmFsdWUgPSBwZy5wOyBzeW5jQ29kZXMoKTsKICAgIGNvbG9yLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgZnVuY3Rpb24gKCkgeyBwZy5jID0gY29sb3IudmFsdWU7IHN5bmNDb2Rlcyhjb2xvcik7IGVkaXRlZCgpOyBtaXgoKTsgfSk7CiAgICBoZXguYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIHZhciBoID0gbm9ybUhleChoZXgudmFsdWUpOwogICAgICBoZXguY2xhc3NMaXN0LnRvZ2dsZSgiYmFkIiwgIWggJiYgaGV4LnZhbHVlLnJlcGxhY2UoIiMiLCAiIikubGVuZ3RoID49IDYpOwogICAgICBpZiAoaCkgeyBwZy5jID0gaDsgc3luY0NvZGVzKGhleCk7IGVkaXRlZCgpOyBtaXgoKTsgfQogICAgfSk7CiAgICBoZXguYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIGZ1bmN0aW9uICgpIHsgc3luY0NvZGVzKCk7IH0pOwogICAgcmFsLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgZnVuY3Rpb24gKCkgewogICAgICB2YXIgciA9IGZpbmRSYWwocmFsLnZhbHVlKTsKICAgICAgcmFsLmNsYXNzTGlzdC50b2dnbGUoImJhZCIsICFyICYmIHJhbC52YWx1ZS5yZXBsYWNlKC9bXjAtOV0vZywgIiIpLmxlbmd0aCA+PSA0KTsKICAgICAgaWYgKHIpIHsgcGcuYyA9IHIuaGV4OyByYWwudGl0bGUgPSAiUkFMICIgKyByLmNvZGUgKyAiICIgKyByLm5hbWU7IHN5bmNDb2RlcyhyYWwpOyBlZGl0ZWQoKTsgbWl4KCk7IH0KICAgIH0pOwogICAgcmFsLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCBmdW5jdGlvbiAoKSB7IHN5bmNDb2RlcygpOyB9KTsKICAgIG5hbWUuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBmdW5jdGlvbiAoKSB7IHBnLm4gPSBuYW1lLnZhbHVlOyBlZGl0ZWQoKTsgbWl4KCk7IH0pOwogICAgcGFydHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBmdW5jdGlvbiAoKSB7IHBnLnAgPSBwYXJzZUZsb2F0KHBhcnRzLnZhbHVlKSB8fCAwOyBlZGl0ZWQoKTsgbWl4KCk7IH0pOwogICAgdmFyIHJtID0gcm93LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpOwogICAgcm0uZGlzYWJsZWQgPSBwaWdzLmxlbmd0aCA8IDI7CiAgICBybS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgcGlncy5zcGxpY2UoaSwgMSk7IGVkaXRlZCgpOyByZW5kZXJQaWdzKCk7IH0pOwogICAgcmV0dXJuIHJvdzsKICB9CiAgZnVuY3Rpb24gcmVuZGVyUGlncygpIHsKICAgIHJvd3NCb3guaW5uZXJIVE1MID0gIiI7CiAgICBwaWdzLmZvckVhY2goZnVuY3Rpb24gKHBnLCBpKSB7IHJvd3NCb3guYXBwZW5kQ2hpbGQocGlnUm93KHBnLCBpKSk7IH0pOwogICAgJCgicGlnLWFkZCIpLmRpc2FibGVkID0gcGlncy5sZW5ndGggPj0gNjsKICAgICQoInBpZy1hZGQiKS5zdHlsZS5kaXNwbGF5ID0gcGlncy5sZW5ndGggPj0gNiA\/ICJub25lIiA6ICIiOwogICAgbWl4KCk7CiAgfQogICQoInBpZy1hZGQiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKICAgIHBpZ3MucHVzaCh7IGM6ICIjZmZmZmZmIiwgbjogIlBpZ21lbnQgIiArIChwaWdzLmxlbmd0aCArIDEpLCBwOiAxIH0pOwogICAgZWRpdGVkKCk7CiAgICByZW5kZXJQaWdzKCk7CiAgICB2YXIgaW5wdXRzID0gcm93c0JveC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPSJ0ZXh0Il0nKTsKICAgIGlucHV0c1tpbnB1dHMubGVuZ3RoIC0gMV0uc2VsZWN0KCk7CiAgfSk7CiAgZnVuY3Rpb24gaGV4VG9MaW4oaCkgewogICAgcmV0dXJuIFsxLCAzLCA1XS5tYXAoZnVuY3Rpb24gKGkpIHsKICAgICAgdmFyIGMgPSBwYXJzZUludChoLnN1YnN0cihpLCAyKSwgMTYpIC8gMjU1OwogICAgICByZXR1cm4gYyA8PSAwLjA0MDQ1ID8gYyAvIDEyLjkyIDogTWF0aC5wb3coKGMgKyAwLjA1NSkgLyAxLjA1NSwgMi40KTsKICAgIH0pOwogIH0KICBmdW5jdGlvbiBsaW5Ub0hleChyZ2IpIHsKICAgIHJldHVybiAiIyIgKyByZ2IubWFwKGZ1bmN0aW9uIChjKSB7CiAgICAgIGMgPSBjIDw9IDAuMDAzMTMwOCA\/IGMgKiAxMi45MiA6IDEuMDU1ICogTWF0aC5wb3coYywgMSAvIDIuNCkgLSAwLjA1NTsKICAgICAgcmV0dXJuICgiMCIgKyBNYXRoLnJvdW5kKE1hdGgubWF4KDAsIE1hdGgubWluKDEsIGMpKSAqIDI1NSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7CiAgICB9KS5qb2luKCIiKTsKICB9CiAgZnVuY3Rpb24gbWl4KCkgewogICAgdmFyIHcgPSBudW0oInBpZy13IiksIGxvYWQgPSBudW0oInBpZy1wIikgfHwgMCwgdG90YWwgPSAwOwogICAgcGlncy5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7IHRvdGFsICs9IE1hdGgubWF4KDAsIHAucCk7IH0pOwogICAgdmFyIHRnID0gdyAqIGxvYWQgLyAxMDAsIHRib2R5ID0gJCgicGlnLXRib2R5Iik7CiAgICB0Ym9keS5pbm5lckhUTUwgPSAiIjsKICAgIC8vIFdlaWdodGVkIGdlb21ldHJpYyBtZWFuIGluIGxpbmVhciBsaWdodDogYSByb3VnaCBzdGFuZC1pbiBmb3Igc3VidHJhY3RpdmUgKHBhaW50LWxpa2UpIG1peGluZy4KICAgIHZhciBhY2MgPSBbMCwgMCwgMF07CiAgICBwaWdzLmZvckVhY2goZnVuY3Rpb24gKHApIHsKICAgICAgdmFyIHNoYXJlID0gdG90YWwgPyBNYXRoLm1heCgwLCBwLnApIC8gdG90YWwgOiAwOwogICAgICB2YXIgbGluID0gaGV4VG9MaW4ocC5jKTsKICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCAzOyBrKyspIGFjY1trXSArPSBzaGFyZSAqIE1hdGgubG9nKE1hdGgubWF4KGxpbltrXSwgMC4wMDIpKTsKICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKICAgICAgdHIuaW5uZXJIVE1MID0gJzx0ZD48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+PHNwYW4+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJudW0iPicgKyBmbXQoc2hhcmUgKiAxMDAsIDEpICsgJzwvdGQ+PHRkIGNsYXNzPSJudW0iPicgKyAoaXNGaW5pdGUodGcpID8gZm10KHRnICogc2hhcmUpICsgIiBnIiA6ICLigJMiKSArICc8L3RkPic7CiAgICAgIHRyLnF1ZXJ5U2VsZWN0b3IoIi5kb3QiKS5zdHlsZS5iYWNrZ3JvdW5kID0gcC5jOwogICAgICB0ci5jaGlsZHJlblswXS5sYXN0Q2hpbGQudGV4dENvbnRlbnQgPSBwLm4gfHwgIlBpZ21lbnQiOwogICAgICB2YXIgc3ViID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7IHN1Yi5jbGFzc05hbWUgPSAibWl4LWNvZGVzIjsgc3ViLnN0eWxlLm1hcmdpbiA9ICIycHggMCAwIDIwcHgiOwogICAgICBzdWIudGV4dENvbnRlbnQgPSBwLmMudG9VcHBlckNhc2UoKSArICIgwrcgIiArIHJhbExhYmVsKHAuYyk7CiAgICAgIHRyLmNoaWxkcmVuWzBdLmFwcGVuZENoaWxkKHN1Yik7CiAgICAgIHRib2R5LmFwcGVuZENoaWxkKHRyKTsKICAgIH0pOwogICAgdmFyIGhleCA9IHRvdGFsID8gbGluVG9IZXgoYWNjLm1hcChNYXRoLmV4cCkpIDogIiM4MDgwODAiOwogICAgJCgicGlnLXN3YXRjaCIpLnN0eWxlLmJhY2tncm91bmQgPSBoZXg7CiAgICAkKCJwaWctaGV4IikudGV4dENvbnRlbnQgPSBoZXgudG9VcHBlckNhc2UoKTsKICAgICQoInBpZy1jb2RlcyIpLmlubmVySFRNTCA9ICI8Yj5NaXg6PC9iPiAiICsgaGV4LnRvVXBwZXJDYXNlKCkgKyAiPGJyPiIgKyByYWxMYWJlbChoZXgpOwogICAgJCgicGlnLXRwIikudGV4dENvbnRlbnQgPSBmbXQobG9hZCwgMik7CiAgICAkKCJwaWctdGciKS50ZXh0Q29udGVudCA9IGlzRmluaXRlKHRnKSA\/IGZtdCh0ZykgKyAiIGciIDogIuKAkyI7CiAgfQogICQoInBpZy13IikuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBtaXgpOwogICQoInBpZy1wIikuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBmdW5jdGlvbiAoKSB7IGVkaXRlZCgpOyBtaXgoKTsgfSk7CiAgY2hpcHMoInBpZy1jaGlwcyIsICJwaWctcCIsIFswLjUsIDEsIDIsIDMsIDVdLCAiJSIsIGZ1bmN0aW9uICgpIHsgZWRpdGVkKCk7IG1peCgpOyB9KTsKICBmaWxsQnJhbmRzKCk7CiAgbG9hZFJlY2lwZShSRUNJUEVTWzNdKTsKICBmaWxsUmVjaXBlcygpOwp9KSgpOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==\";var s=atob(b),u=new Uint8Array(s.length);for(var i=0;i!==s.length;i++){u[i]=s.charCodeAt(i);}var f=document.createElement(\"iframe\");f.title=\"Moldr FX calculators\";f.style.cssText=\"width:100%;height:900px;border:0;display:block;background:#000;overflow:hidden\";f.setAttribute(\"scrolling\",\"no\");f.onload=function(){var d=f.contentDocument;function fit(){f.style.height=d.documentElement.offsetHeight+\"px\";}fit();if(window.ResizeObserver){new ResizeObserver(fit).observe(d.documentElement);}else{setInterval(fit,500);}};f.srcdoc=new TextDecoder(\"utf-8\").decode(u);document.getElementById(\"moldr-embed\").appendChild(f);})();<\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-145","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/arkfx.eu\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/arkfx.eu\/index.php?rest_route=\/wp\/v2\/pages\/145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arkfx.eu\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/arkfx.eu\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/arkfx.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arkfx.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=145"}],"version-history":[{"count":23,"href":"https:\/\/arkfx.eu\/index.php?rest_route=\/wp\/v2\/pages\/145\/revisions"}],"predecessor-version":[{"id":323,"href":"https:\/\/arkfx.eu\/index.php?rest_route=\/wp\/v2\/pages\/145\/revisions\/323"}],"wp:attachment":[{"href":"https:\/\/arkfx.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}