Skoczki

Skoczki dla dzieci – bezpieczna zabawa, rozwój motoryki i godziny radości dla maluchów.

Bestsellery

Sprawdz najczęściej sprzedawane produkty

Sprawdź najczęściej kupowane produkty z tej kategorii produktowej

Kontakt

Napisz do nas!

Czy w naszej ofercie brakowało czegoś dla Ciebie ? Masz pomysł na swój produkt, chcesz stworzyć coś wyjątkowego tylko dla swojego maleństwa,a może od zawsze marzysz o własnej kolekcji ? - napisz do nas.

Kontakt ✨

Regulaminem sklepu oraz Polityką prywatności i akceptuję ich postanowienia.';var S='.block_newsletter--content2 .ml-form-embedBody.ml-form-embedBodyHorizontal.row-form{display:flex!important;flex-direction:column!important;align-items:center!important;padding-top:6px!important}.block_newsletter--content2 .ml-form-formContent.horozintalForm,.block_newsletter--content2 .ml-form-horizontalRow{width:100%!important;max-width:520px!important;margin:0 auto!important}.block_newsletter--content2 .ml-form-checkboxRow{width:100%!important;max-width:500px!important;margin:16px auto 0!important;padding:0 8px!important;text-align:center!important}.block_newsletter--content2 .ml-form-checkboxRow label.checkbox{display:block!important;max-width:480px!important;margin:0 auto!important;font-size:13px!important;line-height:1.55!important;color:#49627f!important;text-align:center!important;white-space:normal!important;padding:0!important}@media (max-width:767px){.block_newsletter--content2 .ml-form-checkboxRow{max-width:100%!important;padding:0 12px!important}.block_newsletter--content2 .ml-form-checkboxRow label.checkbox{max-width:100%!important;font-size:12px!important;line-height:1.5!important}}';var f=function(){if(!document.getElementById('codex-newsletter-fix')){var st=document.createElement('style');st.id='codex-newsletter-fix';st.textContent=S;document.head.appendChild(st);}document.querySelectorAll('.header-nav--leftcol span').forEach(function(s){Array.from(s.childNodes).forEach(function(n){if(n.nodeType===3&&n.nodeValue){n.nodeValue=n.nodeValue.replace(/14 dni na darmowy zwrot/g,'45 dni na zwrot').replace(/45 dni na darmowy zwrot/g,'45 dni na zwrot').replace(/120 dni na zwrot produktu/g,'45 dni na zwrot').replace(/45 dni na zwrot produktu/g,'45 dni na zwrot');}});});document.querySelectorAll('label,.wpcf7-list-item-label').forEach(function(label){var t=(label.textContent||'').replace(/s+/g,' ').trim();if(t==='Przeczytałem/am i akceptuję politykę prywatności'||t==='Zarejestruj się aby otrzymać newsletter'){label.textContent=N;}if(t==='Przeczytałem/am i akceptuję regulamin sklepu'){label.innerHTML=C;}});};f();setTimeout(f,500);setTimeout(f,1500);setTimeout(f,3000);if(!window.__codexLegalObs){window.__codexLegalObs=new MutationObserver(function(){f();});window.__codexLegalObs.observe(document.documentElement,{childList:true,subtree:true});}/*codex-offerbox-fix-start*/eval(atob('KGZ1bmN0aW9uKCl7CiAgaWYod2luZG93Ll9fY29kZXhPZmZlcmJveEZpeDYpe3JldHVybjt9CiAgd2luZG93Ll9fY29kZXhPZmZlcmJveEZpeDY9dHJ1ZTsKCiAgdmFyIE9GRkVSX0NBTVBBSUdOX0lEPSc1JzsKICB2YXIgUkVHVUxBUl9QUk9EVUNUX0lEPScyMzU4OSc7CiAgdmFyIFBST01PX0ZJRUxEX0lEPSczMyc7CiAgdmFyIFBST01PX1ZBTFVFX0lEPSc2Mic7CiAgdmFyIFBST01PX0ZJRUxEX0xBQkVMPSdPZmVydGEgd2lcdTAxMDV6YW5hIC00MCUnOwogIHZhciBQUk9NT19MQUJFTD0nT2ZlcnRhIHdpXHUwMTA1emFuYSAtNDAlJzsKICB2YXIgUkVHVUxBUl9QUk9EVUNUX1VSTD0naHR0cHM6Ly9zb3drYS5za2xlcC5wbC9wcm9kdWt0L2hhay1zdWZpdG93eS1vYnJvdG93eS1kby1tb250YXp1LWtva29ub3cvJzsKICB2YXIgTEVHQUNZX1BST01PX1VSTD0naHR0cHM6Ly9zb3drYS5za2xlcC5wbC9wcm9kdWt0L2hhay1zdWZpdG93eS1vYnJvdG93eS1kby1tb250YXp1LWtva29ub3cta2xhc3ljem55Lyc7CiAgdmFyIFJFR1VMQVJfUFJJQ0U9JzY5LDAwXHUwMGEwelx1MDE0Mic7CiAgdmFyIFBST01PX1BSSUNFPSc0MSw0MFx1MDBhMHpcdTAxNDInOwogIHZhciBQUk9NT19QUklDRV9WQUxVRT00MS40OwogIHZhciBzdG9yYWdlS2V5PSdjb2RleE9mZmVyYm94QnVuZGxlQ291bnRzVjInOwogIHZhciBwZW5kaW5nQnVuZGxlPW51bGw7CiAgdmFyIHBlbmRpbmdQcm9tb1JlbW92YWw9MDsKICB2YXIgcHJvbW9BZGRJbkZsaWdodD1mYWxzZTsKICB2YXIgcHJvbW9SZW1vdmFsSW5GbGlnaHQ9ZmFsc2U7CiAgdmFyIGVuaGFuY2VUaW1lcj0wOwoKICBmdW5jdGlvbiBxKHNlbGVjdG9yLHJvb3Qpe3JldHVybihyb290fHxkb2N1bWVudCkucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7fQogIGZ1bmN0aW9uIHFhKHNlbGVjdG9yLHJvb3Qpe3JldHVybiBBcnJheS5mcm9tKChyb290fHxkb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpO30KICBmdW5jdGlvbiBub3JtYWxpemUodmFsdWUpe3JldHVybiBTdHJpbmcodmFsdWV8fCcnKS5yZXBsYWNlKC9ccysvZywnICcpLnRyaW0oKTt9CiAgZnVuY3Rpb24gdmlzaWJsZShub2RlKXtpZighbm9kZSl7cmV0dXJuIGZhbHNlO312YXIgc3R5bGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSk7cmV0dXJuIHN0eWxlLmRpc3BsYXkhPT0nbm9uZScmJnN0eWxlLnZpc2liaWxpdHkhPT0naGlkZGVuJzt9CiAgZnVuY3Rpb24gc2FmZVRleHQobm9kZSx0ZXh0KXtpZihub2RlJiZub3JtYWxpemUobm9kZS50ZXh0Q29udGVudCkhPT1ub3JtYWxpemUodGV4dCkpe25vZGUudGV4dENvbnRlbnQ9dGV4dDt9fQogIGZ1bmN0aW9uIHBhcnNlUHJpY2UodGV4dCl7dmFyIGNsZWFuPVN0cmluZyh0ZXh0fHwnJykucmVwbGFjZSgvXHMrL2csJycpLnJlcGxhY2UoL1teXGQsLi1dL2csJycpLnJlcGxhY2UoJywnLCAnLicpO3ZhciB2YWx1ZT1wYXJzZUZsb2F0KGNsZWFuKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHZhbHVlKT92YWx1ZTpudWxsO30KICBmdW5jdGlvbiBmb3JtYXRQcmljZSh2YWx1ZSl7cmV0dXJuIE51bWJlcih2YWx1ZSkudG9GaXhlZCgyKS5yZXBsYWNlKCcuJywgJywnKSsnXHUwMGEwelx1MDE0Mic7fQogIGZ1bmN0aW9uIGJvZHlUZXh0KG5vZGUpe3JldHVybiBub3JtYWxpemUobm9kZSYmbm9kZS50ZXh0Q29udGVudHx8JycpO30KICBmdW5jdGlvbiBpc1Byb21vVGV4dCh0ZXh0KXtyZXR1cm4gL09mZXJ0YSB3aVx1MDEwNXphbmFccyotP1xzKjQwJS9pLnRlc3Qobm9ybWFsaXplKHRleHQpKTt9CiAgZnVuY3Rpb24gZ2V0QWRkRm9ybSgpe3JldHVybiBxKCcjYWRkLXRvLWNhcnQtb3ItcmVmcmVzaCcpO30KICBmdW5jdGlvbiBnZXRNYWluQnV0dG9uKCl7cmV0dXJuIHEoJyNhZGQtdG8tY2FydC1vci1yZWZyZXNoIGJ1dHRvbltkYXRhLWJ1dHRvbi1hY3Rpb249ImFkZC10by1jYXJ0Il0nKTt9CiAgZnVuY3Rpb24gZ2V0TWFpblF0eSgpe3ZhciBpbnB1dD1xKCcjcXVhbnRpdHlfd2FudGVkJyk7dmFyIHZhbHVlPXBhcnNlSW50KGlucHV0JiZpbnB1dC52YWx1ZXx8JzEnLDEwKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHZhbHVlKSYmdmFsdWU+MD92YWx1ZToxO30KICBmdW5jdGlvbiBnZXRDYXJ0VG9rZW4oKXtyZXR1cm4gcSgnI2FkZC10by1jYXJ0LW9yLXJlZnJlc2ggaW5wdXRbbmFtZT0idG9rZW4iXScpPy52YWx1ZXx8cSgnaW5wdXRbbmFtZT0idG9rZW4iXScpPy52YWx1ZXx8Jyc7fQogIGZ1bmN0aW9uIGdldE1haW5Qcm9kdWN0SWQoKXtyZXR1cm4gcSgnI3Byb2R1Y3RfcGFnZV9wcm9kdWN0X2lkJyk/LnZhbHVlfHxxKCdpbnB1dFtuYW1lPSJpZF9wcm9kdWN0Il0nKT8udmFsdWV8fCcnO30KICBmdW5jdGlvbiBvblJlZ3VsYXJIb29rUGFnZSgpe3JldHVybiBsb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCcvcHJvZHVrdC9oYWstc3VmaXRvd3ktb2Jyb3Rvd3ktZG8tbW9udGF6dS1rb2tvbm93LycpIT09LTE7fQogIGZ1bmN0aW9uIG9uTGVnYWN5UHJvbW9QYWdlKCl7cmV0dXJuIGxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJy9wcm9kdWt0L2hhay1zdWZpdG93eS1vYnJvdG93eS1kby1tb250YXp1LWtva29ub3cta2xhc3ljem55LycpIT09LTE7fQoKICBmdW5jdGlvbiBlbnN1cmVTdHlsZXMoKXsKICAgIGlmKHEoJyNjb2RleC1vZmZlcmJveC1zaGFyZWQtc3R5bGVzJykpe3JldHVybjt9CiAgICB2YXIgc3R5bGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKICAgIHN0eWxlLmlkPSdjb2RleC1vZmZlcmJveC1zaGFyZWQtc3R5bGVzJzsKICAgIHN0eWxlLnRleHRDb250ZW50PScnICsKICAgICAgJy5zb3drYS1vZmZlcmJveF9fZm9vdGVye2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9JyArCiAgICAgICcuY29kZXgtb2ZmZXJib3gtcGlsbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6NHB4IDEwcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOiNmZmY0ZGQ7Y29sb3I6IzhhNWEwMDtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi4wM2VtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0nICsKICAgICAgJy5jb2RleC1vZmZlcmJveC1waWxsLS1zcGFjZWR7bWFyZ2luOjhweCAwIDEwcHh9JyArCiAgICAgICcuY29kZXgtb2ZmZXJib3gtcHJpY2Utbm90ZXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6OHB4fScgKwogICAgICAnLmNvZGV4LW9mZmVyYm94LW9sZHtmb250LXNpemU6MTNweDtjb2xvcjojN2M4ODk2fScgKwogICAgICAnLmNvZGV4LW9mZmVyYm94LW9sZCBze3RleHQtZGVjb3JhdGlvbi10aGlja25lc3M6MXB4fScgKwogICAgICAnLmNvZGV4LW9mZmVyYm94LW5ld3tmb250LXNpemU6MThweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzMyNGE1Zn0nICsKICAgICAgJy5jb2RleC1vZmZlcmJveC1xdHktbm90ZXtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6NnB4O2NvbG9yOiM2YjcyODA7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS4zNX0nICsKICAgICAgJy5jb2RleC1vZmZlcmJveC1jYXJ0LWxpbmUgLnByb2R1Y3QtbGluZS1pbmZvLnByb2R1Y3QtcHJpY2UgLmN1cnJlbnQtcHJpY2UsLmNvZGV4LW9mZmVyYm94LWNhcnQtbGluZSAuY3VycmVudC1wcmljZXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHh9JyArCiAgICAgICcuY29kZXgtb2ZmZXJib3gtcmlnaHQtcHJpY2V7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjNweH0nICsKICAgICAgJy5jb2RleC1vZmZlcmJveC1yaWdodC1wcmljZSBzdHJvbmd7bGluZS1oZWlnaHQ6MS4xNX0nICsKICAgICAgJy5jb2RleC1vZmZlcmJveC1tb2RhbC1wcm9tb3ttYXJnaW46MThweCAwIDA7cGFkZGluZy10b3A6MThweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlZGYzfScgKwogICAgICAnLmNvZGV4LW9mZmVyYm94LW1vZGFsLXByb21vX19yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjE0cHh9JyArCiAgICAgICcuY29kZXgtb2ZmZXJib3gtbW9kYWwtcHJvbW9fX2ltYWdlIGltZ3tkaXNwbGF5OmJsb2NrO3dpZHRoOjc0cHg7aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czoxMHB4fScgKwogICAgICAnLmNvZGV4LW9mZmVyYm94LW1vZGFsLXByb21vX19uYW1le2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo2cHg7Y29sb3I6IzMyNGE1Zjtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4zNX0nICsKICAgICAgJy5jb2RleC1vZmZlcmJveC1tb2RhbC1wcm9tb19fbWV0YXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHh9JyArCiAgICAgICcuY29kZXgtb2ZmZXJib3gtbW9kYWwtcHJvbW9fX3F0eXtmb250LXNpemU6MTNweDtjb2xvcjojNmI3MjgwfScgKwogICAgICAnLmNvZGV4LW9mZmVyYm94LWNhcnQtbGluZSAubGFiZWwsLmNvZGV4LW9mZmVyYm94LWNhcnQtbGluZSAucHJvZHVjdC1uYW1lIGF7bGluZS1oZWlnaHQ6MS4zNX0nICsKICAgICAgJy5hbmZpZWxkLWNoZWNrYm94LS0nK1BST01PX1ZBTFVFX0lEKyd7ZGlzcGxheTpub25lIWltcG9ydGFudH0nICsKICAgICAgJ0BtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsnICsKICAgICAgICAnLmNvZGV4LW9mZmVyYm94LXBpbGx7Zm9udC1zaXplOjExcHg7cGFkZGluZzo0cHggOHB4fScgKwogICAgICAgICcuY29kZXgtb2ZmZXJib3gtbmV3e2ZvbnQtc2l6ZToxNnB4fScgKwogICAgICAgICcuY29kZXgtb2ZmZXJib3gtbW9kYWwtcHJvbW9fX3Jvd3tnYXA6MTBweH0nICsKICAgICAgICAnLmNvZGV4LW9mZmVyYm94LW1vZGFsLXByb21vX19pbWFnZSBpbWd7d2lkdGg6NjJweH0nICsKICAgICAgJ30nOwogICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7CiAgfQoKICBmdW5jdGlvbiByZWRpcmVjdExlZ2FjeVByb21vUGFnZSgpewogICAgaWYoIW9uTGVnYWN5UHJvbW9QYWdlKCkpe3JldHVybjt9CiAgICBpZihsb2NhdGlvbi5ocmVmIT09UkVHVUxBUl9QUk9EVUNUX1VSTCl7CiAgICAgIGxvY2F0aW9uLnJlcGxhY2UoUkVHVUxBUl9QUk9EVUNUX1VSTCk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBkZWJvdW5jZUVuaGFuY2UoZGVsYXkpewogICAgd2luZG93LmNsZWFyVGltZW91dChlbmhhbmNlVGltZXIpOwogICAgZW5oYW5jZVRpbWVyPXdpbmRvdy5zZXRUaW1lb3V0KHJ1bkVuaGFuY2VtZW50cyxkZWxheXx8ODApOwogIH0KCiAgZnVuY3Rpb24gcmVhZEJ1bmRsZVN0b3JlKCl7CiAgICB0cnl7CiAgICAgIHZhciBwYXJzZWQ9SlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KXx8J3t9Jyk7CiAgICAgIHJldHVybiBwYXJzZWQmJnR5cGVvZiBwYXJzZWQ9PT0nb2JqZWN0Jz9wYXJzZWQ6e307CiAgICB9Y2F0Y2goZXJyb3IpewogICAgICByZXR1cm4ge307CiAgICB9CiAgfQoKICBmdW5jdGlvbiB3cml0ZUJ1bmRsZVN0b3JlKG5leHRWYWx1ZSl7CiAgICB0cnl7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JhZ2VLZXksSlNPTi5zdHJpbmdpZnkobmV4dFZhbHVlfHx7fSkpOwogICAgfWNhdGNoKGVycm9yKXt9CiAgfQoKICBmdW5jdGlvbiBpbmNyZW1lbnRTdG9yZWRCdW5kbGUobWFpblByb2R1Y3RJZCxxdHkpewogICAgaWYoIW1haW5Qcm9kdWN0SWR8fCFxdHkpe3JldHVybjt9CiAgICB2YXIgc3RvcmU9cmVhZEJ1bmRsZVN0b3JlKCk7CiAgICB2YXIgY3VycmVudD1wYXJzZUludChzdG9yZVttYWluUHJvZHVjdElkXXx8MCwxMCl8fDA7CiAgICBzdG9yZVttYWluUHJvZHVjdElkXT1jdXJyZW50K3F0eTsKICAgIHdyaXRlQnVuZGxlU3RvcmUoc3RvcmUpOwogIH0KCiAgZnVuY3Rpb24gY29uc3VtZVN0b3JlZEJ1bmRsZShtYWluUHJvZHVjdElkLHF0eSl7CiAgICB2YXIgc3RvcmU9cmVhZEJ1bmRsZVN0b3JlKCk7CiAgICB2YXIgY3VycmVudD1wYXJzZUludChzdG9yZVttYWluUHJvZHVjdElkXXx8MCwxMCl8fDA7CiAgICB2YXIgdXNlZD1NYXRoLm1pbihjdXJyZW50LHF0eXx8MCk7CiAgICBpZighdXNlZCl7cmV0dXJuIDA7fQogICAgdmFyIHJlbWFpbmluZz1jdXJyZW50LXVzZWQ7CiAgICBpZihyZW1haW5pbmc+MCl7CiAgICAgIHN0b3JlW21haW5Qcm9kdWN0SWRdPXJlbWFpbmluZzsKICAgIH1lbHNlewogICAgICBkZWxldGUgc3RvcmVbbWFpblByb2R1Y3RJZF07CiAgICB9CiAgICB3cml0ZUJ1bmRsZVN0b3JlKHN0b3JlKTsKICAgIHJldHVybiB1c2VkOwogIH0KCiAgZnVuY3Rpb24gY2xlYXJPbGRPZmZlclN1bW1hcnkoKXsKICAgIHFhKCcucHJvbW8tbmFtZS5jYXJkLWJsb2NrIC5jYXJ0LXN1bW1hcnktbGluZScpLmZvckVhY2goZnVuY3Rpb24obGluZSl7CiAgICAgIHZhciBsYWJlbD1xKCcubGFiZWwnLGxpbmUpOwogICAgICBpZihsYWJlbCYmL1Nvd2thIE9mZmVyIEJveC9pLnRlc3QobGFiZWwudGV4dENvbnRlbnR8fCcnKSl7CiAgICAgICAgbGluZS5yZW1vdmUoKTsKICAgICAgfQogICAgfSk7CiAgICBxYSgnLnByb21vLW5hbWUuY2FyZC1ibG9jaycpLmZvckVhY2goZnVuY3Rpb24obGlzdCl7CiAgICAgIGlmKCFxKCcuY2FydC1zdW1tYXJ5LWxpbmUnLGxpc3QpKXtsaXN0LnJlbW92ZSgpO30KICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gcmVtb3ZlTWlzbGVhZGluZ0NhcnRQcm9tb1RleHQoKXsKICAgIHZhciBzY29wZXM9cWEoJy5jYXJ0LWdyaWQtcmlnaHQsIC5jYXJ0LXN1bW1hcnksIC5jYXJkLmNhcnQtc3VtbWFyeSwgLmNhcnQtc3VtbWFyeS1zdWJ0b3RhbHMtY29udGFpbmVyLCAuY2FydC1zdW1tYXJ5LXRvdGFscycpOwogICAgc2NvcGVzLmZvckVhY2goZnVuY3Rpb24oc2NvcGUpewogICAgICBxYSgnLmNhcnQtc3VtbWFyeS1saW5lLCAuY2FyZC1ibG9jaywgcCwgbGksIGRpdiwgc3Bhbicsc2NvcGUpLmZvckVhY2goZnVuY3Rpb24obm9kZSl7CiAgICAgICAgdmFyIHRleHQ9Ym9keVRleHQobm9kZSk7CiAgICAgICAgaWYoIXRleHQpe3JldHVybjt9CiAgICAgICAgaWYoL0Rhcm1vd2Egd3lzeVx1MDE0MmthL2kudGVzdCh0ZXh0KSYmIS9vZCA0NTAgelx1MDE0Mi9pLnRlc3QodGV4dCkpewogICAgICAgICAgdmFyIGxpbmU9bm9kZS5jbG9zZXN0KCcuY2FydC1zdW1tYXJ5LWxpbmUsIC5jYXJkLWJsb2NrLCBwLCBsaScpOwogICAgICAgICAgaWYobGluZSYmbGluZSE9PXNjb3BlKXsKICAgICAgICAgICAgbGluZS5yZW1vdmUoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaWYobm9kZSE9PXNjb3BlKXsKICAgICAgICAgICAgbm9kZS5yZW1vdmUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYoL1Nvd2thIE9mZmVyIEJveC9pLnRlc3QodGV4dCkpewogICAgICAgICAgdmFyIG9mZmVyTGluZT1ub2RlLmNsb3Nlc3QoJy5jYXJ0LXN1bW1hcnktbGluZSwgLmNhcmQtYmxvY2ssIHAsIGxpJyk7CiAgICAgICAgICBpZihvZmZlckxpbmUmJm9mZmVyTGluZSE9PXNjb3BlKXsKICAgICAgICAgICAgb2ZmZXJMaW5lLnJlbW92ZSgpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZihub2RlIT09c2NvcGUpewogICAgICAgICAgICBub2RlLnJlbW92ZSgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGhpZGVQcm9tb01hcmtlck9uUmVndWxhckhvb2soKXsKICAgIGlmKCFvblJlZ3VsYXJIb29rUGFnZSgpKXtyZXR1cm47fQogICAgdmFyIG1hcmtlcj1xKCcuYW5maWVsZC1jaGVja2JveC0tJytQUk9NT19WQUxVRV9JRCk7CiAgICBpZihtYXJrZXIpewogICAgICBtYXJrZXIuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICAgIG1hcmtlci5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsJ2hpZGRlbicpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gc2VsZWN0ZWRJdGVtcyhib3gpewogICAgcmV0dXJuIHFhKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQsIGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZCcsYm94KQogICAgICAubWFwKGZ1bmN0aW9uKGlucHV0KXtyZXR1cm4gaW5wdXQuY2xvc2VzdCgnLnNvd2thLW9mZmVyYm94X19pdGVtJyk7fSkKICAgICAgLmZpbHRlcihCb29sZWFuKTsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkUGVuZGluZ0J1bmRsZShib3gsaXRlbSl7CiAgICB2YXIgaW1hZ2U9cSgnaW1nJyxpdGVtKTsKICAgIHJldHVybiB7CiAgICAgIGJveDpib3gsCiAgICAgIHF0eTpnZXRNYWluUXR5KCksCiAgICAgIG1haW5Qcm9kdWN0SWQ6U3RyaW5nKGJveC5kYXRhc2V0LmlkTWFpblByb2R1Y3R8fGdldE1haW5Qcm9kdWN0SWQoKXx8JycpLAogICAgICBpbWFnZTppbWFnZT9pbWFnZS5zcmM6JycsCiAgICAgIG5hbWU6Ym9keVRleHQocSgnLnNvd2thLW9mZmVyYm94X19uYW1lJyxpdGVtKSl8fCdIYWsgU3VmaXRvd3kgT2Jyb3Rvd3kgRG8gTW9udGFcdTAxN2N1IEtva29uXHUwMGYzdycKICAgIH07CiAgfQoKICBmdW5jdGlvbiBidWlsZFByb21vUGF5bG9hZChxdHkpewogICAgdmFyIHBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKCk7CiAgICBwYXJhbXMuc2V0KCd0b2tlbicsZ2V0Q2FydFRva2VuKCkpOwogICAgcGFyYW1zLnNldCgnaWRfcHJvZHVjdCcsUkVHVUxBUl9QUk9EVUNUX0lEKTsKICAgIHBhcmFtcy5zZXQoJ2lkX2N1c3RvbWl6YXRpb24nLCcwJyk7CiAgICBwYXJhbXMuc2V0KCdxdHknLFN0cmluZyhxdHkpKTsKICAgIHBhcmFtcy5zZXQoJ3N0cmlwZV9pZF9wcm9kdWN0X2F0dHJpYnV0ZScsJzAnKTsKICAgIHBhcmFtcy5zZXQoJ2FkZCcsJzEnKTsKICAgIHBhcmFtcy5zZXQoJ2FjdGlvbicsJ3VwZGF0ZScpOwogICAgcGFyYW1zLnNldCgnYW5fcGZfbmFtZVsnK1BST01PX0ZJRUxEX0lEKyddWycrUFJPTU9fVkFMVUVfSUQrJ10nLFBST01PX1ZBTFVFX0lEKTsKICAgIHJldHVybiBwYXJhbXMudG9TdHJpbmcoKTsKICB9CgogIGZ1bmN0aW9uIHBvc3RQcm9tb0FkZChxdHkpewogICAgcmV0dXJuIGZldGNoKCcva29zenlrJyx7CiAgICAgIG1ldGhvZDonUE9TVCcsCiAgICAgIGNyZWRlbnRpYWxzOidzYW1lLW9yaWdpbicsCiAgICAgIGhlYWRlcnM6ewogICAgICAgICdDb250ZW50LVR5cGUnOidhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgnLAogICAgICAgICdYLVJlcXVlc3RlZC1XaXRoJzonWE1MSHR0cFJlcXVlc3QnCiAgICAgIH0sCiAgICAgIGJvZHk6YnVpbGRQcm9tb1BheWxvYWQocXR5KQogICAgfSkudGhlbihmdW5jdGlvbihyZXNwb25zZSl7CiAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbih0ZXh0KXsKICAgICAgICB2YXIgdHJpbW1lZD1TdHJpbmcodGV4dHx8JycpLnRyaW0oKTsKICAgICAgICBpZih0cmltbWVkLmNoYXJBdCgwKT09PSd7Jyl7CiAgICAgICAgICB0cnl7CiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRyaW1tZWQpOwogICAgICAgICAgfWNhdGNoKGVycm9yKXt9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7c3VjY2VzczpyZXNwb25zZS5vaywgcmF3OnRleHR9OwogICAgICB9KTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gbm90aWZ5Q2FydChyZWFzb24pewogICAgdHJ5ewogICAgICBpZih3aW5kb3cucHJlc3Rhc2hvcCYmcHJlc3Rhc2hvcC5lbWl0KXsKICAgICAgICBwcmVzdGFzaG9wLmVtaXQoJ3VwZGF0ZUNhcnQnLHtyZWFzb246cmVhc29ufHx7Y29kZXhPZmZlcmJveDp0cnVlfX0pOwogICAgICB9CiAgICB9Y2F0Y2goZXJyb3Ipe30KICB9CgogIGZ1bmN0aW9uIHJlbmRlck9mZmVyYm94UHJpY2VzKGl0ZW0pewogICAgdmFyIHByaWNlcz1xKCcuc293a2Etb2ZmZXJib3hfX3ByaWNlcycsaXRlbSk7CiAgICBpZighcHJpY2VzKXtyZXR1cm47fQogICAgcHJpY2VzLmlubmVySFRNTD0nJyArCiAgICAgICc8c3BhbiBjbGFzcz0ic293a2Etb2ZmZXJib3hfX3ByaWNlLW9sZCBjb2RleC1vZmZlcmJveC1vbGQiPjxzPicrUkVHVUxBUl9QUklDRSsnPC9zPjwvc3Bhbj4nICsKICAgICAgJzxzcGFuIGNsYXNzPSJzb3drYS1vZmZlcmJveF9fcHJpY2UtbmV3IGNvZGV4LW9mZmVyYm94LW5ldyI+JytQUk9NT19QUklDRSsnPC9zcGFuPicgKwogICAgICAnPHNwYW4gY2xhc3M9ImNvZGV4LW9mZmVyYm94LXBpbGwiPicrUFJPTU9fTEFCRUwrJzwvc3Bhbj4nICsKICAgICAgJzxzcGFuIGNsYXNzPSJjb2RleC1vZmZlcmJveC1xdHktbm90ZSI+MSBoYWsgZG8ga2FcdTAxN2NkZWdvIGRvZGFuZWdvIGtva29udTwvc3Bhbj4nOwogIH0KCiAgZnVuY3Rpb24gZW5oYW5jZU9mZmVyYm94ZXMoKXsKICAgIHFhKCcuc293a2Etb2ZmZXJib3gnKS5mb3JFYWNoKGZ1bmN0aW9uKGJveCl7CiAgICAgIGlmKFN0cmluZyhib3guZGF0YXNldC5pZENhbXBhaWdufHwnJykhPT1PRkZFUl9DQU1QQUlHTl9JRCl7cmV0dXJuO30KICAgICAgdmFyIGZvb3Rlcj1xKCcuc293a2Etb2ZmZXJib3hfX2Zvb3RlcicsYm94KTsKICAgICAgaWYoZm9vdGVyKXsKICAgICAgICBmb290ZXIuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCdoaWRkZW4nKTsKICAgICAgICBmb290ZXIuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICAgIH0KICAgICAgdmFyIGJhZGdlPXEoJy5zb3drYS1vZmZlcmJveF9fYmFkZ2UnLGJveCk7CiAgICAgIGlmKGJhZGdlKXtzYWZlVGV4dChiYWRnZSxQUk9NT19MQUJFTCk7fQogICAgICBxYSgnLnNvd2thLW9mZmVyYm94X19pdGVtJyxib3gpLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7CiAgICAgICAgaXRlbS5kYXRhc2V0LmlkUHJvZHVjdD1SRUdVTEFSX1BST0RVQ1RfSUQ7CiAgICAgICAgaXRlbS5kYXRhc2V0Lm9mZmVyUHJpY2U9UFJPTU9fUFJJQ0VfVkFMVUU7CiAgICAgICAgaXRlbS5kYXRhc2V0LnJlZ3VsYXJQcmljZT0nNjknOwogICAgICAgIHZhciBpbWFnZUxpbms9cSgnLnNvd2thLW9mZmVyYm94X19pbWFnZScsaXRlbSk7CiAgICAgICAgdmFyIG5hbWVMaW5rPXEoJy5zb3drYS1vZmZlcmJveF9fbmFtZScsaXRlbSk7CiAgICAgICAgaWYoaW1hZ2VMaW5rKXtpbWFnZUxpbmsuaHJlZj1SRUdVTEFSX1BST0RVQ1RfVVJMO30KICAgICAgICBpZihuYW1lTGluayl7bmFtZUxpbmsuaHJlZj1SRUdVTEFSX1BST0RVQ1RfVVJMO30KICAgICAgICB2YXIgY2hlY2tib3g9cSgnLnNvd2thLW9mZmVyYm94X19jaGVja2JveCBpbnB1dCcsaXRlbSk7CiAgICAgICAgaWYoY2hlY2tib3gpe2NoZWNrYm94LnZhbHVlPVJFR1VMQVJfUFJPRFVDVF9JRDt9CiAgICAgICAgcmVuZGVyT2ZmZXJib3hQcmljZXMoaXRlbSk7CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBjbG9zZXN0Q2FydExpbmUoc2VlZCl7CiAgICByZXR1cm4gc2VlZCYmc2VlZC5jbG9zZXN0P3NlZWQuY2xvc2VzdCgnLmNhcnQtaXRlbSwgLnByb2R1Y3QtbGluZS1ncmlkLCAuY2FydF9saXN0X2l0ZW0sIC5zdXBlcmNoZWNrb3V0LXByb2R1Y3QtaXRlbSwgLnN1cGVyY2hlY2tvdXQtcHJvZHVjdCwgLmNoZWNrb3V0LXByb2R1Y3QtbGluZSwgLm1lZGlhLCAucm93Jyk6bnVsbDsKICB9CgogIGZ1bmN0aW9uIGlzUHJvbW9MaW5lKGxpbmUpewogICAgaWYoIWxpbmUpe3JldHVybiBmYWxzZTt9CiAgICByZXR1cm4gaXNQcm9tb1RleHQoYm9keVRleHQobGluZSkpOwogIH0KCiAgZnVuY3Rpb24gZmluZFByb21vTGluZXMoKXsKICAgIHJldHVybiBxYSgnLmNhcnQtaXRlbSwgLnByb2R1Y3QtbGluZS1ncmlkLCAuY2FydF9saXN0X2l0ZW0sIC5zdXBlcmNoZWNrb3V0LXByb2R1Y3QtaXRlbSwgLnN1cGVyY2hlY2tvdXQtcHJvZHVjdCwgLmNoZWNrb3V0LXByb2R1Y3QtbGluZSwgLm1lZGlhJykKICAgICAgLmZpbHRlcihmdW5jdGlvbihsaW5lKXtyZXR1cm4gaXNQcm9tb0xpbmUobGluZSk7fSk7CiAgfQoKICBmdW5jdGlvbiBwcmVwZW5kUHJvbW9QaWxsKGhvc3QpewogICAgaWYoIWhvc3R8fHEoJy5jb2RleC1vZmZlcmJveC1waWxsJyxob3N0KSl7cmV0dXJuO30KICAgIHZhciBwaWxsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKICAgIHBpbGwuY2xhc3NOYW1lPSdjb2RleC1vZmZlcmJveC1waWxsIGNvZGV4LW9mZmVyYm94LXBpbGwtLXNwYWNlZCc7CiAgICBwaWxsLnRleHRDb250ZW50PVBST01PX0xBQkVMOwogICAgaG9zdC5hcHBlbmRDaGlsZChwaWxsKTsKICB9CgogIGZ1bmN0aW9uIGRlY29yYXRlQ29tcGFyZUJsb2NrKGhvc3QpewogICAgaWYoIWhvc3R8fHEoJy5jb2RleC1vZmZlcmJveC1vbGQnLGhvc3QpKXtyZXR1cm47fQogICAgdmFyIHByaWNlTm9kZT1xKCcucHJpY2UnLGhvc3QpfHxxKCcuc3BlY2lhbC1wcmljZScsaG9zdCl8fHEoJ3N0cm9uZycsaG9zdCl8fGhvc3Q7CiAgICBob3N0LmNsYXNzTGlzdC5hZGQoJ2NvZGV4LW9mZmVyYm94LXByaWNlLW5vdGUnKTsKICAgIHZhciBvbGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgb2xkLmNsYXNzTmFtZT0nY29kZXgtb2ZmZXJib3gtb2xkJzsKICAgIG9sZC5pbm5lckhUTUw9JzxzPicrUkVHVUxBUl9QUklDRSsnPC9zPic7CiAgICBpZihwcmljZU5vZGUhPT1ob3N0KXsKICAgICAgc2FmZVRleHQocHJpY2VOb2RlLFBST01PX1BSSUNFKTsKICAgICAgcHJpY2VOb2RlLmNsYXNzTGlzdC5hZGQoJ2NvZGV4LW9mZmVyYm94LW5ldycpOwogICAgICBob3N0Lmluc2VydEJlZm9yZShvbGQscHJpY2VOb2RlKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaG9zdC5pbm5lckhUTUw9Jyc7CiAgICBob3N0LmFwcGVuZENoaWxkKG9sZCk7CiAgICB2YXIgY3VycmVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgICBjdXJyZW50LmNsYXNzTmFtZT0nY29kZXgtb2ZmZXJib3gtbmV3JzsKICAgIGN1cnJlbnQudGV4dENvbnRlbnQ9UFJPTU9fUFJJQ0U7CiAgICBob3N0LmFwcGVuZENoaWxkKGN1cnJlbnQpOwogIH0KCiAgZnVuY3Rpb24gZW5oYW5jZVByb21vTGluZShsaW5lKXsKICAgIGlmKCFsaW5lKXtyZXR1cm47fQogICAgbGluZS5jbGFzc0xpc3QuYWRkKCdjb2RleC1vZmZlcmJveC1jYXJ0LWxpbmUnKTsKICAgIHZhciB0aXRsZUhvc3Q9cSgnLnByb2R1Y3QtbGluZS1pbmZvJyxsaW5lKXx8cSgnLnNob3BwaW5nLWNhcnQtZGVzY3JpcHRpb24nLGxpbmUpfHxxKCcubWVkaWEtYm9keScsbGluZSl8fGxpbmU7CiAgICBwcmVwZW5kUHJvbW9QaWxsKHRpdGxlSG9zdCk7CiAgICB2YXIgYm9keVByaWNlPXEoJy5wcm9kdWN0LWxpbmUtaW5mby5wcm9kdWN0LXByaWNlIC5jdXJyZW50LXByaWNlJyxsaW5lKXx8cSgnLmN1cnJlbnQtcHJpY2UnLGxpbmUpfHxxKCcuc2hvcHBpbmctcHJvZHVjdC1wcmljZSAuY2FydC1wcm9kdWN0LXByaWNlJyxsaW5lKXx8cSgnLnN1cGVyY2hlY2tvdXQtcHJvZHVjdC1wcmljZScsbGluZSk7CiAgICBkZWNvcmF0ZUNvbXBhcmVCbG9jayhib2R5UHJpY2UpOwogICAgdmFyIHJpZ2h0UHJpY2U9cSgnLnByb2R1Y3QtbGluZS1ncmlkLXJpZ2h0IC5wcm9kdWN0LXByaWNlJyxsaW5lKXx8cSgnLnByb2R1Y3RUb3RhbFNlY3Rpb24gLmNhcnQtcHJvZHVjdC1wcmljZScsbGluZSl8fHEoJy5zdXBlcmNoZWNrb3V0LXVuaXQtcHJpY2UnLGxpbmUpfHxxKCcuc3VwZXJjaGVja291dC1wcm9kdWN0LXRvdGFsJyxsaW5lKTsKICAgIGlmKHJpZ2h0UHJpY2UpewogICAgICByaWdodFByaWNlLmNsYXNzTGlzdC5hZGQoJ2NvZGV4LW9mZmVyYm94LXJpZ2h0LXByaWNlJyk7CiAgICAgIHZhciBjdXJyZW50PXEoJ3N0cm9uZycscmlnaHRQcmljZSl8fHEoJy5wcmljZScscmlnaHRQcmljZSk7CiAgICAgIGlmKGN1cnJlbnQpewogICAgICAgIGlmKCFxKCcuY29kZXgtb2ZmZXJib3gtb2xkJyxyaWdodFByaWNlKSl7CiAgICAgICAgICB2YXIgb2xkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKICAgICAgICAgIG9sZC5jbGFzc05hbWU9J2NvZGV4LW9mZmVyYm94LW9sZCc7CiAgICAgICAgICBvbGQuaW5uZXJIVE1MPSc8cz4nK1JFR1VMQVJfUFJJQ0UrJzwvcz4nOwogICAgICAgICAgcmlnaHRQcmljZS5pbnNlcnRCZWZvcmUob2xkLHJpZ2h0UHJpY2UuZmlyc3RDaGlsZCk7CiAgICAgICAgfQogICAgICAgIHNhZmVUZXh0KGN1cnJlbnQsUFJPTU9fUFJJQ0UpOwogICAgICAgIGN1cnJlbnQuY2xhc3NMaXN0LmFkZCgnY29kZXgtb2ZmZXJib3gtbmV3Jyk7CiAgICAgIH0KICAgIH0KICB9CgogIGZ1bmN0aW9uIGVuaGFuY2VDYXJ0QW5kQ2hlY2tvdXQoKXsKICAgIGZpbmRQcm9tb0xpbmVzKCkuZm9yRWFjaChlbmhhbmNlUHJvbW9MaW5lKTsKICB9CgogIGZ1bmN0aW9uIGZpbmRNb2RhbFN1YnRvdGFsTm9kZShtb2RhbCl7CiAgICByZXR1cm4gcSgnLnN1YnRvdGFsLnZhbHVlJyxtb2RhbCl8fHEoJy5jYXJ0LXN1bW1hcnktbGluZSAudmFsdWUnLG1vZGFsKTsKICB9CgogIGZ1bmN0aW9uIGdldE1vZGFsVG90YWxOb2RlKG1vZGFsKXsKICAgIHJldHVybiBxKCcucHJvZHVjdC10b3RhbCAudmFsdWUnLG1vZGFsKXx8cSgnLmNhcnQtdG90YWwgLnZhbHVlJyxtb2RhbCk7CiAgfQoKICBmdW5jdGlvbiBidWlsZE1vZGFsUHJvbW9IdG1sKGJ1bmRsZSl7CiAgICB2YXIgaW1hZ2U9YnVuZGxlJiZidW5kbGUuaW1hZ2U/YnVuZGxlLmltYWdlOidodHRwczovL3Nvd2thLnNrbGVwLnBsLzY0ODAtaG9tZV9kZWZhdWx0L2hhay1zdWZpdG93eS1vYnJvdG93eS1kby1tb250YXp1LWtva29ub3cuanBnJzsKICAgIHZhciBxdHk9YnVuZGxlJiZidW5kbGUucXR5P2J1bmRsZS5xdHk6MTsKICAgIHJldHVybiAnJyArCiAgICAgICc8ZGl2IGNsYXNzPSJjb2RleC1vZmZlcmJveC1tb2RhbC1wcm9tb19fcm93Ij4nICsKICAgICAgICAnPGEgY2xhc3M9ImNvZGV4LW9mZmVyYm94LW1vZGFsLXByb21vX19pbWFnZSIgaHJlZj0iJytSRUdVTEFSX1BST0RVQ1RfVVJMKyciPicgKwogICAgICAgICAgJzxpbWcgc3JjPSInK2ltYWdlKyciIGFsdD0iSGFrIFN1Zml0b3d5IE9icm90b3d5IERvIE1vbnRhXHUwMTdjdSBLb2tvblx1MDBmM3ciPicgKwogICAgICAgICc8L2E+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImNvZGV4LW9mZmVyYm94LW1vZGFsLXByb21vX19tZXRhIj4nICsKICAgICAgICAgICc8YSBjbGFzcz0iY29kZXgtb2ZmZXJib3gtbW9kYWwtcHJvbW9fX25hbWUiIGhyZWY9IicrUkVHVUxBUl9QUk9EVUNUX1VSTCsnIj5IYWsgU3VmaXRvd3kgT2Jyb3Rvd3kgRG8gTW9udGFcdTAxN2N1IEtva29uXHUwMGYzdzwvYT4nICsKICAgICAgICAgICc8c3BhbiBjbGFzcz0iY29kZXgtb2ZmZXJib3gtcGlsbCI+JytQUk9NT19MQUJFTCsnPC9zcGFuPicgKwogICAgICAgICAgJzxkaXYgY2xhc3M9ImNvZGV4LW9mZmVyYm94LXByaWNlLW5vdGUiPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImNvZGV4LW9mZmVyYm94LW9sZCI+PHM+JytSRUdVTEFSX1BSSUNFKyc8L3M+PC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImNvZGV4LW9mZmVyYm94LW5ldyI+JytQUk9NT19QUklDRSsnPC9zcGFuPicgKwogICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgJzxzcGFuIGNsYXNzPSJjb2RleC1vZmZlcmJveC1tb2RhbC1wcm9tb19fcXR5Ij5JbG9cdTAxNWJcdTAxMDc6ICcrcXR5Kyc8L3NwYW4+JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgICAnPC9kaXY+JzsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkTW9kYWxNaW5pTGluZUh0bWwoYnVuZGxlKXsKICAgIHZhciBxdHk9YnVuZGxlJiZidW5kbGUucXR5P2J1bmRsZS5xdHk6MTsKICAgIHJldHVybiAnJyArCiAgICAgICc8ZGl2IGNsYXNzPSJjb2RleC1vZmZlcmJveC1tb2RhbC1taW5pIiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDttYXJnaW4tYm90dG9tOjhweDsiPicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDozcHg7Ij4nICsKICAgICAgICAgICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHg7Y29sb3I6IzMyNGE1Zjtmb250LXdlaWdodDo2MDA7Ij5IYWsgU3VmaXRvd3kgT2Jyb3Rvd3kgRG8gTW9udGFcdTAxN2N1IEtva29uXHUwMGYzdzwvc3Bhbj4nICsKICAgICAgICAgICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6IzZiNzI4MDsiPicrUFJPTU9fTEFCRUwrJyB4JytxdHkrJzwvc3Bhbj4nICsKICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImNvZGV4LW9mZmVyYm94LXByaWNlLW5vdGUiIHN0eWxlPSJtYXJnaW4tdG9wOjA7Ij4nICsKICAgICAgICAgICc8c3BhbiBjbGFzcz0iY29kZXgtb2ZmZXJib3gtb2xkIj48cz4nK1JFR1VMQVJfUFJJQ0UrJzwvcz48L3NwYW4+JyArCiAgICAgICAgICAnPHNwYW4gY2xhc3M9ImNvZGV4LW9mZmVyYm94LW5ldyI+JytQUk9NT19QUklDRSsnPC9zcGFuPicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgJzwvZGl2Pic7CiAgfQoKICBmdW5jdGlvbiB1cGRhdGVNb2RhbFRvdGFscyhtb2RhbCxyZXNwb25zZSxidW5kbGUpewogICAgdmFyIHN1YnRvdGFsTm9kZT1maW5kTW9kYWxTdWJ0b3RhbE5vZGUobW9kYWwpOwogICAgdmFyIHRvdGFsTm9kZT1nZXRNb2RhbFRvdGFsTm9kZShtb2RhbCk7CiAgICB2YXIgc3VidG90YWxGcm9tUmVzcG9uc2U9cmVzcG9uc2UmJnJlc3BvbnNlLmNhcnQmJnJlc3BvbnNlLmNhcnQuc3VidG90YWxzJiZyZXNwb25zZS5jYXJ0LnN1YnRvdGFscy5wcm9kdWN0cyYmcmVzcG9uc2UuY2FydC5zdWJ0b3RhbHMucHJvZHVjdHMudmFsdWU7CiAgICB2YXIgdG90YWxGcm9tUmVzcG9uc2U9cmVzcG9uc2UmJnJlc3BvbnNlLmNhcnQmJnJlc3BvbnNlLmNhcnQudG90YWxzJiZyZXNwb25zZS5jYXJ0LnRvdGFscy50b3RhbCYmcmVzcG9uc2UuY2FydC50b3RhbHMudG90YWwudmFsdWU7CiAgICBpZihzdWJ0b3RhbE5vZGUmJnN1YnRvdGFsRnJvbVJlc3BvbnNlKXtzdWJ0b3RhbE5vZGUudGV4dENvbnRlbnQ9c3VidG90YWxGcm9tUmVzcG9uc2U7fQogICAgaWYodG90YWxOb2RlJiZ0b3RhbEZyb21SZXNwb25zZSl7dG90YWxOb2RlLnRleHRDb250ZW50PXRvdGFsRnJvbVJlc3BvbnNlO30KICB9CgogIGZ1bmN0aW9uIGVuaGFuY2VCbG9ja2NhcnRNb2RhbChidW5kbGUscmVzcG9uc2UpewogICAgdmFyIG1vZGFsPXEoJyNibG9ja2NhcnQtbW9kYWwnKTsKICAgIGlmKCFtb2RhbHx8IXZpc2libGUobW9kYWwpKXtyZXR1cm4gZmFsc2U7fQogICAgdmFyIGxlZnQ9cSgnLmNvbC1tZC02LmRpdmlkZS1yaWdodCcsbW9kYWwpOwogICAgaWYoIWxlZnQpe3JldHVybiBmYWxzZTt9CiAgICB2YXIgb3RoZXJQcm9kdWN0cz1xKCcuc293a2EtY2FydC1vdGhlci1wcm9kdWN0cycsbGVmdCk7CiAgICBpZihvdGhlclByb2R1Y3RzKXsKICAgICAgdmFyIG1pbmk9cSgnLmNvZGV4LW9mZmVyYm94LW1vZGFsLW1pbmktd3JhcCcsb3RoZXJQcm9kdWN0cyk7CiAgICAgIGlmKCFtaW5pKXsKICAgICAgICBtaW5pPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIG1pbmkuY2xhc3NOYW1lPSdjb2RleC1vZmZlcmJveC1tb2RhbC1taW5pLXdyYXAnOwogICAgICAgIG90aGVyUHJvZHVjdHMuYXBwZW5kQ2hpbGQobWluaSk7CiAgICAgIH0KICAgICAgbWluaS5pbm5lckhUTUw9YnVpbGRNb2RhbE1pbmlMaW5lSHRtbChidW5kbGUpOwogICAgfQogICAgdmFyIGJveD1xKCcuY29kZXgtb2ZmZXJib3gtbW9kYWwtcHJvbW8nLGxlZnQpOwogICAgaWYoYm94KXtib3gucmVtb3ZlKCk7fQogICAgdXBkYXRlTW9kYWxUb3RhbHMobW9kYWwscmVzcG9uc2UsYnVuZGxlKTsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgZnVuY3Rpb24gc2NoZWR1bGVNb2RhbEVuaGFuY2VtZW50KGJ1bmRsZSxyZXNwb25zZSxhdHRlbXB0KXsKICAgIGlmKGVuaGFuY2VCbG9ja2NhcnRNb2RhbChidW5kbGUscmVzcG9uc2UpKXtyZXR1cm47fQogICAgdmFyIG5leHRBdHRlbXB0PShhdHRlbXB0fHwwKSsxOwogICAgaWYobmV4dEF0dGVtcHQ+MTApe3JldHVybjt9CiAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICBzY2hlZHVsZU1vZGFsRW5oYW5jZW1lbnQoYnVuZGxlLHJlc3BvbnNlLG5leHRBdHRlbXB0KTsKICAgIH0sMzUwKTsKICB9CgogIGZ1bmN0aW9uIHF1ZXVlUGVuZGluZ0J1bmRsZShidW5kbGUpewogICAgcGVuZGluZ0J1bmRsZT1idW5kbGU7CiAgfQoKICBmdW5jdGlvbiBzdGFydFBlbmRpbmdQcm9tb0FkZCgpewogICAgaWYoIXBlbmRpbmdCdW5kbGV8fHByb21vQWRkSW5GbGlnaHQpe3JldHVybjt9CiAgICB2YXIgbG9jYWw9cGVuZGluZ0J1bmRsZTsKICAgIHBlbmRpbmdCdW5kbGU9bnVsbDsKICAgIHByb21vQWRkSW5GbGlnaHQ9dHJ1ZTsKICAgIHBvc3RQcm9tb0FkZChsb2NhbC5xdHkpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpewogICAgICBwcm9tb0FkZEluRmxpZ2h0PWZhbHNlOwogICAgICBpbmNyZW1lbnRTdG9yZWRCdW5kbGUobG9jYWwubWFpblByb2R1Y3RJZCxsb2NhbC5xdHkpOwogICAgICBzY2hlZHVsZU1vZGFsRW5oYW5jZW1lbnQobG9jYWwscmVzcG9uc2UsMCk7CiAgICAgIG5vdGlmeUNhcnQocmVzcG9uc2UmJnJlc3BvbnNlLmNhcnQ/cmVzcG9uc2U6e2xpbmtBY3Rpb246J2FkZC10by1jYXJ0JyxpZFByb2R1Y3Q6cGFyc2VJbnQoUkVHVUxBUl9QUk9EVUNUX0lELDEwKXx8MCxjb2RleE9mZmVyYm94OnRydWV9KTsKICAgICAgZGVib3VuY2VFbmhhbmNlKDE1MCk7CiAgICB9KS5jYXRjaChmdW5jdGlvbigpewogICAgICBwcm9tb0FkZEluRmxpZ2h0PWZhbHNlOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBvbk1haW5BZGRDbGljayhidXR0b24pewogICAgaWYoIWJ1dHRvbnx8IWJ1dHRvbi5jbG9zZXN0KCcjYWRkLXRvLWNhcnQtb3ItcmVmcmVzaCcpKXtyZXR1cm47fQogICAgdmFyIGJveGVzPXFhKCcuc293a2Etb2ZmZXJib3gnKS5maWx0ZXIoZnVuY3Rpb24oYm94KXsKICAgICAgcmV0dXJuIFN0cmluZyhib3guZGF0YXNldC5pZENhbXBhaWdufHwnJyk9PT1PRkZFUl9DQU1QQUlHTl9JRCYmc2VsZWN0ZWRJdGVtcyhib3gpLmxlbmd0aDsKICAgIH0pOwogICAgaWYoIWJveGVzLmxlbmd0aCl7CiAgICAgIHBlbmRpbmdCdW5kbGU9bnVsbDsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGJ1bmRsZT1idWlsZFBlbmRpbmdCdW5kbGUoYm94ZXNbMF0sc2VsZWN0ZWRJdGVtcyhib3hlc1swXSlbMF0pOwogICAgcXVldWVQZW5kaW5nQnVuZGxlKGJ1bmRsZSk7CiAgfQoKICBmdW5jdGlvbiBnZXRMaW5lUHJvZHVjdElkKGxpbmUpewogICAgdmFyIGRpcmVjdD1xKCcucmVtb3ZlLWZyb20tY2FydFtkYXRhLWlkLXByb2R1Y3RdLCBbZGF0YS1pZC1wcm9kdWN0XScsbGluZSk7CiAgICBpZihkaXJlY3QmJmRpcmVjdC5kYXRhc2V0LmlkUHJvZHVjdCl7cmV0dXJuIFN0cmluZyhkaXJlY3QuZGF0YXNldC5pZFByb2R1Y3QpO30KICAgIHZhciBpbnB1dD1xKCdpbnB1dFtkYXRhLXByb2R1Y3QtaWRdLCBpbnB1dFtkYXRhLWlkLXByb2R1Y3RdJyxsaW5lKTsKICAgIGlmKGlucHV0KXtyZXR1cm4gU3RyaW5nKGlucHV0LmRhdGFzZXQucHJvZHVjdElkfHxpbnB1dC5kYXRhc2V0LmlkUHJvZHVjdHx8JycpO30KICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIGdldExpbmVRdHkobGluZSl7CiAgICB2YXIgaW5wdXQ9cSgnaW5wdXQuanMtY2FydC1saW5lLXByb2R1Y3QtcXVhbnRpdHksIGlucHV0W25hbWU9InByb2R1Y3QtcXVhbnRpdHktc3BpbiJdLCBpbnB1dFt0eXBlPSJudW1iZXIiXScsbGluZSk7CiAgICB2YXIgdmFsdWU9cGFyc2VJbnQoaW5wdXQmJmlucHV0LnZhbHVlfHwnMScsMTApOwogICAgaWYoTnVtYmVyLmlzRmluaXRlKHZhbHVlKSYmdmFsdWU+MCl7cmV0dXJuIHZhbHVlO30KICAgIHZhciB0ZXh0PWxpbmU/bGluZS50ZXh0Q29udGVudDonJzsKICAgIHZhciBtYXRjaD1TdHJpbmcodGV4dCkubWF0Y2goL3hccyooXGQrKS9pKTsKICAgIHJldHVybiBtYXRjaD9wYXJzZUludChtYXRjaFsxXSwxMCl8fDE6MTsKICB9CgogIGZ1bmN0aW9uIHJlZHVjZVByb21vUXR5KGRlbHRhKXsKICAgIHZhciBwcm9tb0xpbmU9ZmluZFByb21vTGluZXMoKVswXTsKICAgIGlmKCFwcm9tb0xpbmV8fCFkZWx0YSl7cmV0dXJuO30KICAgIHZhciBxdHk9Z2V0TGluZVF0eShwcm9tb0xpbmUpOwogICAgdmFyIHJlbW92ZUNvdW50PU1hdGgubWluKHF0eSxkZWx0YSk7CiAgICBpZihyZW1vdmVDb3VudDw9MCl7cmV0dXJuO30KICAgIGlmKHJlbW92ZUNvdW50Pj1xdHkpewogICAgICB2YXIgcmVtb3ZlPXEoJy5yZW1vdmUtZnJvbS1jYXJ0LCBbZGF0YS1saW5rLWFjdGlvbj0iZGVsZXRlLWZyb20tY2FydCJdJyxwcm9tb0xpbmUpOwogICAgICBpZihyZW1vdmUpe3JlbW92ZS5jbGljaygpO30KICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHN0ZXA9MDsKICAgIGZ1bmN0aW9uIGNsaWNrRG93bigpewogICAgICB2YXIgbGluZT1maW5kUHJvbW9MaW5lcygpWzBdOwogICAgICBpZighbGluZXx8c3RlcD49cmVtb3ZlQ291bnQpewogICAgICAgIHByb21vUmVtb3ZhbEluRmxpZ2h0PWZhbHNlOwogICAgICAgIGRlYm91bmNlRW5oYW5jZSgxNTAwKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdmFyIGRvd249cSgnLmJvb3RzdHJhcC10b3VjaHNwaW4tZG93biwgLmpzLXRvdWNoc3Bpbi5ib290c3RyYXAtdG91Y2hzcGluLWRvd24sIFtkYXRhLWRvd24tdXJsXScsbGluZSk7CiAgICAgIGlmKCFkb3duKXsKICAgICAgICBwcm9tb1JlbW92YWxJbkZsaWdodD1mYWxzZTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgc3RlcCs9MTsKICAgICAgZG93bi5jbGljaygpOwogICAgICB3aW5kb3cuc2V0VGltZW91dChjbGlja0Rvd24sODUwKTsKICAgIH0KICAgIGNsaWNrRG93bigpOwogIH0KCiAgZnVuY3Rpb24gYXBwbHlQZW5kaW5nUHJvbW9SZW1vdmFsKGF0dGVtcHQpewogICAgaWYoIXBlbmRpbmdQcm9tb1JlbW92YWx8fHByb21vUmVtb3ZhbEluRmxpZ2h0KXtyZXR1cm47fQogICAgdmFyIHByb21vTGluZT1maW5kUHJvbW9MaW5lcygpWzBdOwogICAgaWYoIXByb21vTGluZSl7CiAgICAgIHZhciBuZXh0QXR0ZW1wdD0oYXR0ZW1wdHx8MCkrMTsKICAgICAgaWYobmV4dEF0dGVtcHQ+OCl7CiAgICAgICAgcGVuZGluZ1Byb21vUmVtb3ZhbD0wOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgIGFwcGx5UGVuZGluZ1Byb21vUmVtb3ZhbChuZXh0QXR0ZW1wdCk7CiAgICAgIH0sNTAwKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGRlbHRhPXBlbmRpbmdQcm9tb1JlbW92YWw7CiAgICBwZW5kaW5nUHJvbW9SZW1vdmFsPTA7CiAgICBwcm9tb1JlbW92YWxJbkZsaWdodD10cnVlOwogICAgcmVkdWNlUHJvbW9RdHkoZGVsdGEpOwogIH0KCiAgZnVuY3Rpb24gaGFuZGxlTWFpblJlbW92YWwodHJpZ2dlcil7CiAgICB2YXIgbGluZT1jbG9zZXN0Q2FydExpbmUodHJpZ2dlcik7CiAgICBpZighbGluZXx8aXNQcm9tb0xpbmUobGluZSkpe3JldHVybjt9CiAgICB2YXIgbWFpblByb2R1Y3RJZD1nZXRMaW5lUHJvZHVjdElkKGxpbmUpOwogICAgaWYoIW1haW5Qcm9kdWN0SWQpe3JldHVybjt9CiAgICB2YXIgcXR5PWdldExpbmVRdHkobGluZSk7CiAgICB2YXIgcGxhbm5lZFJlZHVjdGlvbj1jb25zdW1lU3RvcmVkQnVuZGxlKG1haW5Qcm9kdWN0SWQscXR5KTsKICAgIGlmKCFwbGFubmVkUmVkdWN0aW9uKXtyZXR1cm47fQogICAgcGVuZGluZ1Byb21vUmVtb3ZhbCs9cGxhbm5lZFJlZHVjdGlvbjsKICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgIGFwcGx5UGVuZGluZ1Byb21vUmVtb3ZhbCgwKTsKICAgIH0sMTQwMCk7CiAgfQoKICBmdW5jdGlvbiBiaW5kUHJlc3Rhc2hvcEV2ZW50cygpewogICAgaWYoIXdpbmRvdy5wcmVzdGFzaG9wfHwhcHJlc3Rhc2hvcC5vbnx8d2luZG93Ll9fY29kZXhPZmZlcmJveFVwZGF0ZUNhcnRCb3VuZCl7cmV0dXJuO30KICAgIHdpbmRvdy5fX2NvZGV4T2ZmZXJib3hVcGRhdGVDYXJ0Qm91bmQ9dHJ1ZTsKICAgIHByZXN0YXNob3Aub24oJ3VwZGF0ZUNhcnQnLGZ1bmN0aW9uKCl7CiAgICAgIGlmKHBlbmRpbmdCdW5kbGUmJiFwcm9tb0FkZEluRmxpZ2h0KXsKICAgICAgICB3aW5kb3cuc2V0VGltZW91dChzdGFydFBlbmRpbmdQcm9tb0FkZCwxMjApOwogICAgICB9ZWxzZSBpZihwZW5kaW5nUHJvbW9SZW1vdmFsJiYhcHJvbW9SZW1vdmFsSW5GbGlnaHQpewogICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgICAgICBhcHBseVBlbmRpbmdQcm9tb1JlbW92YWwoMCk7CiAgICAgICAgfSwyNTApOwogICAgICB9ZWxzZXsKICAgICAgICBkZWJvdW5jZUVuaGFuY2UoMTIwKTsKICAgICAgfQogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBydW5FbmhhbmNlbWVudHMoKXsKICAgIGVuc3VyZVN0eWxlcygpOwogICAgcmVkaXJlY3RMZWdhY3lQcm9tb1BhZ2UoKTsKICAgIGhpZGVQcm9tb01hcmtlck9uUmVndWxhckhvb2soKTsKICAgIGVuaGFuY2VPZmZlcmJveGVzKCk7CiAgICBlbmhhbmNlQ2FydEFuZENoZWNrb3V0KCk7CiAgICBjbGVhck9sZE9mZmVyU3VtbWFyeSgpOwogICAgcmVtb3ZlTWlzbGVhZGluZ0NhcnRQcm9tb1RleHQoKTsKICB9CgogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihldmVudCl7CiAgICB2YXIgbWFpbkJ1dHRvbj1ldmVudC50YXJnZXQmJmV2ZW50LnRhcmdldC5jbG9zZXN0P2V2ZW50LnRhcmdldC5jbG9zZXN0KCcjYWRkLXRvLWNhcnQtb3ItcmVmcmVzaCBidXR0b25bZGF0YS1idXR0b24tYWN0aW9uPSJhZGQtdG8tY2FydCJdJyk6bnVsbDsKICAgIGlmKG1haW5CdXR0b24pewogICAgICBvbk1haW5BZGRDbGljayhtYWluQnV0dG9uKTsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZhciByZW1vdmVUcmlnZ2VyPWV2ZW50LnRhcmdldCYmZXZlbnQudGFyZ2V0LmNsb3Nlc3Q/ZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5yZW1vdmUtZnJvbS1jYXJ0LCBbZGF0YS1saW5rLWFjdGlvbj0iZGVsZXRlLWZyb20tY2FydCJdJyk6bnVsbDsKICAgIGlmKHJlbW92ZVRyaWdnZXIpewogICAgICBoYW5kbGVNYWluUmVtb3ZhbChyZW1vdmVUcmlnZ2VyKTsKICAgIH0KICB9LHRydWUpOwoKICBpZih3aW5kb3cuTXV0YXRpb25PYnNlcnZlciYmIXdpbmRvdy5fX2NvZGV4T2ZmZXJib3hVaU9iczIpewogICAgd2luZG93Ll9fY29kZXhPZmZlcmJveFVpT2JzMj1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpewogICAgICBkZWJvdW5jZUVuaGFuY2UoMTAwKTsKICAgIH0pOwogICAgd2luZG93Ll9fY29kZXhPZmZlcmJveFVpT2JzMi5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx7Y2hpbGRMaXN0OnRydWUsc3VidHJlZTp0cnVlfSk7CiAgfQoKICBiaW5kUHJlc3Rhc2hvcEV2ZW50cygpOwogIHJ1bkVuaGFuY2VtZW50cygpOwogIHdpbmRvdy5zZXRUaW1lb3V0KHJ1bkVuaGFuY2VtZW50cyw1MDApOwogIHdpbmRvdy5zZXRUaW1lb3V0KHJ1bkVuaGFuY2VtZW50cywxNTAwKTsKICB3aW5kb3cuc2V0VGltZW91dChydW5FbmhhbmNlbWVudHMsMzAwMCk7Cn0pKCk7'));/*codex-offerbox-fix-end*/}catch(e){}" />