{"id":56203,"date":"2026-10-13T08:00:00","date_gmt":"2026-10-13T08:00:00","guid":{"rendered":"https:\/\/housfy.com\/blog\/?p=56203"},"modified":"2026-10-23T10:24:50","modified_gmt":"2026-10-23T10:24:50","slug":"rellenar-modelo-600-de-la-cancelacion-de-hipoteca","status":"publish","type":"post","link":"https:\/\/housfy.com\/blog\/rellenar-modelo-600-de-la-cancelacion-de-hipoteca\/","title":{"rendered":"\u00bfC\u00f3mo rellenar el Modelo 600 para la cancelaci\u00f3n de una hipoteca en 2026? Todo lo que debes saber"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Muchos propietarios se preguntan si <strong>hay que presentar el Modelo 600 para la cancelaci\u00f3n de una hipoteca cuando la cuota a pagar es de 0\u20ac.<\/strong> La respuesta es s\u00ed en casi toda Espa\u00f1a, con alguna excepci\u00f3n como Andaluc\u00eda, y en Housfy te contamos c\u00f3mo hacerlo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lo m\u00e1s importante de este art\u00edculo:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La cuota del Modelo 600 es 0\u20ac, pero <strong>presentarlo es obligatorio en casi toda Espa\u00f1a para poder cancelar la hipoteca en el Registro.<\/strong> En Andaluc\u00eda, si la cancelaci\u00f3n se debe al pago total de la deuda, no hace falta.<\/li>\n\n\n\n<li>Antes de rellenar nada pero, necesitas 2 documentos; el <strong>certificado de deuda cero del banco y la escritura notarial de cancelaci\u00f3n.<\/strong><\/li>\n\n\n\n<li><strong>El plazo depende de la comunidad donde est\u00e9 la vivienda<\/strong>; 1 mes, 2 meses o 30 d\u00edas h\u00e1biles desde la firma. Si te pasas, no hay recargo porque la cuota es 0\u20ac, pero puede haber una multa; en las comunidades de r\u00e9gimen com\u00fan, de 100\u20ac.<\/li>\n\n\n\n<li>El formulario lo presentas t\u00fa (no el banco) en la <strong>sede electr\u00f3nica de la Comunidad Aut\u00f3noma donde est\u00e1 la vivienda,<\/strong> con certificado digital o Cl@ve. Tambi\u00e9n puedes <strong>pedir cita previa en Hacienda<\/strong> para que te lo liquiden presencialmente.<\/li>\n\n\n\n<li>Una vez cancelada la hipoteca, tu vivienda queda libre de cargas; el <strong>mejor momento para pedir un nuevo pr\u00e9stamo <\/strong>si es lo que est\u00e1s buscando.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>En este art\u00edculo aprender\u00e1s:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bfQu\u00e9 es el Modelo 600 y para qu\u00e9 sirve?<\/li>\n\n\n\n<li>\u00bfCu\u00e1ndo hay que presentar el Modelo 600 para la cancelaci\u00f3n de una hipoteca?<\/li>\n\n\n\n<li>\u00bfQu\u00e9 pasos previos se recomiendan antes de rellenar el Modelo 600 para la cancelaci\u00f3n de una hipoteca?<\/li>\n\n\n\n<li>\u00bfC\u00f3mo rellenar el Modelo 600 para la cancelaci\u00f3n de una hipoteca paso a paso?<\/li>\n\n\n\n<li>\u00bfCu\u00e1les son las Comunidades Aut\u00f3nomas donde se concentra un mayor volumen de compraventa de inmuebles en 2026?<\/li>\n\n\n\n<li>\u00bfQu\u00e9 pasa si no presento el Modelo 600?<\/li>\n\n\n\n<li>\u00bfY despu\u00e9s de cancelar la hipoteca? Opciones para aprovechar tu inmueble libre de cargas<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div data-m6-tool=\"\" style=\"display:block;max-width:720px;margin:0 auto;padding:20px;border:1px solid #D7EAF9;border-radius:24px;background:#EFF7FD;color:#03007A;font-family:Manrope,Arial,sans-serif;font-weight:700;text-align:center;\">Asistente del modelo 600 para la cancelaci\u00f3n de hipoteca<\/div><script>(function(){var s=\"KGZ1bmN0aW9uICgpIHsKICAvKiA9PT09PT0gREFUT1MgRURJVEFCTEVTICh2ZXJpZmljYWRvcyBlbiBsYXMgd2VicyBvZmljaWFsZXMgZGUgY2FkYSBhZG1pbmlzdHJhY2nDs24sIG9jdC4gMjAyNikgPT09PT09ICovCiAgdmFyIENGRyA9IHsKICAgIHllYXI6IDIwMjYsCiAgICBjYWQ6ICdodHRwczovL2hvdXNmeS5jb20vYmxvZy9jb21vLXBlZGlyLWVsLWxldmFudGFtaWVudG8tZGUtbGEtaGlwb3RlY2EtcG9yLWNhZHVjaWRhZCcsCiAgICAvKiBDVEEgc2Vnw7puIGVsIG1vdGl2byBkZSBsYSBjYW5jZWxhY2nDs246IFtib3TDs24sIGVubGFjZSwgdMOtdHVsbywgdGV4dG9dICovCiAgICBjdGE6IHsKICAgICAgdmVuZGVyOiBbJ1ZlbmRlIHR1IHZpdmllbmRhJywgJ2h0dHBzOi8vaG91c2Z5LmNvbS92ZW5kZXItcGlzb3M\/dXRtX3NvdXJjZT1ibG9nJywgJ1ZlbmRlIHR1IGNhc2EgeWEgbGlicmUgZGUgY2FyZ2FzJywgJ0NvbiBsYSBoaXBvdGVjYSBib3JyYWRhIGRlbCBSZWdpc3RybywgbGEgdmVudGEgZXMgbcOhcyDDoWdpbCB5IGVsIGNvbXByYWRvciBubyBzZSBlbmN1ZW50cmEgc29ycHJlc2FzIGVuIGxhIG5vdGEgc2ltcGxlLiddLAogICAgICBtZWpvcmFyOiBbJ01lam9yYSB0dSBoaXBvdGVjYScsICdodHRwczovL2hvdXNmeS5jb20vaGlwb3RlY2EvbWVqb3Jhci1oaXBvdGVjYT91dG1fc291cmNlPWJsb2cnLCAnQ29uc2lndWUgdW5hIGhpcG90ZWNhIGNvbiBtZWpvcmVzIGNvbmRpY2lvbmVzJywgJ0NvbiBsYSB2aXZpZW5kYSBsaWJyZSBkZSBjYXJnYXMgbmVnb2NpYXMgZGVzZGUgdW5hIHBvc2ljacOzbiBtw6FzIGZ1ZXJ0ZS4gVW4gZXhwZXJ0byBjb21wYXJhIGxhcyBvZmVydGFzIGRlIGxvcyBiYW5jb3MgcG9yIHRpLiddLAogICAgICBwYWdhZGE6IFsnQ2FsY3VsYSBjdcOhbnRvIHZhbGUgdHUgdml2aWVuZGEnLCAnaHR0cHM6Ly9ob3VzZnkuY29tL2N1YW50by12YWxlLW1pLWNhc2E\/dXRtX3NvdXJjZT1ibG9nJywgJ1R1IGNhc2EgeWEgZXMgMTAwICUgdHV5YScsICdDb25vY2VyIHN1IHZhbG9yIHJlYWwgdGUgYXl1ZGEgYSBkZWNpZGlyIHF1w6kgaGFjZXIgY29uIGVsbGE6IHZlbmRlcmxhLCBhbHF1aWxhcmxhIG8gdXNhcmxhIGNvbW8gZ2FyYW50w61hLiddCiAgICB9LAogICAgLyogRmVzdGl2b3MgbmFjaW9uYWxlczogbG9zIGF1dG9uw7NtaWNvcyB5IGxvY2FsZXMgcHVlZGVuIGFtcGxpYXIgZWwgcGxhem8gKi8KICAgIGZlc3Q6IFsnMjAyNS0wMS0wMScsICcyMDI1LTAxLTA2JywgJzIwMjUtMDQtMTgnLCAnMjAyNS0wNS0wMScsICcyMDI1LTA4LTE1JywgJzIwMjUtMTItMDgnLCAnMjAyNS0xMi0yNScsCiAgICAgICcyMDI2LTAxLTAxJywgJzIwMjYtMDEtMDYnLCAnMjAyNi0wNC0wMycsICcyMDI2LTA1LTAxJywgJzIwMjYtMDgtMTUnLCAnMjAyNi0xMC0xMicsICcyMDI2LTEyLTA4JywgJzIwMjYtMTItMjUnLAogICAgICAnMjAyNy0wMS0wMScsICcyMDI3LTAxLTA2JywgJzIwMjctMDMtMjYnLCAnMjAyNy0xMC0xMicsICcyMDI3LTExLTAxJywgJzIwMjctMTItMDYnLCAnMjAyNy0xMi0wOCcsICcyMDI3LTEyLTI1J10KICB9OwogIC8qIHBsYXpvOiBbJ20nLCBuXSA9IG4gbWVzZXMgZGUgZmVjaGEgYSBmZWNoYSDCtyBbJ2gnLCBuXSA9IG4gZMOtYXMgaMOhYmlsZXMgKi8KICB2YXIgVCA9IFsKICAgIHsgaWQ6ICdhbmRhbHVjaWEnLCBuOiAnQW5kYWx1Y8OtYScsIG9yZzogJ0FnZW5jaWEgVHJpYnV0YXJpYSBkZSBBbmRhbHVjw61hJywgbW9kOiAnTW9kZWxvIDYwMCcsIHA6IFsnbScsIDJdLCBub09iOiB0cnVlLCB1cmw6ICdodHRwczovL3d3dy5qdW50YWRlYW5kYWx1Y2lhLmVzL29yZ2FuaXNtb3MvYXRyaWFuLmh0bWwnLCB3ZWI6ICdqdW50YWRlYW5kYWx1Y2lhLmVzJyB9LAogICAgeyBpZDogJ2FyYWdvbicsIG46ICdBcmFnw7NuJywgb3JnOiAnQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWEgZGUgQXJhZ8OzbicsIG1vZDogJ01vZGVsbyA2MDAnLCBwOiBbJ20nLCAxXSwgY29uOiAnU2VsZWNjaW9uYSBsYSBvcGNpw7NuIMKrQ2FuY2VsYWNpw7NuIGRlIGhpcG90ZWNhwrsuJywgYmFzZTogJ0VsIHByw6lzdGFtbyBjb25jZWRpZG8sIHNpbiBpbnRlcmVzZXMgKGVsIMKrdmFsb3IgZGVjbGFyYWRvwrspLicsIHVybDogJ2h0dHBzOi8vd3d3LmFyYWdvbi5lcy8tL2NhbmNlbGFyLXVuYS1oaXBvdGVjYS1lbi1hcmFnb24nLCB3ZWI6ICdhcmFnb24uZXMnIH0sCiAgICB7IGlkOiAnYXN0dXJpYXMnLCBuOiAnQXN0dXJpYXMnLCBvcmc6ICdTZXJ2aWNpb3MgVHJpYnV0YXJpb3MgZGVsIFByaW5jaXBhZG8gZGUgQXN0dXJpYXMnLCBtb2Q6ICdNb2RlbG8gNjAwJywgcDogWydoJywgMzBdLCB1cmw6ICdodHRwczovL3NlZGUudHJpYnV0YXNlbmFzdHVyaWFzLmVzJywgd2ViOiAnc2VkZS50cmlidXRhc2VuYXN0dXJpYXMuZXMnIH0sCiAgICB7IGlkOiAnYmFsZWFyZXMnLCBuOiAnSWxsZXMgQmFsZWFycycsIG9yZzogJ0Fnw6huY2lhIFRyaWJ1dMOgcmlhIGRlIGxlcyBJbGxlcyBCYWxlYXJzJywgbW9kOiAnTW9kZWxvIDYwMCcsIHA6IFsnbScsIDFdLCB1cmw6ICdodHRwczovL3d3dy5hdGliLmVzJywgd2ViOiAnYXRpYi5lcycgfSwKICAgIHsgaWQ6ICdjYW5hcmlhcycsIG46ICdDYW5hcmlhcycsIG9yZzogJ0FnZW5jaWEgVHJpYnV0YXJpYSBDYW5hcmlhJywgbW9kOiAnTW9kZWxvIDYwMCcsIHA6IFsnbScsIDFdLCB1cmw6ICdodHRwczovL3NlZGUuZ29iaWVybm9kZWNhbmFyaWFzLm9yZy90cmlidXRvcy8nLCB3ZWI6ICdzZWRlLmdvYmllcm5vZGVjYW5hcmlhcy5vcmcvdHJpYnV0b3MnIH0sCiAgICB7IGlkOiAnY2FudGFicmlhJywgbjogJ0NhbnRhYnJpYScsIG9yZzogJ0FnZW5jaWEgQ8OhbnRhYnJhIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhJywgbW9kOiAnTW9kZWxvIDYwMCAoZW4gbGEgT2ZpY2luYSBWaXJ0dWFsLCA2MDEpJywgcDogWydoJywgMzBdLCB1cmw6ICdodHRwczovL292aGFjaWVuZGEuY2FudGFicmlhLmVzL29maWNpbmF2aXJ0dWFsLycsIHdlYjogJ292aGFjaWVuZGEuY2FudGFicmlhLmVzJyB9LAogICAgeyBpZDogJ2NsbScsIG46ICdDYXN0aWxsYS1MYSBNYW5jaGEnLCBvcmc6ICdIYWNpZW5kYSBkZSBDYXN0aWxsYS1MYSBNYW5jaGEnLCBtb2Q6ICdNb2RlbG8gNjAwJywgcDogWydtJywgMV0sIGNvbjogJ0NvbmNlcHRvIERONzAgwqtDYW5jZWxhY2nDs24gZGUgaGlwb3RlY2HCuywgcXVlIGVsIHByb2dyYW1hIG1hcmNhIGNvbW8gZXhlbnRvLicsIHVybDogJ2h0dHBzOi8vcG9ydGFsdHJpYnV0YXJpby5qY2NtLmVzJywgd2ViOiAncG9ydGFsdHJpYnV0YXJpby5qY2NtLmVzJyB9LAogICAgeyBpZDogJ2N5bCcsIG46ICdDYXN0aWxsYSB5IExlw7NuJywgb3JnOiAnSnVudGEgZGUgQ2FzdGlsbGEgeSBMZcOzbiDCtyBUcmlidXRvcycsIG1vZDogJ01vZGVsbyA2MDAnLCBwOiBbJ2gnLCAzMF0sIHVybDogJ2h0dHBzOi8vdHJpYnV0b3MuamN5bC5lcycsIHdlYjogJ3RyaWJ1dG9zLmpjeWwuZXMnIH0sCiAgICB7IGlkOiAnY2F0YWx1bmEnLCBuOiAnQ2F0YWx1w7FhJywgb3JnOiAnQWfDqG5jaWEgVHJpYnV0w6ByaWEgZGUgQ2F0YWx1bnlhJywgbW9kOiAnTW9kZWxvIDYwMCcsIHA6IFsnbScsIDFdLCBjb246ICdEZXNjcmlwY2nDs24gwqtDYW5jZWxhY2nDs24gZGUgaGlwb3RlY2EgKEFKNynCuyB5IGPDs2RpZ28gZGUgZXhlbmNpw7NuIDEzMC4nLCBiYXNlOiAnRWwgaW1wb3J0ZSBnYXJhbnRpemFkbyBwb3IgbGEgaGlwb3RlY2E7IGxvcyBpbnRlcmVzZXMgeSBjb3N0YXMgZ2FyYW50aXphZG9zIHZhbiBlbiBzdXMgY2FzaWxsYXMuJywgdXJsOiAnaHR0cHM6Ly9hdGMuZ2VuY2F0LmNhdC9lcy90cmlidXRzL2l0cGFqZC9vcGVyYWNpb25zL3ByZXN0ZWNzLWdhcmFudGllcy9jYW5jZWxhY2lvLWhpcG90ZWNhLycsIHdlYjogJ2F0Yy5nZW5jYXQuY2F0JyB9LAogICAgeyBpZDogJ3ZhbGVuY2lhJywgbjogJ0NvbXVuaXRhdCBWYWxlbmNpYW5hJywgb3JnOiAnQWfDqG5jaWEgVHJpYnV0w6ByaWEgVmFsZW5jaWFuYScsIG1vZDogJ01vZGVsbyA2MDAnLCBwOiBbJ20nLCAxXSwgY29uOiAnVGFyaWZhIEROOSB5LCBlbiBsYSBjYXNpbGxhIDczLCBsYSBleGVuY2nDs24gTTAxNyDCq0NhbmNlbGFjacOzbiBkZSBoaXBvdGVjYcK7LicsIGJhc2U6ICdUb2RhIGxhIHJlc3BvbnNhYmlsaWRhZCBoaXBvdGVjYXJpYTogY2FwaXRhbCwgaW50ZXJlc2VzIHkgZ2FzdG9zIHF1ZSBnYXJhbnRpemFiYSBsYSBoaXBvdGVjYS4nLCB1cmw6ICdodHRwczovL2F0di5ndmEuZXMvZXMvdHJhbnNtaXNpb25lcy1wYXRyaW1vbmlhbGVzLXktYWN0b3MtanVyaWRpY29zLWRvY3VtZW50YWRvcycsIHdlYjogJ2F0di5ndmEuZXMnIH0sCiAgICB7IGlkOiAnZXh0cmVtYWR1cmEnLCBuOiAnRXh0cmVtYWR1cmEnLCBvcmc6ICdKdW50YSBkZSBFeHRyZW1hZHVyYSDCtyBUcmlidXRvcycsIG1vZDogJ01vZGVsbyA2MDAnLCBwOiBbJ20nLCAxXSwgdXJsOiAnaHR0cHM6Ly9wb3J0YWx0cmlidXRhcmlvLmp1bnRhZXguZXMvUG9ydGFsVHJpYnV0YXJpby93ZWIvZ3Vlc3QvcHB0NjAwJywgd2ViOiAncG9ydGFsdHJpYnV0YXJpby5qdW50YWV4LmVzJyB9LAogICAgeyBpZDogJ2dhbGljaWEnLCBuOiAnR2FsaWNpYScsIG9yZzogJ0F4ZW5jaWEgVHJpYnV0YXJpYSBkZSBHYWxpY2lhJywgbW9kOiAnTW9kZWxvIDYwMCcsIHA6IFsnbScsIDFdLCB1cmw6ICdodHRwczovL3d3dy5hdHJpZ2EuZ2FsJywgd2ViOiAnYXRyaWdhLmdhbCcgfSwKICAgIHsgaWQ6ICdtYWRyaWQnLCBuOiAnQ29tdW5pZGFkIGRlIE1hZHJpZCcsIG9yZzogJ0RpcmVjY2nDs24gR2VuZXJhbCBkZSBUcmlidXRvcyBkZSBsYSBDb211bmlkYWQgZGUgTWFkcmlkJywgbW9kOiAnTW9kZWxvIDYwMScsIHA6IFsnaCcsIDMwXSwgYXZpc286ICdFbiBNYWRyaWQgbGEgY2FuY2VsYWNpw7NuIG5vIHNlIGRlY2xhcmEgZW4gZWwgbW9kZWxvIDYwMCwgc2lubyBlbiBlbCA2MDEgZGUgQWN0b3MgSnVyw61kaWNvcyBEb2N1bWVudGFkb3MuJywgdXJsOiAnaHR0cHM6Ly93d3cuY29tdW5pZGFkLm1hZHJpZC9hdGVuY2lvbi1jb250cmlidXllbnRlL2FjdG9zLWp1cmlkaWNvcy1kb2N1bWVudGFkb3MnLCB3ZWI6ICdjb211bmlkYWQubWFkcmlkJyB9LAogICAgeyBpZDogJ211cmNpYScsIG46ICdSZWdpw7NuIGRlIE11cmNpYScsIG9yZzogJ0FnZW5jaWEgVHJpYnV0YXJpYSBkZSBsYSBSZWdpw7NuIGRlIE11cmNpYScsIG1vZDogJ01vZGVsbyA2MDAnLCBwOiBbJ2gnLCAzMF0sIHVybDogJ2h0dHBzOi8vYWdlbmNpYXRyaWJ1dGFyaWEuY2FybS5lcycsIHdlYjogJ2FnZW5jaWF0cmlidXRhcmlhLmNhcm0uZXMnIH0sCiAgICB7IGlkOiAnbmF2YXJyYScsIG46ICdOYXZhcnJhJywgb3JnOiAnSGFjaWVuZGEgRm9yYWwgZGUgTmF2YXJyYScsIG1vZDogJ01vZGVsbyA2MDUnLCBwOiBbJ20nLCAyXSwgZm9yYWxOOiB0cnVlLCBhdmlzbzogJ0VuIE5hdmFycmEgbGEgY2FuY2VsYWNpw7NuIHNlIGRlY2xhcmEgZW4gZWwgbW9kZWxvIDYwNSBkZSBBY3RvcyBKdXLDrWRpY29zIERvY3VtZW50YWRvcywgbm8gZW4gZWwgNjAwLicsIHVybDogJ2h0dHBzOi8vd3d3Lm5hdmFycmEuZXMnLCB3ZWI6ICduYXZhcnJhLmVzIChIYWNpZW5kYSBGb3JhbCknIH0sCiAgICB7IGlkOiAncmlvamEnLCBuOiAnTGEgUmlvamEnLCBvcmc6ICdEaXJlY2Npw7NuIEdlbmVyYWwgZGUgVHJpYnV0b3MgZGUgTGEgUmlvamEnLCBtb2Q6ICdNb2RlbG8gNjAwJywgcDogWydoJywgMzBdLCB1cmw6ICdodHRwczovL3d3dy5sYXJpb2phLm9yZy90cmlidXRvcy9lcycsIHdlYjogJ2xhcmlvamEub3JnL3RyaWJ1dG9zJyB9LAogICAgeyBpZDogJ2FsYXZhJywgbjogJ8OBbGF2YScsIG9yZzogJ0hhY2llbmRhIEZvcmFsIGRlIMOBbGF2YScsIG1vZDogJ01vZGVsbyA2MDBQJywgcDogWydoJywgMzBdLCBmb3JhbDogdHJ1ZSwgYXZpc286ICdFbiDDgWxhdmEgbGEgY2FuY2VsYWNpw7NuIHNlIGRlY2xhcmEgZW4gZWwgbW9kZWxvIDYwMFAgZGUgcHLDqXN0YW1vcyB5IGdhcmFudMOtYXMuJywgdXJsOiAnaHR0cHM6Ly9lZ29pdHphLmFyYWJhLmV1cycsIHdlYjogJ2Vnb2l0emEuYXJhYmEuZXVzJyB9LAogICAgeyBpZDogJ2JpemthaWEnLCBuOiAnQml6a2FpYScsIG9yZzogJ0hhY2llbmRhIEZvcmFsIGRlIEJpemthaWEnLCBtb2Q6ICdNb2RlbG8gNjAwJywgcDogWydoJywgMzBdLCBmb3JhbDogdHJ1ZSwgY29uOiAnQ8OzZGlnbyBOMDUgwqtDYW5jZWxhY2nDs24gZGUgaGlwb3RlY2HCuyB5IGV4ZW5jacOzbiBFNTAuJywgYmFzZTogJ0VsIHByaW5jaXBhbCBkZWwgcHLDqXN0YW1vIHF1ZSBzZSBjYW5jZWxhLicsIHVybDogJ2h0dHBzOi8vd3d3LmJpemthaWEuZXVzL29nYXN1bmEnLCB3ZWI6ICdiaXprYWlhLmV1cy9vZ2FzdW5hJyB9LAogICAgeyBpZDogJ2dpcHV6a29hJywgbjogJ0dpcHV6a29hJywgb3JnOiAnSGFjaWVuZGEgRm9yYWwgZGUgR2lwdXprb2EnLCBtb2Q6ICdNb2RlbG8gNjBBJywgcDogWydoJywgMzBdLCBmb3JhbDogdHJ1ZSwgYXZpc286ICdFbiBHaXB1emtvYSBsYSBjYW5jZWxhY2nDs24gc2UgZGVjbGFyYSBlbiBlbCBtb2RlbG8gNjBBIGRlIEFjdG9zIEp1csOtZGljb3MgRG9jdW1lbnRhZG9zLicsIHVybDogJ2h0dHBzOi8vd3d3LmdpcHV6a29hLmV1cy9lcy93ZWIvb2dhc3VuYScsIHdlYjogJ2dpcHV6a29hLmV1cy9vZ2FzdW5hJyB9LAogICAgeyBpZDogJ2NldXRhJywgbjogJ0NldXRhJywgb3JnOiAnQWdlbmNpYSBUcmlidXRhcmlhIChBRUFUKScsIG1vZDogJ01vZGVsbyA2MDAgZGUgbGEgQUVBVCcsIHA6IFsnaCcsIDMwXSwgdXJsOiAnaHR0cHM6Ly9zZWRlLmFnZW5jaWF0cmlidXRhcmlhLmdvYi5lcy9TZWRlL3Byb2NlZGltaWVudG9pbmkvR0MxMi5zaHRtbCcsIHdlYjogJ3NlZGUuYWdlbmNpYXRyaWJ1dGFyaWEuZ29iLmVzJyB9LAogICAgeyBpZDogJ21lbGlsbGEnLCBuOiAnTWVsaWxsYScsIG9yZzogJ0FnZW5jaWEgVHJpYnV0YXJpYSAoQUVBVCknLCBtb2Q6ICdNb2RlbG8gNjAwIGRlIGxhIEFFQVQnLCBwOiBbJ2gnLCAzMF0sIHVybDogJ2h0dHBzOi8vc2VkZS5hZ2VuY2lhdHJpYnV0YXJpYS5nb2IuZXMvU2VkZS9wcm9jZWRpbWllbnRvaW5pL0dDMTIuc2h0bWwnLCB3ZWI6ICdzZWRlLmFnZW5jaWF0cmlidXRhcmlhLmdvYi5lcycgfQogIF07CiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgogIHZhciBGT05UX0lEID0gJ3BjYS1tYW5yb3BlLWZvbnQnOwogIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoRk9OVF9JRCkpIHsKICAgIHZhciBsayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKICAgIGxrLmlkID0gRk9OVF9JRDsgbGsucmVsID0gJ3N0eWxlc2hlZXQnOwogICAgbGsuaHJlZiA9ICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI\/ZmFtaWx5PU1hbnJvcGU6d2dodEA0MDA7NTAwOzYwMDs3MDA7ODAwJmRpc3BsYXk9c3dhcCc7CiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxrKTsKICB9CiAgdmFyIENTUyA9IFsKICAgICc6aG9zdHthbGw6aW5pdGlhbDtkaXNwbGF5OmJsb2NrfScsCiAgICAnKiwqOjpiZWZvcmUsKjo6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0nLAogICAgJy53e2ZvbnQtZmFtaWx5OiJNYW5yb3BlIixzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSwiU2Vnb2UgVUkiLFJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojMDMwMDdBO2JhY2tncm91bmQ6I0ZGRkZGRjtib3JkZXI6MXB4IHNvbGlkICNEN0VBRjk7Ym9yZGVyLXJhZGl1czoyNHB4O292ZXJmbG93OmhpZGRlbjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO3RleHQtYWxpZ246bGVmdH0nLAogICAgJy5oZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMjVkZWcsIzAzMDA3QSAwJSwjMDMwMDdBIDQ1JSwjMTFBRUZBIDE1MCUpO2NvbG9yOiNGRkZGRkY7cGFkZGluZzoyNHB4IDIwcHggMjBweH0nLAogICAgJy5raWNre2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojRkZGRkZGO29wYWNpdHk6Ljg1fScsCiAgICAnLnRpdGxle2ZvbnQtc2l6ZToyM3B4O2xpbmUtaGVpZ2h0OjEuMjI7Zm9udC13ZWlnaHQ6ODAwO21hcmdpbi10b3A6NnB4O2NvbG9yOiNGRkZGRkY7bGV0dGVyLXNwYWNpbmc6LS4wMWVtfScsCiAgICAnLnRpdGxlIGVte2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOiMxMUFFRkF9JywKICAgICcuc3Vie2ZvbnQtc2l6ZToxNXB4O21hcmdpbi10b3A6OHB4O2NvbG9yOiNGRkZGRkY7b3BhY2l0eTouOX0nLAogICAgJy5wcm9ne2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7bWFyZ2luLXRvcDoxOHB4fScsCiAgICAnLmJhcntmbGV4OjE7aGVpZ2h0OjZweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjIyKTtib3JkZXItcmFkaXVzOjk5cHg7b3ZlcmZsb3c6aGlkZGVufScsCiAgICAnLmJhciBzcGFue2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojMTFBRUZBO2JvcmRlci1yYWRpdXM6OTlweDt0cmFuc2l0aW9uOndpZHRoIC4zNXMgZWFzZX0nLAogICAgJy5jb3VudHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6I0ZGRkZGRjt3aGl0ZS1zcGFjZTpub3dyYXB9JywKICAgICcuYmR7cGFkZGluZzoyMnB4IDIwcHggMjRweH0nLAogICAgJy5hbmlte2FuaW1hdGlvbjptNkluIC4yOHMgZWFzZX0nLAogICAgJ0BrZXlmcmFtZXMgbTZJbntmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX19JywKICAgICcucXtmb250LXNpemU6MjFweDtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4yODtvdXRsaW5lOm5vbmV9JywKICAgICcuaGVscHtmb250LXNpemU6MTVweDttYXJnaW4tdG9wOjZweDtjb2xvcjojMDMwMDdBO29wYWNpdHk6Ljh9JywKICAgICcub3B0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZDojRkZGRkZGO2JvcmRlcjoycHggc29saWQgI0Q3RUFGOTtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoxNHB4IDE2cHg7bWluLWhlaWdodDo2MHB4O2ZvbnQ6aW5oZXJpdDtjb2xvcjojMDMwMDdBO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMsYmFja2dyb3VuZC1jb2xvciAuMTVzfScsCiAgICAnLm9wdDpob3Zlcntib3JkZXItY29sb3I6IzExQUVGQTtiYWNrZ3JvdW5kOiNFRkY3RkR9JywKICAgICcub3B0W2FyaWEtcHJlc3NlZD0idHJ1ZSJde2JvcmRlci1jb2xvcjojMTFBRUZBO2JhY2tncm91bmQ6I0VGRjdGRDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMTFBRUZBfScsCiAgICAnLm9wdCBie2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuM30nLAogICAgJy5vcHQgc21hbGx7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTRweDtvcGFjaXR5Oi43NTttYXJnaW4tdG9wOjJweH0nLAogICAgJy5zZWd7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjhweDttYXJnaW4tdG9wOjhweH0nLAogICAgJ2J1dHRvbjpmb2N1cy12aXNpYmxlLGlucHV0OmZvY3VzLXZpc2libGUsc2VsZWN0OmZvY3VzLXZpc2libGUsYTpmb2N1cy12aXNpYmxle291dGxpbmU6M3B4IHNvbGlkICMxMUFFRkE7b3V0bGluZS1vZmZzZXQ6MnB4fScsCiAgICAnLm5hdntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O21hcmdpbi10b3A6MjJweDtmbGV4LXdyYXA6d3JhcH0nLAogICAgJy5iYWNre2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MDtmb250OmluaGVyaXQ7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwMzAwN0E7ZGlzcGxheTppbmxpbmUtZmxleDtnYXA6NnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjEwcHggMnB4O21pbi1oZWlnaHQ6NDhweDtjdXJzb3I6cG9pbnRlcn0nLAogICAgJy5iYWNrIHN2Z3t3aWR0aDoxOHB4O2hlaWdodDoxOHB4fScsCiAgICAnLmJ0bntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6IzExQUVGQTtjb2xvcjojMDMwMDdBO2JvcmRlcjoycHggc29saWQgIzExQUVGQTtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6MTNweCAyNHB4O2ZvbnQ6aW5oZXJpdDtmb250LXNpemU6MTdweDtmb250LXdlaWdodDo4MDA7bWluLWhlaWdodDo1MnB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMTVzO21hcmdpbi1sZWZ0OmF1dG87dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1hbGlnbjpjZW50ZXJ9JywKICAgICcuYnRuOmhvdmVye2JhY2tncm91bmQ6IzBGQTBFOH0nLAogICAgJy5idG5bZGlzYWJsZWRde29wYWNpdHk6LjQ1O2N1cnNvcjpub3QtYWxsb3dlZH0nLAogICAgJy5idG4ub3tiYWNrZ3JvdW5kOiNGRkZGRkY7bWFyZ2luLWxlZnQ6MH0nLAogICAgJy5idG4ubzpob3ZlcntiYWNrZ3JvdW5kOiNFRkY3RkR9JywKICAgICcuYnRuIHN2Z3t3aWR0aDoxOHB4O2hlaWdodDoxOHB4O21hcmdpbi1yaWdodDo4cHh9JywKICAgICcuZmllbGR7bWFyZ2luLXRvcDoxOHB4fScsCiAgICAnLmZpZWxkIGxhYmVsLC5maWVsZCAubGJse2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNnB4fScsCiAgICAnLmZpZWxkIC5oaW50e2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE0cHg7b3BhY2l0eTouNzU7bWFyZ2luLXRvcDoycHh9JywKICAgICcuaW5we3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjJweCBzb2xpZCAjRDdFQUY5O2JvcmRlci1yYWRpdXM6MTZweDttYXJnaW4tdG9wOjhweDtiYWNrZ3JvdW5kOiNGRkZGRkY7cGFkZGluZzowIDE2cHg7bWluLWhlaWdodDo1OHB4fScsCiAgICAnLmlucDpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOiMxMUFFRkF9JywKICAgICcuaW5wIGlucHV0LC5pbnAgc2VsZWN0e2JvcmRlcjowO291dGxpbmU6MDtmb250OmluaGVyaXQ7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwMzAwN0E7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BhZGRpbmc6MTJweCAwO21pbi13aWR0aDowfScsCiAgICAnLmlucCBzZWxlY3R7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO3BhZGRpbmctcmlnaHQ6MjhweDtjdXJzb3I6cG9pbnRlcn0nLAogICAgJy5pbnAgLmNoZXZ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTZweDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2NvbG9yOiMxMUFFRkE7cG9pbnRlci1ldmVudHM6bm9uZX0nLAogICAgJy5jaGlwe2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6ODAwO2JvcmRlci1yYWRpdXM6OTlweDtwYWRkaW5nOjdweCAxNHB4IDdweCA4cHh9JywKICAgICcuY2hpcCBpe2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNGRkQ4NUE7Y29sb3I6IzAzMDA3QX0nLAogICAgJy5jaGlwIGkgc3Zne3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHh9JywKICAgICcuY2hpcC5sMHtiYWNrZ3JvdW5kOiNEN0VBRjk7Y29sb3I6IzAzMDA3QX0nLAogICAgJy5jaGlwLmwxe2JhY2tncm91bmQ6I0ZGRkZGRjtjb2xvcjojMDMwMDdBO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4ICNGRkQ4NUF9JywKICAgICcuY2hpcC5sMntiYWNrZ3JvdW5kOiMwMzAwN0E7Y29sb3I6I0ZGRkZGRn0nLAogICAgJy52ZXJkaWN0e2JvcmRlcjoycHggc29saWQgI0Q3RUFGOTtib3JkZXItcmFkaXVzOjE4cHg7cGFkZGluZzoyMHB4IDE4cHg7bWFyZ2luLWJvdHRvbToxMnB4fScsCiAgICAnLnItdHtmb250LXNpemU6MjJweDtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4yNTttYXJnaW4tdG9wOjEycHg7b3V0bGluZTpub25lfScsCiAgICAnLnItc3ttYXJnaW4tdG9wOjhweDtmb250LXNpemU6MTZweH0nLAogICAgJy5jYXJke2JhY2tncm91bmQ6I0VGRjdGRDtib3JkZXItcmFkaXVzOjE4cHg7cGFkZGluZzoxOHB4fScsCiAgICAnLmxhYntmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7b3BhY2l0eTouOH0nLAogICAgJy5iaWd7Zm9udC1zaXplOjI4cHg7Zm9udC13ZWlnaHQ6ODAwO2xpbmUtaGVpZ2h0OjEuMTU7bWFyZ2luLXRvcDo0cHg7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfScsCiAgICAnLm5vdGV7Zm9udC1zaXplOjE1cHg7bWFyZ2luLXRvcDo2cHh9JywKICAgICcucm93c3ttYXJnaW4tdG9wOjEwcHg7Zm9udC1zaXplOjE1cHh9JywKICAgICcucm93cyBwe2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDtwYWRkaW5nOjZweCAwO2JvcmRlci10b3A6MXB4IHNvbGlkICNEN0VBRjl9JywKICAgICcucm93cyBwOmZpcnN0LWNoaWxke2JvcmRlci10b3A6MH0nLAogICAgJy5yb3dzIHNwYW57b3BhY2l0eTouOH0nLAogICAgJy5yb3dzIGJ7Zm9udC13ZWlnaHQ6ODAwO3RleHQtYWxpZ246cmlnaHQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX0nLAogICAgJy5yb3dzIGF7Y29sb3I6IzAzMDA3QX0nLAogICAgJy5zZWN7bWFyZ2luLXRvcDoyNHB4fScsCiAgICAnLnNlYyBoNHtmb250LXNpemU6MThweDtmb250LXdlaWdodDo4MDB9JywKICAgICcubGl7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7bWFyZ2luLXRvcDoxNHB4O2ZvbnQtc2l6ZToxNnB4fScsCiAgICAnLmxpIGJ7Zm9udC13ZWlnaHQ6NzAwfScsCiAgICAnLmxpIHB7bWluLXdpZHRoOjB9JywKICAgICcuaWN7ZmxleDpub25lO3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojRkZEODVBO2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7Y29sb3I6IzAzMDA3QTttYXJnaW4tdG9wOi0ycHh9JywKICAgICcuaWMgc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHh9JywKICAgICcuY2hre2xpc3Qtc3R5bGU6bm9uZTttYXJnaW4tdG9wOjEwcHh9JywKICAgICcuY2hrIGxpe2Rpc3BsYXk6ZmxleDtnYXA6MTBweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmc6OXB4IDA7Ym9yZGVyLXRvcDoxcHggc29saWQgI0Q3RUFGOTtmb250LXNpemU6MTVweH0nLAogICAgJy5jaGsgbGk6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcDowfScsCiAgICAnLmNoayBsaSBlbXtmbGV4Om5vbmU7Zm9udC1zdHlsZTpub3JtYWw7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNEN0VBRjk7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo4MDB9JywKICAgICcuY2hrIGJ7Zm9udC13ZWlnaHQ6ODAwfScsCiAgICAnLmxpbmt7Y29sb3I6IzAzMDA3QTtmb250LXdlaWdodDo3MDB9JywKICAgICcuY3Rhe2JhY2tncm91bmQ6IzAzMDA3QTtjb2xvcjojRkZGRkZGO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjIwcHggMThweDttYXJnaW4tdG9wOjI0cHh9JywKICAgICcuY3RhIHAuaHtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4yNX0nLAogICAgJy5jdGEgcC50e2ZvbnQtc2l6ZToxNXB4O21hcmdpbi10b3A6NnB4O29wYWNpdHk6Ljl9JywKICAgICcuY3RhIC5idG57bWFyZ2luOjE2cHggMCAwO3dpZHRoOjEwMCV9JywKICAgICcub2stbXNne2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tdG9wOjhweDttaW4taGVpZ2h0OjIwcHh9JywKICAgICcuZnR7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS40NTtjb2xvcjojNkQ2RDZEO21hcmdpbjowIDIwcHg7cGFkZGluZzoxNHB4IDAgMjBweDtib3JkZXItdG9wOjFweCBzb2xpZCAjRDdFQUY5fScsCiAgICAnLmFjdHN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MjJweDthbGlnbi1pdGVtczpjZW50ZXJ9JywKICAgICcuYWN0cyAuYnRue21hcmdpbi1sZWZ0OjB9JywKICAgICdAbWVkaWEgKG1pbi13aWR0aDo2NDBweCl7Lmhke3BhZGRpbmc6MzBweCAzMnB4IDI0cHh9LmJke3BhZGRpbmc6MjhweCAzMnB4IDMwcHh9LnRpdGxle2ZvbnQtc2l6ZToyOHB4fS5xe2ZvbnQtc2l6ZToyM3B4fS5yLXR7Zm9udC1zaXplOjI1cHh9LmJpZ3tmb250LXNpemU6MjZweH0uZnR7bWFyZ2luOjAgMzJweDtwYWRkaW5nOjE2cHggMCAyNHB4fS5jdGEgLmJ0bnt3aWR0aDphdXRvfX0nLAogICAgJ0BtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5hbmlte2FuaW1hdGlvbjpub25lfS5iYXIgc3Bhbiwub3B0LC5idG57dHJhbnNpdGlvbjpub25lfX0nCiAgXS5qb2luKCcnKTsKICB2YXIgU1YgPSAnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiJzsKICB2YXIgSSA9IHsKICAgIGJhY2s6ICc8c3ZnJyArIFNWICsgJyBzdHJva2Utd2lkdGg9IjIuNCI+PHBhdGggZD0iTTE1IDZsLTYgNiA2IDYiLz48L3N2Zz4nLAogICAgY2hldjogJzxzdmcgY2xhc3M9ImNoZXYiJyArIFNWICsgJyBzdHJva2Utd2lkdGg9IjIuNCI+PHBhdGggZD0iTTYgOWw2IDYgNi02Ii8+PC9zdmc+JywKICAgIGNoZWNrOiAnPHN2ZycgKyBTViArICcgc3Ryb2tlLXdpZHRoPSIyLjgiPjxwYXRoIGQ9Ik01IDEyLjVsNC41IDQuNUwxOSA3LjUiLz48L3N2Zz4nLAogICAgYWxlcnQ6ICc8c3ZnJyArIFNWICsgJyBzdHJva2Utd2lkdGg9IjIuNiI+PHBhdGggZD0iTTEyIDYuNXY3Ii8+PHBhdGggZD0iTTEyIDE3LjVoLjAxIi8+PC9zdmc+JywKICAgIGluZm86ICc8c3ZnJyArIFNWICsgJyBzdHJva2Utd2lkdGg9IjIuNCI+PHBhdGggZD0iTTEyIDExdjYiLz48cGF0aCBkPSJNMTIgN2guMDEiLz48L3N2Zz4nLAogICAgZGw6ICc8c3ZnJyArIFNWICsgJyBzdHJva2Utd2lkdGg9IjIuMiI+PHBhdGggZD0iTTEyIDR2MTEiLz48cGF0aCBkPSJNNyAxMGw1IDUgNS01Ii8+PHBhdGggZD0iTTUgMjBoMTQiLz48L3N2Zz4nCiAgfTsKICB2YXIgTUVTID0gWydlbmVybycsICdmZWJyZXJvJywgJ21hcnpvJywgJ2FicmlsJywgJ21heW8nLCAnanVuaW8nLCAnanVsaW8nLCAnYWdvc3RvJywgJ3NlcHRpZW1icmUnLCAnb2N0dWJyZScsICdub3ZpZW1icmUnLCAnZGljaWVtYnJlJ107CiAgdmFyIERJQSA9IFsnZG9taW5nbycsICdsdW5lcycsICdtYXJ0ZXMnLCAnbWnDqXJjb2xlcycsICdqdWV2ZXMnLCAndmllcm5lcycsICdzw6FiYWRvJ107CiAgZnVuY3Rpb24gZXNjKHMpIHsgcmV0dXJuIFN0cmluZyhzKS5yZXBsYWNlKC9bJjw+Il0vZywgZnVuY3Rpb24gKGMpIHsgcmV0dXJuIHsgJyYnOiAnJmFtcDsnLCAnPCc6ICcmbHQ7JywgJz4nOiAnJmd0OycsICciJzogJyZxdW90OycgfVtjXTsgfSk7IH0KICBmdW5jdGlvbiBpc28oZCkgeyBmdW5jdGlvbiB6KG4pIHsgcmV0dXJuIChuIDwgMTAgPyAnMCcgOiAnJykgKyBuOyB9IHJldHVybiBkLmdldEZ1bGxZZWFyKCkgKyAnLScgKyB6KGQuZ2V0TW9udGgoKSArIDEpICsgJy0nICsgeihkLmdldERhdGUoKSk7IH0KICBmdW5jdGlvbiBwZChzKSB7IHZhciBtID0gL14oXGR7NH0pLShcZHsyfSktKFxkezJ9KSQvLmV4ZWMocyB8fCAnJyk7IGlmICghbSB8fCArbVsxXSA8IDE5OTApIHJldHVybiBudWxsOyB2YXIgZCA9IG5ldyBEYXRlKCttWzFdLCArbVsyXSAtIDEsICttWzNdKTsgcmV0dXJuIGlzTmFOKGQpID8gbnVsbCA6IGQ7IH0KICBmdW5jdGlvbiB0b2RheSgpIHsgdmFyIHQgPSBuZXcgRGF0ZSgpOyByZXR1cm4gbmV3IERhdGUodC5nZXRGdWxsWWVhcigpLCB0LmdldE1vbnRoKCksIHQuZ2V0RGF0ZSgpKTsgfQogIGZ1bmN0aW9uIGluaChkKSB7IHZhciB3ID0gZC5nZXREYXkoKTsgcmV0dXJuIHcgPT09IDAgfHwgdyA9PT0gNiB8fCBDRkcuZmVzdC5pbmRleE9mKGlzbyhkKSkgPiAtMTsgfQogIGZ1bmN0aW9uIGFkZChkLCBuKSB7IHZhciByID0gbmV3IERhdGUoZCk7IHIuc2V0RGF0ZShyLmdldERhdGUoKSArIG4pOyByZXR1cm4gcjsgfQogIGZ1bmN0aW9uIGxpbWl0ZShmLCBwKSB7CiAgICB2YXIgcjsKICAgIGlmIChwWzBdID09PSAnbScpIHsKICAgICAgdmFyIHkgPSBmLmdldEZ1bGxZZWFyKCksIG0gPSBmLmdldE1vbnRoKCkgKyBwWzFdLCBsYXN0ID0gbmV3IERhdGUoeSwgbSArIDEsIDApLmdldERhdGUoKTsKICAgICAgciA9IG5ldyBEYXRlKHksIG0sIE1hdGgubWluKGYuZ2V0RGF0ZSgpLCBsYXN0KSk7CiAgICAgIHdoaWxlIChpbmgocikpIHIgPSBhZGQociwgMSk7CiAgICB9IGVsc2UgewogICAgICByID0gbmV3IERhdGUoZik7IHZhciBjID0gMDsKICAgICAgd2hpbGUgKGMgPCBwWzFdKSB7IHIgPSBhZGQociwgMSk7IGlmICghaW5oKHIpKSBjKys7IH0KICAgIH0KICAgIHJldHVybiByOwogIH0KICBmdW5jdGlvbiBmZChkKSB7IHJldHVybiBkLmdldERhdGUoKSArICcgZGUgJyArIE1FU1tkLmdldE1vbnRoKCldICsgJyBkZSAnICsgZC5nZXRGdWxsWWVhcigpOyB9CiAgZnVuY3Rpb24gZmwoZCkgeyByZXR1cm4gRElBW2QuZ2V0RGF5KCldICsgJywgJyArIGZkKGQpOyB9CiAgZnVuY3Rpb24gZnMoZCkgeyBmdW5jdGlvbiB6KG4pIHsgcmV0dXJuIChuIDwgMTAgPyAnMCcgOiAnJykgKyBuOyB9IHJldHVybiB6KGQuZ2V0RGF0ZSgpKSArICcvJyArIHooZC5nZXRNb250aCgpICsgMSkgKyAnLycgKyBkLmdldEZ1bGxZZWFyKCk7IH0KICBmdW5jdGlvbiBwdHh0KHApIHsgcmV0dXJuIHBbMF0gPT09ICdtJyA\/IChwWzFdID09PSAxID8gJzEgbWVzJyA6IHBbMV0gKyAnIG1lc2VzJykgKyAnIGRlc2RlIGxhIGZpcm1hLCBkZSBmZWNoYSBhIGZlY2hhJyA6IHBbMV0gKyAnIGTDrWFzIGjDoWJpbGVzIGRlc2RlIGVsIGTDrWEgc2lndWllbnRlIGEgbGEgZmlybWEnOyB9CiAgZnVuY3Rpb24gZ2V0KGlkKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgVC5sZW5ndGg7IGkrKykgaWYgKFRbaV0uaWQgPT09IGlkKSByZXR1cm4gVFtpXTsgcmV0dXJuIG51bGw7IH0KICBmdW5jdGlvbiBmcmVzaCgpIHsgcmV0dXJuIHsgaTogMCwgZG9uZTogZmFsc2UsIGNjYWE6ICcnLCBlc2M6ICcnLCBmZWNoYTogJycsIHZoOiAnJywgbW90OiAnJyB9OyB9CgogIGZ1bmN0aW9uIG1vdW50KGhvc3QpIHsKICAgIGlmIChob3N0LmdldEF0dHJpYnV0ZSgnZGF0YS1tNi1yZWFkeScpKSByZXR1cm47CiAgICBob3N0LnNldEF0dHJpYnV0ZSgnZGF0YS1tNi1yZWFkeScsICcxJyk7CiAgICBob3N0LmlubmVySFRNTCA9ICcnOwogICAgdmFyIHJvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTsKICAgIHJvb3QuaW5uZXJIVE1MID0gJzxzdHlsZT4nICsgQ1NTICsgJzwvc3R5bGU+PGRpdiBjbGFzcz0idyIgcm9sZT0icmVnaW9uIiBhcmlhLWxhYmVsPSJBc2lzdGVudGUgZGVsIG1vZGVsbyA2MDAgcGFyYSBsYSBjYW5jZWxhY2nDs24gZGUgdW5hIGhpcG90ZWNhIj48ZGl2IGNsYXNzPSJoZCI+PHAgY2xhc3M9ImtpY2siPkFzaXN0ZW50ZSBlbiAxIG1pbnV0bzwvcD48cCBjbGFzcz0idGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjMiPsK\/UXXDqSBtb2RlbG8gdGUgdG9jYSB5IDxlbT5jdcOhbnRvIHRpZW1wbyB0aWVuZXMgcGFyYSBwcmVzZW50YXJsbz88L2VtPjwvcD48cCBjbGFzcz0ic3ViIj5EZXNjdWJyZSBxdcOpIGZvcm11bGFyaW8gcHJlc2VudGFyIGFsIGNhbmNlbGFyIHR1IGhpcG90ZWNhLCB0dSBmZWNoYSBsw61taXRlIGV4YWN0YSB5IHF1w6kgcG9uZXIgZW4gY2FkYSBjYW1wby48L3A+PGRpdiBjbGFzcz0icHJvZyI+PGRpdiBjbGFzcz0iYmFyIj48c3Bhbj48L3NwYW4+PC9kaXY+PHNwYW4gY2xhc3M9ImNvdW50Ij48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYmQiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj48cCBjbGFzcz0iZnQiPkPDoWxjdWxvIG9yaWVudGF0aXZvIGJhc2FkbyBlbiBsYSBub3JtYXRpdmEgZmlzY2FsIHZpZ2VudGUgZW4gJyArIENGRy55ZWFyICsgJy4gRW4gbmluZ8O6biBjYXNvIHN1c3RpdHV5ZSBlbCBhc2Vzb3JhbWllbnRvIHByb2Zlc2lvbmFsLiBQYXJhIHNpdHVhY2lvbmVzIGNvbXBsZWphcywgY29uc3VsdGEgY29uIHVuIGdlc3RvciBlc3BlY2lhbGl6YWRvLjwvcD48L2Rpdj4nOwogICAgdmFyIGJkID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuYmQnKSwgZmlsbEJhciA9IHJvb3QucXVlcnlTZWxlY3RvcignLmJhciBzcGFuJyksIGNvdW50ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuY291bnQnKTsKICAgIHZhciBTID0gZnJlc2goKSwgc3RhcnRlZCA9IGZhbHNlLCBsYXN0ID0gbnVsbDsKCiAgICBmdW5jdGlvbiBuZWVkRGF0YSgpIHsgdmFyIHQgPSBnZXQoUy5jY2FhKTsgcmV0dXJuICEhdCAmJiBTLmVzYyAhPT0gJ2NhZCcgJiYgKChTLmVzYyA9PT0gJ3NpJyAmJiAhdC5ub09iKSB8fCAhIXQuZm9yYWwpOyB9CiAgICBmdW5jdGlvbiBzdGVwcygpIHsgdmFyIHMgPSBbJ2NjYWEnLCAnZXNjJ107IGlmIChuZWVkRGF0YSgpKSBzLnB1c2goJ2RhdG9zJyk7IHMucHVzaCgnbW90Jyk7IHJldHVybiBzOyB9CiAgICBmdW5jdGlvbiBvayhrKSB7CiAgICAgIGlmIChrID09PSAnY2NhYScpIHJldHVybiAhIWdldChTLmNjYWEpOwogICAgICBpZiAoayA9PT0gJ2VzYycpIHJldHVybiAhIVMuZXNjOwogICAgICBpZiAoayA9PT0gJ2RhdG9zJykgewogICAgICAgIHZhciB0ID0gZ2V0KFMuY2NhYSksIGEgPSB0cnVlOwogICAgICAgIGlmIChTLmVzYyA9PT0gJ3NpJyAmJiAhdC5ub09iKSB7IHZhciBkID0gcGQoUy5mZWNoYSk7IGEgPSAhIWQgJiYgZCA8PSB0b2RheSgpOyB9CiAgICAgICAgaWYgKHQuZm9yYWwpIGEgPSBhICYmICEhUy52aDsKICAgICAgICByZXR1cm4gYTsKICAgICAgfQogICAgICBpZiAoayA9PT0gJ21vdCcpIHJldHVybiAhIVMubW90OwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIGZ1bmN0aW9uIHByb2dyZXNzKCkgewogICAgICB2YXIgc3QgPSBzdGVwcygpOwogICAgICBpZiAoUy5kb25lKSB7IGZpbGxCYXIuc3R5bGUud2lkdGggPSAnMTAwJSc7IGNvdW50LnRleHRDb250ZW50ID0gJ1R1IHJlc3VsdGFkbyc7IHJldHVybjsgfQogICAgICBmaWxsQmFyLnN0eWxlLndpZHRoID0gTWF0aC5yb3VuZCgoUy5pIC8gc3QubGVuZ3RoKSAqIDEwMCkgKyAnJSc7CiAgICAgIGNvdW50LnRleHRDb250ZW50ID0gJ1Bhc28gJyArIChTLmkgKyAxKSArICcgZGUgJyArIHN0Lmxlbmd0aDsKICAgIH0KICAgIGZ1bmN0aW9uIGJhY2tCdG4obGFiZWwpIHsgcmV0dXJuICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJhY2siIGRhdGEtYWN0PSJiYWNrIj4nICsgSS5iYWNrICsgKGxhYmVsIHx8ICdBdHLDoXMnKSArICc8L2J1dHRvbj4nOyB9CiAgICBmdW5jdGlvbiBuYXYocmlnaHQpIHsgcmV0dXJuICc8ZGl2IGNsYXNzPSJuYXYiPicgKyAoUy5pID4gMCA\/IGJhY2tCdG4oKSA6ICcnKSArIHJpZ2h0ICsgJzwvZGl2Pic7IH0KICAgIGZ1bmN0aW9uIG5leHRCdG4oaywgbGFiZWwpIHsgcmV0dXJuICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biIgZGF0YS1hY3Q9Im5leHQiJyArIChvayhrKSA\/ICcnIDogJyBkaXNhYmxlZCcpICsgJz4nICsgKGxhYmVsIHx8ICdDb250aW51YXInKSArICc8L2J1dHRvbj4nOyB9CiAgICBmdW5jdGlvbiBzZWcoa2V5LCBsYWJlbCwgbGlzdCwgaGludCkgewogICAgICB2YXIgaCA9ICc8ZGl2IGNsYXNzPSJmaWVsZCI+PHNwYW4gY2xhc3M9ImxibCIgaWQ9Im02LScgKyBrZXkgKyAnLWwiPicgKyBsYWJlbCArICc8L3NwYW4+JyArIChoaW50ID8gJzxzcGFuIGNsYXNzPSJoaW50Ij4nICsgaGludCArICc8L3NwYW4+JyA6ICcnKSArICc8ZGl2IGNsYXNzPSJzZWciIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsbGVkYnk9Im02LScgKyBrZXkgKyAnLWwiPic7CiAgICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAobykgeyBoICs9ICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im9wdCIgZGF0YS1zPSInICsga2V5ICsgJyIgZGF0YS12PSInICsgb1swXSArICciIGFyaWEtcHJlc3NlZD0iJyArIChTW2tleV0gPT09IG9bMF0pICsgJyI+PHNwYW4+PGI+JyArIG9bMV0gKyAnPC9iPicgKyAob1syXSA\/ICc8c21hbGw+JyArIG9bMl0gKyAnPC9zbWFsbD4nIDogJycpICsgJzwvc3Bhbj48L2J1dHRvbj4nOyB9KTsKICAgICAgcmV0dXJuIGggKyAnPC9kaXY+PC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHZpZXdTdGVwKGspIHsKICAgICAgdmFyIGggPSAnJzsKICAgICAgaWYgKGsgPT09ICdjY2FhJykgewogICAgICAgIGggKz0gJzxwIGNsYXNzPSJxIiB0YWJpbmRleD0iLTEiPsK\/RMOzbmRlIGVzdMOhIGxhIHZpdmllbmRhIGhpcG90ZWNhZGE\/PC9wPjxwIGNsYXNzPSJoZWxwIj5FbCBtb2RlbG8geSBlbCBwbGF6byBkZXBlbmRlbiBkZSBsYSBjb211bmlkYWQgZG9uZGUgZXN0w6EgZWwgaW5tdWVibGUsIG5vIGRlIGTDs25kZSB2aXZlcyB0w7ouPC9wPic7CiAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9Im02LWNjYWEiPkNvbXVuaWRhZCBvIHRlcnJpdG9yaW88L2xhYmVsPjxkaXYgY2xhc3M9ImlucCI+PHNlbGVjdCBpZD0ibTYtY2NhYSIgZGF0YS1mPSJjY2FhIj48b3B0aW9uIHZhbHVlPSIiPkVsaWdlIHVuYSBvcGNpw7NuPC9vcHRpb24+JzsKICAgICAgICBULmZvckVhY2goZnVuY3Rpb24gKHQpIHsgaCArPSAnPG9wdGlvbiB2YWx1ZT0iJyArIHQuaWQgKyAnIicgKyAoUy5jY2FhID09PSB0LmlkID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicgKyB0Lm4gKyAnPC9vcHRpb24+JzsgfSk7CiAgICAgICAgaCArPSAnPC9zZWxlY3Q+JyArIEkuY2hldiArICc8L2Rpdj48L2Rpdj4nICsgbmF2KG5leHRCdG4oaykpOwogICAgICB9CiAgICAgIGlmIChrID09PSAnZXNjJykgewogICAgICAgIGggKz0gJzxwIGNsYXNzPSJxIiB0YWJpbmRleD0iLTEiPsK\/VGllbmVzIHlhIGxhIGVzY3JpdHVyYSBkZSBjYW5jZWxhY2nDs24\/PC9wPjxwIGNsYXNzPSJoZWxwIj5FbCBwbGF6byBwYXJhIHByZXNlbnRhciBsYSBhdXRvbGlxdWlkYWNpw7NuIGVtcGllemEgYSBjb250YXIgZWwgZMOtYSBxdWUgc2UgZmlybWEgYW50ZSBub3RhcmlvLjwvcD4nOwogICAgICAgIGggKz0gc2VnKCdlc2MnLCAnRWxpZ2UgdHUgc2l0dWFjacOzbicsIFtbJ3NpJywgJ1PDrSwgeWEgbGEgaGUgZmlybWFkbycsICdUZSBjYWxjdWxvIHR1IGZlY2hhIGzDrW1pdGUgZXhhY3RhLiddLCBbJ25vJywgJ1RvZGF2w61hIG5vJywgJ1RlIGV4cGxpY28gcXXDqSBoYWNlciBhbnRlcyB5IGN1w6FudG8gcGxhem8gdGVuZHLDoXMuJ10sIFsnY2FkJywgJ05vLCBtaSBoaXBvdGVjYSBlc3TDoSBjYWR1Y2FkYScsICdTZSBjYW5jZWxhIHBvciBvdHJhIHbDrWEsIHNpbiBlc2NyaXR1cmEuJ11dKTsKICAgICAgICBoICs9IG5hdihuZXh0QnRuKGspKTsKICAgICAgfQogICAgICBpZiAoayA9PT0gJ2RhdG9zJykgewogICAgICAgIHZhciB0ID0gZ2V0KFMuY2NhYSk7CiAgICAgICAgaCArPSAnPHAgY2xhc3M9InEiIHRhYmluZGV4PSItMSI+JyArIChTLmVzYyA9PT0gJ3NpJyAmJiAhdC5ub09iID8gJ8K\/UXXDqSBkw61hIGZpcm1hc3RlIGxhIGVzY3JpdHVyYT8nIDogJ1VuYSBwcmVndW50YSBzb2JyZSB0dSBoaXBvdGVjYScpICsgJzwvcD4nOwogICAgICAgIGlmIChTLmVzYyA9PT0gJ3NpJyAmJiAhdC5ub09iKSB7CiAgICAgICAgICBoICs9ICc8cCBjbGFzcz0iaGVscCI+TGEgZmVjaGEgYXBhcmVjZSBhbCBwcmluY2lwaW8gZGUgbGEgZXNjcml0dXJhLCBqdW50byBhbCBuw7ptZXJvIGRlIHByb3RvY29sby48L3A+JzsKICAgICAgICAgIGggKz0gJzxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJtNi1mZWNoYSI+RmVjaGEgZGUgbGEgZXNjcml0dXJhIGRlIGNhbmNlbGFjacOzbjwvbGFiZWw+PGRpdiBjbGFzcz0iaW5wIj48aW5wdXQgaWQ9Im02LWZlY2hhIiBkYXRhLWY9ImZlY2hhIiB0eXBlPSJkYXRlIiBtYXg9IicgKyBpc28odG9kYXkoKSkgKyAnIiB2YWx1ZT0iJyArIGVzYyhTLmZlY2hhKSArICciPjwvZGl2PjwvZGl2Pic7CiAgICAgICAgfQogICAgICAgIGlmICh0LmZvcmFsKSBoICs9IHNlZygndmgnLCAnwr9MYSBoaXBvdGVjYSBzZSBwaWRpw7MgcGFyYSBjb21wcmFyIG8gcmVoYWJpbGl0YXIgdHUgdml2aWVuZGEgaGFiaXR1YWw\/JywgW1snc2knLCAnU8OtJ10sIFsnbm8nLCAnTm8nLCAnU2VndW5kYSB2aXZpZW5kYSwgbG9jYWwgdSBvdHJvIGRlc3Rpbm8uJ11dLCAnRW4gJyArIHQubiArICcgbGEgZXhlbmNpw7NuIGRlcGVuZGUgZGUgZXN0by4nKTsKICAgICAgICBoICs9IG5hdihuZXh0QnRuKGspKTsKICAgICAgfQogICAgICBpZiAoayA9PT0gJ21vdCcpIHsKICAgICAgICBoICs9ICc8cCBjbGFzcz0icSIgdGFiaW5kZXg9Ii0xIj7Cv1BvciBxdcOpIGNhbmNlbGFzIGxhIGhpcG90ZWNhPzwvcD48cCBjbGFzcz0iaGVscCI+QXPDrSB0ZSBpbmRpY2Ftb3MgZWwgc2lndWllbnRlIHBhc28gcXVlIG3DoXMgdGUgY29udmllbmUuPC9wPic7CiAgICAgICAgaCArPSBzZWcoJ21vdCcsICdFbGlnZSBlbCBtb3Rpdm8nLCBbWyd2ZW5kZXInLCAnVm95IGEgdmVuZGVyIGxhIHZpdmllbmRhJ10sIFsnbWVqb3JhcicsICdRdWllcm8gdW5hIGhpcG90ZWNhIG51ZXZhIG8gY29uIG1lam9yZXMgY29uZGljaW9uZXMnXSwgWydwYWdhZGEnLCAnSGUgdGVybWluYWRvIGRlIHBhZ2FybGEnXV0pOwogICAgICAgIGggKz0gbmF2KG5leHRCdG4oaywgJ1ZlciBtaSByZXN1bHRhZG8nKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGg7CiAgICB9CiAgICBmdW5jdGlvbiBjYW1wb3ModCkgewogICAgICB2YXIgbm9FeCA9IHQuZm9yYWwgJiYgUy52aCA9PT0gJ25vJzsKICAgICAgcmV0dXJuIFsKICAgICAgICBbJ0ZlY2hhIGRlIGRldmVuZ28nLCAnTGEgZmVjaGEgZGUgbGEgZXNjcml0dXJhIGRlIGNhbmNlbGFjacOzbi4nXSwKICAgICAgICBbJ1RpcG8gZGUgZG9jdW1lbnRvJywgJ05vdGFyaWFsLiBBw7FhZGUgZWwgbm90YXJpbywgZWwgbsO6bWVybyBkZSBwcm90b2NvbG8geSBlbCBhw7FvLCBxdWUgZXN0w6FuIGFsIHByaW5jaXBpbyBkZSBsYSBlc2NyaXR1cmEuJ10sCiAgICAgICAgWydTdWpldG8gcGFzaXZvJywgJ1F1aWVuIHBpZGUgbGEgY2FuY2VsYWNpw7NuLCBub3JtYWxtZW50ZSBlbCB0aXR1bGFyIGRlIGxhIHZpdmllbmRhLiBTaSBzb2lzIHZhcmlvcyB0aXR1bGFyZXMsIHNlIHN1ZWxlIHByZXNlbnRhciB1bmEgYXV0b2xpcXVpZGFjacOzbiBwb3IgcGVyc29uYS4nXSwKICAgICAgICBbJ0lubXVlYmxlJywgJ0RpcmVjY2nDs24geSByZWZlcmVuY2lhIGNhdGFzdHJhbCAobGEgdGllbmVzIGVuIGVsIHJlY2libyBkZWwgSUJJKS4nXSwKICAgICAgICBbJ0NvbmNlcHRvJywgdC5jb24gfHwgJ0VsaWdlIMKrQ2FuY2VsYWNpw7NuIGRlIGhpcG90ZWNhwrsgZW4gZWwgZGVzcGxlZ2FibGUgZGVsIHByb2dyYW1hIGRlIGF5dWRhLiddLAogICAgICAgIFsnQmFzZSBpbXBvbmlibGUnLCB0LmJhc2UgfHwgJ1NpZ3VlIGxhcyBpbnN0cnVjY2lvbmVzIGRlIHR1IGFkbWluaXN0cmFjacOzbjogdW5hcyBwaWRlbiBzb2xvIGVsIGNhcGl0YWwgZGVsIHByw6lzdGFtbyB5IG90cmFzIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIGhpcG90ZWNhcmlhIChjYXBpdGFsLCBpbnRlcmVzZXMgeSBjb3N0YXMpLCBxdWUgZmlndXJhIGVuIGxhIGVzY3JpdHVyYSBkZSBjb25zdGl0dWNpw7NuLiddLAogICAgICAgIG5vRXggPyBbJ0N1b3RhJywgJ0VuIHR1IGNhc28gbm8gc2UgYXBsaWNhIGxhIGV4ZW5jacOzbjogZWwgcHJvZ3JhbWEgY2FsY3VsYXLDoSBlbCBpbXB1ZXN0byBkZSBBY3RvcyBKdXLDrWRpY29zIERvY3VtZW50YWRvcyBxdWUgZGViZXMgcGFnYXIuJ10gOgogICAgICAgICAgWydFeGVuY2nDs24geSBjdW90YScsICh0LmZvcmFsIHx8IHQuZm9yYWxOKSA\/ICdNYXJjYSBsYSBvcGVyYWNpw7NuIGNvbW8gZXhlbnRhIHBvciBjYW5jZWxhY2nDs24gZGUgaGlwb3RlY2EuIExhIGN1b3RhIGEgaW5ncmVzYXIgZXMgMCDigqwuJyA6ICdNYXJjYSBsYSBvcGVyYWNpw7NuIGNvbW8gZXhlbnRhIChhcnQuIDQ1LkkuQi4xOCBkZWwgdGV4dG8gcmVmdW5kaWRvIGRlbCBJVFBBSkQpLiBMYSBjdW90YSBhIGluZ3Jlc2FyIGVzIDAg4oKsLiddLAogICAgICAgIFsnUHJlc2VudGFjacOzbicsICdQcmVzw6ludGFsbyBlbiBsYSBzZWRlIGVsZWN0csOzbmljYSBjb24gY2VydGlmaWNhZG8gZGlnaXRhbCBvIENsQHZlLCBvIGNvbiBjaXRhIGVuIHVuYSBvZmljaW5hLCB5IGd1YXJkYSBlbCBqdXN0aWZpY2FudGUuJ10KICAgICAgXTsKICAgIH0KICAgIGZ1bmN0aW9uIGZpY2hhKHQpIHsKICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJjYXJkIiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4Ij48cCBjbGFzcz0ibGFiIj5Ew7NuZGUgeSBjw7NtbzwvcD48ZGl2IGNsYXNzPSJyb3dzIj48cD48c3Bhbj5BZG1pbmlzdHJhY2nDs248L3NwYW4+PGI+JyArIGVzYyh0Lm9yZykgKyAnPC9iPjwvcD48cD48c3Bhbj5Gb3JtdWxhcmlvPC9zcGFuPjxiPicgKyBlc2ModC5tb2QpICsgJzwvYj48L3A+PHA+PHNwYW4+UGxhem88L3NwYW4+PGI+JyArIGVzYyhwdHh0KHQucCkpICsgJzwvYj48L3A+PHA+PHNwYW4+V2ViIG9maWNpYWw8L3NwYW4+PGI+PGEgaHJlZj0iJyArIHQudXJsICsgJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPicgKyBlc2ModC53ZWIpICsgJzwvYT48L2I+PC9wPjwvZGl2PjwvZGl2Pic7CiAgICB9CiAgICBmdW5jdGlvbiBsaShpY29uLCB0eHQpIHsgcmV0dXJuICc8ZGl2IGNsYXNzPSJsaSI+PHNwYW4gY2xhc3M9ImljIj4nICsgaWNvbiArICc8L3NwYW4+PHA+JyArIHR4dCArICc8L3A+PC9kaXY+JzsgfQogICAgZnVuY3Rpb24gdmlld1Jlc3VsdCgpIHsKICAgICAgdmFyIHQgPSBnZXQoUy5jY2FhKSwgciA9IHsgdDogdCwgbW90OiBTLm1vdCB9LCBoID0gJycsIGx2bCwgY2hpcCwgdGl0bGUsIHN1bSwgbm90ZXMgPSBbXTsKICAgICAgaWYgKFMuZXNjID09PSAnY2FkJykgewogICAgICAgIHIua2luZCA9ICdjYWQnOyBsdmwgPSAxOyBjaGlwID0gWydPdHJhIHbDrWEnLCBJLmluZm9dOwogICAgICAgIHRpdGxlID0gJ1R1IGhpcG90ZWNhIGNhZHVjYWRhIG5vIHNlIGNhbmNlbGEgY29uIGVzdGUgbW9kZWxvJzsKICAgICAgICBzdW0gPSAnQ3VhbmRvIGhhbiBwYXNhZG8gbG9zIHBsYXpvcyBkZSBjYWR1Y2lkYWQgZGUgbGEgTGV5IEhpcG90ZWNhcmlhLCBsYSBjYW5jZWxhY2nDs24gc2UgcGlkZSBhbCBSZWdpc3RybyBkZSBsYSBQcm9waWVkYWQgY29uIHVuYSBpbnN0YW5jaWEsIHNpbiBlc2NyaXR1cmEgbm90YXJpYWwuJzsKICAgICAgfSBlbHNlIGlmICh0Lm5vT2IpIHsKICAgICAgICByLmtpbmQgPSAnYW5kJzsgbHZsID0gMDsgY2hpcCA9IFsnTm8gdGllbmVzIHF1ZSBwcmVzZW50YXJsbycsIEkuY2hlY2tdOwogICAgICAgIHRpdGxlID0gJ0VuIEFuZGFsdWPDrWEgbm8gdGllbmVzIHF1ZSBwcmVzZW50YXIgZWwgbW9kZWxvIDYwMCc7CiAgICAgICAgc3VtID0gJ0xhIG5vcm1hdGl2YSBhbmRhbHV6YSBubyBvYmxpZ2EgYSBwcmVzZW50YXIgbGFzIGVzY3JpdHVyYXMgcXVlIHNvbG8gY2FuY2VsYW4gbGEgaGlwb3RlY2EgY3VhbmRvIHNlIGRlYmUgYWwgcGFnbyB0b3RhbCBkZSBsYSBkZXVkYSB5IGxhIG9wZXJhY2nDs24gZXN0w6EgZXhlbnRhLic7CiAgICAgIH0gZWxzZSBpZiAoUy5lc2MgPT09ICdubycpIHsKICAgICAgICByLmtpbmQgPSAncHJlJzsgbHZsID0gMTsgY2hpcCA9IFsnQW50ZXMgZGUgZmlybWFyJywgSS5pbmZvXTsKICAgICAgICB0aXRsZSA9ICdUdSBwbGF6byBlbXBlemFyw6EgZWwgZMOtYSBxdWUgZmlybWVzIGxhIGVzY3JpdHVyYSc7CiAgICAgICAgc3VtID0gJ1ByaW1lcm8gcGlkZSBhbCBiYW5jbyBlbCBjZXJ0aWZpY2FkbyBkZSBkZXVkYSBjZXJvIHkgZmlybWEgbGEgZXNjcml0dXJhIGRlIGNhbmNlbGFjacOzbiBhbnRlIG5vdGFyaW8uIERlc2RlIGVzZSBkw61hIHRlbmRyw6FzICcgKyBwdHh0KHQucCkgKyAnLic7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIGYgPSBwZChTLmZlY2hhKSwgbGltID0gbGltaXRlKGYsIHQucCksIGRpYXMgPSBNYXRoLnJvdW5kKChsaW0gLSB0b2RheSgpKSAvIDg2NDAwMDAwKTsKICAgICAgICByLmtpbmQgPSAnY2FsYyc7IHIuZiA9IGY7IHIubGltID0gbGltOyByLmRpYXMgPSBkaWFzOwogICAgICAgIHZhciBub0V4ID0gdC5mb3JhbCAmJiBTLnZoID09PSAnbm8nOwogICAgICAgIGlmIChkaWFzID4gNykgeyBsdmwgPSAwOyBjaGlwID0gWydFbiBwbGF6bycsIEkuY2hlY2tdOyByLmVzdGFkbyA9ICdUZSBxdWVkYW4gJyArIGRpYXMgKyAnIGTDrWFzIG5hdHVyYWxlcyc7IH0KICAgICAgICBlbHNlIGlmIChkaWFzID49IDApIHsgbHZsID0gMTsgY2hpcCA9IFtkaWFzID09PSAwID8gJ1ZlbmNlIGhveScgOiAnUXVlZGEgcG9jbycsIEkuYWxlcnRdOyByLmVzdGFkbyA9IGRpYXMgPT09IDAgPyAnRWwgcGxhem8gdmVuY2UgaG95JyA6IChkaWFzID09PSAxID8gJ1NvbG8gdGUgcXVlZGEgMSBkw61hJyA6ICdTb2xvIHRlIHF1ZWRhbiAnICsgZGlhcyArICcgZMOtYXMnKTsgfQogICAgICAgIGVsc2UgeyBsdmwgPSAyOyBjaGlwID0gWydGdWVyYSBkZSBwbGF6bycsIEkuYWxlcnRdOyByLmVzdGFkbyA9ICdFbCBwbGF6byB2ZW5jacOzIGhhY2UgJyArICgtZGlhcykgKyAoZGlhcyA9PT0gLTEgPyAnIGTDrWEnIDogJyBkw61hcycpOyB9CiAgICAgICAgdGl0bGUgPSBub0V4ID8gJ1RpZW5lcyBxdWUgcHJlc2VudGFybG8geSwgZW4gdHUgY2FzbywgcGFnYXIgZWwgaW1wdWVzdG8nIDogJ1RpZW5lcyBxdWUgcHJlc2VudGFybG8sIGF1bnF1ZSBsYSBjdW90YSBlcyAwIOKCrCc7CiAgICAgICAgc3VtID0gci5lc3RhZG8gKyAnLiBEZWJham8gdGllbmVzIGTDs25kZSBwcmVzZW50YXJsbyB5IHF1w6kgcG9uZXIgZW4gY2FkYSBjYW1wby4nOwogICAgICAgIGlmIChub0V4KSBub3Rlcy5wdXNoKFtJLmFsZXJ0LCAnRW4gJyArIGVzYyh0Lm4pICsgJyBsYSBjYW5jZWxhY2nDs24gc29sbyBlc3TDoSBleGVudGEgc2kgbGEgaGlwb3RlY2Egc2UgcGlkacOzIHBhcmEgY29tcHJhciBvIHJlaGFiaWxpdGFyIGxhIHZpdmllbmRhIGhhYml0dWFsLiBFbiB0dSBjYXNvIHRlbmRyw6FzIHF1ZSBwYWdhciBBY3RvcyBKdXLDrWRpY29zIERvY3VtZW50YWRvcyBzb2JyZSBlbCBpbXBvcnRlIGdhcmFudGl6YWRvOyBjb25zdWx0YSBlbCB0aXBvIHZpZ2VudGUgY29uIHR1IEhhY2llbmRhIGZvcmFsIG8gY29uIHVuIGdlc3Rvci4nXSk7CiAgICAgICAgaWYgKGRpYXMgPCAwKSBub3Rlcy5wdXNoKFtJLmFsZXJ0LCAodC5mb3JhbCB8fCB0LmZvcmFsTikgPyAnUHJlc8OpbnRhbG8gY3VhbnRvIGFudGVzOiBwcmVzZW50YXJsbyBmdWVyYSBkZSBwbGF6byBwdWVkZSBjb25sbGV2YXIgdW5hIHNhbmNpw7NuIHNlZ8O6biBsYSBub3JtYXRpdmEgZm9yYWwuJyA6ICdQcmVzw6ludGFsbyBjdWFudG8gYW50ZXMuIENvbiBjdW90YSAwIOKCrCBubyBoYXkgcmVjYXJnbywgcGVybyBwcmVzZW50YXJsbyB0YXJkZSBwdWVkZSBzdXBvbmVyIHVuYSBtdWx0YSBmaWphIGRlIDEwMCDigqwgc2kgbG8gaGFjZXMgYW50ZXMgZGUgcXVlIEhhY2llbmRhIHRlIGxvIHBpZGEsIG8gZGUgMjAwIOKCrCBzaSB0ZSBsbGVnYSB1biByZXF1ZXJpbWllbnRvIChhcnQuIDE5OCBkZSBsYSBMZXkgR2VuZXJhbCBUcmlidXRhcmlhKS4nXSk7CiAgICAgIH0KICAgICAgaWYgKHQuYXZpc28gJiYgUy5lc2MgIT09ICdjYWQnKSBub3Rlcy5wdXNoKFtJLmluZm8sIGVzYyh0LmF2aXNvKV0pOwogICAgICByLmVzdGFkbyA9IHIuZXN0YWRvIHx8ICcnOwogICAgICBoICs9ICc8ZGl2IGNsYXNzPSJ2ZXJkaWN0Ij48c3BhbiBjbGFzcz0iY2hpcCBsJyArIGx2bCArICciPjxpPicgKyBjaGlwWzFdICsgJzwvaT4nICsgY2hpcFswXSArICc8L3NwYW4+PHAgY2xhc3M9InItdCIgdGFiaW5kZXg9Ii0xIj4nICsgdGl0bGUgKyAnPC9wPjxwIGNsYXNzPSJyLXMiPicgKyBzdW0gKyAnPC9wPjwvZGl2Pic7CiAgICAgIGlmIChyLmtpbmQgPT09ICdjYWxjJykgaCArPSAnPGRpdiBjbGFzcz0iY2FyZCI+PHAgY2xhc3M9ImxhYiI+w5psdGltbyBkw61hIHBhcmEgcHJlc2VudGFybG88L3A+PHAgY2xhc3M9ImJpZyI+JyArIGZzKHIubGltKSArICc8L3A+PHAgY2xhc3M9Im5vdGUiPicgKyBmbChyLmxpbSkgKyAnLiBDYWxjdWxhZG8gY29uIGxvcyBmZXN0aXZvcyBuYWNpb25hbGVzOyB1biBmZXN0aXZvIGF1dG9uw7NtaWNvIG8gbG9jYWwgcHVlZGUgYW1wbGlhcmxvLjwvcD48L2Rpdj4nOwogICAgICBpZiAoci5raW5kID09PSAnY2FkJykgaCArPSAnPGRpdiBjbGFzcz0ic2VjIj4nICsgbGkoSS5pbmZvLCAnVGUgZXhwbGljYW1vcyBjw7NtbyBoYWNlcmxvLCBjb24gdW4gZ2VuZXJhZG9yIGRlIGxhIGluc3RhbmNpYSwgZW4gPGEgY2xhc3M9ImxpbmsiIGhyZWY9IicgKyBDRkcuY2FkICsgJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPmVzdGEgZ3XDrWEgc29icmUgZWwgbGV2YW50YW1pZW50byBkZSBsYSBoaXBvdGVjYSBwb3IgY2FkdWNpZGFkPC9hPi4nKSArICc8L2Rpdj4nOwogICAgICBpZiAoci5raW5kID09PSAnYW5kJykgaCArPSAnPGRpdiBjbGFzcz0ic2VjIj4nICsgbGkoSS5jaGVjaywgKFMuZXNjID09PSAnbm8nID8gJ0N1YW5kbyBmaXJtZXMgbGEgZXNjcml0dXJhLCBwaWRlJyA6ICdQaWRlJykgKyAnIGFsIG5vdGFyaW8gcXVlIGVudsOtZSBsYSBlc2NyaXR1cmEgYWwgUmVnaXN0cm8gZGUgbGEgUHJvcGllZGFkLicpICsgbGkoSS5hbGVydCwgJ1NpIGxhIGNhbmNlbGFjacOzbiBmdWVyYSBwYXJjaWFsIG8gbm8gc2UgZGViaWVyYSBhbCBwYWdvIGRlIGxhIGRldWRhLCBzw60gdGVuZHLDrWFzIHF1ZSBwcmVzZW50YXIgZWwgbW9kZWxvIDYwMCBlbiB1biBwbGF6byBkZSAyIG1lc2VzLicpICsgJzwvZGl2Pic7CiAgICAgIGlmIChyLmtpbmQgIT09ICdjYWQnKSBoICs9IGZpY2hhKHQpOwogICAgICBpZiAobm90ZXMubGVuZ3RoKSBoICs9ICc8ZGl2IGNsYXNzPSJzZWMiPicgKyBub3Rlcy5tYXAoZnVuY3Rpb24gKHgpIHsgcmV0dXJuIGxpKHhbMF0sIHhbMV0pOyB9KS5qb2luKCcnKSArICc8L2Rpdj4nOwogICAgICBpZiAoci5raW5kID09PSAnY2FsYycpIHsKICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJzZWMiPjxoND5RdcOpIHBvbmVyIGVuIGNhZGEgY2FtcG88L2g0Pjx1bCBjbGFzcz0iY2hrIj4nICsgY2FtcG9zKHQpLm1hcChmdW5jdGlvbiAoYywgaSkgeyByZXR1cm4gJzxsaT48ZW0+JyArIChpICsgMSkgKyAnPC9lbT48c3Bhbj48Yj4nICsgZXNjKGNbMF0pICsgJy48L2I+ICcgKyBlc2MoY1sxXSkgKyAnPC9zcGFuPjwvbGk+JzsgfSkuam9pbignJykgKyAnPC91bD48L2Rpdj4nOwogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InNlYyI+PGg0PlF1w6kgbmVjZXNpdGFzPC9oND48dWwgY2xhc3M9ImNoayI+PGxpPjxzcGFuPjxiPkxhIGVzY3JpdHVyYSBkZSBjYW5jZWxhY2nDs248L2I+IChjb3BpYSBhdXRvcml6YWRhKS48L3NwYW4+PC9saT48bGk+PHNwYW4+PGI+RWwgY2VydGlmaWNhZG8gZGUgZGV1ZGEgY2VybzwvYj4gZGVsIGJhbmNvLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj48Yj5UdSBETkkgbyBOSUU8L2I+IHkgY2VydGlmaWNhZG8gZGlnaXRhbCBvIENsQHZlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj48Yj5MYSByZWZlcmVuY2lhIGNhdGFzdHJhbDwvYj4gZGUgbGEgdml2aWVuZGEuPC9zcGFuPjwvbGk+PC91bD48cCBjbGFzcz0ibm90ZSI+Q29uIGVsIGp1c3RpZmljYW50ZSwgbGEgY2FuY2VsYWNpw7NuIHNlIGluc2NyaWJlIGVuIGVsIFJlZ2lzdHJvIGRlIGxhIFByb3BpZWRhZC4gTG8gaGFiaXR1YWwgZXMgcXVlIGVsIG5vdGFyaW8gZW52w61lIGxhIGVzY3JpdHVyYSBkZSBmb3JtYSB0ZWxlbcOhdGljYTsgc2kgbm8sIGxsw6l2YWxhIHTDuiBqdW50byBhbCBqdXN0aWZpY2FudGUuPC9wPjwvZGl2Pic7CiAgICAgIH0KICAgICAgdmFyIGMgPSBDRkcuY3RhW1MubW90XTsKICAgICAgaCArPSAnPGRpdiBjbGFzcz0iY3RhIj48cCBjbGFzcz0iaCI+JyArIGNbMl0gKyAnPC9wPjxwIGNsYXNzPSJ0Ij4nICsgY1szXSArICc8L3A+PGEgY2xhc3M9ImJ0biIgaHJlZj0iJyArIGNbMV0gKyAnIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+JyArIGNbMF0gKyAnPC9hPjwvZGl2Pic7CiAgICAgIGggKz0gJzxkaXYgY2xhc3M9ImFjdHMiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIiBkYXRhLWFjdD0icGRmIj4nICsgSS5kbCArICdEZXNjYXJnYXIgbWkgcmVzdW1lbiBlbiBQREY8L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBvIiBkYXRhLWFjdD0icmVzdGFydCI+SGFjZXIgb3RyYSBjb25zdWx0YTwvYnV0dG9uPicgKyBiYWNrQnRuKCdDYW1iaWFyIG1pcyBkYXRvcycpICsgJzwvZGl2PjxwIGNsYXNzPSJvay1tc2ciIHJvbGU9InN0YXR1cyI+PC9wPic7CiAgICAgIGxhc3QgPSByOwogICAgICByZXR1cm4gaDsKICAgIH0KICAgIGZ1bmN0aW9uIHJlbmRlcigpIHsKICAgICAgdmFyIHN0ID0gc3RlcHMoKTsKICAgICAgaWYgKFMuaSA+IHN0Lmxlbmd0aCAtIDEpIFMuaSA9IHN0Lmxlbmd0aCAtIDE7CiAgICAgIGJkLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJhbmltIj4nICsgKFMuZG9uZSA\/IHZpZXdSZXN1bHQoKSA6IHZpZXdTdGVwKHN0W1MuaV0pKSArICc8L2Rpdj4nOwogICAgICBwcm9ncmVzcygpOwogICAgICBpZiAoc3RhcnRlZCkgewogICAgICAgIHZhciBmID0gYmQucXVlcnlTZWxlY3RvcignW3RhYmluZGV4PSItMSJdJyk7CiAgICAgICAgaWYgKGYpIHsgdHJ5IHsgZi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7IH0gY2F0Y2ggKGUpIHsgZi5mb2N1cygpOyB9IH0KICAgICAgICBpZiAoaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPCAwKSBob3N0LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ3N0YXJ0JyB9KTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gcmVmcmVzaCgpIHsgdmFyIGIgPSByb290LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFjdD0ibmV4dCJdJyk7IGlmIChiKSBiLmRpc2FibGVkID0gIW9rKHN0ZXBzKClbUy5pXSk7IH0KICAgIGZ1bmN0aW9uIG5leHQoKSB7IHZhciBzdCA9IHN0ZXBzKCk7IGlmIChTLmkgPj0gc3QubGVuZ3RoIC0gMSkgUy5kb25lID0gdHJ1ZTsgZWxzZSBTLmkrKzsgcmVuZGVyKCk7IH0KICAgIGZ1bmN0aW9uIG1zZyh0KSB7IHZhciBtID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcub2stbXNnJyk7IGlmIChtKSBtLnRleHRDb250ZW50ID0gdDsgfQoKICAgIC8qIC0tLS0tLS0tLS0gUERGIC0tLS0tLS0tLS0gKi8KICAgIHZhciBKU1BERiA9ICdodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9qc3BkZi8yLjUuMS9qc3BkZi51bWQubWluLmpzJzsKICAgIGZ1bmN0aW9uIGxvYWRQZGYob2ssIGtvKSB7CiAgICAgIGlmICh3aW5kb3cuanNwZGYgJiYgd2luZG93LmpzcGRmLmpzUERGKSByZXR1cm4gb2soKTsKICAgICAgdmFyIHNjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IHNjLnNyYyA9IEpTUERGOyBzYy5vbmxvYWQgPSBvazsgc2Mub25lcnJvciA9IGtvOwogICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjKTsKICAgIH0KICAgIGZ1bmN0aW9uIG1ha2VQZGYoKSB7CiAgICAgIHZhciByID0gbGFzdCwgdCA9IHIudCwgSiA9IHdpbmRvdy5qc3BkZi5qc1BERiwgZG9jID0gbmV3IEooeyB1bml0OiAnbW0nLCBmb3JtYXQ6ICdhNCcgfSk7CiAgICAgIHZhciBXID0gMjEwLCBNID0gMTgsIENXID0gVyAtIDIgKiBNLCB5ID0gMDsKICAgICAgZnVuY3Rpb24gbmVlZChoKSB7IGlmICh5ICsgaCA+IDI4MCkgeyBkb2MuYWRkUGFnZSgpOyB5ID0gMjA7IH0gfQogICAgICBmdW5jdGlvbiBwYXJhKHR4dCwgc2l6ZSwgY29sb3IsIGJvbGQpIHsKICAgICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgYm9sZCA\/ICdib2xkJyA6ICdub3JtYWwnKTsgZG9jLnNldEZvbnRTaXplKHNpemUpOwogICAgICAgIHZhciBjID0gY29sb3IgfHwgWzMsIDAsIDEyMl07IGRvYy5zZXRUZXh0Q29sb3IoY1swXSwgY1sxXSwgY1syXSk7CiAgICAgICAgdmFyIGxpbmVzID0gZG9jLnNwbGl0VGV4dFRvU2l6ZSh0eHQsIENXKSwgaGggPSBsaW5lcy5sZW5ndGggKiBzaXplICogMC40NSArIDI7CiAgICAgICAgbmVlZChoaCk7IGRvYy50ZXh0KGxpbmVzLCBNLCB5KTsgeSArPSBoaDsKICAgICAgfQogICAgICBmdW5jdGlvbiBoZWFkKHR4dCkgeyB5ICs9IDM7IG5lZWQoMTIpOyBkb2Muc2V0RmlsbENvbG9yKDIzOSwgMjQ3LCAyNTMpOyBkb2Mucm91bmRlZFJlY3QoTSwgeSAtIDUsIENXLCA4LCAyLCAyLCAnRicpOyBwYXJhKHR4dCwgMTEuNSwgWzMsIDAsIDEyMl0sIHRydWUpOyB5ICs9IDE7IH0KICAgICAgZG9jLnNldEZpbGxDb2xvcigzLCAwLCAxMjIpOyBkb2MucmVjdCgwLCAwLCBXLCAzNiwgJ0YnKTsKICAgICAgZG9jLnNldEZpbGxDb2xvcigxNywgMTc0LCAyNTApOyBkb2MucmVjdCgwLCAzNiwgVywgMS41LCAnRicpOwogICAgICBkb2Muc2V0VGV4dENvbG9yKDI1NSwgMjE2LCA5MCk7IGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpOyBkb2Muc2V0Rm9udFNpemUoOSk7IGRvYy50ZXh0KCdDQU5DRUxBQ0nDk04gREUgSElQT1RFQ0EnLCBNLCAxMyk7CiAgICAgIGRvYy5zZXRUZXh0Q29sb3IoMjU1LCAyNTUsIDI1NSk7IGRvYy5zZXRGb250U2l6ZSgxNyk7IGRvYy50ZXh0KCdUdSByZXN1bWVuIHBhcmEgcHJlc2VudGFyIGxhIGF1dG9saXF1aWRhY2nDs24nLCBNLCAyMyk7CiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7IGRvYy5zZXRGb250U2l6ZSg5LjUpOyBkb2MudGV4dCgnR2VuZXJhZG8gZWwgJyArIGZkKHRvZGF5KCkpICsgJyDCtyAnICsgdC5uLCBNLCAzMCk7CiAgICAgIHkgPSA0NzsKICAgICAgaWYgKHIua2luZCA9PT0gJ2NhbGMnKSB7CiAgICAgICAgaGVhZCgnVHUgcGxhem8nKTsKICAgICAgICBwYXJhKCdGZWNoYSBkZSBsYSBlc2NyaXR1cmE6ICcgKyBmZChyLmYpLCAxMC41KTsKICAgICAgICBwYXJhKCfDmmx0aW1vIGTDrWEgcGFyYSBwcmVzZW50YXJsbzogJyArIGZsKHIubGltKSwgMTIuNSwgWzMsIDAsIDEyMl0sIHRydWUpOwogICAgICAgIHBhcmEoci5lc3RhZG8gKyAnLiBDYWxjdWxhZG8gY29uIGxvcyBmZXN0aXZvcyBuYWNpb25hbGVzOyB1biBmZXN0aXZvIGF1dG9uw7NtaWNvIG8gbG9jYWwgcHVlZGUgYW1wbGlhcmxvLicsIDkuNSwgWzgwLCA4MCwgMTEwXSk7CiAgICAgIH0gZWxzZSBpZiAoci5raW5kID09PSAnY2FkJykgewogICAgICAgIGhlYWQoJ1R1IGNhc28nKTsKICAgICAgICBwYXJhKCdUdSBoaXBvdGVjYSBlc3TDoSBjYWR1Y2FkYTogbGEgY2FuY2VsYWNpw7NuIHNlIHBpZGUgYWwgUmVnaXN0cm8gZGUgbGEgUHJvcGllZGFkIGNvbiB1bmEgaW5zdGFuY2lhLCBzaW4gZXNjcml0dXJhIG5vdGFyaWFsLiBHdcOtYSBjb24gZ2VuZXJhZG9yIGRlIGxhIGluc3RhbmNpYTogJyArIENGRy5jYWQsIDEwLjUpOwogICAgICB9IGVsc2UgaWYgKHIua2luZCA9PT0gJ2FuZCcpIHsKICAgICAgICBoZWFkKCdUdSBjYXNvJyk7CiAgICAgICAgcGFyYSgnRW4gQW5kYWx1Y8OtYSBubyBlcyBvYmxpZ2F0b3JpbyBwcmVzZW50YXIgbGEgYXV0b2xpcXVpZGFjacOzbiBkZSB1bmEgZXNjcml0dXJhIHF1ZSBzb2xvIGNhbmNlbGEgbGEgaGlwb3RlY2EgcG9yIGVsIHBhZ28gdG90YWwgZGUgbGEgZGV1ZGEuIFBpZGUgYWwgbm90YXJpbyBxdWUgZW52w61lIGxhIGVzY3JpdHVyYSBhbCBSZWdpc3RybyBkZSBsYSBQcm9waWVkYWQuIFNpIGxhIGNhbmNlbGFjacOzbiBmdWVyYSBwYXJjaWFsIG8gbm8gc2UgZGViaWVyYSBhbCBwYWdvLCBlbCBwbGF6byBwYXJhIHByZXNlbnRhciBlbCBtb2RlbG8gNjAwIGVzIGRlIDIgbWVzZXMuJywgMTAuNSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaGVhZCgnVHUgY2FzbycpOwogICAgICAgIHBhcmEoJ1ByaW1lcm8gcGlkZSBhbCBiYW5jbyBlbCBjZXJ0aWZpY2FkbyBkZSBkZXVkYSBjZXJvIHkgZmlybWEgbGEgZXNjcml0dXJhIGRlIGNhbmNlbGFjacOzbiBhbnRlIG5vdGFyaW8uIERlc2RlIGVzZSBkw61hIHRlbmRyw6FzICcgKyBwdHh0KHQucCkgKyAnLicsIDEwLjUpOwogICAgICB9CiAgICAgIGlmIChyLmtpbmQgIT09ICdjYWQnKSB7CiAgICAgICAgaGVhZCgnRMOzbmRlIHkgY8OzbW8nKTsKICAgICAgICBwYXJhKCdBZG1pbmlzdHJhY2nDs246ICcgKyB0Lm9yZywgMTAuNSk7CiAgICAgICAgcGFyYSgnRm9ybXVsYXJpbzogJyArIHQubW9kLCAxMC41KTsKICAgICAgICBwYXJhKCdQbGF6bzogJyArIHB0eHQodC5wKSwgMTAuNSk7CiAgICAgICAgcGFyYSgnV2ViIG9maWNpYWw6ICcgKyB0LnVybCwgMTAuNSk7CiAgICAgICAgaWYgKHQuYXZpc28pIHBhcmEodC5hdmlzbywgMTAsIFs4MCwgODAsIDExMF0pOwogICAgICB9CiAgICAgIGlmIChyLmtpbmQgPT09ICdjYWxjJykgewogICAgICAgIGlmICh0LmZvcmFsICYmIFMudmggPT09ICdubycpIHBhcmEoJ0VuIHR1IGNhc28gbm8gc2UgYXBsaWNhIGxhIGV4ZW5jacOzbjogdGVuZHLDoXMgcXVlIHBhZ2FyIEFjdG9zIEp1csOtZGljb3MgRG9jdW1lbnRhZG9zIHNvYnJlIGVsIGltcG9ydGUgZ2FyYW50aXphZG8uJywgMTAsIFsxNjMsIDM2LCAyN10sIHRydWUpOwogICAgICAgIGlmIChyLmRpYXMgPCAwKSBwYXJhKCh0LmZvcmFsIHx8IHQuZm9yYWxOKSA\/ICdGdWVyYSBkZSBwbGF6bzogcHJlc8OpbnRhbG8gY3VhbnRvIGFudGVzOyBwdWVkZSBoYWJlciBzYW5jacOzbiBzZWfDum4gbGEgbm9ybWF0aXZhIGZvcmFsLicgOiAnRnVlcmEgZGUgcGxhem86IGNvbiBjdW90YSAwIOKCrCBubyBoYXkgcmVjYXJnbywgcGVybyBwdWVkZSBoYWJlciB1bmEgbXVsdGEgZmlqYSBkZSAxMDAg4oKsICgyMDAg4oKsIHNpIGhheSByZXF1ZXJpbWllbnRvIHByZXZpbykuJywgMTAsIFsxNjMsIDM2LCAyN10sIHRydWUpOwogICAgICAgIGhlYWQoJ1F1w6kgcG9uZXIgZW4gY2FkYSBjYW1wbycpOwogICAgICAgIGNhbXBvcyh0KS5mb3JFYWNoKGZ1bmN0aW9uIChjLCBpKSB7IHBhcmEoKGkgKyAxKSArICcuICcgKyBjWzBdICsgJzogJyArIGNbMV0sIDEwKTsgfSk7CiAgICAgICAgaGVhZCgnUXXDqSBuZWNlc2l0YXMnKTsKICAgICAgICBbJ0xhIGVzY3JpdHVyYSBkZSBjYW5jZWxhY2nDs24gKGNvcGlhIGF1dG9yaXphZGEpLicsICdFbCBjZXJ0aWZpY2FkbyBkZSBkZXVkYSBjZXJvIGRlbCBiYW5jby4nLCAnVHUgRE5JIG8gTklFIHkgY2VydGlmaWNhZG8gZGlnaXRhbCBvIENsQHZlLicsICdMYSByZWZlcmVuY2lhIGNhdGFzdHJhbCBkZSBsYSB2aXZpZW5kYS4nXS5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7IHBhcmEoJy0gJyArIHgsIDEwKTsgfSk7CiAgICAgICAgaGVhZCgnRGVzcHXDqXMnKTsKICAgICAgICBwYXJhKCdDb24gZWwganVzdGlmaWNhbnRlLCBsYSBjYW5jZWxhY2nDs24gc2UgaW5zY3JpYmUgZW4gZWwgUmVnaXN0cm8gZGUgbGEgUHJvcGllZGFkLiBMbyBoYWJpdHVhbCBlcyBxdWUgZWwgbm90YXJpbyBlbnbDrWUgbGEgZXNjcml0dXJhIGRlIGZvcm1hIHRlbGVtw6F0aWNhOyBzaSBubywgbGzDqXZhbGEgdMO6IGp1bnRvIGFsIGp1c3RpZmljYW50ZS4nLCAxMCk7CiAgICAgIH0KICAgICAgeSArPSA0OyBuZWVkKDE4KTsKICAgICAgZG9jLnNldERyYXdDb2xvcigyMTUsIDIzNCwgMjQ5KTsgZG9jLmxpbmUoTSwgeSwgVyAtIE0sIHkpOyB5ICs9IDY7CiAgICAgIHBhcmEoJ0PDoWxjdWxvIG9yaWVudGF0aXZvIGJhc2FkbyBlbiBsYSBub3JtYXRpdmEgZmlzY2FsIHZpZ2VudGUgZW4gJyArIENGRy55ZWFyICsgJy4gRW4gbmluZ8O6biBjYXNvIHN1c3RpdHV5ZSBlbCBhc2Vzb3JhbWllbnRvIHByb2Zlc2lvbmFsLiBQYXJhIHNpdHVhY2lvbmVzIGNvbXBsZWphcywgY29uc3VsdGEgY29uIHVuIGdlc3RvciBlc3BlY2lhbGl6YWRvLicsIDguNSwgWzEwOSwgMTA5LCAxMDldKTsKICAgICAgcmV0dXJuIGRvYzsKICAgIH0KICAgIGZ1bmN0aW9uIHBkZigpIHsKICAgICAgbXNnKCdQcmVwYXJhbmRvIHR1IFBERuKApicpOwogICAgICBsb2FkUGRmKGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZG9jLCBuYW1lID0gJ3Jlc3VtZW4tY2FuY2VsYWNpb24taGlwb3RlY2EtJyArIGxhc3QudC5pZCArICcucGRmJzsKICAgICAgICB0cnkgeyBkb2MgPSBtYWtlUGRmKCk7IH0gY2F0Y2ggKGUpIHsgbXNnKCdObyBzZSBoYSBwb2RpZG8gZ2VuZXJhciBlbCBQREYuIEludMOpbnRhbG8gZGUgbnVldm8uJyk7IHJldHVybjsgfQogICAgICAgIHZhciBjID0gd2luZG93LmNsYXVkZTsKICAgICAgICBpZiAoYyAmJiB0eXBlb2YgYy51c2UgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgIGMudXNlKCdkb3dubG9hZHMnKS50aGVuKGZ1bmN0aW9uIChkbCkgewogICAgICAgICAgICBpZiAoIWRsKSB7IG1zZygnTGEgZGVzY2FyZ2Egbm8gZXN0w6EgZGlzcG9uaWJsZSBlbiBlc3RhIHZpc3RhLicpOyByZXR1cm47IH0KICAgICAgICAgICAgZGwuc2F2ZSh7IGZpbGVuYW1lOiBuYW1lLCBkYXRhOiBkb2Mub3V0cHV0KCdibG9iJykgfSkudGhlbihmdW5jdGlvbiAoKSB7IG1zZygnUERGIGRlc2NhcmdhZG8uJyk7IH0sIGZ1bmN0aW9uIChlKSB7IG1zZyhlICYmIGUuY29kZSA9PT0gJ2RlY2xpbmVkJyA\/ICdEZXNjYXJnYSBjYW5jZWxhZGEuJyA6ICdObyBzZSBoYSBwb2RpZG8gZGVzY2FyZ2FyIGVsIFBERiBlbiBlc3RhIHZpc3RhLicpOyB9KTsKICAgICAgICAgIH0sIGZ1bmN0aW9uICgpIHsgbXNnKCdMYSBkZXNjYXJnYSBubyBlc3TDoSBkaXNwb25pYmxlIGVuIGVzdGEgdmlzdGEuJyk7IH0pOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0cnkgeyBkb2Muc2F2ZShuYW1lKTsgbXNnKCdQREYgZGVzY2FyZ2Fkby4gw4FicmVsbyBjdWFuZG8gdmF5YXMgYSByZWxsZW5hciBlbCBmb3JtdWxhcmlvLicpOyB9IGNhdGNoIChlMikgeyBtc2coJ05vIHNlIGhhIHBvZGlkbyBkZXNjYXJnYXIgZWwgUERGLiBJbnTDqW50YWxvIGRlIG51ZXZvLicpOyB9CiAgICAgIH0sIGZ1bmN0aW9uICgpIHsgbXNnKCdObyBzZSBoYSBwb2RpZG8gZ2VuZXJhciBlbCBQREYuIFJldmlzYSB0dSBjb25leGnDs24gZSBpbnTDqW50YWxvIGRlIG51ZXZvLicpOyB9KTsKICAgIH0KCiAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHsKICAgICAgdmFyIGIgPSBlLnRhcmdldC5jbG9zZXN0KCdidXR0b24nKTsKICAgICAgaWYgKCFiIHx8IGIuZGlzYWJsZWQpIHJldHVybjsKICAgICAgc3RhcnRlZCA9IHRydWU7CiAgICAgIGlmIChiLmhhc0F0dHJpYnV0ZSgnZGF0YS1zJykpIHsKICAgICAgICB2YXIga2V5ID0gYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtcycpLCB2YWwgPSBiLmdldEF0dHJpYnV0ZSgnZGF0YS12Jyk7CiAgICAgICAgU1trZXldID0gdmFsOwogICAgICAgIHZhciBicyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcz0iJyArIGtleSArICciXScpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnMubGVuZ3RoOyBpKyspIGJzW2ldLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgU3RyaW5nKGJzW2ldLmdldEF0dHJpYnV0ZSgnZGF0YS12JykgPT09IHZhbCkpOwogICAgICAgIHJlZnJlc2goKTsgcmV0dXJuOwogICAgICB9CiAgICAgIHZhciBhY3QgPSBiLmdldEF0dHJpYnV0ZSgnZGF0YS1hY3QnKTsKICAgICAgaWYgKGFjdCA9PT0gJ25leHQnKSBuZXh0KCk7CiAgICAgIGlmIChhY3QgPT09ICdiYWNrJykgeyBpZiAoUy5kb25lKSBTLmRvbmUgPSBmYWxzZTsgZWxzZSBpZiAoUy5pID4gMCkgUy5pLS07IHJlbmRlcigpOyB9CiAgICAgIGlmIChhY3QgPT09ICdyZXN0YXJ0JykgeyBTID0gZnJlc2goKTsgcmVuZGVyKCk7IH0KICAgICAgaWYgKGFjdCA9PT0gJ3BkZicpIHBkZigpOwogICAgfSk7CiAgICBmdW5jdGlvbiBvbkZpZWxkKGUpIHsKICAgICAgdmFyIGYgPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUgJiYgZS50YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLWYnKTsKICAgICAgaWYgKCFmKSByZXR1cm47CiAgICAgIFNbZl0gPSBlLnRhcmdldC52YWx1ZTsKICAgICAgaWYgKGYgPT09ICdjY2FhJykgeyBTLnZoID0gJyc7IH0KICAgICAgcmVmcmVzaCgpOwogICAgfQogICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIG9uRmllbGQpOwogICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkZpZWxkKTsKICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uIChlKSB7CiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiBlLnRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnKSB7CiAgICAgICAgdmFyIGIgPSByb290LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFjdD0ibmV4dCJdJyk7CiAgICAgICAgaWYgKGIgJiYgIWIuZGlzYWJsZWQpIHsgc3RhcnRlZCA9IHRydWU7IG5leHQoKTsgfQogICAgICB9CiAgICB9KTsKICAgIHJlbmRlcigpOwogIH0KICBmdW5jdGlvbiBpbml0KCkgeyB2YXIgaHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1tNi10b29sXScpOyBmb3IgKHZhciBpID0gMDsgaSA8IGhzLmxlbmd0aDsgaSsrKSBtb3VudChoc1tpXSk7IH0KICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdCk7IGVsc2UgaW5pdCgpOwp9KSgpOwo=\";var c=decodeURIComponent(escape(window.atob(s)));(new Function(c))();})();<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el Modelo 600 y para qu\u00e9 sirve?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>El Modelo 600 es el formulario oficial para declarar el ITP y AJD ante tu Comunidad Aut\u00f3noma; en la cancelaci\u00f3n hipotecaria, la cuota es de 0\u20ac, pero presentarlo es obligatorio para inscribirla en el Registro.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El Modelo 600 es un formulario que sirve para <strong>pagar el Impuesto sobre Transmisiones Patrimoniales y Actos Jur\u00eddicos Documentados (ITP y AJD)<\/strong> en cualquier acto con relevancia fiscal, como por ejemplo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Las <strong>compraventas<\/strong><\/li>\n\n\n\n<li>Los <strong>pr\u00e9stamos hipotecarios<\/strong><\/li>\n\n\n\n<li>Las <strong>cancelaciones de hipotecas<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En este caso, analizamos la cancelaci\u00f3n de una hipoteca. <strong>La cuota a ingresar es de 0\u20ac porque la cancelaci\u00f3n est\u00e1 exenta <\/strong>(ITPAJD). En \u00c1lava, Bizkaia y Gipuzkoa la exenci\u00f3n solo se aplica si la hipoteca se pidi\u00f3 para comprar o rehabilitar la vivienda habitual.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em><strong>Nota importante: <\/strong>Aunque no pagues nada, <strong>hay que presentar la autoliquidaci\u00f3n igualmente en la comunidad donde est\u00e1 la vivienda.<\/strong> En Madrid se presenta con el Modelo 601, en Navarra con el 605, en Gipuzkoa con el 60A y en \u00c1lava con el 600P. En Andaluc\u00eda no hace falta si la cancelaci\u00f3n se debe al pago total de la deuda.<\/em><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1ndo hay que presentar el Modelo 600 para la cancelaci\u00f3n de una hipoteca?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Hay que presentar el Modelo 600 siempre que se cancele una hipoteca, ya sea por fin de pago, venta del inmueble, algunas subrogaciones, cancelaci\u00f3n anticipada o contrataci\u00f3n de una nueva hipoteca.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El Modelo 600 para la cancelaci\u00f3n de una hipoteca hay que presentarlo <strong>cuando se da alguna de estas situaciones:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El propietario ha <strong>terminado de pagar la hipoteca<\/strong> y quiere <strong>dejar la vivienda libre de cargas.<\/strong><\/li>\n\n\n\n<li>El propietario va a <strong>vender su inmueble<\/strong> y se le exige que la hipoteca est\u00e9 pagada. Si no est\u00e1 libre de cargas, la gestor\u00eda puede levantar fondos para gestionarlo.<\/li>\n\n\n\n<li>El propietario quiere <strong>contratar una nueva hipoteca<\/strong> con mejores condiciones.<\/li>\n\n\n\n<li>El propietario ha <strong>cancelado anticipadamente la deuda<\/strong> con el banco. Si es tu caso, te explicamos paso a paso <a href=\"https:\/\/housfy.com\/blog\/como-cancelar-anticipadamente-una-hipoteca-fija\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>c\u00f3mo cancelar anticipadamente una hipoteca fija<\/strong><\/a> antes de continuar con este tr\u00e1mite.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Seg\u00fan nuestros expertos, el <strong>motivo principal de presentaci\u00f3n del Modelo 600 es la venta de una casa.<\/strong> Por lo que, si este tambi\u00e9n es tu caso, puedes tomar la decisi\u00f3n inteligente y <a href=\"https:\/\/housfy.com\/vender-pisos\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>vender tu piso con Housfy.<\/strong><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><div\r\n\t\t\t\tid=\"hustle-embedded-id-32\"\r\n\t\t\t\tclass=\"hustle-ui hustle-inline hustle-palette--gray_slate hustle_module_id_32 module_id_32  \"\r\n\t\t\t\t\r\n\t\t\tdata-id=\"32\"\r\n\t\t\tdata-render-id=\"0\"\r\n\t\t\tdata-tracking=\"enabled\"\r\n\t\t\t\r\n\t\t\t\tdata-intro=\"no_animation\"\r\n\t\t\t\tdata-sub-type=\"shortcode\"\r\n\t\t\t\t\r\n\t\t\t\tstyle=\"opacity: 0;\"\r\n\t\t\t\taria-label=\"Vende tu casa consiguiendo m\u00e1s por menos popup\"\r\n\t\t\t><div class=\"hustle-inline-content\"><div class=\"hustle-info hustle-info--compact\"><div class=\"hustle-main-wrapper\"><div class=\"hustle-layout\"><div class=\"hustle-content\"><div class=\"hustle-content-wrap\"><div class=\"hustle-group-title\"><h3 class=\"hustle-title\">Vende tu casa consiguiendo m\u00e1s por menos<\/h3><h4 class=\"hustle-subtitle\">Pagar mucho por recibir poco es del pasado<\/h4><\/div><div class=\"hustle-cta-container\"><a class=\"hustle-button hustle-button-cta \" href=\"https:\/\/housfy.com\/vender-pisos?utm_source=traffic_CTABanner_Embed_blog&#038;utm_medium=CTABanner&#038;utm_campaign=CTABanner_Embed_vender_inmueble_blog&#038;utm_term=vender_inmueble_CTABanner_Embed_blog\" target=\"_blank\" data-cta-type=\"cta\">INF\u00d3RMATE GRATIS<\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 pasos previos se recomiendan antes de rellenar el Modelo 600 para la cancelaci\u00f3n de una hipoteca?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Antes de rellenar el Modelo 600 necesitas tener el certificado de deuda cero del banco y la escritura p\u00fablica de cancelaci\u00f3n firmada ante notario.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de empezar a rellenar el formulario del Modelo 600, <strong>nuestros expertos recomiendan tener 2 documentos en mano:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Certificado de deuda cero del banco<\/strong>: Documento que acredita que <strong>has acabado de pagar por completo el pr\u00e9stamo hipotecario.<\/strong><\/li>\n\n\n\n<li><strong>Escritura p\u00fablica de cancelaci\u00f3n ante notario<\/strong>: La firma un apoderado del banco (no t\u00fa). Si quieres saber cu\u00e1nto te va a costar ese tr\u00e1mite, consulta nuestra gu\u00eda sobre <strong><a href=\"https:\/\/housfy.com\/blog\/cual-es-el-precio-de-escritura-de-una-cancelacion-de-hipoteca-y-como-ahorrar-en-el-pago\/\" target=\"_blank\" rel=\"noreferrer noopener\">el precio de la escritura de cancelaci\u00f3n de hipoteca<\/a>.<\/strong> Sin esta escritura, no hay nada que presentar.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez firmada la escritura ante notario, empieza a contar el plazo, que <strong>depende de la comunidad.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Es de <strong>1 mes<\/strong> en Arag\u00f3n, Illes Balears, Canarias, Castilla-La Mancha, Catalu\u00f1a, la Comunitat Valenciana, Extremadura y Galicia.<\/li>\n\n\n\n<li>Son <strong>30 d\u00edas h\u00e1biles<\/strong> en Asturias, Cantabria, Castilla y Le\u00f3n, Madrid, Murcia, La Rioja, \u00c1lava, Bizkaia, Gipuzkoa, Ceuta y Melilla.<\/li>\n\n\n\n<li>Son <strong>2 meses<\/strong> en Navarra. Calcula tu fecha exacta con el asistente de arriba y no lo dejes para el \u00faltimo momento.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/housfy.com\/blog\/wp-content\/uploads\/2024\/05\/Modelo-600-de-la-cancelacion-de-hipoteca-Housfy-2026.jpg\" alt=\"Modelo 600 para la cancelaci\u00f3n de una hipoteca\" class=\"wp-image-65293\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo rellenar el Modelo 600 para la cancelaci\u00f3n de una hipoteca paso a paso?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Rellena el formulario con tus datos, marca la casilla \u00abNotarial\u00bb, a\u00f1ade la referencia catastral del inmueble y anota la cuota a 0\u20ac; pres\u00e9ntalo online o en persona, obt\u00e9n el sello y ll\u00e9valo al Registro de la Propiedad.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Housfy, hemos elaborado una <strong>tabla con una gu\u00eda \u00abpaso a paso\u00bb para que sepas c\u00f3mo rellenar correctamente el documento<\/strong> en cuesti\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Pasos y conceptos<\/strong><\/td><td><strong>Informaci\u00f3n y acciones clave<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Paso 1: Identificaci\u00f3n<\/strong><\/td><td>El \u00ab<strong>sujeto pasivo<\/strong>\u00bb es el deudor hipotecario (t\u00fa).<br><em>Datos:<\/em> <strong>DNI\/NIE, nombre, domicilio fiscal y tel\u00e9fono.<\/strong><\/td><\/tr><tr><td><strong>Paso 2: Tipo de documento<\/strong><\/td><td>Marca la casilla <strong>\u00abNotarial\u00bb<\/strong>.<br><em>Datos:<\/em> <strong>Nombre del notario, n\u00famero de protocolo y fecha de la escritura de cancelaci\u00f3n.<\/strong><\/td><\/tr><tr><td><strong>Paso 3: Datos del inmueble<\/strong><\/td><td><strong>Descripci\u00f3n f\u00edsica y direcci\u00f3n.<\/strong><br><em>Imprescindible:<\/em> <strong>Referencia catastral<\/strong> (mira tu \u00faltimo recibo del IBI) y el <strong>valor declarado.<\/strong><\/td><\/tr><tr><td><strong>Paso 4: Autoliquidaci\u00f3n<\/strong><\/td><td>Concepto: <strong>Cancelaci\u00f3n de hipoteca<\/strong>.<br>Base imponible; <strong>depende de la comunidad. <\/strong>Unas piden solo el capital del pr\u00e9stamo (como Arag\u00f3n o Bizkaia) y otras toda la responsabilidad hipotecaria, con intereses y costas (como Catalu\u00f1a o la Comunitat Valenciana). La cifra est\u00e1 en la escritura de constituci\u00f3n.<br><strong>Cuota a ingresar: 0 \u20ac<\/strong>.<\/td><\/tr><tr><td><strong>Paso 5: Presentaci\u00f3n<\/strong><\/td><td><strong>Online:<\/strong> <strong>Sede electr\u00f3nica de tu CC.AA.<\/strong> (con certificado o Cl@ve).<br><strong>Presencial:<\/strong> <strong>Oficina liquidadora provincial.<\/strong><br><em>Resultado:<\/em> Obtendr\u00e1s el sello o c\u00f3digo de validaci\u00f3n.<\/td><\/tr><tr><td><strong>Paso 6: Registro de la Propiedad<\/strong><\/td><td>Entrega el <strong>Modelo 600 sellado junto con la escritura notarial.<\/strong><br><em>Fin del proceso:<\/em> La vivienda queda oficialmente <strong>libre de cargas<\/strong>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Consejo pr\u00e1ctico:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Solicita al banco el certificado de deuda cero antes de ir al notario y <strong>opta por la presentaci\u00f3n telem\u00e1tica de los documentos para ahorrar tiempo<\/strong>; solo aseg\u00farate de tener tu firma digital activa para obtener el sello de validaci\u00f3n oficial al instante y sin salir de casa.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/housfy.com\/blog\/wp-content\/uploads\/2024\/05\/Modelo-600-de-la-cancelacion-de-la-hipoteca-Housfy.jpg\" alt=\"Modelo 600 para la cancelaci\u00f3n de una hipoteca\" class=\"wp-image-65291\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1les son las Comunidades Aut\u00f3nomas donde se concentra un mayor volumen de compraventa de inmuebles en 2026?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Las Comunidades Aut\u00f3nomas donde se concentran m\u00e1s compraventas de inmuebles son Andaluc\u00eda, que lidera el ranking, Catalu\u00f1a y Madrid, que la siguen de cerca; cada una con su interfaz electr\u00f3nica.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfPor qu\u00e9 es importante esta cuesti\u00f3n? Porque nos determina en qu\u00e9 Comunidades Aut\u00f3nomas se usa m\u00e1s el Modelo 600 para la cancelaci\u00f3n de una hipoteca; procedimiento estrictamente relacionado con el mercado de compraventa, como hemos visto anteriormente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Modelo 600 para la cancelaci\u00f3n de una hipoteca en Catalu\u00f1a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En Catalu\u00f1a, el organismo competente es la <strong><a href=\"https:\/\/atc.gencat.cat\/ca\/inici\" target=\"_blank\" rel=\"noreferrer noopener\">Ag\u00e8ncia Tribut\u00e0ria de Catalunya (ATC)<\/a><\/strong>. La presentaci\u00f3n se realiza a trav\u00e9s de su sede electr\u00f3nica, y en la mayor\u00eda de los casos es <strong>obligatoriamente online<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Organismo competente:<\/strong> El tr\u00e1mite se realiza exclusivamente a trav\u00e9s de la <strong>ATC (Ag\u00e8ncia Tribut\u00e0ria de Catalunya)<\/strong>. Es importante no confundirse con la AEAT (Hacienda Estatal), ya que el impuesto est\u00e1 cedido a la Generalitat.<\/li>\n\n\n\n<li><strong>Plazo legal: <\/strong>Tienes <strong>1 mes desde la fecha de la escritura de cancelaci\u00f3n<\/strong>, de fecha a fecha. Si el \u00faltimo d\u00eda es s\u00e1bado, domingo o festivo, pasa al siguiente d\u00eda h\u00e1bil.<\/li>\n\n\n\n<li><strong>Requisitos de acceso:<\/strong> Al ser un tr\u00e1mite telem\u00e1tico, necesitar\u00e1s identificarte mediante <strong>certificado digital<\/strong> o el sistema <strong>idCat M\u00f2bil<\/strong> (muy com\u00fan y sencillo de obtener en Catalu\u00f1a).<\/li>\n\n\n\n<li><strong>Resultado de la autoliquidaci\u00f3n:<\/strong> Aunque el acto est\u00e1 exento de pago (cuota 0\u20ac), la presentaci\u00f3n es obligatoria para el Registro de la Propiedad. En el formulario <strong>elige \u00abCancelaci\u00f3n de hipoteca (AJ7)\u00bb y el c\u00f3digo de exenci\u00f3n 130.<\/strong><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2024\/05\/16141801\/Modelo-600-para-la-cancelacion-de-una-hipoteca.jpg\" alt=\"Modelo 600 para la cancelaci\u00f3n de una hipoteca\" class=\"wp-image-66247\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 se presenta en Madrid en lugar del Modelo 600 para la cancelaci\u00f3n de una hipoteca?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En Madrid, el organismo competente es la <a href=\"https:\/\/www.comunidad.madrid\/atencion-contribuyente\/oficina-virtual-tributaria\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Agencia Tributaria de la Comunidad de Madrid.<\/strong><\/a> La gesti\u00f3n se realiza <strong>a trav\u00e9s de su oficina virtual<\/strong>, donde puedes cumplimentar y presentar el Modelo 600 para la cancelaci\u00f3n de una hipoteca <strong>sin necesidad de desplazarte.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Madrid hay una diferencia importante; la cancelaci\u00f3n no se declara en el Modelo 600, sino en el <strong>Modelo 601 de Actos Jur\u00eddicos Documentados.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El proceso es parecido al del resto de comunidades; <strong>rellenas el formulario en el programa de ayuda, marcas la exenci\u00f3n y lo presentas de forma telem\u00e1tica.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El plazo es de 30 d\u00edas h\u00e1biles desde la firma; los s\u00e1bados, domingos y festivos no cuentan. Si te pasas, no hay recargo porque la cuota es 0\u20ac, pero <strong>puedes recibir una multa fija de 100\u20ac por presentarlo tarde, o de 200\u20ac<\/strong> si Hacienda te lo requiere antes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Modelo 600 para la cancelaci\u00f3n de una hipoteca en Andaluc\u00eda<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En Andaluc\u00eda, el organismo competente es la <strong><a href=\"https:\/\/www.juntadeandalucia.es\/organismos\/atrian.html\" target=\"_blank\" rel=\"noreferrer noopener\">Agencia Tributaria de Andaluc\u00eda (ATRIAN)<\/a><\/strong>; no es obligatorio presentar el Modelo 600 <strong>cuando la escritura solo cancela la hipoteca porque has pagado toda la deuda <\/strong>y la operaci\u00f3n est\u00e1 exenta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Basta con que el notario env\u00ede la escritura al Registro de la Propiedad.<\/strong> Solo tendr\u00edas que presentarlo, en un plazo de 2 meses y a trav\u00e9s de la Oficina Virtual de la Agencia Tributaria de Andaluc\u00eda, si la cancelaci\u00f3n fuera parcial o no se debiera al pago.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puedes presentarlo presencialmente con cita previa en las <strong>gerencias provinciales de la Agencia Tributaria de Andaluc\u00eda.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em><strong>Nota importante: <\/strong>Con el Modelo 600 para la cancelaci\u00f3n de una hipoteca en Andaluc\u00eda, si tu cancelaci\u00f3n es parcial y s\u00ed tienes que presentarlo,<strong> ten preparada la escritura notarial y el NIF antes de entrar a la Oficina Virtual.<\/strong><\/em><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2024\/05\/16142642\/Modelo-600-para-la-cancelacion-de-una-hipoteca-2.jpg\" alt=\"Modelo 600 para la cancelaci\u00f3n de una hipoteca\" class=\"wp-image-66249\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 pasa si no presento el Modelo 600?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Si no lo presentas, la hipoteca sigue como carga en el Registro y no podr\u00e1s vender la vivienda; y si lo presentas fuera de plazo, puede haber multa; en las comunidades de r\u00e9gimen com\u00fan, de 100\u20ac (200\u20ac si hay requerimiento previo).<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si no presentas el Modelo 600, <strong>la hipoteca sigue apareciendo como carga activa en el Registro de la Propiedad.<\/strong> Y eso tiene consecuencias reales:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si intentas vender la vivienda, el comprador ver\u00e1 la <strong>carga en la nota simple y el banco no le aprobar\u00e1 la hipoteca<\/strong> sobre un inmueble con cargas.<\/li>\n\n\n\n<li>Si lo presentas fuera de plazo, <strong>no pagas recargo porque la cuota es 0\u20ac.<\/strong> En las comunidades de r\u00e9gimen com\u00fan, Hacienda puede imponerte una multa fija de 100\u20ac si lo presentas por tu cuenta, o de 200\u20ac si te lo requiere antes; el Pa\u00eds Vasco y Navarra aplican su propia normativa.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En resumen; no presentarlo no te ahorra dinero (la cuota es 0), pero <strong>s\u00ed te genera problemas.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfY despu\u00e9s de cancelar la hipoteca? Opciones para aprovechar tu inmueble libre de cargas<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Con la hipoteca cancelada, tu vivienda est\u00e1 libre de cargas; es el momento ideal para venderla o para negociar una hipoteca nueva con mejores condiciones.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez inscrita la cancelaci\u00f3n en el Registro, <strong>tu vivienda queda 100% libre de cargas.<\/strong> Es un buen momento para tomar decisiones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Si quieres vender<\/strong>: muchos propietarios aprovechan este momento para <strong>dar el salto a una vivienda mejor. <\/strong>Con la propiedad limpia, el proceso de venta es m\u00e1s \u00e1gil y atractivo para los compradores.<\/li>\n\n\n\n<li><strong>Si quieres mejorar condiciones hipotecarias<\/strong>: puedes contratar una hipoteca nueva con mejores condiciones. Los <a href=\"https:\/\/housfy.com\/hipoteca\/broker-hipotecario\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>br\u00f3kers hipotecarios de Housfy<\/strong><\/a> comparan las mejores ofertas del mercado, negocian por ti y te acompa\u00f1an en todo el proceso, sin coste para el cliente.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfBuscas eso? \u00bfO simplemente est\u00e1s buscando financiaci\u00f3n con mejores condiciones? <a href=\"https:\/\/www.housfy.com\/hipotecas\"><strong>Descubre las hipotecas de Housfy<\/strong><\/a> y <strong>deja que los expertos trabajen por ti.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><div\r\n\t\t\t\tid=\"hustle-embedded-id-30\"\r\n\t\t\t\tclass=\"hustle-ui hustle-inline hustle-palette--gray_slate hustle_module_id_30 module_id_30   hustle-size--custom\"\r\n\t\t\t\t\r\n\t\t\tdata-id=\"30\"\r\n\t\t\tdata-render-id=\"0\"\r\n\t\t\tdata-tracking=\"enabled\"\r\n\t\t\t\r\n\t\t\t\tdata-intro=\"no_animation\"\r\n\t\t\t\tdata-sub-type=\"shortcode\"\r\n\t\t\t\t\r\n\t\t\t\tstyle=\"opacity: 0;\"\r\n\t\t\t\taria-label=\" Encuentra la mejor hipoteca posible para ti popup\"\r\n\t\t\t><div class=\"hustle-inline-content\"><div class=\"hustle-info hustle-info--compact\"><div class=\"hustle-main-wrapper\"><div class=\"hustle-layout\"><div class=\"hustle-content\"><div class=\"hustle-content-wrap\"><div class=\"hustle-group-title\"><h3 class=\"hustle-title\"> Encuentra la mejor hipoteca posible para ti<\/h3><h4 class=\"hustle-subtitle\">Ir de banco en banco es del pasado<\/h4><\/div><div class=\"hustle-cta-container\"><a class=\"hustle-button hustle-button-cta \" href=\"https:\/\/housfy.com\/hipoteca?utm_source=traffic_CTABanner_Embed_blog&#038;utm_medium=CTABanner&#038;utm_campaign=CTABanner_Embed_hipoteca_blog&#038;utm_term=hipoteca_CTABanner_Embed_blog\" target=\"_self\" data-cta-type=\"cta\">INF\u00d3RMATE GRATIS<\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Preguntas frecuentes (FAQ&#8217;s)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfPuede el banco gestionar el Modelo 600 por m\u00ed?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ed, muchos bancos ofrecen este servicio, pero suelen cobrar por este servicio, as\u00ed que conviene comparar su precio con el de una gestor\u00eda. No est\u00e1s obligado a aceptar; <strong>puedes presentarlo t\u00fa mismo online o contratar una gestor\u00eda de tu elecci\u00f3n<\/strong> por mucho menos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el banco ya lo ha gestionado en el pasado sin avisarte del coste, revisa tu contrato. <strong>Esa comisi\u00f3n no siempre est\u00e1 justificada.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 ocurre si he perdido la escritura de cancelaci\u00f3n del notario?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes solicitar una <strong>copia autorizada directamente a la notar\u00eda donde se firm\u00f3<\/strong>, ya que est\u00e1n obligadas a conservar los protocolos. El coste es bajo y el tr\u00e1mite suele resolverse en pocos d\u00edas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin ese documento<strong> no podr\u00e1s presentar el Modelo 600 ni inscribir la cancelaci\u00f3n en el Registro<\/strong>, as\u00ed que no lo omitas aunque te parezca un paso menor.<\/p>\n\n\n\n<p style=\"font-size: 0.75em; font-style: italic; color: #666;\">Las im\u00e1genes de este art\u00edculo se han generado con inteligencia artificial. Sirven para ilustrar visualmente los conceptos explicados y facilitar su comprensi\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Muchos propietarios se preguntan si hay que presentar el Modelo 600 para la cancelaci\u00f3n de una hipoteca cuando la cuota a pagar es de 0\u20ac. La respuesta es s\u00ed en casi toda Espa\u00f1a, con alguna excepci\u00f3n como Andaluc\u00eda, y en Housfy te contamos c\u00f3mo hacerlo. Lo m\u00e1s importante de este art\u00edculo: En este art\u00edculo aprender\u00e1s: Asistente del modelo 600 para la cancelaci\u00f3n de hipoteca \u00bfQu\u00e9 es el Modelo 600 y para qu\u00e9 sirve? El Modelo 600 es el formulario oficial para declarar el ITP y AJD ante tu Comunidad Aut\u00f3noma; en la cancelaci\u00f3n hipotecaria, la cuota es de 0\u20ac, pero <\/p>\n","protected":false},"author":60,"featured_media":66250,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[134],"tags":[],"class_list":["post-56203","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vender-piso","has_thumb"],"img_url":"https:\/\/static0.housfy.com\/prod\/blog\/images\/2024\/05\/16143321\/Modelo-600-para-la-cancelacion-de-una-hipoteca-3.jpg","_links":{"self":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/56203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/users\/60"}],"replies":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/comments?post=56203"}],"version-history":[{"count":56,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/56203\/revisions"}],"predecessor-version":[{"id":71777,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/56203\/revisions\/71777"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/media\/66250"}],"wp:attachment":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/media?parent=56203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/categories?post=56203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/tags?post=56203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}