From cf8502959f6c0d7a1c17e4005f10f863c7e46453 Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Tue, 15 Apr 2025 20:26:09 +0800 Subject: [PATCH] vault backup: 2025-04-15 20:26:09 Affected files: .obsidian/plugins/dataview/main.js .obsidian/plugins/dataview/manifest.json .obsidian/plugins/dataview/styles.css .obsidian/plugins/obsidian-git/main.js .obsidian/plugins/obsidian-git/manifest.json .obsidian/plugins/obsidian-quiet-outline/main.js .obsidian/plugins/obsidian-quiet-outline/manifest.json .obsidian/plugins/obsidian-quiet-outline/styles.css .obsidian/plugins/obsidian-tasks-plugin/main.js .obsidian/plugins/obsidian-tasks-plugin/manifest.json --- .obsidian/plugins/dataview/main.js | 217 +++++-- .obsidian/plugins/dataview/manifest.json | 2 +- .obsidian/plugins/dataview/styles.css | 11 +- .obsidian/plugins/obsidian-git/main.js | 198 +++---- .obsidian/plugins/obsidian-git/manifest.json | 2 +- .../plugins/obsidian-quiet-outline/main.js | 539 +++++++++--------- .../obsidian-quiet-outline/manifest.json | 20 +- .../plugins/obsidian-quiet-outline/styles.css | 20 +- .../plugins/obsidian-tasks-plugin/main.js | 102 ++-- .../obsidian-tasks-plugin/manifest.json | 2 +- 10 files changed, 635 insertions(+), 478 deletions(-) diff --git a/.obsidian/plugins/dataview/main.js b/.obsidian/plugins/dataview/main.js index 66fd933..898d702 100644 --- a/.obsidian/plugins/dataview/main.js +++ b/.obsidian/plugins/dataview/main.js @@ -7506,6 +7506,108 @@ var emojiRegex = () => { return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; }; +var removeMarkdown = function(md, options) { + options = options || {}; + options.listUnicodeChar = options.hasOwnProperty('listUnicodeChar') ? options.listUnicodeChar : false; + options.stripListLeaders = options.hasOwnProperty('stripListLeaders') ? options.stripListLeaders : true; + options.gfm = options.hasOwnProperty('gfm') ? options.gfm : true; + options.useImgAltText = options.hasOwnProperty('useImgAltText') ? options.useImgAltText : true; + options.abbr = options.hasOwnProperty('abbr') ? options.abbr : false; + options.replaceLinksWithURL = options.hasOwnProperty('replaceLinksWithURL') ? options.replaceLinksWithURL : false; + options.htmlTagsToSkip = options.hasOwnProperty('htmlTagsToSkip') ? options.htmlTagsToSkip : []; + options.throwError = options.hasOwnProperty('throwError') ? options.throwError : false; + + var output = md || ''; + + // Remove horizontal rules (stripListHeaders conflict with this rule, which is why it has been moved to the top) + output = output.replace(/^(-\s*?|\*\s*?|_\s*?){3,}\s*/gm, ''); + + try { + if (options.stripListLeaders) { + if (options.listUnicodeChar) + output = output.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm, options.listUnicodeChar + ' $1'); + else + output = output.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm, '$1'); + } + if (options.gfm) { + output = output + // Header + .replace(/\n={2,}/g, '\n') + // Fenced codeblocks + .replace(/~{3}.*\n/g, '') + // Strikethrough + .replace(/~~/g, '') + // Fenced codeblocks + .replace(/`{3}.*\n/g, ''); + } + if (options.abbr) { + // Remove abbreviations + output = output.replace(/\*\[.*\]:.*\n/, ''); + } + output = output + // Remove HTML tags + .replace(/<[^>]*>/g, ''); + + var htmlReplaceRegex = new RegExp('<[^>]*>', 'g'); + if (options.htmlTagsToSkip.length > 0) { + // Using negative lookahead. Eg. (?!sup|sub) will not match 'sup' and 'sub' tags. + var joinedHtmlTagsToSkip = '(?!' + options.htmlTagsToSkip.join("|") + ')'; + + // Adding the lookahead literal with the default regex for html. Eg./<(?!sup|sub)[^>]*>/ig + htmlReplaceRegex = new RegExp( + '<' + + joinedHtmlTagsToSkip + + '[^>]*>', + 'ig' + ); + } + + output = output + // Remove HTML tags + .replace(htmlReplaceRegex, '') + // Remove setext-style headers + .replace(/^[=\-]{2,}\s*$/g, '') + // Remove footnotes? + .replace(/\[\^.+?\](\: .*?$)?/g, '') + .replace(/\s{0,2}\[.*?\]: .*?$/g, '') + // Remove images + .replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g, options.useImgAltText ? '$1' : '') + // Remove inline links + .replace(/\[([^\]]*?)\][\[\(].*?[\]\)]/g, options.replaceLinksWithURL ? '$2' : '$1') + // Remove blockquotes + .replace(/^(\n)?\s{0,3}>\s?/gm, '$1') + // .replace(/(^|\n)\s{0,3}>\s?/g, '\n\n') + // Remove reference-style links? + .replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g, '') + // Remove atx-style headers + .replace(/^(\n)?\s{0,}#{1,6}\s*( (.+))? +#+$|^(\n)?\s{0,}#{1,6}\s*( (.+))?$/gm, '$1$3$4$6') + // Remove * emphasis + .replace(/([\*]+)(\S)(.*?\S)??\1/g, '$2$3') + // Remove _ emphasis. Unlike *, _ emphasis gets rendered only if + // 1. Either there is a whitespace character before opening _ and after closing _. + // 2. Or _ is at the start/end of the string. + .replace(/(^|\W)([_]+)(\S)(.*?\S)??\2($|\W)/g, '$1$3$4$5') + // Remove code blocks + .replace(/(`{3,})(.*?)\1/gm, '$2') + // Remove inline code + .replace(/`(.+?)`/g, '$1') + // // Replace two or more newlines with exactly two? Not entirely sure this belongs here... + // .replace(/\n{2,}/g, '\n\n') + // // Remove newlines in a paragraph + // .replace(/(\S+)\n\s*(\S+)/g, '$1 $2') + // Replace strike through + .replace(/~(.*?)~/g, '$1'); + } catch(e) { + if (options.throwError) throw e; + + console.error("remove-markdown encountered error: %s", e); + return md; + } + return output; +}; + +var removeMd = /*@__PURE__*/getDefaultExportFromCjs(removeMarkdown); + /** Normalize a duration to all of the proper units. */ function normalizeDuration(dur) { if (dur === undefined || dur === null) @@ -7550,7 +7652,7 @@ function extractSubtags(tag) { return result; } /** Try calling the given function; on failure, return the error message. */ -function tryOrPropogate(func) { +function tryOrPropagate(func) { try { return func(); } @@ -7559,7 +7661,7 @@ function tryOrPropogate(func) { } } /** Try asynchronously calling the given function; on failure, return the error message. */ -async function asyncTryOrPropogate(func) { +async function asyncTryOrPropagate(func) { try { return await func(); } @@ -7618,6 +7720,16 @@ function setsEqual(first, second) { return false; return true; } +/** Normalize a markdown string. Removes all markdown tags and obsidian links. */ +function normalizeMarkdown(str) { + // [[test]] -> test + let interim = str.replace(/\[\[([^\|]*?)\]\]/g, "$1"); + // [[test|test]] -> test + interim = interim.replace(/\[\[.*?\|(.*?)\]\]/, "$1"); + // remove markdown tags + interim = removeMd(interim); + return interim; +} var Values; (function (Values) { @@ -7823,7 +7935,7 @@ var Values; } } Values.compareValue = compareValue; - /** Find the corresponding Dataveiw type for an arbitrary value. */ + /** Find the corresponding Dataview type for an arbitrary value. */ function typeOf(val) { return wrapValue(val)?.type; } @@ -8232,7 +8344,7 @@ class DataArrayImpl { "max", ]); static ARRAY_PROXY = { - get: function (target, prop, reciever) { + get: function (target, prop, receiver) { if (typeof prop === "symbol") return target[prop]; else if (typeof prop === "number") @@ -8548,7 +8660,7 @@ async function renderCompactMarkdownForInlineFieldLivePreview(app, markdown, con await obsidian.MarkdownRenderer.render(app, markdown, tmpContainer, sourcePath, component); let paragraph = tmpContainer.querySelector(":scope > p"); if (tmpContainer.childNodes.length == 1 && paragraph) { - container.replaceChildren(...paragraph.childNodes); + container.appendChild(paragraph.childNodes.item(paragraph.childNodes.length - 1)); } else { container.replaceChildren(...tmpContainer.childNodes); @@ -9052,7 +9164,7 @@ const EXPRESSION = parsimmon_umd_minExports.createLanguage({ inlineFieldList: q => q.atomInlineField.sepBy(parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace).lookahead(q.atomInlineField)), inlineField: q => parsimmon_umd_minExports.alt(parsimmon_umd_minExports.seqMap(q.atomInlineField, parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace), q.inlineFieldList, (f, _s, l) => [f].concat(l)), q.atomInlineField), atomField: q => parsimmon_umd_minExports.alt( - // Place embed links above negated fields as they are the special parser case '![[thing]]' and are generally unambigious. + // Place embed links above negated fields as they are the special parser case '![[thing]]' and are generally unambiguous. q.embedLink.map(l => Fields.literal(l)), q.negatedField, q.linkField, q.listField, q.objectField, q.lambdaField, q.parensField, q.boolField, q.numberField, q.stringField, q.dateField, q.durationField, q.nullField, q.variableField), indexField: q => parsimmon_umd_minExports.seqMap(q.atomField, parsimmon_umd_minExports.alt(q.dotPostfix, q.indexPostfix, q.functionPostfix).many(), (obj, postfixes) => { let result = obj; @@ -9137,7 +9249,7 @@ function findClosing(line, start, open, close) { nesting++; else if (char == close) nesting--; - // Only occurs if we are on a close character and trhere is no more nesting. + // Only occurs if we are on a close character and there is no more nesting. if (nesting < 0) return { value: line.substring(start, index).trim(), endIndex: index + 1 }; escaped = false; @@ -9151,7 +9263,7 @@ function findSeparator(line, start) { return undefined; return { key: line.substring(start, sep).trim(), valueIndex: sep + 2 }; } -/** Try to completely parse an inline field starting at the given position. Assuems `start` is on a wrapping character. */ +/** Try to completely parse an inline field starting at the given position. Assumes `start` is on a wrapping character. */ function findSpecificInlineField(line, start) { let open = line.charAt(start); let key = findSeparator(line, start + 1); @@ -9581,7 +9693,7 @@ function addFields(fields, target) { } /** Importer for markdown documents. */ -// TODO: Consider using an actual parser in leiu of a more expensive regex. +// TODO: Consider using an actual parser in lieu of a more expensive regex. const LIST_ITEM_REGEX = /^[\s>]*(\d+\.|\d+\)|\*|-|\+)\s*(\[.{0,1}\])?\s*(.*)$/mu; /** Recursively convert frontmatter into fields. We have to dance around YAML structure. */ function parseFrontmatter(value) { @@ -12669,7 +12781,7 @@ function createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) { }; } -var WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICd1c2Ugc3RyaWN0JzsKCiAgLy8gdGhlc2UgYXJlbid0IHJlYWxseSBwcml2YXRlLCBidXQgbm9yIGFyZSB0aGV5IHJlYWxseSB1c2VmdWwgdG8gZG9jdW1lbnQKCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBMdXhvbkVycm9yIGV4dGVuZHMgRXJyb3Ige30KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBJbnZhbGlkRGF0ZVRpbWVFcnJvciBleHRlbmRzIEx1eG9uRXJyb3IgewogICAgY29uc3RydWN0b3IocmVhc29uKSB7CiAgICAgIHN1cGVyKGBJbnZhbGlkIERhdGVUaW1lOiAke3JlYXNvbi50b01lc3NhZ2UoKX1gKTsKICAgIH0KICB9CgogIC8qKgogICAqIEBwcml2YXRlCiAgICovCiAgY2xhc3MgSW52YWxpZEludGVydmFsRXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHsKICAgIGNvbnN0cnVjdG9yKHJlYXNvbikgewogICAgICBzdXBlcihgSW52YWxpZCBJbnRlcnZhbDogJHtyZWFzb24udG9NZXNzYWdlKCl9YCk7CiAgICB9CiAgfQoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwogIGNsYXNzIEludmFsaWREdXJhdGlvbkVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7CiAgICBjb25zdHJ1Y3RvcihyZWFzb24pIHsKICAgICAgc3VwZXIoYEludmFsaWQgRHVyYXRpb246ICR7cmVhc29uLnRvTWVzc2FnZSgpfWApOwogICAgfQogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige30KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBJbnZhbGlkVW5pdEVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7CiAgICBjb25zdHJ1Y3Rvcih1bml0KSB7CiAgICAgIHN1cGVyKGBJbnZhbGlkIHVuaXQgJHt1bml0fWApOwogICAgfQogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBJbnZhbGlkQXJndW1lbnRFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige30KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBab25lSXNBYnN0cmFjdEVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgc3VwZXIoIlpvbmUgaXMgYW4gYWJzdHJhY3QgY2xhc3MiKTsKICAgIH0KICB9CgogIC8qKgogICAqIEBwcml2YXRlCiAgICovCgogIGNvbnN0IG4gPSAibnVtZXJpYyIsCiAgICBzID0gInNob3J0IiwKICAgIGwgPSAibG9uZyI7CgogIGNvbnN0IERBVEVfU0hPUlQgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IG4sCiAgICBkYXk6IG4sCiAgfTsKCiAgY29uc3QgREFURV9NRUQgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IHMsCiAgICBkYXk6IG4sCiAgfTsKCiAgY29uc3QgREFURV9NRURfV0lUSF9XRUVLREFZID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBzLAogICAgZGF5OiBuLAogICAgd2Vla2RheTogcywKICB9OwoKICBjb25zdCBEQVRFX0ZVTEwgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IGwsCiAgICBkYXk6IG4sCiAgfTsKCiAgY29uc3QgREFURV9IVUdFID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBsLAogICAgZGF5OiBuLAogICAgd2Vla2RheTogbCwKICB9OwoKICBjb25zdCBUSU1FX1NJTVBMRSA9IHsKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgfTsKCiAgY29uc3QgVElNRV9XSVRIX1NFQ09ORFMgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogIH07CgogIGNvbnN0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogICAgdGltZVpvbmVOYW1lOiBzLAogIH07CgogIGNvbnN0IFRJTUVfV0lUSF9MT05HX09GRlNFVCA9IHsKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgICBzZWNvbmQ6IG4sCiAgICB0aW1lWm9uZU5hbWU6IGwsCiAgfTsKCiAgY29uc3QgVElNRV8yNF9TSU1QTEUgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgaG91ckN5Y2xlOiAiaDIzIiwKICB9OwoKICBjb25zdCBUSU1FXzI0X1dJVEhfU0VDT05EUyA9IHsKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgICBzZWNvbmQ6IG4sCiAgICBob3VyQ3ljbGU6ICJoMjMiLAogIH07CgogIGNvbnN0IFRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogICAgaG91ckN5Y2xlOiAiaDIzIiwKICAgIHRpbWVab25lTmFtZTogcywKICB9OwoKICBjb25zdCBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogICAgaG91ckN5Y2xlOiAiaDIzIiwKICAgIHRpbWVab25lTmFtZTogbCwKICB9OwoKICBjb25zdCBEQVRFVElNRV9TSE9SVCA9IHsKICAgIHllYXI6IG4sCiAgICBtb250aDogbiwKICAgIGRheTogbiwKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgfTsKCiAgY29uc3QgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBuLAogICAgZGF5OiBuLAogICAgaG91cjogbiwKICAgIG1pbnV0ZTogbiwKICAgIHNlY29uZDogbiwKICB9OwoKICBjb25zdCBEQVRFVElNRV9NRUQgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IHMsCiAgICBkYXk6IG4sCiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogIH07CgogIGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IHMsCiAgICBkYXk6IG4sCiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogIH07CgogIGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IHMsCiAgICBkYXk6IG4sCiAgICB3ZWVrZGF5OiBzLAogICAgaG91cjogbiwKICAgIG1pbnV0ZTogbiwKICB9OwoKICBjb25zdCBEQVRFVElNRV9GVUxMID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBsLAogICAgZGF5OiBuLAogICAgaG91cjogbiwKICAgIG1pbnV0ZTogbiwKICAgIHRpbWVab25lTmFtZTogcywKICB9OwoKICBjb25zdCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyA9IHsKICAgIHllYXI6IG4sCiAgICBtb250aDogbCwKICAgIGRheTogbiwKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgICBzZWNvbmQ6IG4sCiAgICB0aW1lWm9uZU5hbWU6IHMsCiAgfTsKCiAgY29uc3QgREFURVRJTUVfSFVHRSA9IHsKICAgIHllYXI6IG4sCiAgICBtb250aDogbCwKICAgIGRheTogbiwKICAgIHdlZWtkYXk6IGwsCiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgdGltZVpvbmVOYW1lOiBsLAogIH07CgogIGNvbnN0IERBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBsLAogICAgZGF5OiBuLAogICAgd2Vla2RheTogbCwKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgICBzZWNvbmQ6IG4sCiAgICB0aW1lWm9uZU5hbWU6IGwsCiAgfTsKCiAgLyoqCiAgICogQGludGVyZmFjZQogICAqLwogIGNsYXNzIFpvbmUgewogICAgLyoqCiAgICAgKiBUaGUgdHlwZSBvZiB6b25lCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCB0eXBlKCkgewogICAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhpcyB6b25lLgogICAgICogQGFic3RyYWN0CiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgbmFtZSgpIHsKICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKICAgIH0KCiAgICBnZXQgaWFuYU5hbWUoKSB7CiAgICAgIHJldHVybiB0aGlzLm5hbWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIG9mZnNldCBpcyBrbm93biB0byBiZSBmaXhlZCBmb3IgdGhlIHdob2xlIHllYXIuCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEB0eXBlIHtib29sZWFufQogICAgICovCiAgICBnZXQgaXNVbml2ZXJzYWwoKSB7CiAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyBjb21tb24gbmFtZSAoc3VjaCBhcyBFU1QpIGF0IHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gYWZmZWN0IHRoZSBmb3JtYXQKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLmZvcm1hdCAtIFdoYXQgc3R5bGUgb2Ygb2Zmc2V0IHRvIHJldHVybi4gQWNjZXB0cyAnbG9uZycgb3IgJ3Nob3J0Jy4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLmxvY2FsZSAtIFdoYXQgbG9jYWxlIHRvIHJldHVybiB0aGUgb2Zmc2V0IG5hbWUgaW4uCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIG9mZnNldE5hbWUodHMsIG9wdHMpIHsKICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG9mZnNldCdzIHZhbHVlIGFzIGEgc3RyaW5nCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBvZmZzZXQKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgLSBXaGF0IHN0eWxlIG9mIG9mZnNldCB0byByZXR1cm4uCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXB0cyAnbmFycm93JywgJ3Nob3J0Jywgb3IgJ3RlY2hpZScuIFJldHVybmluZyAnKzYnLCAnKzA2OjAwJywgb3IgJyswNjAwJyByZXNwZWN0aXZlbHkKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHsKICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgZm9yIHRoaXMgem9uZSBhdCB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC4KICAgICAqIEBhYnN0cmFjdAogICAgICogQHBhcmFtIHtudW1iZXJ9IHRzIC0gRXBvY2ggbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0byBjb21wdXRlIHRoZSBvZmZzZXQKICAgICAqIEByZXR1cm4ge251bWJlcn0KICAgICAqLwogICAgb2Zmc2V0KHRzKSB7CiAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIFpvbmUgaXMgZXF1YWwgdG8gYW5vdGhlciB6b25lCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSB7Wm9uZX0gb3RoZXJab25lIC0gdGhlIHpvbmUgdG8gY29tcGFyZQogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgZXF1YWxzKG90aGVyWm9uZSkgewogICAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIHZhbGlkLgogICAgICogQGFic3RyYWN0CiAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KICAgICAqLwogICAgZ2V0IGlzVmFsaWQoKSB7CiAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CiAgICB9CiAgfQoKICBsZXQgc2luZ2xldG9uJDEgPSBudWxsOwoKICAvKioKICAgKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuCiAgICogQGltcGxlbWVudHMge1pvbmV9CiAgICovCiAgY2xhc3MgU3lzdGVtWm9uZSBleHRlbmRzIFpvbmUgewogICAgLyoqCiAgICAgKiBHZXQgYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIGxvY2FsIHpvbmUKICAgICAqIEByZXR1cm4ge1N5c3RlbVpvbmV9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKSB7CiAgICAgIGlmIChzaW5nbGV0b24kMSA9PT0gbnVsbCkgewogICAgICAgIHNpbmdsZXRvbiQxID0gbmV3IFN5c3RlbVpvbmUoKTsKICAgICAgfQogICAgICByZXR1cm4gc2luZ2xldG9uJDE7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCB0eXBlKCkgewogICAgICByZXR1cm4gInN5c3RlbSI7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBuYW1lKCkgewogICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IGlzVW5pdmVyc2FsKCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIG9mZnNldE5hbWUodHMsIHsgZm9ybWF0LCBsb2NhbGUgfSkgewogICAgICByZXR1cm4gcGFyc2Vab25lSW5mbyh0cywgZm9ybWF0LCBsb2NhbGUpOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkgewogICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgb2Zmc2V0KHRzKSB7CiAgICAgIHJldHVybiAtbmV3IERhdGUodHMpLmdldFRpbWV6b25lT2Zmc2V0KCk7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGVxdWFscyhvdGhlclpvbmUpIHsKICAgICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSAic3lzdGVtIjsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IGlzVmFsaWQoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KCiAgbGV0IGR0ZkNhY2hlID0ge307CiAgZnVuY3Rpb24gbWFrZURURih6b25lKSB7CiAgICBpZiAoIWR0ZkNhY2hlW3pvbmVdKSB7CiAgICAgIGR0ZkNhY2hlW3pvbmVdID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIiwgewogICAgICAgIGhvdXIxMjogZmFsc2UsCiAgICAgICAgdGltZVpvbmU6IHpvbmUsCiAgICAgICAgeWVhcjogIm51bWVyaWMiLAogICAgICAgIG1vbnRoOiAiMi1kaWdpdCIsCiAgICAgICAgZGF5OiAiMi1kaWdpdCIsCiAgICAgICAgaG91cjogIjItZGlnaXQiLAogICAgICAgIG1pbnV0ZTogIjItZGlnaXQiLAogICAgICAgIHNlY29uZDogIjItZGlnaXQiLAogICAgICAgIGVyYTogInNob3J0IiwKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gZHRmQ2FjaGVbem9uZV07CiAgfQoKICBjb25zdCB0eXBlVG9Qb3MgPSB7CiAgICB5ZWFyOiAwLAogICAgbW9udGg6IDEsCiAgICBkYXk6IDIsCiAgICBlcmE6IDMsCiAgICBob3VyOiA0LAogICAgbWludXRlOiA1LAogICAgc2Vjb25kOiA2LAogIH07CgogIGZ1bmN0aW9uIGhhY2t5T2Zmc2V0KGR0ZiwgZGF0ZSkgewogICAgY29uc3QgZm9ybWF0dGVkID0gZHRmLmZvcm1hdChkYXRlKS5yZXBsYWNlKC9cdTIwMEUvZywgIiIpLAogICAgICBwYXJzZWQgPSAvKFxkKylcLyhcZCspXC8oXGQrKSAoQUR8QkMpLD8gKFxkKyk6KFxkKyk6KFxkKykvLmV4ZWMoZm9ybWF0dGVkKSwKICAgICAgWywgZk1vbnRoLCBmRGF5LCBmWWVhciwgZmFkT3JCYywgZkhvdXIsIGZNaW51dGUsIGZTZWNvbmRdID0gcGFyc2VkOwogICAgcmV0dXJuIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmYWRPckJjLCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF07CiAgfQoKICBmdW5jdGlvbiBwYXJ0c09mZnNldChkdGYsIGRhdGUpIHsKICAgIGNvbnN0IGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXRUb1BhcnRzKGRhdGUpOwogICAgY29uc3QgZmlsbGVkID0gW107CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZC5sZW5ndGg7IGkrKykgewogICAgICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBmb3JtYXR0ZWRbaV07CiAgICAgIGNvbnN0IHBvcyA9IHR5cGVUb1Bvc1t0eXBlXTsKCiAgICAgIGlmICh0eXBlID09PSAiZXJhIikgewogICAgICAgIGZpbGxlZFtwb3NdID0gdmFsdWU7CiAgICAgIH0gZWxzZSBpZiAoIWlzVW5kZWZpbmVkKHBvcykpIHsKICAgICAgICBmaWxsZWRbcG9zXSA9IHBhcnNlSW50KHZhbHVlLCAxMCk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBmaWxsZWQ7CiAgfQoKICBsZXQgaWFuYVpvbmVDYWNoZSA9IHt9OwogIC8qKgogICAqIEEgem9uZSBpZGVudGlmaWVkIGJ5IGFuIElBTkEgaWRlbnRpZmllciwgbGlrZSBBbWVyaWNhL05ld19Zb3JrCiAgICogQGltcGxlbWVudHMge1pvbmV9CiAgICovCiAgY2xhc3MgSUFOQVpvbmUgZXh0ZW5kcyBab25lIHsKICAgIC8qKgogICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWUKICAgICAqIEByZXR1cm4ge0lBTkFab25lfQogICAgICovCiAgICBzdGF0aWMgY3JlYXRlKG5hbWUpIHsKICAgICAgaWYgKCFpYW5hWm9uZUNhY2hlW25hbWVdKSB7CiAgICAgICAgaWFuYVpvbmVDYWNoZVtuYW1lXSA9IG5ldyBJQU5BWm9uZShuYW1lKTsKICAgICAgfQogICAgICByZXR1cm4gaWFuYVpvbmVDYWNoZVtuYW1lXTsKICAgIH0KCiAgICAvKioKICAgICAqIFJlc2V0IGxvY2FsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLgogICAgICogQHJldHVybiB7dm9pZH0KICAgICAqLwogICAgc3RhdGljIHJlc2V0Q2FjaGUoKSB7CiAgICAgIGlhbmFab25lQ2FjaGUgPSB7fTsKICAgICAgZHRmQ2FjaGUgPSB7fTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgc3RyaW5nIGlzIGEgdmFsaWQgc3BlY2lmaWVyLiBUaGlzIG9ubHkgY2hlY2tzIHRoZSBzdHJpbmcncyBmb3JtYXQsIG5vdCB0aGF0IHRoZSBzcGVjaWZpZXIgaWRlbnRpZmllcyBhIGtub3duIHpvbmU7IHNlZSBpc1ZhbGlkWm9uZSBmb3IgdGhhdC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIHN0cmluZyB0byBjaGVjayB2YWxpZGl0eSBvbgogICAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcigiQW1lcmljYS9OZXdfWW9yayIpIC8vPT4gdHJ1ZQogICAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcigiU3BvcnR+fmJsb3JwIikgLy89PiBmYWxzZQogICAgICogQGRlcHJlY2F0ZWQgVGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZSBmb3Igc29tZSB2YWxpZCBJQU5BIG5hbWVzLiBVc2UgaXNWYWxpZFpvbmUgaW5zdGVhZC4KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIHN0YXRpYyBpc1ZhbGlkU3BlY2lmaWVyKHMpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZFpvbmUocyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHN0cmluZyBpZGVudGlmaWVzIGEgcmVhbCB6b25lCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFRoZSBzdHJpbmcgdG8gY2hlY2sKICAgICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRab25lKCJBbWVyaWNhL05ld19Zb3JrIikgLy89PiB0cnVlCiAgICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkWm9uZSgiRmFudGFzaWEvQ2FzdGxlIikgLy89PiBmYWxzZQogICAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoIlNwb3J0fn5ibG9ycCIpIC8vPT4gZmFsc2UKICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIHN0YXRpYyBpc1ZhbGlkWm9uZSh6b25lKSB7CiAgICAgIGlmICghem9uZSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICB0cnkgewogICAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIsIHsgdGltZVpvbmU6IHpvbmUgfSkuZm9ybWF0KCk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KCiAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgIHN1cGVyKCk7CiAgICAgIC8qKiBAcHJpdmF0ZSAqKi8KICAgICAgdGhpcy56b25lTmFtZSA9IG5hbWU7CiAgICAgIC8qKiBAcHJpdmF0ZSAqKi8KICAgICAgdGhpcy52YWxpZCA9IElBTkFab25lLmlzVmFsaWRab25lKG5hbWUpOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBnZXQgdHlwZSgpIHsKICAgICAgcmV0dXJuICJpYW5hIjsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IG5hbWUoKSB7CiAgICAgIHJldHVybiB0aGlzLnpvbmVOYW1lOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBnZXQgaXNVbml2ZXJzYWwoKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgb2Zmc2V0TmFtZSh0cywgeyBmb3JtYXQsIGxvY2FsZSB9KSB7CiAgICAgIHJldHVybiBwYXJzZVpvbmVJbmZvKHRzLCBmb3JtYXQsIGxvY2FsZSwgdGhpcy5uYW1lKTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHsKICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh0aGlzLm9mZnNldCh0cyksIGZvcm1hdCk7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIG9mZnNldCh0cykgewogICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodHMpOwoKICAgICAgaWYgKGlzTmFOKGRhdGUpKSByZXR1cm4gTmFOOwoKICAgICAgY29uc3QgZHRmID0gbWFrZURURih0aGlzLm5hbWUpOwogICAgICBsZXQgW3llYXIsIG1vbnRoLCBkYXksIGFkT3JCYywgaG91ciwgbWludXRlLCBzZWNvbmRdID0gZHRmLmZvcm1hdFRvUGFydHMKICAgICAgICA/IHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkKICAgICAgICA6IGhhY2t5T2Zmc2V0KGR0ZiwgZGF0ZSk7CgogICAgICBpZiAoYWRPckJjID09PSAiQkMiKSB7CiAgICAgICAgeWVhciA9IC1NYXRoLmFicyh5ZWFyKSArIDE7CiAgICAgIH0KCiAgICAgIC8vIGJlY2F1c2Ugd2UncmUgdXNpbmcgaG91cjEyIGFuZCBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMDI1NTY0JmNhbj0yJnE9JTIyMjQlM0EwMCUyMiUyMGRhdGV0aW1lZm9ybWF0CiAgICAgIGNvbnN0IGFkanVzdGVkSG91ciA9IGhvdXIgPT09IDI0ID8gMCA6IGhvdXI7CgogICAgICBjb25zdCBhc1VUQyA9IG9ialRvTG9jYWxUUyh7CiAgICAgICAgeWVhciwKICAgICAgICBtb250aCwKICAgICAgICBkYXksCiAgICAgICAgaG91cjogYWRqdXN0ZWRIb3VyLAogICAgICAgIG1pbnV0ZSwKICAgICAgICBzZWNvbmQsCiAgICAgICAgbWlsbGlzZWNvbmQ6IDAsCiAgICAgIH0pOwoKICAgICAgbGV0IGFzVFMgPSArZGF0ZTsKICAgICAgY29uc3Qgb3ZlciA9IGFzVFMgJSAxMDAwOwogICAgICBhc1RTIC09IG92ZXIgPj0gMCA/IG92ZXIgOiAxMDAwICsgb3ZlcjsKICAgICAgcmV0dXJuIChhc1VUQyAtIGFzVFMpIC8gKDYwICogMTAwMCk7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGVxdWFscyhvdGhlclpvbmUpIHsKICAgICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSAiaWFuYSIgJiYgb3RoZXJab25lLm5hbWUgPT09IHRoaXMubmFtZTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IGlzVmFsaWQoKSB7CiAgICAgIHJldHVybiB0aGlzLnZhbGlkOwogICAgfQogIH0KCiAgLy8gdG9kbyAtIHJlbWFwIGNhY2hpbmcKCiAgbGV0IGludGxMRkNhY2hlID0ge307CiAgZnVuY3Rpb24gZ2V0Q2FjaGVkTEYobG9jU3RyaW5nLCBvcHRzID0ge30pIHsKICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTsKICAgIGxldCBkdGYgPSBpbnRsTEZDYWNoZVtrZXldOwogICAgaWYgKCFkdGYpIHsKICAgICAgZHRmID0gbmV3IEludGwuTGlzdEZvcm1hdChsb2NTdHJpbmcsIG9wdHMpOwogICAgICBpbnRsTEZDYWNoZVtrZXldID0gZHRmOwogICAgfQogICAgcmV0dXJuIGR0ZjsKICB9CgogIGxldCBpbnRsRFRDYWNoZSA9IHt9OwogIGZ1bmN0aW9uIGdldENhY2hlZERURihsb2NTdHJpbmcsIG9wdHMgPSB7fSkgewogICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pOwogICAgbGV0IGR0ZiA9IGludGxEVENhY2hlW2tleV07CiAgICBpZiAoIWR0ZikgewogICAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpOwogICAgICBpbnRsRFRDYWNoZVtrZXldID0gZHRmOwogICAgfQogICAgcmV0dXJuIGR0ZjsKICB9CgogIGxldCBpbnRsTnVtQ2FjaGUgPSB7fTsKICBmdW5jdGlvbiBnZXRDYWNoZWRJTkYobG9jU3RyaW5nLCBvcHRzID0ge30pIHsKICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTsKICAgIGxldCBpbmYgPSBpbnRsTnVtQ2FjaGVba2V5XTsKICAgIGlmICghaW5mKSB7CiAgICAgIGluZiA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NTdHJpbmcsIG9wdHMpOwogICAgICBpbnRsTnVtQ2FjaGVba2V5XSA9IGluZjsKICAgIH0KICAgIHJldHVybiBpbmY7CiAgfQoKICBsZXQgaW50bFJlbENhY2hlID0ge307CiAgZnVuY3Rpb24gZ2V0Q2FjaGVkUlRGKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7CiAgICBjb25zdCB7IGJhc2UsIC4uLmNhY2hlS2V5T3B0cyB9ID0gb3B0czsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9ucwogICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgY2FjaGVLZXlPcHRzXSk7CiAgICBsZXQgaW5mID0gaW50bFJlbENhY2hlW2tleV07CiAgICBpZiAoIWluZikgewogICAgICBpbmYgPSBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQobG9jU3RyaW5nLCBvcHRzKTsKICAgICAgaW50bFJlbENhY2hlW2tleV0gPSBpbmY7CiAgICB9CiAgICByZXR1cm4gaW5mOwogIH0KCiAgbGV0IHN5c0xvY2FsZUNhY2hlID0gbnVsbDsKICBmdW5jdGlvbiBzeXN0ZW1Mb2NhbGUoKSB7CiAgICBpZiAoc3lzTG9jYWxlQ2FjaGUpIHsKICAgICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlOwogICAgfSBlbHNlIHsKICAgICAgc3lzTG9jYWxlQ2FjaGUgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKICAgICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlOwogICAgfQogIH0KCiAgZnVuY3Rpb24gcGFyc2VMb2NhbGVTdHJpbmcobG9jYWxlU3RyKSB7CiAgICAvLyBJIHJlYWxseSB3YW50IHRvIGF2b2lkIHdyaXRpbmcgYSBCQ1AgNDcgcGFyc2VyCiAgICAvLyBzZWUsIGUuZy4gaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9iY3AtNDcKICAgIC8vIEluc3RlYWQsIHdlJ2xsIGRvIHRoaXM6CgogICAgLy8gYSkgaWYgdGhlIHN0cmluZyBoYXMgbm8gLXUgZXh0ZW5zaW9ucywganVzdCBsZWF2ZSBpdCBhbG9uZQogICAgLy8gYikgaWYgaXQgZG9lcywgdXNlIEludGwgdG8gcmVzb2x2ZSBldmVyeXRoaW5nCiAgICAvLyBjKSBpZiBJbnRsIGZhaWxzLCB0cnkgYWdhaW4gd2l0aG91dCB0aGUgLXUKCiAgICAvLyBwcml2YXRlIHN1YnRhZ3MgYW5kIHVuaWNvZGUgc3VidGFncyBoYXZlIG9yZGVyaW5nIHJlcXVpcmVtZW50cywKICAgIC8vIGFuZCB3ZSdyZSBub3QgcHJvcGVybHkgcGFyc2luZyB0aGlzLCBzbyBqdXN0IHN0cmlwIG91dCB0aGUKICAgIC8vIHByaXZhdGUgb25lcyBpZiB0aGV5IGV4aXN0LgogICAgY29uc3QgeEluZGV4ID0gbG9jYWxlU3RyLmluZGV4T2YoIi14LSIpOwogICAgaWYgKHhJbmRleCAhPT0gLTEpIHsKICAgICAgbG9jYWxlU3RyID0gbG9jYWxlU3RyLnN1YnN0cmluZygwLCB4SW5kZXgpOwogICAgfQoKICAgIGNvbnN0IHVJbmRleCA9IGxvY2FsZVN0ci5pbmRleE9mKCItdS0iKTsKICAgIGlmICh1SW5kZXggPT09IC0xKSB7CiAgICAgIHJldHVybiBbbG9jYWxlU3RyXTsKICAgIH0gZWxzZSB7CiAgICAgIGxldCBvcHRpb25zOwogICAgICBsZXQgc2VsZWN0ZWRTdHI7CiAgICAgIHRyeSB7CiAgICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihsb2NhbGVTdHIpLnJlc29sdmVkT3B0aW9ucygpOwogICAgICAgIHNlbGVjdGVkU3RyID0gbG9jYWxlU3RyOwogICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgY29uc3Qgc21hbGxlciA9IGxvY2FsZVN0ci5zdWJzdHJpbmcoMCwgdUluZGV4KTsKICAgICAgICBvcHRpb25zID0gZ2V0Q2FjaGVkRFRGKHNtYWxsZXIpLnJlc29sdmVkT3B0aW9ucygpOwogICAgICAgIHNlbGVjdGVkU3RyID0gc21hbGxlcjsKICAgICAgfQoKICAgICAgY29uc3QgeyBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBvcHRpb25zOwogICAgICByZXR1cm4gW3NlbGVjdGVkU3RyLCBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyXTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGludGxDb25maWdTdHJpbmcobG9jYWxlU3RyLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKSB7CiAgICBpZiAob3V0cHV0Q2FsZW5kYXIgfHwgbnVtYmVyaW5nU3lzdGVtKSB7CiAgICAgIGlmICghbG9jYWxlU3RyLmluY2x1ZGVzKCItdS0iKSkgewogICAgICAgIGxvY2FsZVN0ciArPSAiLXUiOwogICAgICB9CgogICAgICBpZiAob3V0cHV0Q2FsZW5kYXIpIHsKICAgICAgICBsb2NhbGVTdHIgKz0gYC1jYS0ke291dHB1dENhbGVuZGFyfWA7CiAgICAgIH0KCiAgICAgIGlmIChudW1iZXJpbmdTeXN0ZW0pIHsKICAgICAgICBsb2NhbGVTdHIgKz0gYC1udS0ke251bWJlcmluZ1N5c3RlbX1gOwogICAgICB9CiAgICAgIHJldHVybiBsb2NhbGVTdHI7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gbG9jYWxlU3RyOwogICAgfQogIH0KCiAgZnVuY3Rpb24gbWFwTW9udGhzKGYpIHsKICAgIGNvbnN0IG1zID0gW107CiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAxMjsgaSsrKSB7CiAgICAgIGNvbnN0IGR0ID0gRGF0ZVRpbWUudXRjKDIwMDksIGksIDEpOwogICAgICBtcy5wdXNoKGYoZHQpKTsKICAgIH0KICAgIHJldHVybiBtczsKICB9CgogIGZ1bmN0aW9uIG1hcFdlZWtkYXlzKGYpIHsKICAgIGNvbnN0IG1zID0gW107CiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA3OyBpKyspIHsKICAgICAgY29uc3QgZHQgPSBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzICsgaSk7CiAgICAgIG1zLnB1c2goZihkdCkpOwogICAgfQogICAgcmV0dXJuIG1zOwogIH0KCiAgZnVuY3Rpb24gbGlzdFN0dWZmKGxvYywgbGVuZ3RoLCBlbmdsaXNoRm4sIGludGxGbikgewogICAgY29uc3QgbW9kZSA9IGxvYy5saXN0aW5nTW9kZSgpOwoKICAgIGlmIChtb2RlID09PSAiZXJyb3IiKSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfSBlbHNlIGlmIChtb2RlID09PSAiZW4iKSB7CiAgICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBpbnRsRm4obGVuZ3RoKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHN1cHBvcnRzRmFzdE51bWJlcnMobG9jKSB7CiAgICBpZiAobG9jLm51bWJlcmluZ1N5c3RlbSAmJiBsb2MubnVtYmVyaW5nU3lzdGVtICE9PSAibGF0biIpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICgKICAgICAgICBsb2MubnVtYmVyaW5nU3lzdGVtID09PSAibGF0biIgfHwKICAgICAgICAhbG9jLmxvY2FsZSB8fAogICAgICAgIGxvYy5sb2NhbGUuc3RhcnRzV2l0aCgiZW4iKSB8fAogICAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvYy5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW0gPT09ICJsYXRuIgogICAgICApOwogICAgfQogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KCiAgY2xhc3MgUG9seU51bWJlckZvcm1hdHRlciB7CiAgICBjb25zdHJ1Y3RvcihpbnRsLCBmb3JjZVNpbXBsZSwgb3B0cykgewogICAgICB0aGlzLnBhZFRvID0gb3B0cy5wYWRUbyB8fCAwOwogICAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTsKCiAgICAgIGNvbnN0IHsgcGFkVG8sIGZsb29yLCAuLi5vdGhlck9wdHMgfSA9IG9wdHM7CgogICAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkgewogICAgICAgIGNvbnN0IGludGxPcHRzID0geyB1c2VHcm91cGluZzogZmFsc2UsIC4uLm9wdHMgfTsKICAgICAgICBpZiAob3B0cy5wYWRUbyA+IDApIGludGxPcHRzLm1pbmltdW1JbnRlZ2VyRGlnaXRzID0gb3B0cy5wYWRUbzsKICAgICAgICB0aGlzLmluZiA9IGdldENhY2hlZElORihpbnRsLCBpbnRsT3B0cyk7CiAgICAgIH0KICAgIH0KCiAgICBmb3JtYXQoaSkgewogICAgICBpZiAodGhpcy5pbmYpIHsKICAgICAgICBjb25zdCBmaXhlZCA9IHRoaXMuZmxvb3IgPyBNYXRoLmZsb29yKGkpIDogaTsKICAgICAgICByZXR1cm4gdGhpcy5pbmYuZm9ybWF0KGZpeGVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvLyB0byBtYXRjaCB0aGUgYnJvd3NlcidzIG51bWJlcmZvcm1hdHRlciBkZWZhdWx0cwogICAgICAgIGNvbnN0IGZpeGVkID0gdGhpcy5mbG9vciA/IE1hdGguZmxvb3IoaSkgOiByb3VuZFRvKGksIDMpOwogICAgICAgIHJldHVybiBwYWRTdGFydChmaXhlZCwgdGhpcy5wYWRUbyk7CiAgICAgIH0KICAgIH0KICB9CgogIC8qKgogICAqIEBwcml2YXRlCiAgICovCgogIGNsYXNzIFBvbHlEYXRlRm9ybWF0dGVyIHsKICAgIGNvbnN0cnVjdG9yKGR0LCBpbnRsLCBvcHRzKSB7CiAgICAgIHRoaXMub3B0cyA9IG9wdHM7CiAgICAgIHRoaXMub3JpZ2luYWxab25lID0gdW5kZWZpbmVkOwoKICAgICAgbGV0IHogPSB1bmRlZmluZWQ7CiAgICAgIGlmICh0aGlzLm9wdHMudGltZVpvbmUpIHsKICAgICAgICAvLyBEb24ndCBhcHBseSBhbnkgd29ya2Fyb3VuZHMgaWYgYSB0aW1lWm9uZSBpcyBleHBsaWNpdGx5IHByb3ZpZGVkIGluIG9wdHMKICAgICAgICB0aGlzLmR0ID0gZHQ7CiAgICAgIH0gZWxzZSBpZiAoZHQuem9uZS50eXBlID09PSAiZml4ZWQiKSB7CiAgICAgICAgLy8gVVRDLTggb3IgRXRjL1VUQy04IGFyZSBub3QgcGFydCBvZiB0emRhdGEsIG9ubHkgRXRjL0dNVCs4IGFuZCB0aGUgbGlrZS4KICAgICAgICAvLyBUaGF0IGlzIHdoeSBmaXhlZC1vZmZzZXQgVFogaXMgc2V0IHRvIHRoYXQgdW5sZXNzIGl0IGlzOgogICAgICAgIC8vIDEuIFJlcHJlc2VudGluZyBvZmZzZXQgMCB3aGVuIFVUQyBpcyB1c2VkIHRvIG1haW50YWluIHByZXZpb3VzIGJlaGF2aW9yIGFuZCBkb2VzIG5vdCBiZWNvbWUgR01ULgogICAgICAgIC8vIDIuIFVuc3VwcG9ydGVkIGJ5IHRoZSBicm93c2VyOgogICAgICAgIC8vICAgIC0gc29tZSBkbyBub3Qgc3VwcG9ydCBFdGMvCiAgICAgICAgLy8gICAgLSA8IEV0Yy9HTVQtMTQsID4gRXRjL0dNVCsxMiwgYW5kIDMwLW1pbnV0ZSBvciA0NS1taW51dGUgb2Zmc2V0cyBhcmUgbm90IHBhcnQgb2YgdHpkYXRhCiAgICAgICAgY29uc3QgZ210T2Zmc2V0ID0gLTEgKiAoZHQub2Zmc2V0IC8gNjApOwogICAgICAgIGNvbnN0IG9mZnNldFogPSBnbXRPZmZzZXQgPj0gMCA/IGBFdGMvR01UKyR7Z210T2Zmc2V0fWAgOiBgRXRjL0dNVCR7Z210T2Zmc2V0fWA7CiAgICAgICAgaWYgKGR0Lm9mZnNldCAhPT0gMCAmJiBJQU5BWm9uZS5jcmVhdGUob2Zmc2V0WikudmFsaWQpIHsKICAgICAgICAgIHogPSBvZmZzZXRaOwogICAgICAgICAgdGhpcy5kdCA9IGR0OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyBOb3QgYWxsIGZpeGVkLW9mZnNldCB6b25lcyBsaWtlIEV0Yy8rNDozMCBhcmUgcHJlc2VudCBpbiB0emRhdGEgc28KICAgICAgICAgIC8vIHdlIG1hbnVhbGx5IGFwcGx5IHRoZSBvZmZzZXQgYW5kIHN1YnN0aXR1dGUgdGhlIHpvbmUgYXMgbmVlZGVkLgogICAgICAgICAgeiA9ICJVVEMiOwogICAgICAgICAgdGhpcy5kdCA9IGR0Lm9mZnNldCA9PT0gMCA/IGR0IDogZHQuc2V0Wm9uZSgiVVRDIikucGx1cyh7IG1pbnV0ZXM6IGR0Lm9mZnNldCB9KTsKICAgICAgICAgIHRoaXMub3JpZ2luYWxab25lID0gZHQuem9uZTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZHQuem9uZS50eXBlID09PSAic3lzdGVtIikgewogICAgICAgIHRoaXMuZHQgPSBkdDsKICAgICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09ICJpYW5hIikgewogICAgICAgIHRoaXMuZHQgPSBkdDsKICAgICAgICB6ID0gZHQuem9uZS5uYW1lOwogICAgICB9IGVsc2UgewogICAgICAgIC8vIEN1c3RvbSB6b25lcyBjYW4gaGF2ZSBhbnkgb2Zmc2V0IC8gb2Zmc2V0TmFtZSBzbyB3ZSBqdXN0IG1hbnVhbGx5CiAgICAgICAgLy8gYXBwbHkgdGhlIG9mZnNldCBhbmQgc3Vic3RpdHV0ZSB0aGUgem9uZSBhcyBuZWVkZWQuCiAgICAgICAgeiA9ICJVVEMiOwogICAgICAgIHRoaXMuZHQgPSBkdC5zZXRab25lKCJVVEMiKS5wbHVzKHsgbWludXRlczogZHQub2Zmc2V0IH0pOwogICAgICAgIHRoaXMub3JpZ2luYWxab25lID0gZHQuem9uZTsKICAgICAgfQoKICAgICAgY29uc3QgaW50bE9wdHMgPSB7IC4uLnRoaXMub3B0cyB9OwogICAgICBpbnRsT3B0cy50aW1lWm9uZSA9IGludGxPcHRzLnRpbWVab25lIHx8IHo7CiAgICAgIHRoaXMuZHRmID0gZ2V0Q2FjaGVkRFRGKGludGwsIGludGxPcHRzKTsKICAgIH0KCiAgICBmb3JtYXQoKSB7CiAgICAgIGlmICh0aGlzLm9yaWdpbmFsWm9uZSkgewogICAgICAgIC8vIElmIHdlIGhhdmUgdG8gc3Vic3RpdHV0ZSBpbiB0aGUgYWN0dWFsIHpvbmUgbmFtZSwgd2UgaGF2ZSB0byB1c2UKICAgICAgICAvLyBmb3JtYXRUb1BhcnRzIHNvIHRoYXQgdGhlIHRpbWV6b25lIGNhbiBiZSByZXBsYWNlZC4KICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRUb1BhcnRzKCkKICAgICAgICAgIC5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpCiAgICAgICAgICAuam9pbigiIik7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMuZHRmLmZvcm1hdCh0aGlzLmR0LnRvSlNEYXRlKCkpOwogICAgfQoKICAgIGZvcm1hdFRvUGFydHMoKSB7CiAgICAgIGNvbnN0IHBhcnRzID0gdGhpcy5kdGYuZm9ybWF0VG9QYXJ0cyh0aGlzLmR0LnRvSlNEYXRlKCkpOwogICAgICBpZiAodGhpcy5vcmlnaW5hbFpvbmUpIHsKICAgICAgICByZXR1cm4gcGFydHMubWFwKChwYXJ0KSA9PiB7CiAgICAgICAgICBpZiAocGFydC50eXBlID09PSAidGltZVpvbmVOYW1lIikgewogICAgICAgICAgICBjb25zdCBvZmZzZXROYW1lID0gdGhpcy5vcmlnaW5hbFpvbmUub2Zmc2V0TmFtZSh0aGlzLmR0LnRzLCB7CiAgICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmR0LmxvY2FsZSwKICAgICAgICAgICAgICBmb3JtYXQ6IHRoaXMub3B0cy50aW1lWm9uZU5hbWUsCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIC4uLnBhcnQsCiAgICAgICAgICAgICAgdmFsdWU6IG9mZnNldE5hbWUsCiAgICAgICAgICAgIH07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gcGFydDsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gcGFydHM7CiAgICB9CgogICAgcmVzb2x2ZWRPcHRpb25zKCkgewogICAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7CiAgICB9CiAgfQoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwogIGNsYXNzIFBvbHlSZWxGb3JtYXR0ZXIgewogICAgY29uc3RydWN0b3IoaW50bCwgaXNFbmdsaXNoLCBvcHRzKSB7CiAgICAgIHRoaXMub3B0cyA9IHsgc3R5bGU6ICJsb25nIiwgLi4ub3B0cyB9OwogICAgICBpZiAoIWlzRW5nbGlzaCAmJiBoYXNSZWxhdGl2ZSgpKSB7CiAgICAgICAgdGhpcy5ydGYgPSBnZXRDYWNoZWRSVEYoaW50bCwgb3B0cyk7CiAgICAgIH0KICAgIH0KCiAgICBmb3JtYXQoY291bnQsIHVuaXQpIHsKICAgICAgaWYgKHRoaXMucnRmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMucnRmLmZvcm1hdChjb3VudCwgdW5pdCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIGZvcm1hdFJlbGF0aXZlVGltZSh1bml0LCBjb3VudCwgdGhpcy5vcHRzLm51bWVyaWMsIHRoaXMub3B0cy5zdHlsZSAhPT0gImxvbmciKTsKICAgICAgfQogICAgfQoKICAgIGZvcm1hdFRvUGFydHMoY291bnQsIHVuaXQpIHsKICAgICAgaWYgKHRoaXMucnRmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMucnRmLmZvcm1hdFRvUGFydHMoY291bnQsIHVuaXQpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfQogICAgfQogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KCiAgY2xhc3MgTG9jYWxlIHsKICAgIHN0YXRpYyBmcm9tT3B0cyhvcHRzKSB7CiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKG9wdHMubG9jYWxlLCBvcHRzLm51bWJlcmluZ1N5c3RlbSwgb3B0cy5vdXRwdXRDYWxlbmRhciwgb3B0cy5kZWZhdWx0VG9FTik7CiAgICB9CgogICAgc3RhdGljIGNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIsIGRlZmF1bHRUb0VOID0gZmFsc2UpIHsKICAgICAgY29uc3Qgc3BlY2lmaWVkTG9jYWxlID0gbG9jYWxlIHx8IFNldHRpbmdzLmRlZmF1bHRMb2NhbGU7CiAgICAgIC8vIHRoZSBzeXN0ZW0gbG9jYWxlIGlzIHVzZWZ1bCBmb3IgaHVtYW4gcmVhZGFibGUgc3RyaW5ncyBidXQgYW5ub3lpbmcgZm9yIHBhcnNpbmcvZm9ybWF0dGluZyBrbm93biBmb3JtYXRzCiAgICAgIGNvbnN0IGxvY2FsZVIgPSBzcGVjaWZpZWRMb2NhbGUgfHwgKGRlZmF1bHRUb0VOID8gImVuLVVTIiA6IHN5c3RlbUxvY2FsZSgpKTsKICAgICAgY29uc3QgbnVtYmVyaW5nU3lzdGVtUiA9IG51bWJlcmluZ1N5c3RlbSB8fCBTZXR0aW5ncy5kZWZhdWx0TnVtYmVyaW5nU3lzdGVtOwogICAgICBjb25zdCBvdXRwdXRDYWxlbmRhclIgPSBvdXRwdXRDYWxlbmRhciB8fCBTZXR0aW5ncy5kZWZhdWx0T3V0cHV0Q2FsZW5kYXI7CiAgICAgIHJldHVybiBuZXcgTG9jYWxlKGxvY2FsZVIsIG51bWJlcmluZ1N5c3RlbVIsIG91dHB1dENhbGVuZGFyUiwgc3BlY2lmaWVkTG9jYWxlKTsKICAgIH0KCiAgICBzdGF0aWMgcmVzZXRDYWNoZSgpIHsKICAgICAgc3lzTG9jYWxlQ2FjaGUgPSBudWxsOwogICAgICBpbnRsRFRDYWNoZSA9IHt9OwogICAgICBpbnRsTnVtQ2FjaGUgPSB7fTsKICAgICAgaW50bFJlbENhY2hlID0ge307CiAgICB9CgogICAgc3RhdGljIGZyb21PYmplY3QoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7CiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcik7CiAgICB9CgogICAgY29uc3RydWN0b3IobG9jYWxlLCBudW1iZXJpbmcsIG91dHB1dENhbGVuZGFyLCBzcGVjaWZpZWRMb2NhbGUpIHsKICAgICAgY29uc3QgW3BhcnNlZExvY2FsZSwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtLCBwYXJzZWRPdXRwdXRDYWxlbmRhcl0gPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpOwoKICAgICAgdGhpcy5sb2NhbGUgPSBwYXJzZWRMb2NhbGU7CiAgICAgIHRoaXMubnVtYmVyaW5nU3lzdGVtID0gbnVtYmVyaW5nIHx8IHBhcnNlZE51bWJlcmluZ1N5c3RlbSB8fCBudWxsOwogICAgICB0aGlzLm91dHB1dENhbGVuZGFyID0gb3V0cHV0Q2FsZW5kYXIgfHwgcGFyc2VkT3V0cHV0Q2FsZW5kYXIgfHwgbnVsbDsKICAgICAgdGhpcy5pbnRsID0gaW50bENvbmZpZ1N0cmluZyh0aGlzLmxvY2FsZSwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIHRoaXMub3V0cHV0Q2FsZW5kYXIpOwoKICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9OwogICAgICB0aGlzLm1vbnRoc0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9OwogICAgICB0aGlzLm1lcmlkaWVtQ2FjaGUgPSBudWxsOwogICAgICB0aGlzLmVyYUNhY2hlID0ge307CgogICAgICB0aGlzLnNwZWNpZmllZExvY2FsZSA9IHNwZWNpZmllZExvY2FsZTsKICAgICAgdGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9IG51bGw7CiAgICB9CgogICAgZ2V0IGZhc3ROdW1iZXJzKCkgewogICAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7CiAgICAgICAgdGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9IHN1cHBvcnRzRmFzdE51bWJlcnModGhpcyk7CiAgICAgIH0KCiAgICAgIHJldHVybiB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkOwogICAgfQoKICAgIGxpc3RpbmdNb2RlKCkgewogICAgICBjb25zdCBpc0FjdHVhbGx5RW4gPSB0aGlzLmlzRW5nbGlzaCgpOwogICAgICBjb25zdCBoYXNOb1dlaXJkbmVzcyA9CiAgICAgICAgKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSAibGF0biIpICYmCiAgICAgICAgKHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IG51bGwgfHwgdGhpcy5vdXRwdXRDYWxlbmRhciA9PT0gImdyZWdvcnkiKTsKICAgICAgcmV0dXJuIGlzQWN0dWFsbHlFbiAmJiBoYXNOb1dlaXJkbmVzcyA/ICJlbiIgOiAiaW50bCI7CiAgICB9CgogICAgY2xvbmUoYWx0cykgewogICAgICBpZiAoIWFsdHMgfHwgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYWx0cykubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIExvY2FsZS5jcmVhdGUoCiAgICAgICAgICBhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSwKICAgICAgICAgIGFsdHMubnVtYmVyaW5nU3lzdGVtIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtLAogICAgICAgICAgYWx0cy5vdXRwdXRDYWxlbmRhciB8fCB0aGlzLm91dHB1dENhbGVuZGFyLAogICAgICAgICAgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZQogICAgICAgICk7CiAgICAgIH0KICAgIH0KCiAgICByZWRlZmF1bHRUb0VOKGFsdHMgPSB7fSkgewogICAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiB0cnVlIH0pOwogICAgfQoKICAgIHJlZGVmYXVsdFRvU3lzdGVtKGFsdHMgPSB7fSkgewogICAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiBmYWxzZSB9KTsKICAgIH0KCiAgICBtb250aHMobGVuZ3RoLCBmb3JtYXQgPSBmYWxzZSkgewogICAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgbW9udGhzLCAoKSA9PiB7CiAgICAgICAgY29uc3QgaW50bCA9IGZvcm1hdCA/IHsgbW9udGg6IGxlbmd0aCwgZGF5OiAibnVtZXJpYyIgfSA6IHsgbW9udGg6IGxlbmd0aCB9LAogICAgICAgICAgZm9ybWF0U3RyID0gZm9ybWF0ID8gImZvcm1hdCIgOiAic3RhbmRhbG9uZSI7CiAgICAgICAgaWYgKCF0aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSkgewogICAgICAgICAgdGhpcy5tb250aHNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0gPSBtYXBNb250aHMoKGR0KSA9PiB0aGlzLmV4dHJhY3QoZHQsIGludGwsICJtb250aCIpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdOwogICAgICB9KTsKICAgIH0KCiAgICB3ZWVrZGF5cyhsZW5ndGgsIGZvcm1hdCA9IGZhbHNlKSB7CiAgICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCB3ZWVrZGF5cywgKCkgPT4gewogICAgICAgIGNvbnN0IGludGwgPSBmb3JtYXQKICAgICAgICAgICAgPyB7IHdlZWtkYXk6IGxlbmd0aCwgeWVhcjogIm51bWVyaWMiLCBtb250aDogImxvbmciLCBkYXk6ICJudW1lcmljIiB9CiAgICAgICAgICAgIDogeyB3ZWVrZGF5OiBsZW5ndGggfSwKICAgICAgICAgIGZvcm1hdFN0ciA9IGZvcm1hdCA/ICJmb3JtYXQiIDogInN0YW5kYWxvbmUiOwogICAgICAgIGlmICghdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSkgewogICAgICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKChkdCkgPT4KICAgICAgICAgICAgdGhpcy5leHRyYWN0KGR0LCBpbnRsLCAid2Vla2RheSIpCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTsKICAgICAgfSk7CiAgICB9CgogICAgbWVyaWRpZW1zKCkgewogICAgICByZXR1cm4gbGlzdFN0dWZmKAogICAgICAgIHRoaXMsCiAgICAgICAgdW5kZWZpbmVkLAogICAgICAgICgpID0+IG1lcmlkaWVtcywKICAgICAgICAoKSA9PiB7CiAgICAgICAgICAvLyBJbiB0aGVvcnkgdGhlcmUgY291bGQgYmUgYXJpYml0cmFyeSBkYXkgcGVyaW9kcy4gV2UncmUgZ29ubmEgYXNzdW1lIHRoZXJlIGFyZSBleGFjdGx5IHR3bwogICAgICAgICAgLy8gZm9yIEFNIGFuZCBQTS4gVGhpcyBpcyBwcm9iYWJseSB3cm9uZywgYnV0IGl0J3MgbWFrZXMgcGFyc2luZyB3YXkgZWFzaWVyLgogICAgICAgICAgaWYgKCF0aGlzLm1lcmlkaWVtQ2FjaGUpIHsKICAgICAgICAgICAgY29uc3QgaW50bCA9IHsgaG91cjogIm51bWVyaWMiLCBob3VyQ3ljbGU6ICJoMTIiIH07CiAgICAgICAgICAgIHRoaXMubWVyaWRpZW1DYWNoZSA9IFtEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzLCA5KSwgRGF0ZVRpbWUudXRjKDIwMTYsIDExLCAxMywgMTkpXS5tYXAoCiAgICAgICAgICAgICAgKGR0KSA9PiB0aGlzLmV4dHJhY3QoZHQsIGludGwsICJkYXlwZXJpb2QiKQogICAgICAgICAgICApOwogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiB0aGlzLm1lcmlkaWVtQ2FjaGU7CiAgICAgICAgfQogICAgICApOwogICAgfQoKICAgIGVyYXMobGVuZ3RoKSB7CiAgICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBlcmFzLCAoKSA9PiB7CiAgICAgICAgY29uc3QgaW50bCA9IHsgZXJhOiBsZW5ndGggfTsKCiAgICAgICAgLy8gVGhpcyBpcyBwcm9ibGVtYXRpYy4gRGlmZmVyZW50IGNhbGVuZGFycyBhcmUgZ29pbmcgdG8gZGVmaW5lIGVyYXMgdG90YWxseSBkaWZmZXJlbnRseS4gV2hhdCBJIG5lZWQgaXMgdGhlIG1pbmltdW0gc2V0IG9mIGRhdGVzCiAgICAgICAgLy8gdG8gZGVmaW5pdGVseSBlbnVtZXJhdGUgdGhlbS4KICAgICAgICBpZiAoIXRoaXMuZXJhQ2FjaGVbbGVuZ3RoXSkgewogICAgICAgICAgdGhpcy5lcmFDYWNoZVtsZW5ndGhdID0gW0RhdGVUaW1lLnV0YygtNDAsIDEsIDEpLCBEYXRlVGltZS51dGMoMjAxNywgMSwgMSldLm1hcCgoZHQpID0+CiAgICAgICAgICAgIHRoaXMuZXh0cmFjdChkdCwgaW50bCwgImVyYSIpCiAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRoaXMuZXJhQ2FjaGVbbGVuZ3RoXTsKICAgICAgfSk7CiAgICB9CgogICAgZXh0cmFjdChkdCwgaW50bE9wdHMsIGZpZWxkKSB7CiAgICAgIGNvbnN0IGRmID0gdGhpcy5kdEZvcm1hdHRlcihkdCwgaW50bE9wdHMpLAogICAgICAgIHJlc3VsdHMgPSBkZi5mb3JtYXRUb1BhcnRzKCksCiAgICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZCk7CiAgICAgIHJldHVybiBtYXRjaGluZyA/IG1hdGNoaW5nLnZhbHVlIDogbnVsbDsKICAgIH0KCiAgICBudW1iZXJGb3JtYXR0ZXIob3B0cyA9IHt9KSB7CiAgICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKQogICAgICAvLyAoaW4gY29udHJhc3QsIHRoZSByZXN0IG9mIHRoZSBjb25kaXRpb24gaXMgdXNlZCBoZWF2aWx5KQogICAgICByZXR1cm4gbmV3IFBvbHlOdW1iZXJGb3JtYXR0ZXIodGhpcy5pbnRsLCBvcHRzLmZvcmNlU2ltcGxlIHx8IHRoaXMuZmFzdE51bWJlcnMsIG9wdHMpOwogICAgfQoKICAgIGR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiBuZXcgUG9seURhdGVGb3JtYXR0ZXIoZHQsIHRoaXMuaW50bCwgaW50bE9wdHMpOwogICAgfQoKICAgIHJlbEZvcm1hdHRlcihvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIG5ldyBQb2x5UmVsRm9ybWF0dGVyKHRoaXMuaW50bCwgdGhpcy5pc0VuZ2xpc2goKSwgb3B0cyk7CiAgICB9CgogICAgbGlzdEZvcm1hdHRlcihvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIGdldENhY2hlZExGKHRoaXMuaW50bCwgb3B0cyk7CiAgICB9CgogICAgaXNFbmdsaXNoKCkgewogICAgICByZXR1cm4gKAogICAgICAgIHRoaXMubG9jYWxlID09PSAiZW4iIHx8CiAgICAgICAgdGhpcy5sb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gImVuLXVzIiB8fAogICAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuaW50bCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLnN0YXJ0c1dpdGgoImVuLXVzIikKICAgICAgKTsKICAgIH0KCiAgICBlcXVhbHMob3RoZXIpIHsKICAgICAgcmV0dXJuICgKICAgICAgICB0aGlzLmxvY2FsZSA9PT0gb3RoZXIubG9jYWxlICYmCiAgICAgICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IG90aGVyLm51bWJlcmluZ1N5c3RlbSAmJgogICAgICAgIHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IG90aGVyLm91dHB1dENhbGVuZGFyCiAgICAgICk7CiAgICB9CiAgfQoKICBsZXQgc2luZ2xldG9uID0gbnVsbDsKCiAgLyoqCiAgICogQSB6b25lIHdpdGggYSBmaXhlZCBvZmZzZXQgKG1lYW5pbmcgbm8gRFNUKQogICAqIEBpbXBsZW1lbnRzIHtab25lfQogICAqLwogIGNsYXNzIEZpeGVkT2Zmc2V0Wm9uZSBleHRlbmRzIFpvbmUgewogICAgLyoqCiAgICAgKiBHZXQgYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgVVRDCiAgICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgdXRjSW5zdGFuY2UoKSB7CiAgICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHsKICAgICAgICBzaW5nbGV0b24gPSBuZXcgRml4ZWRPZmZzZXRab25lKDApOwogICAgICB9CiAgICAgIHJldHVybiBzaW5nbGV0b247CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYW4gaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBvZmZzZXQKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQgLSBUaGUgb2Zmc2V0IGluIG1pbnV0ZXMKICAgICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX0KICAgICAqLwogICAgc3RhdGljIGluc3RhbmNlKG9mZnNldCkgewogICAgICByZXR1cm4gb2Zmc2V0ID09PSAwID8gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlIDogbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGFuIGluc3RhbmNlIG9mIEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIGEgVVRDIG9mZnNldCBzdHJpbmcsIGxpa2UgIlVUQys2IgogICAgICogQHBhcmFtIHtzdHJpbmd9IHMgLSBUaGUgb2Zmc2V0IHN0cmluZyB0byBwYXJzZQogICAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKCJVVEMrNiIpCiAgICAgKiBAZXhhbXBsZSBGaXhlZE9mZnNldFpvbmUucGFyc2VTcGVjaWZpZXIoIlVUQyswNiIpCiAgICAgKiBAZXhhbXBsZSBGaXhlZE9mZnNldFpvbmUucGFyc2VTcGVjaWZpZXIoIlVUQy02OjAwIikKICAgICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX0KICAgICAqLwogICAgc3RhdGljIHBhcnNlU3BlY2lmaWVyKHMpIHsKICAgICAgaWYgKHMpIHsKICAgICAgICBjb25zdCByID0gcy5tYXRjaCgvXnV0Yyg/OihbKy1dXGR7MSwyfSkoPzo6KFxkezJ9KSk/KT8kL2kpOwogICAgICAgIGlmIChyKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEZpeGVkT2Zmc2V0Wm9uZShzaWduZWRPZmZzZXQoclsxXSwgclsyXSkpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBjb25zdHJ1Y3RvcihvZmZzZXQpIHsKICAgICAgc3VwZXIoKTsKICAgICAgLyoqIEBwcml2YXRlICoqLwogICAgICB0aGlzLmZpeGVkID0gb2Zmc2V0OwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBnZXQgdHlwZSgpIHsKICAgICAgcmV0dXJuICJmaXhlZCI7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBuYW1lKCkgewogICAgICByZXR1cm4gdGhpcy5maXhlZCA9PT0gMCA/ICJVVEMiIDogYFVUQyR7Zm9ybWF0T2Zmc2V0KHRoaXMuZml4ZWQsICJuYXJyb3ciKX1gOwogICAgfQoKICAgIGdldCBpYW5hTmFtZSgpIHsKICAgICAgaWYgKHRoaXMuZml4ZWQgPT09IDApIHsKICAgICAgICByZXR1cm4gIkV0Yy9VVEMiOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBgRXRjL0dNVCR7Zm9ybWF0T2Zmc2V0KC10aGlzLmZpeGVkLCAibmFycm93Iil9YDsKICAgICAgfQogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBvZmZzZXROYW1lKCkgewogICAgICByZXR1cm4gdGhpcy5uYW1lOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkgewogICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMuZml4ZWQsIGZvcm1hdCk7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBpc1VuaXZlcnNhbCgpIHsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIG9mZnNldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZml4ZWQ7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGVxdWFscyhvdGhlclpvbmUpIHsKICAgICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSAiZml4ZWQiICYmIG90aGVyWm9uZS5maXhlZCA9PT0gdGhpcy5maXhlZDsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IGlzVmFsaWQoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KCiAgLyoqCiAgICogQSB6b25lIHRoYXQgZmFpbGVkIHRvIHBhcnNlLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gaW5zdGFudGlhdGUgdGhpcy4KICAgKiBAaW1wbGVtZW50cyB7Wm9uZX0KICAgKi8KICBjbGFzcyBJbnZhbGlkWm9uZSBleHRlbmRzIFpvbmUgewogICAgY29uc3RydWN0b3Ioem9uZU5hbWUpIHsKICAgICAgc3VwZXIoKTsKICAgICAgLyoqICBAcHJpdmF0ZSAqLwogICAgICB0aGlzLnpvbmVOYW1lID0gem9uZU5hbWU7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCB0eXBlKCkgewogICAgICByZXR1cm4gImludmFsaWQiOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBnZXQgbmFtZSgpIHsKICAgICAgcmV0dXJuIHRoaXMuem9uZU5hbWU7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBpc1VuaXZlcnNhbCgpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBvZmZzZXROYW1lKCkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZm9ybWF0T2Zmc2V0KCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIG9mZnNldCgpIHsKICAgICAgcmV0dXJuIE5hTjsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZXF1YWxzKCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBpc1ZhbGlkKCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfQoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwoKICBmdW5jdGlvbiBub3JtYWxpemVab25lKGlucHV0LCBkZWZhdWx0Wm9uZSkgewogICAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCkgewogICAgICByZXR1cm4gZGVmYXVsdFpvbmU7CiAgICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgWm9uZSkgewogICAgICByZXR1cm4gaW5wdXQ7CiAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKGlucHV0KSkgewogICAgICBjb25zdCBsb3dlcmVkID0gaW5wdXQudG9Mb3dlckNhc2UoKTsKICAgICAgaWYgKGxvd2VyZWQgPT09ICJkZWZhdWx0IikgcmV0dXJuIGRlZmF1bHRab25lOwogICAgICBlbHNlIGlmIChsb3dlcmVkID09PSAibG9jYWwiIHx8IGxvd2VyZWQgPT09ICJzeXN0ZW0iKSByZXR1cm4gU3lzdGVtWm9uZS5pbnN0YW5jZTsKICAgICAgZWxzZSBpZiAobG93ZXJlZCA9PT0gInV0YyIgfHwgbG93ZXJlZCA9PT0gImdtdCIpIHJldHVybiBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2U7CiAgICAgIGVsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpOwogICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkpIHsKICAgICAgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5pbnN0YW5jZShpbnB1dCk7CiAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gIm9iamVjdCIgJiYgIm9mZnNldCIgaW4gaW5wdXQgJiYgdHlwZW9mIGlucHV0Lm9mZnNldCA9PT0gImZ1bmN0aW9uIikgewogICAgICAvLyBUaGlzIGlzIGR1bWIsIGJ1dCB0aGUgaW5zdGFuY2VvZiBjaGVjayBhYm92ZSBkb2Vzbid0IHNlZW0gdG8gcmVhbGx5IHdvcmsKICAgICAgLy8gc28gd2UncmUgZHVjayBjaGVja2luZyBpdAogICAgICByZXR1cm4gaW5wdXQ7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gbmV3IEludmFsaWRab25lKGlucHV0KTsKICAgIH0KICB9CgogIGxldCBub3cgPSAoKSA9PiBEYXRlLm5vdygpLAogICAgZGVmYXVsdFpvbmUgPSAic3lzdGVtIiwKICAgIGRlZmF1bHRMb2NhbGUgPSBudWxsLAogICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bGwsCiAgICBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIgPSBudWxsLAogICAgdHdvRGlnaXRDdXRvZmZZZWFyID0gNjAsCiAgICB0aHJvd09uSW52YWxpZDsKCiAgLyoqCiAgICogU2V0dGluZ3MgY29udGFpbnMgc3RhdGljIGdldHRlcnMgYW5kIHNldHRlcnMgdGhhdCBjb250cm9sIEx1eG9uJ3Mgb3ZlcmFsbCBiZWhhdmlvci4gTHV4b24gaXMgYSBzaW1wbGUgbGlicmFyeSB3aXRoIGZldyBvcHRpb25zLCBidXQgdGhlIG9uZXMgaXQgZG9lcyBoYXZlIGxpdmUgaGVyZS4KICAgKi8KICBjbGFzcyBTZXR0aW5ncyB7CiAgICAvKioKICAgICAqIEdldCB0aGUgY2FsbGJhY2sgZm9yIHJldHVybmluZyB0aGUgY3VycmVudCB0aW1lc3RhbXAuCiAgICAgKiBAdHlwZSB7ZnVuY3Rpb259CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgbm93KCkgewogICAgICByZXR1cm4gbm93OwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBjYWxsYmFjayBmb3IgcmV0dXJuaW5nIHRoZSBjdXJyZW50IHRpbWVzdGFtcC4KICAgICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50CiAgICAgKiBAdHlwZSB7ZnVuY3Rpb259CiAgICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiBEYXRlLm5vdygpICsgMzAwMCAvLyBwcmV0ZW5kIGl0IGlzIDMgc2Vjb25kcyBpbiB0aGUgZnV0dXJlCiAgICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWUKICAgICAqLwogICAgc3RhdGljIHNldCBub3cobikgewogICAgICBub3cgPSBuOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBkZWZhdWx0IHRpbWUgem9uZSB0byBjcmVhdGUgRGF0ZVRpbWVzIGluLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogVXNlIHRoZSB2YWx1ZSAic3lzdGVtIiB0byByZXNldCB0aGlzIHZhbHVlIHRvIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUuCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBzdGF0aWMgc2V0IGRlZmF1bHRab25lKHpvbmUpIHsKICAgICAgZGVmYXVsdFpvbmUgPSB6b25lOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZWZhdWx0IHRpbWUgem9uZSBvYmplY3QgY3VycmVudGx5IHVzZWQgdG8gY3JlYXRlIERhdGVUaW1lcy4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy4KICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUgKHRoZSBvbmUgc2V0IG9uIHRoZSBtYWNoaW5lIHRoYXQgcnVucyB0aGlzIGNvZGUpLgogICAgICogQHR5cGUge1pvbmV9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgZGVmYXVsdFpvbmUoKSB7CiAgICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgc3RhdGljIGdldCBkZWZhdWx0TG9jYWxlKCkgewogICAgICByZXR1cm4gZGVmYXVsdExvY2FsZTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgc3RhdGljIHNldCBkZWZhdWx0TG9jYWxlKGxvY2FsZSkgewogICAgICBkZWZhdWx0TG9jYWxlID0gbG9jYWxlOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZWZhdWx0IG51bWJlcmluZyBzeXN0ZW0gdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgc3RhdGljIGdldCBkZWZhdWx0TnVtYmVyaW5nU3lzdGVtKCkgewogICAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgZGVmYXVsdCBudW1iZXJpbmcgc3lzdGVtIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy4KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIHN0YXRpYyBzZXQgZGVmYXVsdE51bWJlcmluZ1N5c3RlbShudW1iZXJpbmdTeXN0ZW0pIHsKICAgICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZGVmYXVsdCBvdXRwdXQgY2FsZW5kYXIgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgc3RhdGljIGdldCBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIoKSB7CiAgICAgIHJldHVybiBkZWZhdWx0T3V0cHV0Q2FsZW5kYXI7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGNhbGVuZGFyIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy4KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIHN0YXRpYyBzZXQgZGVmYXVsdE91dHB1dENhbGVuZGFyKG91dHB1dENhbGVuZGFyKSB7CiAgICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBjdXRvZmYgeWVhciBhZnRlciB3aGljaCBhIHN0cmluZyBlbmNvZGluZyBhIHllYXIgYXMgdHdvIGRpZ2l0cyBpcyBpbnRlcnByZXRlZCB0byBvY2N1ciBpbiB0aGUgY3VycmVudCBjZW50dXJ5LgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgc3RhdGljIGdldCB0d29EaWdpdEN1dG9mZlllYXIoKSB7CiAgICAgIHJldHVybiB0d29EaWdpdEN1dG9mZlllYXI7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGN1dG9mZiB5ZWFyIGFmdGVyIHdoaWNoIGEgc3RyaW5nIGVuY29kaW5nIGEgeWVhciBhcyB0d28gZGlnaXRzIGlzIGludGVycHJldGVkIHRvIG9jY3VyIGluIHRoZSBjdXJyZW50IGNlbnR1cnkuCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICogQGV4YW1wbGUgU2V0dGluZ3MudHdvRGlnaXRDdXRvZmZZZWFyID0gMCAvLyBjdXQtb2ZmIHllYXIgaXMgMCwgc28gYWxsICd5eScgYXJlIGludGVycHJldGVkIGFzIGN1cnJlbnQgY2VudHVyeQogICAgICogQGV4YW1wbGUgU2V0dGluZ3MudHdvRGlnaXRDdXRvZmZZZWFyID0gNTAgLy8gJzQ5JyAtPiAxOTQ5OyAnNTAnIC0+IDIwNTAKICAgICAqIEBleGFtcGxlIFNldHRpbmdzLnR3b0RpZ2l0Q3V0b2ZmWWVhciA9IDE5NTAgLy8gaW50ZXJwcmV0ZWQgYXMgNTAKICAgICAqIEBleGFtcGxlIFNldHRpbmdzLnR3b0RpZ2l0Q3V0b2ZmWWVhciA9IDIwNTAgLy8gQUxTTyBpbnRlcnByZXRlZCBhcyA1MAogICAgICovCiAgICBzdGF0aWMgc2V0IHR3b0RpZ2l0Q3V0b2ZmWWVhcihjdXRvZmZZZWFyKSB7CiAgICAgIHR3b0RpZ2l0Q3V0b2ZmWWVhciA9IGN1dG9mZlllYXIgJSAxMDA7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgd2hldGhlciBMdXhvbiB3aWxsIHRocm93IHdoZW4gaXQgZW5jb3VudGVycyBpbnZhbGlkIERhdGVUaW1lcywgRHVyYXRpb25zLCBvciBJbnRlcnZhbHMKICAgICAqIEB0eXBlIHtib29sZWFufQogICAgICovCiAgICBzdGF0aWMgZ2V0IHRocm93T25JbnZhbGlkKCkgewogICAgICByZXR1cm4gdGhyb3dPbkludmFsaWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgd2hldGhlciBMdXhvbiB3aWxsIHRocm93IHdoZW4gaXQgZW5jb3VudGVycyBpbnZhbGlkIERhdGVUaW1lcywgRHVyYXRpb25zLCBvciBJbnRlcnZhbHMKICAgICAqIEB0eXBlIHtib29sZWFufQogICAgICovCiAgICBzdGF0aWMgc2V0IHRocm93T25JbnZhbGlkKHQpIHsKICAgICAgdGhyb3dPbkludmFsaWQgPSB0OwogICAgfQoKICAgIC8qKgogICAgICogUmVzZXQgTHV4b24ncyBnbG9iYWwgY2FjaGVzLiBTaG91bGQgb25seSBiZSBuZWNlc3NhcnkgaW4gdGVzdGluZyBzY2VuYXJpb3MuCiAgICAgKiBAcmV0dXJuIHt2b2lkfQogICAgICovCiAgICBzdGF0aWMgcmVzZXRDYWNoZXMoKSB7CiAgICAgIExvY2FsZS5yZXNldENhY2hlKCk7CiAgICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTsKICAgIH0KICB9CgogIC8qCiAgICBUaGlzIGlzIGp1c3QgYSBqdW5rIGRyYXdlciwgY29udGFpbmluZyBhbnl0aGluZyB1c2VkIGFjcm9zcyBtdWx0aXBsZSBjbGFzc2VzLgogICAgQmVjYXVzZSBMdXhvbiBpcyBzbWFsbChpc2gpLCB0aGlzIHNob3VsZCBzdGF5IHNtYWxsIGFuZCB3ZSB3b24ndCB3b3JyeSBhYm91dCBzcGxpdHRpbmcKICAgIGl0IHVwIGludG8sIHNheSwgcGFyc2luZ1V0aWwuanMgYW5kIGJhc2ljVXRpbC5qcyBhbmQgc28gb24uIEJ1dCB0aGV5IGFyZSBkaXZpZGVkIHVwIGJ5IGZlYXR1cmUgYXJlYS4KICAqLwoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwoKICAvLyBUWVBFUwoKICBmdW5jdGlvbiBpc1VuZGVmaW5lZChvKSB7CiAgICByZXR1cm4gdHlwZW9mIG8gPT09ICJ1bmRlZmluZWQiOwogIH0KCiAgZnVuY3Rpb24gaXNOdW1iZXIobykgewogICAgcmV0dXJuIHR5cGVvZiBvID09PSAibnVtYmVyIjsKICB9CgogIGZ1bmN0aW9uIGlzSW50ZWdlcihvKSB7CiAgICByZXR1cm4gdHlwZW9mIG8gPT09ICJudW1iZXIiICYmIG8gJSAxID09PSAwOwogIH0KCiAgZnVuY3Rpb24gaXNTdHJpbmcobykgewogICAgcmV0dXJuIHR5cGVvZiBvID09PSAic3RyaW5nIjsKICB9CgogIGZ1bmN0aW9uIGlzRGF0ZShvKSB7CiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pID09PSAiW29iamVjdCBEYXRlXSI7CiAgfQoKICAvLyBDQVBBQklMSVRJRVMKCiAgZnVuY3Rpb24gaGFzUmVsYXRpdmUoKSB7CiAgICB0cnkgewogICAgICByZXR1cm4gdHlwZW9mIEludGwgIT09ICJ1bmRlZmluZWQiICYmICEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICB9CgogIC8vIE9CSkVDVFMgQU5EIEFSUkFZUwoKICBmdW5jdGlvbiBtYXliZUFycmF5KHRoaW5nKSB7CiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZykgPyB0aGluZyA6IFt0aGluZ107CiAgfQoKICBmdW5jdGlvbiBiZXN0QnkoYXJyLCBieSwgY29tcGFyZSkgewogICAgaWYgKGFyci5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0KICAgIHJldHVybiBhcnIucmVkdWNlKChiZXN0LCBuZXh0KSA9PiB7CiAgICAgIGNvbnN0IHBhaXIgPSBbYnkobmV4dCksIG5leHRdOwogICAgICBpZiAoIWJlc3QpIHsKICAgICAgICByZXR1cm4gcGFpcjsKICAgICAgfSBlbHNlIGlmIChjb21wYXJlKGJlc3RbMF0sIHBhaXJbMF0pID09PSBiZXN0WzBdKSB7CiAgICAgICAgcmV0dXJuIGJlc3Q7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHBhaXI7CiAgICAgIH0KICAgIH0sIG51bGwpWzFdOwogIH0KCiAgZnVuY3Rpb24gcGljayhvYmosIGtleXMpIHsKICAgIHJldHVybiBrZXlzLnJlZHVjZSgoYSwgaykgPT4gewogICAgICBhW2tdID0gb2JqW2tdOwogICAgICByZXR1cm4gYTsKICAgIH0sIHt9KTsKICB9CgogIGZ1bmN0aW9uIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkgewogICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOwogIH0KCiAgLy8gTlVNQkVSUyBBTkQgU1RSSU5HUwoKICBmdW5jdGlvbiBpbnRlZ2VyQmV0d2Vlbih0aGluZywgYm90dG9tLCB0b3ApIHsKICAgIHJldHVybiBpc0ludGVnZXIodGhpbmcpICYmIHRoaW5nID49IGJvdHRvbSAmJiB0aGluZyA8PSB0b3A7CiAgfQoKICAvLyB4ICUgbiBidXQgdGFrZXMgdGhlIHNpZ24gb2YgbiBpbnN0ZWFkIG9mIHgKICBmdW5jdGlvbiBmbG9vck1vZCh4LCBuKSB7CiAgICByZXR1cm4geCAtIG4gKiBNYXRoLmZsb29yKHggLyBuKTsKICB9CgogIGZ1bmN0aW9uIHBhZFN0YXJ0KGlucHV0LCBuID0gMikgewogICAgY29uc3QgaXNOZWcgPSBpbnB1dCA8IDA7CiAgICBsZXQgcGFkZGVkOwogICAgaWYgKGlzTmVnKSB7CiAgICAgIHBhZGRlZCA9ICItIiArICgiIiArIC1pbnB1dCkucGFkU3RhcnQobiwgIjAiKTsKICAgIH0gZWxzZSB7CiAgICAgIHBhZGRlZCA9ICgiIiArIGlucHV0KS5wYWRTdGFydChuLCAiMCIpOwogICAgfQogICAgcmV0dXJuIHBhZGRlZDsKICB9CgogIGZ1bmN0aW9uIHBhcnNlSW50ZWdlcihzdHJpbmcpIHsKICAgIGlmIChpc1VuZGVmaW5lZChzdHJpbmcpIHx8IHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09ICIiKSB7CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gcGFyc2VJbnQoc3RyaW5nLCAxMCk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBwYXJzZUZsb2F0aW5nKHN0cmluZykgewogICAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gIiIpIHsKICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cmluZyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBwYXJzZU1pbGxpcyhmcmFjdGlvbikgewogICAgLy8gUmV0dXJuIHVuZGVmaW5lZCAoaW5zdGVhZCBvZiAwKSBpbiB0aGVzZSBjYXNlcywgd2hlcmUgZnJhY3Rpb24gaXMgbm90IHNldAogICAgaWYgKGlzVW5kZWZpbmVkKGZyYWN0aW9uKSB8fCBmcmFjdGlvbiA9PT0gbnVsbCB8fCBmcmFjdGlvbiA9PT0gIiIpIHsKICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnN0IGYgPSBwYXJzZUZsb2F0KCIwLiIgKyBmcmFjdGlvbikgKiAxMDAwOwogICAgICByZXR1cm4gTWF0aC5mbG9vcihmKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHJvdW5kVG8obnVtYmVyLCBkaWdpdHMsIHRvd2FyZFplcm8gPSBmYWxzZSkgewogICAgY29uc3QgZmFjdG9yID0gMTAgKiogZGlnaXRzLAogICAgICByb3VuZGVyID0gdG93YXJkWmVybyA/IE1hdGgudHJ1bmMgOiBNYXRoLnJvdW5kOwogICAgcmV0dXJuIHJvdW5kZXIobnVtYmVyICogZmFjdG9yKSAvIGZhY3RvcjsKICB9CgogIC8vIERBVEUgQkFTSUNTCgogIGZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcikgewogICAgcmV0dXJuIHllYXIgJSA0ID09PSAwICYmICh5ZWFyICUgMTAwICE9PSAwIHx8IHllYXIgJSA0MDAgPT09IDApOwogIH0KCiAgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7CiAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTsKICB9CgogIGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7CiAgICBjb25zdCBtb2RNb250aCA9IGZsb29yTW9kKG1vbnRoIC0gMSwgMTIpICsgMSwKICAgICAgbW9kWWVhciA9IHllYXIgKyAobW9udGggLSBtb2RNb250aCkgLyAxMjsKCiAgICBpZiAobW9kTW9udGggPT09IDIpIHsKICAgICAgcmV0dXJuIGlzTGVhcFllYXIobW9kWWVhcikgPyAyOSA6IDI4OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIFszMSwgbnVsbCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdW21vZE1vbnRoIC0gMV07CiAgICB9CiAgfQoKICAvLyBjb252ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgbG9jYWwgdGltZXN0YW1wIChlcG9jaCwgYnV0IHdpdGggdGhlIG9mZnNldCBiYWtlZCBpbikKICBmdW5jdGlvbiBvYmpUb0xvY2FsVFMob2JqKSB7CiAgICBsZXQgZCA9IERhdGUuVVRDKAogICAgICBvYmoueWVhciwKICAgICAgb2JqLm1vbnRoIC0gMSwKICAgICAgb2JqLmRheSwKICAgICAgb2JqLmhvdXIsCiAgICAgIG9iai5taW51dGUsCiAgICAgIG9iai5zZWNvbmQsCiAgICAgIG9iai5taWxsaXNlY29uZAogICAgKTsKCiAgICAvLyBmb3IgbGVnYWN5IHJlYXNvbnMsIHllYXJzIGJldHdlZW4gMCBhbmQgOTkgYXJlIGludGVycHJldGVkIGFzIDE5WFg7IHJldmVydCB0aGF0CiAgICBpZiAob2JqLnllYXIgPCAxMDAgJiYgb2JqLnllYXIgPj0gMCkgewogICAgICBkID0gbmV3IERhdGUoZCk7CiAgICAgIC8vIHNldCB0aGUgbW9udGggYW5kIGRheSBhZ2FpbiwgdGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB5ZWFyIDIwMDAgaXMgYSBsZWFwIHllYXIsIGJ1dCB5ZWFyIDEwMCBpcyBub3QKICAgICAgLy8gc28gaWYgb2JqLnllYXIgaXMgaW4gOTksIGJ1dCBvYmouZGF5IG1ha2VzIGl0IHJvbGwgb3ZlciBpbnRvIHllYXIgMTAwLAogICAgICAvLyB0aGUgY2FsY3VsYXRpb25zIGRvbmUgYnkgRGF0ZS5VVEMgYXJlIHVzaW5nIHllYXIgMjAwMCAtIHdoaWNoIGlzIGluY29ycmVjdAogICAgICBkLnNldFVUQ0Z1bGxZZWFyKG9iai55ZWFyLCBvYmoubW9udGggLSAxLCBvYmouZGF5KTsKICAgIH0KICAgIHJldHVybiArZDsKICB9CgogIGZ1bmN0aW9uIHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcikgewogICAgY29uc3QgcDEgPQogICAgICAgICh3ZWVrWWVhciArCiAgICAgICAgICBNYXRoLmZsb29yKHdlZWtZZWFyIC8gNCkgLQogICAgICAgICAgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDEwMCkgKwogICAgICAgICAgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDQwMCkpICUKICAgICAgICA3LAogICAgICBsYXN0ID0gd2Vla1llYXIgLSAxLAogICAgICBwMiA9IChsYXN0ICsgTWF0aC5mbG9vcihsYXN0IC8gNCkgLSBNYXRoLmZsb29yKGxhc3QgLyAxMDApICsgTWF0aC5mbG9vcihsYXN0IC8gNDAwKSkgJSA3OwogICAgcmV0dXJuIHAxID09PSA0IHx8IHAyID09PSAzID8gNTMgOiA1MjsKICB9CgogIGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXIpIHsKICAgIGlmICh5ZWFyID4gOTkpIHsKICAgICAgcmV0dXJuIHllYXI7CiAgICB9IGVsc2UgcmV0dXJuIHllYXIgPiBTZXR0aW5ncy50d29EaWdpdEN1dG9mZlllYXIgPyAxOTAwICsgeWVhciA6IDIwMDAgKyB5ZWFyOwogIH0KCiAgLy8gUEFSU0lORwoKICBmdW5jdGlvbiBwYXJzZVpvbmVJbmZvKHRzLCBvZmZzZXRGb3JtYXQsIGxvY2FsZSwgdGltZVpvbmUgPSBudWxsKSB7CiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodHMpLAogICAgICBpbnRsT3B0cyA9IHsKICAgICAgICBob3VyQ3ljbGU6ICJoMjMiLAogICAgICAgIHllYXI6ICJudW1lcmljIiwKICAgICAgICBtb250aDogIjItZGlnaXQiLAogICAgICAgIGRheTogIjItZGlnaXQiLAogICAgICAgIGhvdXI6ICIyLWRpZ2l0IiwKICAgICAgICBtaW51dGU6ICIyLWRpZ2l0IiwKICAgICAgfTsKCiAgICBpZiAodGltZVpvbmUpIHsKICAgICAgaW50bE9wdHMudGltZVpvbmUgPSB0aW1lWm9uZTsKICAgIH0KCiAgICBjb25zdCBtb2RpZmllZCA9IHsgdGltZVpvbmVOYW1lOiBvZmZzZXRGb3JtYXQsIC4uLmludGxPcHRzIH07CgogICAgY29uc3QgcGFyc2VkID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCBtb2RpZmllZCkKICAgICAgLmZvcm1hdFRvUGFydHMoZGF0ZSkKICAgICAgLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSAidGltZXpvbmVuYW1lIik7CiAgICByZXR1cm4gcGFyc2VkID8gcGFyc2VkLnZhbHVlIDogbnVsbDsKICB9CgogIC8vIHNpZ25lZE9mZnNldCgnLTUnLCAnMzAnKSAtPiAtMzMwCiAgZnVuY3Rpb24gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cikgewogICAgbGV0IG9mZkhvdXIgPSBwYXJzZUludChvZmZIb3VyU3RyLCAxMCk7CgogICAgLy8gZG9uJ3QgfHwgdGhpcyBiZWNhdXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgLTAKICAgIGlmIChOdW1iZXIuaXNOYU4ob2ZmSG91cikpIHsKICAgICAgb2ZmSG91ciA9IDA7CiAgICB9CgogICAgY29uc3Qgb2ZmTWluID0gcGFyc2VJbnQob2ZmTWludXRlU3RyLCAxMCkgfHwgMCwKICAgICAgb2ZmTWluU2lnbmVkID0gb2ZmSG91ciA8IDAgfHwgT2JqZWN0LmlzKG9mZkhvdXIsIC0wKSA/IC1vZmZNaW4gOiBvZmZNaW47CiAgICByZXR1cm4gb2ZmSG91ciAqIDYwICsgb2ZmTWluU2lnbmVkOwogIH0KCiAgLy8gQ09FUkNJT04KCiAgZnVuY3Rpb24gYXNOdW1iZXIodmFsdWUpIHsKICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2YWx1ZSk7CiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAiYm9vbGVhbiIgfHwgdmFsdWUgPT09ICIiIHx8IE51bWJlci5pc05hTihudW1lcmljVmFsdWUpKQogICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEludmFsaWQgdW5pdCB2YWx1ZSAke3ZhbHVlfWApOwogICAgcmV0dXJuIG51bWVyaWNWYWx1ZTsKICB9CgogIGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZXIpIHsKICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7fTsKICAgIGZvciAoY29uc3QgdSBpbiBvYmopIHsKICAgICAgaWYgKGhhc093blByb3BlcnR5KG9iaiwgdSkpIHsKICAgICAgICBjb25zdCB2ID0gb2JqW3VdOwogICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gbnVsbCkgY29udGludWU7CiAgICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVyKHUpXSA9IGFzTnVtYmVyKHYpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gbm9ybWFsaXplZDsKICB9CgogIGZ1bmN0aW9uIGZvcm1hdE9mZnNldChvZmZzZXQsIGZvcm1hdCkgewogICAgY29uc3QgaG91cnMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAvIDYwKSksCiAgICAgIG1pbnV0ZXMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAlIDYwKSksCiAgICAgIHNpZ24gPSBvZmZzZXQgPj0gMCA/ICIrIiA6ICItIjsKCiAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgICBjYXNlICJzaG9ydCI6CiAgICAgICAgcmV0dXJuIGAke3NpZ259JHtwYWRTdGFydChob3VycywgMil9OiR7cGFkU3RhcnQobWludXRlcywgMil9YDsKICAgICAgY2FzZSAibmFycm93IjoKICAgICAgICByZXR1cm4gYCR7c2lnbn0ke2hvdXJzfSR7bWludXRlcyA+IDAgPyBgOiR7bWludXRlc31gIDogIiJ9YDsKICAgICAgY2FzZSAidGVjaGllIjoKICAgICAgICByZXR1cm4gYCR7c2lnbn0ke3BhZFN0YXJ0KGhvdXJzLCAyKX0ke3BhZFN0YXJ0KG1pbnV0ZXMsIDIpfWA7CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFZhbHVlIGZvcm1hdCAke2Zvcm1hdH0gaXMgb3V0IG9mIHJhbmdlIGZvciBwcm9wZXJ0eSBmb3JtYXRgKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHRpbWVPYmplY3Qob2JqKSB7CiAgICByZXR1cm4gcGljayhvYmosIFsiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIm1pbGxpc2Vjb25kIl0pOwogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KCiAgY29uc3QgbW9udGhzTG9uZyA9IFsKICAgICJKYW51YXJ5IiwKICAgICJGZWJydWFyeSIsCiAgICAiTWFyY2giLAogICAgIkFwcmlsIiwKICAgICJNYXkiLAogICAgIkp1bmUiLAogICAgIkp1bHkiLAogICAgIkF1Z3VzdCIsCiAgICAiU2VwdGVtYmVyIiwKICAgICJPY3RvYmVyIiwKICAgICJOb3ZlbWJlciIsCiAgICAiRGVjZW1iZXIiLAogIF07CgogIGNvbnN0IG1vbnRoc1Nob3J0ID0gWwogICAgIkphbiIsCiAgICAiRmViIiwKICAgICJNYXIiLAogICAgIkFwciIsCiAgICAiTWF5IiwKICAgICJKdW4iLAogICAgIkp1bCIsCiAgICAiQXVnIiwKICAgICJTZXAiLAogICAgIk9jdCIsCiAgICAiTm92IiwKICAgICJEZWMiLAogIF07CgogIGNvbnN0IG1vbnRoc05hcnJvdyA9IFsiSiIsICJGIiwgIk0iLCAiQSIsICJNIiwgIkoiLCAiSiIsICJBIiwgIlMiLCAiTyIsICJOIiwgIkQiXTsKCiAgZnVuY3Rpb24gbW9udGhzKGxlbmd0aCkgewogICAgc3dpdGNoIChsZW5ndGgpIHsKICAgICAgY2FzZSAibmFycm93IjoKICAgICAgICByZXR1cm4gWy4uLm1vbnRoc05hcnJvd107CiAgICAgIGNhc2UgInNob3J0IjoKICAgICAgICByZXR1cm4gWy4uLm1vbnRoc1Nob3J0XTsKICAgICAgY2FzZSAibG9uZyI6CiAgICAgICAgcmV0dXJuIFsuLi5tb250aHNMb25nXTsKICAgICAgY2FzZSAibnVtZXJpYyI6CiAgICAgICAgcmV0dXJuIFsiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiwgIjkiLCAiMTAiLCAiMTEiLCAiMTIiXTsKICAgICAgY2FzZSAiMi1kaWdpdCI6CiAgICAgICAgcmV0dXJuIFsiMDEiLCAiMDIiLCAiMDMiLCAiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMDkiLCAiMTAiLCAiMTEiLCAiMTIiXTsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KICB9CgogIGNvbnN0IHdlZWtkYXlzTG9uZyA9IFsKICAgICJNb25kYXkiLAogICAgIlR1ZXNkYXkiLAogICAgIldlZG5lc2RheSIsCiAgICAiVGh1cnNkYXkiLAogICAgIkZyaWRheSIsCiAgICAiU2F0dXJkYXkiLAogICAgIlN1bmRheSIsCiAgXTsKCiAgY29uc3Qgd2Vla2RheXNTaG9ydCA9IFsiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIl07CgogIGNvbnN0IHdlZWtkYXlzTmFycm93ID0gWyJNIiwgIlQiLCAiVyIsICJUIiwgIkYiLCAiUyIsICJTIl07CgogIGZ1bmN0aW9uIHdlZWtkYXlzKGxlbmd0aCkgewogICAgc3dpdGNoIChsZW5ndGgpIHsKICAgICAgY2FzZSAibmFycm93IjoKICAgICAgICByZXR1cm4gWy4uLndlZWtkYXlzTmFycm93XTsKICAgICAgY2FzZSAic2hvcnQiOgogICAgICAgIHJldHVybiBbLi4ud2Vla2RheXNTaG9ydF07CiAgICAgIGNhc2UgImxvbmciOgogICAgICAgIHJldHVybiBbLi4ud2Vla2RheXNMb25nXTsKICAgICAgY2FzZSAibnVtZXJpYyI6CiAgICAgICAgcmV0dXJuIFsiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyJdOwogICAgICBkZWZhdWx0OgogICAgICAgIHJldHVybiBudWxsOwogICAgfQogIH0KCiAgY29uc3QgbWVyaWRpZW1zID0gWyJBTSIsICJQTSJdOwoKICBjb25zdCBlcmFzTG9uZyA9IFsiQmVmb3JlIENocmlzdCIsICJBbm5vIERvbWluaSJdOwoKICBjb25zdCBlcmFzU2hvcnQgPSBbIkJDIiwgIkFEIl07CgogIGNvbnN0IGVyYXNOYXJyb3cgPSBbIkIiLCAiQSJdOwoKICBmdW5jdGlvbiBlcmFzKGxlbmd0aCkgewogICAgc3dpdGNoIChsZW5ndGgpIHsKICAgICAgY2FzZSAibmFycm93IjoKICAgICAgICByZXR1cm4gWy4uLmVyYXNOYXJyb3ddOwogICAgICBjYXNlICJzaG9ydCI6CiAgICAgICAgcmV0dXJuIFsuLi5lcmFzU2hvcnRdOwogICAgICBjYXNlICJsb25nIjoKICAgICAgICByZXR1cm4gWy4uLmVyYXNMb25nXTsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KICB9CgogIGZ1bmN0aW9uIG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpIHsKICAgIHJldHVybiBtZXJpZGllbXNbZHQuaG91ciA8IDEyID8gMCA6IDFdOwogIH0KCiAgZnVuY3Rpb24gd2Vla2RheUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHsKICAgIHJldHVybiB3ZWVrZGF5cyhsZW5ndGgpW2R0LndlZWtkYXkgLSAxXTsKICB9CgogIGZ1bmN0aW9uIG1vbnRoRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkgewogICAgcmV0dXJuIG1vbnRocyhsZW5ndGgpW2R0Lm1vbnRoIC0gMV07CiAgfQoKICBmdW5jdGlvbiBlcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7CiAgICByZXR1cm4gZXJhcyhsZW5ndGgpW2R0LnllYXIgPCAwID8gMCA6IDFdOwogIH0KCiAgZnVuY3Rpb24gZm9ybWF0UmVsYXRpdmVUaW1lKHVuaXQsIGNvdW50LCBudW1lcmljID0gImFsd2F5cyIsIG5hcnJvdyA9IGZhbHNlKSB7CiAgICBjb25zdCB1bml0cyA9IHsKICAgICAgeWVhcnM6IFsieWVhciIsICJ5ci4iXSwKICAgICAgcXVhcnRlcnM6IFsicXVhcnRlciIsICJxdHIuIl0sCiAgICAgIG1vbnRoczogWyJtb250aCIsICJtby4iXSwKICAgICAgd2Vla3M6IFsid2VlayIsICJ3ay4iXSwKICAgICAgZGF5czogWyJkYXkiLCAiZGF5IiwgImRheXMiXSwKICAgICAgaG91cnM6IFsiaG91ciIsICJoci4iXSwKICAgICAgbWludXRlczogWyJtaW51dGUiLCAibWluLiJdLAogICAgICBzZWNvbmRzOiBbInNlY29uZCIsICJzZWMuIl0sCiAgICB9OwoKICAgIGNvbnN0IGxhc3RhYmxlID0gWyJob3VycyIsICJtaW51dGVzIiwgInNlY29uZHMiXS5pbmRleE9mKHVuaXQpID09PSAtMTsKCiAgICBpZiAobnVtZXJpYyA9PT0gImF1dG8iICYmIGxhc3RhYmxlKSB7CiAgICAgIGNvbnN0IGlzRGF5ID0gdW5pdCA9PT0gImRheXMiOwogICAgICBzd2l0Y2ggKGNvdW50KSB7CiAgICAgICAgY2FzZSAxOgogICAgICAgICAgcmV0dXJuIGlzRGF5ID8gInRvbW9ycm93IiA6IGBuZXh0ICR7dW5pdHNbdW5pdF1bMF19YDsKICAgICAgICBjYXNlIC0xOgogICAgICAgICAgcmV0dXJuIGlzRGF5ID8gInllc3RlcmRheSIgOiBgbGFzdCAke3VuaXRzW3VuaXRdWzBdfWA7CiAgICAgICAgY2FzZSAwOgogICAgICAgICAgcmV0dXJuIGlzRGF5ID8gInRvZGF5IiA6IGB0aGlzICR7dW5pdHNbdW5pdF1bMF19YDsKICAgICAgfQogICAgfQoKICAgIGNvbnN0IGlzSW5QYXN0ID0gT2JqZWN0LmlzKGNvdW50LCAtMCkgfHwgY291bnQgPCAwLAogICAgICBmbXRWYWx1ZSA9IE1hdGguYWJzKGNvdW50KSwKICAgICAgc2luZ3VsYXIgPSBmbXRWYWx1ZSA9PT0gMSwKICAgICAgbGlsVW5pdHMgPSB1bml0c1t1bml0XSwKICAgICAgZm10VW5pdCA9IG5hcnJvdwogICAgICAgID8gc2luZ3VsYXIKICAgICAgICAgID8gbGlsVW5pdHNbMV0KICAgICAgICAgIDogbGlsVW5pdHNbMl0gfHwgbGlsVW5pdHNbMV0KICAgICAgICA6IHNpbmd1bGFyCiAgICAgICAgPyB1bml0c1t1bml0XVswXQogICAgICAgIDogdW5pdDsKICAgIHJldHVybiBpc0luUGFzdCA/IGAke2ZtdFZhbHVlfSAke2ZtdFVuaXR9IGFnb2AgOiBgaW4gJHtmbXRWYWx1ZX0gJHtmbXRVbml0fWA7CiAgfQoKICBmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbnMoc3BsaXRzLCB0b2tlblRvU3RyaW5nKSB7CiAgICBsZXQgcyA9ICIiOwogICAgZm9yIChjb25zdCB0b2tlbiBvZiBzcGxpdHMpIHsKICAgICAgaWYgKHRva2VuLmxpdGVyYWwpIHsKICAgICAgICBzICs9IHRva2VuLnZhbDsKICAgICAgfSBlbHNlIHsKICAgICAgICBzICs9IHRva2VuVG9TdHJpbmcodG9rZW4udmFsKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHM7CiAgfQoKICBjb25zdCBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzID0gewogICAgRDogREFURV9TSE9SVCwKICAgIEREOiBEQVRFX01FRCwKICAgIERERDogREFURV9GVUxMLAogICAgRERERDogREFURV9IVUdFLAogICAgdDogVElNRV9TSU1QTEUsCiAgICB0dDogVElNRV9XSVRIX1NFQ09ORFMsCiAgICB0dHQ6IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQsCiAgICB0dHR0OiBUSU1FX1dJVEhfTE9OR19PRkZTRVQsCiAgICBUOiBUSU1FXzI0X1NJTVBMRSwKICAgIFRUOiBUSU1FXzI0X1dJVEhfU0VDT05EUywKICAgIFRUVDogVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCwKICAgIFRUVFQ6IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCwKICAgIGY6IERBVEVUSU1FX1NIT1JULAogICAgZmY6IERBVEVUSU1FX01FRCwKICAgIGZmZjogREFURVRJTUVfRlVMTCwKICAgIGZmZmY6IERBVEVUSU1FX0hVR0UsCiAgICBGOiBEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMsCiAgICBGRjogREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUywKICAgIEZGRjogREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMsCiAgICBGRkZGOiBEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUywKICB9OwoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwoKICBjbGFzcyBGb3JtYXR0ZXIgewogICAgc3RhdGljIGNyZWF0ZShsb2NhbGUsIG9wdHMgPSB7fSkgewogICAgICByZXR1cm4gbmV3IEZvcm1hdHRlcihsb2NhbGUsIG9wdHMpOwogICAgfQoKICAgIHN0YXRpYyBwYXJzZUZvcm1hdChmbXQpIHsKICAgICAgLy8gd2hpdGUtc3BhY2UgaXMgYWx3YXlzIGNvbnNpZGVyZWQgYSBsaXRlcmFsIGluIHVzZXItcHJvdmlkZWQgZm9ybWF0cwogICAgICAvLyB0aGUgIiAiIHRva2VuIGhhcyBhIHNwZWNpYWwgbWVhbmluZyAoc2VlIHVuaXRGb3JUb2tlbikKCiAgICAgIGxldCBjdXJyZW50ID0gbnVsbCwKICAgICAgICBjdXJyZW50RnVsbCA9ICIiLAogICAgICAgIGJyYWNrZXRlZCA9IGZhbHNlOwogICAgICBjb25zdCBzcGxpdHMgPSBbXTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmbXQubGVuZ3RoOyBpKyspIHsKICAgICAgICBjb25zdCBjID0gZm10LmNoYXJBdChpKTsKICAgICAgICBpZiAoYyA9PT0gIiciKSB7CiAgICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkgewogICAgICAgICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGJyYWNrZXRlZCB8fCAvXlxzKyQvLnRlc3QoY3VycmVudEZ1bGwpLCB2YWw6IGN1cnJlbnRGdWxsIH0pOwogICAgICAgICAgfQogICAgICAgICAgY3VycmVudCA9IG51bGw7CiAgICAgICAgICBjdXJyZW50RnVsbCA9ICIiOwogICAgICAgICAgYnJhY2tldGVkID0gIWJyYWNrZXRlZDsKICAgICAgICB9IGVsc2UgaWYgKGJyYWNrZXRlZCkgewogICAgICAgICAgY3VycmVudEZ1bGwgKz0gYzsKICAgICAgICB9IGVsc2UgaWYgKGMgPT09IGN1cnJlbnQpIHsKICAgICAgICAgIGN1cnJlbnRGdWxsICs9IGM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmIChjdXJyZW50RnVsbC5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogL15ccyskLy50ZXN0KGN1cnJlbnRGdWxsKSwgdmFsOiBjdXJyZW50RnVsbCB9KTsKICAgICAgICAgIH0KICAgICAgICAgIGN1cnJlbnRGdWxsID0gYzsKICAgICAgICAgIGN1cnJlbnQgPSBjOwogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHsKICAgICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGJyYWNrZXRlZCB8fCAvXlxzKyQvLnRlc3QoY3VycmVudEZ1bGwpLCB2YWw6IGN1cnJlbnRGdWxsIH0pOwogICAgICB9CgogICAgICByZXR1cm4gc3BsaXRzOwogICAgfQoKICAgIHN0YXRpYyBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKSB7CiAgICAgIHJldHVybiBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzW3Rva2VuXTsKICAgIH0KCiAgICBjb25zdHJ1Y3Rvcihsb2NhbGUsIGZvcm1hdE9wdHMpIHsKICAgICAgdGhpcy5vcHRzID0gZm9ybWF0T3B0czsKICAgICAgdGhpcy5sb2MgPSBsb2NhbGU7CiAgICAgIHRoaXMuc3lzdGVtTG9jID0gbnVsbDsKICAgIH0KCiAgICBmb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChkdCwgb3B0cykgewogICAgICBpZiAodGhpcy5zeXN0ZW1Mb2MgPT09IG51bGwpIHsKICAgICAgICB0aGlzLnN5c3RlbUxvYyA9IHRoaXMubG9jLnJlZGVmYXVsdFRvU3lzdGVtKCk7CiAgICAgIH0KICAgICAgY29uc3QgZGYgPSB0aGlzLnN5c3RlbUxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7CiAgICAgIHJldHVybiBkZi5mb3JtYXQoKTsKICAgIH0KCiAgICBkdEZvcm1hdHRlcihkdCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7CiAgICB9CgogICAgZm9ybWF0RGF0ZVRpbWUoZHQsIG9wdHMpIHsKICAgICAgcmV0dXJuIHRoaXMuZHRGb3JtYXR0ZXIoZHQsIG9wdHMpLmZvcm1hdCgpOwogICAgfQoKICAgIGZvcm1hdERhdGVUaW1lUGFydHMoZHQsIG9wdHMpIHsKICAgICAgcmV0dXJuIHRoaXMuZHRGb3JtYXR0ZXIoZHQsIG9wdHMpLmZvcm1hdFRvUGFydHMoKTsKICAgIH0KCiAgICBmb3JtYXRJbnRlcnZhbChpbnRlcnZhbCwgb3B0cykgewogICAgICBjb25zdCBkZiA9IHRoaXMuZHRGb3JtYXR0ZXIoaW50ZXJ2YWwuc3RhcnQsIG9wdHMpOwogICAgICByZXR1cm4gZGYuZHRmLmZvcm1hdFJhbmdlKGludGVydmFsLnN0YXJ0LnRvSlNEYXRlKCksIGludGVydmFsLmVuZC50b0pTRGF0ZSgpKTsKICAgIH0KCiAgICByZXNvbHZlZE9wdGlvbnMoZHQsIG9wdHMpIHsKICAgICAgcmV0dXJuIHRoaXMuZHRGb3JtYXR0ZXIoZHQsIG9wdHMpLnJlc29sdmVkT3B0aW9ucygpOwogICAgfQoKICAgIG51bShuLCBwID0gMCkgewogICAgICAvLyB3ZSBnZXQgc29tZSBwZXJmIG91dCBvZiBkb2luZyB0aGlzIGhlcmUsIGFubm95aW5nbHkKICAgICAgaWYgKHRoaXMub3B0cy5mb3JjZVNpbXBsZSkgewogICAgICAgIHJldHVybiBwYWRTdGFydChuLCBwKTsKICAgICAgfQoKICAgICAgY29uc3Qgb3B0cyA9IHsgLi4udGhpcy5vcHRzIH07CgogICAgICBpZiAocCA+IDApIHsKICAgICAgICBvcHRzLnBhZFRvID0gcDsKICAgICAgfQoKICAgICAgcmV0dXJuIHRoaXMubG9jLm51bWJlckZvcm1hdHRlcihvcHRzKS5mb3JtYXQobik7CiAgICB9CgogICAgZm9ybWF0RGF0ZVRpbWVGcm9tU3RyaW5nKGR0LCBmbXQpIHsKICAgICAgY29uc3Qga25vd25FbmdsaXNoID0gdGhpcy5sb2MubGlzdGluZ01vZGUoKSA9PT0gImVuIiwKICAgICAgICB1c2VEYXRlVGltZUZvcm1hdHRlciA9IHRoaXMubG9jLm91dHB1dENhbGVuZGFyICYmIHRoaXMubG9jLm91dHB1dENhbGVuZGFyICE9PSAiZ3JlZ29yeSIsCiAgICAgICAgc3RyaW5nID0gKG9wdHMsIGV4dHJhY3QpID0+IHRoaXMubG9jLmV4dHJhY3QoZHQsIG9wdHMsIGV4dHJhY3QpLAogICAgICAgIGZvcm1hdE9mZnNldCA9IChvcHRzKSA9PiB7CiAgICAgICAgICBpZiAoZHQuaXNPZmZzZXRGaXhlZCAmJiBkdC5vZmZzZXQgPT09IDAgJiYgb3B0cy5hbGxvd1opIHsKICAgICAgICAgICAgcmV0dXJuICJaIjsKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gZHQuaXNWYWxpZCA/IGR0LnpvbmUuZm9ybWF0T2Zmc2V0KGR0LnRzLCBvcHRzLmZvcm1hdCkgOiAiIjsKICAgICAgICB9LAogICAgICAgIG1lcmlkaWVtID0gKCkgPT4KICAgICAgICAgIGtub3duRW5nbGlzaAogICAgICAgICAgICA/IG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpCiAgICAgICAgICAgIDogc3RyaW5nKHsgaG91cjogIm51bWVyaWMiLCBob3VyQ3ljbGU6ICJoMTIiIH0sICJkYXlwZXJpb2QiKSwKICAgICAgICBtb250aCA9IChsZW5ndGgsIHN0YW5kYWxvbmUpID0+CiAgICAgICAgICBrbm93bkVuZ2xpc2gKICAgICAgICAgICAgPyBtb250aEZvckRhdGVUaW1lKGR0LCBsZW5ndGgpCiAgICAgICAgICAgIDogc3RyaW5nKHN0YW5kYWxvbmUgPyB7IG1vbnRoOiBsZW5ndGggfSA6IHsgbW9udGg6IGxlbmd0aCwgZGF5OiAibnVtZXJpYyIgfSwgIm1vbnRoIiksCiAgICAgICAgd2Vla2RheSA9IChsZW5ndGgsIHN0YW5kYWxvbmUpID0+CiAgICAgICAgICBrbm93bkVuZ2xpc2gKICAgICAgICAgICAgPyB3ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkKICAgICAgICAgICAgOiBzdHJpbmcoCiAgICAgICAgICAgICAgICBzdGFuZGFsb25lID8geyB3ZWVrZGF5OiBsZW5ndGggfSA6IHsgd2Vla2RheTogbGVuZ3RoLCBtb250aDogImxvbmciLCBkYXk6ICJudW1lcmljIiB9LAogICAgICAgICAgICAgICAgIndlZWtkYXkiCiAgICAgICAgICAgICAgKSwKICAgICAgICBtYXliZU1hY3JvID0gKHRva2VuKSA9PiB7CiAgICAgICAgICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4pOwogICAgICAgICAgaWYgKGZvcm1hdE9wdHMpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZHQsIGZvcm1hdE9wdHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIHRva2VuOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgZXJhID0gKGxlbmd0aCkgPT4KICAgICAgICAgIGtub3duRW5nbGlzaCA/IGVyYUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIDogc3RyaW5nKHsgZXJhOiBsZW5ndGggfSwgImVyYSIpLAogICAgICAgIHRva2VuVG9TdHJpbmcgPSAodG9rZW4pID0+IHsKICAgICAgICAgIC8vIFdoZXJlIHBvc3NpYmxlOiBodHRwczovL2NsZHIudW5pY29kZS5vcmcvdHJhbnNsYXRpb24vZGF0ZS10aW1lL2RhdGUtdGltZS1zeW1ib2xzCiAgICAgICAgICBzd2l0Y2ggKHRva2VuKSB7CiAgICAgICAgICAgIC8vIG1zCiAgICAgICAgICAgIGNhc2UgIlMiOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taWxsaXNlY29uZCk7CiAgICAgICAgICAgIGNhc2UgInUiOgogICAgICAgICAgICAvLyBmYWxscyB0aHJvdWdoCiAgICAgICAgICAgIGNhc2UgIlNTUyI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbGxpc2Vjb25kLCAzKTsKICAgICAgICAgICAgLy8gc2Vjb25kcwogICAgICAgICAgICBjYXNlICJzIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuc2Vjb25kKTsKICAgICAgICAgICAgY2FzZSAic3MiOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5zZWNvbmQsIDIpOwogICAgICAgICAgICAvLyBmcmFjdGlvbmFsIHNlY29uZHMKICAgICAgICAgICAgY2FzZSAidXUiOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTApLCAyKTsKICAgICAgICAgICAgY2FzZSAidXV1IjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC5taWxsaXNlY29uZCAvIDEwMCkpOwogICAgICAgICAgICAvLyBtaW51dGVzCiAgICAgICAgICAgIGNhc2UgIm0iOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taW51dGUpOwogICAgICAgICAgICBjYXNlICJtbSI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbnV0ZSwgMik7CiAgICAgICAgICAgIC8vIGhvdXJzCiAgICAgICAgICAgIGNhc2UgImgiOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyICUgMTIgPT09IDAgPyAxMiA6IGR0LmhvdXIgJSAxMik7CiAgICAgICAgICAgIGNhc2UgImhoIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciAlIDEyID09PSAwID8gMTIgOiBkdC5ob3VyICUgMTIsIDIpOwogICAgICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91cik7CiAgICAgICAgICAgIGNhc2UgIkhIIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciwgMik7CiAgICAgICAgICAgIC8vIG9mZnNldAogICAgICAgICAgICBjYXNlICJaIjoKICAgICAgICAgICAgICAvLyBsaWtlICs2CiAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogIm5hcnJvdyIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTsKICAgICAgICAgICAgY2FzZSAiWloiOgogICAgICAgICAgICAgIC8vIGxpa2UgKzA2OjAwCiAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogInNob3J0IiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pOwogICAgICAgICAgICBjYXNlICJaWloiOgogICAgICAgICAgICAgIC8vIGxpa2UgKzA2MDAKICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsgZm9ybWF0OiAidGVjaGllIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pOwogICAgICAgICAgICBjYXNlICJaWlpaIjoKICAgICAgICAgICAgICAvLyBsaWtlIEVTVAogICAgICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsgZm9ybWF0OiAic2hvcnQiLCBsb2NhbGU6IHRoaXMubG9jLmxvY2FsZSB9KTsKICAgICAgICAgICAgY2FzZSAiWlpaWloiOgogICAgICAgICAgICAgIC8vIGxpa2UgRWFzdGVybiBTdGFuZGFyZCBUaW1lCiAgICAgICAgICAgICAgcmV0dXJuIGR0LnpvbmUub2Zmc2V0TmFtZShkdC50cywgeyBmb3JtYXQ6ICJsb25nIiwgbG9jYWxlOiB0aGlzLmxvYy5sb2NhbGUgfSk7CiAgICAgICAgICAgIC8vIHpvbmUKICAgICAgICAgICAgY2FzZSAieiI6CiAgICAgICAgICAgICAgLy8gbGlrZSBBbWVyaWNhL05ld19Zb3JrCiAgICAgICAgICAgICAgcmV0dXJuIGR0LnpvbmVOYW1lOwogICAgICAgICAgICAvLyBtZXJpZGllbXMKICAgICAgICAgICAgY2FzZSAiYSI6CiAgICAgICAgICAgICAgcmV0dXJuIG1lcmlkaWVtKCk7CiAgICAgICAgICAgIC8vIGRhdGVzCiAgICAgICAgICAgIGNhc2UgImQiOgogICAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7IGRheTogIm51bWVyaWMiIH0sICJkYXkiKSA6IHRoaXMubnVtKGR0LmRheSk7CiAgICAgICAgICAgIGNhc2UgImRkIjoKICAgICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyBkYXk6ICIyLWRpZ2l0IiB9LCAiZGF5IikgOiB0aGlzLm51bShkdC5kYXksIDIpOwogICAgICAgICAgICAvLyB3ZWVrZGF5cyAtIHN0YW5kYWxvbmUKICAgICAgICAgICAgY2FzZSAiYyI6CiAgICAgICAgICAgICAgLy8gbGlrZSAxCiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtkYXkpOwogICAgICAgICAgICBjYXNlICJjY2MiOgogICAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXMnCiAgICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoInNob3J0IiwgdHJ1ZSk7CiAgICAgICAgICAgIGNhc2UgImNjY2MiOgogICAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknCiAgICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoImxvbmciLCB0cnVlKTsKICAgICAgICAgICAgY2FzZSAiY2NjY2MiOgogICAgICAgICAgICAgIC8vIGxpa2UgJ1QnCiAgICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoIm5hcnJvdyIsIHRydWUpOwogICAgICAgICAgICAvLyB3ZWVrZGF5cyAtIGZvcm1hdAogICAgICAgICAgICBjYXNlICJFIjoKICAgICAgICAgICAgICAvLyBsaWtlIDEKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla2RheSk7CiAgICAgICAgICAgIGNhc2UgIkVFRSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAnVHVlcycKICAgICAgICAgICAgICByZXR1cm4gd2Vla2RheSgic2hvcnQiLCBmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgIkVFRUUiOgogICAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknCiAgICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoImxvbmciLCBmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgIkVFRUVFIjoKICAgICAgICAgICAgICAvLyBsaWtlICdUJwogICAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KCJuYXJyb3ciLCBmYWxzZSk7CiAgICAgICAgICAgIC8vIG1vbnRocyAtIHN0YW5kYWxvbmUKICAgICAgICAgICAgY2FzZSAiTCI6CiAgICAgICAgICAgICAgLy8gbGlrZSAxCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiAibnVtZXJpYyIsIGRheTogIm51bWVyaWMiIH0sICJtb250aCIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoKTsKICAgICAgICAgICAgY2FzZSAiTEwiOgogICAgICAgICAgICAgIC8vIGxpa2UgMDEsIGRvZXNuJ3Qgc2VlbSB0byB3b3JrCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiAiMi1kaWdpdCIsIGRheTogIm51bWVyaWMiIH0sICJtb250aCIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTsKICAgICAgICAgICAgY2FzZSAiTExMIjoKICAgICAgICAgICAgICAvLyBsaWtlIEphbgogICAgICAgICAgICAgIHJldHVybiBtb250aCgic2hvcnQiLCB0cnVlKTsKICAgICAgICAgICAgY2FzZSAiTExMTCI6CiAgICAgICAgICAgICAgLy8gbGlrZSBKYW51YXJ5CiAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoKCJsb25nIiwgdHJ1ZSk7CiAgICAgICAgICAgIGNhc2UgIkxMTExMIjoKICAgICAgICAgICAgICAvLyBsaWtlIEoKICAgICAgICAgICAgICByZXR1cm4gbW9udGgoIm5hcnJvdyIsIHRydWUpOwogICAgICAgICAgICAvLyBtb250aHMgLSBmb3JtYXQKICAgICAgICAgICAgY2FzZSAiTSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAxCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiAibnVtZXJpYyIgfSwgIm1vbnRoIikKICAgICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgpOwogICAgICAgICAgICBjYXNlICJNTSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAwMQogICAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlcgogICAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogIjItZGlnaXQiIH0sICJtb250aCIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTsKICAgICAgICAgICAgY2FzZSAiTU1NIjoKICAgICAgICAgICAgICAvLyBsaWtlIEphbgogICAgICAgICAgICAgIHJldHVybiBtb250aCgic2hvcnQiLCBmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgIk1NTU0iOgogICAgICAgICAgICAgIC8vIGxpa2UgSmFudWFyeQogICAgICAgICAgICAgIHJldHVybiBtb250aCgibG9uZyIsIGZhbHNlKTsKICAgICAgICAgICAgY2FzZSAiTU1NTU0iOgogICAgICAgICAgICAgIC8vIGxpa2UgSgogICAgICAgICAgICAgIHJldHVybiBtb250aCgibmFycm93IiwgZmFsc2UpOwogICAgICAgICAgICAvLyB5ZWFycwogICAgICAgICAgICBjYXNlICJ5IjoKICAgICAgICAgICAgICAvLyBsaWtlIDIwMTQKICAgICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyB5ZWFyOiAibnVtZXJpYyIgfSwgInllYXIiKSA6IHRoaXMubnVtKGR0LnllYXIpOwogICAgICAgICAgICBjYXNlICJ5eSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAxNAogICAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlcgogICAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiAiMi1kaWdpdCIgfSwgInllYXIiKQogICAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTsKICAgICAgICAgICAgY2FzZSAieXl5eSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAwMDEyCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IHllYXI6ICJudW1lcmljIiB9LCAieWVhciIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0LnllYXIsIDQpOwogICAgICAgICAgICBjYXNlICJ5eXl5eXkiOgogICAgICAgICAgICAgIC8vIGxpa2UgMDAwMDEyCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IHllYXI6ICJudW1lcmljIiB9LCAieWVhciIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0LnllYXIsIDYpOwogICAgICAgICAgICAvLyBlcmFzCiAgICAgICAgICAgIGNhc2UgIkciOgogICAgICAgICAgICAgIC8vIGxpa2UgQUQKICAgICAgICAgICAgICByZXR1cm4gZXJhKCJzaG9ydCIpOwogICAgICAgICAgICBjYXNlICJHRyI6CiAgICAgICAgICAgICAgLy8gbGlrZSBBbm5vIERvbWluaQogICAgICAgICAgICAgIHJldHVybiBlcmEoImxvbmciKTsKICAgICAgICAgICAgY2FzZSAiR0dHR0ciOgogICAgICAgICAgICAgIHJldHVybiBlcmEoIm5hcnJvdyIpOwogICAgICAgICAgICBjYXNlICJrayI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtZZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTsKICAgICAgICAgICAgY2FzZSAia2trayI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtZZWFyLCA0KTsKICAgICAgICAgICAgY2FzZSAiVyI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtOdW1iZXIpOwogICAgICAgICAgICBjYXNlICJXVyI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtOdW1iZXIsIDIpOwogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQub3JkaW5hbCk7CiAgICAgICAgICAgIGNhc2UgIm9vbyI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm9yZGluYWwsIDMpOwogICAgICAgICAgICBjYXNlICJxIjoKICAgICAgICAgICAgICAvLyBsaWtlIDEKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQucXVhcnRlcik7CiAgICAgICAgICAgIGNhc2UgInFxIjoKICAgICAgICAgICAgICAvLyBsaWtlIDAxCiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnF1YXJ0ZXIsIDIpOwogICAgICAgICAgICBjYXNlICJYIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC50cyAvIDEwMDApKTsKICAgICAgICAgICAgY2FzZSAieCI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnRzKTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICByZXR1cm4gbWF5YmVNYWNybyh0b2tlbik7CiAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgIHJldHVybiBzdHJpbmdpZnlUb2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksIHRva2VuVG9TdHJpbmcpOwogICAgfQoKICAgIGZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyhkdXIsIGZtdCkgewogICAgICBjb25zdCB0b2tlblRvRmllbGQgPSAodG9rZW4pID0+IHsKICAgICAgICAgIHN3aXRjaCAodG9rZW5bMF0pIHsKICAgICAgICAgICAgY2FzZSAiUyI6CiAgICAgICAgICAgICAgcmV0dXJuICJtaWxsaXNlY29uZCI7CiAgICAgICAgICAgIGNhc2UgInMiOgogICAgICAgICAgICAgIHJldHVybiAic2Vjb25kIjsKICAgICAgICAgICAgY2FzZSAibSI6CiAgICAgICAgICAgICAgcmV0dXJuICJtaW51dGUiOwogICAgICAgICAgICBjYXNlICJoIjoKICAgICAgICAgICAgICByZXR1cm4gImhvdXIiOwogICAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgICByZXR1cm4gImRheSI7CiAgICAgICAgICAgIGNhc2UgInciOgogICAgICAgICAgICAgIHJldHVybiAid2VlayI7CiAgICAgICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICAgIHJldHVybiAibW9udGgiOwogICAgICAgICAgICBjYXNlICJ5IjoKICAgICAgICAgICAgICByZXR1cm4gInllYXIiOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdG9rZW5Ub1N0cmluZyA9IChsaWxkdXIpID0+ICh0b2tlbikgPT4gewogICAgICAgICAgY29uc3QgbWFwcGVkID0gdG9rZW5Ub0ZpZWxkKHRva2VuKTsKICAgICAgICAgIGlmIChtYXBwZWQpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGxpbGR1ci5nZXQobWFwcGVkKSwgdG9rZW4ubGVuZ3RoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0b2tlbjsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHRva2VucyA9IEZvcm1hdHRlci5wYXJzZUZvcm1hdChmbXQpLAogICAgICAgIHJlYWxUb2tlbnMgPSB0b2tlbnMucmVkdWNlKAogICAgICAgICAgKGZvdW5kLCB7IGxpdGVyYWwsIHZhbCB9KSA9PiAobGl0ZXJhbCA/IGZvdW5kIDogZm91bmQuY29uY2F0KHZhbCkpLAogICAgICAgICAgW10KICAgICAgICApLAogICAgICAgIGNvbGxhcHNlZCA9IGR1ci5zaGlmdFRvKC4uLnJlYWxUb2tlbnMubWFwKHRva2VuVG9GaWVsZCkuZmlsdGVyKCh0KSA9PiB0KSk7CiAgICAgIHJldHVybiBzdHJpbmdpZnlUb2tlbnModG9rZW5zLCB0b2tlblRvU3RyaW5nKGNvbGxhcHNlZCkpOwogICAgfQogIH0KCiAgY2xhc3MgSW52YWxpZCB7CiAgICBjb25zdHJ1Y3RvcihyZWFzb24sIGV4cGxhbmF0aW9uKSB7CiAgICAgIHRoaXMucmVhc29uID0gcmVhc29uOwogICAgICB0aGlzLmV4cGxhbmF0aW9uID0gZXhwbGFuYXRpb247CiAgICB9CgogICAgdG9NZXNzYWdlKCkgewogICAgICBpZiAodGhpcy5leHBsYW5hdGlvbikgewogICAgICAgIHJldHVybiBgJHt0aGlzLnJlYXNvbn06ICR7dGhpcy5leHBsYW5hdGlvbn1gOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB0aGlzLnJlYXNvbjsKICAgICAgfQogICAgfQogIH0KCiAgLyoKICAgKiBUaGlzIGZpbGUgaGFuZGxlcyBwYXJzaW5nIGZvciB3ZWxsLXNwZWNpZmllZCBmb3JtYXRzLiBIZXJlJ3MgaG93IGl0IHdvcmtzOgogICAqIFR3byB0aGluZ3MgZ28gaW50byBwYXJzaW5nOiBhIHJlZ2V4IHRvIG1hdGNoIHdpdGggYW5kIGFuIGV4dHJhY3RvciB0byB0YWtlIGFwYXJ0IHRoZSBncm91cHMgaW4gdGhlIG1hdGNoLgogICAqIEFuIGV4dHJhY3RvciBpcyBqdXN0IGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHJlZ2V4IG1hdGNoIGFycmF5IGFuZCByZXR1cm5zIGEgeyB5ZWFyOiAuLi4sIG1vbnRoOiAuLi4gfSBvYmplY3QKICAgKiBwYXJzZSgpIGRvZXMgdGhlIHdvcmsgb2YgZXhlY3V0aW5nIHRoZSByZWdleCBhbmQgYXBwbHlpbmcgdGhlIGV4dHJhY3Rvci4gSXQgdGFrZXMgbXVsdGlwbGUgcmVnZXgvZXh0cmFjdG9yIHBhaXJzIHRvIHRyeSBpbiBzZXF1ZW5jZS4KICAgKiBFeHRyYWN0b3JzIGNhbiB0YWtlIGEgImN1cnNvciIgcmVwcmVzZW50aW5nIHRoZSBvZmZzZXQgaW4gdGhlIG1hdGNoIHRvIGxvb2sgYXQuIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBjb21iaW5lIGV4dHJhY3RvcnMuCiAgICogY29tYmluZUV4dHJhY3RvcnMoKSBkb2VzIHRoZSB3b3JrIG9mIGNvbWJpbmluZyB0aGVtLCBrZWVwaW5nIHRyYWNrIG9mIHRoZSBjdXJzb3IgdGhyb3VnaCBtdWx0aXBsZSBleHRyYWN0aW9ucy4KICAgKiBTb21lIGV4dHJhY3Rpb25zIGFyZSBzdXBlciBkdW1iIGFuZCBzaW1wbGVQYXJzZSBhbmQgZnJvbVN0cmluZ3MgaGVscCBEUlkgdGhlbS4KICAgKi8KCiAgY29uc3QgaWFuYVJlZ2V4ID0gL1tBLVphLXpfKy1dezEsMjU2fSg/Ojo/XC9bQS1aYS16MC05XystXXsxLDI1Nn0oPzpcL1tBLVphLXowLTlfKy1dezEsMjU2fSk/KT8vOwoKICBmdW5jdGlvbiBjb21iaW5lUmVnZXhlcyguLi5yZWdleGVzKSB7CiAgICBjb25zdCBmdWxsID0gcmVnZXhlcy5yZWR1Y2UoKGYsIHIpID0+IGYgKyByLnNvdXJjZSwgIiIpOwogICAgcmV0dXJuIFJlZ0V4cChgXiR7ZnVsbH0kYCk7CiAgfQoKICBmdW5jdGlvbiBjb21iaW5lRXh0cmFjdG9ycyguLi5leHRyYWN0b3JzKSB7CiAgICByZXR1cm4gKG0pID0+CiAgICAgIGV4dHJhY3RvcnMKICAgICAgICAucmVkdWNlKAogICAgICAgICAgKFttZXJnZWRWYWxzLCBtZXJnZWRab25lLCBjdXJzb3JdLCBleCkgPT4gewogICAgICAgICAgICBjb25zdCBbdmFsLCB6b25lLCBuZXh0XSA9IGV4KG0sIGN1cnNvcik7CiAgICAgICAgICAgIHJldHVybiBbeyAuLi5tZXJnZWRWYWxzLCAuLi52YWwgfSwgem9uZSB8fCBtZXJnZWRab25lLCBuZXh0XTsKICAgICAgICAgIH0sCiAgICAgICAgICBbe30sIG51bGwsIDFdCiAgICAgICAgKQogICAgICAgIC5zbGljZSgwLCAyKTsKICB9CgogIGZ1bmN0aW9uIHBhcnNlKHMsIC4uLnBhdHRlcm5zKSB7CiAgICBpZiAocyA9PSBudWxsKSB7CiAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07CiAgICB9CgogICAgZm9yIChjb25zdCBbcmVnZXgsIGV4dHJhY3Rvcl0gb2YgcGF0dGVybnMpIHsKICAgICAgY29uc3QgbSA9IHJlZ2V4LmV4ZWMocyk7CiAgICAgIGlmIChtKSB7CiAgICAgICAgcmV0dXJuIGV4dHJhY3RvcihtKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIFtudWxsLCBudWxsXTsKICB9CgogIGZ1bmN0aW9uIHNpbXBsZVBhcnNlKC4uLmtleXMpIHsKICAgIHJldHVybiAobWF0Y2gsIGN1cnNvcikgPT4gewogICAgICBjb25zdCByZXQgPSB7fTsKICAgICAgbGV0IGk7CgogICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIHJldFtrZXlzW2ldXSA9IHBhcnNlSW50ZWdlcihtYXRjaFtjdXJzb3IgKyBpXSk7CiAgICAgIH0KICAgICAgcmV0dXJuIFtyZXQsIG51bGwsIGN1cnNvciArIGldOwogICAgfTsKICB9CgogIC8vIElTTyBhbmQgU1FMIHBhcnNpbmcKICBjb25zdCBvZmZzZXRSZWdleCA9IC8oPzooWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8pLzsKICBjb25zdCBpc29FeHRlbmRlZFpvbmUgPSBgKD86JHtvZmZzZXRSZWdleC5zb3VyY2V9Pyg/OlxcWygke2lhbmFSZWdleC5zb3VyY2V9KVxcXSk/KT9gOwogIGNvbnN0IGlzb1RpbWVCYXNlUmVnZXggPSAvKFxkXGQpKD86Oj8oXGRcZCkoPzo6PyhcZFxkKSg/OlsuLF0oXGR7MSwzMH0pKT8pPyk/LzsKICBjb25zdCBpc29UaW1lUmVnZXggPSBSZWdFeHAoYCR7aXNvVGltZUJhc2VSZWdleC5zb3VyY2V9JHtpc29FeHRlbmRlZFpvbmV9YCk7CiAgY29uc3QgaXNvVGltZUV4dGVuc2lvblJlZ2V4ID0gUmVnRXhwKGAoPzpUJHtpc29UaW1lUmVnZXguc291cmNlfSk/YCk7CiAgY29uc3QgaXNvWW1kUmVnZXggPSAvKFsrLV1cZHs2fXxcZHs0fSkoPzotPyhcZFxkKSg/Oi0/KFxkXGQpKT8pPy87CiAgY29uc3QgaXNvV2Vla1JlZ2V4ID0gLyhcZHs0fSktP1coXGRcZCkoPzotPyhcZCkpPy87CiAgY29uc3QgaXNvT3JkaW5hbFJlZ2V4ID0gLyhcZHs0fSktPyhcZHszfSkvOwogIGNvbnN0IGV4dHJhY3RJU09XZWVrRGF0YSA9IHNpbXBsZVBhcnNlKCJ3ZWVrWWVhciIsICJ3ZWVrTnVtYmVyIiwgIndlZWtEYXkiKTsKICBjb25zdCBleHRyYWN0SVNPT3JkaW5hbERhdGEgPSBzaW1wbGVQYXJzZSgieWVhciIsICJvcmRpbmFsIik7CiAgY29uc3Qgc3FsWW1kUmVnZXggPSAvKFxkezR9KS0oXGRcZCktKFxkXGQpLzsgLy8gZHVtYmVkLWRvd24gdmVyc2lvbiBvZiB0aGUgSVNPIG9uZQogIGNvbnN0IHNxbFRpbWVSZWdleCA9IFJlZ0V4cCgKICAgIGAke2lzb1RpbWVCYXNlUmVnZXguc291cmNlfSA/KD86JHtvZmZzZXRSZWdleC5zb3VyY2V9fCgke2lhbmFSZWdleC5zb3VyY2V9KSk/YAogICk7CiAgY29uc3Qgc3FsVGltZUV4dGVuc2lvblJlZ2V4ID0gUmVnRXhwKGAoPzogJHtzcWxUaW1lUmVnZXguc291cmNlfSk/YCk7CgogIGZ1bmN0aW9uIGludChtYXRjaCwgcG9zLCBmYWxsYmFjaykgewogICAgY29uc3QgbSA9IG1hdGNoW3Bvc107CiAgICByZXR1cm4gaXNVbmRlZmluZWQobSkgPyBmYWxsYmFjayA6IHBhcnNlSW50ZWdlcihtKTsKICB9CgogIGZ1bmN0aW9uIGV4dHJhY3RJU09ZbWQobWF0Y2gsIGN1cnNvcikgewogICAgY29uc3QgaXRlbSA9IHsKICAgICAgeWVhcjogaW50KG1hdGNoLCBjdXJzb3IpLAogICAgICBtb250aDogaW50KG1hdGNoLCBjdXJzb3IgKyAxLCAxKSwKICAgICAgZGF5OiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDEpLAogICAgfTsKCiAgICByZXR1cm4gW2l0ZW0sIG51bGwsIGN1cnNvciArIDNdOwogIH0KCiAgZnVuY3Rpb24gZXh0cmFjdElTT1RpbWUobWF0Y2gsIGN1cnNvcikgewogICAgY29uc3QgaXRlbSA9IHsKICAgICAgaG91cnM6IGludChtYXRjaCwgY3Vyc29yLCAwKSwKICAgICAgbWludXRlczogaW50KG1hdGNoLCBjdXJzb3IgKyAxLCAwKSwKICAgICAgc2Vjb25kczogaW50KG1hdGNoLCBjdXJzb3IgKyAyLCAwKSwKICAgICAgbWlsbGlzZWNvbmRzOiBwYXJzZU1pbGxpcyhtYXRjaFtjdXJzb3IgKyAzXSksCiAgICB9OwoKICAgIHJldHVybiBbaXRlbSwgbnVsbCwgY3Vyc29yICsgNF07CiAgfQoKICBmdW5jdGlvbiBleHRyYWN0SVNPT2Zmc2V0KG1hdGNoLCBjdXJzb3IpIHsKICAgIGNvbnN0IGxvY2FsID0gIW1hdGNoW2N1cnNvcl0gJiYgIW1hdGNoW2N1cnNvciArIDFdLAogICAgICBmdWxsT2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG1hdGNoW2N1cnNvciArIDFdLCBtYXRjaFtjdXJzb3IgKyAyXSksCiAgICAgIHpvbmUgPSBsb2NhbCA/IG51bGwgOiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoZnVsbE9mZnNldCk7CiAgICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTsKICB9CgogIGZ1bmN0aW9uIGV4dHJhY3RJQU5BWm9uZShtYXRjaCwgY3Vyc29yKSB7CiAgICBjb25zdCB6b25lID0gbWF0Y2hbY3Vyc29yXSA/IElBTkFab25lLmNyZWF0ZShtYXRjaFtjdXJzb3JdKSA6IG51bGw7CiAgICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTsKICB9CgogIC8vIElTTyB0aW1lIHBhcnNpbmcKCiAgY29uc3QgaXNvVGltZU9ubHkgPSBSZWdFeHAoYF5UPyR7aXNvVGltZUJhc2VSZWdleC5zb3VyY2V9JGApOwoKICAvLyBJU08gZHVyYXRpb24gcGFyc2luZwoKICBjb25zdCBpc29EdXJhdGlvbiA9CiAgICAvXi0/UCg/Oig/OigtP1xkezEsMjB9KD86XC5cZHsxLDIwfSk/KVkpPyg/OigtP1xkezEsMjB9KD86XC5cZHsxLDIwfSk/KU0pPyg/OigtP1xkezEsMjB9KD86XC5cZHsxLDIwfSk/KVcpPyg/OigtP1xkezEsMjB9KD86XC5cZHsxLDIwfSk/KUQpPyg/OlQoPzooLT9cZHsxLDIwfSg/OlwuXGR7MSwyMH0pPylIKT8oPzooLT9cZHsxLDIwfSg/OlwuXGR7MSwyMH0pPylNKT8oPzooLT9cZHsxLDIwfSkoPzpbLixdKC0/XGR7MSwyMH0pKT9TKT8pPykkLzsKCiAgZnVuY3Rpb24gZXh0cmFjdElTT0R1cmF0aW9uKG1hdGNoKSB7CiAgICBjb25zdCBbcywgeWVhclN0ciwgbW9udGhTdHIsIHdlZWtTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIsIG1pbGxpc2Vjb25kc1N0cl0gPQogICAgICBtYXRjaDsKCiAgICBjb25zdCBoYXNOZWdhdGl2ZVByZWZpeCA9IHNbMF0gPT09ICItIjsKICAgIGNvbnN0IG5lZ2F0aXZlU2Vjb25kcyA9IHNlY29uZFN0ciAmJiBzZWNvbmRTdHJbMF0gPT09ICItIjsKCiAgICBjb25zdCBtYXliZU5lZ2F0ZSA9IChudW0sIGZvcmNlID0gZmFsc2UpID0+CiAgICAgIG51bSAhPT0gdW5kZWZpbmVkICYmIChmb3JjZSB8fCAobnVtICYmIGhhc05lZ2F0aXZlUHJlZml4KSkgPyAtbnVtIDogbnVtOwoKICAgIHJldHVybiBbCiAgICAgIHsKICAgICAgICB5ZWFyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh5ZWFyU3RyKSksCiAgICAgICAgbW9udGhzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKG1vbnRoU3RyKSksCiAgICAgICAgd2Vla3M6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcod2Vla1N0cikpLAogICAgICAgIGRheXM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoZGF5U3RyKSksCiAgICAgICAgaG91cnM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoaG91clN0cikpLAogICAgICAgIG1pbnV0ZXM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcobWludXRlU3RyKSksCiAgICAgICAgc2Vjb25kczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhzZWNvbmRTdHIpLCBzZWNvbmRTdHIgPT09ICItMCIpLAogICAgICAgIG1pbGxpc2Vjb25kczogbWF5YmVOZWdhdGUocGFyc2VNaWxsaXMobWlsbGlzZWNvbmRzU3RyKSwgbmVnYXRpdmVTZWNvbmRzKSwKICAgICAgfSwKICAgIF07CiAgfQoKICAvLyBUaGVzZSBhcmUgYSBsaXR0bGUgYnJhaW5kZWFkLiBFRFQgKnNob3VsZCogdGVsbCB1cyB0aGF0IHdlJ3JlIGluLCBzYXksIEFtZXJpY2EvTmV3X1lvcmsKICAvLyBhbmQgbm90IGp1c3QgdGhhdCB3ZSdyZSBpbiAtMjQwICpyaWdodCBub3cqLiBCdXQgc2luY2UgSSBkb24ndCB0aGluayB0aGVzZSBhcmUgdXNlZCB0aGF0IG9mdGVuCiAgLy8gSSdtIGp1c3QgZ29pbmcgdG8gaWdub3JlIHRoYXQKICBjb25zdCBvYnNPZmZzZXRzID0gewogICAgR01UOiAwLAogICAgRURUOiAtNCAqIDYwLAogICAgRVNUOiAtNSAqIDYwLAogICAgQ0RUOiAtNSAqIDYwLAogICAgQ1NUOiAtNiAqIDYwLAogICAgTURUOiAtNiAqIDYwLAogICAgTVNUOiAtNyAqIDYwLAogICAgUERUOiAtNyAqIDYwLAogICAgUFNUOiAtOCAqIDYwLAogIH07CgogIGZ1bmN0aW9uIGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKSB7CiAgICBjb25zdCByZXN1bHQgPSB7CiAgICAgIHllYXI6IHllYXJTdHIubGVuZ3RoID09PSAyID8gdW50cnVuY2F0ZVllYXIocGFyc2VJbnRlZ2VyKHllYXJTdHIpKSA6IHBhcnNlSW50ZWdlcih5ZWFyU3RyKSwKICAgICAgbW9udGg6IG1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpICsgMSwKICAgICAgZGF5OiBwYXJzZUludGVnZXIoZGF5U3RyKSwKICAgICAgaG91cjogcGFyc2VJbnRlZ2VyKGhvdXJTdHIpLAogICAgICBtaW51dGU6IHBhcnNlSW50ZWdlcihtaW51dGVTdHIpLAogICAgfTsKCiAgICBpZiAoc2Vjb25kU3RyKSByZXN1bHQuc2Vjb25kID0gcGFyc2VJbnRlZ2VyKHNlY29uZFN0cik7CiAgICBpZiAod2Vla2RheVN0cikgewogICAgICByZXN1bHQud2Vla2RheSA9CiAgICAgICAgd2Vla2RheVN0ci5sZW5ndGggPiAzCiAgICAgICAgICA/IHdlZWtkYXlzTG9uZy5pbmRleE9mKHdlZWtkYXlTdHIpICsgMQogICAgICAgICAgOiB3ZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0cikgKyAxOwogICAgfQoKICAgIHJldHVybiByZXN1bHQ7CiAgfQoKICAvLyBSRkMgMjgyMi81MzIyCiAgY29uc3QgcmZjMjgyMiA9CiAgICAvXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLFxzKT8oXGR7MSwyfSlccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylccyhcZHsyLDR9KVxzKFxkXGQpOihcZFxkKSg/OjooXGRcZCkpP1xzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXGRcZCkoXGRcZCkpKSQvOwoKICBmdW5jdGlvbiBleHRyYWN0UkZDMjgyMihtYXRjaCkgewogICAgY29uc3QgWwogICAgICAgICwKICAgICAgICB3ZWVrZGF5U3RyLAogICAgICAgIGRheVN0ciwKICAgICAgICBtb250aFN0ciwKICAgICAgICB5ZWFyU3RyLAogICAgICAgIGhvdXJTdHIsCiAgICAgICAgbWludXRlU3RyLAogICAgICAgIHNlY29uZFN0ciwKICAgICAgICBvYnNPZmZzZXQsCiAgICAgICAgbWlsT2Zmc2V0LAogICAgICAgIG9mZkhvdXJTdHIsCiAgICAgICAgb2ZmTWludXRlU3RyLAogICAgICBdID0gbWF0Y2gsCiAgICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTsKCiAgICBsZXQgb2Zmc2V0OwogICAgaWYgKG9ic09mZnNldCkgewogICAgICBvZmZzZXQgPSBvYnNPZmZzZXRzW29ic09mZnNldF07CiAgICB9IGVsc2UgaWYgKG1pbE9mZnNldCkgewogICAgICBvZmZzZXQgPSAwOwogICAgfSBlbHNlIHsKICAgICAgb2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cik7CiAgICB9CgogICAgcmV0dXJuIFtyZXN1bHQsIG5ldyBGaXhlZE9mZnNldFpvbmUob2Zmc2V0KV07CiAgfQoKICBmdW5jdGlvbiBwcmVwcm9jZXNzUkZDMjgyMihzKSB7CiAgICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZQogICAgcmV0dXJuIHMKICAgICAgLnJlcGxhY2UoL1woW14oKV0qXCl8W1xuXHRdL2csICIgIikKICAgICAgLnJlcGxhY2UoLyhcc1xzKykvZywgIiAiKQogICAgICAudHJpbSgpOwogIH0KCiAgLy8gaHR0cCBkYXRlCgogIGNvbnN0IHJmYzExMjMgPQogICAgICAvXihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLCAoXGRcZCkgKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSAoXGR7NH0pIChcZFxkKTooXGRcZCk6KFxkXGQpIEdNVCQvLAogICAgcmZjODUwID0KICAgICAgL14oTW9uZGF5fFR1ZXNkYXl8V2VkbmVzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXGRcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXGRcZCkgKFxkXGQpOihcZFxkKTooXGRcZCkgR01UJC8sCiAgICBhc2NpaSA9CiAgICAgIC9eKE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1bikgKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSAoIFxkfFxkXGQpIChcZFxkKTooXGRcZCk6KFxkXGQpIChcZHs0fSkkLzsKCiAgZnVuY3Rpb24gZXh0cmFjdFJGQzExMjNPcjg1MChtYXRjaCkgewogICAgY29uc3QgWywgd2Vla2RheVN0ciwgZGF5U3RyLCBtb250aFN0ciwgeWVhclN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHJdID0gbWF0Y2gsCiAgICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTsKICAgIHJldHVybiBbcmVzdWx0LCBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2VdOwogIH0KCiAgZnVuY3Rpb24gZXh0cmFjdEFTQ0lJKG1hdGNoKSB7CiAgICBjb25zdCBbLCB3ZWVrZGF5U3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0ciwgeWVhclN0cl0gPSBtYXRjaCwKICAgICAgcmVzdWx0ID0gZnJvbVN0cmluZ3Mod2Vla2RheVN0ciwgeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpOwogICAgcmV0dXJuIFtyZXN1bHQsIEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZV07CiAgfQoKICBjb25zdCBpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvWW1kUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7CiAgY29uc3QgaXNvV2Vla1dpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29XZWVrUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7CiAgY29uc3QgaXNvT3JkaW5hbFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29PcmRpbmFsUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7CiAgY29uc3QgaXNvVGltZUNvbWJpbmVkUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29UaW1lUmVnZXgpOwoKICBjb25zdCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKAogICAgZXh0cmFjdElTT1ltZCwKICAgIGV4dHJhY3RJU09UaW1lLAogICAgZXh0cmFjdElTT09mZnNldCwKICAgIGV4dHJhY3RJQU5BWm9uZQogICk7CiAgY29uc3QgZXh0cmFjdElTT1dlZWtUaW1lQW5kT2Zmc2V0ID0gY29tYmluZUV4dHJhY3RvcnMoCiAgICBleHRyYWN0SVNPV2Vla0RhdGEsCiAgICBleHRyYWN0SVNPVGltZSwKICAgIGV4dHJhY3RJU09PZmZzZXQsCiAgICBleHRyYWN0SUFOQVpvbmUKICApOwogIGNvbnN0IGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWUgPSBjb21iaW5lRXh0cmFjdG9ycygKICAgIGV4dHJhY3RJU09PcmRpbmFsRGF0YSwKICAgIGV4dHJhY3RJU09UaW1lLAogICAgZXh0cmFjdElTT09mZnNldCwKICAgIGV4dHJhY3RJQU5BWm9uZQogICk7CiAgY29uc3QgZXh0cmFjdElTT1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycygKICAgIGV4dHJhY3RJU09UaW1lLAogICAgZXh0cmFjdElTT09mZnNldCwKICAgIGV4dHJhY3RJQU5BWm9uZQogICk7CgogIC8qCiAgICogQHByaXZhdGUKICAgKi8KCiAgZnVuY3Rpb24gcGFyc2VJU09EYXRlKHMpIHsKICAgIHJldHVybiBwYXJzZSgKICAgICAgcywKICAgICAgW2lzb1ltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0XSwKICAgICAgW2lzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXRdLAogICAgICBbaXNvT3JkaW5hbFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWVdLAogICAgICBbaXNvVGltZUNvbWJpbmVkUmVnZXgsIGV4dHJhY3RJU09UaW1lQW5kT2Zmc2V0XQogICAgKTsKICB9CgogIGZ1bmN0aW9uIHBhcnNlUkZDMjgyMkRhdGUocykgewogICAgcmV0dXJuIHBhcnNlKHByZXByb2Nlc3NSRkMyODIyKHMpLCBbcmZjMjgyMiwgZXh0cmFjdFJGQzI4MjJdKTsKICB9CgogIGZ1bmN0aW9uIHBhcnNlSFRUUERhdGUocykgewogICAgcmV0dXJuIHBhcnNlKAogICAgICBzLAogICAgICBbcmZjMTEyMywgZXh0cmFjdFJGQzExMjNPcjg1MF0sCiAgICAgIFtyZmM4NTAsIGV4dHJhY3RSRkMxMTIzT3I4NTBdLAogICAgICBbYXNjaWksIGV4dHJhY3RBU0NJSV0KICAgICk7CiAgfQoKICBmdW5jdGlvbiBwYXJzZUlTT0R1cmF0aW9uKHMpIHsKICAgIHJldHVybiBwYXJzZShzLCBbaXNvRHVyYXRpb24sIGV4dHJhY3RJU09EdXJhdGlvbl0pOwogIH0KCiAgY29uc3QgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpOwoKICBmdW5jdGlvbiBwYXJzZUlTT1RpbWVPbmx5KHMpIHsKICAgIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pOwogIH0KCiAgY29uc3Qgc3FsWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFltZFJlZ2V4LCBzcWxUaW1lRXh0ZW5zaW9uUmVnZXgpOwogIGNvbnN0IHNxbFRpbWVDb21iaW5lZFJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoc3FsVGltZVJlZ2V4KTsKCiAgY29uc3QgZXh0cmFjdElTT1RpbWVPZmZzZXRBbmRJQU5BWm9uZSA9IGNvbWJpbmVFeHRyYWN0b3JzKAogICAgZXh0cmFjdElTT1RpbWUsCiAgICBleHRyYWN0SVNPT2Zmc2V0LAogICAgZXh0cmFjdElBTkFab25lCiAgKTsKCiAgZnVuY3Rpb24gcGFyc2VTUUwocykgewogICAgcmV0dXJuIHBhcnNlKAogICAgICBzLAogICAgICBbc3FsWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT1ltZFRpbWVBbmRPZmZzZXRdLAogICAgICBbc3FsVGltZUNvbWJpbmVkUmVnZXgsIGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmVdCiAgICApOwogIH0KCiAgY29uc3QgSU5WQUxJRCQyID0gIkludmFsaWQgRHVyYXRpb24iOwoKICAvLyB1bml0IGNvbnZlcnNpb24gY29uc3RhbnRzCiAgY29uc3QgbG93T3JkZXJNYXRyaXggPSB7CiAgICAgIHdlZWtzOiB7CiAgICAgICAgZGF5czogNywKICAgICAgICBob3VyczogNyAqIDI0LAogICAgICAgIG1pbnV0ZXM6IDcgKiAyNCAqIDYwLAogICAgICAgIHNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiA3ICogMjQgKiA2MCAqIDYwICogMTAwMCwKICAgICAgfSwKICAgICAgZGF5czogewogICAgICAgIGhvdXJzOiAyNCwKICAgICAgICBtaW51dGVzOiAyNCAqIDYwLAogICAgICAgIHNlY29uZHM6IDI0ICogNjAgKiA2MCwKICAgICAgICBtaWxsaXNlY29uZHM6IDI0ICogNjAgKiA2MCAqIDEwMDAsCiAgICAgIH0sCiAgICAgIGhvdXJzOiB7IG1pbnV0ZXM6IDYwLCBzZWNvbmRzOiA2MCAqIDYwLCBtaWxsaXNlY29uZHM6IDYwICogNjAgKiAxMDAwIH0sCiAgICAgIG1pbnV0ZXM6IHsgc2Vjb25kczogNjAsIG1pbGxpc2Vjb25kczogNjAgKiAxMDAwIH0sCiAgICAgIHNlY29uZHM6IHsgbWlsbGlzZWNvbmRzOiAxMDAwIH0sCiAgICB9LAogICAgY2FzdWFsTWF0cml4ID0gewogICAgICB5ZWFyczogewogICAgICAgIHF1YXJ0ZXJzOiA0LAogICAgICAgIG1vbnRoczogMTIsCiAgICAgICAgd2Vla3M6IDUyLAogICAgICAgIGRheXM6IDM2NSwKICAgICAgICBob3VyczogMzY1ICogMjQsCiAgICAgICAgbWludXRlczogMzY1ICogMjQgKiA2MCwKICAgICAgICBzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwLAogICAgICB9LAogICAgICBxdWFydGVyczogewogICAgICAgIG1vbnRoczogMywKICAgICAgICB3ZWVrczogMTMsCiAgICAgICAgZGF5czogOTEsCiAgICAgICAgaG91cnM6IDkxICogMjQsCiAgICAgICAgbWludXRlczogOTEgKiAyNCAqIDYwLAogICAgICAgIHNlY29uZHM6IDkxICogMjQgKiA2MCAqIDYwLAogICAgICAgIG1pbGxpc2Vjb25kczogOTEgKiAyNCAqIDYwICogNjAgKiAxMDAwLAogICAgICB9LAogICAgICBtb250aHM6IHsKICAgICAgICB3ZWVrczogNCwKICAgICAgICBkYXlzOiAzMCwKICAgICAgICBob3VyczogMzAgKiAyNCwKICAgICAgICBtaW51dGVzOiAzMCAqIDI0ICogNjAsCiAgICAgICAgc2Vjb25kczogMzAgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiAzMCAqIDI0ICogNjAgKiA2MCAqIDEwMDAsCiAgICAgIH0sCgogICAgICAuLi5sb3dPcmRlck1hdHJpeCwKICAgIH0sCiAgICBkYXlzSW5ZZWFyQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQwMCwKICAgIGRheXNJbk1vbnRoQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQ4MDAsCiAgICBhY2N1cmF0ZU1hdHJpeCA9IHsKICAgICAgeWVhcnM6IHsKICAgICAgICBxdWFydGVyczogNCwKICAgICAgICBtb250aHM6IDEyLAogICAgICAgIHdlZWtzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyA3LAogICAgICAgIGRheXM6IGRheXNJblllYXJBY2N1cmF0ZSwKICAgICAgICBob3VyczogZGF5c0luWWVhckFjY3VyYXRlICogMjQsCiAgICAgICAgbWludXRlczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCwKICAgICAgICBzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgKiAxMDAwLAogICAgICB9LAogICAgICBxdWFydGVyczogewogICAgICAgIG1vbnRoczogMywKICAgICAgICB3ZWVrczogZGF5c0luWWVhckFjY3VyYXRlIC8gMjgsCiAgICAgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlIC8gNCwKICAgICAgICBob3VyczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0KSAvIDQsCiAgICAgICAgbWludXRlczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjApIC8gNCwKICAgICAgICBzZWNvbmRzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwKSAvIDQsCiAgICAgICAgbWlsbGlzZWNvbmRzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCkgLyA0LAogICAgICB9LAogICAgICBtb250aHM6IHsKICAgICAgICB3ZWVrczogZGF5c0luTW9udGhBY2N1cmF0ZSAvIDcsCiAgICAgICAgZGF5czogZGF5c0luTW9udGhBY2N1cmF0ZSwKICAgICAgICBob3VyczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0LAogICAgICAgIG1pbnV0ZXM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwLAogICAgICAgIHNlY29uZHM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCwKICAgICAgfSwKICAgICAgLi4ubG93T3JkZXJNYXRyaXgsCiAgICB9OwoKICAvLyB1bml0cyBvcmRlcmVkIGJ5IHNpemUKICBjb25zdCBvcmRlcmVkVW5pdHMkMSA9IFsKICAgICJ5ZWFycyIsCiAgICAicXVhcnRlcnMiLAogICAgIm1vbnRocyIsCiAgICAid2Vla3MiLAogICAgImRheXMiLAogICAgImhvdXJzIiwKICAgICJtaW51dGVzIiwKICAgICJzZWNvbmRzIiwKICAgICJtaWxsaXNlY29uZHMiLAogIF07CgogIGNvbnN0IHJldmVyc2VVbml0cyA9IG9yZGVyZWRVbml0cyQxLnNsaWNlKDApLnJldmVyc2UoKTsKCiAgLy8gY2xvbmUgcmVhbGx5IG1lYW5zICJjcmVhdGUgYW5vdGhlciBpbnN0YW5jZSBqdXN0IGxpa2UgdGhpcyBvbmUsIGJ1dCB3aXRoIHRoZXNlIGNoYW5nZXMiCiAgZnVuY3Rpb24gY2xvbmUkMShkdXIsIGFsdHMsIGNsZWFyID0gZmFsc2UpIHsKICAgIC8vIGRlZXAgbWVyZ2UgZm9yIHZhbHMKICAgIGNvbnN0IGNvbmYgPSB7CiAgICAgIHZhbHVlczogY2xlYXIgPyBhbHRzLnZhbHVlcyA6IHsgLi4uZHVyLnZhbHVlcywgLi4uKGFsdHMudmFsdWVzIHx8IHt9KSB9LAogICAgICBsb2M6IGR1ci5sb2MuY2xvbmUoYWx0cy5sb2MpLAogICAgICBjb252ZXJzaW9uQWNjdXJhY3k6IGFsdHMuY29udmVyc2lvbkFjY3VyYWN5IHx8IGR1ci5jb252ZXJzaW9uQWNjdXJhY3ksCiAgICAgIG1hdHJpeDogYWx0cy5tYXRyaXggfHwgZHVyLm1hdHJpeCwKICAgIH07CiAgICByZXR1cm4gbmV3IER1cmF0aW9uKGNvbmYpOwogIH0KCiAgZnVuY3Rpb24gZHVyYXRpb25Ub01pbGxpcyhtYXRyaXgsIHZhbHMpIHsKICAgIGxldCBzdW0gPSB2YWxzLm1pbGxpc2Vjb25kcyA/PyAwOwogICAgZm9yIChjb25zdCB1bml0IG9mIHJldmVyc2VVbml0cy5zbGljZSgxKSkgewogICAgICBpZiAodmFsc1t1bml0XSkgewogICAgICAgIHN1bSArPSB2YWxzW3VuaXRdICogbWF0cml4W3VuaXRdWyJtaWxsaXNlY29uZHMiXTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHN1bTsKICB9CgogIC8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnMKICBmdW5jdGlvbiBub3JtYWxpemVWYWx1ZXMobWF0cml4LCB2YWxzKSB7CiAgICAvLyB0aGUgbG9naWMgYmVsb3cgYXNzdW1lcyB0aGUgb3ZlcmFsbCB2YWx1ZSBvZiB0aGUgZHVyYXRpb24gaXMgcG9zaXRpdmUKICAgIC8vIGlmIHRoaXMgaXMgbm90IHRoZSBjYXNlLCBmYWN0b3IgaXMgdXNlZCB0byBtYWtlIGl0IHNvCiAgICBjb25zdCBmYWN0b3IgPSBkdXJhdGlvblRvTWlsbGlzKG1hdHJpeCwgdmFscykgPCAwID8gLTEgOiAxOwoKICAgIG9yZGVyZWRVbml0cyQxLnJlZHVjZVJpZ2h0KChwcmV2aW91cywgY3VycmVudCkgPT4gewogICAgICBpZiAoIWlzVW5kZWZpbmVkKHZhbHNbY3VycmVudF0pKSB7CiAgICAgICAgaWYgKHByZXZpb3VzKSB7CiAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbCA9IHZhbHNbcHJldmlvdXNdICogZmFjdG9yOwogICAgICAgICAgY29uc3QgY29udiA9IG1hdHJpeFtjdXJyZW50XVtwcmV2aW91c107CgogICAgICAgICAgLy8gaWYgKHByZXZpb3VzVmFsIDwgMCk6CiAgICAgICAgICAvLyBsb3dlciBvcmRlciB1bml0IGlzIG5lZ2F0aXZlIChlLmcuIHsgeWVhcnM6IDIsIGRheXM6IC0yIH0pCiAgICAgICAgICAvLyBub3JtYWxpemUgdGhpcyBieSByZWR1Y2luZyB0aGUgaGlnaGVyIG9yZGVyIHVuaXQgYnkgdGhlIGFwcHJvcHJpYXRlIGFtb3VudAogICAgICAgICAgLy8gYW5kIGluY3JlYXNpbmcgdGhlIGxvd2VyIG9yZGVyIHVuaXQKICAgICAgICAgIC8vIHRoaXMgY2FuIG5ldmVyIG1ha2UgdGhlIGhpZ2hlciBvcmRlciB1bml0IG5lZ2F0aXZlLCBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gb25seSBvcGVyYXRlcwogICAgICAgICAgLy8gb24gcG9zaXRpdmUgZHVyYXRpb25zLCBzbyB0aGUgYW1vdW50IG9mIHRpbWUgcmVwcmVzZW50ZWQgYnkgdGhlIGxvd2VyIG9yZGVyIHVuaXQgY2Fubm90CiAgICAgICAgICAvLyBiZSBsYXJnZXIgdGhhbiB0aGUgaGlnaGVyIG9yZGVyIHVuaXQKICAgICAgICAgIC8vIGVsc2U6CiAgICAgICAgICAvLyBsb3dlciBvcmRlciB1bml0IGlzIHBvc2l0aXZlIChlLmcuIHsgeWVhcnM6IDIsIGRheXM6IDQ1MCB9IG9yIHsgeWVhcnM6IC0yLCBkYXlzOiA0NTAgfSkKICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSB3ZSBhdHRlbXB0IHRvIGNvbnZlcnQgYXMgbXVjaCBhcyBwb3NzaWJsZSBmcm9tIHRoZSBsb3dlciBvcmRlciB1bml0IGludG8KICAgICAgICAgIC8vIHRoZSBoaWdoZXIgb3JkZXIgb25lCiAgICAgICAgICAvLwogICAgICAgICAgLy8gTWF0aC5mbG9vciB0YWtlcyBjYXJlIG9mIGJvdGggb2YgdGhlc2UgY2FzZXMsIHJvdW5kaW5nIGF3YXkgZnJvbSAwCiAgICAgICAgICAvLyBpZiBwcmV2aW91c1ZhbCA8IDAgaXQgbWFrZXMgdGhlIGFic29sdXRlIHZhbHVlIGxhcmdlcgogICAgICAgICAgLy8gaWYgcHJldmlvdXNWYWwgPj0gaXQgbWFrZXMgdGhlIGFic29sdXRlIHZhbHVlIHNtYWxsZXIKICAgICAgICAgIGNvbnN0IHJvbGxVcCA9IE1hdGguZmxvb3IocHJldmlvdXNWYWwgLyBjb252KTsKICAgICAgICAgIHZhbHNbY3VycmVudF0gKz0gcm9sbFVwICogZmFjdG9yOwogICAgICAgICAgdmFsc1twcmV2aW91c10gLT0gcm9sbFVwICogY29udiAqIGZhY3RvcjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHByZXZpb3VzOwogICAgICB9CiAgICB9LCBudWxsKTsKCiAgICAvLyB0cnkgdG8gY29udmVydCBhbnkgZGVjaW1hbHMgaW50byBzbWFsbGVyIHVuaXRzIGlmIHBvc3NpYmxlCiAgICAvLyBmb3IgZXhhbXBsZSBmb3IgeyB5ZWFyczogMi41LCBkYXlzOiAwLCBzZWNvbmRzOiAwIH0gd2Ugd2FudCB0byBnZXQgeyB5ZWFyczogMiwgZGF5czogMTgyLCBob3VyczogMTIgfQogICAgb3JkZXJlZFVuaXRzJDEucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gewogICAgICBpZiAoIWlzVW5kZWZpbmVkKHZhbHNbY3VycmVudF0pKSB7CiAgICAgICAgaWYgKHByZXZpb3VzKSB7CiAgICAgICAgICBjb25zdCBmcmFjdGlvbiA9IHZhbHNbcHJldmlvdXNdICUgMTsKICAgICAgICAgIHZhbHNbcHJldmlvdXNdIC09IGZyYWN0aW9uOwogICAgICAgICAgdmFsc1tjdXJyZW50XSArPSBmcmFjdGlvbiAqIG1hdHJpeFtwcmV2aW91c11bY3VycmVudF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBjdXJyZW50OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBwcmV2aW91czsKICAgICAgfQogICAgfSwgbnVsbCk7CiAgfQoKICAvLyBSZW1vdmUgYWxsIHByb3BlcnRpZXMgd2l0aCBhIHZhbHVlIG9mIDAgZnJvbSBhbiBvYmplY3QKICBmdW5jdGlvbiByZW1vdmVaZXJvZXModmFscykgewogICAgY29uc3QgbmV3VmFscyA9IHt9OwogICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFscykpIHsKICAgICAgaWYgKHZhbHVlICE9PSAwKSB7CiAgICAgICAgbmV3VmFsc1trZXldID0gdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBuZXdWYWxzOwogIH0KCiAgLyoqCiAgICogQSBEdXJhdGlvbiBvYmplY3QgcmVwcmVzZW50cyBhIHBlcmlvZCBvZiB0aW1lLCBsaWtlICIyIG1vbnRocyIgb3IgIjEgZGF5LCAxIGhvdXIiLiBDb25jZXB0dWFsbHksIGl0J3MganVzdCBhIG1hcCBvZiB1bml0cyB0byB0aGVpciBxdWFudGl0aWVzLCBhY2NvbXBhbmllZCBieSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcsIHBhcnNpbmcsIGludGVycm9nYXRpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS4gVGhleSBjYW4gYmUgdXNlZCBvbiB0aGVpciBvd24gb3IgaW4gY29uanVuY3Rpb24gd2l0aCBvdGhlciBMdXhvbiB0eXBlczsgZm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIHtAbGluayBEYXRlVGltZSNwbHVzfSB0byBhZGQgYSBEdXJhdGlvbiBvYmplY3QgdG8gYSBEYXRlVGltZSwgcHJvZHVjaW5nIGFub3RoZXIgRGF0ZVRpbWUuCiAgICoKICAgKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIER1cmF0aW9uOgogICAqCiAgICogKiAqKkNyZWF0aW9uKiogVG8gY3JlYXRlIGEgRHVyYXRpb24sIHVzZSB7QGxpbmsgRHVyYXRpb24uZnJvbU1pbGxpc30sIHtAbGluayBEdXJhdGlvbi5mcm9tT2JqZWN0fSwgb3Ige0BsaW5rIER1cmF0aW9uLmZyb21JU099LgogICAqICogKipVbml0IHZhbHVlcyoqIFNlZSB0aGUge0BsaW5rIER1cmF0aW9uI3llYXJzfSwge0BsaW5rIER1cmF0aW9uI21vbnRoc30sIHtAbGluayBEdXJhdGlvbiN3ZWVrc30sIHtAbGluayBEdXJhdGlvbiNkYXlzfSwge0BsaW5rIER1cmF0aW9uI2hvdXJzfSwge0BsaW5rIER1cmF0aW9uI21pbnV0ZXN9LCB7QGxpbmsgRHVyYXRpb24jc2Vjb25kc30sIHtAbGluayBEdXJhdGlvbiNtaWxsaXNlY29uZHN9IGFjY2Vzc29ycy4KICAgKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSAge0BsaW5rIER1cmF0aW9uI2xvY2FsZX0gYW5kIHtAbGluayBEdXJhdGlvbiNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy4KICAgKiAqICoqVHJhbnNmb3JtYXRpb24qKiBUbyBjcmVhdGUgbmV3IER1cmF0aW9ucyBvdXQgb2Ygb2xkIG9uZXMgdXNlIHtAbGluayBEdXJhdGlvbiNwbHVzfSwge0BsaW5rIER1cmF0aW9uI21pbnVzfSwge0BsaW5rIER1cmF0aW9uI25vcm1hbGl6ZX0sIHtAbGluayBEdXJhdGlvbiNzZXR9LCB7QGxpbmsgRHVyYXRpb24jcmVjb25maWd1cmV9LCB7QGxpbmsgRHVyYXRpb24jc2hpZnRUb30sIGFuZCB7QGxpbmsgRHVyYXRpb24jbmVnYXRlfS4KICAgKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgRHVyYXRpb24gaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgRHVyYXRpb24jYXN9LCB7QGxpbmsgRHVyYXRpb24jdG9JU099LCB7QGxpbmsgRHVyYXRpb24jdG9Gb3JtYXR9LCBhbmQge0BsaW5rIER1cmF0aW9uI3RvSlNPTn0KICAgKgogICAqIFRoZXJlJ3MgYXJlIG1vcmUgbWV0aG9kcyBkb2N1bWVudGVkIGJlbG93LiBJbiBhZGRpdGlvbiwgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gc3VidGxlciB0b3BpY3MgbGlrZSBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgdmFsaWRpdHksIHNlZSB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbi4KICAgKi8KICBjbGFzcyBEdXJhdGlvbiB7CiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKi8KICAgIGNvbnN0cnVjdG9yKGNvbmZpZykgewogICAgICBjb25zdCBhY2N1cmF0ZSA9IGNvbmZpZy5jb252ZXJzaW9uQWNjdXJhY3kgPT09ICJsb25ndGVybSIgfHwgZmFsc2U7CiAgICAgIGxldCBtYXRyaXggPSBhY2N1cmF0ZSA/IGFjY3VyYXRlTWF0cml4IDogY2FzdWFsTWF0cml4OwoKICAgICAgaWYgKGNvbmZpZy5tYXRyaXgpIHsKICAgICAgICBtYXRyaXggPSBjb25maWcubWF0cml4OwogICAgICB9CgogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLnZhbHVlcyA9IGNvbmZpZy52YWx1ZXM7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMubG9jID0gY29uZmlnLmxvYyB8fCBMb2NhbGUuY3JlYXRlKCk7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMuY29udmVyc2lvbkFjY3VyYWN5ID0gYWNjdXJhdGUgPyAibG9uZ3Rlcm0iIDogImNhc3VhbCI7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMuaW52YWxpZCA9IGNvbmZpZy5pbnZhbGlkIHx8IG51bGw7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMubWF0cml4ID0gbWF0cml4OwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmlzTHV4b25EdXJhdGlvbiA9IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgRHVyYXRpb24gZnJvbSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMuCiAgICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQgb2YgbWlsbGlzZWNvbmRzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmcKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2UKICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBzdGF0aWMgZnJvbU1pbGxpcyhjb3VudCwgb3B0cykgewogICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbGxpc2Vjb25kczogY291bnQgfSwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXJzJyBhbmQgJ2hvdXJzJy4KICAgICAqIElmIHRoaXMgb2JqZWN0IGlzIGVtcHR5IHRoZW4gYSB6ZXJvIG1pbGxpc2Vjb25kcyBkdXJhdGlvbiBpcyByZXR1cm5lZC4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbQogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai55ZWFycwogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5xdWFydGVycwogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aHMKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla3MKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouZGF5cwogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3VycwogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taW51dGVzCiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnNlY29uZHMKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmRzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHM9W11dIC0gb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhpcyBEdXJhdGlvbgogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIHByZXNldCBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5tYXRyaXg9T2JqZWN0XSAtIHRoZSBjdXN0b20gY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgc3RhdGljIGZyb21PYmplY3Qob2JqLCBvcHRzID0ge30pIHsKICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKAogICAgICAgICAgYER1cmF0aW9uLmZyb21PYmplY3Q6IGFyZ3VtZW50IGV4cGVjdGVkIHRvIGJlIGFuIG9iamVjdCwgZ290ICR7CiAgICAgICAgICBvYmogPT09IG51bGwgPyAibnVsbCIgOiB0eXBlb2Ygb2JqCiAgICAgICAgfWAKICAgICAgICApOwogICAgICB9CgogICAgICByZXR1cm4gbmV3IER1cmF0aW9uKHsKICAgICAgICB2YWx1ZXM6IG5vcm1hbGl6ZU9iamVjdChvYmosIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLAogICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0cyksCiAgICAgICAgY29udmVyc2lvbkFjY3VyYWN5OiBvcHRzLmNvbnZlcnNpb25BY2N1cmFjeSwKICAgICAgICBtYXRyaXg6IG9wdHMubWF0cml4LAogICAgICB9KTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gRHVyYXRpb25MaWtlLgogICAgICoKICAgICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVtYmVyIHwgRHVyYXRpb259IGR1cmF0aW9uTGlrZQogICAgICogT25lIG9mOgogICAgICogLSBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXJzJyBhbmQgJ2hvdXJzJy4KICAgICAqIC0gbnVtYmVyIHJlcHJlc2VudGluZyBtaWxsaXNlY29uZHMKICAgICAqIC0gRHVyYXRpb24gaW5zdGFuY2UKICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBzdGF0aWMgZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbkxpa2UpIHsKICAgICAgaWYgKGlzTnVtYmVyKGR1cmF0aW9uTGlrZSkpIHsKICAgICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhkdXJhdGlvbkxpa2UpOwogICAgICB9IGVsc2UgaWYgKER1cmF0aW9uLmlzRHVyYXRpb24oZHVyYXRpb25MaWtlKSkgewogICAgICAgIHJldHVybiBkdXJhdGlvbkxpa2U7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uTGlrZSA9PT0gIm9iamVjdCIpIHsKICAgICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdChkdXJhdGlvbkxpa2UpOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigKICAgICAgICAgIGBVbmtub3duIGR1cmF0aW9uIGFyZ3VtZW50ICR7ZHVyYXRpb25MaWtlfSBvZiB0eXBlICR7dHlwZW9mIGR1cmF0aW9uTGlrZX1gCiAgICAgICAgKTsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSBkdXJhdGlvbiBzdHJpbmcuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2UKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZwogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIHByZXNldCBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5tYXRyaXg9T2JqZWN0XSAtIHRoZSBwcmVzZXQgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI0R1cmF0aW9ucwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUDNZNk0xVzREVDEySDMwTTVTJykudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDMsIG1vbnRoczogNiwgd2Vla3M6IDEsIGRheXM6IDQsIGhvdXJzOiAxMiwgbWludXRlczogMzAsIHNlY29uZHM6IDUgfQogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUFQyM0gnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjMgfQogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUDVZM00nKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogNSwgbW9udGhzOiAzIH0KICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzKSB7CiAgICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09EdXJhdGlvbih0ZXh0KTsKICAgICAgaWYgKHBhcnNlZCkgewogICAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoInVucGFyc2FibGUiLCBgdGhlIGlucHV0ICIke3RleHR9IiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSB0aW1lIHN0cmluZy4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGV4dCB0byBwYXJzZQogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgcHJlc2V0IGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm1hdHJpeD1PYmplY3RdIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lcwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExOjIyOjMzLjQ0NCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMjIsIHNlY29uZHM6IDMzLCBtaWxsaXNlY29uZHM6IDQ0NCB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTE6MDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfQogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJ1QxMTowMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTEwMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnVDExMDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tSVNPVGltZSh0ZXh0LCBvcHRzKSB7CiAgICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09UaW1lT25seSh0ZXh0KTsKICAgICAgaWYgKHBhcnNlZCkgewogICAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoInVucGFyc2FibGUiLCBgdGhlIGlucHV0ICIke3RleHR9IiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGFuIGludmFsaWQgRHVyYXRpb24uCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBkYXRldGltZSBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50CiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uCiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHsKICAgICAgaWYgKCFyZWFzb24pIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRHVyYXRpb24gaXMgaW52YWxpZCIpOwogICAgICB9CgogICAgICBjb25zdCBpbnZhbGlkID0gcmVhc29uIGluc3RhbmNlb2YgSW52YWxpZCA/IHJlYXNvbiA6IG5ldyBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pOwoKICAgICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWREdXJhdGlvbkVycm9yKGludmFsaWQpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBuZXcgRHVyYXRpb24oeyBpbnZhbGlkIH0pOwogICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICovCiAgICBzdGF0aWMgbm9ybWFsaXplVW5pdCh1bml0KSB7CiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7CiAgICAgICAgeWVhcjogInllYXJzIiwKICAgICAgICB5ZWFyczogInllYXJzIiwKICAgICAgICBxdWFydGVyOiAicXVhcnRlcnMiLAogICAgICAgIHF1YXJ0ZXJzOiAicXVhcnRlcnMiLAogICAgICAgIG1vbnRoOiAibW9udGhzIiwKICAgICAgICBtb250aHM6ICJtb250aHMiLAogICAgICAgIHdlZWs6ICJ3ZWVrcyIsCiAgICAgICAgd2Vla3M6ICJ3ZWVrcyIsCiAgICAgICAgZGF5OiAiZGF5cyIsCiAgICAgICAgZGF5czogImRheXMiLAogICAgICAgIGhvdXI6ICJob3VycyIsCiAgICAgICAgaG91cnM6ICJob3VycyIsCiAgICAgICAgbWludXRlOiAibWludXRlcyIsCiAgICAgICAgbWludXRlczogIm1pbnV0ZXMiLAogICAgICAgIHNlY29uZDogInNlY29uZHMiLAogICAgICAgIHNlY29uZHM6ICJzZWNvbmRzIiwKICAgICAgICBtaWxsaXNlY29uZDogIm1pbGxpc2Vjb25kcyIsCiAgICAgICAgbWlsbGlzZWNvbmRzOiAibWlsbGlzZWNvbmRzIiwKICAgICAgfVt1bml0ID8gdW5pdC50b0xvd2VyQ2FzZSgpIDogdW5pdF07CgogICAgICBpZiAoIW5vcm1hbGl6ZWQpIHRocm93IG5ldyBJbnZhbGlkVW5pdEVycm9yKHVuaXQpOwoKICAgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYSBEdXJhdGlvbi4gV29ya3MgYWNyb3NzIGNvbnRleHQgYm91bmRhcmllcwogICAgICogQHBhcmFtIHtvYmplY3R9IG8KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIHN0YXRpYyBpc0R1cmF0aW9uKG8pIHsKICAgICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkR1cmF0aW9uKSB8fCBmYWxzZTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCAgdGhlIGxvY2FsZSBvZiBhIER1cmF0aW9uLCBzdWNoICdlbi1HQicKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBsb2NhbGUoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5sb2NhbGUgOiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBudW1iZXJpbmcgc3lzdGVtIG9mIGEgRHVyYXRpb24sIHN1Y2ggJ2JlbmcnLiBUaGUgbnVtYmVyaW5nIHN5c3RlbSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRHVyYXRpb24KICAgICAqCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgbnVtYmVyaW5nU3lzdGVtKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtIDogbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy4gWW91IG1heSB1c2UgdGhlc2UgdG9rZW5zOgogICAgICogKiBgU2AgZm9yIG1pbGxpc2Vjb25kcwogICAgICogKiBgc2AgZm9yIHNlY29uZHMKICAgICAqICogYG1gIGZvciBtaW51dGVzCiAgICAgKiAqIGBoYCBmb3IgaG91cnMKICAgICAqICogYGRgIGZvciBkYXlzCiAgICAgKiAqIGB3YCBmb3Igd2Vla3MKICAgICAqICogYE1gIGZvciBtb250aHMKICAgICAqICogYHlgIGZvciB5ZWFycwogICAgICogTm90ZXM6CiAgICAgKiAqIEFkZCBwYWRkaW5nIGJ5IHJlcGVhdGluZyB0aGUgdG9rZW4sIGUuZy4gInl5IiBwYWRzIHRoZSB5ZWFycyB0byB0d28gZGlnaXRzLCAiaGhoaCIgcGFkcyB0aGUgaG91cnMgb3V0IHRvIGZvdXIgZGlnaXRzCiAgICAgKiAqIFRva2VucyBjYW4gYmUgZXNjYXBlZCBieSB3cmFwcGluZyB3aXRoIHNpbmdsZSBxdW90ZXMuCiAgICAgKiAqIFRoZSBkdXJhdGlvbiB3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgc2V0IG9mIHVuaXRzIGluIHRoZSBmb3JtYXQgc3RyaW5nIHVzaW5nIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSBhbmQgdGhlIER1cmF0aW9ucydzIGNvbnZlcnNpb24gYWNjdXJhY3kgc2V0dGluZy4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHN0cmluZwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmZsb29yPXRydWVdIC0gZmxvb3IgbnVtZXJpY2FsIHZhbHVlcwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KCJ5IGQgcyIpIC8vPT4gIjEgNiAyIgogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KCJ5eSBkZCBzc3MiKSAvLz0+ICIwMSAwNiAwMDIiCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoIk0gUyIpIC8vPT4gIjEyIDUxODQwMjAwMCIKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9Gb3JtYXQoZm10LCBvcHRzID0ge30pIHsKICAgICAgLy8gcmV2ZXJzZS1jb21wYXQgc2luY2UgMS4yOyB3ZSBhbHdheXMgcm91bmQgZG93biBub3csIG5ldmVyIHVwLCBhbmQgd2UgZG8gaXQgYnkgZGVmYXVsdAogICAgICBjb25zdCBmbXRPcHRzID0gewogICAgICAgIC4uLm9wdHMsCiAgICAgICAgZmxvb3I6IG9wdHMucm91bmQgIT09IGZhbHNlICYmIG9wdHMuZmxvb3IgIT09IGZhbHNlLAogICAgICB9OwogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkCiAgICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLCBmbXRPcHRzKS5mb3JtYXREdXJhdGlvbkZyb21TdHJpbmcodGhpcywgZm10KQogICAgICAgIDogSU5WQUxJRCQyOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIER1cmF0aW9uIHdpdGggYWxsIHVuaXRzIGluY2x1ZGVkLgogICAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LgogICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9JbnRsL051bWJlckZvcm1hdAogICAgICogQHBhcmFtIG9wdHMgLSBPbiBvcHRpb24gb2JqZWN0IHRvIG92ZXJyaWRlIHRoZSBmb3JtYXR0aW5nLiBBY2NlcHRzIHRoZSBzYW1lIGtleXMgYXMgdGhlIG9wdGlvbnMgcGFyYW1ldGVyIG9mIHRoZSBuYXRpdmUgYEludC5OdW1iZXJGb3JtYXRgIGNvbnN0cnVjdG9yLCBhcyB3ZWxsIGFzIGBsaXN0U3R5bGVgLgogICAgICogQGV4YW1wbGUKICAgICAqIGBgYGpzCiAgICAgKiB2YXIgZHVyID0gRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEsIGhvdXJzOiA1LCBtaW51dGVzOiA2IH0pCiAgICAgKiBkdXIudG9IdW1hbigpIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCA2IG1pbnV0ZXMnCiAgICAgKiBkdXIudG9IdW1hbih7IGxpc3RTdHlsZTogImxvbmciIH0pIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCBhbmQgNiBtaW51dGVzJwogICAgICogZHVyLnRvSHVtYW4oeyB1bml0RGlzcGxheTogInNob3J0IiB9KSAvLz0+ICcxIGRheSwgNSBociwgNiBtaW4nCiAgICAgKiBgYGAKICAgICAqLwogICAgdG9IdW1hbihvcHRzID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEJDI7CgogICAgICBjb25zdCBsID0gb3JkZXJlZFVuaXRzJDEKICAgICAgICAubWFwKCh1bml0KSA9PiB7CiAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLnZhbHVlc1t1bml0XTsKICAgICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWwpKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRoaXMubG9jCiAgICAgICAgICAgIC5udW1iZXJGb3JtYXR0ZXIoeyBzdHlsZTogInVuaXQiLCB1bml0RGlzcGxheTogImxvbmciLCAuLi5vcHRzLCB1bml0OiB1bml0LnNsaWNlKDAsIC0xKSB9KQogICAgICAgICAgICAuZm9ybWF0KHZhbCk7CiAgICAgICAgfSkKICAgICAgICAuZmlsdGVyKChuKSA9PiBuKTsKCiAgICAgIHJldHVybiB0aGlzLmxvYwogICAgICAgIC5saXN0Rm9ybWF0dGVyKHsgdHlwZTogImNvbmp1bmN0aW9uIiwgc3R5bGU6IG9wdHMubGlzdFN0eWxlIHx8ICJuYXJyb3ciLCAuLi5vcHRzIH0pCiAgICAgICAgLmZvcm1hdChsKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoaXMgRHVyYXRpb24ncyB2YWx1ZXMuCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfQogICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICovCiAgICB0b09iamVjdCgpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTsKICAgICAgcmV0dXJuIHsgLi4udGhpcy52YWx1ZXMgfTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnMKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMywgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQM1lUNDVTJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNCwgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQNE1UNDVTJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNSB9KS50b0lTTygpIC8vPT4gJ1A1TScKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiA1IH0pLnRvSVNPKCkgLy89PiAnUFQ1TScKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IDYgfSkudG9JU08oKSAvLz0+ICdQVDAuMDA2UycKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU08oKSB7CiAgICAgIC8vIHdlIGNvdWxkIHVzZSB0aGUgZm9ybWF0dGVyLCBidXQgdGhpcyBpcyBhbiBlYXNpZXIgd2F5IHRvIGdldCB0aGUgbWluaW11bSBzdHJpbmcKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwoKICAgICAgbGV0IHMgPSAiUCI7CiAgICAgIGlmICh0aGlzLnllYXJzICE9PSAwKSBzICs9IHRoaXMueWVhcnMgKyAiWSI7CiAgICAgIGlmICh0aGlzLm1vbnRocyAhPT0gMCB8fCB0aGlzLnF1YXJ0ZXJzICE9PSAwKSBzICs9IHRoaXMubW9udGhzICsgdGhpcy5xdWFydGVycyAqIDMgKyAiTSI7CiAgICAgIGlmICh0aGlzLndlZWtzICE9PSAwKSBzICs9IHRoaXMud2Vla3MgKyAiVyI7CiAgICAgIGlmICh0aGlzLmRheXMgIT09IDApIHMgKz0gdGhpcy5kYXlzICsgIkQiOwogICAgICBpZiAodGhpcy5ob3VycyAhPT0gMCB8fCB0aGlzLm1pbnV0ZXMgIT09IDAgfHwgdGhpcy5zZWNvbmRzICE9PSAwIHx8IHRoaXMubWlsbGlzZWNvbmRzICE9PSAwKQogICAgICAgIHMgKz0gIlQiOwogICAgICBpZiAodGhpcy5ob3VycyAhPT0gMCkgcyArPSB0aGlzLmhvdXJzICsgIkgiOwogICAgICBpZiAodGhpcy5taW51dGVzICE9PSAwKSBzICs9IHRoaXMubWludXRlcyArICJNIjsKICAgICAgaWYgKHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMCkKICAgICAgICAvLyB0aGlzIHdpbGwgaGFuZGxlICJmbG9hdGluZyBwb2ludCBtYWRuZXNzIiBieSByZW1vdmluZyBleHRyYSBkZWNpbWFsIHBsYWNlcwogICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU4ODAwNC9pcy1mbG9hdGluZy1wb2ludC1tYXRoLWJyb2tlbgogICAgICAgIHMgKz0gcm91bmRUbyh0aGlzLnNlY29uZHMgKyB0aGlzLm1pbGxpc2Vjb25kcyAvIDEwMDAsIDMpICsgIlMiOwogICAgICBpZiAocyA9PT0gIlAiKSBzICs9ICJUMFMiOwogICAgICByZXR1cm4gczsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLCBmb3JtYXR0ZWQgYXMgYSB0aW1lIG9mIGRheS4KICAgICAqIE5vdGUgdGhhdCB0aGlzIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlIGR1cmF0aW9uIGlzIGludmFsaWQsIG5lZ2F0aXZlLCBvciBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gMjQgaG91cnMuCiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMAogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4CiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXQKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKCkgLy89PiAnMTE6MDA6MDAuMDAwJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc01pbGxpc2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcxMTowMDowMCcKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NTZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzExOjAwJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QxMTowMDowMC4wMDAnCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcxMTAwMDAuMDAwJwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0lTT1RpbWUob3B0cyA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDsKCiAgICAgIGNvbnN0IG1pbGxpcyA9IHRoaXMudG9NaWxsaXMoKTsKICAgICAgaWYgKG1pbGxpcyA8IDAgfHwgbWlsbGlzID49IDg2NDAwMDAwKSByZXR1cm4gbnVsbDsKCiAgICAgIG9wdHMgPSB7CiAgICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHM6IGZhbHNlLAogICAgICAgIHN1cHByZXNzU2Vjb25kczogZmFsc2UsCiAgICAgICAgaW5jbHVkZVByZWZpeDogZmFsc2UsCiAgICAgICAgZm9ybWF0OiAiZXh0ZW5kZWQiLAogICAgICAgIC4uLm9wdHMsCiAgICAgICAgaW5jbHVkZU9mZnNldDogZmFsc2UsCiAgICAgIH07CgogICAgICBjb25zdCBkYXRlVGltZSA9IERhdGVUaW1lLmZyb21NaWxsaXMobWlsbGlzLCB7IHpvbmU6ICJVVEMiIH0pOwogICAgICByZXR1cm4gZGF0ZVRpbWUudG9JU09UaW1lKG9wdHMpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSlNPTi4KICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9KU09OKCkgewogICAgICByZXR1cm4gdGhpcy50b0lTTygpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gZGVidWdnaW5nLgogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b1N0cmluZygpIHsKICAgICAgcmV0dXJuIHRoaXMudG9JU08oKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gbWlsbGlzZWNvbmRzIHZhbHVlIG9mIHRoaXMgRHVyYXRpb24uCiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIHRvTWlsbGlzKCkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIE5hTjsKCiAgICAgIHJldHVybiBkdXJhdGlvblRvTWlsbGlzKHRoaXMubWF0cml4LCB0aGlzLnZhbHVlcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIG1pbGxpc2Vjb25kcyB2YWx1ZSBvZiB0aGlzIER1cmF0aW9uLiBBbGlhcyBvZiB7QGxpbmsgdG9NaWxsaXN9CiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIHZhbHVlT2YoKSB7CiAgICAgIHJldHVybiB0aGlzLnRvTWlsbGlzKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBNYWtlIHRoaXMgRHVyYXRpb24gbG9uZ2VyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBwbHVzKGR1cmF0aW9uKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCiAgICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLAogICAgICAgIHJlc3VsdCA9IHt9OwoKICAgICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cyQxKSB7CiAgICAgICAgaWYgKGhhc093blByb3BlcnR5KGR1ci52YWx1ZXMsIGspIHx8IGhhc093blByb3BlcnR5KHRoaXMudmFsdWVzLCBrKSkgewogICAgICAgICAgcmVzdWx0W2tdID0gZHVyLmdldChrKSArIHRoaXMuZ2V0KGspOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIGNsb25lJDEodGhpcywgeyB2YWx1ZXM6IHJlc3VsdCB9LCB0cnVlKTsKICAgIH0KCiAgICAvKioKICAgICAqIE1ha2UgdGhpcyBEdXJhdGlvbiBzaG9ydGVyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIHN1YnRyYWN0LiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIG1pbnVzKGR1cmF0aW9uKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCiAgICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pOwogICAgICByZXR1cm4gdGhpcy5wbHVzKGR1ci5uZWdhdGUoKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTY2FsZSB0aGlzIER1cmF0aW9uIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggdW5pdC4gQXJpdHkgaXMgMSBvciAyOiB0aGUgdmFsdWUgb2YgdGhlIHVuaXQgYW5kLCBvcHRpb25hbGx5LCB0aGUgdW5pdCBuYW1lLiBNdXN0IHJldHVybiBhIG51bWJlci4KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSwgbWludXRlczogMzAgfSkubWFwVW5pdHMoeCA9PiB4ICogMikgLy89PiB7IGhvdXJzOiAyLCBtaW51dGVzOiA2MCB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKCh4LCB1KSA9PiB1ID09PSAiaG91cnMiID8geCAqIDIgOiB4KSAvLz0+IHsgaG91cnM6IDIsIG1pbnV0ZXM6IDMwIH0KICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBtYXBVbml0cyhmbikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IHJlc3VsdCA9IHt9OwogICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXModGhpcy52YWx1ZXMpKSB7CiAgICAgICAgcmVzdWx0W2tdID0gYXNOdW1iZXIoZm4odGhpcy52YWx1ZXNba10sIGspKTsKICAgICAgfQogICAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7IHZhbHVlczogcmVzdWx0IH0sIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LgogICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5JwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDIsIGRheXM6IDN9KS5nZXQoJ3llYXJzJykgLy89PiAyCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnbW9udGhzJykgLy89PiAwCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnZGF5cycpIC8vPT4gMwogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBnZXQodW5pdCkgewogICAgICByZXR1cm4gdGhpc1tEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpXTsKICAgIH0KCiAgICAvKioKICAgICAqICJTZXQiIHRoZSB2YWx1ZXMgb2Ygc3BlY2lmaWVkIHVuaXRzLiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVycwogICAgICogQGV4YW1wbGUgZHVyLnNldCh7IHllYXJzOiAyMDE3IH0pCiAgICAgKiBAZXhhbXBsZSBkdXIuc2V0KHsgaG91cnM6IDgsIG1pbnV0ZXM6IDMwIH0pCiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgc2V0KHZhbHVlcykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgogICAgICBjb25zdCBtaXhlZCA9IHsgLi4udGhpcy52YWx1ZXMsIC4uLm5vcm1hbGl6ZU9iamVjdCh2YWx1ZXMsIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpIH07CiAgICAgIHJldHVybiBjbG9uZSQxKHRoaXMsIHsgdmFsdWVzOiBtaXhlZCB9KTsKICAgIH0KCiAgICAvKioKICAgICAqICJTZXQiIHRoZSBsb2NhbGUgYW5kL29yIG51bWJlcmluZ1N5c3RlbS4gIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBleGFtcGxlIGR1ci5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHJlY29uZmlndXJlKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNvbnZlcnNpb25BY2N1cmFjeSwgbWF0cml4IH0gPSB7fSkgewogICAgICBjb25zdCBsb2MgPSB0aGlzLmxvYy5jbG9uZSh7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtIH0pOwogICAgICBjb25zdCBvcHRzID0geyBsb2MsIG1hdHJpeCwgY29udmVyc2lvbkFjY3VyYWN5IH07CiAgICAgIHJldHVybiBjbG9uZSQxKHRoaXMsIG9wdHMpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGR1cmF0aW9uIGluIHRoZSBzcGVjaWZpZWQgdW5pdC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gYSB1bml0IHN1Y2ggYXMgJ21pbnV0ZXMnIG9yICdkYXlzJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDF9KS5hcygnZGF5cycpIC8vPT4gMzY1CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMX0pLmFzKCdtb250aHMnKSAvLz0+IDEyCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHtob3VyczogNjB9KS5hcygnZGF5cycpIC8vPT4gMi41CiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIGFzKHVuaXQpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuc2hpZnRUbyh1bml0KS5nZXQodW5pdCkgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZWR1Y2UgdGhpcyBEdXJhdGlvbiB0byBpdHMgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uIGluIGl0cyBjdXJyZW50IHVuaXRzLgogICAgICogQXNzdW1pbmcgdGhlIG92ZXJhbGwgdmFsdWUgb2YgdGhlIER1cmF0aW9uIGlzIHBvc2l0aXZlLCB0aGlzIG1lYW5zOgogICAgICogLSBleGNlc3NpdmUgdmFsdWVzIGZvciBsb3dlci1vcmRlciB1bml0cyBhcmUgY29udmVydGVkIHRvIGhpZ2hlci1vcmRlciB1bml0cyAoaWYgcG9zc2libGUsIHNlZSBmaXJzdCBhbmQgc2Vjb25kIGV4YW1wbGUpCiAgICAgKiAtIG5lZ2F0aXZlIGxvd2VyLW9yZGVyIHVuaXRzIGFyZSBjb252ZXJ0ZWQgdG8gaGlnaGVyIG9yZGVyIHVuaXRzICh0aGVyZSBtdXN0IGJlIHN1Y2ggYSBoaWdoZXIgb3JkZXIgdW5pdCwgb3RoZXJ3aXNlCiAgICAgKiAgIHRoZSBvdmVyYWxsIHZhbHVlIHdvdWxkIGJlIG5lZ2F0aXZlLCBzZWUgc2Vjb25kIGV4YW1wbGUpCiAgICAgKiAtIGZyYWN0aW9uYWwgdmFsdWVzIGZvciBoaWdoZXItb3JkZXIgdW5pdHMgYXJlIGNvbnZlcnRlZCB0byBsb3dlci1vcmRlciB1bml0cyAoaWYgcG9zc2libGUsIHNlZSBmb3VydGggZXhhbXBsZSkKICAgICAqCiAgICAgKiBJZiB0aGUgb3ZlcmFsbCB2YWx1ZSBpcyBuZWdhdGl2ZSwgdGhlIHJlc3VsdCBvZiB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIGB0aGlzLm5lZ2F0ZSgpLm5vcm1hbGl6ZSgpLm5lZ2F0ZSgpYC4KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMiwgZGF5czogNTAwMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMTUsIGRheXM6IDI1NSB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogNTAwMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyBkYXlzOiA1MDAwIH0KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTIsIG1pbnV0ZXM6IC00NSB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDE1IH0KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMi41LCBkYXlzOiAwLCBob3VyczogMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMiwgZGF5czogMTgyLCBob3VyczogMTIgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIG5vcm1hbGl6ZSgpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwogICAgICBjb25zdCB2YWxzID0gdGhpcy50b09iamVjdCgpOwogICAgICBub3JtYWxpemVWYWx1ZXModGhpcy5tYXRyaXgsIHZhbHMpOwogICAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7IHZhbHVlczogdmFscyB9LCB0cnVlKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJlc2NhbGUgdW5pdHMgdG8gaXRzIGxhcmdlc3QgcmVwcmVzZW50YXRpb24KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IDkwMDAwIH0pLnJlc2NhbGUoKS50b09iamVjdCgpIC8vPT4geyBtaW51dGVzOiAxLCBzZWNvbmRzOiAzMCB9CiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgcmVzY2FsZSgpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwogICAgICBjb25zdCB2YWxzID0gcmVtb3ZlWmVyb2VzKHRoaXMubm9ybWFsaXplKCkuc2hpZnRUb0FsbCgpLnRvT2JqZWN0KCkpOwogICAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7IHZhbHVlczogdmFscyB9LCB0cnVlKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnZlcnQgdGhpcyBEdXJhdGlvbiBpbnRvIGl0cyByZXByZXNlbnRhdGlvbiBpbiBhIGRpZmZlcmVudCBzZXQgb2YgdW5pdHMuCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIHNlY29uZHM6IDMwIH0pLnNoaWZ0VG8oJ21pbnV0ZXMnLCAnbWlsbGlzZWNvbmRzJykudG9PYmplY3QoKSAvLz0+IHsgbWludXRlczogNjAsIG1pbGxpc2Vjb25kczogMzAwMDAgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHNoaWZ0VG8oLi4udW5pdHMpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoKICAgICAgaWYgKHVuaXRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CgogICAgICB1bml0cyA9IHVuaXRzLm1hcCgodSkgPT4gRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1KSk7CgogICAgICBjb25zdCBidWlsdCA9IHt9LAogICAgICAgIGFjY3VtdWxhdGVkID0ge30sCiAgICAgICAgdmFscyA9IHRoaXMudG9PYmplY3QoKTsKICAgICAgbGV0IGxhc3RVbml0OwoKICAgICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cyQxKSB7CiAgICAgICAgaWYgKHVuaXRzLmluZGV4T2YoaykgPj0gMCkgewogICAgICAgICAgbGFzdFVuaXQgPSBrOwoKICAgICAgICAgIGxldCBvd24gPSAwOwoKICAgICAgICAgIC8vIGFueXRoaW5nIHdlIGhhdmVuJ3QgYm9pbGVkIGRvd24geWV0IHNob3VsZCBnZXQgYm9pbGVkIHRvIHRoaXMgdW5pdAogICAgICAgICAgZm9yIChjb25zdCBhayBpbiBhY2N1bXVsYXRlZCkgewogICAgICAgICAgICBvd24gKz0gdGhpcy5tYXRyaXhbYWtdW2tdICogYWNjdW11bGF0ZWRbYWtdOwogICAgICAgICAgICBhY2N1bXVsYXRlZFtha10gPSAwOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIHBsdXMgYW55dGhpbmcgdGhhdCdzIGFscmVhZHkgaW4gdGhpcyB1bml0CiAgICAgICAgICBpZiAoaXNOdW1iZXIodmFsc1trXSkpIHsKICAgICAgICAgICAgb3duICs9IHZhbHNba107CiAgICAgICAgICB9CgogICAgICAgICAgLy8gb25seSBrZWVwIHRoZSBpbnRlZ2VyIHBhcnQgZm9yIG5vdyBpbiB0aGUgaG9wZXMgb2YgcHV0dGluZyBhbnkgZGVjaW1hbCBwYXJ0CiAgICAgICAgICAvLyBpbnRvIGEgc21hbGxlciB1bml0IGxhdGVyCiAgICAgICAgICBjb25zdCBpID0gTWF0aC50cnVuYyhvd24pOwogICAgICAgICAgYnVpbHRba10gPSBpOwogICAgICAgICAgYWNjdW11bGF0ZWRba10gPSAob3duICogMTAwMCAtIGkgKiAxMDAwKSAvIDEwMDA7CgogICAgICAgICAgLy8gb3RoZXJ3aXNlLCBrZWVwIGl0IGluIHRoZSB3aW5ncyB0byBib2lsIGl0IGxhdGVyCiAgICAgICAgfSBlbHNlIGlmIChpc051bWJlcih2YWxzW2tdKSkgewogICAgICAgICAgYWNjdW11bGF0ZWRba10gPSB2YWxzW2tdOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gYW55dGhpbmcgbGVmdG92ZXIgYmVjb21lcyB0aGUgZGVjaW1hbCBmb3IgdGhlIGxhc3QgdW5pdAogICAgICAvLyBsYXN0VW5pdCBtdXN0IGJlIGRlZmluZWQgc2luY2UgdW5pdHMgaXMgbm90IGVtcHR5CiAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjY3VtdWxhdGVkKSB7CiAgICAgICAgaWYgKGFjY3VtdWxhdGVkW2tleV0gIT09IDApIHsKICAgICAgICAgIGJ1aWx0W2xhc3RVbml0XSArPQogICAgICAgICAgICBrZXkgPT09IGxhc3RVbml0ID8gYWNjdW11bGF0ZWRba2V5XSA6IGFjY3VtdWxhdGVkW2tleV0gLyB0aGlzLm1hdHJpeFtsYXN0VW5pdF1ba2V5XTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIG5vcm1hbGl6ZVZhbHVlcyh0aGlzLm1hdHJpeCwgYnVpbHQpOwogICAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7IHZhbHVlczogYnVpbHQgfSwgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTaGlmdCB0aGlzIER1cmF0aW9uIHRvIGFsbCBhdmFpbGFibGUgdW5pdHMuCiAgICAgKiBTYW1lIGFzIHNoaWZ0VG8oInllYXJzIiwgIm1vbnRocyIsICJ3ZWVrcyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyIsICJtaWxsaXNlY29uZHMiKQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHNoaWZ0VG9BbGwoKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKICAgICAgcmV0dXJuIHRoaXMuc2hpZnRUbygKICAgICAgICAieWVhcnMiLAogICAgICAgICJtb250aHMiLAogICAgICAgICJ3ZWVrcyIsCiAgICAgICAgImRheXMiLAogICAgICAgICJob3VycyIsCiAgICAgICAgIm1pbnV0ZXMiLAogICAgICAgICJzZWNvbmRzIiwKICAgICAgICAibWlsbGlzZWNvbmRzIgogICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSBuZWdhdGl2ZSBvZiB0aGlzIER1cmF0aW9uLgogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5uZWdhdGUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogLTEsIHNlY29uZHM6IC0zMCB9CiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgbmVnYXRlKCkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IG5lZ2F0ZWQgPSB7fTsKICAgICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkgewogICAgICAgIG5lZ2F0ZWRba10gPSB0aGlzLnZhbHVlc1trXSA9PT0gMCA/IDAgOiAtdGhpcy52YWx1ZXNba107CiAgICAgIH0KICAgICAgcmV0dXJuIGNsb25lJDEodGhpcywgeyB2YWx1ZXM6IG5lZ2F0ZWQgfSwgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHllYXJzLgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IHllYXJzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMueWVhcnMgfHwgMCA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcXVhcnRlcnMuCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgcXVhcnRlcnMoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5xdWFydGVycyB8fCAwIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBtb250aHMuCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgbW9udGhzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMubW9udGhzIHx8IDAgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHdlZWtzCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgd2Vla3MoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy53ZWVrcyB8fCAwIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkYXlzLgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IGRheXMoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5kYXlzIHx8IDAgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGhvdXJzLgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IGhvdXJzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuaG91cnMgfHwgMCA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbWludXRlcy4KICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCBtaW51dGVzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMubWludXRlcyB8fCAwIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBzZWNvbmRzLgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBnZXQgc2Vjb25kcygpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnNlY29uZHMgfHwgMCA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbWlsbGlzZWNvbmRzLgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBnZXQgbWlsbGlzZWNvbmRzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMubWlsbGlzZWNvbmRzIHx8IDAgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIER1cmF0aW9uIGlzIGludmFsaWQuIEludmFsaWQgZHVyYXRpb25zIGFyZSByZXR1cm5lZCBieSBkaWZmIG9wZXJhdGlvbnMKICAgICAqIG9uIGludmFsaWQgRGF0ZVRpbWVzIG9yIEludGVydmFscy4KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGdldCBpc1ZhbGlkKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRHVyYXRpb24gYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIER1cmF0aW9uIGlzIHZhbGlkCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBpbnZhbGlkUmVhc29uKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIER1cmF0aW9uIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEdXJhdGlvbiBpcyB2YWxpZAogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBFcXVhbGl0eSBjaGVjawogICAgICogVHdvIER1cmF0aW9ucyBhcmUgZXF1YWwgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSB1bml0cyBhbmQgdGhlIHNhbWUgdmFsdWVzIGZvciBlYWNoIHVuaXQuCiAgICAgKiBAcGFyYW0ge0R1cmF0aW9ufSBvdGhlcgogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgZXF1YWxzKG90aGVyKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFvdGhlci5pc1ZhbGlkKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgICBpZiAoIXRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgICBmdW5jdGlvbiBlcSh2MSwgdjIpIHsKICAgICAgICAvLyBDb25zaWRlciAwIGFuZCB1bmRlZmluZWQgYXMgZXF1YWwKICAgICAgICBpZiAodjEgPT09IHVuZGVmaW5lZCB8fCB2MSA9PT0gMCkgcmV0dXJuIHYyID09PSB1bmRlZmluZWQgfHwgdjIgPT09IDA7CiAgICAgICAgcmV0dXJuIHYxID09PSB2MjsKICAgICAgfQoKICAgICAgZm9yIChjb25zdCB1IG9mIG9yZGVyZWRVbml0cyQxKSB7CiAgICAgICAgaWYgKCFlcSh0aGlzLnZhbHVlc1t1XSwgb3RoZXIudmFsdWVzW3VdKSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9CgogIGNvbnN0IElOVkFMSUQkMSA9ICJJbnZhbGlkIEludGVydmFsIjsKCiAgLy8gY2hlY2tzIGlmIHRoZSBzdGFydCBpcyBlcXVhbCB0byBvciBiZWZvcmUgdGhlIGVuZAogIGZ1bmN0aW9uIHZhbGlkYXRlU3RhcnRFbmQoc3RhcnQsIGVuZCkgewogICAgaWYgKCFzdGFydCB8fCAhc3RhcnQuaXNWYWxpZCkgewogICAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZCgibWlzc2luZyBvciBpbnZhbGlkIHN0YXJ0Iik7CiAgICB9IGVsc2UgaWYgKCFlbmQgfHwgIWVuZC5pc1ZhbGlkKSB7CiAgICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKCJtaXNzaW5nIG9yIGludmFsaWQgZW5kIik7CiAgICB9IGVsc2UgaWYgKGVuZCA8IHN0YXJ0KSB7CiAgICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKAogICAgICAgICJlbmQgYmVmb3JlIHN0YXJ0IiwKICAgICAgICBgVGhlIGVuZCBvZiBhbiBpbnRlcnZhbCBtdXN0IGJlIGFmdGVyIGl0cyBzdGFydCwgYnV0IHlvdSBoYWQgc3RhcnQ9JHtzdGFydC50b0lTTygpfSBhbmQgZW5kPSR7ZW5kLnRvSVNPKCl9YAogICAgICApOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgfQoKICAvKioKICAgKiBBbiBJbnRlcnZhbCBvYmplY3QgcmVwcmVzZW50cyBhIGhhbGYtb3BlbiBpbnRlcnZhbCBvZiB0aW1lLCB3aGVyZSBlYWNoIGVuZHBvaW50IGlzIGEge0BsaW5rIERhdGVUaW1lfS4gQ29uY2VwdHVhbGx5LCBpdCdzIGEgY29udGFpbmVyIGZvciB0aG9zZSB0d28gZW5kcG9pbnRzLCBhY2NvbXBhbmllZCBieSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgY29tcGFyaW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uCiAgICoKICAgKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIEludGVydmFsOgogICAqCiAgICogKiAqKkNyZWF0aW9uKiogVG8gY3JlYXRlIGFuIEludGVydmFsLCB1c2Uge0BsaW5rIEludGVydmFsLmZyb21EYXRlVGltZXN9LCB7QGxpbmsgSW50ZXJ2YWwuYWZ0ZXJ9LCB7QGxpbmsgSW50ZXJ2YWwuYmVmb3JlfSwgb3Ige0BsaW5rIEludGVydmFsLmZyb21JU099LgogICAqICogKipBY2Nlc3NvcnMqKiBVc2Uge0BsaW5rIEludGVydmFsI3N0YXJ0fSBhbmQge0BsaW5rIEludGVydmFsI2VuZH0gdG8gZ2V0IHRoZSBzdGFydCBhbmQgZW5kLgogICAqICogKipJbnRlcnJvZ2F0aW9uKiogVG8gYW5hbHl6ZSB0aGUgSW50ZXJ2YWwsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjY291bnR9LCB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSwge0BsaW5rIEludGVydmFsI2hhc1NhbWV9LCB7QGxpbmsgSW50ZXJ2YWwjY29udGFpbnN9LCB7QGxpbmsgSW50ZXJ2YWwjaXNBZnRlcn0sIG9yIHtAbGluayBJbnRlcnZhbCNpc0JlZm9yZX0uCiAgICogKiAqKlRyYW5zZm9ybWF0aW9uKiogVG8gY3JlYXRlIG90aGVyIEludGVydmFscyBvdXQgb2YgdGhpcyBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjc2V0fSwge0BsaW5rIEludGVydmFsI3NwbGl0QXR9LCB7QGxpbmsgSW50ZXJ2YWwjc3BsaXRCeX0sIHtAbGluayBJbnRlcnZhbCNkaXZpZGVFcXVhbGx5fSwge0BsaW5rIEludGVydmFsLm1lcmdlfSwge0BsaW5rIEludGVydmFsLnhvcn0sIHtAbGluayBJbnRlcnZhbCN1bmlvbn0sIHtAbGluayBJbnRlcnZhbCNpbnRlcnNlY3Rpb259LCBvciB7QGxpbmsgSW50ZXJ2YWwjZGlmZmVyZW5jZX0uCiAgICogKiAqKkNvbXBhcmlzb24qKiBUbyBjb21wYXJlIHRoaXMgSW50ZXJ2YWwgdG8gYW5vdGhlciBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjZXF1YWxzfSwge0BsaW5rIEludGVydmFsI292ZXJsYXBzfSwge0BsaW5rIEludGVydmFsI2FidXRzU3RhcnR9LCB7QGxpbmsgSW50ZXJ2YWwjYWJ1dHNFbmR9LCB7QGxpbmsgSW50ZXJ2YWwjZW5ndWxmc30KICAgKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgSW50ZXJ2YWwgaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgSW50ZXJ2YWwjdG9TdHJpbmd9LCB7QGxpbmsgSW50ZXJ2YWwjdG9Mb2NhbGVTdHJpbmd9LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU099LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU09EYXRlfSwge0BsaW5rIEludGVydmFsI3RvSVNPVGltZX0sIHtAbGluayBJbnRlcnZhbCN0b0Zvcm1hdH0sIGFuZCB7QGxpbmsgSW50ZXJ2YWwjdG9EdXJhdGlvbn0uCiAgICovCiAgY2xhc3MgSW50ZXJ2YWwgewogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICovCiAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHsKICAgICAgLyoqCiAgICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICAgKi8KICAgICAgdGhpcy5zID0gY29uZmlnLnN0YXJ0OwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmUgPSBjb25maWcuZW5kOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmlzTHV4b25JbnRlcnZhbCA9IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYW4gaW52YWxpZCBJbnRlcnZhbC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIEludGVydmFsIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnQKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICBzdGF0aWMgaW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uID0gbnVsbCkgewogICAgICBpZiAoIXJlYXNvbikgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBJbnRlcnZhbCBpcyBpbnZhbGlkIik7CiAgICAgIH0KCiAgICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7CgogICAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEludGVydmFsRXJyb3IoaW52YWxpZCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7IGludmFsaWQgfSk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGFuIGVuZCBEYXRlVGltZS4gSW5jbHVzaXZlIG9mIHRoZSBzdGFydCBidXQgbm90IHRoZSBlbmQuCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBzdGFydAogICAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gZW5kCiAgICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KICAgICAqLwogICAgc3RhdGljIGZyb21EYXRlVGltZXMoc3RhcnQsIGVuZCkgewogICAgICBjb25zdCBidWlsdFN0YXJ0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCksCiAgICAgICAgYnVpbHRFbmQgPSBmcmllbmRseURhdGVUaW1lKGVuZCk7CgogICAgICBjb25zdCB2YWxpZGF0ZUVycm9yID0gdmFsaWRhdGVTdGFydEVuZChidWlsdFN0YXJ0LCBidWlsdEVuZCk7CgogICAgICBpZiAodmFsaWRhdGVFcnJvciA9PSBudWxsKSB7CiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7CiAgICAgICAgICBzdGFydDogYnVpbHRTdGFydCwKICAgICAgICAgIGVuZDogYnVpbHRFbmQsCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHZhbGlkYXRlRXJyb3I7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGEgRHVyYXRpb24gdG8gZXh0ZW5kIHRvLgogICAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gc3RhcnQKICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbC4KICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICBzdGF0aWMgYWZ0ZXIoc3RhcnQsIGR1cmF0aW9uKSB7CiAgICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLAogICAgICAgIGR0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCk7CiAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0LCBkdC5wbHVzKGR1cikpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYW4gZW5kIERhdGVUaW1lIGFuZCBhIER1cmF0aW9uIHRvIGV4dGVuZCBiYWNrd2FyZHMgdG8uCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBlbmQKICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbC4KICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICBzdGF0aWMgYmVmb3JlKGVuZCwgZHVyYXRpb24pIHsKICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksCiAgICAgICAgZHQgPSBmcmllbmRseURhdGVUaW1lKGVuZCk7CiAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0Lm1pbnVzKGR1ciksIGR0KTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIElTTyA4NjAxIHN0cmluZy4KICAgICAqIEFjY2VwdHMgYDxzdGFydD4vPGVuZD5gLCBgPHN0YXJ0Pi88ZHVyYXRpb24+YCwgYW5kIGA8ZHVyYXRpb24+LzxlbmQ+YCBmb3JtYXRzLgogICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZyB0byBwYXJzZQogICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIG9wdGlvbnMgdG8gcGFzcyB7QGxpbmsgRGF0ZVRpbWUjZnJvbUlTT30gYW5kIG9wdGlvbmFsbHkge0BsaW5rIER1cmF0aW9uI2Zyb21JU099CiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzCiAgICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KICAgICAqLwogICAgc3RhdGljIGZyb21JU08odGV4dCwgb3B0cykgewogICAgICBjb25zdCBbcywgZV0gPSAodGV4dCB8fCAiIikuc3BsaXQoIi8iLCAyKTsKICAgICAgaWYgKHMgJiYgZSkgewogICAgICAgIGxldCBzdGFydCwgc3RhcnRJc1ZhbGlkOwogICAgICAgIHRyeSB7CiAgICAgICAgICBzdGFydCA9IERhdGVUaW1lLmZyb21JU08ocywgb3B0cyk7CiAgICAgICAgICBzdGFydElzVmFsaWQgPSBzdGFydC5pc1ZhbGlkOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIHN0YXJ0SXNWYWxpZCA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgbGV0IGVuZCwgZW5kSXNWYWxpZDsKICAgICAgICB0cnkgewogICAgICAgICAgZW5kID0gRGF0ZVRpbWUuZnJvbUlTTyhlLCBvcHRzKTsKICAgICAgICAgIGVuZElzVmFsaWQgPSBlbmQuaXNWYWxpZDsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBlbmRJc1ZhbGlkID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoc3RhcnRJc1ZhbGlkICYmIGVuZElzVmFsaWQpIHsKICAgICAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpOwogICAgICAgIH0KCiAgICAgICAgaWYgKHN0YXJ0SXNWYWxpZCkgewogICAgICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUlTTyhlLCBvcHRzKTsKICAgICAgICAgIGlmIChkdXIuaXNWYWxpZCkgewogICAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYWZ0ZXIoc3RhcnQsIGR1cik7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChlbmRJc1ZhbGlkKSB7CiAgICAgICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tSVNPKHMsIG9wdHMpOwogICAgICAgICAgaWYgKGR1ci5pc1ZhbGlkKSB7CiAgICAgICAgICAgIHJldHVybiBJbnRlcnZhbC5iZWZvcmUoZW5kLCBkdXIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZCgidW5wYXJzYWJsZSIsIGB0aGUgaW5wdXQgIiR7dGV4dH0iIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMWApOwogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIEludGVydmFsLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzCiAgICAgKiBAcGFyYW0ge29iamVjdH0gbwogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgc3RhdGljIGlzSW50ZXJ2YWwobykgewogICAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uSW50ZXJ2YWwpIHx8IGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgc3RhcnQgb2YgdGhlIEludGVydmFsCiAgICAgKiBAdHlwZSB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIGdldCBzdGFydCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMucyA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBlbmQgb2YgdGhlIEludGVydmFsCiAgICAgKiBAdHlwZSB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIGdldCBlbmQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmUgOiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBlbmQgaXMgYXQgbGVhc3QgaXRzIHN0YXJ0LCBtZWFuaW5nIHRoYXQgdGhlIEludGVydmFsIGlzbid0ICdiYWNrd2FyZHMnLgogICAgICogQHR5cGUge2Jvb2xlYW59CiAgICAgKi8KICAgIGdldCBpc1ZhbGlkKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkUmVhc29uID09PSBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgSW50ZXJ2YWwgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgSW50ZXJ2YWwgaXMgdmFsaWQKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBpbnZhbGlkUmVhc29uKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIEludGVydmFsIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBJbnRlcnZhbCBpcyB2YWxpZAogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsIGluIHRoZSBzcGVjaWZpZWQgdW5pdC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIHJldHVybiB0aGUgbGVuZ3RoIGluLgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBsZW5ndGgodW5pdCA9ICJtaWxsaXNlY29uZHMiKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvRHVyYXRpb24oLi4uW3VuaXRdKS5nZXQodW5pdCkgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb3VudCBvZiBtaW51dGVzLCBob3VycywgZGF5cywgbW9udGhzLCBvciB5ZWFycyBpbmNsdWRlZCBpbiB0aGUgSW50ZXJ2YWwsIGV2ZW4gaW4gcGFydC4KICAgICAqIFVubGlrZSB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSB0aGlzIGNvdW50cyBzZWN0aW9ucyBvZiB0aGUgY2FsZW5kYXIsIG5vdCBwZXJpb2RzIG9mIHRpbWUsIGUuZy4gc3BlY2lmeWluZyAnZGF5JwogICAgICogYXNrcyAnd2hhdCBkYXRlcyBhcmUgaW5jbHVkZWQgaW4gdGhpcyBpbnRlcnZhbD8nLCBub3QgJ2hvdyBtYW55IGRheXMgbG9uZyBpcyB0aGlzIGludGVydmFsPycKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdW5pdD0nbWlsbGlzZWNvbmRzJ10gLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNvdW50LgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBjb3VudCh1bml0ID0gIm1pbGxpc2Vjb25kcyIpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBOYU47CiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydC5zdGFydE9mKHVuaXQpLAogICAgICAgIGVuZCA9IHRoaXMuZW5kLnN0YXJ0T2YodW5pdCk7CiAgICAgIHJldHVybiBNYXRoLmZsb29yKGVuZC5kaWZmKHN0YXJ0LCB1bml0KS5nZXQodW5pdCkpICsgKGVuZC52YWx1ZU9mKCkgIT09IHRoaXMuZW5kLnZhbHVlT2YoKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGFuZCBlbmQgYXJlIGJvdGggaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb24KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGhhc1NhbWUodW5pdCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5pc0VtcHR5KCkgfHwgdGhpcy5lLm1pbnVzKDEpLmhhc1NhbWUodGhpcy5zLCB1bml0KSA6IGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBoYXMgdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBEYXRlVGltZXMuCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBpc0VtcHR5KCkgewogICAgICByZXR1cm4gdGhpcy5zLnZhbHVlT2YoKSA9PT0gdGhpcy5lLnZhbHVlT2YoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBzdGFydCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLgogICAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWUKICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGlzQWZ0ZXIoZGF0ZVRpbWUpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTsKICAgICAgcmV0dXJuIHRoaXMucyA+IGRhdGVUaW1lOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBEYXRlVGltZS4KICAgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBpc0JlZm9yZShkYXRlVGltZSkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwogICAgICByZXR1cm4gdGhpcy5lIDw9IGRhdGVUaW1lOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBjb250YWlucyB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLgogICAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWUKICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGNvbnRhaW5zKGRhdGVUaW1lKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CiAgICAgIHJldHVybiB0aGlzLnMgPD0gZGF0ZVRpbWUgJiYgdGhpcy5lID4gZGF0ZVRpbWU7CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0cyIgdGhlIHN0YXJ0IGFuZC9vciBlbmQgZGF0ZXMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBJbnRlcnZhbC4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSB0aGUgdmFsdWVzIHRvIHNldAogICAgICogQHBhcmFtIHtEYXRlVGltZX0gdmFsdWVzLnN0YXJ0IC0gdGhlIHN0YXJ0aW5nIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfSB2YWx1ZXMuZW5kIC0gdGhlIGVuZGluZyBEYXRlVGltZQogICAgICogQHJldHVybiB7SW50ZXJ2YWx9CiAgICAgKi8KICAgIHNldCh7IHN0YXJ0LCBlbmQgfSA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQgfHwgdGhpcy5zLCBlbmQgfHwgdGhpcy5lKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNwbGl0IHRoaXMgSW50ZXJ2YWwgYXQgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIERhdGVUaW1lcwogICAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIHVuaXQgb2YgdGltZSB0byBjb3VudC4KICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzcGxpdEF0KC4uLmRhdGVUaW1lcykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIFtdOwogICAgICBjb25zdCBzb3J0ZWQgPSBkYXRlVGltZXMKICAgICAgICAgIC5tYXAoZnJpZW5kbHlEYXRlVGltZSkKICAgICAgICAgIC5maWx0ZXIoKGQpID0+IHRoaXMuY29udGFpbnMoZCkpCiAgICAgICAgICAuc29ydCgpLAogICAgICAgIHJlc3VsdHMgPSBbXTsKICAgICAgbGV0IHsgcyB9ID0gdGhpcywKICAgICAgICBpID0gMDsKCiAgICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7CiAgICAgICAgY29uc3QgYWRkZWQgPSBzb3J0ZWRbaV0gfHwgdGhpcy5lLAogICAgICAgICAgbmV4dCA9ICthZGRlZCA+ICt0aGlzLmUgPyB0aGlzLmUgOiBhZGRlZDsKICAgICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7CiAgICAgICAgcyA9IG5leHQ7CiAgICAgICAgaSArPSAxOwogICAgICB9CgogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0KCiAgICAvKioKICAgICAqIFNwbGl0IHRoaXMgSW50ZXJ2YWwgaW50byBzbWFsbGVyIEludGVydmFscywgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIGxlbmd0aC4KICAgICAqIExlZnQgb3ZlciB0aW1lIGlzIGdyb3VwZWQgaW50byBhIHNtYWxsZXIgaW50ZXJ2YWwKICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgbGVuZ3RoIG9mIGVhY2ggcmVzdWx0aW5nIGludGVydmFsLgogICAgICogQHJldHVybiB7QXJyYXl9CiAgICAgKi8KICAgIHNwbGl0QnkoZHVyYXRpb24pIHsKICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbik7CgogICAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhZHVyLmlzVmFsaWQgfHwgZHVyLmFzKCJtaWxsaXNlY29uZHMiKSA9PT0gMCkgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfQoKICAgICAgbGV0IHsgcyB9ID0gdGhpcywKICAgICAgICBpZHggPSAxLAogICAgICAgIG5leHQ7CgogICAgICBjb25zdCByZXN1bHRzID0gW107CiAgICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7CiAgICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0YXJ0LnBsdXMoZHVyLm1hcFVuaXRzKCh4KSA9PiB4ICogaWR4KSk7CiAgICAgICAgbmV4dCA9ICthZGRlZCA+ICt0aGlzLmUgPyB0aGlzLmUgOiBhZGRlZDsKICAgICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7CiAgICAgICAgcyA9IG5leHQ7CiAgICAgICAgaWR4ICs9IDE7CiAgICAgIH0KCiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfQoKICAgIC8qKgogICAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBpbnRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNtYWxsZXIgaW50ZXJ2YWxzLgogICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlck9mUGFydHMgLSBUaGUgbnVtYmVyIG9mIEludGVydmFscyB0byBkaXZpZGUgdGhlIEludGVydmFsIGludG8uCiAgICAgKiBAcmV0dXJuIHtBcnJheX0KICAgICAqLwogICAgZGl2aWRlRXF1YWxseShudW1iZXJPZlBhcnRzKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107CiAgICAgIHJldHVybiB0aGlzLnNwbGl0QnkodGhpcy5sZW5ndGgoKSAvIG51bWJlck9mUGFydHMpLnNsaWNlKDAsIG51bWJlck9mUGFydHMpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBvdmVybGFwcyB3aXRoIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwKICAgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBvdmVybGFwcyhvdGhlcikgewogICAgICByZXR1cm4gdGhpcy5lID4gb3RoZXIucyAmJiB0aGlzLnMgPCBvdGhlci5lOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhZGphY2VudCB0byB0aGUgc3BlY2lmaWVkIEludGVydmFsJ3Mgc3RhcnQuCiAgICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlcgogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgYWJ1dHNTdGFydChvdGhlcikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwogICAgICByZXR1cm4gK3RoaXMuZSA9PT0gK290aGVyLnM7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgaXMgYWRqYWNlbnQgdG8gdGhlIHNwZWNpZmllZCBJbnRlcnZhbCdzIGVuZC4KICAgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBhYnV0c0VuZChvdGhlcikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwogICAgICByZXR1cm4gK290aGVyLmUgPT09ICt0aGlzLnM7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGVuZ3VsZnMgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KICAgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBlbmd1bGZzKG90aGVyKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CiAgICAgIHJldHVybiB0aGlzLnMgPD0gb3RoZXIucyAmJiB0aGlzLmUgPj0gb3RoZXIuZTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgaGFzIHRoZSBzYW1lIHN0YXJ0IGFuZCBlbmQgYXMgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KICAgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBlcXVhbHMob3RoZXIpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiB0aGlzLnMuZXF1YWxzKG90aGVyLnMpICYmIHRoaXMuZS5lcXVhbHMob3RoZXIuZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBJbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KICAgICAqIFNwZWNpZmljYWxseSwgdGhlIHJlc3VsdGluZyBJbnRlcnZhbCBoYXMgdGhlIG1heGltdW0gc3RhcnQgdGltZSBhbmQgdGhlIG1pbmltdW0gZW5kIHRpbWUgb2YgdGhlIHR3byBJbnRlcnZhbHMuCiAgICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGludGVyc2VjdGlvbiBpcyBlbXB0eSwgbWVhbmluZywgdGhlIGludGVydmFscyBkb24ndCBpbnRlcnNlY3QuCiAgICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlcgogICAgICogQHJldHVybiB7SW50ZXJ2YWx9CiAgICAgKi8KICAgIGludGVyc2VjdGlvbihvdGhlcikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IHMgPSB0aGlzLnMgPiBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucywKICAgICAgICBlID0gdGhpcy5lIDwgb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7CgogICAgICBpZiAocyA+PSBlKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMocywgZSk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIHVuaW9uIG9mIHRoaXMgSW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuCiAgICAgKiBTcGVjaWZpY2FsbHksIHRoZSByZXN1bHRpbmcgSW50ZXJ2YWwgaGFzIHRoZSBtaW5pbXVtIHN0YXJ0IHRpbWUgYW5kIHRoZSBtYXhpbXVtIGVuZCB0aW1lIG9mIHRoZSB0d28gSW50ZXJ2YWxzLgogICAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXIKICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICB1bmlvbihvdGhlcikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IHMgPSB0aGlzLnMgPCBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucywKICAgICAgICBlID0gdGhpcy5lID4gb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7CiAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIGUpOwogICAgfQoKICAgIC8qKgogICAgICogTWVyZ2UgYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIGludG8gYSBlcXVpdmFsZW50IG1pbmltYWwgc2V0IG9mIEludGVydmFscy4KICAgICAqIENvbWJpbmVzIG92ZXJsYXBwaW5nIGFuZCBhZGphY2VudCBJbnRlcnZhbHMuCiAgICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHMKICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzdGF0aWMgbWVyZ2UoaW50ZXJ2YWxzKSB7CiAgICAgIGNvbnN0IFtmb3VuZCwgZmluYWxdID0gaW50ZXJ2YWxzCiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEucyAtIGIucykKICAgICAgICAucmVkdWNlKAogICAgICAgICAgKFtzb2ZhciwgY3VycmVudF0sIGl0ZW0pID0+IHsKICAgICAgICAgICAgaWYgKCFjdXJyZW50KSB7CiAgICAgICAgICAgICAgcmV0dXJuIFtzb2ZhciwgaXRlbV07CiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5vdmVybGFwcyhpdGVtKSB8fCBjdXJyZW50LmFidXRzU3RhcnQoaXRlbSkpIHsKICAgICAgICAgICAgICByZXR1cm4gW3NvZmFyLCBjdXJyZW50LnVuaW9uKGl0ZW0pXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gW3NvZmFyLmNvbmNhdChbY3VycmVudF0pLCBpdGVtXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIFtbXSwgbnVsbF0KICAgICAgICApOwogICAgICBpZiAoZmluYWwpIHsKICAgICAgICBmb3VuZC5wdXNoKGZpbmFsKTsKICAgICAgfQogICAgICByZXR1cm4gZm91bmQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIHJlcHJlc2VudGluZyB0aGUgc3BhbnMgb2YgdGltZSB0aGF0IG9ubHkgYXBwZWFyIGluIG9uZSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy4KICAgICAqIEBwYXJhbSB7QXJyYXl9IGludGVydmFscwogICAgICogQHJldHVybiB7QXJyYXl9CiAgICAgKi8KICAgIHN0YXRpYyB4b3IoaW50ZXJ2YWxzKSB7CiAgICAgIGxldCBzdGFydCA9IG51bGwsCiAgICAgICAgY3VycmVudENvdW50ID0gMDsKICAgICAgY29uc3QgcmVzdWx0cyA9IFtdLAogICAgICAgIGVuZHMgPSBpbnRlcnZhbHMubWFwKChpKSA9PiBbCiAgICAgICAgICB7IHRpbWU6IGkucywgdHlwZTogInMiIH0sCiAgICAgICAgICB7IHRpbWU6IGkuZSwgdHlwZTogImUiIH0sCiAgICAgICAgXSksCiAgICAgICAgZmxhdHRlbmVkID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi5lbmRzKSwKICAgICAgICBhcnIgPSBmbGF0dGVuZWQuc29ydCgoYSwgYikgPT4gYS50aW1lIC0gYi50aW1lKTsKCiAgICAgIGZvciAoY29uc3QgaSBvZiBhcnIpIHsKICAgICAgICBjdXJyZW50Q291bnQgKz0gaS50eXBlID09PSAicyIgPyAxIDogLTE7CgogICAgICAgIGlmIChjdXJyZW50Q291bnQgPT09IDEpIHsKICAgICAgICAgIHN0YXJ0ID0gaS50aW1lOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoc3RhcnQgJiYgK3N0YXJ0ICE9PSAraS50aW1lKSB7CiAgICAgICAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBpLnRpbWUpKTsKICAgICAgICAgIH0KCiAgICAgICAgICBzdGFydCA9IG51bGw7CiAgICAgICAgfQogICAgICB9CgogICAgICByZXR1cm4gSW50ZXJ2YWwubWVyZ2UocmVzdWx0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBzcGFuIG9mIHRpbWUgaW4gdGhpcyBJbnRlcnZhbCB0aGF0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy4KICAgICAqIEBwYXJhbSB7Li4uSW50ZXJ2YWx9IGludGVydmFscwogICAgICogQHJldHVybiB7QXJyYXl9CiAgICAgKi8KICAgIGRpZmZlcmVuY2UoLi4uaW50ZXJ2YWxzKSB7CiAgICAgIHJldHVybiBJbnRlcnZhbC54b3IoW3RoaXNdLmNvbmNhdChpbnRlcnZhbHMpKQogICAgICAgIC5tYXAoKGkpID0+IHRoaXMuaW50ZXJzZWN0aW9uKGkpKQogICAgICAgIC5maWx0ZXIoKGkpID0+IGkgJiYgIWkuaXNFbXB0eSgpKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBJbnRlcnZhbCBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nLgogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b1N0cmluZygpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEJDE7CiAgICAgIHJldHVybiBgWyR7dGhpcy5zLnRvSVNPKCl9IOKAkyAke3RoaXMuZS50b0lTTygpfSlgOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGxvY2FsaXplZCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoaXMgSW50ZXJ2YWwuIEFjY2VwdHMgdGhlIHNhbWUgb3B0aW9ucyBhcyB0aGUKICAgICAqIEludGwuRGF0ZVRpbWVGb3JtYXQgY29uc3RydWN0b3IgYW5kIGFueSBwcmVzZXRzIGRlZmluZWQgYnkgTHV4b24sIHN1Y2ggYXMKICAgICAqIHtAbGluayBEYXRlVGltZS5EQVRFX0ZVTEx9IG9yIHtAbGluayBEYXRlVGltZS5USU1FX1NJTVBMRX0uIFRoZSBleGFjdCBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZAogICAgICogaXMgYnJvd3Nlci1zcGVjaWZpYywgYnV0IGluIGdlbmVyYWwgaXQgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcmVwcmVzZW50YXRpb24gb2YgdGhlCiAgICAgKiBJbnRlcnZhbCBpbiB0aGUgYXNzaWduZWQgbG9jYWxlLiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbgogICAgICogc3BlY2lmaWVkLgogICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlVGltZUZvcm1hdAogICAgICogQHBhcmFtIHtPYmplY3R9IFtmb3JtYXRPcHRzPURhdGVUaW1lLkRBVEVfU0hPUlRdIC0gRWl0aGVyIGEgRGF0ZVRpbWUgcHJlc2V0IG9yCiAgICAgKiBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHN0YXJ0IERhdGVUaW1lLgogICAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbUlTTygnMjAyMi0xMS0wN1QwOTowMFovMjAyMi0xMS0wOFQwOTowMFonKS50b0xvY2FsZVN0cmluZygpOyAvLz0+IDExLzcvMjAyMiDigJMgMTEvOC8yMDIyCiAgICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tSVNPKCcyMDIyLTExLTA3VDA5OjAwWi8yMDIyLTExLTA4VDA5OjAwWicpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gTm92ZW1iZXIgNyDigJMgOCwgMjAyMgogICAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbUlTTygnMjAyMi0xMS0wN1QwOTowMFovMjAyMi0xMS0wOFQwOTowMFonKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFX0ZVTEwsIHsgbG9jYWxlOiAnZnItRlInIH0pOyAvLz0+IDfigJM4IG5vdmVtYnJlIDIwMjIKICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21JU08oJzIwMjItMTEtMDdUMTc6MDBaLzIwMjItMTEtMDdUMTk6MDBaJykudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuVElNRV9TSU1QTEUpOyAvLz0+IDY6MDAg4oCTIDg6MDAgUE0KICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21JU08oJzIwMjItMTEtMDdUMTc6MDBaLzIwMjItMTEtMDdUMTk6MDBaJykudG9Mb2NhbGVTdHJpbmcoeyB3ZWVrZGF5OiAnc2hvcnQnLCBtb250aDogJ3Nob3J0JywgZGF5OiAnMi1kaWdpdCcsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IC8vPT4gTW9uLCBOb3YgMDcsIDY6MDAg4oCTIDg6MDAgcAogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzID0gREFURV9TSE9SVCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQKICAgICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5zLmxvYy5jbG9uZShvcHRzKSwgZm9ybWF0T3B0cykuZm9ybWF0SW50ZXJ2YWwodGhpcykKICAgICAgICA6IElOVkFMSUQkMTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsLgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFscwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT30KICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU08ob3B0cykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQkMTsKICAgICAgcmV0dXJuIGAke3RoaXMucy50b0lTTyhvcHRzKX0vJHt0aGlzLmUudG9JU08ob3B0cyl9YDsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBkYXRlIG9mIHRoaXMgSW50ZXJ2YWwuCiAgICAgKiBUaGUgdGltZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFscwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0lTT0RhdGUoKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwogICAgICByZXR1cm4gYCR7dGhpcy5zLnRvSVNPRGF0ZSgpfS8ke3RoaXMuZS50b0lTT0RhdGUoKX1gOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRpbWUgb2YgdGhpcyBJbnRlcnZhbC4KICAgICAqIFRoZSBkYXRlIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuCiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIFRoZSBzYW1lIG9wdGlvbnMgYXMge0BsaW5rIERhdGVUaW1lI3RvSVNPfQogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0lTT1RpbWUob3B0cykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQkMTsKICAgICAgcmV0dXJuIGAke3RoaXMucy50b0lTT1RpbWUob3B0cyl9LyR7dGhpcy5lLnRvSVNPVGltZShvcHRzKX1gOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQKICAgICAqIHN0cmluZy4gKipZb3UgbWF5IG5vdCB3YW50IHRoaXMuKiogU2VlIHtAbGluayBJbnRlcnZhbCN0b0xvY2FsZVN0cmluZ30gZm9yIGEgbW9yZSBmbGV4aWJsZQogICAgICogZm9ybWF0dGluZyB0b29sLgogICAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGVGb3JtYXQgLSBUaGUgZm9ybWF0IHN0cmluZy4gVGhpcyBzdHJpbmcgZm9ybWF0cyB0aGUgc3RhcnQgYW5kIGVuZCB0aW1lLgogICAgICogU2VlIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0gZm9yIGRldGFpbHMuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gICcg4oCTICddIC0gQSBzZXBhcmF0b3IgdG8gcGxhY2UgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZAogICAgICogcmVwcmVzZW50YXRpb25zLgogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0Zvcm1hdChkYXRlRm9ybWF0LCB7IHNlcGFyYXRvciA9ICIg4oCTICIgfSA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwogICAgICByZXR1cm4gYCR7dGhpcy5zLnRvRm9ybWF0KGRhdGVGb3JtYXQpfSR7c2VwYXJhdG9yfSR7dGhpcy5lLnRvRm9ybWF0KGRhdGVGb3JtYXQpfWA7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYSBEdXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIHRpbWUgc3Bhbm5lZCBieSB0aGlzIGludGVydmFsLgogICAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbigpLnRvT2JqZWN0KCkgLy89PiB7IG1pbGxpc2Vjb25kczogODg0ODkyNTcgfQogICAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbignZGF5cycpLnRvT2JqZWN0KCkgLy89PiB7IGRheXM6IDEuMDI0MTgxMjE1Mjc3Nzc3OCB9CiAgICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcyddKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjQsIG1pbnV0ZXM6IDM0LjgyMDk1IH0KICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oWydob3VycycsICdtaW51dGVzJywgJ3NlY29uZHMnXSkudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDI0LCBtaW51dGVzOiAzNCwgc2Vjb25kczogNDkuMjU3IH0KICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ3NlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBzZWNvbmRzOiA4ODQ4OS4yNTcgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHRvRHVyYXRpb24odW5pdCwgb3B0cykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewogICAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKHRoaXMuaW52YWxpZFJlYXNvbik7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMuZS5kaWZmKHRoaXMucywgdW5pdCwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSdW4gbWFwRm4gb24gdGhlIGludGVydmFsIHN0YXJ0IGFuZCBlbmQsIHJldHVybmluZyBhIG5ldyBJbnRlcnZhbCBmcm9tIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWVzCiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBtYXBGbgogICAgICogQHJldHVybiB7SW50ZXJ2YWx9CiAgICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS5tYXBFbmRwb2ludHMoZW5kcG9pbnQgPT4gZW5kcG9pbnQudG9VVEMoKSkKICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLm1hcEVuZHBvaW50cyhlbmRwb2ludCA9PiBlbmRwb2ludC5wbHVzKHsgaG91cnM6IDIgfSkpCiAgICAgKi8KICAgIG1hcEVuZHBvaW50cyhtYXBGbikgewogICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhtYXBGbih0aGlzLnMpLCBtYXBGbih0aGlzLmUpKTsKICAgIH0KICB9CgogIC8qKgogICAqIFRoZSBJbmZvIGNsYXNzIGNvbnRhaW5zIHN0YXRpYyBtZXRob2RzIGZvciByZXRyaWV2aW5nIGdlbmVyYWwgdGltZSBhbmQgZGF0ZSByZWxhdGVkIGRhdGEuIEZvciBleGFtcGxlLCBpdCBoYXMgbWV0aG9kcyBmb3IgZmluZGluZyBvdXQgaWYgYSB0aW1lIHpvbmUgaGFzIGEgRFNULCBmb3IgbGlzdGluZyB0aGUgbW9udGhzIGluIGFueSBzdXBwb3J0ZWQgbG9jYWxlLCBhbmQgZm9yIGRpc2NvdmVyaW5nIHdoaWNoIG9mIEx1eG9uIGZlYXR1cmVzIGFyZSBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuCiAgICovCiAgY2xhc3MgSW5mbyB7CiAgICAvKioKICAgICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBjb250YWlucyBhIERTVC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gWm9uZSB0byBjaGVjay4gRGVmYXVsdHMgdG8gdGhlIGVudmlyb25tZW50J3MgbG9jYWwgem9uZS4KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIHN0YXRpYyBoYXNEU1Qoem9uZSA9IFNldHRpbmdzLmRlZmF1bHRab25lKSB7CiAgICAgIGNvbnN0IHByb3RvID0gRGF0ZVRpbWUubm93KCkuc2V0Wm9uZSh6b25lKS5zZXQoeyBtb250aDogMTIgfSk7CgogICAgICByZXR1cm4gIXpvbmUuaXNVbml2ZXJzYWwgJiYgcHJvdG8ub2Zmc2V0ICE9PSBwcm90by5zZXQoeyBtb250aDogNiB9KS5vZmZzZXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgaXMgYSB2YWxpZCBJQU5BIHNwZWNpZmllci4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSB6b25lIC0gWm9uZSB0byBjaGVjawogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgc3RhdGljIGlzVmFsaWRJQU5BWm9uZSh6b25lKSB7CiAgICAgIHJldHVybiBJQU5BWm9uZS5pc1ZhbGlkWm9uZSh6b25lKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnZlcnRzIHRoZSBpbnB1dCBpbnRvIGEge0BsaW5rIFpvbmV9IGluc3RhbmNlLgogICAgICoKICAgICAqICogSWYgYGlucHV0YCBpcyBhbHJlYWR5IGEgWm9uZSBpbnN0YW5jZSwgaXQgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLgogICAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSB2YWxpZCB0aW1lIHpvbmUgbmFtZSwgYSBab25lIGluc3RhbmNlCiAgICAgKiAgIHdpdGggdGhhdCBuYW1lIGlzIHJldHVybmVkLgogICAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIHRoYXQgZG9lc24ndCByZWZlciB0byBhIGtub3duIHRpbWUgem9uZSwgYSBab25lCiAgICAgKiAgIGluc3RhbmNlIHdpdGgge0BsaW5rIFpvbmUjaXNWYWxpZH0gPT0gZmFsc2UgaXMgcmV0dXJuZWQuCiAgICAgKiAqIElmIGBpbnB1dCBpcyBhIG51bWJlciwgYSBab25lIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBmaXhlZCBvZmZzZXQKICAgICAqICAgaW4gbWludXRlcyBpcyByZXR1cm5lZC4KICAgICAqICogSWYgYGlucHV0YCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIHRoZSBkZWZhdWx0IHpvbmUgaXMgcmV0dXJuZWQuCiAgICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfG51bWJlcn0gW2lucHV0XSAtIHRoZSB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQKICAgICAqIEByZXR1cm4ge1pvbmV9CiAgICAgKi8KICAgIHN0YXRpYyBub3JtYWxpemVab25lKGlucHV0KSB7CiAgICAgIHJldHVybiBub3JtYWxpemVab25lKGlucHV0LCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2Ygc3RhbmRhbG9uZSBtb250aCBuYW1lcy4KICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aCByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyAibnVtZXJpYyIsICIyLWRpZ2l0IiwgIm5hcnJvdyIsICJzaG9ydCIsICJsb25nIgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcj0nZ3JlZ29yeSddIC0gdGhlIGNhbGVuZGFyCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygpWzBdIC8vPT4gJ0phbnVhcnknCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnKVswXSAvLz0+ICdKYW4nCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycpWzBdIC8vPT4gJzEnCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnLCB7IGxvY2FsZTogJ2ZyLUNBJyB9IClbMF0gLy89PiAnamFudi4nCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycsIHsgbG9jYWxlOiAnYXInIH0pWzBdIC8vPT4gJ9mhJwogICAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ2xvbmcnLCB7IG91dHB1dENhbGVuZGFyOiAnaXNsYW1pYycgfSlbMF0gLy89PiAnUmFiacq7IEknCiAgICAgKiBAcmV0dXJuIHtBcnJheX0KICAgICAqLwogICAgc3RhdGljIG1vbnRocygKICAgICAgbGVuZ3RoID0gImxvbmciLAogICAgICB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwsIG91dHB1dENhbGVuZGFyID0gImdyZWdvcnkiIH0gPSB7fQogICAgKSB7CiAgICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKSkubW9udGhzKGxlbmd0aCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZm9ybWF0IG1vbnRoIG5hbWVzLgogICAgICogRm9ybWF0IG1vbnRocyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIG1vbnRocyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGRheSBvZiB0aGUgbW9udGguIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0CiAgICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuCiAgICAgKiBTZWUge0BsaW5rIEluZm8jbW9udGhzfQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJudW1lcmljIiwgIjItZGlnaXQiLCAibmFycm93IiwgInNob3J0IiwgImxvbmciCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm91dHB1dENhbGVuZGFyPSdncmVnb3J5J10gLSB0aGUgY2FsZW5kYXIKICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzdGF0aWMgbW9udGhzRm9ybWF0KAogICAgICBsZW5ndGggPSAibG9uZyIsCiAgICAgIHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCwgbG9jT2JqID0gbnVsbCwgb3V0cHV0Q2FsZW5kYXIgPSAiZ3JlZ29yeSIgfSA9IHt9CiAgICApIHsKICAgICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpKS5tb250aHMobGVuZ3RoLCB0cnVlKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBhbiBhcnJheSBvZiBzdGFuZGFsb25lIHdlZWsgbmFtZXMuCiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0CiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nbG9uZyddIC0gdGhlIGxlbmd0aCBvZiB0aGUgd2Vla2RheSByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyAibmFycm93IiwgInNob3J0IiwgImxvbmciLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2UKICAgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoKVswXSAvLz0+ICdNb25kYXknCiAgICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKCdzaG9ydCcpWzBdIC8vPT4gJ01vbicKICAgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdmci1DQScgfSlbMF0gLy89PiAnbHVuLicKICAgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAn2KfZhNin2KvZhtmK2YYnCiAgICAgKiBAcmV0dXJuIHtBcnJheX0KICAgICAqLwogICAgc3RhdGljIHdlZWtkYXlzKGxlbmd0aCA9ICJsb25nIiwgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fSkgewogICAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBudWxsKSkud2Vla2RheXMobGVuZ3RoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBhbiBhcnJheSBvZiBmb3JtYXQgd2VlayBuYW1lcy4KICAgICAqIEZvcm1hdCB3ZWVrZGF5cyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIHdlZWtkYXlzIGluIHRoYXQgdGhleSdyZSBtZWFudCB0byBhcHBlYXIgbmV4dCB0byBtb3JlIGRhdGUgaW5mb3JtYXRpb24uIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0CiAgICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuCiAgICAgKiBTZWUge0BsaW5rIEluZm8jd2Vla2RheXN9CiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nbG9uZyddIC0gdGhlIGxlbmd0aCBvZiB0aGUgbW9udGggcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgIm5hcnJvdyIsICJzaG9ydCIsICJsb25nIi4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT1udWxsXSAtIHRoZSBsb2NhbGUgY29kZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2UKICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzdGF0aWMgd2Vla2RheXNGb3JtYXQoCiAgICAgIGxlbmd0aCA9ICJsb25nIiwKICAgICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fQogICAgKSB7CiAgICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG51bGwpKS53ZWVrZGF5cyhsZW5ndGgsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIGFuIGFycmF5IG9mIG1lcmlkaWVtcy4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGUKICAgICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKCkgLy89PiBbICdBTScsICdQTScgXQogICAgICogQGV4YW1wbGUgSW5mby5tZXJpZGllbXMoeyBsb2NhbGU6ICdteScgfSkgLy89PiBbICfhgJThgLbhgJThgIDhgLonLCAn4YCK4YCU4YCxJyBdCiAgICAgKiBAcmV0dXJuIHtBcnJheX0KICAgICAqLwogICAgc3RhdGljIG1lcmlkaWVtcyh7IGxvY2FsZSA9IG51bGwgfSA9IHt9KSB7CiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSkubWVyaWRpZW1zKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZXJhcywgc3VjaCBhcyBbJ0JDJywgJ0FEJ10uIFRoZSBsb2NhbGUgY2FuIGJlIHNwZWNpZmllZCwgYnV0IHRoZSBjYWxlbmRhciBzeXN0ZW0gaXMgYWx3YXlzIEdyZWdvcmlhbi4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdzaG9ydCddIC0gdGhlIGxlbmd0aCBvZiB0aGUgZXJhIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJzaG9ydCIgb3IgImxvbmciLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQogICAgICogQGV4YW1wbGUgSW5mby5lcmFzKCkgLy89PiBbICdCQycsICdBRCcgXQogICAgICogQGV4YW1wbGUgSW5mby5lcmFzKCdsb25nJykgLy89PiBbICdCZWZvcmUgQ2hyaXN0JywgJ0Fubm8gRG9taW5pJyBdCiAgICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoJ2xvbmcnLCB7IGxvY2FsZTogJ2ZyJyB9KSAvLz0+IFsgJ2F2YW50IErDqXN1cy1DaHJpc3QnLCAnYXByw6hzIErDqXN1cy1DaHJpc3QnIF0KICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzdGF0aWMgZXJhcyhsZW5ndGggPSAic2hvcnQiLCB7IGxvY2FsZSA9IG51bGwgfSA9IHt9KSB7CiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVsbCwgImdyZWdvcnkiKS5lcmFzKGxlbmd0aCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhdmFpbGFibGUgZmVhdHVyZXMgaW4gdGhpcyBlbnZpcm9ubWVudC4KICAgICAqIFNvbWUgZmVhdHVyZXMgb2YgTHV4b24gYXJlIG5vdCBhdmFpbGFibGUgaW4gYWxsIGVudmlyb25tZW50cy4gRm9yIGV4YW1wbGUsIG9uIG9sZGVyIGJyb3dzZXJzLCByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmcgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBmaWd1cmUgb3V0IGlmIHRoYXQncyB0aGUgY2FzZS4KICAgICAqIEtleXM6CiAgICAgKiAqIGByZWxhdGl2ZWA6IHdoZXRoZXIgdGhpcyBlbnZpcm9ubWVudCBzdXBwb3J0cyByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmcKICAgICAqIEBleGFtcGxlIEluZm8uZmVhdHVyZXMoKSAvLz0+IHsgcmVsYXRpdmU6IGZhbHNlIH0KICAgICAqIEByZXR1cm4ge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGZlYXR1cmVzKCkgewogICAgICByZXR1cm4geyByZWxhdGl2ZTogaGFzUmVsYXRpdmUoKSB9OwogICAgfQogIH0KCiAgZnVuY3Rpb24gZGF5RGlmZihlYXJsaWVyLCBsYXRlcikgewogICAgY29uc3QgdXRjRGF5U3RhcnQgPSAoZHQpID0+IGR0LnRvVVRDKDAsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCksCiAgICAgIG1zID0gdXRjRGF5U3RhcnQobGF0ZXIpIC0gdXRjRGF5U3RhcnQoZWFybGllcik7CiAgICByZXR1cm4gTWF0aC5mbG9vcihEdXJhdGlvbi5mcm9tTWlsbGlzKG1zKS5hcygiZGF5cyIpKTsKICB9CgogIGZ1bmN0aW9uIGhpZ2hPcmRlckRpZmZzKGN1cnNvciwgbGF0ZXIsIHVuaXRzKSB7CiAgICBjb25zdCBkaWZmZXJzID0gWwogICAgICBbInllYXJzIiwgKGEsIGIpID0+IGIueWVhciAtIGEueWVhcl0sCiAgICAgIFsicXVhcnRlcnMiLCAoYSwgYikgPT4gYi5xdWFydGVyIC0gYS5xdWFydGVyICsgKGIueWVhciAtIGEueWVhcikgKiA0XSwKICAgICAgWyJtb250aHMiLCAoYSwgYikgPT4gYi5tb250aCAtIGEubW9udGggKyAoYi55ZWFyIC0gYS55ZWFyKSAqIDEyXSwKICAgICAgWwogICAgICAgICJ3ZWVrcyIsCiAgICAgICAgKGEsIGIpID0+IHsKICAgICAgICAgIGNvbnN0IGRheXMgPSBkYXlEaWZmKGEsIGIpOwogICAgICAgICAgcmV0dXJuIChkYXlzIC0gKGRheXMgJSA3KSkgLyA3OwogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIFsiZGF5cyIsIGRheURpZmZdLAogICAgXTsKCiAgICBjb25zdCByZXN1bHRzID0ge307CiAgICBjb25zdCBlYXJsaWVyID0gY3Vyc29yOwogICAgbGV0IGxvd2VzdE9yZGVyLCBoaWdoV2F0ZXI7CgogICAgLyogVGhpcyBsb29wIHRyaWVzIHRvIGRpZmYgdXNpbmcgbGFyZ2VyIHVuaXRzIGZpcnN0LgogICAgICAgSWYgd2Ugb3ZlcnNob290LCB3ZSBiYWNrdHJhY2sgYW5kIHRyeSB0aGUgbmV4dCBzbWFsbGVyIHVuaXQuCiAgICAgICAiY3Vyc29yIiBzdGFydHMgb3V0IGF0IHRoZSBlYXJsaWVyIHRpbWVzdGFtcCBhbmQgbW92ZXMgY2xvc2VyIGFuZCBjbG9zZXIgdG8gImxhdGVyIgogICAgICAgYXMgd2UgdXNlIHNtYWxsZXIgYW5kIHNtYWxsZXIgdW5pdHMuCiAgICAgICBoaWdoV2F0ZXIga2VlcHMgdHJhY2sgb2Ygd2hlcmUgd2Ugd291bGQgYmUgaWYgd2UgYWRkZWQgb25lIG1vcmUgb2YgdGhlIHNtYWxsZXN0IHVuaXQsCiAgICAgICB0aGlzIGlzIHVzZWQgbGF0ZXIgdG8gcG90ZW50aWFsbHkgY29udmVydCBhbnkgZGlmZmVyZW5jZSBzbWFsbGVyIHRoYW4gdGhlIHNtYWxsZXN0IGhpZ2hlciBvcmRlciB1bml0CiAgICAgICBpbnRvIGEgZnJhY3Rpb24gb2YgdGhhdCBzbWFsbGVzdCBoaWdoZXIgb3JkZXIgdW5pdAogICAgKi8KICAgIGZvciAoY29uc3QgW3VuaXQsIGRpZmZlcl0gb2YgZGlmZmVycykgewogICAgICBpZiAodW5pdHMuaW5kZXhPZih1bml0KSA+PSAwKSB7CiAgICAgICAgbG93ZXN0T3JkZXIgPSB1bml0OwoKICAgICAgICByZXN1bHRzW3VuaXRdID0gZGlmZmVyKGN1cnNvciwgbGF0ZXIpOwogICAgICAgIGhpZ2hXYXRlciA9IGVhcmxpZXIucGx1cyhyZXN1bHRzKTsKCiAgICAgICAgaWYgKGhpZ2hXYXRlciA+IGxhdGVyKSB7CiAgICAgICAgICAvLyB3ZSBvdmVyc2hvdCB0aGUgZW5kIHBvaW50LCBiYWNrdHJhY2sgY3Vyc29yIGJ5IDEKICAgICAgICAgIHJlc3VsdHNbdW5pdF0tLTsKICAgICAgICAgIGN1cnNvciA9IGVhcmxpZXIucGx1cyhyZXN1bHRzKTsKCiAgICAgICAgICAvLyBpZiB3ZSBhcmUgc3RpbGwgb3ZlcnNob290aW5nIG5vdywgd2UgbmVlZCB0byBiYWNrdHJhY2sgYWdhaW4KICAgICAgICAgIC8vIHRoaXMgaGFwcGVucyBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgd2hlbiBkaWZmaW5nIHRpbWVzIGluIGRpZmZlcmVudCB6b25lcywKICAgICAgICAgIC8vIGJlY2F1c2UgdGhpcyBjYWxjdWxhdGlvbiBpZ25vcmVzIHRpbWUgem9uZXMKICAgICAgICAgIGlmIChjdXJzb3IgPiBsYXRlcikgewogICAgICAgICAgICAvLyBrZWVwIHRoZSAib3ZlcnNob3QgYnkgMSIgYXJvdW5kIGFzIGhpZ2hXYXRlcgogICAgICAgICAgICBoaWdoV2F0ZXIgPSBjdXJzb3I7CiAgICAgICAgICAgIC8vIGJhY2t0cmFjayBjdXJzb3IgYnkgMQogICAgICAgICAgICByZXN1bHRzW3VuaXRdLS07CiAgICAgICAgICAgIGN1cnNvciA9IGVhcmxpZXIucGx1cyhyZXN1bHRzKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgY3Vyc29yID0gaGlnaFdhdGVyOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBbY3Vyc29yLCByZXN1bHRzLCBoaWdoV2F0ZXIsIGxvd2VzdE9yZGVyXTsKICB9CgogIGZ1bmN0aW9uIGRpZmYgKGVhcmxpZXIsIGxhdGVyLCB1bml0cywgb3B0cykgewogICAgbGV0IFtjdXJzb3IsIHJlc3VsdHMsIGhpZ2hXYXRlciwgbG93ZXN0T3JkZXJdID0gaGlnaE9yZGVyRGlmZnMoZWFybGllciwgbGF0ZXIsIHVuaXRzKTsKCiAgICBjb25zdCByZW1haW5pbmdNaWxsaXMgPSBsYXRlciAtIGN1cnNvcjsKCiAgICBjb25zdCBsb3dlck9yZGVyVW5pdHMgPSB1bml0cy5maWx0ZXIoCiAgICAgICh1KSA9PiBbImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyIsICJtaWxsaXNlY29uZHMiXS5pbmRleE9mKHUpID49IDAKICAgICk7CgogICAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPT09IDApIHsKICAgICAgaWYgKGhpZ2hXYXRlciA8IGxhdGVyKSB7CiAgICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoeyBbbG93ZXN0T3JkZXJdOiAxIH0pOwogICAgICB9CgogICAgICBpZiAoaGlnaFdhdGVyICE9PSBjdXJzb3IpIHsKICAgICAgICByZXN1bHRzW2xvd2VzdE9yZGVyXSA9IChyZXN1bHRzW2xvd2VzdE9yZGVyXSB8fCAwKSArIHJlbWFpbmluZ01pbGxpcyAvIChoaWdoV2F0ZXIgLSBjdXJzb3IpOwogICAgICB9CiAgICB9CgogICAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHJlc3VsdHMsIG9wdHMpOwoKICAgIGlmIChsb3dlck9yZGVyVW5pdHMubGVuZ3RoID4gMCkgewogICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhyZW1haW5pbmdNaWxsaXMsIG9wdHMpCiAgICAgICAgLnNoaWZ0VG8oLi4ubG93ZXJPcmRlclVuaXRzKQogICAgICAgIC5wbHVzKGR1cmF0aW9uKTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBkdXJhdGlvbjsKICAgIH0KICB9CgogIGNvbnN0IG51bWJlcmluZ1N5c3RlbXMgPSB7CiAgICBhcmFiOiAiW1x1MDY2MC1cdTA2NjldIiwKICAgIGFyYWJleHQ6ICJbXHUwNkYwLVx1MDZGOV0iLAogICAgYmFsaTogIltcdTFCNTAtXHUxQjU5XSIsCiAgICBiZW5nOiAiW1x1MDlFNi1cdTA5RUZdIiwKICAgIGRldmE6ICJbXHUwOTY2LVx1MDk2Rl0iLAogICAgZnVsbHdpZGU6ICJbXHVGRjEwLVx1RkYxOV0iLAogICAgZ3VqcjogIltcdTBBRTYtXHUwQUVGXSIsCiAgICBoYW5pZGVjOiAiW+OAh3zkuIB85LqMfOS4iXzlm5t85LqUfOWFrXzkuIN85YWrfOS5nV0iLAogICAga2htcjogIltcdTE3RTAtXHUxN0U5XSIsCiAgICBrbmRhOiAiW1x1MENFNi1cdTBDRUZdIiwKICAgIGxhb286ICJbXHUwRUQwLVx1MEVEOV0iLAogICAgbGltYjogIltcdTE5NDYtXHUxOTRGXSIsCiAgICBtbHltOiAiW1x1MEQ2Ni1cdTBENkZdIiwKICAgIG1vbmc6ICJbXHUxODEwLVx1MTgxOV0iLAogICAgbXltcjogIltcdTEwNDAtXHUxMDQ5XSIsCiAgICBvcnlhOiAiW1x1MEI2Ni1cdTBCNkZdIiwKICAgIHRhbWxkZWM6ICJbXHUwQkU2LVx1MEJFRl0iLAogICAgdGVsdTogIltcdTBDNjYtXHUwQzZGXSIsCiAgICB0aGFpOiAiW1x1MEU1MC1cdTBFNTldIiwKICAgIHRpYnQ6ICJbXHUwRjIwLVx1MEYyOV0iLAogICAgbGF0bjogIlxcZCIsCiAgfTsKCiAgY29uc3QgbnVtYmVyaW5nU3lzdGVtc1VURjE2ID0gewogICAgYXJhYjogWzE2MzIsIDE2NDFdLAogICAgYXJhYmV4dDogWzE3NzYsIDE3ODVdLAogICAgYmFsaTogWzY5OTIsIDcwMDFdLAogICAgYmVuZzogWzI1MzQsIDI1NDNdLAogICAgZGV2YTogWzI0MDYsIDI0MTVdLAogICAgZnVsbHdpZGU6IFs2NTI5NiwgNjUzMDNdLAogICAgZ3VqcjogWzI3OTAsIDI3OTldLAogICAga2htcjogWzYxMTIsIDYxMjFdLAogICAga25kYTogWzMzMDIsIDMzMTFdLAogICAgbGFvbzogWzM3OTIsIDM4MDFdLAogICAgbGltYjogWzY0NzAsIDY0NzldLAogICAgbWx5bTogWzM0MzAsIDM0MzldLAogICAgbW9uZzogWzYxNjAsIDYxNjldLAogICAgbXltcjogWzQxNjAsIDQxNjldLAogICAgb3J5YTogWzI5MTgsIDI5MjddLAogICAgdGFtbGRlYzogWzMwNDYsIDMwNTVdLAogICAgdGVsdTogWzMxNzQsIDMxODNdLAogICAgdGhhaTogWzM2NjQsIDM2NzNdLAogICAgdGlidDogWzM4NzIsIDM4ODFdLAogIH07CgogIGNvbnN0IGhhbmlkZWNDaGFycyA9IG51bWJlcmluZ1N5c3RlbXMuaGFuaWRlYy5yZXBsYWNlKC9bXFt8XF1dL2csICIiKS5zcGxpdCgiIik7CgogIGZ1bmN0aW9uIHBhcnNlRGlnaXRzKHN0cikgewogICAgbGV0IHZhbHVlID0gcGFyc2VJbnQoc3RyLCAxMCk7CiAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgIHZhbHVlID0gIiI7CiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpOwoKICAgICAgICBpZiAoc3RyW2ldLnNlYXJjaChudW1iZXJpbmdTeXN0ZW1zLmhhbmlkZWMpICE9PSAtMSkgewogICAgICAgICAgdmFsdWUgKz0gaGFuaWRlY0NoYXJzLmluZGV4T2Yoc3RyW2ldKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbnVtYmVyaW5nU3lzdGVtc1VURjE2KSB7CiAgICAgICAgICAgIGNvbnN0IFttaW4sIG1heF0gPSBudW1iZXJpbmdTeXN0ZW1zVVRGMTZba2V5XTsKICAgICAgICAgICAgaWYgKGNvZGUgPj0gbWluICYmIGNvZGUgPD0gbWF4KSB7CiAgICAgICAgICAgICAgdmFsdWUgKz0gY29kZSAtIG1pbjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGRpZ2l0UmVnZXgoeyBudW1iZXJpbmdTeXN0ZW0gfSwgYXBwZW5kID0gIiIpIHsKICAgIHJldHVybiBuZXcgUmVnRXhwKGAke251bWJlcmluZ1N5c3RlbXNbbnVtYmVyaW5nU3lzdGVtIHx8ICJsYXRuIl19JHthcHBlbmR9YCk7CiAgfQoKICBjb25zdCBNSVNTSU5HX0ZUUCA9ICJtaXNzaW5nIEludGwuRGF0ZVRpbWVGb3JtYXQuZm9ybWF0VG9QYXJ0cyBzdXBwb3J0IjsKCiAgZnVuY3Rpb24gaW50VW5pdChyZWdleCwgcG9zdCA9IChpKSA9PiBpKSB7CiAgICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHBvc3QocGFyc2VEaWdpdHMocykpIH07CiAgfQoKICBjb25zdCBOQlNQID0gU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApOwogIGNvbnN0IHNwYWNlT3JOQlNQID0gYFsgJHtOQlNQfV1gOwogIGNvbnN0IHNwYWNlT3JOQlNQUmVnRXhwID0gbmV3IFJlZ0V4cChzcGFjZU9yTkJTUCwgImciKTsKCiAgZnVuY3Rpb24gZml4TGlzdFJlZ2V4KHMpIHsKICAgIC8vIG1ha2UgZG90cyBvcHRpb25hbCBhbmQgYWxzbyBtYWtlIHRoZW0gbGl0ZXJhbAogICAgLy8gbWFrZSBzcGFjZSBhbmQgbm9uIGJyZWFrYWJsZSBzcGFjZSBjaGFyYWN0ZXJzIGludGVyY2hhbmdlYWJsZQogICAgcmV0dXJuIHMucmVwbGFjZSgvXC4vZywgIlxcLj8iKS5yZXBsYWNlKHNwYWNlT3JOQlNQUmVnRXhwLCBzcGFjZU9yTkJTUCk7CiAgfQoKICBmdW5jdGlvbiBzdHJpcEluc2Vuc2l0aXZpdGllcyhzKSB7CiAgICByZXR1cm4gcwogICAgICAucmVwbGFjZSgvXC4vZywgIiIpIC8vIGlnbm9yZSBkb3RzIHRoYXQgd2VyZSBtYWRlIG9wdGlvbmFsCiAgICAgIC5yZXBsYWNlKHNwYWNlT3JOQlNQUmVnRXhwLCAiICIpIC8vIGludGVyY2hhbmdlIHNwYWNlIGFuZCBuYnNwCiAgICAgIC50b0xvd2VyQ2FzZSgpOwogIH0KCiAgZnVuY3Rpb24gb25lT2Yoc3RyaW5ncywgc3RhcnRJbmRleCkgewogICAgaWYgKHN0cmluZ3MgPT09IG51bGwpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gewogICAgICAgIHJlZ2V4OiBSZWdFeHAoc3RyaW5ncy5tYXAoZml4TGlzdFJlZ2V4KS5qb2luKCJ8IikpLAogICAgICAgIGRlc2VyOiAoW3NdKSA9PgogICAgICAgICAgc3RyaW5ncy5maW5kSW5kZXgoKGkpID0+IHN0cmlwSW5zZW5zaXRpdml0aWVzKHMpID09PSBzdHJpcEluc2Vuc2l0aXZpdGllcyhpKSkgKyBzdGFydEluZGV4LAogICAgICB9OwogICAgfQogIH0KCiAgZnVuY3Rpb24gb2Zmc2V0KHJlZ2V4LCBncm91cHMpIHsKICAgIHJldHVybiB7IHJlZ2V4LCBkZXNlcjogKFssIGgsIG1dKSA9PiBzaWduZWRPZmZzZXQoaCwgbSksIGdyb3VwcyB9OwogIH0KCiAgZnVuY3Rpb24gc2ltcGxlKHJlZ2V4KSB7CiAgICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHMgfTsKICB9CgogIGZ1bmN0aW9uIGVzY2FwZVRva2VuKHZhbHVlKSB7CiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1wtXFtcXXt9KCkqKz8uLFxcXF4kfCNcc10vZywgIlxcJCYiKTsKICB9CgogIC8qKgogICAqIEBwYXJhbSB0b2tlbgogICAqIEBwYXJhbSB7TG9jYWxlfSBsb2MKICAgKi8KICBmdW5jdGlvbiB1bml0Rm9yVG9rZW4odG9rZW4sIGxvYykgewogICAgY29uc3Qgb25lID0gZGlnaXRSZWdleChsb2MpLAogICAgICB0d28gPSBkaWdpdFJlZ2V4KGxvYywgInsyfSIpLAogICAgICB0aHJlZSA9IGRpZ2l0UmVnZXgobG9jLCAiezN9IiksCiAgICAgIGZvdXIgPSBkaWdpdFJlZ2V4KGxvYywgIns0fSIpLAogICAgICBzaXggPSBkaWdpdFJlZ2V4KGxvYywgIns2fSIpLAogICAgICBvbmVPclR3byA9IGRpZ2l0UmVnZXgobG9jLCAiezEsMn0iKSwKICAgICAgb25lVG9UaHJlZSA9IGRpZ2l0UmVnZXgobG9jLCAiezEsM30iKSwKICAgICAgb25lVG9TaXggPSBkaWdpdFJlZ2V4KGxvYywgInsxLDZ9IiksCiAgICAgIG9uZVRvTmluZSA9IGRpZ2l0UmVnZXgobG9jLCAiezEsOX0iKSwKICAgICAgdHdvVG9Gb3VyID0gZGlnaXRSZWdleChsb2MsICJ7Miw0fSIpLAogICAgICBmb3VyVG9TaXggPSBkaWdpdFJlZ2V4KGxvYywgIns0LDZ9IiksCiAgICAgIGxpdGVyYWwgPSAodCkgPT4gKHsgcmVnZXg6IFJlZ0V4cChlc2NhcGVUb2tlbih0LnZhbCkpLCBkZXNlcjogKFtzXSkgPT4gcywgbGl0ZXJhbDogdHJ1ZSB9KSwKICAgICAgdW5pdGF0ZSA9ICh0KSA9PiB7CiAgICAgICAgaWYgKHRva2VuLmxpdGVyYWwpIHsKICAgICAgICAgIHJldHVybiBsaXRlcmFsKHQpOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHQudmFsKSB7CiAgICAgICAgICAvLyBlcmEKICAgICAgICAgIGNhc2UgIkciOgogICAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoInNob3J0IiksIDApOwogICAgICAgICAgY2FzZSAiR0ciOgogICAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoImxvbmciKSwgMCk7CiAgICAgICAgICAvLyB5ZWFycwogICAgICAgICAgY2FzZSAieSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvU2l4KTsKICAgICAgICAgIGNhc2UgInl5IjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvVG9Gb3VyLCB1bnRydW5jYXRlWWVhcik7CiAgICAgICAgICBjYXNlICJ5eXl5IjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQoZm91cik7CiAgICAgICAgICBjYXNlICJ5eXl5eSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXJUb1NpeCk7CiAgICAgICAgICBjYXNlICJ5eXl5eXkiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChzaXgpOwogICAgICAgICAgLy8gbW9udGhzCiAgICAgICAgICBjYXNlICJNIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pOwogICAgICAgICAgY2FzZSAiTU0iOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwogICAgICAgICAgY2FzZSAiTU1NIjoKICAgICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoInNob3J0IiwgdHJ1ZSksIDEpOwogICAgICAgICAgY2FzZSAiTU1NTSI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKCJsb25nIiwgdHJ1ZSksIDEpOwogICAgICAgICAgY2FzZSAiTCI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKICAgICAgICAgIGNhc2UgIkxMIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTsKICAgICAgICAgIGNhc2UgIkxMTCI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKCJzaG9ydCIsIGZhbHNlKSwgMSk7CiAgICAgICAgICBjYXNlICJMTExMIjoKICAgICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoImxvbmciLCBmYWxzZSksIDEpOwogICAgICAgICAgLy8gZGF0ZXMKICAgICAgICAgIGNhc2UgImQiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CiAgICAgICAgICBjYXNlICJkZCI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CiAgICAgICAgICAvLyBvcmRpbmFscwogICAgICAgICAgY2FzZSAibyI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvVGhyZWUpOwogICAgICAgICAgY2FzZSAib29vIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodGhyZWUpOwogICAgICAgICAgLy8gdGltZQogICAgICAgICAgY2FzZSAiSEgiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwogICAgICAgICAgY2FzZSAiSCI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKICAgICAgICAgIGNhc2UgImhoIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTsKICAgICAgICAgIGNhc2UgImgiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CiAgICAgICAgICBjYXNlICJtbSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CiAgICAgICAgICBjYXNlICJtIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pOwogICAgICAgICAgY2FzZSAicSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKICAgICAgICAgIGNhc2UgInFxIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTsKICAgICAgICAgIGNhc2UgInMiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CiAgICAgICAgICBjYXNlICJzcyI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CiAgICAgICAgICBjYXNlICJTIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9UaHJlZSk7CiAgICAgICAgICBjYXNlICJTU1MiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7CiAgICAgICAgICBjYXNlICJ1IjoKICAgICAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVUb05pbmUpOwogICAgICAgICAgY2FzZSAidXUiOgogICAgICAgICAgICByZXR1cm4gc2ltcGxlKG9uZU9yVHdvKTsKICAgICAgICAgIGNhc2UgInV1dSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZSk7CiAgICAgICAgICAvLyBtZXJpZGllbQogICAgICAgICAgY2FzZSAiYSI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubWVyaWRpZW1zKCksIDApOwogICAgICAgICAgLy8gd2Vla1llYXIgKGspCiAgICAgICAgICBjYXNlICJra2trIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQoZm91cik7CiAgICAgICAgICBjYXNlICJrayI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3b1RvRm91ciwgdW50cnVuY2F0ZVllYXIpOwogICAgICAgICAgLy8gd2Vla051bWJlciAoVykKICAgICAgICAgIGNhc2UgIlciOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CiAgICAgICAgICBjYXNlICJXVyI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CiAgICAgICAgICAvLyB3ZWVrZGF5cwogICAgICAgICAgY2FzZSAiRSI6CiAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQob25lKTsKICAgICAgICAgIGNhc2UgIkVFRSI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoInNob3J0IiwgZmFsc2UpLCAxKTsKICAgICAgICAgIGNhc2UgIkVFRUUiOgogICAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKCJsb25nIiwgZmFsc2UpLCAxKTsKICAgICAgICAgIGNhc2UgImNjYyI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoInNob3J0IiwgdHJ1ZSksIDEpOwogICAgICAgICAgY2FzZSAiY2NjYyI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoImxvbmciLCB0cnVlKSwgMSk7CiAgICAgICAgICAvLyBvZmZzZXQvem9uZQogICAgICAgICAgY2FzZSAiWiI6CiAgICAgICAgICBjYXNlICJaWiI6CiAgICAgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cChgKFsrLV0ke29uZU9yVHdvLnNvdXJjZX0pKD86Oigke3R3by5zb3VyY2V9KSk/YCksIDIpOwogICAgICAgICAgY2FzZSAiWlpaIjoKICAgICAgICAgICAgcmV0dXJuIG9mZnNldChuZXcgUmVnRXhwKGAoWystXSR7b25lT3JUd28uc291cmNlfSkoJHt0d28uc291cmNlfSk/YCksIDIpOwogICAgICAgICAgLy8gd2UgZG9uJ3Qgc3VwcG9ydCBaWlpaIChQU1QpIG9yIFpaWlpaIChQYWNpZmljIFN0YW5kYXJkIFRpbWUpIGluIHBhcnNpbmcKICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhbnkgd2F5IHRvIGZpZ3VyZSBvdXQgd2hhdCB0aGV5IGFyZQogICAgICAgICAgY2FzZSAieiI6CiAgICAgICAgICAgIHJldHVybiBzaW1wbGUoL1thLXpfKy0vXXsxLDI1Nn0/L2kpOwogICAgICAgICAgLy8gdGhpcyBzcGVjaWFsLWNhc2UgInRva2VuIiByZXByZXNlbnRzIGEgcGxhY2Ugd2hlcmUgYSBtYWNyby10b2tlbiBleHBhbmRlZCBpbnRvIGEgd2hpdGUtc3BhY2UgbGl0ZXJhbAogICAgICAgICAgLy8gaW4gdGhpcyBjYXNlIHdlIGFjY2VwdCBhbnkgbm9uLW5ld2xpbmUgd2hpdGUtc3BhY2UKICAgICAgICAgIGNhc2UgIiAiOgogICAgICAgICAgICByZXR1cm4gc2ltcGxlKC9bXlxTXG5ccl0vKTsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBsaXRlcmFsKHQpOwogICAgICAgIH0KICAgICAgfTsKCiAgICBjb25zdCB1bml0ID0gdW5pdGF0ZSh0b2tlbikgfHwgewogICAgICBpbnZhbGlkUmVhc29uOiBNSVNTSU5HX0ZUUCwKICAgIH07CgogICAgdW5pdC50b2tlbiA9IHRva2VuOwoKICAgIHJldHVybiB1bml0OwogIH0KCiAgY29uc3QgcGFydFR5cGVTdHlsZVRvVG9rZW5WYWwgPSB7CiAgICB5ZWFyOiB7CiAgICAgICIyLWRpZ2l0IjogInl5IiwKICAgICAgbnVtZXJpYzogInl5eXl5IiwKICAgIH0sCiAgICBtb250aDogewogICAgICBudW1lcmljOiAiTSIsCiAgICAgICIyLWRpZ2l0IjogIk1NIiwKICAgICAgc2hvcnQ6ICJNTU0iLAogICAgICBsb25nOiAiTU1NTSIsCiAgICB9LAogICAgZGF5OiB7CiAgICAgIG51bWVyaWM6ICJkIiwKICAgICAgIjItZGlnaXQiOiAiZGQiLAogICAgfSwKICAgIHdlZWtkYXk6IHsKICAgICAgc2hvcnQ6ICJFRUUiLAogICAgICBsb25nOiAiRUVFRSIsCiAgICB9LAogICAgZGF5cGVyaW9kOiAiYSIsCiAgICBkYXlQZXJpb2Q6ICJhIiwKICAgIGhvdXIxMjogewogICAgICBudW1lcmljOiAiaCIsCiAgICAgICIyLWRpZ2l0IjogImhoIiwKICAgIH0sCiAgICBob3VyMjQ6IHsKICAgICAgbnVtZXJpYzogIkgiLAogICAgICAiMi1kaWdpdCI6ICJISCIsCiAgICB9LAogICAgbWludXRlOiB7CiAgICAgIG51bWVyaWM6ICJtIiwKICAgICAgIjItZGlnaXQiOiAibW0iLAogICAgfSwKICAgIHNlY29uZDogewogICAgICBudW1lcmljOiAicyIsCiAgICAgICIyLWRpZ2l0IjogInNzIiwKICAgIH0sCiAgICB0aW1lWm9uZU5hbWU6IHsKICAgICAgbG9uZzogIlpaWlpaIiwKICAgICAgc2hvcnQ6ICJaWloiLAogICAgfSwKICB9OwoKICBmdW5jdGlvbiB0b2tlbkZvclBhcnQocGFydCwgZm9ybWF0T3B0cywgcmVzb2x2ZWRPcHRzKSB7CiAgICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBwYXJ0OwoKICAgIGlmICh0eXBlID09PSAibGl0ZXJhbCIpIHsKICAgICAgY29uc3QgaXNTcGFjZSA9IC9eXHMrJC8udGVzdCh2YWx1ZSk7CiAgICAgIHJldHVybiB7CiAgICAgICAgbGl0ZXJhbDogIWlzU3BhY2UsCiAgICAgICAgdmFsOiBpc1NwYWNlID8gIiAiIDogdmFsdWUsCiAgICAgIH07CiAgICB9CgogICAgY29uc3Qgc3R5bGUgPSBmb3JtYXRPcHRzW3R5cGVdOwoKICAgIC8vIFRoZSB1c2VyIG1pZ2h0IGhhdmUgZXhwbGljaXRseSBzcGVjaWZpZWQgaG91cjEyIG9yIGhvdXJDeWNsZQogICAgLy8gaWYgc28sIHJlc3BlY3QgdGhlaXIgZGVjaXNpb24KICAgIC8vIGlmIG5vdCwgcmVmZXIgYmFjayB0byB0aGUgcmVzb2x2ZWRPcHRzLCB3aGljaCBhcmUgYmFzZWQgb24gdGhlIGxvY2FsZQogICAgbGV0IGFjdHVhbFR5cGUgPSB0eXBlOwogICAgaWYgKHR5cGUgPT09ICJob3VyIikgewogICAgICBpZiAoZm9ybWF0T3B0cy5ob3VyMTIgIT0gbnVsbCkgewogICAgICAgIGFjdHVhbFR5cGUgPSBmb3JtYXRPcHRzLmhvdXIxMiA/ICJob3VyMTIiIDogImhvdXIyNCI7CiAgICAgIH0gZWxzZSBpZiAoZm9ybWF0T3B0cy5ob3VyQ3ljbGUgIT0gbnVsbCkgewogICAgICAgIGlmIChmb3JtYXRPcHRzLmhvdXJDeWNsZSA9PT0gImgxMSIgfHwgZm9ybWF0T3B0cy5ob3VyQ3ljbGUgPT09ICJoMTIiKSB7CiAgICAgICAgICBhY3R1YWxUeXBlID0gImhvdXIxMiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGFjdHVhbFR5cGUgPSAiaG91cjI0IjsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gdG9rZW5zIG9ubHkgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIDI0IGhvdXJzIG9yIG5vdCwKICAgICAgICAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byBjaGVjayBob3VyQ3ljbGUgaGVyZSwgd2hpY2ggaXMgbGVzcyBzdXBwb3J0ZWQgYW55d2F5cwogICAgICAgIGFjdHVhbFR5cGUgPSByZXNvbHZlZE9wdHMuaG91cjEyID8gImhvdXIxMiIgOiAiaG91cjI0IjsKICAgICAgfQogICAgfQogICAgbGV0IHZhbCA9IHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsW2FjdHVhbFR5cGVdOwogICAgaWYgKHR5cGVvZiB2YWwgPT09ICJvYmplY3QiKSB7CiAgICAgIHZhbCA9IHZhbFtzdHlsZV07CiAgICB9CgogICAgaWYgKHZhbCkgewogICAgICByZXR1cm4gewogICAgICAgIGxpdGVyYWw6IGZhbHNlLAogICAgICAgIHZhbCwKICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gdW5kZWZpbmVkOwogIH0KCiAgZnVuY3Rpb24gYnVpbGRSZWdleCh1bml0cykgewogICAgY29uc3QgcmUgPSB1bml0cy5tYXAoKHUpID0+IHUucmVnZXgpLnJlZHVjZSgoZiwgcikgPT4gYCR7Zn0oJHtyLnNvdXJjZX0pYCwgIiIpOwogICAgcmV0dXJuIFtgXiR7cmV9JGAsIHVuaXRzXTsKICB9CgogIGZ1bmN0aW9uIG1hdGNoKGlucHV0LCByZWdleCwgaGFuZGxlcnMpIHsKICAgIGNvbnN0IG1hdGNoZXMgPSBpbnB1dC5tYXRjaChyZWdleCk7CgogICAgaWYgKG1hdGNoZXMpIHsKICAgICAgY29uc3QgYWxsID0ge307CiAgICAgIGxldCBtYXRjaEluZGV4ID0gMTsKICAgICAgZm9yIChjb25zdCBpIGluIGhhbmRsZXJzKSB7CiAgICAgICAgaWYgKGhhc093blByb3BlcnR5KGhhbmRsZXJzLCBpKSkgewogICAgICAgICAgY29uc3QgaCA9IGhhbmRsZXJzW2ldLAogICAgICAgICAgICBncm91cHMgPSBoLmdyb3VwcyA/IGguZ3JvdXBzICsgMSA6IDE7CiAgICAgICAgICBpZiAoIWgubGl0ZXJhbCAmJiBoLnRva2VuKSB7CiAgICAgICAgICAgIGFsbFtoLnRva2VuLnZhbFswXV0gPSBoLmRlc2VyKG1hdGNoZXMuc2xpY2UobWF0Y2hJbmRleCwgbWF0Y2hJbmRleCArIGdyb3VwcykpOwogICAgICAgICAgfQogICAgICAgICAgbWF0Y2hJbmRleCArPSBncm91cHM7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBbbWF0Y2hlcywgYWxsXTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBbbWF0Y2hlcywge31dOwogICAgfQogIH0KCiAgZnVuY3Rpb24gZGF0ZVRpbWVGcm9tTWF0Y2hlcyhtYXRjaGVzKSB7CiAgICBjb25zdCB0b0ZpZWxkID0gKHRva2VuKSA9PiB7CiAgICAgIHN3aXRjaCAodG9rZW4pIHsKICAgICAgICBjYXNlICJTIjoKICAgICAgICAgIHJldHVybiAibWlsbGlzZWNvbmQiOwogICAgICAgIGNhc2UgInMiOgogICAgICAgICAgcmV0dXJuICJzZWNvbmQiOwogICAgICAgIGNhc2UgIm0iOgogICAgICAgICAgcmV0dXJuICJtaW51dGUiOwogICAgICAgIGNhc2UgImgiOgogICAgICAgIGNhc2UgIkgiOgogICAgICAgICAgcmV0dXJuICJob3VyIjsKICAgICAgICBjYXNlICJkIjoKICAgICAgICAgIHJldHVybiAiZGF5IjsKICAgICAgICBjYXNlICJvIjoKICAgICAgICAgIHJldHVybiAib3JkaW5hbCI7CiAgICAgICAgY2FzZSAiTCI6CiAgICAgICAgY2FzZSAiTSI6CiAgICAgICAgICByZXR1cm4gIm1vbnRoIjsKICAgICAgICBjYXNlICJ5IjoKICAgICAgICAgIHJldHVybiAieWVhciI7CiAgICAgICAgY2FzZSAiRSI6CiAgICAgICAgY2FzZSAiYyI6CiAgICAgICAgICByZXR1cm4gIndlZWtkYXkiOwogICAgICAgIGNhc2UgIlciOgogICAgICAgICAgcmV0dXJuICJ3ZWVrTnVtYmVyIjsKICAgICAgICBjYXNlICJrIjoKICAgICAgICAgIHJldHVybiAid2Vla1llYXIiOwogICAgICAgIGNhc2UgInEiOgogICAgICAgICAgcmV0dXJuICJxdWFydGVyIjsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgIH07CgogICAgbGV0IHpvbmUgPSBudWxsOwogICAgbGV0IHNwZWNpZmljT2Zmc2V0OwogICAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnopKSB7CiAgICAgIHpvbmUgPSBJQU5BWm9uZS5jcmVhdGUobWF0Y2hlcy56KTsKICAgIH0KCiAgICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuWikpIHsKICAgICAgaWYgKCF6b25lKSB7CiAgICAgICAgem9uZSA9IG5ldyBGaXhlZE9mZnNldFpvbmUobWF0Y2hlcy5aKTsKICAgICAgfQogICAgICBzcGVjaWZpY09mZnNldCA9IG1hdGNoZXMuWjsKICAgIH0KCiAgICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMucSkpIHsKICAgICAgbWF0Y2hlcy5NID0gKG1hdGNoZXMucSAtIDEpICogMyArIDE7CiAgICB9CgogICAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLmgpKSB7CiAgICAgIGlmIChtYXRjaGVzLmggPCAxMiAmJiBtYXRjaGVzLmEgPT09IDEpIHsKICAgICAgICBtYXRjaGVzLmggKz0gMTI7CiAgICAgIH0gZWxzZSBpZiAobWF0Y2hlcy5oID09PSAxMiAmJiBtYXRjaGVzLmEgPT09IDApIHsKICAgICAgICBtYXRjaGVzLmggPSAwOwogICAgICB9CiAgICB9CgogICAgaWYgKG1hdGNoZXMuRyA9PT0gMCAmJiBtYXRjaGVzLnkpIHsKICAgICAgbWF0Y2hlcy55ID0gLW1hdGNoZXMueTsKICAgIH0KCiAgICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMudSkpIHsKICAgICAgbWF0Y2hlcy5TID0gcGFyc2VNaWxsaXMobWF0Y2hlcy51KTsKICAgIH0KCiAgICBjb25zdCB2YWxzID0gT2JqZWN0LmtleXMobWF0Y2hlcykucmVkdWNlKChyLCBrKSA9PiB7CiAgICAgIGNvbnN0IGYgPSB0b0ZpZWxkKGspOwogICAgICBpZiAoZikgewogICAgICAgIHJbZl0gPSBtYXRjaGVzW2tdOwogICAgICB9CgogICAgICByZXR1cm4gcjsKICAgIH0sIHt9KTsKCiAgICByZXR1cm4gW3ZhbHMsIHpvbmUsIHNwZWNpZmljT2Zmc2V0XTsKICB9CgogIGxldCBkdW1teURhdGVUaW1lQ2FjaGUgPSBudWxsOwoKICBmdW5jdGlvbiBnZXREdW1teURhdGVUaW1lKCkgewogICAgaWYgKCFkdW1teURhdGVUaW1lQ2FjaGUpIHsKICAgICAgZHVtbXlEYXRlVGltZUNhY2hlID0gRGF0ZVRpbWUuZnJvbU1pbGxpcygxNTU1NTU1NTU1NTU1KTsKICAgIH0KCiAgICByZXR1cm4gZHVtbXlEYXRlVGltZUNhY2hlOwogIH0KCiAgZnVuY3Rpb24gbWF5YmVFeHBhbmRNYWNyb1Rva2VuKHRva2VuLCBsb2NhbGUpIHsKICAgIGlmICh0b2tlbi5saXRlcmFsKSB7CiAgICAgIHJldHVybiB0b2tlbjsKICAgIH0KCiAgICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4udmFsKTsKICAgIGNvbnN0IHRva2VucyA9IGZvcm1hdE9wdHNUb1Rva2Vucyhmb3JtYXRPcHRzLCBsb2NhbGUpOwoKICAgIGlmICh0b2tlbnMgPT0gbnVsbCB8fCB0b2tlbnMuaW5jbHVkZXModW5kZWZpbmVkKSkgewogICAgICByZXR1cm4gdG9rZW47CiAgICB9CgogICAgcmV0dXJuIHRva2VuczsKICB9CgogIGZ1bmN0aW9uIGV4cGFuZE1hY3JvVG9rZW5zKHRva2VucywgbG9jYWxlKSB7CiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi50b2tlbnMubWFwKCh0KSA9PiBtYXliZUV4cGFuZE1hY3JvVG9rZW4odCwgbG9jYWxlKSkpOwogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KCiAgZnVuY3Rpb24gZXhwbGFpbkZyb21Ub2tlbnMobG9jYWxlLCBpbnB1dCwgZm9ybWF0KSB7CiAgICBjb25zdCB0b2tlbnMgPSBleHBhbmRNYWNyb1Rva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm9ybWF0KSwgbG9jYWxlKSwKICAgICAgdW5pdHMgPSB0b2tlbnMubWFwKCh0KSA9PiB1bml0Rm9yVG9rZW4odCwgbG9jYWxlKSksCiAgICAgIGRpc3F1YWxpZnlpbmdVbml0ID0gdW5pdHMuZmluZCgodCkgPT4gdC5pbnZhbGlkUmVhc29uKTsKCiAgICBpZiAoZGlzcXVhbGlmeWluZ1VuaXQpIHsKICAgICAgcmV0dXJuIHsgaW5wdXQsIHRva2VucywgaW52YWxpZFJlYXNvbjogZGlzcXVhbGlmeWluZ1VuaXQuaW52YWxpZFJlYXNvbiB9OwogICAgfSBlbHNlIHsKICAgICAgY29uc3QgW3JlZ2V4U3RyaW5nLCBoYW5kbGVyc10gPSBidWlsZFJlZ2V4KHVuaXRzKSwKICAgICAgICByZWdleCA9IFJlZ0V4cChyZWdleFN0cmluZywgImkiKSwKICAgICAgICBbcmF3TWF0Y2hlcywgbWF0Y2hlc10gPSBtYXRjaChpbnB1dCwgcmVnZXgsIGhhbmRsZXJzKSwKICAgICAgICBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldF0gPSBtYXRjaGVzCiAgICAgICAgICA/IGRhdGVUaW1lRnJvbU1hdGNoZXMobWF0Y2hlcykKICAgICAgICAgIDogW251bGwsIG51bGwsIHVuZGVmaW5lZF07CiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eShtYXRjaGVzLCAiYSIpICYmIGhhc093blByb3BlcnR5KG1hdGNoZXMsICJIIikpIHsKICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoCiAgICAgICAgICAiQ2FuJ3QgaW5jbHVkZSBtZXJpZGllbSB3aGVuIHNwZWNpZnlpbmcgMjQtaG91ciBmb3JtYXQiCiAgICAgICAgKTsKICAgICAgfQogICAgICByZXR1cm4geyBpbnB1dCwgdG9rZW5zLCByZWdleCwgcmF3TWF0Y2hlcywgbWF0Y2hlcywgcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldCB9OwogICAgfQogIH0KCiAgZnVuY3Rpb24gcGFyc2VGcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkgewogICAgY29uc3QgeyByZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkUmVhc29uIH0gPSBleHBsYWluRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpOwogICAgcmV0dXJuIFtyZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkUmVhc29uXTsKICB9CgogIGZ1bmN0aW9uIGZvcm1hdE9wdHNUb1Rva2Vucyhmb3JtYXRPcHRzLCBsb2NhbGUpIHsKICAgIGlmICghZm9ybWF0T3B0cykgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBjb25zdCBmb3JtYXR0ZXIgPSBGb3JtYXR0ZXIuY3JlYXRlKGxvY2FsZSwgZm9ybWF0T3B0cyk7CiAgICBjb25zdCBkZiA9IGZvcm1hdHRlci5kdEZvcm1hdHRlcihnZXREdW1teURhdGVUaW1lKCkpOwogICAgY29uc3QgcGFydHMgPSBkZi5mb3JtYXRUb1BhcnRzKCk7CiAgICBjb25zdCByZXNvbHZlZE9wdHMgPSBkZi5yZXNvbHZlZE9wdGlvbnMoKTsKICAgIHJldHVybiBwYXJ0cy5tYXAoKHApID0+IHRva2VuRm9yUGFydChwLCBmb3JtYXRPcHRzLCByZXNvbHZlZE9wdHMpKTsKICB9CgogIGNvbnN0IG5vbkxlYXBMYWRkZXIgPSBbMCwgMzEsIDU5LCA5MCwgMTIwLCAxNTEsIDE4MSwgMjEyLCAyNDMsIDI3MywgMzA0LCAzMzRdLAogICAgbGVhcExhZGRlciA9IFswLCAzMSwgNjAsIDkxLCAxMjEsIDE1MiwgMTgyLCAyMTMsIDI0NCwgMjc0LCAzMDUsIDMzNV07CgogIGZ1bmN0aW9uIHVuaXRPdXRPZlJhbmdlKHVuaXQsIHZhbHVlKSB7CiAgICByZXR1cm4gbmV3IEludmFsaWQoCiAgICAgICJ1bml0IG91dCBvZiByYW5nZSIsCiAgICAgIGB5b3Ugc3BlY2lmaWVkICR7dmFsdWV9IChvZiB0eXBlICR7dHlwZW9mIHZhbHVlfSkgYXMgYSAke3VuaXR9LCB3aGljaCBpcyBpbnZhbGlkYAogICAgKTsKICB9CgogIGZ1bmN0aW9uIGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KSB7CiAgICBjb25zdCBkID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKTsKCiAgICBpZiAoeWVhciA8IDEwMCAmJiB5ZWFyID49IDApIHsKICAgICAgZC5zZXRVVENGdWxsWWVhcihkLmdldFVUQ0Z1bGxZZWFyKCkgLSAxOTAwKTsKICAgIH0KCiAgICBjb25zdCBqcyA9IGQuZ2V0VVRDRGF5KCk7CgogICAgcmV0dXJuIGpzID09PSAwID8gNyA6IGpzOwogIH0KCiAgZnVuY3Rpb24gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSkgewogICAgcmV0dXJuIGRheSArIChpc0xlYXBZZWFyKHllYXIpID8gbGVhcExhZGRlciA6IG5vbkxlYXBMYWRkZXIpW21vbnRoIC0gMV07CiAgfQoKICBmdW5jdGlvbiB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpIHsKICAgIGNvbnN0IHRhYmxlID0gaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyLAogICAgICBtb250aDAgPSB0YWJsZS5maW5kSW5kZXgoKGkpID0+IGkgPCBvcmRpbmFsKSwKICAgICAgZGF5ID0gb3JkaW5hbCAtIHRhYmxlW21vbnRoMF07CiAgICByZXR1cm4geyBtb250aDogbW9udGgwICsgMSwgZGF5IH07CiAgfQoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwoKICBmdW5jdGlvbiBncmVnb3JpYW5Ub1dlZWsoZ3JlZ09iaikgewogICAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5IH0gPSBncmVnT2JqLAogICAgICBvcmRpbmFsID0gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSksCiAgICAgIHdlZWtkYXkgPSBkYXlPZldlZWsoeWVhciwgbW9udGgsIGRheSk7CgogICAgbGV0IHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChvcmRpbmFsIC0gd2Vla2RheSArIDEwKSAvIDcpLAogICAgICB3ZWVrWWVhcjsKCiAgICBpZiAod2Vla051bWJlciA8IDEpIHsKICAgICAgd2Vla1llYXIgPSB5ZWFyIC0gMTsKICAgICAgd2Vla051bWJlciA9IHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcik7CiAgICB9IGVsc2UgaWYgKHdlZWtOdW1iZXIgPiB3ZWVrc0luV2Vla1llYXIoeWVhcikpIHsKICAgICAgd2Vla1llYXIgPSB5ZWFyICsgMTsKICAgICAgd2Vla051bWJlciA9IDE7CiAgICB9IGVsc2UgewogICAgICB3ZWVrWWVhciA9IHllYXI7CiAgICB9CgogICAgcmV0dXJuIHsgd2Vla1llYXIsIHdlZWtOdW1iZXIsIHdlZWtkYXksIC4uLnRpbWVPYmplY3QoZ3JlZ09iaikgfTsKICB9CgogIGZ1bmN0aW9uIHdlZWtUb0dyZWdvcmlhbih3ZWVrRGF0YSkgewogICAgY29uc3QgeyB3ZWVrWWVhciwgd2Vla051bWJlciwgd2Vla2RheSB9ID0gd2Vla0RhdGEsCiAgICAgIHdlZWtkYXlPZkphbjQgPSBkYXlPZldlZWsod2Vla1llYXIsIDEsIDQpLAogICAgICB5ZWFySW5EYXlzID0gZGF5c0luWWVhcih3ZWVrWWVhcik7CgogICAgbGV0IG9yZGluYWwgPSB3ZWVrTnVtYmVyICogNyArIHdlZWtkYXkgLSB3ZWVrZGF5T2ZKYW40IC0gMywKICAgICAgeWVhcjsKCiAgICBpZiAob3JkaW5hbCA8IDEpIHsKICAgICAgeWVhciA9IHdlZWtZZWFyIC0gMTsKICAgICAgb3JkaW5hbCArPSBkYXlzSW5ZZWFyKHllYXIpOwogICAgfSBlbHNlIGlmIChvcmRpbmFsID4geWVhckluRGF5cykgewogICAgICB5ZWFyID0gd2Vla1llYXIgKyAxOwogICAgICBvcmRpbmFsIC09IGRheXNJblllYXIod2Vla1llYXIpOwogICAgfSBlbHNlIHsKICAgICAgeWVhciA9IHdlZWtZZWFyOwogICAgfQoKICAgIGNvbnN0IHsgbW9udGgsIGRheSB9ID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKTsKICAgIHJldHVybiB7IHllYXIsIG1vbnRoLCBkYXksIC4uLnRpbWVPYmplY3Qod2Vla0RhdGEpIH07CiAgfQoKICBmdW5jdGlvbiBncmVnb3JpYW5Ub09yZGluYWwoZ3JlZ0RhdGEpIHsKICAgIGNvbnN0IHsgeWVhciwgbW9udGgsIGRheSB9ID0gZ3JlZ0RhdGE7CiAgICBjb25zdCBvcmRpbmFsID0gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSk7CiAgICByZXR1cm4geyB5ZWFyLCBvcmRpbmFsLCAuLi50aW1lT2JqZWN0KGdyZWdEYXRhKSB9OwogIH0KCiAgZnVuY3Rpb24gb3JkaW5hbFRvR3JlZ29yaWFuKG9yZGluYWxEYXRhKSB7CiAgICBjb25zdCB7IHllYXIsIG9yZGluYWwgfSA9IG9yZGluYWxEYXRhOwogICAgY29uc3QgeyBtb250aCwgZGF5IH0gPSB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpOwogICAgcmV0dXJuIHsgeWVhciwgbW9udGgsIGRheSwgLi4udGltZU9iamVjdChvcmRpbmFsRGF0YSkgfTsKICB9CgogIGZ1bmN0aW9uIGhhc0ludmFsaWRXZWVrRGF0YShvYmopIHsKICAgIGNvbnN0IHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoud2Vla1llYXIpLAogICAgICB2YWxpZFdlZWsgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla051bWJlciwgMSwgd2Vla3NJbldlZWtZZWFyKG9iai53ZWVrWWVhcikpLAogICAgICB2YWxpZFdlZWtkYXkgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla2RheSwgMSwgNyk7CgogICAgaWYgKCF2YWxpZFllYXIpIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ3ZWVrWWVhciIsIG9iai53ZWVrWWVhcik7CiAgICB9IGVsc2UgaWYgKCF2YWxpZFdlZWspIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ3ZWVrIiwgb2JqLndlZWspOwogICAgfSBlbHNlIGlmICghdmFsaWRXZWVrZGF5KSB7CiAgICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZSgid2Vla2RheSIsIG9iai53ZWVrZGF5KTsKICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBoYXNJbnZhbGlkT3JkaW5hbERhdGEob2JqKSB7CiAgICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLAogICAgICB2YWxpZE9yZGluYWwgPSBpbnRlZ2VyQmV0d2VlbihvYmoub3JkaW5hbCwgMSwgZGF5c0luWWVhcihvYmoueWVhcikpOwoKICAgIGlmICghdmFsaWRZZWFyKSB7CiAgICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZSgieWVhciIsIG9iai55ZWFyKTsKICAgIH0gZWxzZSBpZiAoIXZhbGlkT3JkaW5hbCkgewogICAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIm9yZGluYWwiLCBvYmoub3JkaW5hbCk7CiAgICB9IGVsc2UgcmV0dXJuIGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEob2JqKSB7CiAgICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLAogICAgICB2YWxpZE1vbnRoID0gaW50ZWdlckJldHdlZW4ob2JqLm1vbnRoLCAxLCAxMiksCiAgICAgIHZhbGlkRGF5ID0gaW50ZWdlckJldHdlZW4ob2JqLmRheSwgMSwgZGF5c0luTW9udGgob2JqLnllYXIsIG9iai5tb250aCkpOwoKICAgIGlmICghdmFsaWRZZWFyKSB7CiAgICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZSgieWVhciIsIG9iai55ZWFyKTsKICAgIH0gZWxzZSBpZiAoIXZhbGlkTW9udGgpIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJtb250aCIsIG9iai5tb250aCk7CiAgICB9IGVsc2UgaWYgKCF2YWxpZERheSkgewogICAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoImRheSIsIG9iai5kYXkpOwogICAgfSBlbHNlIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIGhhc0ludmFsaWRUaW1lRGF0YShvYmopIHsKICAgIGNvbnN0IHsgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0gPSBvYmo7CiAgICBjb25zdCB2YWxpZEhvdXIgPQogICAgICAgIGludGVnZXJCZXR3ZWVuKGhvdXIsIDAsIDIzKSB8fAogICAgICAgIChob3VyID09PSAyNCAmJiBtaW51dGUgPT09IDAgJiYgc2Vjb25kID09PSAwICYmIG1pbGxpc2Vjb25kID09PSAwKSwKICAgICAgdmFsaWRNaW51dGUgPSBpbnRlZ2VyQmV0d2VlbihtaW51dGUsIDAsIDU5KSwKICAgICAgdmFsaWRTZWNvbmQgPSBpbnRlZ2VyQmV0d2VlbihzZWNvbmQsIDAsIDU5KSwKICAgICAgdmFsaWRNaWxsaXNlY29uZCA9IGludGVnZXJCZXR3ZWVuKG1pbGxpc2Vjb25kLCAwLCA5OTkpOwoKICAgIGlmICghdmFsaWRIb3VyKSB7CiAgICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZSgiaG91ciIsIGhvdXIpOwogICAgfSBlbHNlIGlmICghdmFsaWRNaW51dGUpIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJtaW51dGUiLCBtaW51dGUpOwogICAgfSBlbHNlIGlmICghdmFsaWRTZWNvbmQpIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJzZWNvbmQiLCBzZWNvbmQpOwogICAgfSBlbHNlIGlmICghdmFsaWRNaWxsaXNlY29uZCkgewogICAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIm1pbGxpc2Vjb25kIiwgbWlsbGlzZWNvbmQpOwogICAgfSBlbHNlIHJldHVybiBmYWxzZTsKICB9CgogIGNvbnN0IElOVkFMSUQgPSAiSW52YWxpZCBEYXRlVGltZSI7CiAgY29uc3QgTUFYX0RBVEUgPSA4LjY0ZTE1OwoKICBmdW5jdGlvbiB1bnN1cHBvcnRlZFpvbmUoem9uZSkgewogICAgcmV0dXJuIG5ldyBJbnZhbGlkKCJ1bnN1cHBvcnRlZCB6b25lIiwgYHRoZSB6b25lICIke3pvbmUubmFtZX0iIGlzIG5vdCBzdXBwb3J0ZWRgKTsKICB9CgogIC8vIHdlIGNhY2hlIHdlZWsgZGF0YSBvbiB0aGUgRFQgb2JqZWN0IGFuZCB0aGlzIGludGVybWVkaWF0ZXMgdGhlIGNhY2hlCiAgZnVuY3Rpb24gcG9zc2libHlDYWNoZWRXZWVrRGF0YShkdCkgewogICAgaWYgKGR0LndlZWtEYXRhID09PSBudWxsKSB7CiAgICAgIGR0LndlZWtEYXRhID0gZ3JlZ29yaWFuVG9XZWVrKGR0LmMpOwogICAgfQogICAgcmV0dXJuIGR0LndlZWtEYXRhOwogIH0KCiAgLy8gY2xvbmUgcmVhbGx5IG1lYW5zLCAibWFrZSBhIG5ldyBvYmplY3Qgd2l0aCB0aGVzZSBtb2RpZmljYXRpb25zIi4gYWxsICJzZXR0ZXJzIiByZWFsbHkgdXNlIHRoaXMKICAvLyB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IHdoaWxlIG9ubHkgY2hhbmdpbmcgc29tZSBvZiB0aGUgcHJvcGVydGllcwogIGZ1bmN0aW9uIGNsb25lKGluc3QsIGFsdHMpIHsKICAgIGNvbnN0IGN1cnJlbnQgPSB7CiAgICAgIHRzOiBpbnN0LnRzLAogICAgICB6b25lOiBpbnN0LnpvbmUsCiAgICAgIGM6IGluc3QuYywKICAgICAgbzogaW5zdC5vLAogICAgICBsb2M6IGluc3QubG9jLAogICAgICBpbnZhbGlkOiBpbnN0LmludmFsaWQsCiAgICB9OwogICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7IC4uLmN1cnJlbnQsIC4uLmFsdHMsIG9sZDogY3VycmVudCB9KTsKICB9CgogIC8vIGZpbmQgdGhlIHJpZ2h0IG9mZnNldCBhIGdpdmVuIGxvY2FsIHRpbWUuIFRoZSBvIGlucHV0IGlzIG91ciBndWVzcywgd2hpY2ggZGV0ZXJtaW5lcyB3aGljaAogIC8vIG9mZnNldCB3ZSdsbCBwaWNrIGluIGFtYmlndW91cyBjYXNlcyAoZS5nLiB0aGVyZSBhcmUgdHdvIDMgQU1zIGIvYyBGYWxsYmFjayBEU1QpCiAgZnVuY3Rpb24gZml4T2Zmc2V0KGxvY2FsVFMsIG8sIHR6KSB7CiAgICAvLyBPdXIgVVRDIHRpbWUgaXMganVzdCBhIGd1ZXNzIGJlY2F1c2Ugb3VyIG9mZnNldCBpcyBqdXN0IGEgZ3Vlc3MKICAgIGxldCB1dGNHdWVzcyA9IGxvY2FsVFMgLSBvICogNjAgKiAxMDAwOwoKICAgIC8vIFRlc3Qgd2hldGhlciB0aGUgem9uZSBtYXRjaGVzIHRoZSBvZmZzZXQgZm9yIHRoaXMgdHMKICAgIGNvbnN0IG8yID0gdHoub2Zmc2V0KHV0Y0d1ZXNzKTsKCiAgICAvLyBJZiBzbywgb2Zmc2V0IGRpZG4ndCBjaGFuZ2UgYW5kIHdlJ3JlIGRvbmUKICAgIGlmIChvID09PSBvMikgewogICAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvXTsKICAgIH0KCiAgICAvLyBJZiBub3QsIGNoYW5nZSB0aGUgdHMgYnkgdGhlIGRpZmZlcmVuY2UgaW4gdGhlIG9mZnNldAogICAgdXRjR3Vlc3MgLT0gKG8yIC0gbykgKiA2MCAqIDEwMDA7CgogICAgLy8gSWYgdGhhdCBnaXZlcyB1cyB0aGUgbG9jYWwgdGltZSB3ZSB3YW50LCB3ZSdyZSBkb25lCiAgICBjb25zdCBvMyA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7CiAgICBpZiAobzIgPT09IG8zKSB7CiAgICAgIHJldHVybiBbdXRjR3Vlc3MsIG8yXTsKICAgIH0KCiAgICAvLyBJZiBpdCdzIGRpZmZlcmVudCwgd2UncmUgaW4gYSBob2xlIHRpbWUuIFRoZSBvZmZzZXQgaGFzIGNoYW5nZWQsIGJ1dCB0aGUgd2UgZG9uJ3QgYWRqdXN0IHRoZSB0aW1lCiAgICByZXR1cm4gW2xvY2FsVFMgLSBNYXRoLm1pbihvMiwgbzMpICogNjAgKiAxMDAwLCBNYXRoLm1heChvMiwgbzMpXTsKICB9CgogIC8vIGNvbnZlcnQgYW4gZXBvY2ggdGltZXN0YW1wIGludG8gYSBjYWxlbmRhciBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gb2Zmc2V0CiAgZnVuY3Rpb24gdHNUb09iaih0cywgb2Zmc2V0KSB7CiAgICB0cyArPSBvZmZzZXQgKiA2MCAqIDEwMDA7CgogICAgY29uc3QgZCA9IG5ldyBEYXRlKHRzKTsKCiAgICByZXR1cm4gewogICAgICB5ZWFyOiBkLmdldFVUQ0Z1bGxZZWFyKCksCiAgICAgIG1vbnRoOiBkLmdldFVUQ01vbnRoKCkgKyAxLAogICAgICBkYXk6IGQuZ2V0VVRDRGF0ZSgpLAogICAgICBob3VyOiBkLmdldFVUQ0hvdXJzKCksCiAgICAgIG1pbnV0ZTogZC5nZXRVVENNaW51dGVzKCksCiAgICAgIHNlY29uZDogZC5nZXRVVENTZWNvbmRzKCksCiAgICAgIG1pbGxpc2Vjb25kOiBkLmdldFVUQ01pbGxpc2Vjb25kcygpLAogICAgfTsKICB9CgogIC8vIGNvbnZlcnQgYSBjYWxlbmRhciBvYmplY3QgdG8gYSBlcG9jaCB0aW1lc3RhbXAKICBmdW5jdGlvbiBvYmpUb1RTKG9iaiwgb2Zmc2V0LCB6b25lKSB7CiAgICByZXR1cm4gZml4T2Zmc2V0KG9ialRvTG9jYWxUUyhvYmopLCBvZmZzZXQsIHpvbmUpOwogIH0KCiAgLy8gY3JlYXRlIGEgbmV3IERUIGluc3RhbmNlIGJ5IGFkZGluZyBhIGR1cmF0aW9uLCBhZGp1c3RpbmcgZm9yIERTVHMKICBmdW5jdGlvbiBhZGp1c3RUaW1lKGluc3QsIGR1cikgewogICAgY29uc3Qgb1ByZSA9IGluc3QubywKICAgICAgeWVhciA9IGluc3QuYy55ZWFyICsgTWF0aC50cnVuYyhkdXIueWVhcnMpLAogICAgICBtb250aCA9IGluc3QuYy5tb250aCArIE1hdGgudHJ1bmMoZHVyLm1vbnRocykgKyBNYXRoLnRydW5jKGR1ci5xdWFydGVycykgKiAzLAogICAgICBjID0gewogICAgICAgIC4uLmluc3QuYywKICAgICAgICB5ZWFyLAogICAgICAgIG1vbnRoLAogICAgICAgIGRheToKICAgICAgICAgIE1hdGgubWluKGluc3QuYy5kYXksIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSkgKwogICAgICAgICAgTWF0aC50cnVuYyhkdXIuZGF5cykgKwogICAgICAgICAgTWF0aC50cnVuYyhkdXIud2Vla3MpICogNywKICAgICAgfSwKICAgICAgbWlsbGlzVG9BZGQgPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsKICAgICAgICB5ZWFyczogZHVyLnllYXJzIC0gTWF0aC50cnVuYyhkdXIueWVhcnMpLAogICAgICAgIHF1YXJ0ZXJzOiBkdXIucXVhcnRlcnMgLSBNYXRoLnRydW5jKGR1ci5xdWFydGVycyksCiAgICAgICAgbW9udGhzOiBkdXIubW9udGhzIC0gTWF0aC50cnVuYyhkdXIubW9udGhzKSwKICAgICAgICB3ZWVrczogZHVyLndlZWtzIC0gTWF0aC50cnVuYyhkdXIud2Vla3MpLAogICAgICAgIGRheXM6IGR1ci5kYXlzIC0gTWF0aC50cnVuYyhkdXIuZGF5cyksCiAgICAgICAgaG91cnM6IGR1ci5ob3VycywKICAgICAgICBtaW51dGVzOiBkdXIubWludXRlcywKICAgICAgICBzZWNvbmRzOiBkdXIuc2Vjb25kcywKICAgICAgICBtaWxsaXNlY29uZHM6IGR1ci5taWxsaXNlY29uZHMsCiAgICAgIH0pLmFzKCJtaWxsaXNlY29uZHMiKSwKICAgICAgbG9jYWxUUyA9IG9ialRvTG9jYWxUUyhjKTsKCiAgICBsZXQgW3RzLCBvXSA9IGZpeE9mZnNldChsb2NhbFRTLCBvUHJlLCBpbnN0LnpvbmUpOwoKICAgIGlmIChtaWxsaXNUb0FkZCAhPT0gMCkgewogICAgICB0cyArPSBtaWxsaXNUb0FkZDsKICAgICAgLy8gdGhhdCBjb3VsZCBoYXZlIGNoYW5nZWQgdGhlIG9mZnNldCBieSBnb2luZyBvdmVyIGEgRFNULCBidXQgd2Ugd2FudCB0byBrZWVwIHRoZSB0cyB0aGUgc2FtZQogICAgICBvID0gaW5zdC56b25lLm9mZnNldCh0cyk7CiAgICB9CgogICAgcmV0dXJuIHsgdHMsIG8gfTsKICB9CgogIC8vIGhlbHBlciB1c2VmdWwgaW4gdHVybmluZyB0aGUgcmVzdWx0cyBvZiBwYXJzaW5nIGludG8gcmVhbCBkYXRlcwogIC8vIGJ5IGhhbmRsaW5nIHRoZSB6b25lIG9wdGlvbnMKICBmdW5jdGlvbiBwYXJzZURhdGFUb0RhdGVUaW1lKHBhcnNlZCwgcGFyc2VkWm9uZSwgb3B0cywgZm9ybWF0LCB0ZXh0LCBzcGVjaWZpY09mZnNldCkgewogICAgY29uc3QgeyBzZXRab25lLCB6b25lIH0gPSBvcHRzOwogICAgaWYgKChwYXJzZWQgJiYgT2JqZWN0LmtleXMocGFyc2VkKS5sZW5ndGggIT09IDApIHx8IHBhcnNlZFpvbmUpIHsKICAgICAgY29uc3QgaW50ZXJwcmV0YXRpb25ab25lID0gcGFyc2VkWm9uZSB8fCB6b25lLAogICAgICAgIGluc3QgPSBEYXRlVGltZS5mcm9tT2JqZWN0KHBhcnNlZCwgewogICAgICAgICAgLi4ub3B0cywKICAgICAgICAgIHpvbmU6IGludGVycHJldGF0aW9uWm9uZSwKICAgICAgICAgIHNwZWNpZmljT2Zmc2V0LAogICAgICAgIH0pOwogICAgICByZXR1cm4gc2V0Wm9uZSA/IGluc3QgOiBpbnN0LnNldFpvbmUoem9uZSk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgKICAgICAgICBuZXcgSW52YWxpZCgidW5wYXJzYWJsZSIsIGB0aGUgaW5wdXQgIiR7dGV4dH0iIGNhbid0IGJlIHBhcnNlZCBhcyAke2Zvcm1hdH1gKQogICAgICApOwogICAgfQogIH0KCiAgLy8gaWYgeW91IHdhbnQgdG8gb3V0cHV0IGEgdGVjaG5pY2FsIGZvcm1hdCAoZS5nLiBSRkMgMjgyMiksIHRoaXMgaGVscGVyCiAgLy8gaGVscHMgaGFuZGxlIHRoZSBkZXRhaWxzCiAgZnVuY3Rpb24gdG9UZWNoRm9ybWF0KGR0LCBmb3JtYXQsIGFsbG93WiA9IHRydWUpIHsKICAgIHJldHVybiBkdC5pc1ZhbGlkCiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZShMb2NhbGUuY3JlYXRlKCJlbi1VUyIpLCB7CiAgICAgICAgICBhbGxvd1osCiAgICAgICAgICBmb3JjZVNpbXBsZTogdHJ1ZSwKICAgICAgICB9KS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZvcm1hdCkKICAgICAgOiBudWxsOwogIH0KCiAgZnVuY3Rpb24gdG9JU09EYXRlKG8sIGV4dGVuZGVkKSB7CiAgICBjb25zdCBsb25nRm9ybWF0ID0gby5jLnllYXIgPiA5OTk5IHx8IG8uYy55ZWFyIDwgMDsKICAgIGxldCBjID0gIiI7CiAgICBpZiAobG9uZ0Zvcm1hdCAmJiBvLmMueWVhciA+PSAwKSBjICs9ICIrIjsKICAgIGMgKz0gcGFkU3RhcnQoby5jLnllYXIsIGxvbmdGb3JtYXQgPyA2IDogNCk7CgogICAgaWYgKGV4dGVuZGVkKSB7CiAgICAgIGMgKz0gIi0iOwogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5tb250aCk7CiAgICAgIGMgKz0gIi0iOwogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpOwogICAgfSBlbHNlIHsKICAgICAgYyArPSBwYWRTdGFydChvLmMubW9udGgpOwogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpOwogICAgfQogICAgcmV0dXJuIGM7CiAgfQoKICBmdW5jdGlvbiB0b0lTT1RpbWUoCiAgICBvLAogICAgZXh0ZW5kZWQsCiAgICBzdXBwcmVzc1NlY29uZHMsCiAgICBzdXBwcmVzc01pbGxpc2Vjb25kcywKICAgIGluY2x1ZGVPZmZzZXQsCiAgICBleHRlbmRlZFpvbmUKICApIHsKICAgIGxldCBjID0gcGFkU3RhcnQoby5jLmhvdXIpOwogICAgaWYgKGV4dGVuZGVkKSB7CiAgICAgIGMgKz0gIjoiOwogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpOwogICAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8IG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykgewogICAgICAgIGMgKz0gIjoiOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpOwogICAgfQoKICAgIGlmIChvLmMubWlsbGlzZWNvbmQgIT09IDAgfHwgby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7CiAgICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7CgogICAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8ICFzdXBwcmVzc01pbGxpc2Vjb25kcykgewogICAgICAgIGMgKz0gIi4iOwogICAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTsKICAgICAgfQogICAgfQoKICAgIGlmIChpbmNsdWRlT2Zmc2V0KSB7CiAgICAgIGlmIChvLmlzT2Zmc2V0Rml4ZWQgJiYgby5vZmZzZXQgPT09IDAgJiYgIWV4dGVuZGVkWm9uZSkgewogICAgICAgIGMgKz0gIloiOwogICAgICB9IGVsc2UgaWYgKG8ubyA8IDApIHsKICAgICAgICBjICs9ICItIjsKICAgICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoLW8ubyAvIDYwKSk7CiAgICAgICAgYyArPSAiOiI7CiAgICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gJSA2MCkpOwogICAgICB9IGVsc2UgewogICAgICAgIGMgKz0gIisiOwogICAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gLyA2MCkpOwogICAgICAgIGMgKz0gIjoiOwogICAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gJSA2MCkpOwogICAgICB9CiAgICB9CgogICAgaWYgKGV4dGVuZGVkWm9uZSkgewogICAgICBjICs9ICJbIiArIG8uem9uZS5pYW5hTmFtZSArICJdIjsKICAgIH0KICAgIHJldHVybiBjOwogIH0KCiAgLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzCiAgY29uc3QgZGVmYXVsdFVuaXRWYWx1ZXMgPSB7CiAgICAgIG1vbnRoOiAxLAogICAgICBkYXk6IDEsCiAgICAgIGhvdXI6IDAsCiAgICAgIG1pbnV0ZTogMCwKICAgICAgc2Vjb25kOiAwLAogICAgICBtaWxsaXNlY29uZDogMCwKICAgIH0sCiAgICBkZWZhdWx0V2Vla1VuaXRWYWx1ZXMgPSB7CiAgICAgIHdlZWtOdW1iZXI6IDEsCiAgICAgIHdlZWtkYXk6IDEsCiAgICAgIGhvdXI6IDAsCiAgICAgIG1pbnV0ZTogMCwKICAgICAgc2Vjb25kOiAwLAogICAgICBtaWxsaXNlY29uZDogMCwKICAgIH0sCiAgICBkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXMgPSB7CiAgICAgIG9yZGluYWw6IDEsCiAgICAgIGhvdXI6IDAsCiAgICAgIG1pbnV0ZTogMCwKICAgICAgc2Vjb25kOiAwLAogICAgICBtaWxsaXNlY29uZDogMCwKICAgIH07CgogIC8vIFVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzLCBzb3J0ZWQgYnkgYmlnbmVzcwogIGNvbnN0IG9yZGVyZWRVbml0cyA9IFsieWVhciIsICJtb250aCIsICJkYXkiLCAiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIm1pbGxpc2Vjb25kIl0sCiAgICBvcmRlcmVkV2Vla1VuaXRzID0gWwogICAgICAid2Vla1llYXIiLAogICAgICAid2Vla051bWJlciIsCiAgICAgICJ3ZWVrZGF5IiwKICAgICAgImhvdXIiLAogICAgICAibWludXRlIiwKICAgICAgInNlY29uZCIsCiAgICAgICJtaWxsaXNlY29uZCIsCiAgICBdLAogICAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFsieWVhciIsICJvcmRpbmFsIiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJtaWxsaXNlY29uZCJdOwoKICAvLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHMKICBmdW5jdGlvbiBub3JtYWxpemVVbml0KHVuaXQpIHsKICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7CiAgICAgIHllYXI6ICJ5ZWFyIiwKICAgICAgeWVhcnM6ICJ5ZWFyIiwKICAgICAgbW9udGg6ICJtb250aCIsCiAgICAgIG1vbnRoczogIm1vbnRoIiwKICAgICAgZGF5OiAiZGF5IiwKICAgICAgZGF5czogImRheSIsCiAgICAgIGhvdXI6ICJob3VyIiwKICAgICAgaG91cnM6ICJob3VyIiwKICAgICAgbWludXRlOiAibWludXRlIiwKICAgICAgbWludXRlczogIm1pbnV0ZSIsCiAgICAgIHF1YXJ0ZXI6ICJxdWFydGVyIiwKICAgICAgcXVhcnRlcnM6ICJxdWFydGVyIiwKICAgICAgc2Vjb25kOiAic2Vjb25kIiwKICAgICAgc2Vjb25kczogInNlY29uZCIsCiAgICAgIG1pbGxpc2Vjb25kOiAibWlsbGlzZWNvbmQiLAogICAgICBtaWxsaXNlY29uZHM6ICJtaWxsaXNlY29uZCIsCiAgICAgIHdlZWtkYXk6ICJ3ZWVrZGF5IiwKICAgICAgd2Vla2RheXM6ICJ3ZWVrZGF5IiwKICAgICAgd2Vla251bWJlcjogIndlZWtOdW1iZXIiLAogICAgICB3ZWVrc251bWJlcjogIndlZWtOdW1iZXIiLAogICAgICB3ZWVrbnVtYmVyczogIndlZWtOdW1iZXIiLAogICAgICB3ZWVreWVhcjogIndlZWtZZWFyIiwKICAgICAgd2Vla3llYXJzOiAid2Vla1llYXIiLAogICAgICBvcmRpbmFsOiAib3JkaW5hbCIsCiAgICB9W3VuaXQudG9Mb3dlckNhc2UoKV07CgogICAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTsKCiAgICByZXR1cm4gbm9ybWFsaXplZDsKICB9CgogIC8vIHRoaXMgaXMgYSBkdW1iZWQgZG93biB2ZXJzaW9uIG9mIGZyb21PYmplY3QoKSB0aGF0IHJ1bnMgYWJvdXQgNjAlIGZhc3RlcgogIC8vIGJ1dCBkb2Vzbid0IGRvIGFueSB2YWxpZGF0aW9uLCBtYWtlcyBhIGJ1bmNoIG9mIGFzc3VtcHRpb25zIGFib3V0IHdoYXQgdW5pdHMKICAvLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLgogIGZ1bmN0aW9uIHF1aWNrRFQob2JqLCBvcHRzKSB7CiAgICBjb25zdCB6b25lID0gbm9ybWFsaXplWm9uZShvcHRzLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSwKICAgICAgbG9jID0gTG9jYWxlLmZyb21PYmplY3Qob3B0cyksCiAgICAgIHRzTm93ID0gU2V0dGluZ3Mubm93KCk7CgogICAgbGV0IHRzLCBvOwoKICAgIC8vIGFzc3VtZSB3ZSBoYXZlIHRoZSBoaWdoZXItb3JkZXIgdW5pdHMKICAgIGlmICghaXNVbmRlZmluZWQob2JqLnllYXIpKSB7CiAgICAgIGZvciAoY29uc3QgdSBvZiBvcmRlcmVkVW5pdHMpIHsKICAgICAgICBpZiAoaXNVbmRlZmluZWQob2JqW3VdKSkgewogICAgICAgICAgb2JqW3VdID0gZGVmYXVsdFVuaXRWYWx1ZXNbdV07CiAgICAgICAgfQogICAgICB9CgogICAgICBjb25zdCBpbnZhbGlkID0gaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEob2JqKSB8fCBoYXNJbnZhbGlkVGltZURhdGEob2JqKTsKICAgICAgaWYgKGludmFsaWQpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChpbnZhbGlkKTsKICAgICAgfQoKICAgICAgY29uc3Qgb2Zmc2V0UHJvdmlzID0gem9uZS5vZmZzZXQodHNOb3cpOwogICAgICBbdHMsIG9dID0gb2JqVG9UUyhvYmosIG9mZnNldFByb3Zpcywgem9uZSk7CiAgICB9IGVsc2UgewogICAgICB0cyA9IHRzTm93OwogICAgfQoKICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoeyB0cywgem9uZSwgbG9jLCBvIH0pOwogIH0KCiAgZnVuY3Rpb24gZGlmZlJlbGF0aXZlKHN0YXJ0LCBlbmQsIG9wdHMpIHsKICAgIGNvbnN0IHJvdW5kID0gaXNVbmRlZmluZWQob3B0cy5yb3VuZCkgPyB0cnVlIDogb3B0cy5yb3VuZCwKICAgICAgZm9ybWF0ID0gKGMsIHVuaXQpID0+IHsKICAgICAgICBjID0gcm91bmRUbyhjLCByb3VuZCB8fCBvcHRzLmNhbGVuZGFyeSA/IDAgOiAyLCB0cnVlKTsKICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBlbmQubG9jLmNsb25lKG9wdHMpLnJlbEZvcm1hdHRlcihvcHRzKTsKICAgICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChjLCB1bml0KTsKICAgICAgfSwKICAgICAgZGlmZmVyID0gKHVuaXQpID0+IHsKICAgICAgICBpZiAob3B0cy5jYWxlbmRhcnkpIHsKICAgICAgICAgIGlmICghZW5kLmhhc1NhbWUoc3RhcnQsIHVuaXQpKSB7CiAgICAgICAgICAgIHJldHVybiBlbmQuc3RhcnRPZih1bml0KS5kaWZmKHN0YXJ0LnN0YXJ0T2YodW5pdCksIHVuaXQpLmdldCh1bml0KTsKICAgICAgICAgIH0gZWxzZSByZXR1cm4gMDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGVuZC5kaWZmKHN0YXJ0LCB1bml0KS5nZXQodW5pdCk7CiAgICAgICAgfQogICAgICB9OwoKICAgIGlmIChvcHRzLnVuaXQpIHsKICAgICAgcmV0dXJuIGZvcm1hdChkaWZmZXIob3B0cy51bml0KSwgb3B0cy51bml0KTsKICAgIH0KCiAgICBmb3IgKGNvbnN0IHVuaXQgb2Ygb3B0cy51bml0cykgewogICAgICBjb25zdCBjb3VudCA9IGRpZmZlcih1bml0KTsKICAgICAgaWYgKE1hdGguYWJzKGNvdW50KSA+PSAxKSB7CiAgICAgICAgcmV0dXJuIGZvcm1hdChjb3VudCwgdW5pdCk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBmb3JtYXQoc3RhcnQgPiBlbmQgPyAtMCA6IDAsIG9wdHMudW5pdHNbb3B0cy51bml0cy5sZW5ndGggLSAxXSk7CiAgfQoKICBmdW5jdGlvbiBsYXN0T3B0cyhhcmdMaXN0KSB7CiAgICBsZXQgb3B0cyA9IHt9LAogICAgICBhcmdzOwogICAgaWYgKGFyZ0xpc3QubGVuZ3RoID4gMCAmJiB0eXBlb2YgYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdID09PSAib2JqZWN0IikgewogICAgICBvcHRzID0gYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdOwogICAgICBhcmdzID0gQXJyYXkuZnJvbShhcmdMaXN0KS5zbGljZSgwLCBhcmdMaXN0Lmxlbmd0aCAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgYXJncyA9IEFycmF5LmZyb20oYXJnTGlzdCk7CiAgICB9CiAgICByZXR1cm4gW29wdHMsIGFyZ3NdOwogIH0KCiAgLyoqCiAgICogQSBEYXRlVGltZSBpcyBhbiBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZSBhbmQgYWNjb21wYW55aW5nIG1ldGhvZHMuIEl0IGNvbnRhaW5zIGNsYXNzIGFuZCBpbnN0YW5jZSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLgogICAqCiAgICogQSBEYXRlVGltZSBjb21wcmlzZXMgb2Y6CiAgICogKiBBIHRpbWVzdGFtcC4gRWFjaCBEYXRlVGltZSBpbnN0YW5jZSByZWZlcnMgdG8gYSBzcGVjaWZpYyBtaWxsaXNlY29uZCBvZiB0aGUgVW5peCBlcG9jaC4KICAgKiAqIEEgdGltZSB6b25lLiBFYWNoIGluc3RhbmNlIGlzIGNvbnNpZGVyZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBzcGVjaWZpYyB6b25lIChieSBkZWZhdWx0IHRoZSBsb2NhbCBzeXN0ZW0ncyB6b25lKS4KICAgKiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0aGF0IGVmZmVjdCBob3cgb3V0cHV0IHN0cmluZ3MgYXJlIGZvcm1hdHRlZCwgc3VjaCBhcyBgbG9jYWxlYCwgYG51bWJlcmluZ1N5c3RlbWAsIGFuZCBgb3V0cHV0Q2FsZW5kYXJgLgogICAqCiAgICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgZnVuY3Rpb25hbGl0eSBpdCBwcm92aWRlczoKICAgKgogICAqICogKipDcmVhdGlvbioqOiBUbyBjcmVhdGUgYSBEYXRlVGltZSBmcm9tIGl0cyBjb21wb25lbnRzLCB1c2Ugb25lIG9mIGl0cyBmYWN0b3J5IGNsYXNzIG1ldGhvZHM6IHtAbGluayBEYXRlVGltZS5sb2NhbH0sIHtAbGluayBEYXRlVGltZS51dGN9LCBhbmQgKG1vc3QgZmxleGlibHkpIHtAbGluayBEYXRlVGltZS5mcm9tT2JqZWN0fS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgc3RhbmRhcmQgc3RyaW5nIGZvcm1hdCwgdXNlIHtAbGluayBEYXRlVGltZS5mcm9tSVNPfSwge0BsaW5rIERhdGVUaW1lLmZyb21IVFRQfSwgYW5kIHtAbGluayBEYXRlVGltZS5mcm9tUkZDMjgyMn0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIGN1c3RvbSBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lLmZyb21Gb3JtYXR9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBuYXRpdmUgSlMgZGF0ZSwgdXNlIHtAbGluayBEYXRlVGltZS5mcm9tSlNEYXRlfS4KICAgKiAqICoqR3JlZ29yaWFuIGNhbGVuZGFyIGFuZCB0aW1lKio6IFRvIGV4YW1pbmUgdGhlIEdyZWdvcmlhbiBwcm9wZXJ0aWVzIG9mIGEgRGF0ZVRpbWUgaW5kaXZpZHVhbGx5IChpLmUgYXMgb3Bwb3NlZCB0byBjb2xsZWN0aXZlbHkgdGhyb3VnaCB7QGxpbmsgRGF0ZVRpbWUjdG9PYmplY3R9KSwgdXNlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjeWVhcn0sIHtAbGluayBEYXRlVGltZSNtb250aH0sCiAgICoge0BsaW5rIERhdGVUaW1lI2RheX0sIHtAbGluayBEYXRlVGltZSNob3VyfSwge0BsaW5rIERhdGVUaW1lI21pbnV0ZX0sIHtAbGluayBEYXRlVGltZSNzZWNvbmR9LCB7QGxpbmsgRGF0ZVRpbWUjbWlsbGlzZWNvbmR9IGFjY2Vzc29ycy4KICAgKiAqICoqV2VlayBjYWxlbmRhcioqOiBGb3IgSVNPIHdlZWsgY2FsZW5kYXIgYXR0cmlidXRlcywgc2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjd2Vla1llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjd2Vla051bWJlcn0sIGFuZCB7QGxpbmsgRGF0ZVRpbWUjd2Vla2RheX0gYWNjZXNzb3JzLgogICAqICogKipDb25maWd1cmF0aW9uKiogU2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjbG9jYWxlfSBhbmQge0BsaW5rIERhdGVUaW1lI251bWJlcmluZ1N5c3RlbX0gYWNjZXNzb3JzLgogICAqICogKipUcmFuc2Zvcm1hdGlvbioqOiBUbyB0cmFuc2Zvcm0gdGhlIERhdGVUaW1lIGludG8gb3RoZXIgRGF0ZVRpbWVzLCB1c2Uge0BsaW5rIERhdGVUaW1lI3NldH0sIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0sIHtAbGluayBEYXRlVGltZSNzZXRab25lfSwge0BsaW5rIERhdGVUaW1lI3NldExvY2FsZX0sIHtAbGluayBEYXRlVGltZS5wbHVzfSwge0BsaW5rIERhdGVUaW1lI21pbnVzfSwge0BsaW5rIERhdGVUaW1lI2VuZE9mfSwge0BsaW5rIERhdGVUaW1lI3N0YXJ0T2Z9LCB7QGxpbmsgRGF0ZVRpbWUjdG9VVEN9LCBhbmQge0BsaW5rIERhdGVUaW1lI3RvTG9jYWx9LgogICAqICogKipPdXRwdXQqKjogVG8gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN0b1JlbGF0aXZlfSwge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmVDYWxlbmRhcn0sIHtAbGluayBEYXRlVGltZSN0b0pTT059LCB7QGxpbmsgRGF0ZVRpbWUjdG9JU099LCB7QGxpbmsgRGF0ZVRpbWUjdG9IVFRQfSwge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSwge0BsaW5rIERhdGVUaW1lI3RvUkZDMjgyMn0sIHtAbGluayBEYXRlVGltZSN0b1N0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0sIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30gYW5kIHtAbGluayBEYXRlVGltZSN0b0pTRGF0ZX0uCiAgICoKICAgKiBUaGVyZSdzIHBsZW50eSBvdGhlcnMgZG9jdW1lbnRlZCBiZWxvdy4gSW4gYWRkaXRpb24sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHN1YnRsZXIgdG9waWNzIGxpa2UgaW50ZXJuYXRpb25hbGl6YXRpb24sIHRpbWUgem9uZXMsIGFsdGVybmF0aXZlIGNhbGVuZGFycywgdmFsaWRpdHksIGFuZCBzbyBvbiwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLgogICAqLwogIGNsYXNzIERhdGVUaW1lIHsKICAgIC8qKgogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIGNvbnN0cnVjdG9yKGNvbmZpZykgewogICAgICBjb25zdCB6b25lID0gY29uZmlnLnpvbmUgfHwgU2V0dGluZ3MuZGVmYXVsdFpvbmU7CgogICAgICBsZXQgaW52YWxpZCA9CiAgICAgICAgY29uZmlnLmludmFsaWQgfHwKICAgICAgICAoTnVtYmVyLmlzTmFOKGNvbmZpZy50cykgPyBuZXcgSW52YWxpZCgiaW52YWxpZCBpbnB1dCIpIDogbnVsbCkgfHwKICAgICAgICAoIXpvbmUuaXNWYWxpZCA/IHVuc3VwcG9ydGVkWm9uZSh6b25lKSA6IG51bGwpOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLnRzID0gaXNVbmRlZmluZWQoY29uZmlnLnRzKSA/IFNldHRpbmdzLm5vdygpIDogY29uZmlnLnRzOwoKICAgICAgbGV0IGMgPSBudWxsLAogICAgICAgIG8gPSBudWxsOwogICAgICBpZiAoIWludmFsaWQpIHsKICAgICAgICBjb25zdCB1bmNoYW5nZWQgPSBjb25maWcub2xkICYmIGNvbmZpZy5vbGQudHMgPT09IHRoaXMudHMgJiYgY29uZmlnLm9sZC56b25lLmVxdWFscyh6b25lKTsKCiAgICAgICAgaWYgKHVuY2hhbmdlZCkgewogICAgICAgICAgW2MsIG9dID0gW2NvbmZpZy5vbGQuYywgY29uZmlnLm9sZC5vXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc3Qgb3QgPSB6b25lLm9mZnNldCh0aGlzLnRzKTsKICAgICAgICAgIGMgPSB0c1RvT2JqKHRoaXMudHMsIG90KTsKICAgICAgICAgIGludmFsaWQgPSBOdW1iZXIuaXNOYU4oYy55ZWFyKSA/IG5ldyBJbnZhbGlkKCJpbnZhbGlkIGlucHV0IikgOiBudWxsOwogICAgICAgICAgYyA9IGludmFsaWQgPyBudWxsIDogYzsKICAgICAgICAgIG8gPSBpbnZhbGlkID8gbnVsbCA6IG90OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICAgKi8KICAgICAgdGhpcy5fem9uZSA9IHpvbmU7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMubG9jID0gY29uZmlnLmxvYyB8fCBMb2NhbGUuY3JlYXRlKCk7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMuaW52YWxpZCA9IGludmFsaWQ7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMud2Vla0RhdGEgPSBudWxsOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmMgPSBjOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLm8gPSBvOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmlzTHV4b25EYXRlVGltZSA9IHRydWU7CiAgICB9CgogICAgLy8gQ09OU1RSVUNUCgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmb3IgdGhlIGN1cnJlbnQgaW5zdGFudCwgaW4gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS4KICAgICAqCiAgICAgKiBVc2UgU2V0dGluZ3MgdG8gb3ZlcnJpZGUgdGhlc2UgZGVmYXVsdCB2YWx1ZXMgaWYgbmVlZGVkLgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvL34+IG5vdyBpbiB0aGUgSVNPIGZvcm1hdAogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBub3coKSB7CiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe30pOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbG9jYWwgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeWVhcl0gLSBUaGUgY2FsZW5kYXIgeWVhci4gSWYgb21pdHRlZCAoYXMgaW4sIGNhbGwgYGxvY2FsKClgIHdpdGggbm8gYXJndW1lbnRzKSwgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHVzZWQKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbW9udGg9MV0gLSBUaGUgbW9udGgsIDEtaW5kZXhlZAogICAgICogQHBhcmFtIHtudW1iZXJ9IFtkYXk9MV0gLSBUaGUgZGF5IG9mIHRoZSBtb250aCwgMS1pbmRleGVkCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWUKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CiAgICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiBub3cKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKHsgem9uZTogIkFtZXJpY2EvTmV3X1lvcmsiIH0pICAgICAgLy9+PiBub3csIGluIFVTIGVhc3QgY29hc3QgdGltZQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDEtMDFUMDA6MDA6MDAKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgeyBsb2NhbGU6ICJmciIgfSkgICAgIC8vfj4gMjAxNy0wMy0xMlQwMDowMDowMCwgd2l0aCBhIEZyZW5jaCBsb2NhbGUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgeyB6b25lOiAidXRjIiB9KSAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMCwgaW4gVVRDCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUpICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCkgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSkgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwLjc2NQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBsb2NhbCgpIHsKICAgICAgY29uc3QgW29wdHMsIGFyZ3NdID0gbGFzdE9wdHMoYXJndW1lbnRzKSwKICAgICAgICBbeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXSA9IGFyZ3M7CiAgICAgIHJldHVybiBxdWlja0RUKHsgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0sIG9wdHMpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgaW4gVVRDCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3llYXJdIC0gVGhlIGNhbGVuZGFyIHllYXIuIElmIG9taXR0ZWQgKGFzIGluLCBjYWxsIGB1dGMoKWAgd2l0aCBubyBhcmd1bWVudHMpLCB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZAogICAgICogQHBhcmFtIHtudW1iZXJ9IFttb250aD0xXSAtIFRoZSBtb250aCwgMS1pbmRleGVkCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RheT0xXSAtIFRoZSBkYXkgb2YgdGhlIG1vbnRoCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWUKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CiAgICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTkKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sb2NhbGVdIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IG5vdwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgeyBsb2NhbGU6ICJmciIgfSkgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwWiB3aXRoIGEgRnJlbmNoIGxvY2FsZQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSwgeyBsb2NhbGU6ICJmciIgfSkgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwLjc2NVogd2l0aCBhIEZyZW5jaCBsb2NhbGUKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzdGF0aWMgdXRjKCkgewogICAgICBjb25zdCBbb3B0cywgYXJnc10gPSBsYXN0T3B0cyhhcmd1bWVudHMpLAogICAgICAgIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdID0gYXJnczsKCiAgICAgIG9wdHMuem9uZSA9IEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZTsKICAgICAgcmV0dXJuIHF1aWNrRFQoeyB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQgfSwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdC4gVXNlcyB0aGUgZGVmYXVsdCB6b25lLgogICAgICogQHBhcmFtIHtEYXRlfSBkYXRlIC0gYSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0CiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG8KICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzdGF0aWMgZnJvbUpTRGF0ZShkYXRlLCBvcHRpb25zID0ge30pIHsKICAgICAgY29uc3QgdHMgPSBpc0RhdGUoZGF0ZSkgPyBkYXRlLnZhbHVlT2YoKSA6IE5hTjsKICAgICAgaWYgKE51bWJlci5pc05hTih0cykpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgiaW52YWxpZCBpbnB1dCIpOwogICAgICB9CgogICAgICBjb25zdCB6b25lVG9Vc2UgPSBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpOwogICAgICBpZiAoIXpvbmVUb1VzZS5pc1ZhbGlkKSB7CiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQodW5zdXBwb3J0ZWRab25lKHpvbmVUb1VzZSkpOwogICAgICB9CgogICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsKICAgICAgICB0czogdHMsCiAgICAgICAgem9uZTogem9uZVRvVXNlLAogICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksCiAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS4KICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaWxsaXNlY29uZHMgLSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgMTk3MCBVVEMKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50bwogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tTWlsbGlzKG1pbGxpc2Vjb25kcywgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGlmICghaXNOdW1iZXIobWlsbGlzZWNvbmRzKSkgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigKICAgICAgICAgIGBmcm9tTWlsbGlzIHJlcXVpcmVzIGEgbnVtZXJpY2FsIGlucHV0LCBidXQgcmVjZWl2ZWQgYSAke3R5cGVvZiBtaWxsaXNlY29uZHN9IHdpdGggdmFsdWUgJHttaWxsaXNlY29uZHN9YAogICAgICAgICk7CiAgICAgIH0gZWxzZSBpZiAobWlsbGlzZWNvbmRzIDwgLU1BWF9EQVRFIHx8IG1pbGxpc2Vjb25kcyA+IE1BWF9EQVRFKSB7CiAgICAgICAgLy8gdGhpcyBpc24ndCBwZXJmZWN0IGJlY2F1c2UgYmVjYXVzZSB3ZSBjYW4gc3RpbGwgZW5kIHVwIG91dCBvZiByYW5nZSBiZWNhdXNlIG9mIGFkZGl0aW9uYWwgc2hpZnRpbmcsIGJ1dCBpdCdzIGEgc3RhcnQKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgiVGltZXN0YW1wIG91dCBvZiByYW5nZSIpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoewogICAgICAgICAgdHM6IG1pbGxpc2Vjb25kcywKICAgICAgICAgIHpvbmU6IG5vcm1hbGl6ZVpvbmUob3B0aW9ucy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksCiAgICAgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpLAogICAgICAgIH0pOwogICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS4KICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzZWNvbmRzIC0gYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAxOTcwIFVUQwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZQogICAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdGlvbnMuem9uZT0nbG9jYWwnXSAtIHRoZSB6b25lIHRvIHBsYWNlIHRoZSBEYXRlVGltZSBpbnRvCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgc3RhdGljIGZyb21TZWNvbmRzKHNlY29uZHMsIG9wdGlvbnMgPSB7fSkgewogICAgICBpZiAoIWlzTnVtYmVyKHNlY29uZHMpKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCIpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoewogICAgICAgICAgdHM6IHNlY29uZHMgKiAxMDAwLAogICAgICAgICAgem9uZTogbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSwKICAgICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcicgYW5kICdob3VyJyB3aXRoIHJlYXNvbmFibGUgZGVmYXVsdHMuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gdGhlIG9iamVjdCB0byBjcmVhdGUgdGhlIERhdGVUaW1lIGZyb20KICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoueWVhciAtIGEgeWVhciwgc3VjaCBhcyAxOTg3CiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1vbnRoIC0gYSBtb250aCwgMS0xMgogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5kYXkgLSBhIGRheSBvZiB0aGUgbW9udGgsIDEtMzEsIGRlcGVuZGluZyBvbiB0aGUgbW9udGgKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoub3JkaW5hbCAtIGRheSBvZiB0aGUgeWVhciwgMS0zNjUgb3IgMzY2CiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtZZWFyIC0gYW4gSVNPIHdlZWsgeWVhcgogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrTnVtYmVyIC0gYW4gSVNPIHdlZWsgbnVtYmVyLCBiZXR3ZWVuIDEgYW5kIDUyIG9yIDUzLCBkZXBlbmRpbmcgb24gdGhlIHllYXIKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla2RheSAtIGFuIElTTyB3ZWVrZGF5LCAxLTcsIHdoZXJlIDEgaXMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheQogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3VyIC0gaG91ciBvZiB0aGUgZGF5LCAwLTIzCiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZSAtIG1pbnV0ZSBvZiB0aGUgaG91ciwgMC01OQogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmQgLSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgMC01OQogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taWxsaXNlY29uZCAtIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIDAtOTk5CiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBpbnRlcnByZXQgdGhlIG51bWJlcnMgaW4gdGhlIGNvbnRleHQgb2YgYSBwYXJ0aWN1bGFyIHpvbmUuIENhbiB0YWtlIGFueSB2YWx1ZSB0YWtlbiBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gc2V0Wm9uZSgpCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogMTk4MiwgbW9udGg6IDUsIGRheTogMjV9KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTA1LTI1JwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IDE5ODIgfSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wMS0wMScKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0pIC8vfj4gdG9kYXkgYXQgMTA6MjY6MDYKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ3V0YycgfSksCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICdsb2NhbCcgfSkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ0FtZXJpY2EvTmV3X1lvcmsnIH0pCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgd2Vla1llYXI6IDIwMTYsIHdlZWtOdW1iZXI6IDIsIHdlZWtkYXk6IDMgfSkudG9JU09EYXRlKCkgLy89PiAnMjAxNi0wMS0xMycKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzdGF0aWMgZnJvbU9iamVjdChvYmosIG9wdHMgPSB7fSkgewogICAgICBvYmogPSBvYmogfHwge307CiAgICAgIGNvbnN0IHpvbmVUb1VzZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7CiAgICAgIGlmICghem9uZVRvVXNlLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZVRvVXNlKSk7CiAgICAgIH0KCiAgICAgIGNvbnN0IHRzTm93ID0gU2V0dGluZ3Mubm93KCksCiAgICAgICAgb2Zmc2V0UHJvdmlzID0gIWlzVW5kZWZpbmVkKG9wdHMuc3BlY2lmaWNPZmZzZXQpCiAgICAgICAgICA/IG9wdHMuc3BlY2lmaWNPZmZzZXQKICAgICAgICAgIDogem9uZVRvVXNlLm9mZnNldCh0c05vdyksCiAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZVVuaXQpLAogICAgICAgIGNvbnRhaW5zT3JkaW5hbCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpLAogICAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLAogICAgICAgIGNvbnRhaW5zR3JlZ29yTUQgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5tb250aCkgfHwgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSwKICAgICAgICBjb250YWluc0dyZWdvciA9IGNvbnRhaW5zR3JlZ29yWWVhciB8fCBjb250YWluc0dyZWdvck1ELAogICAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyLAogICAgICAgIGxvYyA9IExvY2FsZS5mcm9tT2JqZWN0KG9wdHMpOwoKICAgICAgLy8gY2FzZXM6CiAgICAgIC8vIGp1c3QgYSB3ZWVrZGF5IC0+IHRoaXMgd2VlaydzIGluc3RhbmNlIG9mIHRoYXQgd2Vla2RheSwgbm8gd29ycmllcwogICAgICAvLyAoZ3JlZ29yaWFuIGRhdGEgb3Igb3JkaW5hbCkgKyAod2Vla1llYXIgb3Igd2Vla051bWJlcikgLT4gZXJyb3IKICAgICAgLy8gKGdyZWdvcmlhbiBtb250aCBvciBkYXkpICsgb3JkaW5hbCAtPiBlcnJvcgogICAgICAvLyBvdGhlcndpc2UganVzdCB1c2Ugd2Vla3Mgb3Igb3JkaW5hbHMgb3IgZ3JlZ29yaWFuLCBkZXBlbmRpbmcgb24gd2hhdCdzIHNwZWNpZmllZAoKICAgICAgaWYgKChjb250YWluc0dyZWdvciB8fCBjb250YWluc09yZGluYWwpICYmIGRlZmluaXRlV2Vla0RlZikgewogICAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigKICAgICAgICAgICJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzIgogICAgICAgICk7CiAgICAgIH0KCiAgICAgIGlmIChjb250YWluc0dyZWdvck1EICYmIGNvbnRhaW5zT3JkaW5hbCkgewogICAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigiQ2FuJ3QgbWl4IG9yZGluYWwgZGF0ZXMgd2l0aCBtb250aC9kYXkiKTsKICAgICAgfQoKICAgICAgY29uc3QgdXNlV2Vla0RhdGEgPSBkZWZpbml0ZVdlZWtEZWYgfHwgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiAhY29udGFpbnNHcmVnb3IpOwoKICAgICAgLy8gY29uZmlndXJlIG91cnNlbHZlcyB0byBkZWFsIHdpdGggZ3JlZ29yaWFuIGRhdGVzIG9yIHdlZWsgc3R1ZmYKICAgICAgbGV0IHVuaXRzLAogICAgICAgIGRlZmF1bHRWYWx1ZXMsCiAgICAgICAgb2JqTm93ID0gdHNUb09iaih0c05vdywgb2Zmc2V0UHJvdmlzKTsKICAgICAgaWYgKHVzZVdlZWtEYXRhKSB7CiAgICAgICAgdW5pdHMgPSBvcmRlcmVkV2Vla1VuaXRzOwogICAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0V2Vla1VuaXRWYWx1ZXM7CiAgICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9XZWVrKG9iak5vdyk7CiAgICAgIH0gZWxzZSBpZiAoY29udGFpbnNPcmRpbmFsKSB7CiAgICAgICAgdW5pdHMgPSBvcmRlcmVkT3JkaW5hbFVuaXRzOwogICAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXM7CiAgICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9PcmRpbmFsKG9iak5vdyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdW5pdHMgPSBvcmRlcmVkVW5pdHM7CiAgICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRVbml0VmFsdWVzOwogICAgICB9CgogICAgICAvLyBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIG1pc3Npbmcgc3R1ZmYKICAgICAgbGV0IGZvdW5kRmlyc3QgPSBmYWxzZTsKICAgICAgZm9yIChjb25zdCB1IG9mIHVuaXRzKSB7CiAgICAgICAgY29uc3QgdiA9IG5vcm1hbGl6ZWRbdV07CiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2KSkgewogICAgICAgICAgZm91bmRGaXJzdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIGlmIChmb3VuZEZpcnN0KSB7CiAgICAgICAgICBub3JtYWxpemVkW3VdID0gZGVmYXVsdFZhbHVlc1t1XTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbm9ybWFsaXplZFt1XSA9IG9iak5vd1t1XTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgdmFsdWVzIHdlIGhhdmUgYXJlIGluIHJhbmdlCiAgICAgIGNvbnN0IGhpZ2hlck9yZGVySW52YWxpZCA9IHVzZVdlZWtEYXRhCiAgICAgICAgICA/IGhhc0ludmFsaWRXZWVrRGF0YShub3JtYWxpemVkKQogICAgICAgICAgOiBjb250YWluc09yZGluYWwKICAgICAgICAgID8gaGFzSW52YWxpZE9yZGluYWxEYXRhKG5vcm1hbGl6ZWQpCiAgICAgICAgICA6IGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG5vcm1hbGl6ZWQpLAogICAgICAgIGludmFsaWQgPSBoaWdoZXJPcmRlckludmFsaWQgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG5vcm1hbGl6ZWQpOwoKICAgICAgaWYgKGludmFsaWQpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChpbnZhbGlkKTsKICAgICAgfQoKICAgICAgLy8gY29tcHV0ZSB0aGUgYWN0dWFsIHRpbWUKICAgICAgY29uc3QgZ3JlZ29yaWFuID0gdXNlV2Vla0RhdGEKICAgICAgICAgID8gd2Vla1RvR3JlZ29yaWFuKG5vcm1hbGl6ZWQpCiAgICAgICAgICA6IGNvbnRhaW5zT3JkaW5hbAogICAgICAgICAgPyBvcmRpbmFsVG9HcmVnb3JpYW4obm9ybWFsaXplZCkKICAgICAgICAgIDogbm9ybWFsaXplZCwKICAgICAgICBbdHNGaW5hbCwgb2Zmc2V0RmluYWxdID0gb2JqVG9UUyhncmVnb3JpYW4sIG9mZnNldFByb3Zpcywgem9uZVRvVXNlKSwKICAgICAgICBpbnN0ID0gbmV3IERhdGVUaW1lKHsKICAgICAgICAgIHRzOiB0c0ZpbmFsLAogICAgICAgICAgem9uZTogem9uZVRvVXNlLAogICAgICAgICAgbzogb2Zmc2V0RmluYWwsCiAgICAgICAgICBsb2MsCiAgICAgICAgfSk7CgogICAgICAvLyBncmVnb3JpYW4gZGF0YSArIHdlZWtkYXkgc2VydmVzIG9ubHkgdG8gdmFsaWRhdGUKICAgICAgaWYgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiBjb250YWluc0dyZWdvciAmJiBvYmoud2Vla2RheSAhPT0gaW5zdC53ZWVrZGF5KSB7CiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoCiAgICAgICAgICAibWlzbWF0Y2hlZCB3ZWVrZGF5IiwKICAgICAgICAgIGB5b3UgY2FuJ3Qgc3BlY2lmeSBib3RoIGEgd2Vla2RheSBvZiAke25vcm1hbGl6ZWQud2Vla2RheX0gYW5kIGEgZGF0ZSBvZiAke2luc3QudG9JU08oKX1gCiAgICAgICAgKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGluc3Q7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIElTTyA4NjAxIHN0cmluZwogICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZQogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMycpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcsIHtzZXRab25lOiB0cnVlfSkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzJywge3pvbmU6ICd1dGMnfSkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtVzA1LTQnKQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMgPSB7fSkgewogICAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZUlTT0RhdGUodGV4dCk7CiAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsICJJU08gODYwMSIsIHRleHQpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBSRkMgMjgyMiBzdHJpbmcKICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIFJGQyAyODIyIHN0cmluZwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZS4gU2luY2UgdGhlIG9mZnNldCBpcyBhbHdheXMgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcgaXRzZWxmLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLgogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCcyNSBOb3YgMjAxNiAxMzoyMzoxMiBHTVQnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJ0ZyaSwgMjUgTm92IDIwMTYgMTM6MjM6MTIgKzA2MDAnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzIFonKQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tUkZDMjgyMih0ZXh0LCBvcHRzID0ge30pIHsKICAgICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VSRkMyODIyRGF0ZSh0ZXh0KTsKICAgICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgIlJGQyAyODIyIiwgdGV4dCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIEhUVFAgaGVhZGVyIGRhdGUKICAgICAqIEBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMy5odG1sI3NlYzMuMy4xCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBIVFRQIGhlYWRlciBkYXRlCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgogICAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSBIVFRQIGRhdGVzIGFyZSBhbHdheXMgaW4gVVRDLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLgogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggdGhlIGZpeGVkLW9mZnNldCB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nLiBGb3IgSFRUUCBkYXRlcywgdGhpcyBpcyBhbHdheXMgVVRDLCBzbyB0aGlzIG9wdGlvbiBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgdGhlIGB6b25lYCBvcHRpb24gdG8gJ3V0YycsIGJ1dCB0aGlzIG9wdGlvbiBpcyBpbmNsdWRlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCBzaW1pbGFyIG1ldGhvZHMuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSFRUUCgnU3VuLCAwNiBOb3YgMTk5NCAwODo0OTozNyBHTVQnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1bmRheSwgMDYtTm92LTk0IDA4OjQ5OjM3IEdNVCcpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSFRUUCgnU3VuIE5vdiAgNiAwODo0OTozNyAxOTk0JykKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzdGF0aWMgZnJvbUhUVFAodGV4dCwgb3B0cyA9IHt9KSB7CiAgICAgIGNvbnN0IFt2YWxzLCBwYXJzZWRab25lXSA9IHBhcnNlSFRUUERhdGUodGV4dCk7CiAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsICJIVFRQIiwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIGlucHV0IHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZy4KICAgICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZS4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvcGFyc2luZz9pZD10YWJsZS1vZi10b2tlbnMpLgogICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCB0aGUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGluIChzZWUgdGhlIGxpbmsgYmVsb3cgZm9yIHRoZSBmb3JtYXRzKQogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byB0aGlzIHpvbmUKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSBhIGxvY2FsZSBzdHJpbmcgdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyBsb2NhbGUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIHJlc3VsdGluZyBEYXRlVGltZSB0byB0aGlzIG51bWJlcmluZyBzeXN0ZW0KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cyA9IHt9KSB7CiAgICAgIGlmIChpc1VuZGVmaW5lZCh0ZXh0KSB8fCBpc1VuZGVmaW5lZChmbXQpKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJmcm9tRm9ybWF0IHJlcXVpcmVzIGFuIGlucHV0IHN0cmluZyBhbmQgYSBmb3JtYXQiKTsKICAgICAgfQoKICAgICAgY29uc3QgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsIH0gPSBvcHRzLAogICAgICAgIGxvY2FsZVRvVXNlID0gTG9jYWxlLmZyb21PcHRzKHsKICAgICAgICAgIGxvY2FsZSwKICAgICAgICAgIG51bWJlcmluZ1N5c3RlbSwKICAgICAgICAgIGRlZmF1bHRUb0VOOiB0cnVlLAogICAgICAgIH0pLAogICAgICAgIFt2YWxzLCBwYXJzZWRab25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZF0gPSBwYXJzZUZyb21Ub2tlbnMobG9jYWxlVG9Vc2UsIHRleHQsIGZtdCk7CiAgICAgIGlmIChpbnZhbGlkKSB7CiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgYGZvcm1hdCAke2ZtdH1gLCB0ZXh0LCBzcGVjaWZpY09mZnNldCk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBkZXByZWNhdGVkIHVzZSBmcm9tRm9ybWF0IGluc3RlYWQKICAgICAqLwogICAgc3RhdGljIGZyb21TdHJpbmcodGV4dCwgZm10LCBvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodGV4dCwgZm10LCBvcHRzKTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBTUUwgZGF0ZSwgdGltZSwgb3IgZGF0ZXRpbWUKICAgICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZQogICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgogICAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIHVzZSB0aGlzIHpvbmUgaWYgbm8gb2Zmc2V0IGlzIHNwZWNpZmllZCBpbiB0aGUgaW5wdXQgc3RyaW5nIGl0c2VsZi4gV2lsbCBhbHNvIGNvbnZlcnQgdGhlIERhdGVUaW1lIHRvIHRoaXMgem9uZQogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIHRvIHRoaXMgbnVtYmVyaW5nIHN5c3RlbQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1JykKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDInKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIrMDY6MDAnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIgQW1lcmljYS9Mb3NfQW5nZWxlcycpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJywgeyBzZXRab25lOiB0cnVlIH0pCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MicsIHsgem9uZTogJ0FtZXJpY2EvTG9zX0FuZ2VsZXMnIH0pCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcwOToxMjozNC4zNDInKQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tU1FMKHRleHQsIG9wdHMgPSB7fSkgewogICAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZVNRTCh0ZXh0KTsKICAgICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgIlNRTCIsIHRleHQpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGFuIGludmFsaWQgRGF0ZVRpbWUuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBEYXRlVGltZSBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50LgogICAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbgogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24gPSBudWxsKSB7CiAgICAgIGlmICghcmVhc29uKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJuZWVkIHRvIHNwZWNpZnkgYSByZWFzb24gdGhlIERhdGVUaW1lIGlzIGludmFsaWQiKTsKICAgICAgfQoKICAgICAgY29uc3QgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTsKCiAgICAgIGlmIChTZXR0aW5ncy50aHJvd09uSW52YWxpZCkgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0ZVRpbWVFcnJvcihpbnZhbGlkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsgaW52YWxpZCB9KTsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIGluc3RhbmNlIG9mIERhdGVUaW1lLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzCiAgICAgKiBAcGFyYW0ge29iamVjdH0gbwogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgc3RhdGljIGlzRGF0ZVRpbWUobykgewogICAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uRGF0ZVRpbWUpIHx8IGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogUHJvZHVjZSB0aGUgZm9ybWF0IHN0cmluZyBmb3IgYSBzZXQgb2Ygb3B0aW9ucwogICAgICogQHBhcmFtIGZvcm1hdE9wdHMKICAgICAqIEBwYXJhbSBsb2NhbGVPcHRzCiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfQogICAgICovCiAgICBzdGF0aWMgcGFyc2VGb3JtYXRGb3JPcHRzKGZvcm1hdE9wdHMsIGxvY2FsZU9wdHMgPSB7fSkgewogICAgICBjb25zdCB0b2tlbkxpc3QgPSBmb3JtYXRPcHRzVG9Ub2tlbnMoZm9ybWF0T3B0cywgTG9jYWxlLmZyb21PYmplY3QobG9jYWxlT3B0cykpOwogICAgICByZXR1cm4gIXRva2VuTGlzdCA/IG51bGwgOiB0b2tlbkxpc3QubWFwKCh0KSA9PiAodCA/IHQudmFsIDogbnVsbCkpLmpvaW4oIiIpOwogICAgfQoKICAgIC8qKgogICAgICogUHJvZHVjZSB0aGUgdGhlIGZ1bGx5IGV4cGFuZGVkIGZvcm1hdCB0b2tlbiBmb3IgdGhlIGxvY2FsZQogICAgICogRG9lcyBOT1QgcXVvdGUgY2hhcmFjdGVycywgc28gcXVvdGVkIHRva2VucyB3aWxsIG5vdCByb3VuZCB0cmlwIGNvcnJlY3RseQogICAgICogQHBhcmFtIGZtdAogICAgICogQHBhcmFtIGxvY2FsZU9wdHMKICAgICAqIEByZXR1cm5zIHtzdHJpbmd9CiAgICAgKi8KICAgIHN0YXRpYyBleHBhbmRGb3JtYXQoZm10LCBsb2NhbGVPcHRzID0ge30pIHsKICAgICAgY29uc3QgZXhwYW5kZWQgPSBleHBhbmRNYWNyb1Rva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm10KSwgTG9jYWxlLmZyb21PYmplY3QobG9jYWxlT3B0cykpOwogICAgICByZXR1cm4gZXhwYW5kZWQubWFwKCh0KSA9PiB0LnZhbCkuam9pbigiIik7CiAgICB9CgogICAgLy8gSU5GTwoKICAgIC8qKgogICAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LgogICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5JwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNywgNCkuZ2V0KCdtb250aCcpOyAvLz0+IDcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnZGF5Jyk7IC8vPT4gNAogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBnZXQodW5pdCkgewogICAgICByZXR1cm4gdGhpc1t1bml0XTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQuIEludmFsaWQgRGF0ZVRpbWVzIG9jY3VyIHdoZW46CiAgICAgKiAqIFRoZSBEYXRlVGltZSB3YXMgY3JlYXRlZCBmcm9tIGludmFsaWQgY2FsZW5kYXIgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIDEzdGggbW9udGggb3IgRmVicnVhcnkgMzAKICAgICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGJ5IGFuIG9wZXJhdGlvbiBvbiBhbm90aGVyIGludmFsaWQgZGF0ZQogICAgICogQHR5cGUge2Jvb2xlYW59CiAgICAgKi8KICAgIGdldCBpc1ZhbGlkKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBpbnZhbGlkUmVhc29uKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIERhdGVUaW1lIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEYXRlVGltZSBpcyB2YWxpZAogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGxvY2FsZSBvZiBhIERhdGVUaW1lLCBzdWNoICdlbi1HQicuIFRoZSBsb2NhbGUgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lCiAgICAgKgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IGxvY2FsZSgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLmxvY2FsZSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG51bWJlcmluZyBzeXN0ZW0gb2YgYSBEYXRlVGltZSwgc3VjaCAnYmVuZycuIFRoZSBudW1iZXJpbmcgc3lzdGVtIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZQogICAgICoKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBudW1iZXJpbmdTeXN0ZW0oKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBvdXRwdXQgY2FsZW5kYXIgb2YgYSBEYXRlVGltZSwgc3VjaCAnaXNsYW1pYycuIFRoZSBvdXRwdXQgY2FsZW5kYXIgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lCiAgICAgKgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IG91dHB1dENhbGVuZGFyKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXIgOiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAdHlwZSB7Wm9uZX0KICAgICAqLwogICAgZ2V0IHpvbmUoKSB7CiAgICAgIHJldHVybiB0aGlzLl96b25lOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSB0aW1lIHpvbmUuCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgem9uZU5hbWUoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnpvbmUubmFtZSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHllYXIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS55ZWFyIC8vPT4gMjAxNwogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IHllYXIoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMueWVhciA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcXVhcnRlcgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnF1YXJ0ZXIgLy89PiAyCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgcXVhcnRlcigpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IE1hdGguY2VpbCh0aGlzLmMubW9udGggLyAzKSA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbW9udGggKDEtMTIpLgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm1vbnRoIC8vPT4gNQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IG1vbnRoKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1vbnRoIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoICgxLTMwaXNoKS4KICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5kYXkgLy89PiAyNQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IGRheSgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5kYXkgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGhvdXIgb2YgdGhlIGRheSAoMC0yMykuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSkuaG91ciAvLz0+IDkKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCBob3VyKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmhvdXIgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG1pbnV0ZSBvZiB0aGUgaG91ciAoMC01OSkuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzApLm1pbnV0ZSAvLz0+IDMwCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgbWludXRlKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1pbnV0ZSA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgc2Vjb25kIG9mIHRoZSBtaW51dGUgKDAtNTkpLgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwLCA1Mikuc2Vjb25kIC8vPT4gNTIKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCBzZWNvbmQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMuc2Vjb25kIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kICgwLTk5OSkuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzAsIDUyLCA2NTQpLm1pbGxpc2Vjb25kIC8vPT4gNjU0CiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgbWlsbGlzZWNvbmQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWlsbGlzZWNvbmQgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHdlZWsgeWVhcgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAxMiwgMzEpLndlZWtZZWFyIC8vPT4gMjAxNQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IHdlZWtZZWFyKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrWWVhciA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgd2VlayBudW1iZXIgb2YgdGhlIHdlZWsgeWVhciAoMS01MmlzaCkuCiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS53ZWVrTnVtYmVyIC8vPT4gMjEKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCB3ZWVrTnVtYmVyKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrTnVtYmVyIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsuCiAgICAgKiAxIGlzIE1vbmRheSBhbmQgNyBpcyBTdW5kYXkKICAgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTEsIDMxKS53ZWVrZGF5IC8vPT4gNAogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IHdlZWtkYXkoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtkYXkgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG9yZGluYWwgKG1lYW5pbmcgdGhlIGRheSBvZiB0aGUgeWVhcikKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5vcmRpbmFsIC8vPT4gMTQ1CiAgICAgKiBAdHlwZSB7bnVtYmVyfERhdGVUaW1lfQogICAgICovCiAgICBnZXQgb3JkaW5hbCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IGdyZWdvcmlhblRvT3JkaW5hbCh0aGlzLmMpLm9yZGluYWwgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHNob3J0IG1vbnRoIG5hbWUsIHN1Y2ggYXMgJ09jdCcuCiAgICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhTaG9ydCAvLz0+IE9jdAogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IG1vbnRoU2hvcnQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLm1vbnRocygic2hvcnQiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy5tb250aCAtIDFdIDogbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgbG9uZyBtb250aCBuYW1lLCBzdWNoIGFzICdPY3RvYmVyJy4KICAgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS5tb250aExvbmcgLy89PiBPY3RvYmVyCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgbW9udGhMb25nKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby5tb250aHMoImxvbmciLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy5tb250aCAtIDFdIDogbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgc2hvcnQgd2Vla2RheSwgc3VjaCBhcyAnTW9uJy4KICAgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5U2hvcnQgLy89PiBNb24KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCB3ZWVrZGF5U2hvcnQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLndlZWtkYXlzKCJzaG9ydCIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLndlZWtkYXkgLSAxXSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIGxvbmcgd2Vla2RheSwgc3VjaCBhcyAnTW9uZGF5Jy4KICAgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5TG9uZyAvLz0+IE1vbmRheQogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IHdlZWtkYXlMb25nKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby53ZWVrZGF5cygibG9uZyIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLndlZWtkYXkgLSAxXSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIFVUQyBvZmZzZXQgb2YgdGhpcyBEYXRlVGltZSBpbiBtaW51dGVzCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5vZmZzZXQgLy89PiAtMjQwCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5vZmZzZXQgLy89PiAwCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgb2Zmc2V0KCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gK3RoaXMubyA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgc2hvcnQgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgIkVTVCIgb3IgIkVEVCIuCiAgICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBvZmZzZXROYW1lU2hvcnQoKSB7CiAgICAgIGlmICh0aGlzLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywgewogICAgICAgICAgZm9ybWF0OiAic2hvcnQiLAogICAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSwKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBsb25nIGh1bWFuIG5hbWUgZm9yIHRoZSB6b25lJ3MgY3VycmVudCBvZmZzZXQsIGZvciBleGFtcGxlICJFYXN0ZXJuIFN0YW5kYXJkIFRpbWUiIG9yICJFYXN0ZXJuIERheWxpZ2h0IFRpbWUiLgogICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgb2Zmc2V0TmFtZUxvbmcoKSB7CiAgICAgIGlmICh0aGlzLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywgewogICAgICAgICAgZm9ybWF0OiAibG9uZyIsCiAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLAogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgd2hldGhlciB0aGlzIHpvbmUncyBvZmZzZXQgZXZlciBjaGFuZ2VzLCBhcyBpbiBhIERTVC4KICAgICAqIEB0eXBlIHtib29sZWFufQogICAgICovCiAgICBnZXQgaXNPZmZzZXRGaXhlZCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuem9uZS5pc1VuaXZlcnNhbCA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgaW4gYSBEU1QuCiAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KICAgICAqLwogICAgZ2V0IGlzSW5EU1QoKSB7CiAgICAgIGlmICh0aGlzLmlzT2Zmc2V0Rml4ZWQpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoeyBtb250aDogMSwgZGF5OiAxIH0pLm9mZnNldCB8fAogICAgICAgICAgdGhpcy5vZmZzZXQgPiB0aGlzLnNldCh7IG1vbnRoOiA1IH0pLm9mZnNldAogICAgICAgICk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aG9zZSBEYXRlVGltZXMgd2hpY2ggaGF2ZSB0aGUgc2FtZSBsb2NhbCB0aW1lIGFzIHRoaXMgRGF0ZVRpbWUsIGJ1dCBhIGRpZmZlcmVudCBvZmZzZXQgZnJvbSBVVEMKICAgICAqIGluIHRoaXMgRGF0ZVRpbWUncyB6b25lLiBEdXJpbmcgRFNUIGNoYW5nZXMgbG9jYWwgdGltZSBjYW4gYmUgYW1iaWd1b3VzLCBmb3IgZXhhbXBsZQogICAgICogYDIwMjMtMTAtMjlUMDI6MzA6MDBgIGluIGBFdXJvcGUvQmVybGluYCBjYW4gaGF2ZSBvZmZzZXQgYCswMTowMGAgb3IgYCswMjowMGAuCiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiBib3RoIHBvc3NpYmxlIERhdGVUaW1lcyBpZiB0aGlzIERhdGVUaW1lJ3MgbG9jYWwgdGltZSBpcyBhbWJpZ3VvdXMuCiAgICAgKiBAcmV0dXJucyB7RGF0ZVRpbWVbXX0KICAgICAqLwogICAgZ2V0UG9zc2libGVPZmZzZXRzKCkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCB0aGlzLmlzT2Zmc2V0Rml4ZWQpIHsKICAgICAgICByZXR1cm4gW3RoaXNdOwogICAgICB9CiAgICAgIGNvbnN0IGRheU1zID0gODY0MDAwMDA7CiAgICAgIGNvbnN0IG1pbnV0ZU1zID0gNjAwMDA7CiAgICAgIGNvbnN0IGxvY2FsVFMgPSBvYmpUb0xvY2FsVFModGhpcy5jKTsKICAgICAgY29uc3Qgb0VhcmxpZXIgPSB0aGlzLnpvbmUub2Zmc2V0KGxvY2FsVFMgLSBkYXlNcyk7CiAgICAgIGNvbnN0IG9MYXRlciA9IHRoaXMuem9uZS5vZmZzZXQobG9jYWxUUyArIGRheU1zKTsKCiAgICAgIGNvbnN0IG8xID0gdGhpcy56b25lLm9mZnNldChsb2NhbFRTIC0gb0VhcmxpZXIgKiBtaW51dGVNcyk7CiAgICAgIGNvbnN0IG8yID0gdGhpcy56b25lLm9mZnNldChsb2NhbFRTIC0gb0xhdGVyICogbWludXRlTXMpOwogICAgICBpZiAobzEgPT09IG8yKSB7CiAgICAgICAgcmV0dXJuIFt0aGlzXTsKICAgICAgfQogICAgICBjb25zdCB0czEgPSBsb2NhbFRTIC0gbzEgKiBtaW51dGVNczsKICAgICAgY29uc3QgdHMyID0gbG9jYWxUUyAtIG8yICogbWludXRlTXM7CiAgICAgIGNvbnN0IGMxID0gdHNUb09iaih0czEsIG8xKTsKICAgICAgY29uc3QgYzIgPSB0c1RvT2JqKHRzMiwgbzIpOwogICAgICBpZiAoCiAgICAgICAgYzEuaG91ciA9PT0gYzIuaG91ciAmJgogICAgICAgIGMxLm1pbnV0ZSA9PT0gYzIubWludXRlICYmCiAgICAgICAgYzEuc2Vjb25kID09PSBjMi5zZWNvbmQgJiYKICAgICAgICBjMS5taWxsaXNlY29uZCA9PT0gYzIubWlsbGlzZWNvbmQKICAgICAgKSB7CiAgICAgICAgcmV0dXJuIFtjbG9uZSh0aGlzLCB7IHRzOiB0czEgfSksIGNsb25lKHRoaXMsIHsgdHM6IHRzMiB9KV07CiAgICAgIH0KICAgICAgcmV0dXJuIFt0aGlzXTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIERhdGVUaW1lIGlzIGluIGEgbGVhcCB5ZWFyLCBmYWxzZSBvdGhlcndpc2UKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYpLmlzSW5MZWFwWWVhciAvLz0+IHRydWUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLmlzSW5MZWFwWWVhciAvLz0+IGZhbHNlCiAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KICAgICAqLwogICAgZ2V0IGlzSW5MZWFwWWVhcigpIHsKICAgICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyBtb250aAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMikuZGF5c0luTW9udGggLy89PiAyOQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMykuZGF5c0luTW9udGggLy89PiAzMQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IGRheXNJbk1vbnRoKCkgewogICAgICByZXR1cm4gZGF5c0luTW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyB5ZWFyCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2KS5kYXlzSW5ZZWFyIC8vPT4gMzY2CiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDEzKS5kYXlzSW5ZZWFyIC8vPT4gMzY1CiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgZGF5c0luWWVhcigpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IGRheXNJblllYXIodGhpcy55ZWFyKSA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB3ZWVrcyBpbiB0aGlzIERhdGVUaW1lJ3MgeWVhcgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDA0KS53ZWVrc0luV2Vla1llYXIgLy89PiA1MwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykud2Vla3NJbldlZWtZZWFyIC8vPT4gNTIKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCB3ZWVrc0luV2Vla1llYXIoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB3ZWVrc0luV2Vla1llYXIodGhpcy53ZWVrWWVhcikgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSByZXNvbHZlZCBJbnRsIG9wdGlvbnMgZm9yIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBiZWhhdmlvciBvZiBmb3JtYXR0aW5nIG1ldGhvZHMKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gdGhlIHNhbWUgb3B0aW9ucyBhcyB0b0xvY2FsZVN0cmluZwogICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICovCiAgICByZXNvbHZlZExvY2FsZU9wdGlvbnMob3B0cyA9IHt9KSB7CiAgICAgIGNvbnN0IHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBGb3JtYXR0ZXIuY3JlYXRlKAogICAgICAgIHRoaXMubG9jLmNsb25lKG9wdHMpLAogICAgICAgIG9wdHMKICAgICAgKS5yZXNvbHZlZE9wdGlvbnModGhpcyk7CiAgICAgIHJldHVybiB7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcjogY2FsZW5kYXIgfTsKICAgIH0KCiAgICAvLyBUUkFOU0ZPUk0KCiAgICAvKioKICAgICAqICJTZXQiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gVVRDLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCiAgICAgKgogICAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0oJ3V0YycpCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29mZnNldD0wXSAtIG9wdGlvbmFsbHksIGFuIG9mZnNldCBmcm9tIFVUQyBpbiBtaW51dGVzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHM9e31dIC0gb3B0aW9ucyB0byBwYXNzIHRvIGBzZXRab25lKClgCiAgICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgdG9VVEMob2Zmc2V0ID0gMCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLnNldFpvbmUoRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKG9mZnNldCksIG9wdHMpOwogICAgfQoKICAgIC8qKgogICAgICogIlNldCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byB0aGUgaG9zdCdzIGxvY2FsIHpvbmUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS4KICAgICAqCiAgICAgKiBFcXVpdmFsZW50IHRvIGBzZXRab25lKCdsb2NhbCcpYAogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHRvTG9jYWwoKSB7CiAgICAgIHJldHVybiB0aGlzLnNldFpvbmUoU2V0dGluZ3MuZGVmYXVsdFpvbmUpOwogICAgfQoKICAgIC8qKgogICAgICogIlNldCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBzcGVjaWZpZWQgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLgogICAgICoKICAgICAqIEJ5IGRlZmF1bHQsIHRoZSBzZXR0ZXIga2VlcHMgdGhlIHVuZGVybHlpbmcgdGltZSB0aGUgc2FtZSAoYXMgaW4sIHRoZSBzYW1lIHRpbWVzdGFtcCksIGJ1dCB0aGUgbmV3IGluc3RhbmNlIHdpbGwgcmVwb3J0IGRpZmZlcmVudCBsb2NhbCB0aW1lcyBhbmQgY29uc2lkZXIgRFNUcyB3aGVuIG1ha2luZyBjb21wdXRhdGlvbnMsIGFzIHdpdGgge0BsaW5rIERhdGVUaW1lI3BsdXN9LiBZb3UgbWF5IHdpc2ggdG8gdXNlIHtAbGluayBEYXRlVGltZSN0b0xvY2FsfSBhbmQge0BsaW5rIERhdGVUaW1lI3RvVVRDfSB3aGljaCBwcm92aWRlIHNpbXBsZSBjb252ZW5pZW5jZSB3cmFwcGVycyBmb3IgY29tbW9ubHkgdXNlZCB6b25lcy4KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gYSB6b25lIGlkZW50aWZpZXIuIEFzIGEgc3RyaW5nLCB0aGF0IGNhbiBiZSBhbnkgSUFOQSB6b25lIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBlbnZpcm9ubWVudCwgb3IgYSBmaXhlZC1vZmZzZXQgbmFtZSBvZiB0aGUgZm9ybSAnVVRDKzMnLCBvciB0aGUgc3RyaW5ncyAnbG9jYWwnIG9yICd1dGMnLiBZb3UgbWF5IGFsc28gc3VwcGx5IGFuIGluc3RhbmNlIG9mIGEge0BsaW5rIERhdGVUaW1lI1pvbmV9IGNsYXNzLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmtlZXBMb2NhbFRpbWU9ZmFsc2VdIC0gSWYgdHJ1ZSwgYWRqdXN0IHRoZSB1bmRlcmx5aW5nIHRpbWUgc28gdGhhdCB0aGUgbG9jYWwgdGltZSBzdGF5cyB0aGUgc2FtZSwgYnV0IGluIHRoZSB0YXJnZXQgem9uZS4gWW91IHNob3VsZCByYXJlbHkgbmVlZCB0aGlzLgogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHNldFpvbmUoem9uZSwgeyBrZWVwTG9jYWxUaW1lID0gZmFsc2UsIGtlZXBDYWxlbmRhclRpbWUgPSBmYWxzZSB9ID0ge30pIHsKICAgICAgem9uZSA9IG5vcm1hbGl6ZVpvbmUoem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpOwogICAgICBpZiAoem9uZS5lcXVhbHModGhpcy56b25lKSkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9IGVsc2UgaWYgKCF6b25lLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZSkpOwogICAgICB9IGVsc2UgewogICAgICAgIGxldCBuZXdUUyA9IHRoaXMudHM7CiAgICAgICAgaWYgKGtlZXBMb2NhbFRpbWUgfHwga2VlcENhbGVuZGFyVGltZSkgewogICAgICAgICAgY29uc3Qgb2Zmc2V0R3Vlc3MgPSB6b25lLm9mZnNldCh0aGlzLnRzKTsKICAgICAgICAgIGNvbnN0IGFzT2JqID0gdGhpcy50b09iamVjdCgpOwogICAgICAgICAgW25ld1RTXSA9IG9ialRvVFMoYXNPYmosIG9mZnNldEd1ZXNzLCB6b25lKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdHM6IG5ld1RTLCB6b25lIH0pOwogICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0IiB0aGUgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG9yIG91dHB1dENhbGVuZGFyLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllcyAtIHRoZSBwcm9wZXJ0aWVzIHRvIHNldAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnJlY29uZmlndXJlKHsgbG9jYWxlOiAnZW4tR0InIH0pCiAgICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgcmVjb25maWd1cmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7CiAgICAgIGNvbnN0IGxvYyA9IHRoaXMubG9jLmNsb25lKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyIH0pOwogICAgICByZXR1cm4gY2xvbmUodGhpcywgeyBsb2MgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0IiB0aGUgbG9jYWxlLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCiAgICAgKiBKdXN0IGEgY29udmVuaWVudCBhbGlhcyBmb3IgcmVjb25maWd1cmUoeyBsb2NhbGUgfSkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5zZXRMb2NhbGUoJ2VuLUdCJykKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzZXRMb2NhbGUobG9jYWxlKSB7CiAgICAgIHJldHVybiB0aGlzLnJlY29uZmlndXJlKHsgbG9jYWxlIH0pOwogICAgfQoKICAgIC8qKgogICAgICogIlNldCIgdGhlIHZhbHVlcyBvZiBzcGVjaWZpZWQgdW5pdHMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS4KICAgICAqIFlvdSBjYW4gb25seSBzZXQgdW5pdHMgd2l0aCB0aGlzIG1ldGhvZDsgZm9yICJzZXR0aW5nIiBtZXRhZGF0YSwgc2VlIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0gYW5kIHtAbGluayBEYXRlVGltZSNzZXRab25lfS4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVycwogICAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAxNyB9KQogICAgICogQGV4YW1wbGUgZHQuc2V0KHsgaG91cjogOCwgbWludXRlOiAzMCB9KQogICAgICogQGV4YW1wbGUgZHQuc2V0KHsgd2Vla2RheTogNSB9KQogICAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAwNSwgb3JkaW5hbDogMjM0IH0pCiAgICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgc2V0KHZhbHVlcykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgogICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplT2JqZWN0KHZhbHVlcywgbm9ybWFsaXplVW5pdCksCiAgICAgICAgc2V0dGluZ1dlZWtTdHVmZiA9CiAgICAgICAgICAhaXNVbmRlZmluZWQobm9ybWFsaXplZC53ZWVrWWVhcikgfHwKICAgICAgICAgICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtOdW1iZXIpIHx8CiAgICAgICAgICAhaXNVbmRlZmluZWQobm9ybWFsaXplZC53ZWVrZGF5KSwKICAgICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSwKICAgICAgICBjb250YWluc0dyZWdvclllYXIgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC55ZWFyKSwKICAgICAgICBjb250YWluc0dyZWdvck1EID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQubW9udGgpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSksCiAgICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCwKICAgICAgICBkZWZpbml0ZVdlZWtEZWYgPSBub3JtYWxpemVkLndlZWtZZWFyIHx8IG5vcm1hbGl6ZWQud2Vla051bWJlcjsKCiAgICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHsKICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoCiAgICAgICAgICAiQ2FuJ3QgbWl4IHdlZWtZZWFyL3dlZWtOdW1iZXIgdW5pdHMgd2l0aCB5ZWFyL21vbnRoL2RheSBvciBvcmRpbmFscyIKICAgICAgICApOwogICAgICB9CgogICAgICBpZiAoY29udGFpbnNHcmVnb3JNRCAmJiBjb250YWluc09yZGluYWwpIHsKICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5Iik7CiAgICAgIH0KCiAgICAgIGxldCBtaXhlZDsKICAgICAgaWYgKHNldHRpbmdXZWVrU3R1ZmYpIHsKICAgICAgICBtaXhlZCA9IHdlZWtUb0dyZWdvcmlhbih7IC4uLmdyZWdvcmlhblRvV2Vlayh0aGlzLmMpLCAuLi5ub3JtYWxpemVkIH0pOwogICAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpKSB7CiAgICAgICAgbWl4ZWQgPSBvcmRpbmFsVG9HcmVnb3JpYW4oeyAuLi5ncmVnb3JpYW5Ub09yZGluYWwodGhpcy5jKSwgLi4ubm9ybWFsaXplZCB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBtaXhlZCA9IHsgLi4udGhpcy50b09iamVjdCgpLCAuLi5ub3JtYWxpemVkIH07CgogICAgICAgIC8vIGlmIHdlIGRpZG4ndCBzZXQgdGhlIGRheSBidXQgd2UgZW5kZWQgdXAgb24gYW4gb3ZlcmZsb3cgZGF0ZSwKICAgICAgICAvLyB1c2UgdGhlIGxhc3QgZGF5IG9mIHRoZSByaWdodCBtb250aAogICAgICAgIGlmIChpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSkpIHsKICAgICAgICAgIG1peGVkLmRheSA9IE1hdGgubWluKGRheXNJbk1vbnRoKG1peGVkLnllYXIsIG1peGVkLm1vbnRoKSwgbWl4ZWQuZGF5KTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGNvbnN0IFt0cywgb10gPSBvYmpUb1RTKG1peGVkLCB0aGlzLm8sIHRoaXMuem9uZSk7CiAgICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHRzLCBvIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGEgcGVyaW9kIG9mIHRpbWUgdG8gdGhpcyBEYXRlVGltZSBhbmQgcmV0dXJuIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUKICAgICAqCiAgICAgKiBBZGRpbmcgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG9yIG1pbGxpc2Vjb25kcyBpbmNyZWFzZXMgdGhlIHRpbWVzdGFtcCBieSB0aGUgcmlnaHQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy4gQWRkaW5nIGRheXMsIG1vbnRocywgb3IgeWVhcnMgc2hpZnRzIHRoZSBjYWxlbmRhciwgYWNjb3VudGluZyBmb3IgRFNUcyBhbmQgbGVhcCB5ZWFycyBhbG9uZyB0aGUgd2F5LiBUaHVzLCBgZHQucGx1cyh7IGhvdXJzOiAyNCB9KWAgbWF5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0aW1lIHRoYW4gYGR0LnBsdXMoeyBkYXlzOiAxIH0pYCBpZiB0aGVyZSdzIGEgRFNUIHNoaWZ0IGluIGJldHdlZW4uCiAgICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBhZGQuIEVpdGhlciBhIEx1eG9uIER1cmF0aW9uLCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIHRoZSBvYmplY3QgYXJndW1lbnQgdG8gRHVyYXRpb24uZnJvbU9iamVjdCgpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKDEyMykgLy9+PiBpbiAxMjMgbWlsbGlzZWNvbmRzCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgbWludXRlczogMTUgfSkgLy9+PiBpbiAxNSBtaW51dGVzCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KSAvL34+IHRoaXMgdGltZSB0b21vcnJvdwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IC0xIH0pIC8vfj4gdGhpcyB0aW1lIHllc3RlcmRheQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSAvL34+IGluIDMgaHIsIDEzIG1pbgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDMsIG1pbnV0ZXM6IDEzIH0pKSAvL34+IGluIDMgaHIsIDEzIG1pbgogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHBsdXMoZHVyYXRpb24pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwogICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTsKICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTdWJ0cmFjdCBhIHBlcmlvZCBvZiB0aW1lIHRvIHRoaXMgRGF0ZVRpbWUgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lCiAgICAgKiBTZWUge0BsaW5rIERhdGVUaW1lI3BsdXN9CiAgICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKICAgICBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgbWludXMoZHVyYXRpb24pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwogICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKS5uZWdhdGUoKTsKICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0IiB0aGlzIERhdGVUaW1lIHRvIHRoZSBiZWdpbm5pbmcgb2YgYSB1bml0IG9mIHRpbWUuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIFRoZSB1bml0IHRvIGdvIHRvIHRoZSBiZWdpbm5pbmcgb2YuIENhbiBiZSAneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsIG9yICdtaWxsaXNlY29uZCcuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCdtb250aCcpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAxJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZigneWVhcicpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAxLTAxJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZignd2VlaycpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAzJywgd2Vla3MgYWx3YXlzIHN0YXJ0IG9uIE1vbmRheXMKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5zdGFydE9mKCdkYXknKS50b0lTT1RpbWUoKTsgLy89PiAnMDA6MDAuMDAwLTA1OjAwJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMywgNSwgMzApLnN0YXJ0T2YoJ2hvdXInKS50b0lTT1RpbWUoKTsgLy89PiAnMDU6MDA6MDAuMDAwLTA1OjAwJwogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXJ0T2YodW5pdCkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IG8gPSB7fSwKICAgICAgICBub3JtYWxpemVkVW5pdCA9IER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodW5pdCk7CiAgICAgIHN3aXRjaCAobm9ybWFsaXplZFVuaXQpIHsKICAgICAgICBjYXNlICJ5ZWFycyI6CiAgICAgICAgICBvLm1vbnRoID0gMTsKICAgICAgICAvLyBmYWxscyB0aHJvdWdoCiAgICAgICAgY2FzZSAicXVhcnRlcnMiOgogICAgICAgIGNhc2UgIm1vbnRocyI6CiAgICAgICAgICBvLmRheSA9IDE7CiAgICAgICAgLy8gZmFsbHMgdGhyb3VnaAogICAgICAgIGNhc2UgIndlZWtzIjoKICAgICAgICBjYXNlICJkYXlzIjoKICAgICAgICAgIG8uaG91ciA9IDA7CiAgICAgICAgLy8gZmFsbHMgdGhyb3VnaAogICAgICAgIGNhc2UgImhvdXJzIjoKICAgICAgICAgIG8ubWludXRlID0gMDsKICAgICAgICAvLyBmYWxscyB0aHJvdWdoCiAgICAgICAgY2FzZSAibWludXRlcyI6CiAgICAgICAgICBvLnNlY29uZCA9IDA7CiAgICAgICAgLy8gZmFsbHMgdGhyb3VnaAogICAgICAgIGNhc2UgInNlY29uZHMiOgogICAgICAgICAgby5taWxsaXNlY29uZCA9IDA7CiAgICAgICAgICBicmVhazsKICAgICAgICAvLyBubyBkZWZhdWx0LCBpbnZhbGlkIHVuaXRzIHRocm93IGluIG5vcm1hbGl6ZVVuaXQoKQogICAgICB9CgogICAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09ICJ3ZWVrcyIpIHsKICAgICAgICBvLndlZWtkYXkgPSAxOwogICAgICB9CgogICAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09ICJxdWFydGVycyIpIHsKICAgICAgICBjb25zdCBxID0gTWF0aC5jZWlsKHRoaXMubW9udGggLyAzKTsKICAgICAgICBvLm1vbnRoID0gKHEgLSAxKSAqIDMgKyAxOwogICAgICB9CgogICAgICByZXR1cm4gdGhpcy5zZXQobyk7CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0IiB0aGlzIERhdGVUaW1lIHRvIHRoZSBlbmQgKG1lYW5pbmcgdGhlIGxhc3QgbWlsbGlzZWNvbmQpIG9mIGEgdW5pdCBvZiB0aW1lCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIFRoZSB1bml0IHRvIGdvIHRvIHRoZSBlbmQgb2YuIENhbiBiZSAneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsIG9yICdtaWxsaXNlY29uZCcuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5lbmRPZignbW9udGgnKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTMxVDIzOjU5OjU5Ljk5OS0wNTowMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd5ZWFyJykudG9JU08oKTsgLy89PiAnMjAxNC0xMi0zMVQyMzo1OTo1OS45OTktMDU6MDAnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5lbmRPZignd2VlaycpLnRvSVNPKCk7IC8vID0+ICcyMDE0LTAzLTA5VDIzOjU5OjU5Ljk5OS0wNTowMCcsIHdlZWtzIHN0YXJ0IG9uIE1vbmRheXMKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5lbmRPZignZGF5JykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0wM1QyMzo1OTo1OS45OTktMDU6MDAnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2hvdXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTAzVDA1OjU5OjU5Ljk5OS0wNTowMCcKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBlbmRPZih1bml0KSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQKICAgICAgICA/IHRoaXMucGx1cyh7IFt1bml0XTogMSB9KQogICAgICAgICAgICAuc3RhcnRPZih1bml0KQogICAgICAgICAgICAubWludXMoMSkKICAgICAgICA6IHRoaXM7CiAgICB9CgogICAgLy8gT1VUUFVUCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuCiAgICAgKiAqKllvdSBtYXkgbm90IHdhbnQgdGhpcy4qKiBTZWUge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3IgYSBtb3JlIGZsZXhpYmxlIGZvcm1hdHRpbmcgdG9vbC4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvZm9ybWF0dGluZz9pZD10YWJsZS1vZi10b2tlbnMpLgogICAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLgogICAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgc3RyaW5nCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdHMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvbiB0aGlzIERhdGVUaW1lCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IEFwciAyMicKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgnZnInKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IGF2ci4gMjInCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnLCB7IGxvY2FsZTogImZyIiB9KSAvLz0+ICcyMDE3IGF2ci4gMjInCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgiSEggJ2hvdXJzIGFuZCcgbW0gJ21pbnV0ZXMnIikgLy89PiAnMjAgaG91cnMgYW5kIDU1IG1pbnV0ZXMnCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvRm9ybWF0KGZtdCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQKICAgICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5sb2MucmVkZWZhdWx0VG9FTihvcHRzKSkuZm9ybWF0RGF0ZVRpbWVGcm9tU3RyaW5nKHRoaXMsIGZtdCkKICAgICAgICA6IElOVkFMSUQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbG9jYWxpemVkIHN0cmluZyByZXByZXNlbnRpbmcgdGhpcyBkYXRlLiBBY2NlcHRzIHRoZSBzYW1lIG9wdGlvbnMgYXMgdGhlIEludGwuRGF0ZVRpbWVGb3JtYXQgY29uc3RydWN0b3IgYW5kIGFueSBwcmVzZXRzIGRlZmluZWQgYnkgTHV4b24sIHN1Y2ggYXMgYERhdGVUaW1lLkRBVEVfRlVMTGAgb3IgYERhdGVUaW1lLlRJTUVfU0lNUExFYC4KICAgICAqIFRoZSBleGFjdCBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZCBpcyBicm93c2VyLXNwZWNpZmljLCBidXQgaW4gZ2VuZXJhbCBpdCB3aWxsIHJldHVybiBhbiBhcHByb3ByaWF0ZSByZXByZXNlbnRhdGlvbgogICAgICogb2YgdGhlIERhdGVUaW1lIGluIHRoZSBhc3NpZ25lZCBsb2NhbGUuCiAgICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQKICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQKICAgICAqIEBwYXJhbSBmb3JtYXRPcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0cyB0byBvdmVycmlkZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9uIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKCk7IC8vPT4gNC8yMC8yMDE3CiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2VuLWdiJykudG9Mb2NhbGVTdHJpbmcoKTsgLy89PiAnMjAvMDQvMjAxNycKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gJ0FwcmlsIDIwLCAyMDE3JwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9GVUxMLCB7IGxvY2FsZTogJ2ZyJyB9KTsgLy89PiAnMjggYW/Du3QgMjAyMicKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLlRJTUVfU0lNUExFKTsgLy89PiAnMTE6MzIgQU0nCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFVElNRV9TSE9SVCk7IC8vPT4gJzQvMjAvMjAxNywgMTE6MzIgQU0nCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IHdlZWtkYXk6ICdsb25nJywgbW9udGg6ICdsb25nJywgZGF5OiAnMi1kaWdpdCcgfSk7IC8vPT4gJ1RodXJzZGF5LCBBcHJpbCAyMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ3Nob3J0JywgbW9udGg6ICdzaG9ydCcsIGRheTogJzItZGlnaXQnLCBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pOyAvLz0+ICdUaHUsIEFwciAyMCwgMTE6MjcgQU0nCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXJDeWNsZTogJ2gyMycgfSk7IC8vPT4gJzExOjMyJwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzID0gREFURV9TSE9SVCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQKICAgICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5sb2MuY2xvbmUob3B0cyksIGZvcm1hdE9wdHMpLmZvcm1hdERhdGVUaW1lKHRoaXMpCiAgICAgICAgOiBJTlZBTElEOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBmb3JtYXQgInBhcnRzIiwgbWVhbmluZyBpbmRpdmlkdWFsIHRva2VucyBhbG9uZyB3aXRoIG1ldGFkYXRhLiBUaGlzIGlzIGFsbG93cyBjYWxsZXJzIHRvIHBvc3QtcHJvY2VzcyBpbmRpdmlkdWFsIHNlY3Rpb25zIG9mIHRoZSBmb3JtYXR0ZWQgb3V0cHV0LgogICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0L2Zvcm1hdFRvUGFydHMKICAgICAqIEBwYXJhbSBvcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zLCBzYW1lIGFzIGB0b0xvY2FsZVN0cmluZ2AuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVBhcnRzKCk7IC8vPT4gWwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdkYXknLCB2YWx1ZTogJzI1JyB9LAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdsaXRlcmFsJywgdmFsdWU6ICcvJyB9LAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdtb250aCcsIHZhbHVlOiAnMDUnIH0sCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ3llYXInLCB2YWx1ZTogJzE5ODInIH0KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+IF0KICAgICAqLwogICAgdG9Mb2NhbGVQYXJ0cyhvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZAogICAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgb3B0cykuZm9ybWF0RGF0ZVRpbWVQYXJ0cyh0aGlzKQogICAgICAgIDogW107CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZQogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmV4dGVuZGVkWm9uZT1mYWxzZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXQKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgzLCA1LCAyNSkudG9JU08oKSAvLz0+ICcxOTgyLTA1LTI1VDAwOjAwOjAwLjAwMFonCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTygpIC8vPT4gJzIwMTctMDQtMjJUMjA6NDc6MDUuMzM1LTA0OjAwJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE3LTA0LTIyVDIwOjQ3OjA1LjMzNScKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzIwMTcwNDIyVDIwNDcwNS4zMzUtMDQwMCcKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU08oewogICAgICBmb3JtYXQgPSAiZXh0ZW5kZWQiLAogICAgICBzdXBwcmVzc1NlY29uZHMgPSBmYWxzZSwKICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHMgPSBmYWxzZSwKICAgICAgaW5jbHVkZU9mZnNldCA9IHRydWUsCiAgICAgIGV4dGVuZGVkWm9uZSA9IGZhbHNlLAogICAgfSA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KCiAgICAgIGNvbnN0IGV4dCA9IGZvcm1hdCA9PT0gImV4dGVuZGVkIjsKCiAgICAgIGxldCBjID0gdG9JU09EYXRlKHRoaXMsIGV4dCk7CiAgICAgIGMgKz0gIlQiOwogICAgICBjICs9IHRvSVNPVGltZSh0aGlzLCBleHQsIHN1cHByZXNzU2Vjb25kcywgc3VwcHJlc3NNaWxsaXNlY29uZHMsIGluY2x1ZGVPZmZzZXQsIGV4dGVuZGVkWm9uZSk7CiAgICAgIHJldHVybiBjOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyBkYXRlIGNvbXBvbmVudAogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXQKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wNS0yNScKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzE5ODIwNTI1JwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0lTT0RhdGUoeyBmb3JtYXQgPSAiZXh0ZW5kZWQiIH0gPSB7fSkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CgogICAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIGZvcm1hdCA9PT0gImV4dGVuZGVkIik7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHdlZWsgZGF0ZQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODIsIDUsIDI1KS50b0lTT1dlZWtEYXRlKCkgLy89PiAnMTk4Mi1XMjEtMicKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU09XZWVrRGF0ZSgpIHsKICAgICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCAia2tray0nVydXVy1jIik7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHRpbWUgY29tcG9uZW50CiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMAogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCcKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuZXh0ZW5kZWRab25lPXRydWVdIC0gYWRkIHRoZSB0aW1lIHpvbmUgZm9ybWF0IGV4dGVuc2lvbgogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlUHJlZml4PWZhbHNlXSAtIGluY2x1ZGUgdGhlIGBUYCBwcmVmaXgKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoKSAvLz0+ICcwNzozNDoxOS4zNjFaJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCwgc2Vjb25kczogMCwgbWlsbGlzZWNvbmRzOiAwIH0pLnRvSVNPVGltZSh7IHN1cHByZXNzU2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcwNzozNFonCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcwNzM0MTkuMzYxWicKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQgfSkudG9JU09UaW1lKHsgaW5jbHVkZVByZWZpeDogdHJ1ZSB9KSAvLz0+ICdUMDc6MzQ6MTkuMzYxWicKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU09UaW1lKHsKICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHMgPSBmYWxzZSwKICAgICAgc3VwcHJlc3NTZWNvbmRzID0gZmFsc2UsCiAgICAgIGluY2x1ZGVPZmZzZXQgPSB0cnVlLAogICAgICBpbmNsdWRlUHJlZml4ID0gZmFsc2UsCiAgICAgIGV4dGVuZGVkWm9uZSA9IGZhbHNlLAogICAgICBmb3JtYXQgPSAiZXh0ZW5kZWQiLAogICAgfSA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KCiAgICAgIGxldCBjID0gaW5jbHVkZVByZWZpeCA/ICJUIiA6ICIiOwogICAgICByZXR1cm4gKAogICAgICAgIGMgKwogICAgICAgIHRvSVNPVGltZSgKICAgICAgICAgIHRoaXMsCiAgICAgICAgICBmb3JtYXQgPT09ICJleHRlbmRlZCIsCiAgICAgICAgICBzdXBwcmVzc1NlY29uZHMsCiAgICAgICAgICBzdXBwcmVzc01pbGxpc2Vjb25kcywKICAgICAgICAgIGluY2x1ZGVPZmZzZXQsCiAgICAgICAgICBleHRlbmRlZFpvbmUKICAgICAgICApCiAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIFJGQyAyODIyLWNvbXBhdGlibGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9SRkMyODIyKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAwMDowMDowMCArMDAwMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1JGQzI4MjIoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIC0wNDAwJwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b1JGQzI4MjIoKSB7CiAgICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgWlpaIiwgZmFsc2UpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSFRUUCBoZWFkZXJzLiBUaGUgb3V0cHV0IGlzIGFsd2F5cyBleHByZXNzZWQgaW4gR01ULgogICAgICogU3BlY2lmaWNhbGx5LCB0aGUgc3RyaW5nIGNvbmZvcm1zIHRvIFJGQyAxMTIzLgogICAgICogQHNlZSBodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMzLmh0bWwjc2VjMy4zLjEKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9IVFRQKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAwMDowMDowMCBHTVQnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMsIDE5KS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDE5OjAwOjAwIEdNVCcKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9IVFRQKCkgewogICAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMudG9VVEMoKSwgIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgJ0dNVCciKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvU1FMRGF0ZSgpIC8vPT4gJzIwMTQtMDctMTMnCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvU1FMRGF0ZSgpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIFRpbWUKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlWm9uZT1mYWxzZV0gLSBpbmNsdWRlIHRoZSB6b25lLCBzdWNoIGFzICdBbWVyaWNhL05ld19Zb3JrJy4gT3ZlcnJpZGVzIGluY2x1ZGVPZmZzZXQuCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXRTcGFjZT10cnVlXSAtIGluY2x1ZGUgdGhlIHNwYWNlIGJldHdlZW4gdGhlIHRpbWUgYW5kIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJzA1OjE1OjE2LjM0NSAtMDQ6MDAnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS50b1NRTCgpIC8vPT4gJzA1OjE1OjE2LjM0NScKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKCkgLy89PiAnMDU6MTU6MTYuMzQ1IC0wNDowMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1JwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlWm9uZTogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1IEFtZXJpY2EvTmV3X1lvcmsnCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvU1FMVGltZSh7IGluY2x1ZGVPZmZzZXQgPSB0cnVlLCBpbmNsdWRlWm9uZSA9IGZhbHNlLCBpbmNsdWRlT2Zmc2V0U3BhY2UgPSB0cnVlIH0gPSB7fSkgewogICAgICBsZXQgZm10ID0gIkhIOm1tOnNzLlNTUyI7CgogICAgICBpZiAoaW5jbHVkZVpvbmUgfHwgaW5jbHVkZU9mZnNldCkgewogICAgICAgIGlmIChpbmNsdWRlT2Zmc2V0U3BhY2UpIHsKICAgICAgICAgIGZtdCArPSAiICI7CiAgICAgICAgfQogICAgICAgIGlmIChpbmNsdWRlWm9uZSkgewogICAgICAgICAgZm10ICs9ICJ6IjsKICAgICAgICB9IGVsc2UgaWYgKGluY2x1ZGVPZmZzZXQpIHsKICAgICAgICAgIGZtdCArPSAiWloiOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBmbXQsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVpvbmU9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgem9uZSwgc3VjaCBhcyAnQW1lcmljYS9OZXdfWW9yaycuIE92ZXJyaWRlcyBpbmNsdWRlT2Zmc2V0LgogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJwogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0U3BhY2U9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB0aW1lIGFuZCB0aGUgb2Zmc2V0LCBzdWNoIGFzICcwNToxNToxNi4zNDUgLTA0OjAwJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b1NRTCgpIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIFonCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoKSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCAtMDQ6MDAnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1NRTCh7IGluY2x1ZGVab25lOiB0cnVlIH0pIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIEFtZXJpY2EvTmV3X1lvcmsnCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvU1FMKG9wdHMgPSB7fSkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CgogICAgICByZXR1cm4gYCR7dGhpcy50b1NRTERhdGUoKX0gJHt0aGlzLnRvU1FMVGltZShvcHRzKX1gOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciBkZWJ1Z2dpbmcKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9TdHJpbmcoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvSVNPKCkgOiBJTlZBTElEOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZXBvY2ggbWlsbGlzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuIEFsaWFzIG9mIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30KICAgICAqIEByZXR1cm4ge251bWJlcn0KICAgICAqLwogICAgdmFsdWVPZigpIHsKICAgICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICB0b01pbGxpcygpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIHRvU2Vjb25kcygpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgLyAxMDAwIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZXBvY2ggc2Vjb25kcyAoYXMgYSB3aG9sZSBudW1iZXIpIG9mIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIHRvVW5peEludGVnZXIoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmZsb29yKHRoaXMudHMgLyAxMDAwKSA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEpTT04uCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvSlNPTigpIHsKICAgICAgcmV0dXJuIHRoaXMudG9JU08oKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBCU09OIHNlcmlhbGl6YWJsZSBlcXVpdmFsZW50IHRvIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAcmV0dXJuIHtEYXRlfQogICAgICovCiAgICB0b0JTT04oKSB7CiAgICAgIHJldHVybiB0aGlzLnRvSlNEYXRlKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0aGlzIERhdGVUaW1lJ3MgeWVhciwgbW9udGgsIGRheSwgYW5kIHNvIG9uLgogICAgICogQHBhcmFtIG9wdHMgLSBvcHRpb25zIGZvciBnZW5lcmF0aW5nIHRoZSBvYmplY3QKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZUNvbmZpZz1mYWxzZV0gLSBpbmNsdWRlIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBpbiB0aGUgb3V0cHV0CiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b09iamVjdCgpIC8vPT4geyB5ZWFyOiAyMDE3LCBtb250aDogNCwgZGF5OiAyMiwgaG91cjogMjAsIG1pbnV0ZTogNDksIHNlY29uZDogNDIsIG1pbGxpc2Vjb25kOiAyNjggfQogICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICovCiAgICB0b09iamVjdChvcHRzID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTsKCiAgICAgIGNvbnN0IGJhc2UgPSB7IC4uLnRoaXMuYyB9OwoKICAgICAgaWYgKG9wdHMuaW5jbHVkZUNvbmZpZykgewogICAgICAgIGJhc2Uub3V0cHV0Q2FsZW5kYXIgPSB0aGlzLm91dHB1dENhbGVuZGFyOwogICAgICAgIGJhc2UubnVtYmVyaW5nU3lzdGVtID0gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtOwogICAgICAgIGJhc2UubG9jYWxlID0gdGhpcy5sb2MubG9jYWxlOwogICAgICB9CiAgICAgIHJldHVybiBiYXNlOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgRGF0ZSBlcXVpdmFsZW50IHRvIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAcmV0dXJuIHtEYXRlfQogICAgICovCiAgICB0b0pTRGF0ZSgpIHsKICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU4pOwogICAgfQoKICAgIC8vIENPTVBBUkUKCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBEYXRlVGltZXMgYXMgYSBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgRGF0ZVRpbWUgdG8gY29tcGFyZSB0aGlzIG9uZSB0bwogICAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQGV4YW1wbGUKICAgICAqIHZhciBpMSA9IERhdGVUaW1lLmZyb21JU08oJzE5ODItMDUtMjVUMDk6NDUnKSwKICAgICAqICAgICBpMiA9IERhdGVUaW1lLmZyb21JU08oJzE5ODMtMTAtMTRUMTA6MzAnKTsKICAgICAqIGkyLmRpZmYoaTEpLnRvT2JqZWN0KCkgLy89PiB7IG1pbGxpc2Vjb25kczogNDM4MDc1MDAwMDAgfQogICAgICogaTIuZGlmZihpMSwgJ2hvdXJzJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDEyMTY4Ljc1IH0KICAgICAqIGkyLmRpZmYoaTEsIFsnbW9udGhzJywgJ2RheXMnXSkudG9PYmplY3QoKSAvLz0+IHsgbW9udGhzOiAxNiwgZGF5czogMTkuMDMxMjUgfQogICAgICogaTIuZGlmZihpMSwgWydtb250aHMnLCAnZGF5cycsICdob3VycyddKS50b09iamVjdCgpIC8vPT4geyBtb250aHM6IDE2LCBkYXlzOiAxOSwgaG91cnM6IDAuNzUgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIGRpZmYob3RoZXJEYXRlVGltZSwgdW5pdCA9ICJtaWxsaXNlY29uZHMiLCBvcHRzID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyRGF0ZVRpbWUuaXNWYWxpZCkgewogICAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKCJjcmVhdGVkIGJ5IGRpZmZpbmcgYW4gaW52YWxpZCBEYXRlVGltZSIpOwogICAgICB9CgogICAgICBjb25zdCBkdXJPcHRzID0geyBsb2NhbGU6IHRoaXMubG9jYWxlLCBudW1iZXJpbmdTeXN0ZW06IHRoaXMubnVtYmVyaW5nU3lzdGVtLCAuLi5vcHRzIH07CgogICAgICBjb25zdCB1bml0cyA9IG1heWJlQXJyYXkodW5pdCkubWFwKER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLAogICAgICAgIG90aGVySXNMYXRlciA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpID4gdGhpcy52YWx1ZU9mKCksCiAgICAgICAgZWFybGllciA9IG90aGVySXNMYXRlciA/IHRoaXMgOiBvdGhlckRhdGVUaW1lLAogICAgICAgIGxhdGVyID0gb3RoZXJJc0xhdGVyID8gb3RoZXJEYXRlVGltZSA6IHRoaXMsCiAgICAgICAgZGlmZmVkID0gZGlmZihlYXJsaWVyLCBsYXRlciwgdW5pdHMsIGR1ck9wdHMpOwoKICAgICAgcmV0dXJuIG90aGVySXNMYXRlciA/IGRpZmZlZC5uZWdhdGUoKSA6IGRpZmZlZDsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgRGF0ZVRpbWUgYW5kIHJpZ2h0IG5vdy4KICAgICAqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjZGlmZn0KICAgICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIGRpZmZOb3codW5pdCA9ICJtaWxsaXNlY29uZHMiLCBvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIHRoaXMuZGlmZihEYXRlVGltZS5ub3coKSwgdW5pdCwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgc3Bhbm5pbmcgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCBhbm90aGVyIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIG90aGVyIGVuZCBwb2ludCBvZiB0aGUgSW50ZXJ2YWwKICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICB1bnRpbChvdGhlckRhdGVUaW1lKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHRoaXMsIG90aGVyRGF0ZVRpbWUpIDogdGhpczsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgRGF0ZVRpbWUgaXMgaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lIGFzIGFub3RoZXIgRGF0ZVRpbWUuCiAgICAgKiBIaWdoZXItb3JkZXIgdW5pdHMgbXVzdCBhbHNvIGJlIGlkZW50aWNhbCBmb3IgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gYHRydWVgLgogICAgICogTm90ZSB0aGF0IHRpbWUgem9uZXMgYXJlICoqaWdub3JlZCoqIGluIHRoaXMgY29tcGFyaXNvbiwgd2hpY2ggY29tcGFyZXMgdGhlICoqbG9jYWwqKiBjYWxlbmRhciB0aW1lLiBVc2Uge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9IHRvIGNvbnZlcnQgb25lIG9mIHRoZSBkYXRlcyBpZiBuZWVkZWQuCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIG90aGVyIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb24KICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLmhhc1NhbWUob3RoZXJEVCwgJ2RheScpOyAvL34+IHRydWUgaWYgb3RoZXJEVCBpcyBpbiB0aGUgc2FtZSBjdXJyZW50IGNhbGVuZGFyIGRheQogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgaGFzU2FtZShvdGhlckRhdGVUaW1lLCB1bml0KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CgogICAgICBjb25zdCBpbnB1dE1zID0gb3RoZXJEYXRlVGltZS52YWx1ZU9mKCk7CiAgICAgIGNvbnN0IGFkanVzdGVkVG9ab25lID0gdGhpcy5zZXRab25lKG90aGVyRGF0ZVRpbWUuem9uZSwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pOwogICAgICByZXR1cm4gYWRqdXN0ZWRUb1pvbmUuc3RhcnRPZih1bml0KSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gYWRqdXN0ZWRUb1pvbmUuZW5kT2YodW5pdCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBFcXVhbGl0eSBjaGVjawogICAgICogVHdvIERhdGVUaW1lcyBhcmUgZXF1YWwgaWYgYW5kIG9ubHkgaWYgdGhleSByZXByZXNlbnQgdGhlIHNhbWUgbWlsbGlzZWNvbmQsIGhhdmUgdGhlIHNhbWUgem9uZSBhbmQgbG9jYXRpb24sIGFuZCBhcmUgYm90aCB2YWxpZC4KICAgICAqIFRvIGNvbXBhcmUganVzdCB0aGUgbWlsbGlzZWNvbmQgdmFsdWVzLCB1c2UgYCtkdDEgPT09ICtkdDJgLgogICAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXIgLSB0aGUgb3RoZXIgRGF0ZVRpbWUKICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGVxdWFscyhvdGhlcikgewogICAgICByZXR1cm4gKAogICAgICAgIHRoaXMuaXNWYWxpZCAmJgogICAgICAgIG90aGVyLmlzVmFsaWQgJiYKICAgICAgICB0aGlzLnZhbHVlT2YoKSA9PT0gb3RoZXIudmFsdWVPZigpICYmCiAgICAgICAgdGhpcy56b25lLmVxdWFscyhvdGhlci56b25lKSAmJgogICAgICAgIHRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpCiAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgdGhpcyB0aW1lIHJlbGF0aXZlIHRvIG5vdywgc3VjaCBhcyAiaW4gdHdvIGRheXMiLiBDYW4gb25seSBpbnRlcm5hdGlvbmFsaXplIGlmIHlvdXIKICAgICAqIHBsYXRmb3JtIHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LiBSb3VuZHMgZG93biBieSBkZWZhdWx0LgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBvdXRwdXQKICAgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuc3R5bGU9ImxvbmciXSAtIHRoZSBzdHlsZSBvZiB1bml0cywgbXVzdCBiZSAibG9uZyIsICJzaG9ydCIsIG9yICJuYXJyb3ciCiAgICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gb3B0aW9ucy51bml0IC0gdXNlIGEgc3BlY2lmaWMgdW5pdCBvciBhcnJheSBvZiB1bml0czsgaWYgb21pdHRlZCwgb3IgYW4gYXJyYXksIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSBiZXN0IHVuaXQuIFVzZSBhbiBhcnJheSBvciBvbmUgb2YgInllYXJzIiwgInF1YXJ0ZXJzIiwgIm1vbnRocyIsICJ3ZWVrcyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCBvciAic2Vjb25kcyIKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMucm91bmQ9dHJ1ZV0gLSB3aGV0aGVyIHRvIHJvdW5kIHRoZSBudW1iZXJzIGluIHRoZSBvdXRwdXQuCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMucGFkZGluZz0wXSAtIHBhZGRpbmcgaW4gbWlsbGlzZWNvbmRzLiBUaGlzIGFsbG93cyB5b3UgdG8gcm91bmQgdXAgdGhlIHJlc3VsdCBpZiBpdCBmaXRzIGluc2lkZSB0aGUgdGhyZXNob2xkLiBEb24ndCB1c2UgaW4gY29tYmluYXRpb24gd2l0aCB7cm91bmQ6IGZhbHNlfSBiZWNhdXNlIHRoZSBkZWNpbWFsIG91dHB1dCB3aWxsIGluY2x1ZGUgdGhlIHBhZGRpbmcuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXMKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoKSAvLz0+ICJpbiAxIGRheSIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgiZXMiKS50b1JlbGF0aXZlKHsgZGF5czogMSB9KSAvLz0+ICJkZW50cm8gZGUgMSBkw61hIgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSh7IGxvY2FsZTogImZyIiB9KSAvLz0+ICJkYW5zIDIzIGhldXJlcyIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlKCkgLy89PiAiMiBkYXlzIGFnbyIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlKHsgdW5pdDogImhvdXJzIiB9KSAvLz0+ICI0OCBob3VycyBhZ28iCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGhvdXJzOiAzNiB9KS50b1JlbGF0aXZlKHsgcm91bmQ6IGZhbHNlIH0pIC8vPT4gIjEuNSBkYXlzIGFnbyIKICAgICAqLwogICAgdG9SZWxhdGl2ZShvcHRpb25zID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwogICAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IERhdGVUaW1lLmZyb21PYmplY3Qoe30sIHsgem9uZTogdGhpcy56b25lIH0pLAogICAgICAgIHBhZGRpbmcgPSBvcHRpb25zLnBhZGRpbmcgPyAodGhpcyA8IGJhc2UgPyAtb3B0aW9ucy5wYWRkaW5nIDogb3B0aW9ucy5wYWRkaW5nKSA6IDA7CiAgICAgIGxldCB1bml0cyA9IFsieWVhcnMiLCAibW9udGhzIiwgImRheXMiLCAiaG91cnMiLCAibWludXRlcyIsICJzZWNvbmRzIl07CiAgICAgIGxldCB1bml0ID0gb3B0aW9ucy51bml0OwogICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnVuaXQpKSB7CiAgICAgICAgdW5pdHMgPSBvcHRpb25zLnVuaXQ7CiAgICAgICAgdW5pdCA9IHVuZGVmaW5lZDsKICAgICAgfQogICAgICByZXR1cm4gZGlmZlJlbGF0aXZlKGJhc2UsIHRoaXMucGx1cyhwYWRkaW5nKSwgewogICAgICAgIC4uLm9wdGlvbnMsCiAgICAgICAgbnVtZXJpYzogImFsd2F5cyIsCiAgICAgICAgdW5pdHMsCiAgICAgICAgdW5pdCwKICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgZGF0ZSByZWxhdGl2ZSB0byB0b2RheSwgc3VjaCBhcyAieWVzdGVyZGF5IiBvciAibmV4dCBtb250aCIuCiAgICAgKiBPbmx5IGludGVybmF0aW9uYWxpemVzIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBvdXRwdXQKICAgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnVuaXQgLSB1c2UgYSBzcGVjaWZpYyB1bml0OyBpZiBvbWl0dGVkLCB0aGUgbWV0aG9kIHdpbGwgcGljayB0aGUgdW5pdC4gVXNlIG9uZSBvZiAieWVhcnMiLCAicXVhcnRlcnMiLCAibW9udGhzIiwgIndlZWtzIiwgb3IgImRheXMiCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSBvdmVycmlkZSB0aGUgbnVtYmVyaW5nU3lzdGVtIG9mIHRoaXMgRGF0ZVRpbWUuIFRoZSBJbnRsIHN5c3RlbSBtYXkgY2hvb3NlIG5vdCB0byBob25vciB0aGlzCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+ICJ0b21vcnJvdyIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgiZXMiKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlKCkgLy89PiAiIm1hw7FhbmEiCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoeyBsb2NhbGU6ICJmciIgfSkgLy89PiAiZGVtYWluIgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmVDYWxlbmRhcigpIC8vPT4gIjIgZGF5cyBhZ28iCiAgICAgKi8KICAgIHRvUmVsYXRpdmVDYWxlbmRhcihvcHRpb25zID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwoKICAgICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShvcHRpb25zLmJhc2UgfHwgRGF0ZVRpbWUuZnJvbU9iamVjdCh7fSwgeyB6b25lOiB0aGlzLnpvbmUgfSksIHRoaXMsIHsKICAgICAgICAuLi5vcHRpb25zLAogICAgICAgIG51bWVyaWM6ICJhdXRvIiwKICAgICAgICB1bml0czogWyJ5ZWFycyIsICJtb250aHMiLCAiZGF5cyJdLAogICAgICAgIGNhbGVuZGFyeTogdHJ1ZSwKICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIG1pbiBvZiBzZXZlcmFsIGRhdGUgdGltZXMKICAgICAqIEBwYXJhbSB7Li4uRGF0ZVRpbWV9IGRhdGVUaW1lcyAtIHRoZSBEYXRlVGltZXMgZnJvbSB3aGljaCB0byBjaG9vc2UgdGhlIG1pbmltdW0KICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfSB0aGUgbWluIERhdGVUaW1lLCBvciB1bmRlZmluZWQgaWYgY2FsbGVkIHdpdGggbm8gYXJndW1lbnQKICAgICAqLwogICAgc3RhdGljIG1pbiguLi5kYXRlVGltZXMpIHsKICAgICAgaWYgKCFkYXRlVGltZXMuZXZlcnkoRGF0ZVRpbWUuaXNEYXRlVGltZSkpIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIm1pbiByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGJlIERhdGVUaW1lcyIpOwogICAgICB9CiAgICAgIHJldHVybiBiZXN0QnkoZGF0ZVRpbWVzLCAoaSkgPT4gaS52YWx1ZU9mKCksIE1hdGgubWluKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgbWF4IG9mIHNldmVyYWwgZGF0ZSB0aW1lcwogICAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWF4aW11bQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9IHRoZSBtYXggRGF0ZVRpbWUsIG9yIHVuZGVmaW5lZCBpZiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudAogICAgICovCiAgICBzdGF0aWMgbWF4KC4uLmRhdGVUaW1lcykgewogICAgICBpZiAoIWRhdGVUaW1lcy5ldmVyeShEYXRlVGltZS5pc0RhdGVUaW1lKSkgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibWF4IHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzIik7CiAgICAgIH0KICAgICAgcmV0dXJuIGJlc3RCeShkYXRlVGltZXMsIChpKSA9PiBpLnZhbHVlT2YoKSwgTWF0aC5tYXgpOwogICAgfQoKICAgIC8vIE1JU0MKCiAgICAvKioKICAgICAqIEV4cGxhaW4gaG93IGEgc3RyaW5nIHdvdWxkIGJlIHBhcnNlZCBieSBmcm9tRm9ybWF0KCkKICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgdGhlIHN0cmluZyBpcyBleHBlY3RlZCB0byBiZSBpbiAoc2VlIGRlc2NyaXB0aW9uKQogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRha2VuIGJ5IGZyb21Gb3JtYXQoKQogICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICovCiAgICBzdGF0aWMgZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHsKICAgICAgY29uc3QgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsIH0gPSBvcHRpb25zLAogICAgICAgIGxvY2FsZVRvVXNlID0gTG9jYWxlLmZyb21PcHRzKHsKICAgICAgICAgIGxvY2FsZSwKICAgICAgICAgIG51bWJlcmluZ1N5c3RlbSwKICAgICAgICAgIGRlZmF1bHRUb0VOOiB0cnVlLAogICAgICAgIH0pOwogICAgICByZXR1cm4gZXhwbGFpbkZyb21Ub2tlbnMobG9jYWxlVG9Vc2UsIHRleHQsIGZtdCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdEV4cGxhaW4gaW5zdGVhZAogICAgICovCiAgICBzdGF0aWMgZnJvbVN0cmluZ0V4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHsKICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXRFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucyk7CiAgICB9CgogICAgLy8gRk9STUFUIFBSRVNFVFMKCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgMTAvMTQvMTk4MwogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFX1NIT1JUKCkgewogICAgICByZXR1cm4gREFURV9TSE9SVDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MycKICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgREFURV9NRUQoKSB7CiAgICAgIHJldHVybiBEQVRFX01FRDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaSwgT2N0IDE0LCAxOTgzJwogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFX01FRF9XSVRIX1dFRUtEQVkoKSB7CiAgICAgIHJldHVybiBEQVRFX01FRF9XSVRIX1dFRUtEQVk7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzJwogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFX0ZVTEwoKSB7CiAgICAgIHJldHVybiBEQVRFX0ZVTEw7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdUdWVzZGF5LCBPY3RvYmVyIDE0LCAxOTgzJwogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFX0hVR0UoKSB7CiAgICAgIHJldHVybiBEQVRFX0hVR0U7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FX1NJTVBMRSgpIHsKICAgICAgcmV0dXJuIFRJTUVfU0lNUExFOwogICAgfQoKICAgIC8qKgogICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgVElNRV9XSVRIX1NFQ09ORFMoKSB7CiAgICAgIHJldHVybiBUSU1FX1dJVEhfU0VDT05EUzsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUKCkgewogICAgICByZXR1cm4gVElNRV9XSVRIX1NIT1JUX09GRlNFVDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FX1dJVEhfTE9OR19PRkZTRVQoKSB7CiAgICAgIHJldHVybiBUSU1FX1dJVEhfTE9OR19PRkZTRVQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMCcsIGFsd2F5cyAyNC1ob3VyLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FXzI0X1NJTVBMRSgpIHsKICAgICAgcmV0dXJuIFRJTUVfMjRfU0lNUExFOwogICAgfQoKICAgIC8qKgogICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMnLCBhbHdheXMgMjQtaG91ci4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NFQ09ORFMoKSB7CiAgICAgIHJldHVybiBUSU1FXzI0X1dJVEhfU0VDT05EUzsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEVEVCcsIGFsd2F5cyAyNC1ob3VyLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUKCkgewogICAgICByZXR1cm4gVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScsIGFsd2F5cyAyNC1ob3VyLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQoKSB7CiAgICAgIHJldHVybiBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCiAgICAgKiBAdHlwZSB7T2JqZWN0fQogICAgICovCiAgICBzdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUKCkgewogICAgICByZXR1cm4gREFURVRJTUVfU0hPUlQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwOjMzIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCiAgICAgKiBAdHlwZSB7T2JqZWN0fQogICAgICovCiAgICBzdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUygpIHsKICAgICAgcmV0dXJuIERBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUzsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFVElNRV9NRUQoKSB7CiAgICAgIHJldHVybiBEQVRFVElNRV9NRUQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUygpIHsKICAgICAgcmV0dXJuIERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFM7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmksIDE0IE9jdCAxOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCiAgICAgKiBAdHlwZSB7T2JqZWN0fQogICAgICovCiAgICBzdGF0aWMgZ2V0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkoKSB7CiAgICAgIHJldHVybiBEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZOwogICAgfQoKICAgIC8qKgogICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MywgOTozMCBBTSBFRFQnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgREFURVRJTUVfRlVMTCgpIHsKICAgICAgcmV0dXJuIERBVEVUSU1FX0ZVTEw7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzLCA5OjMwOjMzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUygpIHsKICAgICAgcmV0dXJuIERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTOwogICAgfQoKICAgIC8qKgogICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpZGF5LCBPY3RvYmVyIDE0LCAxOTgzLCA5OjMwIEFNIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFVElNRV9IVUdFKCkgewogICAgICByZXR1cm4gREFURVRJTUVfSFVHRTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaWRheSwgT2N0b2JlciAxNCwgMTk4MywgOTozMDozMyBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMoKSB7CiAgICAgIHJldHVybiBEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUzsKICAgIH0KICB9CgogIC8qKgogICAqIEBwcml2YXRlCiAgICovCiAgZnVuY3Rpb24gZnJpZW5kbHlEYXRlVGltZShkYXRlVGltZWlzaCkgewogICAgaWYgKERhdGVUaW1lLmlzRGF0ZVRpbWUoZGF0ZVRpbWVpc2gpKSB7CiAgICAgIHJldHVybiBkYXRlVGltZWlzaDsKICAgIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgZGF0ZVRpbWVpc2gudmFsdWVPZiAmJiBpc051bWJlcihkYXRlVGltZWlzaC52YWx1ZU9mKCkpKSB7CiAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tSlNEYXRlKGRhdGVUaW1laXNoKTsKICAgIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgdHlwZW9mIGRhdGVUaW1laXNoID09PSAib2JqZWN0IikgewogICAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbU9iamVjdChkYXRlVGltZWlzaCk7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoCiAgICAgICAgYFVua25vd24gZGF0ZXRpbWUgYXJndW1lbnQ6ICR7ZGF0ZVRpbWVpc2h9LCBvZiB0eXBlICR7dHlwZW9mIGRhdGVUaW1laXNofWAKICAgICAgKTsKICAgIH0KICB9CgogIC8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgLy8gUXVlcnkgU2V0dGluZ3MgLy8KICAvLy8vLy8vLy8vLy8vLy8vLy8vLwogIGNvbnN0IERFRkFVTFRfUVVFUllfU0VUVElOR1MgPSB7CiAgICAgIHJlbmRlck51bGxBczogIlxcLSIsCiAgICAgIHRhc2tDb21wbGV0aW9uVHJhY2tpbmc6IGZhbHNlLAogICAgICB0YXNrQ29tcGxldGlvblVzZUVtb2ppU2hvcnRoYW5kOiBmYWxzZSwKICAgICAgdGFza0NvbXBsZXRpb25UZXh0OiAiY29tcGxldGlvbiIsCiAgICAgIHRhc2tDb21wbGV0aW9uRGF0ZUZvcm1hdDogInl5eXktTU0tZGQiLAogICAgICByZWN1cnNpdmVTdWJUYXNrQ29tcGxldGlvbjogZmFsc2UsCiAgICAgIHdhcm5PbkVtcHR5UmVzdWx0OiB0cnVlLAogICAgICByZWZyZXNoRW5hYmxlZDogdHJ1ZSwKICAgICAgcmVmcmVzaEludGVydmFsOiAyNTAwLAogICAgICBkZWZhdWx0RGF0ZUZvcm1hdDogIk1NTU0gZGQsIHl5eXkiLAogICAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6ICJoOm1tIGEgLSBNTU1NIGRkLCB5eXl5IiwKICAgICAgbWF4UmVjdXJzaXZlUmVuZGVyRGVwdGg6IDQsCiAgICAgIHRhYmxlSWRDb2x1bW5OYW1lOiAiRmlsZSIsCiAgICAgIHRhYmxlR3JvdXBDb2x1bW5OYW1lOiAiR3JvdXAiLAogICAgICBzaG93UmVzdWx0Q291bnQ6IHRydWUsCiAgfTsKICBjb25zdCBERUZBVUxUX0VYUE9SVF9TRVRUSU5HUyA9IHsKICAgICAgYWxsb3dIdG1sOiB0cnVlLAogIH07CiAgLyoqIERlZmF1bHQgc2V0dGluZ3MgZm9yIGRhdGF2aWV3IG9uIGluc3RhbGwuICovCiAgKHsKICAgICAgLi4uREVGQVVMVF9RVUVSWV9TRVRUSU5HUywKICAgICAgLi4uREVGQVVMVF9FWFBPUlRfU0VUVElOR1MsCiAgICAgIC4uLnsKICAgICAgICAgIGlubGluZVF1ZXJ5UHJlZml4OiAiPSIsCiAgICAgICAgICBpbmxpbmVKc1F1ZXJ5UHJlZml4OiAiJD0iLAogICAgICAgICAgaW5saW5lUXVlcmllc0luQ29kZWJsb2NrczogdHJ1ZSwKICAgICAgICAgIGVuYWJsZUlubGluZURhdGF2aWV3OiB0cnVlLAogICAgICAgICAgZW5hYmxlRGF0YXZpZXdKczogZmFsc2UsCiAgICAgICAgICBlbmFibGVJbmxpbmVEYXRhdmlld0pzOiBmYWxzZSwKICAgICAgICAgIHByZXR0eVJlbmRlcklubGluZUZpZWxkczogdHJ1ZSwKICAgICAgICAgIHByZXR0eVJlbmRlcklubGluZUZpZWxkc0luTGl2ZVByZXZpZXc6IHRydWUsCiAgICAgICAgICBkYXRhdmlld0pzS2V5d29yZDogImRhdGF2aWV3anMiLAogICAgICB9LAogIH0pOwoKICAvKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuICovCiAgY2xhc3MgU3VjY2VzcyB7CiAgICAgIHZhbHVlOwogICAgICBzdWNjZXNzZnVsOwogICAgICBjb25zdHJ1Y3Rvcih2YWx1ZSkgewogICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gdHJ1ZTsKICAgICAgfQogICAgICBtYXAoZikgewogICAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKGYodGhpcy52YWx1ZSkpOwogICAgICB9CiAgICAgIGZsYXRNYXAoZikgewogICAgICAgICAgcmV0dXJuIGYodGhpcy52YWx1ZSk7CiAgICAgIH0KICAgICAgbWFwRXJyKGYpIHsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGJpbWFwKHN1Y2MsIF9mYWlsKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5tYXAoc3VjYyk7CiAgICAgIH0KICAgICAgb3JFbHNlKF92YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7CiAgICAgIH0KICAgICAgY2FzdCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIG9yRWxzZVRocm93KF9tZXNzYWdlKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKICAgICAgfQogIH0KICAvKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuICovCiAgY2xhc3MgRmFpbHVyZSB7CiAgICAgIGVycm9yOwogICAgICBzdWNjZXNzZnVsOwogICAgICBjb25zdHJ1Y3RvcihlcnJvcikgewogICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gZmFsc2U7CiAgICAgIH0KICAgICAgbWFwKF9mKSB7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBmbGF0TWFwKF9mKSB7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBtYXBFcnIoZikgewogICAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGYodGhpcy5lcnJvcikpOwogICAgICB9CiAgICAgIGJpbWFwKF9zdWNjLCBmYWlsKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5tYXBFcnIoZmFpbCk7CiAgICAgIH0KICAgICAgb3JFbHNlKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgY2FzdCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIG9yRWxzZVRocm93KG1lc3NhZ2UpIHsKICAgICAgICAgIGlmIChtZXNzYWdlKQogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKHRoaXMuZXJyb3IpKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIiIgKyB0aGlzLmVycm9yKTsKICAgICAgfQogIH0KICAvKiogTW9uYWRpYyAnUmVzdWx0JyB0eXBlIHdoaWNoIGVuY2Fwc3VsYXRlcyB3aGV0aGVyIGEgcHJvY2VkdXJlIHN1Y2NlZWRlZCBvciBmYWlsZWQsIGFzIHdlbGwgYXMgaXQncyByZXR1cm4gdmFsdWUuICovCiAgdmFyIFJlc3VsdDsKICAoZnVuY3Rpb24gKFJlc3VsdCkgewogICAgICAvKiogQ29uc3RydWN0IGEgbmV3IHN1Y2Nlc3MgcmVzdWx0IHdyYXBwaW5nIHRoZSBnaXZlbiB2YWx1ZS4gKi8KICAgICAgZnVuY3Rpb24gc3VjY2Vzcyh2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKHZhbHVlKTsKICAgICAgfQogICAgICBSZXN1bHQuc3VjY2VzcyA9IHN1Y2Nlc3M7CiAgICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgZmFpbHVyZSB2YWx1ZSB3cmFwcGluZyB0aGUgZ2l2ZW4gZXJyb3IuICovCiAgICAgIGZ1bmN0aW9uIGZhaWx1cmUoZXJyb3IpIHsKICAgICAgICAgIHJldHVybiBuZXcgRmFpbHVyZShlcnJvcik7CiAgICAgIH0KICAgICAgUmVzdWx0LmZhaWx1cmUgPSBmYWlsdXJlOwogICAgICAvKiogSm9pbiB0d28gcmVzdWx0cyB3aXRoIGEgYmktZnVuY3Rpb24gYW5kIHJldHVybiBhIG5ldyByZXN1bHQuICovCiAgICAgIGZ1bmN0aW9uIGZsYXRNYXAyKGZpcnN0LCBzZWNvbmQsIGYpIHsKICAgICAgICAgIGlmIChmaXJzdC5zdWNjZXNzZnVsKSB7CiAgICAgICAgICAgICAgaWYgKHNlY29uZC5zdWNjZXNzZnVsKQogICAgICAgICAgICAgICAgICByZXR1cm4gZihmaXJzdC52YWx1ZSwgc2Vjb25kLnZhbHVlKTsKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlKHNlY29uZC5lcnJvcik7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZShmaXJzdC5lcnJvcik7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgUmVzdWx0LmZsYXRNYXAyID0gZmxhdE1hcDI7CiAgICAgIC8qKiBKb2luIHR3byByZXN1bHRzIHdpdGggYSBiaS1mdW5jdGlvbiBhbmQgcmV0dXJuIGEgbmV3IHJlc3VsdC4gKi8KICAgICAgZnVuY3Rpb24gbWFwMihmaXJzdCwgc2Vjb25kLCBmKSB7CiAgICAgICAgICByZXR1cm4gZmxhdE1hcDIoZmlyc3QsIHNlY29uZCwgKGEsIGIpID0+IHN1Y2Nlc3MoZihhLCBiKSkpOwogICAgICB9CiAgICAgIFJlc3VsdC5tYXAyID0gbWFwMjsKICB9KShSZXN1bHQgfHwgKFJlc3VsdCA9IHt9KSk7CgogIHZhciBjb21tb25qc0dsb2JhbCA9IHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbFRoaXMgOiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHt9OwoKICB2YXIgcGFyc2ltbW9uX3VtZF9taW4gPSB7ZXhwb3J0czoge319OwoKICBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzOwoKICAoZnVuY3Rpb24gKG1vZHVsZSwgZXhwb3J0cykgewogIAkhZnVuY3Rpb24obix0KXttb2R1bGUuZXhwb3J0cz10KCk7fSgidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjpjb21tb25qc0dsb2JhbCxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgdD17fTtmdW5jdGlvbiByKGUpe2lmKHRbZV0pcmV0dXJuIHRbZV0uZXhwb3J0czt2YXIgdT10W2VdPXtpOmUsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gbltlXS5jYWxsKHUuZXhwb3J0cyx1LHUuZXhwb3J0cyxyKSx1Lmw9ITAsdS5leHBvcnRzfXJldHVybiByLm09bixyLmM9dCxyLmQ9ZnVuY3Rpb24obix0LGUpe3IubyhuLHQpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkobix0LHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCxnZXQ6ZX0pO30sci5yPWZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt9LHIubj1mdW5jdGlvbihuKXt2YXIgdD1uJiZuLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gbi5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBufTtyZXR1cm4gci5kKHQsImEiLHQpLHR9LHIubz1mdW5jdGlvbihuLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KX0sci5wPSIiLHIoci5zPTApfShbZnVuY3Rpb24obix0LHIpe2Z1bmN0aW9uIGUobil7aWYoISh0aGlzIGluc3RhbmNlb2YgZSkpcmV0dXJuIG5ldyBlKG4pO3RoaXMuXz1uO312YXIgdT1lLnByb3RvdHlwZTtmdW5jdGlvbiBvKG4sdCl7Zm9yKHZhciByPTA7cjxuO3IrKyl0KHIpO31mdW5jdGlvbiBpKG4sdCxyKXtyZXR1cm4gZnVuY3Rpb24obix0KXtvKHQubGVuZ3RoLGZ1bmN0aW9uKHIpe24odFtyXSxyLHQpO30pO30oZnVuY3Rpb24ocixlLHUpe3Q9bih0LHIsZSx1KTt9LHIpLHR9ZnVuY3Rpb24gYShuLHQpe3JldHVybiBpKGZ1bmN0aW9uKHQscixlLHUpe3JldHVybiB0LmNvbmNhdChbbihyLGUsdSldKX0sW10sdCl9ZnVuY3Rpb24gZihuLHQpe3ZhciByPXt2OjAsYnVmOnR9O3JldHVybiBvKG4sZnVuY3Rpb24oKXt2YXIgbjtyPXt2OnIudjw8MXwobj1yLmJ1ZixuWzBdPj43KSxidWY6ZnVuY3Rpb24obil7dmFyIHQ9aShmdW5jdGlvbihuLHQscixlKXtyZXR1cm4gbi5jb25jYXQocj09PWUubGVuZ3RoLTE/QnVmZmVyLmZyb20oW3QsMF0pLnJlYWRVSW50MTZCRSgwKTplLnJlYWRVSW50MTZCRShyKSl9LFtdLG4pO3JldHVybiBCdWZmZXIuZnJvbShhKGZ1bmN0aW9uKG4pe3JldHVybiAobjw8MSY2NTUzNSk+Pjh9LHQpKX0oci5idWYpfTt9KSxyfWZ1bmN0aW9uIGMoKXtyZXR1cm4gInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXJ9ZnVuY3Rpb24gcygpe2lmKCFjKCkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIgZ2xvYmFsIGRvZXMgbm90IGV4aXN0OyBwbGVhc2UgdXNlIHdlYnBhY2sgaWYgeW91IG5lZWQgdG8gcGFyc2UgQnVmZmVycyBpbiB0aGUgYnJvd3Nlci4iKX1mdW5jdGlvbiBsKG4pe3MoKTt2YXIgdD1pKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4rdH0sMCxuKTtpZih0JTghPTApdGhyb3cgbmV3IEVycm9yKCJUaGUgYml0cyBbIituLmpvaW4oIiwgIikrIl0gYWRkIHVwIHRvICIrdCsiIHdoaWNoIGlzIG5vdCBhbiBldmVuIG51bWJlciBvZiBieXRlczsgdGhlIHRvdGFsIHNob3VsZCBiZSBkaXZpc2libGUgYnkgOCIpO3ZhciByLHU9dC84LG89KHI9ZnVuY3Rpb24obil7cmV0dXJuIG4+NDh9LGkoZnVuY3Rpb24obix0KXtyZXR1cm4gbnx8KHIodCk/dDpuKX0sbnVsbCxuKSk7aWYobyl0aHJvdyBuZXcgRXJyb3IobysiIGJpdCByYW5nZSByZXF1ZXN0ZWQgZXhjZWVkcyA0OCBiaXQgKDYgYnl0ZSkgTnVtYmVyIG1heC4iKTtyZXR1cm4gbmV3IGUoZnVuY3Rpb24odCxyKXt2YXIgZT11K3I7cmV0dXJuIGU+dC5sZW5ndGg/eChyLHUudG9TdHJpbmcoKSsiIGJ5dGVzIik6YihlLGkoZnVuY3Rpb24obix0KXt2YXIgcj1mKHQsbi5idWYpO3JldHVybiB7Y29sbDpuLmNvbGwuY29uY2F0KHIudiksYnVmOnIuYnVmfX0se2NvbGw6W10sYnVmOnQuc2xpY2UocixlKX0sbikuY29sbCl9KX1mdW5jdGlvbiBoKG4sdCl7cmV0dXJuIG5ldyBlKGZ1bmN0aW9uKHIsZSl7cmV0dXJuIHMoKSxlK3Q+ci5sZW5ndGg/eChlLHQrIiBieXRlcyBmb3IgIituKTpiKGUrdCxyLnNsaWNlKGUsZSt0KSl9KX1mdW5jdGlvbiBwKG4sdCl7aWYoIm51bWJlciIhPXR5cGVvZihyPXQpfHxNYXRoLmZsb29yKHIpIT09cnx8dDwwfHx0PjYpdGhyb3cgbmV3IEVycm9yKG4rIiByZXF1aXJlcyBpbnRlZ2VyIGxlbmd0aCBpbiByYW5nZSBbMCwgNl0uIik7dmFyIHI7fWZ1bmN0aW9uIGQobil7cmV0dXJuIHAoInVpbnRCRSIsbiksaCgidWludEJFKCIrbisiKSIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50QkUoMCxuKX0pfWZ1bmN0aW9uIHYobil7cmV0dXJuIHAoInVpbnRMRSIsbiksaCgidWludExFKCIrbisiKSIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50TEUoMCxuKX0pfWZ1bmN0aW9uIGcobil7cmV0dXJuIHAoImludEJFIixuKSxoKCJpbnRCRSgiK24rIikiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50QkUoMCxuKX0pfWZ1bmN0aW9uIG0obil7cmV0dXJuIHAoImludExFIixuKSxoKCJpbnRMRSgiK24rIikiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50TEUoMCxuKX0pfWZ1bmN0aW9uIHkobil7cmV0dXJuIG4gaW5zdGFuY2VvZiBlfWZ1bmN0aW9uIEUobil7cmV0dXJuICJbb2JqZWN0IEFycmF5XSI9PT17fS50b1N0cmluZy5jYWxsKG4pfWZ1bmN0aW9uIHcobil7cmV0dXJuIGMoKSYmQnVmZmVyLmlzQnVmZmVyKG4pfWZ1bmN0aW9uIGIobix0KXtyZXR1cm4ge3N0YXR1czohMCxpbmRleDpuLHZhbHVlOnQsZnVydGhlc3Q6LTEsZXhwZWN0ZWQ6W119fWZ1bmN0aW9uIHgobix0KXtyZXR1cm4gRSh0KXx8KHQ9W3RdKSx7c3RhdHVzOiExLGluZGV4Oi0xLHZhbHVlOm51bGwsZnVydGhlc3Q6bixleHBlY3RlZDp0fX1mdW5jdGlvbiBCKG4sdCl7aWYoIXQpcmV0dXJuIG47aWYobi5mdXJ0aGVzdD50LmZ1cnRoZXN0KXJldHVybiBuO3ZhciByPW4uZnVydGhlc3Q9PT10LmZ1cnRoZXN0P2Z1bmN0aW9uKG4sdCl7aWYoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1lLl9zdXBwb3J0c1NldClyZXR1cm4gZS5fc3VwcG9ydHNTZXQ7dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQ7cmV0dXJuIGUuX3N1cHBvcnRzU2V0PW4sbn0oKSYmQXJyYXkuZnJvbSl7Zm9yKHZhciByPW5ldyBTZXQobiksdT0wO3U8dC5sZW5ndGg7dSsrKXIuYWRkKHRbdV0pO3ZhciBvPUFycmF5LmZyb20ocik7cmV0dXJuIG8uc29ydCgpLG99Zm9yKHZhciBpPXt9LGE9MDthPG4ubGVuZ3RoO2ErKylpW25bYV1dPSEwO2Zvcih2YXIgZj0wO2Y8dC5sZW5ndGg7ZisrKWlbdFtmXV09ITA7dmFyIGM9W107Zm9yKHZhciBzIGluIGkpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscykmJmMucHVzaChzKTtyZXR1cm4gYy5zb3J0KCksY30obi5leHBlY3RlZCx0LmV4cGVjdGVkKTp0LmV4cGVjdGVkO3JldHVybiB7c3RhdHVzOm4uc3RhdHVzLGluZGV4Om4uaW5kZXgsdmFsdWU6bi52YWx1ZSxmdXJ0aGVzdDp0LmZ1cnRoZXN0LGV4cGVjdGVkOnJ9fXZhciBqPXt9O2Z1bmN0aW9uIFMobix0KXtpZih3KG4pKXJldHVybiB7b2Zmc2V0OnQsbGluZTotMSxjb2x1bW46LTF9O24gaW4ganx8KGpbbl09e30pO2Zvcih2YXIgcj1qW25dLGU9MCx1PTAsbz0wLGk9dDtpPj0wOyl7aWYoaSBpbiByKXtlPXJbaV0ubGluZSwwPT09byYmKG89cltpXS5saW5lU3RhcnQpO2JyZWFrfSgiXG4iPT09bi5jaGFyQXQoaSl8fCJcciI9PT1uLmNoYXJBdChpKSYmIlxuIiE9PW4uY2hhckF0KGkrMSkpJiYodSsrLDA9PT1vJiYobz1pKzEpKSxpLS07fXZhciBhPWUrdSxmPXQtbztyZXR1cm4gclt0XT17bGluZTphLGxpbmVTdGFydDpvfSx7b2Zmc2V0OnQsbGluZTphKzEsY29sdW1uOmYrMX19ZnVuY3Rpb24gXyhuKXtpZigheShuKSl0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHBhcnNlcjogIituKX1mdW5jdGlvbiBMKG4sdCl7cmV0dXJuICJzdHJpbmciPT10eXBlb2Ygbj9uLmNoYXJBdCh0KTpuW3RdfWZ1bmN0aW9uIE8obil7aWYoIm51bWJlciIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcigibm90IGEgbnVtYmVyOiAiK24pfWZ1bmN0aW9uIGsobil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKCJub3QgYSBmdW5jdGlvbjogIituKX1mdW5jdGlvbiBQKG4pe2lmKCJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHN0cmluZzogIituKX12YXIgcT0yLEE9MyxJPTgsRj01KkksTT00Kkksej0iICAiO2Z1bmN0aW9uIFIobix0KXtyZXR1cm4gbmV3IEFycmF5KHQrMSkuam9pbihuKX1mdW5jdGlvbiBVKG4sdCxyKXt2YXIgZT10LW4ubGVuZ3RoO3JldHVybiBlPD0wP246UihyLGUpK259ZnVuY3Rpb24gVyhuLHQscixlKXtyZXR1cm4ge2Zyb206bi10PjA/bi10OjAsdG86bityPmU/ZTpuK3J9fWZ1bmN0aW9uIEQobix0KXt2YXIgcixlLHUsbyxmLGM9dC5pbmRleCxzPWMub2Zmc2V0LGw9MTtpZihzPT09bi5sZW5ndGgpcmV0dXJuICJHb3QgdGhlIGVuZCBvZiB0aGUgaW5wdXQiO2lmKHcobikpe3ZhciBoPXMtcyVJLHA9cy1oLGQ9VyhoLEYsTStJLG4ubGVuZ3RoKSx2PWEoZnVuY3Rpb24obil7cmV0dXJuIGEoZnVuY3Rpb24obil7cmV0dXJuIFUobi50b1N0cmluZygxNiksMiwiMCIpfSxuKX0sZnVuY3Rpb24obix0KXt2YXIgcj1uLmxlbmd0aCxlPVtdLHU9MDtpZihyPD10KXJldHVybiBbbi5zbGljZSgpXTtmb3IodmFyIG89MDtvPHI7bysrKWVbdV18fGUucHVzaChbXSksZVt1XS5wdXNoKG5bb10pLChvKzEpJXQ9PTAmJnUrKztyZXR1cm4gZX0obi5zbGljZShkLmZyb20sZC50bykudG9KU09OKCkuZGF0YSxJKSk7bz1mdW5jdGlvbihuKXtyZXR1cm4gMD09PW4uZnJvbSYmMT09PW4udG8/e2Zyb206bi5mcm9tLHRvOm4udG99Ontmcm9tOm4uZnJvbS9JLHRvOk1hdGguZmxvb3Iobi50by9JKX19KGQpLGU9aC9JLHI9MypwLHA+PTQmJihyKz0xKSxsPTIsdT1hKGZ1bmN0aW9uKG4pe3JldHVybiBuLmxlbmd0aDw9ND9uLmpvaW4oIiAiKTpuLnNsaWNlKDAsNCkuam9pbigiICIpKyIgICIrbi5zbGljZSg0KS5qb2luKCIgIil9LHYpLChmPSg4KihvLnRvPjA/by50by0xOm8udG8pKS50b1N0cmluZygxNikubGVuZ3RoKTwyJiYoZj0yKTt9ZWxzZSB7dmFyIGc9bi5zcGxpdCgvXHJcbnxbXG5cclx1MjAyOFx1MjAyOV0vKTtyPWMuY29sdW1uLTEsZT1jLmxpbmUtMSxvPVcoZSxxLEEsZy5sZW5ndGgpLHU9Zy5zbGljZShvLmZyb20sby50byksZj1vLnRvLnRvU3RyaW5nKCkubGVuZ3RoO312YXIgbT1lLW8uZnJvbTtyZXR1cm4gdyhuKSYmKGY9KDgqKG8udG8+MD9vLnRvLTE6by50bykpLnRvU3RyaW5nKDE2KS5sZW5ndGgpPDImJihmPTIpLGkoZnVuY3Rpb24odCxlLHUpe3ZhciBpLGE9dT09PW0sYz1hPyI+ICI6ejtyZXR1cm4gaT13KG4pP1UoKDgqKG8uZnJvbSt1KSkudG9TdHJpbmcoMTYpLGYsIjAiKTpVKChvLmZyb20rdSsxKS50b1N0cmluZygpLGYsIiAiKSxbXS5jb25jYXQodCxbYytpKyIgfCAiK2VdLGE/W3orUigiICIsZikrIiB8ICIrVSgiIixyLCIgIikrUigiXiIsbCldOltdKX0sW10sdSkuam9pbigiXG4iKX1mdW5jdGlvbiBOKG4sdCl7cmV0dXJuIFsiXG4iLCItLSBQQVJTSU5HIEZBSUxFRCAiK1IoIi0iLDUwKSwiXG5cbiIsRChuLHQpLCJcblxuIiwocj10LmV4cGVjdGVkLDE9PT1yLmxlbmd0aD8iRXhwZWN0ZWQ6XG5cbiIrclswXToiRXhwZWN0ZWQgb25lIG9mIHRoZSBmb2xsb3dpbmc6IFxuXG4iK3Iuam9pbigiLCAiKSksIlxuIl0uam9pbigiIik7dmFyIHI7fWZ1bmN0aW9uIEcobil7cmV0dXJuIHZvaWQgMCE9PW4uZmxhZ3M/bi5mbGFnczpbbi5nbG9iYWw/ImciOiIiLG4uaWdub3JlQ2FzZT8iaSI6IiIsbi5tdWx0aWxpbmU/Im0iOiIiLG4udW5pY29kZT8idSI6IiIsbi5zdGlja3k/InkiOiIiXS5qb2luKCIiKX1mdW5jdGlvbiBDKCl7Zm9yKHZhciBuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx0PW4ubGVuZ3RoLHI9MDtyPHQ7cis9MSlfKG5bcl0pO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7Zm9yKHZhciB1LG89bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSs9MSl7aWYoISh1PUIobltpXS5fKHIsZSksdSkpLnN0YXR1cylyZXR1cm4gdTtvW2ldPXUudmFsdWUsZT11LmluZGV4O31yZXR1cm4gQihiKGUsbyksdSl9KX1mdW5jdGlvbiBKKCl7dmFyIG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKDA9PT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoInNlcU1hcCBuZWVkcyBhdCBsZWFzdCBvbmUgYXJndW1lbnQiKTt2YXIgdD1uLnBvcCgpO3JldHVybiBrKHQpLEMuYXBwbHkobnVsbCxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIHQuYXBwbHkobnVsbCxuKX0pfWZ1bmN0aW9uIFQoKXt2YXIgbj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksdD1uLmxlbmd0aDtpZigwPT09dClyZXR1cm4gWSgiemVybyBhbHRlcm5hdGVzIik7Zm9yKHZhciByPTA7cjx0O3IrPTEpXyhuW3JdKTtyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZSx1PTA7dTxuLmxlbmd0aDt1Kz0xKWlmKChlPUIoblt1XS5fKHQsciksZSkpLnN0YXR1cylyZXR1cm4gZTtyZXR1cm4gZX0pfWZ1bmN0aW9uIFYobix0KXtyZXR1cm4gSChuLHQpLm9yKFgoW10pKX1mdW5jdGlvbiBIKG4sdCl7cmV0dXJuIF8obiksXyh0KSxKKG4sdC50aGVuKG4pLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBbbl0uY29uY2F0KHQpfSl9ZnVuY3Rpb24gSyhuKXtQKG4pO3ZhciB0PSInIituKyInIjtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PWUrbi5sZW5ndGgsbz1yLnNsaWNlKGUsdSk7cmV0dXJuIG89PT1uP2IodSxvKTp4KGUsdCl9KX1mdW5jdGlvbiBRKG4sdCl7IWZ1bmN0aW9uKG4pe2lmKCEobiBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgbmV3IEVycm9yKCJub3QgYSByZWdleHA6ICIrbik7Zm9yKHZhciB0PUcobikscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgZT10LmNoYXJBdChyKTtpZigiaSIhPT1lJiYibSIhPT1lJiYidSIhPT1lJiYicyIhPT1lKXRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgcmVnZXhwIGZsYWcgIicrZSsnIjogJytuKX19KG4pLGFyZ3VtZW50cy5sZW5ndGg+PTI/Tyh0KTp0PTA7dmFyIHI9ZnVuY3Rpb24obil7cmV0dXJuIFJlZ0V4cCgiXig/OiIrbi5zb3VyY2UrIikiLEcobikpfShuKSx1PSIiK247cmV0dXJuIGUoZnVuY3Rpb24obixlKXt2YXIgbz1yLmV4ZWMobi5zbGljZShlKSk7aWYobyl7aWYoMDw9dCYmdDw9by5sZW5ndGgpe3ZhciBpPW9bMF0sYT1vW3RdO3JldHVybiBiKGUraS5sZW5ndGgsYSl9cmV0dXJuIHgoZSwidmFsaWQgbWF0Y2ggZ3JvdXAgKDAgdG8gIitvLmxlbmd0aCsiKSBpbiAiK3UpfXJldHVybiB4KGUsdSl9KX1mdW5jdGlvbiBYKG4pe3JldHVybiBlKGZ1bmN0aW9uKHQscil7cmV0dXJuIGIocixuKX0pfWZ1bmN0aW9uIFkobil7cmV0dXJuIGUoZnVuY3Rpb24odCxyKXtyZXR1cm4geChyLG4pfSl9ZnVuY3Rpb24gWihuKXtpZih5KG4pKXJldHVybiBlKGZ1bmN0aW9uKHQscil7dmFyIGU9bi5fKHQscik7cmV0dXJuIGUuaW5kZXg9cixlLnZhbHVlPSIiLGV9KTtpZigic3RyaW5nIj09dHlwZW9mIG4pcmV0dXJuIFooSyhuKSk7aWYobiBpbnN0YW5jZW9mIFJlZ0V4cClyZXR1cm4gWihRKG4pKTt0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHN0cmluZywgcmVnZXhwLCBvciBwYXJzZXI6ICIrbil9ZnVuY3Rpb24gJChuKXtyZXR1cm4gXyhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9bi5fKHQsciksdT10LnNsaWNlKHIsZS5pbmRleCk7cmV0dXJuIGUuc3RhdHVzP3gociwnbm90ICInK3UrJyInKTpiKHIsbnVsbCl9KX1mdW5jdGlvbiBubihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9TCh0LHIpO3JldHVybiByPHQubGVuZ3RoJiZuKGUpP2IocisxLGUpOngociwiYSBjaGFyYWN0ZXIvYnl0ZSBtYXRjaGluZyAiK24pfSl9ZnVuY3Rpb24gdG4obix0KXthcmd1bWVudHMubGVuZ3RoPDImJih0PW4sbj12b2lkIDApO3ZhciByPWUoZnVuY3Rpb24obixlKXtyZXR1cm4gci5fPXQoKS5fLHIuXyhuLGUpfSk7cmV0dXJuIG4/ci5kZXNjKG4pOnJ9ZnVuY3Rpb24gcm4oKXtyZXR1cm4gWSgiZmFudGFzeS1sYW5kL2VtcHR5Iil9dS5wYXJzZT1mdW5jdGlvbihuKXtpZigic3RyaW5nIiE9dHlwZW9mIG4mJiF3KG4pKXRocm93IG5ldyBFcnJvcigiLnBhcnNlIG11c3QgYmUgY2FsbGVkIHdpdGggYSBzdHJpbmcgb3IgQnVmZmVyIGFzIGl0cyBhcmd1bWVudCIpO3ZhciB0LHI9dGhpcy5za2lwKGFuKS5fKG4sMCk7cmV0dXJuIHQ9ci5zdGF0dXM/e3N0YXR1czohMCx2YWx1ZTpyLnZhbHVlfTp7c3RhdHVzOiExLGluZGV4OlMobixyLmZ1cnRoZXN0KSxleHBlY3RlZDpyLmV4cGVjdGVkfSxkZWxldGUgaltuXSx0fSx1LnRyeVBhcnNlPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMucGFyc2Uobik7aWYodC5zdGF0dXMpcmV0dXJuIHQudmFsdWU7dmFyIHI9TihuLHQpLGU9bmV3IEVycm9yKHIpO3Rocm93IGUudHlwZT0iUGFyc2ltbW9uRXJyb3IiLGUucmVzdWx0PXQsZX0sdS5hc3NlcnQ9ZnVuY3Rpb24obix0KXtyZXR1cm4gdGhpcy5jaGFpbihmdW5jdGlvbihyKXtyZXR1cm4gbihyKT9YKHIpOlkodCl9KX0sdS5vcj1mdW5jdGlvbihuKXtyZXR1cm4gVCh0aGlzLG4pfSx1LnRyaW09ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMud3JhcChuLG4pfSx1LndyYXA9ZnVuY3Rpb24obix0KXtyZXR1cm4gSihuLHRoaXMsdCxmdW5jdGlvbihuLHQpe3JldHVybiB0fSl9LHUudGhydT1mdW5jdGlvbihuKXtyZXR1cm4gbih0aGlzKX0sdS50aGVuPWZ1bmN0aW9uKG4pe3JldHVybiBfKG4pLEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMV19KX0sdS5tYW55PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT1bXSx1PXZvaWQgMDs7KXtpZighKHU9QihuLl8odCxyKSx1KSkuc3RhdHVzKXJldHVybiBCKGIocixlKSx1KTtpZihyPT09dS5pbmRleCl0aHJvdyBuZXcgRXJyb3IoImluZmluaXRlIGxvb3AgZGV0ZWN0ZWQgaW4gLm1hbnkoKSBwYXJzZXIgLS0tIGNhbGxpbmcgLm1hbnkoKSBvbiBhIHBhcnNlciB3aGljaCBjYW4gYWNjZXB0IHplcm8gY2hhcmFjdGVycyBpcyB1c3VhbGx5IHRoZSBjYXVzZSIpO3I9dS5pbmRleCxlLnB1c2godS52YWx1ZSk7fX0pfSx1LnRpZVdpdGg9ZnVuY3Rpb24obil7cmV0dXJuIFAobiksdGhpcy5tYXAoZnVuY3Rpb24odCl7aWYoZnVuY3Rpb24obil7aWYoIUUobikpdGhyb3cgbmV3IEVycm9yKCJub3QgYW4gYXJyYXk6ICIrbil9KHQpLHQubGVuZ3RoKXtQKHRbMF0pO2Zvcih2YXIgcj10WzBdLGU9MTtlPHQubGVuZ3RoO2UrKylQKHRbZV0pLHIrPW4rdFtlXTtyZXR1cm4gcn1yZXR1cm4gIiJ9KX0sdS50aWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aWVXaXRoKCIiKX0sdS50aW1lcz1mdW5jdGlvbihuLHQpe3ZhciByPXRoaXM7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9biksTyhuKSxPKHQpLGUoZnVuY3Rpb24oZSx1KXtmb3IodmFyIG89W10saT12b2lkIDAsYT12b2lkIDAsZj0wO2Y8bjtmKz0xKXtpZihhPUIoaT1yLl8oZSx1KSxhKSwhaS5zdGF0dXMpcmV0dXJuIGE7dT1pLmluZGV4LG8ucHVzaChpLnZhbHVlKTt9Zm9yKDtmPHQmJihhPUIoaT1yLl8oZSx1KSxhKSxpLnN0YXR1cyk7Zis9MSl1PWkuaW5kZXgsby5wdXNoKGkudmFsdWUpO3JldHVybiBCKGIodSxvKSxhKX0pfSx1LnJlc3VsdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSx1LmF0TW9zdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy50aW1lcygwLG4pfSx1LmF0TGVhc3Q9ZnVuY3Rpb24obil7cmV0dXJuIEoodGhpcy50aW1lcyhuKSx0aGlzLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBuLmNvbmNhdCh0KX0pfSx1Lm1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihiKHUuaW5kZXgsbih1LnZhbHVlKSksdSk6dX0pfSx1LmNvbnRyYW1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10LnBhcnNlKG4oci5zbGljZShlKSkpO3JldHVybiB1LnN0YXR1cz9iKGUrci5sZW5ndGgsdS52YWx1ZSk6dX0pfSx1LnByb21hcD1mdW5jdGlvbihuLHQpe3JldHVybiBrKG4pLGsodCksdGhpcy5jb250cmFtYXAobikubWFwKHQpfSx1LnNraXA9ZnVuY3Rpb24obil7cmV0dXJuIEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19KX0sdS5tYXJrPWZ1bmN0aW9uKCl7cmV0dXJuIEooZW4sdGhpcyxlbixmdW5jdGlvbihuLHQscil7cmV0dXJuIHtzdGFydDpuLHZhbHVlOnQsZW5kOnJ9fSl9LHUubm9kZT1mdW5jdGlvbihuKXtyZXR1cm4gSihlbix0aGlzLGVuLGZ1bmN0aW9uKHQscixlKXtyZXR1cm4ge25hbWU6bix2YWx1ZTpyLHN0YXJ0OnQsZW5kOmV9fSl9LHUuc2VwQnk9ZnVuY3Rpb24obil7cmV0dXJuIFYodGhpcyxuKX0sdS5zZXBCeTE9ZnVuY3Rpb24obil7cmV0dXJuIEgodGhpcyxuKX0sdS5sb29rYWhlYWQ9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuc2tpcChaKG4pKX0sdS5ub3RGb2xsb3dlZEJ5PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnNraXAoJChuKSl9LHUuZGVzYz1mdW5jdGlvbihuKXtFKG4pfHwobj1bbl0pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXN8fCh1LmV4cGVjdGVkPW4pLHV9KX0sdS5mYWxsYmFjaz1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5vcihYKG4pKX0sdS5hcD1mdW5jdGlvbihuKXtyZXR1cm4gSihuLHRoaXMsZnVuY3Rpb24obix0KXtyZXR1cm4gbih0KX0pfSx1LmNoYWluPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihuKHUudmFsdWUpLl8ocix1LmluZGV4KSx1KTp1fSl9LHUuY29uY2F0PXUub3IsdS5lbXB0eT1ybix1Lm9mPVgsdVsiZmFudGFzeS1sYW5kL2FwIl09dS5hcCx1WyJmYW50YXN5LWxhbmQvY2hhaW4iXT11LmNoYWluLHVbImZhbnRhc3ktbGFuZC9jb25jYXQiXT11LmNvbmNhdCx1WyJmYW50YXN5LWxhbmQvZW1wdHkiXT11LmVtcHR5LHVbImZhbnRhc3ktbGFuZC9vZiJdPXUub2YsdVsiZmFudGFzeS1sYW5kL21hcCJdPXUubWFwO3ZhciBlbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIodCxTKG4sdCkpfSksdW49ZShmdW5jdGlvbihuLHQpe3JldHVybiB0Pj1uLmxlbmd0aD94KHQsImFueSBjaGFyYWN0ZXIvYnl0ZSIpOmIodCsxLEwobix0KSl9KSxvbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIobi5sZW5ndGgsbi5zbGljZSh0KSl9KSxhbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ8bi5sZW5ndGg/eCh0LCJFT0YiKTpiKHQsbnVsbCl9KSxmbj1RKC9bMC05XS8pLmRlc2MoImEgZGlnaXQiKSxjbj1RKC9bMC05XSovKS5kZXNjKCJvcHRpb25hbCBkaWdpdHMiKSxzbj1RKC9bYS16XS9pKS5kZXNjKCJhIGxldHRlciIpLGxuPVEoL1thLXpdKi9pKS5kZXNjKCJvcHRpb25hbCBsZXR0ZXJzIiksaG49USgvXHMqLykuZGVzYygib3B0aW9uYWwgd2hpdGVzcGFjZSIpLHBuPVEoL1xzKy8pLmRlc2MoIndoaXRlc3BhY2UiKSxkbj1LKCJcciIpLHZuPUsoIlxuIiksZ249SygiXHJcbiIpLG1uPVQoZ24sdm4sZG4pLmRlc2MoIm5ld2xpbmUiKSx5bj1UKG1uLGFuKTtlLmFsbD1vbixlLmFsdD1ULGUuYW55PXVuLGUuY3I9ZG4sZS5jcmVhdGVMYW5ndWFnZT1mdW5jdGlvbihuKXt2YXIgdD17fTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmZnVuY3Rpb24ocil7dFtyXT10bihmdW5jdGlvbigpe3JldHVybiBuW3JdKHQpfSk7fShyKTtyZXR1cm4gdH0sZS5jcmxmPWduLGUuY3VzdG9tPWZ1bmN0aW9uKG4pe3JldHVybiBlKG4oYix4KSl9LGUuZGlnaXQ9Zm4sZS5kaWdpdHM9Y24sZS5lbXB0eT1ybixlLmVuZD15bixlLmVvZj1hbixlLmZhaWw9WSxlLmZvcm1hdEVycm9yPU4sZS5pbmRleD1lbixlLmlzUGFyc2VyPXksZS5sYXp5PXRuLGUubGV0dGVyPXNuLGUubGV0dGVycz1sbixlLmxmPXZuLGUubG9va2FoZWFkPVosZS5tYWtlRmFpbHVyZT14LGUubWFrZVN1Y2Nlc3M9YixlLm5ld2xpbmU9bW4sZS5ub25lT2Y9ZnVuY3Rpb24obil7cmV0dXJuIG5uKGZ1bmN0aW9uKHQpe3JldHVybiBuLmluZGV4T2YodCk8MH0pLmRlc2MoIm5vbmUgb2YgJyIrbisiJyIpfSxlLm5vdEZvbGxvd2VkQnk9JCxlLm9mPVgsZS5vbmVPZj1mdW5jdGlvbihuKXtmb3IodmFyIHQ9bi5zcGxpdCgiIikscj0wO3I8dC5sZW5ndGg7cisrKXRbcl09IiciK3Rbcl0rIiciO3JldHVybiBubihmdW5jdGlvbih0KXtyZXR1cm4gbi5pbmRleE9mKHQpPj0wfSkuZGVzYyh0KX0sZS5vcHRXaGl0ZXNwYWNlPWhuLGUuUGFyc2VyPWUsZS5yYW5nZT1mdW5jdGlvbihuLHQpe3JldHVybiBubihmdW5jdGlvbihyKXtyZXR1cm4gbjw9ciYmcjw9dH0pLmRlc2MobisiLSIrdCl9LGUucmVnZXg9USxlLnJlZ2V4cD1RLGUuc2VwQnk9VixlLnNlcEJ5MT1ILGUuc2VxPUMsZS5zZXFNYXA9SixlLnNlcU9iaj1mdW5jdGlvbigpe2Zvcih2YXIgbix0PXt9LHI9MCx1PShuPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSksbz11Lmxlbmd0aCxpPTA7aTxvO2krPTEpe3ZhciBhPXVbaV07aWYoIXkoYSkpe2lmKEUoYSkmJjI9PT1hLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBhWzBdJiZ5KGFbMV0pKXt2YXIgZj1hWzBdO2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGYpKXRocm93IG5ldyBFcnJvcigic2VxT2JqOiBkdXBsaWNhdGUga2V5ICIrZik7dFtmXT0hMCxyKys7Y29udGludWV9dGhyb3cgbmV3IEVycm9yKCJzZXFPYmogYXJndW1lbnRzIG11c3QgYmUgcGFyc2VycyBvciBbc3RyaW5nLCBwYXJzZXJdIGFycmF5IHBhaXJzLiIpfX1pZigwPT09cil0aHJvdyBuZXcgRXJyb3IoInNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYXJzZXIsIGZvdW5kIHplcm8iKTtyZXR1cm4gZShmdW5jdGlvbihuLHQpe2Zvcih2YXIgcixlPXt9LGk9MDtpPG87aSs9MSl7dmFyIGEsZjtpZihFKHVbaV0pPyhhPXVbaV1bMF0sZj11W2ldWzFdKTooYT1udWxsLGY9dVtpXSksIShyPUIoZi5fKG4sdCkscikpLnN0YXR1cylyZXR1cm4gcjthJiYoZVthXT1yLnZhbHVlKSx0PXIuaW5kZXg7fXJldHVybiBCKGIodCxlKSxyKX0pfSxlLnN0cmluZz1LLGUuc3VjY2VlZD1YLGUudGFrZVdoaWxlPWZ1bmN0aW9uKG4pe3JldHVybiBrKG4pLGUoZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9cjtlPHQubGVuZ3RoJiZuKEwodCxlKSk7KWUrKztyZXR1cm4gYihlLHQuc2xpY2UocixlKSl9KX0sZS50ZXN0PW5uLGUud2hpdGVzcGFjZT1wbixlWyJmYW50YXN5LWxhbmQvZW1wdHkiXT1ybixlWyJmYW50YXN5LWxhbmQvb2YiXT1YLGUuQmluYXJ5PXtiaXRTZXE6bCxiaXRTZXFPYmo6ZnVuY3Rpb24obil7cygpO3ZhciB0PXt9LHI9MCxlPWEoZnVuY3Rpb24obil7aWYoRShuKSl7dmFyIGU9bjtpZigyIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJbIitlLmpvaW4oIiwgIikrIl0gc2hvdWxkIGJlIGxlbmd0aCAyLCBnb3QgbGVuZ3RoICIrZS5sZW5ndGgpO2lmKFAoZVswXSksTyhlWzFdKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlWzBdKSl0aHJvdyBuZXcgRXJyb3IoImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiAiK2VbMF0pO3JldHVybiB0W2VbMF1dPSEwLHIrKyxlfXJldHVybiBPKG4pLFtudWxsLG5dfSxuKTtpZihyPDEpdGhyb3cgbmV3IEVycm9yKCJiaXRTZXFPYmogZXhwZWN0cyBhdCBsZWFzdCBvbmUgbmFtZWQgcGFpciwgZ290IFsiK24uam9pbigiLCAiKSsiXSIpO3ZhciB1PWEoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19LGUpO3JldHVybiBsKGEoZnVuY3Rpb24obil7cmV0dXJuIG5bMV19LGUpKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIGkoZnVuY3Rpb24obix0KXtyZXR1cm4gbnVsbCE9PXRbMF0mJihuW3RbMF1dPXRbMV0pLG59LHt9LGEoZnVuY3Rpb24odCxyKXtyZXR1cm4gW3QsbltyXV19LHUpKX0pfSxieXRlOmZ1bmN0aW9uKG4pe2lmKHMoKSxPKG4pLG4+MjU1KXRocm93IG5ldyBFcnJvcigiVmFsdWUgc3BlY2lmaWVkIHRvIGJ5dGUgY29uc3RydWN0b3IgKCIrbisiPTB4IituLnRvU3RyaW5nKDE2KSsiKSBpcyBsYXJnZXIgaW4gdmFsdWUgdGhhbiBhIHNpbmdsZSBieXRlLiIpO3ZhciB0PShuPjE1PyIweCI6IjB4MCIpK24udG9TdHJpbmcoMTYpO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9TChyLGUpO3JldHVybiB1PT09bj9iKGUrMSx1KTp4KGUsdCl9KX0sYnVmZmVyOmZ1bmN0aW9uKG4pe3JldHVybiBoKCJidWZmZXIiLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gQnVmZmVyLmZyb20obil9KX0sZW5jb2RlZFN0cmluZzpmdW5jdGlvbihuLHQpe3JldHVybiBoKCJzdHJpbmciLHQpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZyhuKX0pfSx1aW50QkU6ZCx1aW50OEJFOmQoMSksdWludDE2QkU6ZCgyKSx1aW50MzJCRTpkKDQpLHVpbnRMRTp2LHVpbnQ4TEU6digxKSx1aW50MTZMRTp2KDIpLHVpbnQzMkxFOnYoNCksaW50QkU6ZyxpbnQ4QkU6ZygxKSxpbnQxNkJFOmcoMiksaW50MzJCRTpnKDQpLGludExFOm0saW50OExFOm0oMSksaW50MTZMRTptKDIpLGludDMyTEU6bSg0KSxmbG9hdEJFOmgoImZsb2F0QkUiLDQpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRmxvYXRCRSgwKX0pLGZsb2F0TEU6aCgiZmxvYXRMRSIsNCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWRGbG9hdExFKDApfSksZG91YmxlQkU6aCgiZG91YmxlQkUiLDgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRG91YmxlQkUoMCl9KSxkb3VibGVMRTpoKCJkb3VibGVMRSIsOCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWREb3VibGVMRSgwKX0pfSxuLmV4cG9ydHM9ZTt9XSl9KTsgCiAgfSAocGFyc2ltbW9uX3VtZF9taW4sIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMpKTsKCiAgdmFyIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cyA9IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHM7CgogIHZhciBlbW9qaVJlZ2V4ID0gKCkgPT4gewogIAkvLyBodHRwczovL210aHMuYmUvZW1vamkKICAJcmV0dXJuIC9bIyowLTldXHVGRTBGP1x1MjBFM3xbXHhBOVx4QUVcdTIwM0NcdTIwNDlcdTIxMjJcdTIxMzlcdTIxOTQtXHUyMTk5XHUyMUE5XHUyMUFBXHUyMzFBXHUyMzFCXHUyMzI4XHUyM0NGXHUyM0VELVx1MjNFRlx1MjNGMVx1MjNGMlx1MjNGOC1cdTIzRkFcdTI0QzJcdTI1QUFcdTI1QUJcdTI1QjZcdTI1QzBcdTI1RkJcdTI1RkNcdTI1RkVcdTI2MDAtXHUyNjA0XHUyNjBFXHUyNjExXHUyNjE0XHUyNjE1XHUyNjE4XHUyNjIwXHUyNjIyXHUyNjIzXHUyNjI2XHUyNjJBXHUyNjJFXHUyNjJGXHUyNjM4LVx1MjYzQVx1MjY0MFx1MjY0Mlx1MjY0OC1cdTI2NTNcdTI2NUZcdTI2NjBcdTI2NjNcdTI2NjVcdTI2NjZcdTI2NjhcdTI2N0JcdTI2N0VcdTI2N0ZcdTI2OTJcdTI2OTQtXHUyNjk3XHUyNjk5XHUyNjlCXHUyNjlDXHUyNkEwXHUyNkE3XHUyNkFBXHUyNkIwXHUyNkIxXHUyNkJEXHUyNkJFXHUyNkM0XHUyNkM4XHUyNkNGXHUyNkQxXHUyNkQzXHUyNkU5XHUyNkYwLVx1MjZGNVx1MjZGN1x1MjZGOFx1MjZGQVx1MjcwMlx1MjcwOFx1MjcwOVx1MjcwRlx1MjcxMlx1MjcxNFx1MjcxNlx1MjcxRFx1MjcyMVx1MjczM1x1MjczNFx1Mjc0NFx1Mjc0N1x1Mjc1N1x1Mjc2M1x1MjdBMVx1MjkzNFx1MjkzNVx1MkIwNS1cdTJCMDdcdTJCMUJcdTJCMUNcdTJCNTVcdTMwMzBcdTMwM0RcdTMyOTdcdTMyOTldXHVGRTBGP3xbXHUyNjFEXHUyNzBDXHUyNzBEXSg/Olx1RkUwRnxcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHUyNzBBXHUyNzBCXSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/fFtcdTIzRTktXHUyM0VDXHUyM0YwXHUyM0YzXHUyNUZEXHUyNjkzXHUyNkExXHUyNkFCXHUyNkM1XHUyNkNFXHUyNkQ0XHUyNkVBXHUyNkZEXHUyNzA1XHUyNzI4XHUyNzRDXHUyNzRFXHUyNzUzLVx1Mjc1NVx1Mjc5NS1cdTI3OTdcdTI3QjBcdTI3QkZcdTJCNTBdfFx1MjZGOSg/Olx1RkUwRnxcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFx1Mjc2NFx1RkUwRj8oPzpcdTIwMEQoPzpcdUQ4M0RcdUREMjV8XHVEODNFXHVERTc5KSk/fFx1RDgzQyg/OltcdURDMDRcdURENzBcdURENzFcdUREN0VcdUREN0ZcdURFMDJcdURFMzdcdURGMjFcdURGMjQtXHVERjJDXHVERjM2XHVERjdEXHVERjk2XHVERjk3XHVERjk5LVx1REY5Qlx1REY5RVx1REY5Rlx1REZDRFx1REZDRVx1REZENC1cdURGREZcdURGRjVcdURGRjddXHVGRTBGP3xbXHVERjg1XHVERkMyXHVERkM3XSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/fFtcdURGQzNcdURGQzRcdURGQ0FdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVERkNCXHVERkNDXSg/Olx1RkUwRnxcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFtcdURDQ0ZcdUREOEVcdUREOTEtXHVERDlBXHVERTAxXHVERTFBXHVERTJGXHVERTMyLVx1REUzNlx1REUzOC1cdURFM0FcdURFNTBcdURFNTFcdURGMDAtXHVERjIwXHVERjJELVx1REYzNVx1REYzNy1cdURGN0NcdURGN0UtXHVERjg0XHVERjg2LVx1REY5M1x1REZBMC1cdURGQzFcdURGQzVcdURGQzZcdURGQzhcdURGQzlcdURGQ0YtXHVERkQzXHVERkUwLVx1REZGMFx1REZGOC1cdURGRkZdfFx1RERFNlx1RDgzQ1tcdURERTgtXHVEREVDXHVEREVFXHVEREYxXHVEREYyXHVEREY0XHVEREY2LVx1RERGQVx1RERGQ1x1RERGRFx1RERGRl18XHVEREU3XHVEODNDW1x1RERFNlx1RERFN1x1RERFOS1cdURERUZcdURERjEtXHVEREY0XHVEREY2LVx1RERGOVx1RERGQlx1RERGQ1x1RERGRVx1RERGRl18XHVEREU4XHVEODNDW1x1RERFNlx1RERFOFx1RERFOVx1RERFQi1cdURERUVcdURERjAtXHVEREY1XHVEREY3XHVEREZBLVx1RERGRl18XHVEREU5XHVEODNDW1x1RERFQVx1RERFQ1x1RERFRlx1RERGMFx1RERGMlx1RERGNFx1RERGRl18XHVEREVBXHVEODNDW1x1RERFNlx1RERFOFx1RERFQVx1RERFQ1x1RERFRFx1RERGNy1cdURERkFdfFx1RERFQlx1RDgzQ1tcdURERUUtXHVEREYwXHVEREYyXHVEREY0XHVEREY3XXxcdURERUNcdUQ4M0NbXHVEREU2XHVEREU3XHVEREU5LVx1RERFRVx1RERGMS1cdURERjNcdURERjUtXHVEREZBXHVEREZDXHVEREZFXXxcdURERURcdUQ4M0NbXHVEREYwXHVEREYyXHVEREYzXHVEREY3XHVEREY5XHVEREZBXXxcdURERUVcdUQ4M0NbXHVEREU4LVx1RERFQVx1RERGMS1cdURERjRcdURERjYtXHVEREY5XXxcdURERUZcdUQ4M0NbXHVEREVBXHVEREYyXHVEREY0XHVEREY1XXxcdURERjBcdUQ4M0NbXHVEREVBXHVEREVDLVx1RERFRVx1RERGMlx1RERGM1x1RERGNVx1RERGN1x1RERGQ1x1RERGRVx1RERGRl18XHVEREYxXHVEODNDW1x1RERFNi1cdURERThcdURERUVcdURERjBcdURERjctXHVEREZCXHVEREZFXXxcdURERjJcdUQ4M0NbXHVEREU2XHVEREU4LVx1RERFRFx1RERGMC1cdURERkZdfFx1RERGM1x1RDgzQ1tcdURERTZcdURERThcdURERUEtXHVEREVDXHVEREVFXHVEREYxXHVEREY0XHVEREY1XHVEREY3XHVEREZBXHVEREZGXXxcdURERjRcdUQ4M0NcdURERjJ8XHVEREY1XHVEODNDW1x1RERFNlx1RERFQS1cdURERURcdURERjAtXHVEREYzXHVEREY3LVx1RERGOVx1RERGQ1x1RERGRV18XHVEREY2XHVEODNDXHVEREU2fFx1RERGN1x1RDgzQ1tcdURERUFcdURERjRcdURERjhcdURERkFcdURERkNdfFx1RERGOFx1RDgzQ1tcdURERTYtXHVEREVBXHVEREVDLVx1RERGNFx1RERGNy1cdURERjlcdURERkJcdURERkQtXHVEREZGXXxcdURERjlcdUQ4M0NbXHVEREU2XHVEREU4XHVEREU5XHVEREVCLVx1RERFRFx1RERFRi1cdURERjRcdURERjdcdURERjlcdURERkJcdURERkNcdURERkZdfFx1RERGQVx1RDgzQ1tcdURERTZcdURERUNcdURERjJcdURERjNcdURERjhcdURERkVcdURERkZdfFx1RERGQlx1RDgzQ1tcdURERTZcdURERThcdURERUFcdURERUNcdURERUVcdURERjNcdURERkFdfFx1RERGQ1x1RDgzQ1tcdURERUJcdURERjhdfFx1RERGRFx1RDgzQ1x1RERGMHxcdURERkVcdUQ4M0NbXHVEREVBXHVEREY5XXxcdURERkZcdUQ4M0NbXHVEREU2XHVEREYyXHVEREZDXXxcdURGRjNcdUZFMEY/KD86XHUyMDBEKD86XHUyNkE3XHVGRTBGP3xcdUQ4M0NcdURGMDgpKT98XHVERkY0KD86XHUyMDBEXHUyNjIwXHVGRTBGP3xcdURCNDBcdURDNjdcdURCNDBcdURDNjJcdURCNDAoPzpcdURDNjVcdURCNDBcdURDNkVcdURCNDBcdURDNjd8XHVEQzczXHVEQjQwXHVEQzYzXHVEQjQwXHVEQzc0fFx1REM3N1x1REI0MFx1REM2Q1x1REI0MFx1REM3MylcdURCNDBcdURDN0YpPyl8XHVEODNEKD86W1x1REMwOFx1REMyNl0oPzpcdTIwMERcdTJCMUIpP3xbXHVEQzNGXHVEQ0ZEXHVERDQ5XHVERDRBXHVERDZGXHVERDcwXHVERDczXHVERDc2LVx1REQ3OVx1REQ4N1x1REQ4QS1cdUREOERcdUREQTVcdUREQThcdUREQjFcdUREQjJcdUREQkNcdUREQzItXHVEREM0XHVEREQxLVx1REREM1x1REREQy1cdUREREVcdURERTFcdURERTNcdURERThcdURERUZcdURERjNcdURERkFcdURFQ0JcdURFQ0QtXHVERUNGXHVERUUwLVx1REVFNVx1REVFOVx1REVGMFx1REVGM11cdUZFMEY/fFtcdURDNDJcdURDNDNcdURDNDYtXHVEQzUwXHVEQzY2XHVEQzY3XHVEQzZCLVx1REM2RFx1REM3Mlx1REM3NC1cdURDNzZcdURDNzhcdURDN0NcdURDODNcdURDODVcdURDOEZcdURDOTFcdURDQUFcdUREN0FcdUREOTVcdUREOTZcdURFNENcdURFNEZcdURFQzBcdURFQ0NdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REM2RVx1REM3MFx1REM3MVx1REM3M1x1REM3N1x1REM4MVx1REM4Mlx1REM4Nlx1REM4N1x1REU0NS1cdURFNDdcdURFNEJcdURFNERcdURFNEVcdURFQTNcdURFQjQtXHVERUI2XSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1REQ3NFx1REQ5MF0oPzpcdUZFMEZ8XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REMwMC1cdURDMDdcdURDMDktXHVEQzE0XHVEQzE2LVx1REMyNVx1REMyNy1cdURDM0FcdURDM0MtXHVEQzNFXHVEQzQwXHVEQzQ0XHVEQzQ1XHVEQzUxLVx1REM2NVx1REM2QVx1REM3OS1cdURDN0JcdURDN0QtXHVEQzgwXHVEQzg0XHVEQzg4LVx1REM4RVx1REM5MFx1REM5Mi1cdURDQTlcdURDQUItXHVEQ0ZDXHVEQ0ZGLVx1REQzRFx1REQ0Qi1cdURENEVcdURENTAtXHVERDY3XHVEREE0XHVEREZCLVx1REUyRFx1REUyRi1cdURFMzRcdURFMzctXHVERTQ0XHVERTQ4LVx1REU0QVx1REU4MC1cdURFQTJcdURFQTQtXHVERUIzXHVERUI3LVx1REVCRlx1REVDMS1cdURFQzVcdURFRDAtXHVERUQyXHVERUQ1LVx1REVEN1x1REVEQy1cdURFREZcdURFRUJcdURFRUNcdURFRjQtXHVERUZDXHVERkUwLVx1REZFQlx1REZGMF18XHVEQzE1KD86XHUyMDBEXHVEODNFXHVEREJBKT98XHVEQzNCKD86XHUyMDBEXHUyNzQ0XHVGRTBGPyk/fFx1REM0MVx1RkUwRj8oPzpcdTIwMERcdUQ4M0RcdURERThcdUZFMEY/KT98XHVEQzY4KD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OHxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XVx1MjAwRFx1RDgzRCg/Olx1REM2Nig/Olx1MjAwRFx1RDgzRFx1REM2Nik/fFx1REM2Nyg/Olx1MjAwRFx1RDgzRFtcdURDNjZcdURDNjddKT8pfFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1REM2Nig/Olx1MjAwRFx1RDgzRFx1REM2Nik/fFx1REM2Nyg/Olx1MjAwRFx1RDgzRFtcdURDNjZcdURDNjddKT8pfFx1RDgzRVtcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXSl8XHVEODNDKD86XHVERkZCKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQy1cdURGRkZdKSkpP3xcdURGRkMoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCXHVERkZELVx1REZGRl0pKSk/fFx1REZGRCg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKSkpP3xcdURGRkUoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRFx1REZGRl0pKSk/fFx1REZGRig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkItXHVERkZFXSkpKT8pKT98XHVEQzY5KD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1tcdURDNjhcdURDNjldfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRCg/OltcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1REM2Nig/Olx1MjAwRFx1RDgzRFx1REM2Nik/fFx1REM2Nyg/Olx1MjAwRFx1RDgzRFtcdURDNjZcdURDNjddKT98XHVEQzY5XHUyMDBEXHVEODNEKD86XHVEQzY2KD86XHUyMDBEXHVEODNEXHVEQzY2KT98XHVEQzY3KD86XHUyMDBEXHVEODNEW1x1REM2Nlx1REM2N10pPykpfFx1RDgzRVtcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXSl8XHVEODNDKD86XHVERkZCKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XXxcdURDOEJcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XSlcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldXHVEODNDW1x1REZGQy1cdURGRkZdKSkpP3xcdURGRkMoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV1cdUQ4M0NbXHVERkZCXHVERkZELVx1REZGRl0pKSk/fFx1REZGRCg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKSkpP3xcdURGRkUoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV1cdUQ4M0NbXHVERkZCLVx1REZGRFx1REZGRl0pKSk/fFx1REZGRig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkItXHVERkZFXSkpKT8pKT98XHVEQzZGKD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98XHVERDc1KD86XHVGRTBGfFx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98XHVERTJFKD86XHUyMDBEXHVEODNEXHVEQ0E4KT98XHVERTM1KD86XHUyMDBEXHVEODNEXHVEQ0FCKT98XHVERTM2KD86XHUyMDBEXHVEODNDXHVERjJCXHVGRTBGPyk/KXxcdUQ4M0UoPzpbXHVERDBDXHVERDBGXHVERDE4LVx1REQxRlx1REQzMC1cdUREMzRcdUREMzZcdURENzdcdUREQjVcdUREQjZcdUREQkJcdURERDJcdURERDNcdURERDVcdURFQzMtXHVERUM1XHVERUYwXHVERUYyLVx1REVGOF0oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHVERDI2XHVERDM1XHVERDM3LVx1REQzOVx1REQzRFx1REQzRVx1RERCOFx1RERCOVx1RERDRC1cdUREQ0ZcdURERDRcdURERDYtXHVEREREXSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1RERERVx1RERERl0oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVERDBEXHVERDBFXHVERDEwLVx1REQxN1x1REQyMC1cdUREMjVcdUREMjctXHVERDJGXHVERDNBXHVERDNGLVx1REQ0NVx1REQ0Ny1cdURENzZcdURENzgtXHVEREI0XHVEREI3XHVEREJBXHVEREJDLVx1RERDQ1x1REREMFx1RERFMC1cdURERkZcdURFNzAtXHVERTdDXHVERTgwLVx1REU4OFx1REU5MC1cdURFQkRcdURFQkYtXHVERUMyXHVERUNFLVx1REVEQlx1REVFMC1cdURFRThdfFx1REQzQyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGP3xcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xcdURERDEoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMSkpfFx1RDgzQyg/Olx1REZGQig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEKD86XHVEODNEXHVEQzhCXHUyMDBEKT9cdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZDLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXSkpKT98XHVERkZDKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkZdKSkpP3xcdURGRkQoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQlx1REZGQ1x1REZGRVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXSkpKT98XHVERkZFKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkZdKSkpP3xcdURGRkYoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkVdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGODRcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRl0pKSk/KSk/fFx1REVGMSg/Olx1RDgzQyg/Olx1REZGQig/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkMtXHVERkZGXSk/fFx1REZGQyg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSk/fFx1REZGRCg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKT98XHVERkZFKD86XHUyMDBEXHVEODNFXHVERUYyXHVEODNDW1x1REZGQi1cdURGRkRcdURGRkZdKT98XHVERkZGKD86XHUyMDBEXHVEODNFXHVERUYyXHVEODNDW1x1REZGQi1cdURGRkVdKT8pKT8pL2c7CiAgfTsKCiAgLyoqIE5vcm1hbGl6ZSBhIGR1cmF0aW9uIHRvIGFsbCBvZiB0aGUgcHJvcGVyIHVuaXRzLiAqLwogIGZ1bmN0aW9uIG5vcm1hbGl6ZUR1cmF0aW9uKGR1cikgewogICAgICBpZiAoZHVyID09PSB1bmRlZmluZWQgfHwgZHVyID09PSBudWxsKQogICAgICAgICAgcmV0dXJuIGR1cjsKICAgICAgcmV0dXJuIGR1ci5zaGlmdFRvQWxsKCkubm9ybWFsaXplKCk7CiAgfQogIC8qKiBTdHJpcCB0aGUgdGltZSBjb21wb25lbnRzIG9mIGEgZGF0ZSB0aW1lIG9iamVjdC4gKi8KICBmdW5jdGlvbiBzdHJpcFRpbWUoZHQpIHsKICAgICAgaWYgKGR0ID09PSBudWxsIHx8IGR0ID09PSB1bmRlZmluZWQpCiAgICAgICAgICByZXR1cm4gZHQ7CiAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KHsKICAgICAgICAgIHllYXI6IGR0LnllYXIsCiAgICAgICAgICBtb250aDogZHQubW9udGgsCiAgICAgICAgICBkYXk6IGR0LmRheSwKICAgICAgfSk7CiAgfQogIC8qKiBUcnkgdG8gZXh0cmFjdCBhIFlZWVlNTUREIGRhdGUgZnJvbSBhIHN0cmluZy4gKi8KICBmdW5jdGlvbiBleHRyYWN0RGF0ZShzdHIpIHsKICAgICAgbGV0IGRhdGVNYXRjaCA9IC8oXGR7NH0pLShcZHsyfSktKFxkezJ9KS8uZXhlYyhzdHIpOwogICAgICBpZiAoIWRhdGVNYXRjaCkKICAgICAgICAgIGRhdGVNYXRjaCA9IC8oXGR7NH0pKFxkezJ9KShcZHsyfSkvLmV4ZWMoc3RyKTsKICAgICAgaWYgKGRhdGVNYXRjaCkgewogICAgICAgICAgbGV0IHllYXIgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzFdKTsKICAgICAgICAgIGxldCBtb250aCA9IE51bWJlci5wYXJzZUludChkYXRlTWF0Y2hbMl0pOwogICAgICAgICAgbGV0IGRheSA9IE51bWJlci5wYXJzZUludChkYXRlTWF0Y2hbM10pOwogICAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyLCBtb250aCwgZGF5IH0pOwogICAgICB9CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgfQogIC8qKiBHZXQgdGhlIGZvbGRlciBjb250YWluaW5nIHRoZSBnaXZlbiBwYXRoIChpLmUuLCBsaWtlIGNvbXB1dGluZyAncGF0aC8uLicpLiAqLwogIGZ1bmN0aW9uIGdldFBhcmVudEZvbGRlcihwYXRoKSB7CiAgICAgIHJldHVybiBwYXRoLnNwbGl0KCIvIikuc2xpY2UoMCwgLTEpLmpvaW4oIi8iKTsKICB9CiAgLyoqIEdldCB0aGUgInRpdGxlIiBmb3IgYSBmaWxlLCBieSBzdHJpcHBpbmcgb3RoZXIgcGFydHMgb2YgdGhlIHBhdGggYXMgd2VsbCBhcyB0aGUgZXh0ZW5zaW9uLiAqLwogIGZ1bmN0aW9uIGdldEZpbGVUaXRsZShwYXRoKSB7CiAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCIvIikpCiAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMSk7CiAgICAgIGlmIChwYXRoLmVuZHNXaXRoKCIubWQiKSkKICAgICAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygwLCBwYXRoLmxlbmd0aCAtIDMpOwogICAgICByZXR1cm4gcGF0aDsKICB9CiAgLyoqIEdldCB0aGUgZXh0ZW5zaW9uIG9mIGEgZmlsZSBmcm9tIHRoZSBmaWxlIHBhdGguICovCiAgZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uKHBhdGgpIHsKICAgICAgaWYgKCFwYXRoLmluY2x1ZGVzKCIuIikpCiAgICAgICAgICByZXR1cm4gIiI7CiAgICAgIHJldHVybiBwYXRoLnN1YnN0cmluZyhwYXRoLmxhc3RJbmRleE9mKCIuIikgKyAxKTsKICB9CiAgLyoqIFBhcnNlIGFsbCBzdWJ0YWdzIG91dCBvZiB0aGUgZ2l2ZW4gdGFnLiBJLmUuLCAjaGVsbG8vaS9hbSB3b3VsZCB5aWVsZCBbI2hlbGxvL2kvYW0sICNoZWxsby9pLCAjaGVsbG9dLiAqLwogIGZ1bmN0aW9uIGV4dHJhY3RTdWJ0YWdzKHRhZykgewogICAgICBsZXQgcmVzdWx0ID0gW3RhZ107CiAgICAgIHdoaWxlICh0YWcuaW5jbHVkZXMoIi8iKSkgewogICAgICAgICAgdGFnID0gdGFnLnN1YnN0cmluZygwLCB0YWcubGFzdEluZGV4T2YoIi8iKSk7CiAgICAgICAgICByZXN1bHQucHVzaCh0YWcpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHQ7CiAgfQogIC8qKiBBIHBhcnNpbW1vbiBwYXJzZXIgd2hpY2ggY2Fub25pY2FsaXplcyB2YXJpYWJsZSBuYW1lcyB3aGlsZSBwcm9wZXJseSByZXNwZWN0aW5nIGVtb2ppLiAqLwogIGNvbnN0IFZBUl9OQU1FX0NBTk9OSUNBTElaRVIgPSBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleChuZXcgUmVnRXhwKGVtb2ppUmVnZXgoKSwgIiIpKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4KC9bMC05XHB7TGV0dGVyfV8tXSsvdSkubWFwKHN0ciA9PiBzdHIudG9Mb2NhbGVMb3dlckNhc2UoKSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy53aGl0ZXNwYWNlLm1hcChfID0+ICItIiksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbnkubWFwKF8gPT4gIiIpKQogICAgICAubWFueSgpCiAgICAgIC5tYXAocmVzdWx0ID0+IHJlc3VsdC5qb2luKCIiKSk7CiAgLyoqIENvbnZlcnQgYW4gYXJiaXRyYXJ5IHZhcmlhYmxlIG5hbWUgaW50byBzb21ldGhpbmcgSlMvcXVlcnkgZnJpZW5kbHkuICovCiAgZnVuY3Rpb24gY2Fub25pY2FsaXplVmFyTmFtZShuYW1lKSB7CiAgICAgIHJldHVybiBWQVJfTkFNRV9DQU5PTklDQUxJWkVSLnRyeVBhcnNlKG5hbWUpOwogIH0KICBjb25zdCBIRUFERVJfQ0FOT05JQ0FMSVpFUiA9IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4KG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCAiIikpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXgoL1swLTlccHtMZXR0ZXJ9Xy1dKy91KSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLndoaXRlc3BhY2UubWFwKF8gPT4gIiAiKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFueS5tYXAoXyA9PiAiICIpKQogICAgICAubWFueSgpCiAgICAgIC5tYXAocmVzdWx0ID0+IHsKICAgICAgcmV0dXJuIHJlc3VsdC5qb2luKCIiKS5zcGxpdCgvXHMrLykuam9pbigiICIpLnRyaW0oKTsKICB9KTsKICAvKioKICAgKiBOb3JtYWxpemVzIHRoZSB0ZXh0IGluIGEgaGVhZGVyIHRvIGJlIHNvbWV0aGluZyB0aGF0IGlzIGFjdHVhbGx5IGxpbmthYmxlIHRvLiBUaGlzIG1pbWljcwogICAqIGhvdyBPYnNpZGlhbiBkb2VzIGl0J3Mgbm9ybWFsaXphdGlvbiwgY29sbGFwc2luZyByZXBlYXRlZCBzcGFjZXMgYW5kIHN0cmlwcGluZyBvdXQgY29udHJvbCBjaGFyYWN0ZXJzLgogICAqLwogIGZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlckZvckxpbmsoaGVhZGVyKSB7CiAgICAgIHJldHVybiBIRUFERVJfQ0FOT05JQ0FMSVpFUi50cnlQYXJzZShoZWFkZXIpOwogIH0KICAvKiogUmVuZGVyIGEgZHVyYXRpb24gaW4gYSBtaW5pbWFsIGZvcm1hdCB0byBzYXZlIHNwYWNlLiAqLwogIGZ1bmN0aW9uIHJlbmRlck1pbmltYWxEdXJhdGlvbihkdXIpIHsKICAgICAgZHVyID0gbm9ybWFsaXplRHVyYXRpb24oZHVyKTsKICAgICAgLy8gdG9IdW1hbiBvdXRwdXRzIHplcm8gcXVhbnRpdGllcyBlLmcuICIwIHNlY29uZHMiCiAgICAgIGR1ciA9IER1cmF0aW9uLmZyb21PYmplY3QoT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGR1ci50b09iamVjdCgpKS5maWx0ZXIoKFssIHF1YW50aXR5XSkgPT4gcXVhbnRpdHkgIT0gMCkpKTsKICAgICAgcmV0dXJuIGR1ci50b0h1bWFuKCk7CiAgfQoKICB2YXIgVmFsdWVzOwogIChmdW5jdGlvbiAoVmFsdWVzKSB7CiAgICAgIC8qKiBDb252ZXJ0IGFuIGFyYml0cmFyeSB2YWx1ZSBpbnRvIGEgcmVhc29uYWJsZSwgTWFya2Rvd24tZnJpZW5kbHkgc3RyaW5nIGlmIHBvc3NpYmxlLiAqLwogICAgICBmdW5jdGlvbiB0b1N0cmluZyhmaWVsZCwgc2V0dGluZyA9IERFRkFVTFRfUVVFUllfU0VUVElOR1MsIHJlY3Vyc2l2ZSA9IGZhbHNlKSB7CiAgICAgICAgICBsZXQgd3JhcHBlZCA9IHdyYXBWYWx1ZShmaWVsZCk7CiAgICAgICAgICBpZiAoIXdyYXBwZWQpCiAgICAgICAgICAgICAgcmV0dXJuIHNldHRpbmcucmVuZGVyTnVsbEFzOwogICAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHsKICAgICAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHNldHRpbmcucmVuZGVyTnVsbEFzOwogICAgICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlOwogICAgICAgICAgICAgIGNhc2UgIm51bWJlciI6CiAgICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgICAgICAgIHJldHVybiAiIiArIHdyYXBwZWQudmFsdWU7CiAgICAgICAgICAgICAgY2FzZSAiaHRtbCI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm91dGVySFRNTDsKICAgICAgICAgICAgICBjYXNlICJ3aWRnZXQiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpOwogICAgICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpOwogICAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuICI8ZnVuY3Rpb24+IjsKICAgICAgICAgICAgICBjYXNlICJhcnJheSI6CiAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZSkKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiWyI7CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3cmFwcGVkLnZhbHVlLm1hcChmID0+IHRvU3RyaW5nKGYsIHNldHRpbmcsIHRydWUpKS5qb2luKCIsICIpOwogICAgICAgICAgICAgICAgICBpZiAocmVjdXJzaXZlKQogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJdIjsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICAgICAgICAgICByZXR1cm4gKCJ7ICIgKwogICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMod3JhcHBlZC52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGUgPT4gZVswXSArICI6ICIgKyB0b1N0cmluZyhlWzFdLCBzZXR0aW5nLCB0cnVlKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbigiLCAiKSArCiAgICAgICAgICAgICAgICAgICAgICAiIH0iKTsKICAgICAgICAgICAgICBjYXNlICJkYXRlIjoKICAgICAgICAgICAgICAgICAgaWYgKHdyYXBwZWQudmFsdWUuc2Vjb25kID09IDAgJiYgd3JhcHBlZC52YWx1ZS5ob3VyID09IDAgJiYgd3JhcHBlZC52YWx1ZS5taW51dGUgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9Gb3JtYXQoc2V0dGluZy5kZWZhdWx0RGF0ZUZvcm1hdCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9Gb3JtYXQoc2V0dGluZy5kZWZhdWx0RGF0ZVRpbWVGb3JtYXQpOwogICAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlck1pbmltYWxEdXJhdGlvbih3cmFwcGVkLnZhbHVlKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBWYWx1ZXMudG9TdHJpbmcgPSB0b1N0cmluZzsKICAgICAgLyoqIFdyYXAgYSBsaXRlcmFsIHZhbHVlIHNvIHlvdSBjYW4gc3dpdGNoIG9uIGl0IGVhc2lseS4gKi8KICAgICAgZnVuY3Rpb24gd3JhcFZhbHVlKHZhbCkgewogICAgICAgICAgaWYgKGlzTnVsbCh2YWwpKQogICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJudWxsIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNOdW1iZXIodmFsKSkKICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcodmFsKSkKICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAic3RyaW5nIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNCb29sZWFuKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJvb2xlYW4iLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc0R1cmF0aW9uKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImR1cmF0aW9uIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNEYXRlKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImRhdGUiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc1dpZGdldCh2YWwpKQogICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJ3aWRnZXQiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImFycmF5IiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNMaW5rKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImxpbmsiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc0Z1bmN0aW9uKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImZ1bmN0aW9uIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNIdG1sKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImh0bWwiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKQogICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJvYmplY3QiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgfQogICAgICBWYWx1ZXMud3JhcFZhbHVlID0gd3JhcFZhbHVlOwogICAgICAvKiogUmVjdXJzaXZlbHkgbWFwIGNvbXBsZXggb2JqZWN0cyBhdCB0aGUgbGVhdmVzLiAqLwogICAgICBmdW5jdGlvbiBtYXBMZWF2ZXModmFsLCBmdW5jKSB7CiAgICAgICAgICBpZiAoaXNPYmplY3QodmFsKSkgewogICAgICAgICAgICAgIGxldCByZXN1bHQgPSB7fTsKICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsKSkKICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBtYXBMZWF2ZXModmFsdWUsIGZ1bmMpOwogICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkpIHsKICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107CiAgICAgICAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsKQogICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChtYXBMZWF2ZXModmFsdWUsIGZ1bmMpKTsKICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBWYWx1ZXMubWFwTGVhdmVzID0gbWFwTGVhdmVzOwogICAgICAvKiogQ29tcGFyZSB0d28gYXJiaXRyYXJ5IEphdmFTY3JpcHQgdmFsdWVzLiBQcm9kdWNlcyBhIHRvdGFsIG9yZGVyaW5nIG92ZXIgQU5ZIHBvc3NpYmxlIGRhdGF2aWV3IHZhbHVlLiAqLwogICAgICBmdW5jdGlvbiBjb21wYXJlVmFsdWUodmFsMSwgdmFsMiwgbGlua05vcm1hbGl6ZXIpIHsKICAgICAgICAgIC8vIEhhbmRsZSB1bmRlZmluZWQvbnVsbHMgZmlyc3QuCiAgICAgICAgICBpZiAodmFsMSA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgICAgIHZhbDEgPSBudWxsOwogICAgICAgICAgaWYgKHZhbDIgPT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICB2YWwyID0gbnVsbDsKICAgICAgICAgIGlmICh2YWwxID09PSBudWxsICYmIHZhbDIgPT09IG51bGwpCiAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICBlbHNlIGlmICh2YWwxID09PSBudWxsKQogICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIGVsc2UgaWYgKHZhbDIgPT09IG51bGwpCiAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAvLyBBIG5vbi1udWxsIHZhbHVlIG5vdyB3aGljaCB3ZSBjYW4gd3JhcCAmIGNvbXBhcmUgb24uCiAgICAgICAgICBsZXQgd3JhcDEgPSB3cmFwVmFsdWUodmFsMSk7CiAgICAgICAgICBsZXQgd3JhcDIgPSB3cmFwVmFsdWUodmFsMik7CiAgICAgICAgICBpZiAod3JhcDEgPT09IHVuZGVmaW5lZCAmJiB3cmFwMiA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgZWxzZSBpZiAod3JhcDEgPT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICBlbHNlIGlmICh3cmFwMiA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgLy8gU2hvcnQtY2lyY3VpdCBvbiBkaWZmZXJlbnQgdHlwZXMgb3Igb24gcmVmZXJlbmNlIGVxdWFsaXR5LgogICAgICAgICAgaWYgKHdyYXAxLnR5cGUgIT0gd3JhcDIudHlwZSkKICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudHlwZS5sb2NhbGVDb21wYXJlKHdyYXAyLnR5cGUpOwogICAgICAgICAgaWYgKHdyYXAxLnZhbHVlID09PSB3cmFwMi52YWx1ZSkKICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgIHN3aXRjaCAod3JhcDEudHlwZSkgewogICAgICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZS5sb2NhbGVDb21wYXJlKHdyYXAyLnZhbHVlKTsKICAgICAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICAgICAgICBpZiAod3JhcDEudmFsdWUgPCB3cmFwMi52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICAgICAgZWxzZSBpZiAod3JhcDEudmFsdWUgPT0gd3JhcDIudmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgY2FzZSAibnVsbCI6CiAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgICBpZiAod3JhcDEudmFsdWUgPT0gd3JhcDIudmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXAxLnZhbHVlID8gMSA6IC0xOwogICAgICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICAgICAgICBsZXQgbGluazEgPSB3cmFwMS52YWx1ZTsKICAgICAgICAgICAgICAgICAgbGV0IGxpbmsyID0gd3JhcDIudmFsdWU7CiAgICAgICAgICAgICAgICAgIGxldCBub3JtYWxpemUgPSBsaW5rTm9ybWFsaXplciA/PyAoKHgpID0+IHgpOwogICAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBjb21wYXJlIGJ5IGZpbGUgbmFtZSBvciBkaXNwbGF5LCBzaW5jZSB0aGF0IHdvdWxkIGJyZWFrIGxpbmsgZXF1YWxpdHkuIENvbXBhcmUgYnkgcGF0aC4KICAgICAgICAgICAgICAgICAgbGV0IHBhdGhDb21wYXJlID0gbm9ybWFsaXplKGxpbmsxLnBhdGgpLmxvY2FsZUNvbXBhcmUobm9ybWFsaXplKGxpbmsyLnBhdGgpKTsKICAgICAgICAgICAgICAgICAgaWYgKHBhdGhDb21wYXJlICE9IDApCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGF0aENvbXBhcmU7CiAgICAgICAgICAgICAgICAgIC8vIFRoZW4gY29tcGFyZSBieSB0eXBlLgogICAgICAgICAgICAgICAgICBsZXQgdHlwZUNvbXBhcmUgPSBsaW5rMS50eXBlLmxvY2FsZUNvbXBhcmUobGluazIudHlwZSk7CiAgICAgICAgICAgICAgICAgIGlmICh0eXBlQ29tcGFyZSAhPSAwKQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVDb21wYXJlOwogICAgICAgICAgICAgICAgICAvLyBUaGVuIGNvbXBhcmUgYnkgc3VicGF0aCBleGlzdGVuY2UuCiAgICAgICAgICAgICAgICAgIGlmIChsaW5rMS5zdWJwYXRoICYmICFsaW5rMi5zdWJwYXRoKQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgIGlmICghbGluazEuc3VicGF0aCAmJiBsaW5rMi5zdWJwYXRoKQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgICAgICBpZiAoIWxpbmsxLnN1YnBhdGggJiYgIWxpbmsyLnN1YnBhdGgpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgLy8gU2luY2UgYm90aCBoYXZlIGEgc3VicGF0aCwgY29tcGFyZSBieSBzdWJwYXRoLgogICAgICAgICAgICAgICAgICByZXR1cm4gKGxpbmsxLnN1YnBhdGggPz8gIiIpLmxvY2FsZUNvbXBhcmUobGluazIuc3VicGF0aCA/PyAiIik7CiAgICAgICAgICAgICAgY2FzZSAiZGF0ZSI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZSA8IHdyYXAyLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICA/IC0xCiAgICAgICAgICAgICAgICAgICAgICA6IHdyYXAxLnZhbHVlLmVxdWFscyh3cmFwMi52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICA6IDE7CiAgICAgICAgICAgICAgY2FzZSAiZHVyYXRpb24iOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCB3cmFwMi52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgPyAtMQogICAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAxOwogICAgICAgICAgICAgIGNhc2UgImFycmF5IjoKICAgICAgICAgICAgICAgICAgbGV0IGYxID0gd3JhcDEudmFsdWU7CiAgICAgICAgICAgICAgICAgIGxldCBmMiA9IHdyYXAyLnZhbHVlOwogICAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgTWF0aC5taW4oZjEubGVuZ3RoLCBmMi5sZW5ndGgpOyBpbmRleCsrKSB7CiAgICAgICAgICAgICAgICAgICAgICBsZXQgY29tcCA9IGNvbXBhcmVWYWx1ZShmMVtpbmRleF0sIGYyW2luZGV4XSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tcCAhPSAwKQogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiBmMS5sZW5ndGggLSBmMi5sZW5ndGg7CiAgICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgICAgICAgbGV0IG8xID0gd3JhcDEudmFsdWU7CiAgICAgICAgICAgICAgICAgIGxldCBvMiA9IHdyYXAyLnZhbHVlOwogICAgICAgICAgICAgICAgICBsZXQgazEgPSBBcnJheS5mcm9tKE9iamVjdC5rZXlzKG8xKSk7CiAgICAgICAgICAgICAgICAgIGxldCBrMiA9IEFycmF5LmZyb20oT2JqZWN0LmtleXMobzIpKTsKICAgICAgICAgICAgICAgICAgazEuc29ydCgpOwogICAgICAgICAgICAgICAgICBrMi5zb3J0KCk7CiAgICAgICAgICAgICAgICAgIGxldCBrZXlDb21wYXJlID0gY29tcGFyZVZhbHVlKGsxLCBrMik7CiAgICAgICAgICAgICAgICAgIGlmIChrZXlDb21wYXJlICE9IDApCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5Q29tcGFyZTsKICAgICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IG9mIGsxKSB7CiAgICAgICAgICAgICAgICAgICAgICBsZXQgY29tcCA9IGNvbXBhcmVWYWx1ZShvMVtrZXldLCBvMltrZXldKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wICE9IDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXA7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICAgY2FzZSAid2lkZ2V0IjoKICAgICAgICAgICAgICBjYXNlICJodG1sIjoKICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgfQogICAgICB9CiAgICAgIFZhbHVlcy5jb21wYXJlVmFsdWUgPSBjb21wYXJlVmFsdWU7CiAgICAgIC8qKiBGaW5kIHRoZSBjb3JyZXNwb25kaW5nIERhdGF2ZWl3IHR5cGUgZm9yIGFuIGFyYml0cmFyeSB2YWx1ZS4gKi8KICAgICAgZnVuY3Rpb24gdHlwZU9mKHZhbCkgewogICAgICAgICAgcmV0dXJuIHdyYXBWYWx1ZSh2YWwpPy50eXBlOwogICAgICB9CiAgICAgIFZhbHVlcy50eXBlT2YgPSB0eXBlT2Y7CiAgICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIHZhbHVlIGlzICJ0cnV0aHkiIChpLmUuLCBpcyBub24tbnVsbCBhbmQgaGFzIGRhdGEgaW4gaXQpLiAqLwogICAgICBmdW5jdGlvbiBpc1RydXRoeShmaWVsZCkgewogICAgICAgICAgbGV0IHdyYXBwZWQgPSB3cmFwVmFsdWUoZmllbGQpOwogICAgICAgICAgaWYgKCF3cmFwcGVkKQogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7CiAgICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUgIT0gMDsKICAgICAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5sZW5ndGggPiAwOwogICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTsKICAgICAgICAgICAgICBjYXNlICJsaW5rIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuICEhd3JhcHBlZC52YWx1ZS5wYXRoOwogICAgICAgICAgICAgIGNhc2UgImRhdGUiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS50b01pbGxpcygpICE9IDA7CiAgICAgICAgICAgICAgY2FzZSAiZHVyYXRpb24iOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5hcygic2Vjb25kcyIpICE9IDA7CiAgICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHdyYXBwZWQudmFsdWUpLmxlbmd0aCA+IDA7CiAgICAgICAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5sZW5ndGggPiAwOwogICAgICAgICAgICAgIGNhc2UgIm51bGwiOgogICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgY2FzZSAiaHRtbCI6CiAgICAgICAgICAgICAgY2FzZSAid2lkZ2V0IjoKICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICB9CiAgICAgIFZhbHVlcy5pc1RydXRoeSA9IGlzVHJ1dGh5OwogICAgICAvKiogRGVlcCBjb3B5IGEgZmllbGQuICovCiAgICAgIGZ1bmN0aW9uIGRlZXBDb3B5KGZpZWxkKSB7CiAgICAgICAgICBpZiAoZmllbGQgPT09IG51bGwgfHwgZmllbGQgPT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICByZXR1cm4gZmllbGQ7CiAgICAgICAgICBpZiAoVmFsdWVzLmlzQXJyYXkoZmllbGQpKSB7CiAgICAgICAgICAgICAgcmV0dXJuIFtdLmNvbmNhdChmaWVsZC5tYXAodiA9PiBkZWVwQ29weSh2KSkpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoVmFsdWVzLmlzT2JqZWN0KGZpZWxkKSkgewogICAgICAgICAgICAgIGxldCByZXN1bHQgPSB7fTsKICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGQpKQogICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGRlZXBDb3B5KHZhbHVlKTsKICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkOwogICAgICAgICAgfQogICAgICB9CiAgICAgIFZhbHVlcy5kZWVwQ29weSA9IGRlZXBDb3B5OwogICAgICBmdW5jdGlvbiBpc1N0cmluZyh2YWwpIHsKICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09ICJzdHJpbmciOwogICAgICB9CiAgICAgIFZhbHVlcy5pc1N0cmluZyA9IGlzU3RyaW5nOwogICAgICBmdW5jdGlvbiBpc051bWJlcih2YWwpIHsKICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09ICJudW1iZXIiOwogICAgICB9CiAgICAgIFZhbHVlcy5pc051bWJlciA9IGlzTnVtYmVyOwogICAgICBmdW5jdGlvbiBpc0RhdGUodmFsKSB7CiAgICAgICAgICByZXR1cm4gdmFsIGluc3RhbmNlb2YgRGF0ZVRpbWU7CiAgICAgIH0KICAgICAgVmFsdWVzLmlzRGF0ZSA9IGlzRGF0ZTsKICAgICAgZnVuY3Rpb24gaXNEdXJhdGlvbih2YWwpIHsKICAgICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBEdXJhdGlvbjsKICAgICAgfQogICAgICBWYWx1ZXMuaXNEdXJhdGlvbiA9IGlzRHVyYXRpb247CiAgICAgIGZ1bmN0aW9uIGlzTnVsbCh2YWwpIHsKICAgICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQ7CiAgICAgIH0KICAgICAgVmFsdWVzLmlzTnVsbCA9IGlzTnVsbDsKICAgICAgZnVuY3Rpb24gaXNBcnJheSh2YWwpIHsKICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbCk7CiAgICAgIH0KICAgICAgVmFsdWVzLmlzQXJyYXkgPSBpc0FycmF5OwogICAgICBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsKSB7CiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gImJvb2xlYW4iOwogICAgICB9CiAgICAgIFZhbHVlcy5pc0Jvb2xlYW4gPSBpc0Jvb2xlYW47CiAgICAgIGZ1bmN0aW9uIGlzTGluayh2YWwpIHsKICAgICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBMaW5rOwogICAgICB9CiAgICAgIFZhbHVlcy5pc0xpbmsgPSBpc0xpbms7CiAgICAgIGZ1bmN0aW9uIGlzV2lkZ2V0KHZhbCkgewogICAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIFdpZGdldDsKICAgICAgfQogICAgICBWYWx1ZXMuaXNXaWRnZXQgPSBpc1dpZGdldDsKICAgICAgZnVuY3Rpb24gaXNIdG1sKHZhbCkgewogICAgICAgICAgaWYgKHR5cGVvZiBIVE1MRWxlbWVudCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICByZXR1cm4gdmFsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgVmFsdWVzLmlzSHRtbCA9IGlzSHRtbDsKICAgICAgLyoqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gb2JqZWN0IChhbmQgbm90IGFueSBvdGhlciBkYXRhdmlldy1yZWNvZ25pemVkIG9iamVjdC1saWtlIHR5cGUpLiAqLwogICAgICBmdW5jdGlvbiBpc09iamVjdCh2YWwpIHsKICAgICAgICAgIHJldHVybiAodHlwZW9mIHZhbCA9PSAib2JqZWN0IiAmJgogICAgICAgICAgICAgICFpc0h0bWwodmFsKSAmJgogICAgICAgICAgICAgICFpc1dpZGdldCh2YWwpICYmCiAgICAgICAgICAgICAgIWlzQXJyYXkodmFsKSAmJgogICAgICAgICAgICAgICFpc0R1cmF0aW9uKHZhbCkgJiYKICAgICAgICAgICAgICAhaXNEYXRlKHZhbCkgJiYKICAgICAgICAgICAgICAhaXNMaW5rKHZhbCkgJiYKICAgICAgICAgICAgICB2YWwgIT09IHVuZGVmaW5lZCAmJgogICAgICAgICAgICAgICFpc051bGwodmFsKSk7CiAgICAgIH0KICAgICAgVmFsdWVzLmlzT2JqZWN0ID0gaXNPYmplY3Q7CiAgICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsKSB7CiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PSAiZnVuY3Rpb24iOwogICAgICB9CiAgICAgIFZhbHVlcy5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjsKICB9KShWYWx1ZXMgfHwgKFZhbHVlcyA9IHt9KSk7CiAgLy8vLy8vLy8vLy8vLy8vCiAgLy8gR3JvdXBpbmdzIC8vCiAgLy8vLy8vLy8vLy8vLy8vCiAgdmFyIEdyb3VwaW5nczsKICAoZnVuY3Rpb24gKEdyb3VwaW5ncykgewogICAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gZ3JvdXAgZW50cnkgaXMgYSBzdGFuZGFsb25lIHZhbHVlLCBvciBhIGdyb3VwaW5nIG9mIHN1Yi1lbnRyaWVzLiAqLwogICAgICBmdW5jdGlvbiBpc0VsZW1lbnRHcm91cChlbnRyeSkgewogICAgICAgICAgcmV0dXJuIFZhbHVlcy5pc09iamVjdChlbnRyeSkgJiYgT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCA9PSAyICYmICJrZXkiIGluIGVudHJ5ICYmICJyb3dzIiBpbiBlbnRyeTsKICAgICAgfQogICAgICBHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAgPSBpc0VsZW1lbnRHcm91cDsKICAgICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgZ3JvdXBpbmcgYXJyYXkuICovCiAgICAgIGZ1bmN0aW9uIGlzR3JvdXBpbmcoZW50cnkpIHsKICAgICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZW50cnkpCiAgICAgICAgICAgICAgaWYgKCFpc0VsZW1lbnRHcm91cChlbGVtZW50KSkKICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgR3JvdXBpbmdzLmlzR3JvdXBpbmcgPSBpc0dyb3VwaW5nOwogICAgICAvKiogQ291bnQgdGhlIHRvdGFsIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIHJlY3Vyc2l2ZSBncm91cGluZy4gKi8KICAgICAgZnVuY3Rpb24gY291bnQoZWxlbWVudHMpIHsKICAgICAgICAgIGlmIChpc0dyb3VwaW5nKGVsZW1lbnRzKSkgewogICAgICAgICAgICAgIGxldCByZXN1bHQgPSAwOwogICAgICAgICAgICAgIGZvciAobGV0IHN1Ymdyb3VwIG9mIGVsZW1lbnRzKQogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gY291bnQoc3ViZ3JvdXAucm93cyk7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIHJldHVybiBlbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgR3JvdXBpbmdzLmNvdW50ID0gY291bnQ7CiAgfSkoR3JvdXBpbmdzIHx8IChHcm91cGluZ3MgPSB7fSkpOwogIC8vLy8vLy8vLy8KICAvLyBMSU5LIC8vCiAgLy8vLy8vLy8vLwogIC8qKiBUaGUgT2JzaWRpYW4gJ2xpbmsnLCB1c2VkIGZvciB1bmlxdWVseSBkZXNjcmliaW5nIGEgZmlsZSwgaGVhZGVyLCBvciBibG9jay4gKi8KICBjbGFzcyBMaW5rIHsKICAgICAgLyoqIFRoZSBmaWxlIHBhdGggdGhpcyBsaW5rIHBvaW50cyB0by4gKi8KICAgICAgcGF0aDsKICAgICAgLyoqIFRoZSBkaXNwbGF5IG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBsaW5rLiAqLwogICAgICBkaXNwbGF5OwogICAgICAvKiogVGhlIGJsb2NrIElEIG9yIGhlYWRlciB0aGlzIGxpbmsgcG9pbnRzIHRvIHdpdGhpbiBhIGZpbGUsIGlmIHJlbGV2YW50LiAqLwogICAgICBzdWJwYXRoOwogICAgICAvKiogSXMgdGhpcyBsaW5rIGFuIGVtYmVkZGVkIGxpbmsgKCEpPyAqLwogICAgICBlbWJlZDsKICAgICAgLyoqIFRoZSB0eXBlIG9mIHRoaXMgbGluaywgd2hpY2ggZGV0ZXJtaW5lcyB3aGF0ICdzdWJwYXRoJyByZWZlcnMgdG8sIGlmIGFueXRoaW5nLiAqLwogICAgICB0eXBlOwogICAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUuICovCiAgICAgIHN0YXRpYyBmaWxlKHBhdGgsIGVtYmVkID0gZmFsc2UsIGRpc3BsYXkpIHsKICAgICAgICAgIHJldHVybiBuZXcgTGluayh7CiAgICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgICBlbWJlZCwKICAgICAgICAgICAgICBkaXNwbGF5LAogICAgICAgICAgICAgIHN1YnBhdGg6IHVuZGVmaW5lZCwKICAgICAgICAgICAgICB0eXBlOiAiZmlsZSIsCiAgICAgICAgICB9KTsKICAgICAgfQogICAgICBzdGF0aWMgaW5mZXIobGlua3BhdGgsIGVtYmVkID0gZmFsc2UsIGRpc3BsYXkpIHsKICAgICAgICAgIGlmIChsaW5rcGF0aC5pbmNsdWRlcygiI14iKSkgewogICAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KCIjXiIpOwogICAgICAgICAgICAgIHJldHVybiBMaW5rLmJsb2NrKHNwbGl0WzBdLCBzcGxpdFsxXSwgZW1iZWQsIGRpc3BsYXkpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAobGlua3BhdGguaW5jbHVkZXMoIiMiKSkgewogICAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KCIjIik7CiAgICAgICAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHNwbGl0WzBdLCBzcGxpdFsxXSwgZW1iZWQsIGRpc3BsYXkpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHJldHVybiBMaW5rLmZpbGUobGlua3BhdGgsIGVtYmVkLCBkaXNwbGF5KTsKICAgICAgfQogICAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGhlYWRlciBpbiB0aGF0IGZpbGUuICovCiAgICAgIHN0YXRpYyBoZWFkZXIocGF0aCwgaGVhZGVyLCBlbWJlZCwgZGlzcGxheSkgewogICAgICAgICAgLy8gSGVhZGVycyBuZWVkIHRvIGJlIG5vcm1hbGl6ZWQgdG8gYWxwaGEtbnVtZXJpYyAmIHdpdGggZXh0cmEgc3BhY2luZyByZW1vdmVkLgogICAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHsKICAgICAgICAgICAgICBwYXRoLAogICAgICAgICAgICAgIGVtYmVkLAogICAgICAgICAgICAgIGRpc3BsYXksCiAgICAgICAgICAgICAgc3VicGF0aDogbm9ybWFsaXplSGVhZGVyRm9yTGluayhoZWFkZXIpLAogICAgICAgICAgICAgIHR5cGU6ICJoZWFkZXIiLAogICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqIENyZWF0ZSBhIGxpbmsgdG8gYSBzcGVjaWZpYyBmaWxlIGFuZCBibG9jayBpbiB0aGF0IGZpbGUuICovCiAgICAgIHN0YXRpYyBibG9jayhwYXRoLCBibG9ja0lkLCBlbWJlZCwgZGlzcGxheSkgewogICAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHsKICAgICAgICAgICAgICBwYXRoLAogICAgICAgICAgICAgIGVtYmVkLAogICAgICAgICAgICAgIGRpc3BsYXksCiAgICAgICAgICAgICAgc3VicGF0aDogYmxvY2tJZCwKICAgICAgICAgICAgICB0eXBlOiAiYmxvY2siLAogICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgc3RhdGljIGZyb21PYmplY3Qob2JqZWN0KSB7CiAgICAgICAgICByZXR1cm4gbmV3IExpbmsob2JqZWN0KTsKICAgICAgfQogICAgICBjb25zdHJ1Y3RvcihmaWVsZHMpIHsKICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTsKICAgICAgfQogICAgICAvKiogQ2hlY2tzIGZvciBsaW5rIGVxdWFsaXR5IChpLmUuLCB0aGF0IHRoZSBsaW5rcyBhcmUgcG9pbnRpbmcgdG8gdGhlIHNhbWUgZXhhY3QgbG9jYXRpb24pLiAqLwogICAgICBlcXVhbHMob3RoZXIpIHsKICAgICAgICAgIGlmIChvdGhlciA9PSB1bmRlZmluZWQgfHwgb3RoZXIgPT0gbnVsbCkKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoID09IG90aGVyLnBhdGggJiYgdGhpcy50eXBlID09IG90aGVyLnR5cGUgJiYgdGhpcy5zdWJwYXRoID09IG90aGVyLnN1YnBhdGg7CiAgICAgIH0KICAgICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIHRvIGl0J3MgbWFya2Rvd24gcmVwcmVzZW50YXRpb24uICovCiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMubWFya2Rvd24oKTsKICAgICAgfQogICAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gYSByYXcgb2JqZWN0IHdoaWNoIGlzIHNlcmlhbGl6YXRpb24tZnJpZW5kbHkuICovCiAgICAgIHRvT2JqZWN0KCkgewogICAgICAgICAgcmV0dXJuIHsgcGF0aDogdGhpcy5wYXRoLCB0eXBlOiB0aGlzLnR5cGUsIHN1YnBhdGg6IHRoaXMuc3VicGF0aCwgZGlzcGxheTogdGhpcy5kaXNwbGF5LCBlbWJlZDogdGhpcy5lbWJlZCB9OwogICAgICB9CiAgICAgIC8qKiBVcGRhdGUgdGhpcyBsaW5rIHdpdGggYSBuZXcgcGF0aC4gKi8KICAgICAgLy9AdHMtaWdub3JlOyBlcnJvciBhcHBlYXJlZCBhZnRlciB1cGRhdGluZyBPYnNpZGlhbiB0byAwLjE1LjQ7IGl0IGFsc28gdXBkYXRlZCBvdGhlciBwYWNrYWdlcyBidXQgZGlkbid0IHNheSB3aGljaAogICAgICB3aXRoUGF0aChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gbmV3IExpbmsoT2JqZWN0LmFzc2lnbih7fSwgdGhpcywgeyBwYXRoIH0pKTsKICAgICAgfQogICAgICAvKiogUmV0dXJuIGEgbmV3IGxpbmsgd2hpY2ggcG9pbnRzIHRvIHRoZSBzYW1lIGxvY2F0aW9uIGJ1dCB3aXRoIGEgbmV3IGRpc3BsYXkgdmFsdWUuICovCiAgICAgIHdpdGhEaXNwbGF5KGRpc3BsYXkpIHsKICAgICAgICAgIHJldHVybiBuZXcgTGluayhPYmplY3QuYXNzaWduKHt9LCB0aGlzLCB7IGRpc3BsYXkgfSkpOwogICAgICB9CiAgICAgIC8qKiBDb252ZXJ0IGEgZmlsZSBsaW5rIGludG8gYSBsaW5rIHRvIGEgc3BlY2lmaWMgaGVhZGVyLiAqLwogICAgICB3aXRoSGVhZGVyKGhlYWRlcikgewogICAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHRoaXMucGF0aCwgaGVhZGVyLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpOwogICAgICB9CiAgICAgIC8qKiBDb252ZXJ0IGFueSBsaW5rIGludG8gYSBsaW5rIHRvIGl0cyBmaWxlLiAqLwogICAgICB0b0ZpbGUoKSB7CiAgICAgICAgICByZXR1cm4gTGluay5maWxlKHRoaXMucGF0aCwgdGhpcy5lbWJlZCwgdGhpcy5kaXNwbGF5KTsKICAgICAgfQogICAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgaW50byBhbiBlbWJlZGRlZCBsaW5rLiAqLwogICAgICB0b0VtYmVkKCkgewogICAgICAgICAgaWYgKHRoaXMuZW1iZWQpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGxldCBsaW5rID0gbmV3IExpbmsodGhpcyk7CiAgICAgICAgICAgICAgbGluay5lbWJlZCA9IHRydWU7CiAgICAgICAgICAgICAgcmV0dXJuIGxpbms7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIGludG8gYSBub24tZW1iZWRkZWQgbGluay4gKi8KICAgICAgZnJvbUVtYmVkKCkgewogICAgICAgICAgaWYgKCF0aGlzLmVtYmVkKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBsZXQgbGluayA9IG5ldyBMaW5rKHRoaXMpOwogICAgICAgICAgICAgIGxpbmsuZW1iZWQgPSBmYWxzZTsKICAgICAgICAgICAgICByZXR1cm4gbGluazsKICAgICAgICAgIH0KICAgICAgfQogICAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gbWFya2Rvd24gc28gaXQgY2FuIGJlIHJlbmRlcmVkLiAqLwogICAgICBtYXJrZG93bigpIHsKICAgICAgICAgIGxldCByZXN1bHQgPSAodGhpcy5lbWJlZCA/ICIhIiA6ICIiKSArICJbWyIgKyB0aGlzLm9ic2lkaWFuTGluaygpOwogICAgICAgICAgaWYgKHRoaXMuZGlzcGxheSkgewogICAgICAgICAgICAgIHJlc3VsdCArPSAifCIgKyB0aGlzLmRpc3BsYXk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICByZXN1bHQgKz0gInwiICsgZ2V0RmlsZVRpdGxlKHRoaXMucGF0aCk7CiAgICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAiaGVhZGVyIiB8fCB0aGlzLnR5cGUgPT0gImJsb2NrIikKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgPiAiICsgdGhpcy5zdWJwYXRoOwogICAgICAgICAgfQogICAgICAgICAgcmVzdWx0ICs9ICJdXSI7CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIC8qKiBDb252ZXJ0IHRoZSBpbm5lciBwYXJ0IG9mIHRoZSBsaW5rIHRvIHNvbWV0aGluZyB0aGF0IE9ic2lkaWFuIGNhbiBvcGVuIC8gdW5kZXJzdGFuZC4gKi8KICAgICAgb2JzaWRpYW5MaW5rKCkgewogICAgICAgICAgY29uc3QgZXNjYXBlZCA9IHRoaXMucGF0aC5yZXBsYWNlQWxsKCJ8IiwgIlxcfCIpOwogICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAiaGVhZGVyIikKICAgICAgICAgICAgICByZXR1cm4gZXNjYXBlZCArICIjIiArIHRoaXMuc3VicGF0aD8ucmVwbGFjZUFsbCgifCIsICJcXHwiKTsKICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gImJsb2NrIikKICAgICAgICAgICAgICByZXR1cm4gZXNjYXBlZCArICIjXiIgKyB0aGlzLnN1YnBhdGg/LnJlcGxhY2VBbGwoInwiLCAiXFx8Iik7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgcmV0dXJuIGVzY2FwZWQ7CiAgICAgIH0KICAgICAgLyoqIFRoZSBzdHJpcHBlZCBuYW1lIG9mIHRoZSBmaWxlIHRoaXMgbGluayBwb2ludHMgdG8uICovCiAgICAgIGZpbGVOYW1lKCkgewogICAgICAgICAgcmV0dXJuIGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpLnJlcGxhY2UoIi5tZCIsICIiKTsKICAgICAgfQogIH0KICAvLy8vLy8vLy8vLy8vLy8vLwogIC8vIFdJREdFVCBCQVNFIC8vCiAgLy8vLy8vLy8vLy8vLy8vLy8KICAvKioKICAgKiBBIHRyaXZpYWwgYmFzZSBjbGFzcyB3aGljaCBqdXN0IGRlZmluZXMgdGhlICckd2lkZ2V0JyBpZGVudGlmaWVyIHR5cGUuIFN1YnR5cGVzIG9mCiAgICogd2lkZ2V0IGFyZSByZXNwb25zaWJsZSBmb3IgYWRkaW5nIHdoYXRldmVyIG1ldGFkYXRhIGlzIHJlbGV2YW50LiBJZiB5b3Ugd2FudCB5b3VyIHdpZGdldAogICAqIHRvIGhhdmUgcmVuZGVyaW5nIGZ1bmN0aW9uYWxpdHkgKHdoaWNoIHlvdSBwcm9iYWJseSBkbyksIHlvdSBzaG91bGQgZXh0ZW5kIGBSZW5kZXJXaWRnZXRgLgogICAqLwogIGNsYXNzIFdpZGdldCB7CiAgICAgICR3aWRnZXQ7CiAgICAgIGNvbnN0cnVjdG9yKCR3aWRnZXQpIHsKICAgICAgICAgIHRoaXMuJHdpZGdldCA9ICR3aWRnZXQ7CiAgICAgIH0KICB9CiAgLyoqIEEgdHJpdmlhbCB3aWRnZXQgd2hpY2ggcmVuZGVycyBhIChrZXksIHZhbHVlKSBwYWlyLCBhbmQgYWxsb3dzIGFjY2Vzc2luZyB0aGUga2V5IGFuZCB2YWx1ZS4gKi8KICBjbGFzcyBMaXN0UGFpcldpZGdldCBleHRlbmRzIFdpZGdldCB7CiAgICAgIGtleTsKICAgICAgdmFsdWU7CiAgICAgIGNvbnN0cnVjdG9yKGtleSwgdmFsdWUpIHsKICAgICAgICAgIHN1cGVyKCJkYXRhdmlldzpsaXN0LXBhaXIiKTsKICAgICAgICAgIHRoaXMua2V5ID0ga2V5OwogICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOwogICAgICB9CiAgICAgIG1hcmtkb3duKCkgewogICAgICAgICAgcmV0dXJuIGAke1ZhbHVlcy50b1N0cmluZyh0aGlzLmtleSl9OiAke1ZhbHVlcy50b1N0cmluZyh0aGlzLnZhbHVlKX1gOwogICAgICB9CiAgfQogIC8qKiBBIHNpbXBsZSB3aWRnZXQgd2hpY2ggcmVuZGVycyBhbiBleHRlcm5hbCBsaW5rLiAqLwogIGNsYXNzIEV4dGVybmFsTGlua1dpZGdldCBleHRlbmRzIFdpZGdldCB7CiAgICAgIHVybDsKICAgICAgZGlzcGxheTsKICAgICAgY29uc3RydWN0b3IodXJsLCBkaXNwbGF5KSB7CiAgICAgICAgICBzdXBlcigiZGF0YXZpZXc6ZXh0ZXJuYWwtbGluayIpOwogICAgICAgICAgdGhpcy51cmwgPSB1cmw7CiAgICAgICAgICB0aGlzLmRpc3BsYXkgPSBkaXNwbGF5OwogICAgICB9CiAgICAgIG1hcmtkb3duKCkgewogICAgICAgICAgcmV0dXJuIGBbJHt0aGlzLmRpc3BsYXkgPz8gdGhpcy51cmx9XSgke3RoaXMudXJsfSlgOwogICAgICB9CiAgfQogIHZhciBXaWRnZXRzOwogIChmdW5jdGlvbiAoV2lkZ2V0cykgewogICAgICAvKiogQ3JlYXRlIGEgbGlzdCBwYWlyIHdpZGdldCBtYXRjaGluZyB0aGUgZ2l2ZW4ga2V5IGFuZCB2YWx1ZS4gKi8KICAgICAgZnVuY3Rpb24gbGlzdFBhaXIoa2V5LCB2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIG5ldyBMaXN0UGFpcldpZGdldChrZXksIHZhbHVlKTsKICAgICAgfQogICAgICBXaWRnZXRzLmxpc3RQYWlyID0gbGlzdFBhaXI7CiAgICAgIC8qKiBDcmVhdGUgYW4gZXh0ZXJuYWwgbGluayB3aWRnZXQgd2hpY2ggcmVuZGVycyBhbiBleHRlcm5hbCBPYnNpZGlhbiBsaW5rLiAqLwogICAgICBmdW5jdGlvbiBleHRlcm5hbExpbmsodXJsLCBkaXNwbGF5KSB7CiAgICAgICAgICByZXR1cm4gbmV3IEV4dGVybmFsTGlua1dpZGdldCh1cmwsIGRpc3BsYXkpOwogICAgICB9CiAgICAgIFdpZGdldHMuZXh0ZXJuYWxMaW5rID0gZXh0ZXJuYWxMaW5rOwogICAgICAvKiogQ2hlY2tzIGlmIHRoZSBnaXZlbiB3aWRnZXQgaXMgYSBsaXN0IHBhaXIgd2lkZ2V0LiAqLwogICAgICBmdW5jdGlvbiBpc0xpc3RQYWlyKHdpZGdldCkgewogICAgICAgICAgcmV0dXJuIHdpZGdldC4kd2lkZ2V0ID09PSAiZGF0YXZpZXc6bGlzdC1wYWlyIjsKICAgICAgfQogICAgICBXaWRnZXRzLmlzTGlzdFBhaXIgPSBpc0xpc3RQYWlyOwogICAgICBmdW5jdGlvbiBpc0V4dGVybmFsTGluayh3aWRnZXQpIHsKICAgICAgICAgIHJldHVybiB3aWRnZXQuJHdpZGdldCA9PT0gImRhdGF2aWV3OmV4dGVybmFsLWxpbmsiOwogICAgICB9CiAgICAgIFdpZGdldHMuaXNFeHRlcm5hbExpbmsgPSBpc0V4dGVybmFsTGluazsKICAgICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHdpZGdldCBpcyBhbnkga2luZCBvZiBidWlsdC1pbiB3aWRnZXQgd2l0aCBzcGVjaWFsIHJlbmRlcmluZyBoYW5kbGluZy4gKi8KICAgICAgZnVuY3Rpb24gaXNCdWlsdGluKHdpZGdldCkgewogICAgICAgICAgcmV0dXJuIGlzTGlzdFBhaXIod2lkZ2V0KSB8fCBpc0V4dGVybmFsTGluayh3aWRnZXQpOwogICAgICB9CiAgICAgIFdpZGdldHMuaXNCdWlsdGluID0gaXNCdWlsdGluOwogIH0pKFdpZGdldHMgfHwgKFdpZGdldHMgPSB7fSkpOwoKICAvKiogVXRpbGl0eSBtZXRob2RzIGZvciBjcmVhdGluZyAmIGNvbXBhcmluZyBmaWVsZHMuICovCiAgdmFyIEZpZWxkczsKICAoZnVuY3Rpb24gKEZpZWxkcykgewogICAgICBmdW5jdGlvbiB2YXJpYWJsZShuYW1lKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAidmFyaWFibGUiLCBuYW1lIH07CiAgICAgIH0KICAgICAgRmllbGRzLnZhcmlhYmxlID0gdmFyaWFibGU7CiAgICAgIGZ1bmN0aW9uIGxpdGVyYWwodmFsdWUpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJsaXRlcmFsIiwgdmFsdWUgfTsKICAgICAgfQogICAgICBGaWVsZHMubGl0ZXJhbCA9IGxpdGVyYWw7CiAgICAgIGZ1bmN0aW9uIGJpbmFyeU9wKGxlZnQsIG9wLCByaWdodCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3AsIHJpZ2h0IH07CiAgICAgIH0KICAgICAgRmllbGRzLmJpbmFyeU9wID0gYmluYXJ5T3A7CiAgICAgIGZ1bmN0aW9uIGluZGV4KG9iaiwgaW5kZXgpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJpbmRleCIsIG9iamVjdDogb2JqLCBpbmRleCB9OwogICAgICB9CiAgICAgIEZpZWxkcy5pbmRleCA9IGluZGV4OwogICAgICAvKiogQ29udmVydHMgYSBzdHJpbmcgaW4gZG90LW5vdGF0aW9uLWZvcm1hdCBpbnRvIGEgdmFyaWFibGUgd2hpY2ggaW5kZXhlcy4gKi8KICAgICAgZnVuY3Rpb24gaW5kZXhWYXJpYWJsZShuYW1lKSB7CiAgICAgICAgICBsZXQgcGFydHMgPSBuYW1lLnNwbGl0KCIuIik7CiAgICAgICAgICBsZXQgcmVzdWx0ID0gRmllbGRzLnZhcmlhYmxlKHBhcnRzWzBdKTsKICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCBwYXJ0cy5sZW5ndGg7IGluZGV4KyspIHsKICAgICAgICAgICAgICByZXN1bHQgPSBGaWVsZHMuaW5kZXgocmVzdWx0LCBGaWVsZHMubGl0ZXJhbChwYXJ0c1tpbmRleF0pKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgRmllbGRzLmluZGV4VmFyaWFibGUgPSBpbmRleFZhcmlhYmxlOwogICAgICBmdW5jdGlvbiBsYW1iZGEoYXJncywgdmFsdWUpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJsYW1iZGEiLCBhcmd1bWVudHM6IGFyZ3MsIHZhbHVlIH07CiAgICAgIH0KICAgICAgRmllbGRzLmxhbWJkYSA9IGxhbWJkYTsKICAgICAgZnVuY3Rpb24gZnVuYyhmdW5jLCBhcmdzKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiZnVuY3Rpb24iLCBmdW5jLCBhcmd1bWVudHM6IGFyZ3MgfTsKICAgICAgfQogICAgICBGaWVsZHMuZnVuYyA9IGZ1bmM7CiAgICAgIGZ1bmN0aW9uIGxpc3QodmFsdWVzKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAibGlzdCIsIHZhbHVlcyB9OwogICAgICB9CiAgICAgIEZpZWxkcy5saXN0ID0gbGlzdDsKICAgICAgZnVuY3Rpb24gb2JqZWN0KHZhbHVlcykgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogIm9iamVjdCIsIHZhbHVlcyB9OwogICAgICB9CiAgICAgIEZpZWxkcy5vYmplY3QgPSBvYmplY3Q7CiAgICAgIGZ1bmN0aW9uIG5lZ2F0ZShjaGlsZCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogIm5lZ2F0ZWQiLCBjaGlsZCB9OwogICAgICB9CiAgICAgIEZpZWxkcy5uZWdhdGUgPSBuZWdhdGU7CiAgICAgIGZ1bmN0aW9uIGlzQ29tcGFyZU9wKG9wKSB7CiAgICAgICAgICByZXR1cm4gb3AgPT0gIjw9IiB8fCBvcCA9PSAiPCIgfHwgb3AgPT0gIj4iIHx8IG9wID09ICI+PSIgfHwgb3AgPT0gIiE9IiB8fCBvcCA9PSAiPSI7CiAgICAgIH0KICAgICAgRmllbGRzLmlzQ29tcGFyZU9wID0gaXNDb21wYXJlT3A7CiAgICAgIEZpZWxkcy5OVUxMID0gRmllbGRzLmxpdGVyYWwobnVsbCk7CiAgfSkoRmllbGRzIHx8IChGaWVsZHMgPSB7fSkpOwoKICAvKiogQVNUIGltcGxlbWVudGF0aW9uIGZvciBxdWVyaWVzIG92ZXIgZGF0YSBzb3VyY2VzLiAqLwogIC8qKiBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZyBzb3VyY2VzLiAqLwogIHZhciBTb3VyY2VzOwogIChmdW5jdGlvbiAoU291cmNlcykgewogICAgICAvKiogQ3JlYXRlIGEgc291cmNlIHdoaWNoIHNlYXJjaGVzIGZyb20gYSB0YWcuICovCiAgICAgIGZ1bmN0aW9uIHRhZyh0YWcpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJ0YWciLCB0YWcgfTsKICAgICAgfQogICAgICBTb3VyY2VzLnRhZyA9IHRhZzsKICAgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBmZXRjaGVzIGZyb20gYSBDU1YgZmlsZS4gKi8KICAgICAgZnVuY3Rpb24gY3N2KHBhdGgpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJjc3YiLCBwYXRoIH07CiAgICAgIH0KICAgICAgU291cmNlcy5jc3YgPSBjc3Y7CiAgICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggc2VhcmNoZXMgZm9yIGZpbGVzIHVuZGVyIGEgZm9sZGVyIHByZWZpeC4gKi8KICAgICAgZnVuY3Rpb24gZm9sZGVyKHByZWZpeCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImZvbGRlciIsIGZvbGRlcjogcHJlZml4IH07CiAgICAgIH0KICAgICAgU291cmNlcy5mb2xkZXIgPSBmb2xkZXI7CiAgICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggc2VhcmNoZXMgZm9yIGZpbGVzIHdoaWNoIGxpbmsgdG8vZnJvbSBhIGdpdmVuIGZpbGUuICovCiAgICAgIGZ1bmN0aW9uIGxpbmsoZmlsZSwgaW5jb21pbmcpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJsaW5rIiwgZmlsZSwgZGlyZWN0aW9uOiBpbmNvbWluZyA/ICJpbmNvbWluZyIgOiAib3V0Z29pbmciIH07CiAgICAgIH0KICAgICAgU291cmNlcy5saW5rID0gbGluazsKICAgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBqb2lucyB0d28gc291cmNlcyBieSBhIGxvZ2ljYWwgb3BlcmF0b3IgKGFuZC9vcikuICovCiAgICAgIGZ1bmN0aW9uIGJpbmFyeU9wKGxlZnQsIG9wLCByaWdodCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3AsIHJpZ2h0IH07CiAgICAgIH0KICAgICAgU291cmNlcy5iaW5hcnlPcCA9IGJpbmFyeU9wOwogICAgICAvKiogQ3JlYXRlIGEgc291cmNlIHdoaWNoIHRha2VzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdHdvIHNvdXJjZXMuICovCiAgICAgIGZ1bmN0aW9uIGFuZChsZWZ0LCByaWdodCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3A6ICImIiwgcmlnaHQgfTsKICAgICAgfQogICAgICBTb3VyY2VzLmFuZCA9IGFuZDsKICAgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCB0YWtlcyB0aGUgdW5pb24gb2YgdHdvIHNvdXJjZXMuICovCiAgICAgIGZ1bmN0aW9uIG9yKGxlZnQsIHJpZ2h0KSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiYmluYXJ5b3AiLCBsZWZ0LCBvcDogInwiLCByaWdodCB9OwogICAgICB9CiAgICAgIFNvdXJjZXMub3IgPSBvcjsKICAgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBuZWdhdGVzIHRoZSB1bmRlcmx5aW5nIHNvdXJjZS4gKi8KICAgICAgZnVuY3Rpb24gbmVnYXRlKGNoaWxkKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAibmVnYXRlIiwgY2hpbGQgfTsKICAgICAgfQogICAgICBTb3VyY2VzLm5lZ2F0ZSA9IG5lZ2F0ZTsKICAgICAgZnVuY3Rpb24gZW1wdHkoKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiZW1wdHkiIH07CiAgICAgIH0KICAgICAgU291cmNlcy5lbXB0eSA9IGVtcHR5OwogIH0pKFNvdXJjZXMgfHwgKFNvdXJjZXMgPSB7fSkpOwoKICAvKiogRW1vamkgcmVnZXggd2l0aG91dCBhbnkgYWRkaXRpb25hbCBmbGFncy4gKi8KICBjb25zdCBFTU9KSV9SRUdFWCA9IG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCAiIik7CiAgLyoqIFByb3ZpZGVzIGEgbG9va3VwIHRhYmxlIGZvciB1bml0IGR1cmF0aW9ucyBvZiB0aGUgZ2l2ZW4gdHlwZS4gKi8KICBjb25zdCBEVVJBVElPTl9UWVBFUyA9IHsKICAgICAgeWVhcjogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLAogICAgICB5ZWFyczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLAogICAgICB5cjogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLAogICAgICB5cnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSwKICAgICAgbW9udGg6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksCiAgICAgIG1vbnRoczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSwKICAgICAgbW86IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksCiAgICAgIG1vczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSwKICAgICAgd2VlazogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLAogICAgICB3ZWVrczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLAogICAgICB3azogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLAogICAgICB3a3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSwKICAgICAgdzogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLAogICAgICBkYXk6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLAogICAgICBkYXlzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSwKICAgICAgZDogRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEgfSksCiAgICAgIGhvdXI6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwKICAgICAgaG91cnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwKICAgICAgaHI6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwKICAgICAgaHJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksCiAgICAgIGg6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwKICAgICAgbWludXRlOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSwKICAgICAgbWludXRlczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksCiAgICAgIG1pbjogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksCiAgICAgIG1pbnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLAogICAgICBtOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSwKICAgICAgc2Vjb25kOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSwKICAgICAgc2Vjb25kczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksCiAgICAgIHNlYzogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksCiAgICAgIHNlY3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLAogICAgICBzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSwKICB9OwogIC8qKiBTaG9ydGhhbmQgZm9yIGNvbW1vbiBkYXRlcyAocmVsYXRpdmUgdG8gcmlnaHQgbm93KS4gKi8KICBjb25zdCBEQVRFX1NIT1JUSEFORFMgPSB7CiAgICAgIG5vdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKSwKICAgICAgdG9kYXk6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZigiZGF5IiksCiAgICAgIHllc3RlcmRheTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKQogICAgICAgICAgLnN0YXJ0T2YoImRheSIpCiAgICAgICAgICAubWludXMoRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEgfSkpLAogICAgICB0b21vcnJvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKQogICAgICAgICAgLnN0YXJ0T2YoImRheSIpCiAgICAgICAgICAucGx1cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSksCiAgICAgIHNvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJ3ZWVrIiksCiAgICAgICJzdGFydC1vZi13ZWVrIjogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJ3ZWVrIiksCiAgICAgIGVvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZigid2VlayIpLAogICAgICAiZW5kLW9mLXdlZWsiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKCJ3ZWVrIiksCiAgICAgIHNveTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJ5ZWFyIiksCiAgICAgICJzdGFydC1vZi15ZWFyIjogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJ5ZWFyIiksCiAgICAgIGVveTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZigieWVhciIpLAogICAgICAiZW5kLW9mLXllYXIiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKCJ5ZWFyIiksCiAgICAgIHNvbTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJtb250aCIpLAogICAgICAic3RhcnQtb2YtbW9udGgiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoIm1vbnRoIiksCiAgICAgIGVvbTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZigibW9udGgiKSwKICAgICAgImVuZC1vZi1tb250aCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoIm1vbnRoIiksCiAgfTsKICAvKioKICAgKiBLZXl3b3JkcyB3aGljaCBjYW5ub3QgYmUgdXNlZCBhcyB2YXJpYWJsZXMgZGlyZWN0bHkuIFVzZSBgcm93Ljx0aGluZz5gIGlmIGl0IGlzIGEgdmFyaWFibGUgeW91IGhhdmUgZGVmaW5lZCBhbmQgd2FudAogICAqIHRvIGFjY2Vzcy4KICAgKi8KICBjb25zdCBLRVlXT1JEUyA9IFsiRlJPTSIsICJXSEVSRSIsICJMSU1JVCIsICJHUk9VUCIsICJGTEFUVEVOIl07CiAgLy8vLy8vLy8vLy8vLy8vCiAgLy8gVXRpbGl0aWVzIC8vCiAgLy8vLy8vLy8vLy8vLy8vCiAgLyoqIFNwbGl0IG9uIHVuZXNjYXBlZCBwaXBlcyBpbiBhbiBpbm5lciBsaW5rLiAqLwogIGZ1bmN0aW9uIHNwbGl0T25VbmVzY2FwZWRQaXBlKGxpbmspIHsKICAgICAgbGV0IHBpcGUgPSAtMTsKICAgICAgd2hpbGUgKChwaXBlID0gbGluay5pbmRleE9mKCJ8IiwgcGlwZSArIDEpKSA+PSAwKSB7CiAgICAgICAgICBpZiAocGlwZSA+IDAgJiYgbGlua1twaXBlIC0gMV0gPT0gIlxcIikKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIHJldHVybiBbbGluay5zdWJzdHJpbmcoMCwgcGlwZSkucmVwbGFjZSgvXFxcfC9nLCAifCIpLCBsaW5rLnN1YnN0cmluZyhwaXBlICsgMSldOwogICAgICB9CiAgICAgIHJldHVybiBbbGluay5yZXBsYWNlKC9cXFx8L2csICJ8IiksIHVuZGVmaW5lZF07CiAgfQogIC8qKiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBpbnNpZGUgb2YgYSBsaW5rIHRvIHB1bGwgb3V0IGRpc3BsYXkgbmFtZSwgc3VicGF0aCwgZXRjLiAqLwogIGZ1bmN0aW9uIHBhcnNlSW5uZXJMaW5rKHJhd2xpbmspIHsKICAgICAgbGV0IFtsaW5rLCBkaXNwbGF5XSA9IHNwbGl0T25VbmVzY2FwZWRQaXBlKHJhd2xpbmspOwogICAgICByZXR1cm4gTGluay5pbmZlcihsaW5rLCBmYWxzZSwgZGlzcGxheSk7CiAgfQogIC8qKiBDcmVhdGUgYSBsZWZ0LWFzc29jaWF0aXZlIGJpbmFyeSBwYXJzZXIgd2hpY2ggcGFyc2VzIHRoZSBnaXZlbiBzdWItZWxlbWVudCBhbmQgc2VwYXJhdG9yLiBIYW5kbGVzIHdoaXRlc3BhY2UuICovCiAgZnVuY3Rpb24gY3JlYXRlQmluYXJ5UGFyc2VyKGNoaWxkLCBzZXAsIGNvbWJpbmUpIHsKICAgICAgcmV0dXJuIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAoY2hpbGQsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXEocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIHNlcCwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIGNoaWxkKS5tYW55KCksIChmaXJzdCwgcmVzdCkgPT4gewogICAgICAgICAgaWYgKHJlc3QubGVuZ3RoID09IDApCiAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0OwogICAgICAgICAgbGV0IG5vZGUgPSBjb21iaW5lKGZpcnN0LCByZXN0WzBdWzFdLCByZXN0WzBdWzNdKTsKICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCByZXN0Lmxlbmd0aDsgaW5kZXgrKykgewogICAgICAgICAgICAgIG5vZGUgPSBjb21iaW5lKG5vZGUsIHJlc3RbaW5kZXhdWzFdLCByZXN0W2luZGV4XVszXSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIGNoYWluT3B0KGJhc2UsIC4uLmZ1bmNzKSB7CiAgICAgIHJldHVybiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuY3VzdG9tKChzdWNjZXNzLCBmYWlsdXJlKSA9PiB7CiAgICAgICAgICByZXR1cm4gKGlucHV0LCBpKSA9PiB7CiAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGJhc2UuXyhpbnB1dCwgaSk7CiAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuc3RhdHVzKQogICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHsKICAgICAgICAgICAgICAgICAgbGV0IG5leHQgPSBmdW5jKHJlc3VsdC52YWx1ZSkuXyhpbnB1dCwgcmVzdWx0LmluZGV4KTsKICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0LnN0YXR1cykKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9OwogICAgICB9KTsKICB9CiAgY29uc3QgRVhQUkVTU0lPTiA9IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5jcmVhdGVMYW5ndWFnZSh7CiAgICAgIC8vIEEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyOyB0aGUgZGVjaW1hbCBwb2ludCBpcyBvcHRpb25hbC4KICAgICAgbnVtYmVyOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoLy0/WzAtOV0rKFwuWzAtOV0rKT8vKQogICAgICAgICAgLm1hcChzdHIgPT4gTnVtYmVyLnBhcnNlRmxvYXQoc3RyKSkKICAgICAgICAgIC5kZXNjKCJudW1iZXIiKSwKICAgICAgLy8gQSBxdW90ZS1zdXJyb3VuZGVkIHN0cmluZyB3aGljaCBzdXBwb3J0cyBlc2NhcGUgY2hhcmFjdGVycyAoJ1wnKS4KICAgICAgc3RyaW5nOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoJyInKQogICAgICAgICAgLnRoZW4ocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChxLmVzY2FwZUNoYXJhY3RlciwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm5vbmVPZignIlxcJykpCiAgICAgICAgICAuYXRMZWFzdCgwKQogICAgICAgICAgLm1hcChjaGFycyA9PiBjaGFycy5qb2luKCIiKSkpCiAgICAgICAgICAuc2tpcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCciJykpCiAgICAgICAgICAuZGVzYygic3RyaW5nIiksCiAgICAgIGVzY2FwZUNoYXJhY3RlcjogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJcXCIpCiAgICAgICAgICAudGhlbihwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYW55KQogICAgICAgICAgLm1hcChlc2NhcGVkID0+IHsKICAgICAgICAgIC8vIElmIHdlIGFyZSBlc2NhcGluZyBhIGJhY2tzbGFzaCBvciBhIHF1b3RlLCBwYXNzIGluIG9uIGluIGVzY2FwZWQgZm9ybQogICAgICAgICAgaWYgKGVzY2FwZWQgPT09ICciJykKICAgICAgICAgICAgICByZXR1cm4gJyInOwogICAgICAgICAgaWYgKGVzY2FwZWQgPT09ICJcXCIpCiAgICAgICAgICAgICAgcmV0dXJuICJcXCI7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgcmV0dXJuICJcXCIgKyBlc2NhcGVkOwogICAgICB9KSwKICAgICAgLy8gQSBib29sZWFuIHRydWUvZmFsc2UgdmFsdWUuCiAgICAgIGJvb2w6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvdHJ1ZXxmYWxzZXxUcnVlfEZhbHNlLykKICAgICAgICAgIC5tYXAoc3RyID0+IHN0ci50b0xvd2VyQ2FzZSgpID09ICJ0cnVlIikKICAgICAgICAgIC5kZXNjKCJib29sZWFuICgndHJ1ZScgb3IgJ2ZhbHNlJykiKSwKICAgICAgLy8gQSB0YWcgb2YgdGhlIGZvcm0gJyNzdHVmZi9oZWxsby10aGVyZScuCiAgICAgIHRhZzogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiMiKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9bXlx1MjAwMC1cdTIwNkZcdTJFMDAtXHUyRTdGJyEiIyQlJigpKissLjo7PD0+P0BeYHt8fX5cW1xdXFxcc10vKS5kZXNjKCJ0ZXh0IikpLm1hbnkoKSwgKHN0YXJ0LCByZXN0KSA9PiBzdGFydCArIHJlc3Quam9pbigiIikpLmRlc2MoInRhZyAoJyNoZWxsby9zdHVmZicpIiksCiAgICAgIC8vIEEgdmFyaWFibGUgaWRlbnRpZmllciwgd2hpY2ggaXMgYWxwaGFudW1lcmljIGFuZCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IuLi4gZW1vamkuCiAgICAgIGlkZW50aWZpZXI6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1xwe0xldHRlcn0vdSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoInRleHQiKSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvWzAtOVxwe0xldHRlcn1fLV0vdSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoInRleHQiKSkubWFueSgpLCAoZmlyc3QsIHJlc3QpID0+IGZpcnN0ICsgcmVzdC5qb2luKCIiKSkuZGVzYygidmFyaWFibGUgaWRlbnRpZmllciIpLAogICAgICAvLyBBbiBPYnNpZGlhbiBsaW5rIG9mIHRoZSBmb3JtIFtbPGxpbms+XV0uCiAgICAgIGxpbms6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXFtcWyhbXlxbXF1dKj8pXF1cXS91LCAxKQogICAgICAgICAgLm1hcChsaW5rSW5uZXIgPT4gcGFyc2VJbm5lckxpbmsobGlua0lubmVyKSkKICAgICAgICAgIC5kZXNjKCJmaWxlIGxpbmsiKSwKICAgICAgLy8gQW4gZW1iZWRkYWJsZSBsaW5rIHdoaWNoIGNhbiBzdGFydCB3aXRoICchJy4gVGhpcyBvdmVybGFwcyB3aXRoIHRoZSBub3JtYWwgbmVnYXRpb24gb3BlcmF0b3IsIHNvIGl0IGlzIG9ubHkKICAgICAgLy8gcHJvdmlkZWQgZm9yIG1ldGFkYXRhIHBhcnNpbmcuCiAgICAgIGVtYmVkTGluazogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiEiKS5hdE1vc3QoMSksIHEubGluaywgKHAsIGwpID0+IHsKICAgICAgICAgIGlmIChwLmxlbmd0aCA+IDApCiAgICAgICAgICAgICAgbC5lbWJlZCA9IHRydWU7CiAgICAgICAgICByZXR1cm4gbDsKICAgICAgfSkuZGVzYygiZmlsZSBsaW5rIiksCiAgICAgIC8vIEJpbmFyeSBwbHVzIG9yIG1pbnVzIG9wZXJhdG9yLgogICAgICBiaW5hcnlQbHVzTWludXM6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXCt8LS8pCiAgICAgICAgICAubWFwKHN0ciA9PiBzdHIpCiAgICAgICAgICAuZGVzYygiJysnIG9yICctJyIpLAogICAgICAvLyBCaW5hcnkgdGltZXMgb3IgZGl2aWRlIG9wZXJhdG9yLgogICAgICBiaW5hcnlNdWxEaXY6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXCp8XC98JS8pCiAgICAgICAgICAubWFwKHN0ciA9PiBzdHIpCiAgICAgICAgICAuZGVzYygiJyonIG9yICcvJyBvciAnJSciKSwKICAgICAgLy8gQmluYXJ5IGNvbXBhcmlzb24gb3BlcmF0b3IuCiAgICAgIGJpbmFyeUNvbXBhcmVPcDogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC8+PXw8PXwhPXw+fDx8PS8pCiAgICAgICAgICAubWFwKHN0ciA9PiBzdHIpCiAgICAgICAgICAuZGVzYygiJz49JyBvciAnPD0nIG9yICchPScgb3IgJz0nIG9yICc+JyBvciAnPCciKSwKICAgICAgLy8gQmluYXJ5IGJvb2xlYW4gY29tYmluYXRpb24gb3BlcmF0b3IuCiAgICAgIGJpbmFyeUJvb2xlYW5PcDogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9hbmR8b3J8JnxcfC9pKQogICAgICAgICAgLm1hcChzdHIgPT4gewogICAgICAgICAgaWYgKHN0ci50b0xvd2VyQ2FzZSgpID09ICJhbmQiKQogICAgICAgICAgICAgIHJldHVybiAiJiI7CiAgICAgICAgICBlbHNlIGlmIChzdHIudG9Mb3dlckNhc2UoKSA9PSAib3IiKQogICAgICAgICAgICAgIHJldHVybiAifCI7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgcmV0dXJuIHN0cjsKICAgICAgfSkKICAgICAgICAgIC5kZXNjKCInYW5kJyBvciAnb3InIiksCiAgICAgIC8vIEEgZGF0ZSB3aGljaCBjYW4gYmUgWVlZWS1NTVstRERUSEg6bW06c3NdLgogICAgICByb290RGF0ZTogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1xkezR9LyksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIi0iKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXGR7Mn0vKSwgKHllYXIsIF8sIG1vbnRoKSA9PiB7CiAgICAgICAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IE51bWJlci5wYXJzZUludCh5ZWFyKSwgbW9udGg6IE51bWJlci5wYXJzZUludChtb250aCkgfSk7CiAgICAgIH0pLmRlc2MoImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXSIpLAogICAgICBkYXRlU2hvcnRoYW5kOiBfID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQoLi4uT2JqZWN0LmtleXMoREFURV9TSE9SVEhBTkRTKQogICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpCiAgICAgICAgICAubWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcpKSwKICAgICAgZGF0ZTogcSA9PiBjaGFpbk9wdChxLnJvb3REYXRlLCAoeW0pID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiLSIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgZGF5KSA9PiB5bS5zZXQoeyBkYXk6IE51bWJlci5wYXJzZUludChkYXkpIH0pKSwgKHltZCkgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJUIiksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1xkezJ9LyksIChfLCBob3VyKSA9PiB5bWQuc2V0KHsgaG91cjogTnVtYmVyLnBhcnNlSW50KGhvdXIpIH0pKSwgKHltZGgpID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiOiIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgbWludXRlKSA9PiB5bWRoLnNldCh7IG1pbnV0ZTogTnVtYmVyLnBhcnNlSW50KG1pbnV0ZSkgfSkpLCAoeW1kaG0pID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiOiIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgc2Vjb25kKSA9PiB5bWRobS5zZXQoeyBzZWNvbmQ6IE51bWJlci5wYXJzZUludChzZWNvbmQpIH0pKSwgKHltZGhtcykgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIi4iKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXGR7M30vKSwgKF8sIG1pbGxpc2Vjb25kKSA9PiB5bWRobXMuc2V0KHsgbWlsbGlzZWNvbmQ6IE51bWJlci5wYXJzZUludChtaWxsaXNlY29uZCkgfSkpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3VjY2VlZCh5bWRobXMpIC8vIHBhc3MKICAgICAgKSwgKGR0KSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKyIpLm9yKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIi0iKSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1xkezEsMn0oOlxkezJ9KT8vKSwgKHBtLCBocikgPT4gZHQuc2V0Wm9uZSgiVVRDIiArIHBtICsgaHIsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiWiIpLCAoKSA9PiBkdC5zZXRab25lKCJ1dGMiLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIlsiKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvWzAtOUEtWmEteistXC9dKy91KSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiXSIpLCAoX2EsIHpvbmUsIF9iKSA9PiBkdC5zZXRab25lKHpvbmUsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KSkpKQogICAgICAgICAgLmFzc2VydCgoZHQpID0+IGR0LmlzVmFsaWQsICJ2YWxpZCBkYXRlIikKICAgICAgICAgIC5kZXNjKCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU10iKSwKICAgICAgLy8gQSBkYXRlLCBwbHVzIHZhcmlvdXMgc2hvcnRoYW5kIHRpbWVzIG9mIGRheSBpdCBjb3VsZCBiZS4KICAgICAgZGF0ZVBsdXM6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChxLmRhdGVTaG9ydGhhbmQubWFwKGQgPT4gREFURV9TSE9SVEhBTkRTW2RdKCkpLCBxLmRhdGUpLmRlc2MoImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXSBvciBpbiBzaG9ydGhhbmQiKSwKICAgICAgLy8gQSBkdXJhdGlvbiBvZiB0aW1lLgogICAgICBkdXJhdGlvblR5cGU6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdCguLi5PYmplY3Qua2V5cyhEVVJBVElPTl9UWVBFUykKICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKQogICAgICAgICAgLm1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKSksCiAgICAgIGR1cmF0aW9uOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocS5udW1iZXIsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmR1cmF0aW9uVHlwZSwgKGNvdW50LCBfLCB0KSA9PiBEVVJBVElPTl9UWVBFU1t0XS5tYXBVbml0cyh4ID0+IHggKiBjb3VudCkpCiAgICAgICAgICAuc2VwQnkxKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKS5vcihwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSkpCiAgICAgICAgICAubWFwKGR1cmF0aW9ucyA9PiBkdXJhdGlvbnMucmVkdWNlKChwLCBjKSA9PiBwLnBsdXMoYykpKQogICAgICAgICAgLmRlc2MoImR1cmF0aW9uIGxpa2UgNGhyMm1pbiIpLAogICAgICAvLyBBIHJhdyBudWxsIHZhbHVlLgogICAgICByYXdOdWxsOiBfID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIm51bGwiKSwKICAgICAgLy8gU291cmNlIHBhcnNpbmcuCiAgICAgIHRhZ1NvdXJjZTogcSA9PiBxLnRhZy5tYXAodGFnID0+IFNvdXJjZXMudGFnKHRhZykpLAogICAgICBjc3ZTb3VyY2U6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJjc3YoIikuc2tpcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSksIHEuc3RyaW5nLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCIpIiksIChfMSwgcGF0aCwgXzIpID0+IFNvdXJjZXMuY3N2KHBhdGgpKSwKICAgICAgbGlua0luY29taW5nU291cmNlOiBxID0+IHEubGluay5tYXAobGluayA9PiBTb3VyY2VzLmxpbmsobGluay5wYXRoLCB0cnVlKSksCiAgICAgIGxpbmtPdXRnb2luZ1NvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIm91dGdvaW5nKCIpLnNraXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UpLCBxLmxpbmssIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIikiKSwgKF8xLCBsaW5rLCBfMikgPT4gU291cmNlcy5saW5rKGxpbmsucGF0aCwgZmFsc2UpKSwKICAgICAgZm9sZGVyU291cmNlOiBxID0+IHEuc3RyaW5nLm1hcChzdHIgPT4gU291cmNlcy5mb2xkZXIoc3RyKSksCiAgICAgIHBhcmVuc1NvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIigiKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIHEuc291cmNlLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLCAoXzEsIF8yLCBmaWVsZCwgXzMsIF80KSA9PiBmaWVsZCksCiAgICAgIG5lZ2F0ZVNvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiLSIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCIhIikpLCBxLmF0b21Tb3VyY2UsIChfLCBzb3VyY2UpID0+IFNvdXJjZXMubmVnYXRlKHNvdXJjZSkpLAogICAgICBhdG9tU291cmNlOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocS5wYXJlbnNTb3VyY2UsIHEubmVnYXRlU291cmNlLCBxLmxpbmtPdXRnb2luZ1NvdXJjZSwgcS5saW5rSW5jb21pbmdTb3VyY2UsIHEuZm9sZGVyU291cmNlLCBxLnRhZ1NvdXJjZSwgcS5jc3ZTb3VyY2UpLAogICAgICBiaW5hcnlPcFNvdXJjZTogcSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5hdG9tU291cmNlLCBxLmJpbmFyeUJvb2xlYW5PcC5tYXAocyA9PiBzKSwgU291cmNlcy5iaW5hcnlPcCksCiAgICAgIHNvdXJjZTogcSA9PiBxLmJpbmFyeU9wU291cmNlLAogICAgICAvLyBGaWVsZCBwYXJzaW5nLgogICAgICB2YXJpYWJsZUZpZWxkOiBxID0+IHEuaWRlbnRpZmllcgogICAgICAgICAgLmNoYWluKHIgPT4gewogICAgICAgICAgaWYgKEtFWVdPUkRTLmluY2x1ZGVzKHIudG9VcHBlckNhc2UoKSkpIHsKICAgICAgICAgICAgICByZXR1cm4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmZhaWwoIlZhcmlhYmxlIGZpZWxkcyBjYW5ub3QgYmUgYSBrZXl3b3JkICgiICsgS0VZV09SRFMuam9pbigiIG9yICIpICsgIikiKTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIHJldHVybiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3VjY2VlZChGaWVsZHMudmFyaWFibGUocikpOwogICAgICAgICAgfQogICAgICB9KQogICAgICAgICAgLmRlc2MoInZhcmlhYmxlIiksCiAgICAgIG51bWJlckZpZWxkOiBxID0+IHEubnVtYmVyLm1hcCh2YWwgPT4gRmllbGRzLmxpdGVyYWwodmFsKSkuZGVzYygibnVtYmVyIiksCiAgICAgIHN0cmluZ0ZpZWxkOiBxID0+IHEuc3RyaW5nLm1hcCh2YWwgPT4gRmllbGRzLmxpdGVyYWwodmFsKSkuZGVzYygic3RyaW5nIiksCiAgICAgIGJvb2xGaWVsZDogcSA9PiBxLmJvb2wubWFwKHZhbCA9PiBGaWVsZHMubGl0ZXJhbCh2YWwpKS5kZXNjKCJib29sZWFuIiksCiAgICAgIGRhdGVGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoImRhdGUoIiksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmRhdGVQbHVzLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLCAocHJlZml4LCBfMSwgZGF0ZSwgXzIsIHBvc3RmaXgpID0+IEZpZWxkcy5saXRlcmFsKGRhdGUpKS5kZXNjKCJkYXRlIiksCiAgICAgIGR1cmF0aW9uRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJkdXIoIiksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmR1cmF0aW9uLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLCAocHJlZml4LCBfMSwgZHVyLCBfMiwgcG9zdGZpeCkgPT4gRmllbGRzLmxpdGVyYWwoZHVyKSkuZGVzYygiZHVyYXRpb24iKSwKICAgICAgbnVsbEZpZWxkOiBxID0+IHEucmF3TnVsbC5tYXAoXyA9PiBGaWVsZHMuTlVMTCksCiAgICAgIGxpbmtGaWVsZDogcSA9PiBxLmxpbmsubWFwKGYgPT4gRmllbGRzLmxpdGVyYWwoZikpLAogICAgICBsaXN0RmllbGQ6IHEgPT4gcS5maWVsZAogICAgICAgICAgLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkKICAgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIlsiKS5za2lwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UudGhlbihwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJdIikpKQogICAgICAgICAgLm1hcChsID0+IEZpZWxkcy5saXN0KGwpKQogICAgICAgICAgLmRlc2MoImxpc3QgKCdbMSwgMiwgM10nKSIpLAogICAgICBvYmplY3RGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHEuaWRlbnRpZmllci5vcihxLnN0cmluZyksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIjoiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcS5maWVsZCwgKG5hbWUsIF9zZXAsIHZhbHVlKSA9PiB7CiAgICAgICAgICByZXR1cm4geyBuYW1lLCB2YWx1ZSB9OwogICAgICB9KQogICAgICAgICAgLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkKICAgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoInsiKS5za2lwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UudGhlbihwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJ9IikpKQogICAgICAgICAgLm1hcCh2YWxzID0+IHsKICAgICAgICAgIGxldCByZXMgPSB7fTsKICAgICAgICAgIGZvciAobGV0IGVudHJ5IG9mIHZhbHMpCiAgICAgICAgICAgICAgcmVzW2VudHJ5Lm5hbWVdID0gZW50cnkudmFsdWU7CiAgICAgICAgICByZXR1cm4gRmllbGRzLm9iamVjdChyZXMpOwogICAgICB9KQogICAgICAgICAgLmRlc2MoIm9iamVjdCAoJ3sgYTogMSwgYjogMiB9JykiKSwKICAgICAgYXRvbUlubGluZUZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocS5kYXRlLCBxLmR1cmF0aW9uLm1hcChkID0+IG5vcm1hbGl6ZUR1cmF0aW9uKGQpKSwgcS5zdHJpbmcsIHEudGFnLCBxLmVtYmVkTGluaywgcS5ib29sLCBxLm51bWJlciwgcS5yYXdOdWxsKSwKICAgICAgaW5saW5lRmllbGRMaXN0OiBxID0+IHEuYXRvbUlubGluZUZpZWxkLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKS5sb29rYWhlYWQocS5hdG9tSW5saW5lRmllbGQpKSwKICAgICAgaW5saW5lRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHEuYXRvbUlubGluZUZpZWxkLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCIsIikudHJpbShwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSksIHEuaW5saW5lRmllbGRMaXN0LCAoZiwgX3MsIGwpID0+IFtmXS5jb25jYXQobCkpLCBxLmF0b21JbmxpbmVGaWVsZCksCiAgICAgIGF0b21GaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYWx0KAogICAgICAvLyBQbGFjZSBlbWJlZCBsaW5rcyBhYm92ZSBuZWdhdGVkIGZpZWxkcyBhcyB0aGV5IGFyZSB0aGUgc3BlY2lhbCBwYXJzZXIgY2FzZSAnIVtbdGhpbmddXScgYW5kIGFyZSBnZW5lcmFsbHkgdW5hbWJpZ2lvdXMuCiAgICAgIHEuZW1iZWRMaW5rLm1hcChsID0+IEZpZWxkcy5saXRlcmFsKGwpKSwgcS5uZWdhdGVkRmllbGQsIHEubGlua0ZpZWxkLCBxLmxpc3RGaWVsZCwgcS5vYmplY3RGaWVsZCwgcS5sYW1iZGFGaWVsZCwgcS5wYXJlbnNGaWVsZCwgcS5ib29sRmllbGQsIHEubnVtYmVyRmllbGQsIHEuc3RyaW5nRmllbGQsIHEuZGF0ZUZpZWxkLCBxLmR1cmF0aW9uRmllbGQsIHEubnVsbEZpZWxkLCBxLnZhcmlhYmxlRmllbGQpLAogICAgICBpbmRleEZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocS5hdG9tRmllbGQsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocS5kb3RQb3N0Zml4LCBxLmluZGV4UG9zdGZpeCwgcS5mdW5jdGlvblBvc3RmaXgpLm1hbnkoKSwgKG9iaiwgcG9zdGZpeGVzKSA9PiB7CiAgICAgICAgICBsZXQgcmVzdWx0ID0gb2JqOwogICAgICAgICAgZm9yIChsZXQgcG9zdCBvZiBwb3N0Zml4ZXMpIHsKICAgICAgICAgICAgICBzd2l0Y2ggKHBvc3QudHlwZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJkb3QiOgogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRmllbGRzLmluZGV4KHJlc3VsdCwgRmllbGRzLmxpdGVyYWwocG9zdC5maWVsZCkpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImluZGV4IjoKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEZpZWxkcy5pbmRleChyZXN1bHQsIHBvc3QuZmllbGQpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEZpZWxkcy5mdW5jKHJlc3VsdCwgcG9zdC5maWVsZHMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfSksCiAgICAgIG5lZ2F0ZWRGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiEiKSwgcS5pbmRleEZpZWxkLCAoXywgZmllbGQpID0+IEZpZWxkcy5uZWdhdGUoZmllbGQpKS5kZXNjKCJuZWdhdGVkIGZpZWxkIiksCiAgICAgIHBhcmVuc0ZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKCIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5maWVsZCwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIikiKSwgKF8xLCBfMiwgZmllbGQsIF8zLCBfNCkgPT4gZmllbGQpLAogICAgICBsYW1iZGFGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHEuaWRlbnRpZmllcgogICAgICAgICAgLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkKICAgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIigiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UpKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiPT4iKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcS5maWVsZCwgKGlkZW50LCBfaWdub3JlLCB2YWx1ZSkgPT4gewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImxhbWJkYSIsIGFyZ3VtZW50czogaWRlbnQsIHZhbHVlIH07CiAgICAgIH0pLAogICAgICBkb3RQb3N0Zml4OiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiLiIpLCBxLmlkZW50aWZpZXIsIChfLCBmaWVsZCkgPT4gewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImRvdCIsIGZpZWxkOiBmaWVsZCB9OwogICAgICB9KSwKICAgICAgaW5kZXhQb3N0Zml4OiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiWyIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5maWVsZCwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIl0iKSwgKF8sIF8yLCBmaWVsZCwgXzMsIF80KSA9PiB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiaW5kZXgiLCBmaWVsZCB9OwogICAgICB9KSwKICAgICAgZnVuY3Rpb25Qb3N0Zml4OiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKCIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5maWVsZC5zZXBCeShwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCIsIikudHJpbShwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSkpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLCAoXywgXzEsIGZpZWxkcywgXzIsIF8zKSA9PiB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiZnVuY3Rpb24iLCBmaWVsZHMgfTsKICAgICAgfSksCiAgICAgIC8vIFRoZSBwcmVjZWRlbmNlIGhpZXJhcmNoeSBvZiBvcGVyYXRvcnMgLSBtdWx0aXBseS9kaXZpZGUsIGFkZC9zdWJ0cmFjdCwgY29tcGFyZSwgYW5kIHRoZW4gYm9vbGVhbiBvcGVyYXRpb25zLgogICAgICBiaW5hcnlNdWxEaXZGaWVsZDogcSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5pbmRleEZpZWxkLCBxLmJpbmFyeU11bERpdiwgRmllbGRzLmJpbmFyeU9wKSwKICAgICAgYmluYXJ5UGx1c01pbnVzRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5TXVsRGl2RmllbGQsIHEuYmluYXJ5UGx1c01pbnVzLCBGaWVsZHMuYmluYXJ5T3ApLAogICAgICBiaW5hcnlDb21wYXJlRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5UGx1c01pbnVzRmllbGQsIHEuYmluYXJ5Q29tcGFyZU9wLCBGaWVsZHMuYmluYXJ5T3ApLAogICAgICBiaW5hcnlCb29sZWFuRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5Q29tcGFyZUZpZWxkLCBxLmJpbmFyeUJvb2xlYW5PcCwgRmllbGRzLmJpbmFyeU9wKSwKICAgICAgYmluYXJ5T3BGaWVsZDogcSA9PiBxLmJpbmFyeUJvb2xlYW5GaWVsZCwKICAgICAgZmllbGQ6IHEgPT4gcS5iaW5hcnlPcEZpZWxkLAogIH0pOwoKICAvKiogUGFyc2UgaW5saW5lIGZpZWxkcyBhbmQgb3RoZXIgZW1iZWRkZWQgbWV0YWRhdGEgaW4gYSBsaW5lLiAqLwogIC8qKiBUaGUgd3JhcHBlciBjaGFyYWN0ZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIGFuIGlubGluZSBmaWVsZC4gKi8KICBjb25zdCBJTkxJTkVfRklFTERfV1JBUFBFUlMgPSBPYmplY3QuZnJlZXplKHsKICAgICAgIlsiOiAiXSIsCiAgICAgICIoIjogIikiLAogIH0pOwogIC8qKgogICAqIEZpbmQgYSBtYXRjaGluZyBjbG9zaW5nIGJyYWNrZXQgdGhhdCBvY2N1cnMgYXQgb3IgYWZ0ZXIgYHN0YXJ0YCwgcmVzcGVjdGluZyBuZXN0aW5nIGFuZCBlc2NhcGVzLiBJZiBmb3VuZCwKICAgKiByZXR1cm5zIHRoZSB2YWx1ZSBjb250YWluZWQgd2l0aGluIGFuZCB0aGUgc3RyaW5nIGluZGV4IGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZhbHVlLgogICAqLwogIGZ1bmN0aW9uIGZpbmRDbG9zaW5nKGxpbmUsIHN0YXJ0LCBvcGVuLCBjbG9zZSkgewogICAgICBsZXQgbmVzdGluZyA9IDA7CiAgICAgIGxldCBlc2NhcGVkID0gZmFsc2U7CiAgICAgIGZvciAobGV0IGluZGV4ID0gc3RhcnQ7IGluZGV4IDwgbGluZS5sZW5ndGg7IGluZGV4KyspIHsKICAgICAgICAgIGxldCBjaGFyID0gbGluZS5jaGFyQXQoaW5kZXgpOwogICAgICAgICAgLy8gQWxsb3dzIGZvciBkb3VibGUgZXNjYXBlcyBsaWtlICdcXCcgdG8gYmUgcmVuZGVyZWQgbm9ybWFsbHkuCiAgICAgICAgICBpZiAoY2hhciA9PSAiXFwiKSB7CiAgICAgICAgICAgICAgZXNjYXBlZCA9ICFlc2NhcGVkOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgLy8gSWYgZXNjYXBlZCwgaWdub3JlIHRoZSBuZXh0IGNoYXJhY3RlciBmb3IgY29tcHV0aW5nIG5lc3RpbmcsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBpdCBpcy4KICAgICAgICAgIGlmIChlc2NhcGVkKSB7CiAgICAgICAgICAgICAgZXNjYXBlZCA9IGZhbHNlOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNoYXIgPT0gb3BlbikKICAgICAgICAgICAgICBuZXN0aW5nKys7CiAgICAgICAgICBlbHNlIGlmIChjaGFyID09IGNsb3NlKQogICAgICAgICAgICAgIG5lc3RpbmctLTsKICAgICAgICAgIC8vIE9ubHkgb2NjdXJzIGlmIHdlIGFyZSBvbiBhIGNsb3NlIGNoYXJhY3RlciBhbmQgdHJoZXJlIGlzIG5vIG1vcmUgbmVzdGluZy4KICAgICAgICAgIGlmIChuZXN0aW5nIDwgMCkKICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbGluZS5zdWJzdHJpbmcoc3RhcnQsIGluZGV4KS50cmltKCksIGVuZEluZGV4OiBpbmRleCArIDEgfTsKICAgICAgICAgIGVzY2FwZWQgPSBmYWxzZTsKICAgICAgfQogICAgICByZXR1cm4gdW5kZWZpbmVkOwogIH0KICAvKiogRmluZCB0aGUgJzo6JyBzZXBhcmF0b3IgaW4gYW4gaW5saW5lIGZpZWxkLiAqLwogIGZ1bmN0aW9uIGZpbmRTZXBhcmF0b3IobGluZSwgc3RhcnQpIHsKICAgICAgbGV0IHNlcCA9IGxpbmUuaW5kZXhPZigiOjoiLCBzdGFydCk7CiAgICAgIGlmIChzZXAgPCAwKQogICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgcmV0dXJuIHsga2V5OiBsaW5lLnN1YnN0cmluZyhzdGFydCwgc2VwKS50cmltKCksIHZhbHVlSW5kZXg6IHNlcCArIDIgfTsKICB9CiAgLyoqIFRyeSB0byBjb21wbGV0ZWx5IHBhcnNlIGFuIGlubGluZSBmaWVsZCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uIEFzc3VlbXMgYHN0YXJ0YCBpcyBvbiBhIHdyYXBwaW5nIGNoYXJhY3Rlci4gKi8KICBmdW5jdGlvbiBmaW5kU3BlY2lmaWNJbmxpbmVGaWVsZChsaW5lLCBzdGFydCkgewogICAgICBsZXQgb3BlbiA9IGxpbmUuY2hhckF0KHN0YXJ0KTsKICAgICAgbGV0IGtleSA9IGZpbmRTZXBhcmF0b3IobGluZSwgc3RhcnQgKyAxKTsKICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgLy8gRmFpbCB0aGUgbWF0Y2ggaWYgd2UgZmluZCBhbnkgc2VwYXJhdG9yIGNoYXJhY3RlcnMgKG5vdCBhbGxvd2VkIGluIGtleXMpLgogICAgICBmb3IgKGxldCBzZXAgb2YgT2JqZWN0LmtleXMoSU5MSU5FX0ZJRUxEX1dSQVBQRVJTKS5jb25jYXQoT2JqZWN0LnZhbHVlcyhJTkxJTkVfRklFTERfV1JBUFBFUlMpKSkgewogICAgICAgICAgaWYgKGtleS5rZXkuaW5jbHVkZXMoc2VwKSkKICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgICB9CiAgICAgIGxldCB2YWx1ZSA9IGZpbmRDbG9zaW5nKGxpbmUsIGtleS52YWx1ZUluZGV4LCBvcGVuLCBJTkxJTkVfRklFTERfV1JBUFBFUlNbb3Blbl0pOwogICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkKICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICAgIHJldHVybiB7CiAgICAgICAgICBrZXk6IGtleS5rZXksCiAgICAgICAgICB2YWx1ZTogdmFsdWUudmFsdWUsCiAgICAgICAgICBzdGFydDogc3RhcnQsCiAgICAgICAgICBzdGFydFZhbHVlOiBrZXkudmFsdWVJbmRleCwKICAgICAgICAgIGVuZDogdmFsdWUuZW5kSW5kZXgsCiAgICAgICAgICB3cmFwcGluZzogb3BlbiwKICAgICAgfTsKICB9CiAgLyoqIFBhcnNlIGEgdGV4dHVhbCBpbmxpbmUgZmllbGQgdmFsdWUgaW50byBzb21ldGhpbmcgd2UgY2FuIHdvcmsgd2l0aC4gKi8KICBmdW5jdGlvbiBwYXJzZUlubGluZVZhbHVlKHZhbHVlKSB7CiAgICAgIC8vIEVtcHR5IGlubGluZSB2YWx1ZXMgKGkuZS4sIG5vIHRleHQpIHNob3VsZCBtYXAgdG8gbnVsbCB0byBtYXRjaCBsb25nLXRlcm0gRGF0YXZpZXcgc2VtYW50aWNzLgogICAgICAvLyBOdWxsIGlzIGFsc28gYSBtb3JlIHVuaXZlcnNhbCB0eXBlIHRvIGRlYWwgd2l0aCB0aGFuIHN0cmluZ3MsIHNpbmNlIGFsbCBmdW5jdGlvbnMgYWNjZXB0IG51bGxzLgogICAgICBpZiAodmFsdWUudHJpbSgpID09ICIiKQogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIC8vIFRoZSBzdHJpcHBlZCBsaXRlcmFsIGZpZWxkIHBhcnNlciB1bmRlcnN0YW5kcyBhbGwgb2YgdGhlIG5vbi1hcnJheS9ub24tb2JqZWN0IGZpZWxkcyBhbmQgY2FuIHBhcnNlIHRoZW0gZm9yIHVzLgogICAgICAvLyBJbmxpbmUgZmllbGQgb2JqZWN0cyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQ7IGlubGluZSBhcnJheSBvYmplY3RzIGhhdmUgdG8gYmUgaGFuZGxlZCBieSB0aGUgcGFyc2VyCiAgICAgIC8vIHNlcGFyYXRlbHkuCiAgICAgIGxldCBpbmxpbmUgPSBFWFBSRVNTSU9OLmlubGluZUZpZWxkLnBhcnNlKHZhbHVlKTsKICAgICAgaWYgKGlubGluZS5zdGF0dXMpCiAgICAgICAgICByZXR1cm4gaW5saW5lLnZhbHVlOwogICAgICBlbHNlCiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgfQogIC8qKiBFeHRyYWN0cyBpbmxpbmUgZmllbGRzIG9mIHRoZSBmb3JtICdba2V5OjogdmFsdWVdJyBmcm9tIGEgbGluZSBvZiB0ZXh0LiBUaGlzIGlzIGRvbmUgaW4gYSByZWxhdGl2ZWx5CiAgICogInJvYnVzdCIgd2F5IHRvIGF2b2lkIGZhaWxpbmcgZHVlIHRvIGJhZCBuZXN0aW5nIG9yIG90aGVyIGludGVyZmVyaW5nIE1hcmtkb3duIHN5bWJvbHM6CiAgICoKICAgKiAtIExvb2sgZm9yIGFueSB3cmFwcGVycyAoJ1snIGFuZCAnKCcpIGluIHRoZSBsaW5lLCB0cnlpbmcgdG8gcGFyc2Ugd2hhdGV2ZXIgY29tZXMgYWZ0ZXIgaXQgYXMgYW4gaW5saW5lIGtleTo6LgogICAqIC0gSWYgc3VjY2Vzc2Z1bCwgc2NhbiB1bnRpbCB5b3UgZmluZCBhIG1hdGNoaW5nIGVuZCBicmFja2V0LCBhbmQgcGFyc2Ugd2hhdGV2ZXIgcmVtYWlucyBhcyBhbiBpbmxpbmUgdmFsdWUuCiAgICovCiAgZnVuY3Rpb24gZXh0cmFjdElubGluZUZpZWxkcyhsaW5lLCBpbmNsdWRlVGFza0ZpZWxkcyA9IGZhbHNlKSB7CiAgICAgIGxldCBmaWVsZHMgPSBbXTsKICAgICAgZm9yIChsZXQgd3JhcHBlciBvZiBPYmplY3Qua2V5cyhJTkxJTkVfRklFTERfV1JBUFBFUlMpKSB7CiAgICAgICAgICBsZXQgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyKTsKICAgICAgICAgIHdoaWxlIChmb3VuZEluZGV4ID49IDApIHsKICAgICAgICAgICAgICBsZXQgcGFyc2VkRmllbGQgPSBmaW5kU3BlY2lmaWNJbmxpbmVGaWVsZChsaW5lLCBmb3VuZEluZGV4KTsKICAgICAgICAgICAgICBpZiAoIXBhcnNlZEZpZWxkKSB7CiAgICAgICAgICAgICAgICAgIGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlciwgZm91bmRJbmRleCArIDEpOwogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZmllbGRzLnB1c2gocGFyc2VkRmllbGQpOwogICAgICAgICAgICAgIGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlciwgcGFyc2VkRmllbGQuZW5kKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBpZiAoaW5jbHVkZVRhc2tGaWVsZHMpCiAgICAgICAgICBmaWVsZHMgPSBmaWVsZHMuY29uY2F0KGV4dHJhY3RTcGVjaWFsVGFza0ZpZWxkcyhsaW5lKSk7CiAgICAgIGZpZWxkcy5zb3J0KChhLCBiKSA9PiBhLnN0YXJ0IC0gYi5zdGFydCk7CiAgICAgIGxldCBmaWx0ZXJlZEZpZWxkcyA9IFtdOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpZWxkcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgaWYgKGkgPT0gMCB8fCBmaWx0ZXJlZEZpZWxkc1tmaWx0ZXJlZEZpZWxkcy5sZW5ndGggLSAxXS5lbmQgPCBmaWVsZHNbaV0uc3RhcnQpIHsKICAgICAgICAgICAgICBmaWx0ZXJlZEZpZWxkcy5wdXNoKGZpZWxkc1tpXSk7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGZpbHRlcmVkRmllbGRzOwogIH0KICAvKiogVmFsaWRhdGVzIHRoYXQgYSByYXcgZmllbGQgbmFtZSBoYXMgYSB2YWxpZCBmb3JtLiAqLwogIGNvbnN0IEZVTExfTElORV9LRVlfUEFSVCA9IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cChuZXcgUmVnRXhwKGVtb2ppUmVnZXgoKSwgInUiKSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1swLTlccHtMZXR0ZXJ9XHdcc18vLV0rL3UpKQogICAgICAubWFueSgpCiAgICAgIC5tYXAocGFydHMgPT4gcGFydHMuam9pbigiIikpOwogIGNvbnN0IEZVTExfTElORV9LRVlfUEFSU0VSID0gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvW14wLTlcd1xwe0xldHRlcn1dKi91KQogICAgICAudGhlbihGVUxMX0xJTkVfS0VZX1BBUlQpCiAgICAgIC5za2lwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1tfXCp+YF0qL3UpKTsKICAvKiogQXR0ZW1wdCB0byBleHRyYWN0IGEgZnVsbC1saW5lIGZpZWxkIChLZXk6OiBWYWx1ZSBjb25zdW1pbmcgdGhlIGVudGlyZSBjb250ZW50IGxpbmUpLiAqLwogIGZ1bmN0aW9uIGV4dHJhY3RGdWxsTGluZUZpZWxkKHRleHQpIHsKICAgICAgbGV0IHNlcCA9IGZpbmRTZXBhcmF0b3IodGV4dCwgMCk7CiAgICAgIGlmICghc2VwKQogICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgLy8gV2UgbmVlZCB0byBwb3N0LXByb2Nlc3MgdGhlIGtleSB0byBkcm9wIHVubmVjZXNzYXJ5IG9wZW5pbmcgYW5ub3RhdGlvbnMgYXMgd2VsbCBhcwogICAgICAvLyBkcm9wIHN1cnJvdW5kaW5nIE1hcmtkb3duLgogICAgICBsZXQgcmVhbEtleSA9IEZVTExfTElORV9LRVlfUEFSU0VSLnBhcnNlKHNlcC5rZXkpOwogICAgICBpZiAoIXJlYWxLZXkuc3RhdHVzKQogICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgcmV0dXJuIHsKICAgICAgICAgIGtleTogcmVhbEtleS52YWx1ZSwKICAgICAgICAgIHZhbHVlOiB0ZXh0LnN1YnN0cmluZyhzZXAudmFsdWVJbmRleCkudHJpbSgpLAogICAgICAgICAgc3RhcnQ6IDAsCiAgICAgICAgICBzdGFydFZhbHVlOiBzZXAudmFsdWVJbmRleCwKICAgICAgICAgIGVuZDogdGV4dC5sZW5ndGgsCiAgICAgIH07CiAgfQogIGNvbnN0IENSRUFURURfREFURV9SRUdFWCA9IC9cdXsyNzk1fVxzKihcZHs0fS1cZHsyfS1cZHsyfSkvdTsKICBjb25zdCBEVUVfREFURV9SRUdFWCA9IC8oPzpcdXsxRjRDNX18XHV7MUY0QzZ9fFx1ezFGNUQzfVx1e0ZFMEZ9PylccyooXGR7NH0tXGR7Mn0tXGR7Mn0pL3U7CiAgY29uc3QgRE9ORV9EQVRFX1JFR0VYID0gL1x1ezI3MDV9XHMqKFxkezR9LVxkezJ9LVxkezJ9KS91OwogIGNvbnN0IFNDSEVEVUxFRF9EQVRFX1JFR0VYID0gL1tcdXsyM0YzfVx1ezIzMUJ9XVxzKihcZHs0fS1cZHsyfS1cZHsyfSkvdTsKICBjb25zdCBTVEFSVF9EQVRFX1JFR0VYID0gL1x1ezFGNkVCfVxzKihcZHs0fS1cZHsyfS1cZHsyfSkvdTsKICBjb25zdCBFTU9KSV9SRUdFWEVTID0gWwogICAgICB7IHJlZ2V4OiBDUkVBVEVEX0RBVEVfUkVHRVgsIGtleTogImNyZWF0ZWQiIH0sCiAgICAgIHsgcmVnZXg6IFNUQVJUX0RBVEVfUkVHRVgsIGtleTogInN0YXJ0IiB9LAogICAgICB7IHJlZ2V4OiBTQ0hFRFVMRURfREFURV9SRUdFWCwga2V5OiAic2NoZWR1bGVkIiB9LAogICAgICB7IHJlZ2V4OiBEVUVfREFURV9SRUdFWCwga2V5OiAiZHVlIiB9LAogICAgICB7IHJlZ2V4OiBET05FX0RBVEVfUkVHRVgsIGtleTogImNvbXBsZXRpb24iIH0sCiAgXTsKICAvKiogUGFyc2Ugc3BlY2lhbCBjb21wbGV0ZWQvZHVlL2RvbmUgdGFzayBmaWVsZHMgd2hpY2ggYXJlIG1hcmtlZCB2aWEgZW1vamkuICovCiAgZnVuY3Rpb24gZXh0cmFjdFNwZWNpYWxUYXNrRmllbGRzKGxpbmUpIHsKICAgICAgbGV0IHJlc3VsdHMgPSBbXTsKICAgICAgZm9yIChsZXQgeyByZWdleCwga2V5IH0gb2YgRU1PSklfUkVHRVhFUykgewogICAgICAgICAgY29uc3QgbWF0Y2ggPSByZWdleC5leGVjKGxpbmUpOwogICAgICAgICAgaWYgKCFtYXRjaCkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIHJlc3VsdHMucHVzaCh7CiAgICAgICAgICAgICAga2V5LAogICAgICAgICAgICAgIHZhbHVlOiBtYXRjaFsxXSwKICAgICAgICAgICAgICBzdGFydDogbWF0Y2guaW5kZXgsCiAgICAgICAgICAgICAgc3RhcnRWYWx1ZTogbWF0Y2guaW5kZXggKyAxLAogICAgICAgICAgICAgIGVuZDogbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgsCiAgICAgICAgICAgICAgd3JhcHBpbmc6ICJlbW9qaS1zaG9ydGhhbmQiLAogICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICAvKiogQWxsIGV4dHJhY3RlZCBtYXJrZG93biBmaWxlIG1ldGFkYXRhIG9idGFpbmVkIGZyb20gYSBmaWxlLiAqLwogIGNsYXNzIFBhZ2VNZXRhZGF0YSB7CiAgICAgIC8qKiBUaGUgcGF0aCB0aGlzIGZpbGUgZXhpc3RzIGF0LiAqLwogICAgICBwYXRoOwogICAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgZGF0ZSB0aGlzIHBhZ2Ugd2FzIGNyZWF0ZWQuICovCiAgICAgIGN0aW1lOwogICAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgZGF0ZSB0aGlzIHBhZ2Ugd2FzIG1vZGlmaWVkLiAqLwogICAgICBtdGltZTsKICAgICAgLyoqIE9ic2lkaWFuLXByb3ZpZGVkIHNpemUgb2YgdGhpcyBwYWdlIGluIGJ5dGVzLiAqLwogICAgICBzaXplOwogICAgICAvKiogVGhlIGRheSBhc3NvY2lhdGVkIHdpdGggdGhpcyBwYWdlLCBpZiByZWxldmFudC4gKi8KICAgICAgZGF5OwogICAgICAvKiogVGhlIGZpcnN0IEgxL0gyIGhlYWRlciBpbiB0aGUgZmlsZS4gTWF5IG5vdCBleGlzdC4gKi8KICAgICAgdGl0bGU7CiAgICAgIC8qKiBBbGwgb2YgdGhlIGZpZWxkcyBjb250YWluZWQgaW4gdGhpcyBtYXJrZG93biBmaWxlIC0gYm90aCBmcm9udG1hdHRlciBBTkQgaW4tZmlsZSBsaW5rcy4gKi8KICAgICAgZmllbGRzOwogICAgICAvKiogQWxsIG9mIHRoZSBleGFjdCB0YWdzIChwcmVmaXhlZCB3aXRoICcjJykgaW4gdGhpcyBmaWxlIG92ZXJhbGwuICovCiAgICAgIHRhZ3M7CiAgICAgIC8qKiBBbGwgb2YgdGhlIGFsaWFzZXMgZGVmaW5lZCBmb3IgdGhpcyBmaWxlLiAqLwogICAgICBhbGlhc2VzOwogICAgICAvKiogQWxsIE9VVEdPSU5HIGxpbmtzIChpbmNsdWRpbmcgZW1iZWRzLCBoZWFkZXIgKyBibG9jayBsaW5rcykgaW4gdGhpcyBmaWxlLiAqLwogICAgICBsaW5rczsKICAgICAgLyoqIEFsbCBsaXN0IGl0ZW1zIGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBwYWdlLiBGaWx0ZXIgZm9yIHRhc2tzIHRvIGdldCBqdXN0IHRhc2tzLiAqLwogICAgICBsaXN0czsKICAgICAgLyoqIFRoZSByYXcgZnJvbnRtYXR0ZXIgZm9yIHRoaXMgZG9jdW1lbnQuICovCiAgICAgIGZyb250bWF0dGVyOwogICAgICBjb25zdHJ1Y3RvcihwYXRoLCBpbml0KSB7CiAgICAgICAgICB0aGlzLnBhdGggPSBwYXRoOwogICAgICAgICAgdGhpcy5maWVsZHMgPSBuZXcgTWFwKCk7CiAgICAgICAgICB0aGlzLmZyb250bWF0dGVyID0ge307CiAgICAgICAgICB0aGlzLnRhZ3MgPSBuZXcgU2V0KCk7CiAgICAgICAgICB0aGlzLmFsaWFzZXMgPSBuZXcgU2V0KCk7CiAgICAgICAgICB0aGlzLmxpbmtzID0gW107CiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpOwogICAgICAgICAgdGhpcy5saXN0cyA9ICh0aGlzLmxpc3RzIHx8IFtdKS5tYXAobCA9PiBuZXcgTGlzdEl0ZW0obCkpOwogICAgICB9CiAgICAgIC8qKiBDYW5vbmljYWxpemUgcmF3IGxpbmtzIGFuZCBvdGhlciBkYXRhIGluIHBhcnRpYWwgZGF0YSB3aXRoIG5vcm1hbGl6ZXJzLCByZXR1cm5pbmcgYSBjb21wbGV0ZWQgb2JqZWN0LiAqLwogICAgICBzdGF0aWMgY2Fub25pY2FsaXplKGRhdGEsIGxpbmtOb3JtYWxpemVyKSB7CiAgICAgICAgICAvLyBNdXRhdGUgdGhlIGRhdGEgZm9yIG5vdywgd2hpY2ggaXMgcHJvYmFibHkgYSBiYWQgaWRlYSBidXQuLi4gYWxsIHdlbGwuCiAgICAgICAgICBpZiAoZGF0YS5mcm9udG1hdHRlcikgewogICAgICAgICAgICAgIGRhdGEuZnJvbnRtYXR0ZXIgPSBWYWx1ZXMubWFwTGVhdmVzKGRhdGEuZnJvbnRtYXR0ZXIsIHQgPT4gVmFsdWVzLmlzTGluayh0KSA/IGxpbmtOb3JtYWxpemVyKHQpIDogdCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZGF0YS5maWVsZHMpIHsKICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgZGF0YS5maWVsZHMuZW50cmllcygpKSB7CiAgICAgICAgICAgICAgICAgIGRhdGEuZmllbGRzLnNldChrZXksIFZhbHVlcy5tYXBMZWF2ZXModmFsdWUsIHQgPT4gKFZhbHVlcy5pc0xpbmsodCkgPyBsaW5rTm9ybWFsaXplcih0KSA6IHQpKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGRhdGEubGlzdHMpIHsKICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIGRhdGEubGlzdHMpIHsKICAgICAgICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIGl0ZW0uZmllbGRzLmVudHJpZXMoKSkgewogICAgICAgICAgICAgICAgICAgICAgaXRlbS5maWVsZHMuc2V0KGtleSwgdmFsdWUubWFwKHggPT4gVmFsdWVzLm1hcExlYXZlcyh4LCB0ID0+IChWYWx1ZXMuaXNMaW5rKHQpID8gbGlua05vcm1hbGl6ZXIodCkgOiB0KSkpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChkYXRhLmxpbmtzKSB7CiAgICAgICAgICAgICAgZGF0YS5saW5rcyA9IGRhdGEubGlua3MubWFwKGwgPT4gbGlua05vcm1hbGl6ZXIobCkpOwogICAgICAgICAgfQogICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgdWdseSwgYnV0IGl0J3Mgbm90IHBvc3NpYmxlIHRvIG5vcm1hbGl6ZSBvbiB0aGUgd29ya2VyIHRocmVhZCB0aGF0IGRvZXMgcGFyc2luZy4KICAgICAgICAgIC8vIFRoZSBiZXN0IHdheSB0byBpbXByb3ZlIHRoaXMgaXMgdG8gaW5zdGVhZCBqdXN0IGNhbm9uaWNhbGl6ZSB0aGUgZW50aXJlIGRhdGEgb2JqZWN0OyBJIGNhbiB0cnkgdG8KICAgICAgICAgIC8vIG9wdGltaXplIGBWYWx1ZXMubWFwTGVhdmVzYCB0byBvbmx5IG11dGF0ZSBpZiBpdCBhY3R1YWxseSBjaGFuZ2VzIHRoaW5ncy4KICAgICAgICAgIHJldHVybiBuZXcgUGFnZU1ldGFkYXRhKGRhdGEucGF0aCwgZGF0YSk7CiAgICAgIH0KICAgICAgLyoqIFRoZSBuYW1lIChiYXNlZCBvbiBwYXRoKSBvZiB0aGlzIGZpbGUuICovCiAgICAgIG5hbWUoKSB7CiAgICAgICAgICByZXR1cm4gZ2V0RmlsZVRpdGxlKHRoaXMucGF0aCk7CiAgICAgIH0KICAgICAgLyoqIFRoZSBjb250YWluaW5nIGZvbGRlciAoYmFzZWQgb24gcGF0aCkgb2YgdGhpcyBmaWxlLiAqLwogICAgICBmb2xkZXIoKSB7CiAgICAgICAgICByZXR1cm4gZ2V0UGFyZW50Rm9sZGVyKHRoaXMucGF0aCk7CiAgICAgIH0KICAgICAgLyoqIFRoZSBleHRlbnNpb24gb2YgdGhpcyBmaWxlIChsaWtlbHkgJ21kJykuICovCiAgICAgIGV4dGVuc2lvbigpIHsKICAgICAgICAgIHJldHVybiBnZXRFeHRlbnNpb24odGhpcy5wYXRoKTsKICAgICAgfQogICAgICAvKiogUmV0dXJuIGEgc2V0IG9mIHRhZ3MgQU5EIGFsbCBvZiB0aGVpciBwYXJlbnQgdGFncyAoc28gI2hlbGxvL3llcyB3b3VsZCBiZWNvbWUgI2hlbGxvLCAjaGVsbG8veWVzKS4gKi8KICAgICAgZnVsbFRhZ3MoKSB7CiAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFNldCgpOwogICAgICAgICAgZm9yIChsZXQgdGFnIG9mIHRoaXMudGFncykgewogICAgICAgICAgICAgIGZvciAobGV0IHN1YnRhZyBvZiBleHRyYWN0U3VidGFncyh0YWcpKQogICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHN1YnRhZyk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIC8qKiBDb252ZXJ0IGFsbCBsaW5rcyBpbiB0aGlzIGZpbGUgdG8gZmlsZSBsaW5rcy4gKi8KICAgICAgZmlsZUxpbmtzKCkgewogICAgICAgICAgLy8gV2Ugd2FudCB0byBtYWtlIHRoZW0gZGlzdGluY3QsIGJ1dCB3aGVyZSBsaW5rcyBhcmUgbm90IHJhdyBsaW5rcyB3ZQogICAgICAgICAgLy8gbm93IGtlZXAgdGhlIGFkZGl0aW9uYWwgbWV0YWRhdGEuCiAgICAgICAgICBsZXQgZGlzdGluY3RMaW5rcyA9IG5ldyBTZXQodGhpcy5saW5rcyk7CiAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShkaXN0aW5jdExpbmtzKTsKICAgICAgfQogICAgICAvKiogTWFwIHRoaXMgbWV0YWRhdGEgdG8gYSBmdWxsIG9iamVjdDsgdXNlcyB0aGUgaW5kZXggZm9yIGFkZGl0aW9uYWwgZGF0YSBsb29rdXBzLiAgKi8KICAgICAgc2VyaWFsaXplKGluZGV4LCBjYWNoZSkgewogICAgICAgICAgLy8gQ29udmVydCBsaXN0IGl0ZW1zIHZpYSB0aGUgY2Fub25pY2FsaXphdGlvbiBjYWNoZS4KICAgICAgICAgIGxldCByZWFsQ2FjaGUgPSBjYWNoZSA/PyBuZXcgTGlzdFNlcmlhbGl6YXRpb25DYWNoZSh0aGlzLmxpc3RzKTsKICAgICAgICAgIGxldCByZXN1bHQgPSB7CiAgICAgICAgICAgICAgZmlsZTogewogICAgICAgICAgICAgICAgICBwYXRoOiB0aGlzLnBhdGgsCiAgICAgICAgICAgICAgICAgIGZvbGRlcjogdGhpcy5mb2xkZXIoKSwKICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lKCksCiAgICAgICAgICAgICAgICAgIGxpbms6IExpbmsuZmlsZSh0aGlzLnBhdGgpLAogICAgICAgICAgICAgICAgICBvdXRsaW5rczogdGhpcy5maWxlTGlua3MoKSwKICAgICAgICAgICAgICAgICAgaW5saW5rczogQXJyYXkuZnJvbShpbmRleC5saW5rcy5nZXRJbnZlcnNlKHRoaXMucGF0aCkpLm1hcChsID0+IExpbmsuZmlsZShsKSksCiAgICAgICAgICAgICAgICAgIGV0YWdzOiBBcnJheS5mcm9tKHRoaXMudGFncyksCiAgICAgICAgICAgICAgICAgIHRhZ3M6IEFycmF5LmZyb20odGhpcy5mdWxsVGFncygpKSwKICAgICAgICAgICAgICAgICAgYWxpYXNlczogQXJyYXkuZnJvbSh0aGlzLmFsaWFzZXMpLAogICAgICAgICAgICAgICAgICBsaXN0czogdGhpcy5saXN0cy5tYXAobCA9PiByZWFsQ2FjaGUuZ2V0KGwubGluZSkpLAogICAgICAgICAgICAgICAgICB0YXNrczogdGhpcy5saXN0cy5maWx0ZXIobCA9PiAhIWwudGFzaykubWFwKGwgPT4gcmVhbENhY2hlLmdldChsLmxpbmUpKSwKICAgICAgICAgICAgICAgICAgY3RpbWU6IHRoaXMuY3RpbWUsCiAgICAgICAgICAgICAgICAgIGNkYXk6IHN0cmlwVGltZSh0aGlzLmN0aW1lKSwKICAgICAgICAgICAgICAgICAgbXRpbWU6IHRoaXMubXRpbWUsCiAgICAgICAgICAgICAgICAgIG1kYXk6IHN0cmlwVGltZSh0aGlzLm10aW1lKSwKICAgICAgICAgICAgICAgICAgc2l6ZTogdGhpcy5zaXplLAogICAgICAgICAgICAgICAgICBzdGFycmVkOiBpbmRleC5zdGFycmVkLnN0YXJyZWQodGhpcy5wYXRoKSwKICAgICAgICAgICAgICAgICAgZnJvbnRtYXR0ZXI6IFZhbHVlcy5kZWVwQ29weSh0aGlzLmZyb250bWF0dGVyKSwKICAgICAgICAgICAgICAgICAgZXh0OiB0aGlzLmV4dGVuc2lvbigpLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICB9OwogICAgICAgICAgLy8gQWRkIHRoZSBjdXJyZW50IGRheSBpZiBwcmVzZW50LgogICAgICAgICAgaWYgKHRoaXMuZGF5KQogICAgICAgICAgICAgIHJlc3VsdC5maWxlLmRheSA9IHRoaXMuZGF5OwogICAgICAgICAgLy8gVGhlbiBhcHBlbmQgdGhlIGNvbXB1dGVkIGZpZWxkcy4KICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiB0aGlzLmZpZWxkcy5lbnRyaWVzKCkpIHsKICAgICAgICAgICAgICBpZiAoa2V5IGluIHJlc3VsdCkKICAgICAgICAgICAgICAgICAgY29udGludWU7IC8vIERvbid0IGFsbG93IGZpZWxkcyB0byBvdmVycmlkZSBleGlzdGluZyBrZXlzLgogICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgfQogIC8qKiBBIGxpc3QgaXRlbSBpbnNpZGUgb2YgYSBsaXN0LiAqLwogIGNsYXNzIExpc3RJdGVtIHsKICAgICAgLyoqIFRoZSBzeW1ib2wgKCcqJywgJy0nLCAnMS4nKSB1c2VkIHRvIGRlZmluZSB0aGlzIGxpc3QgaXRlbS4gKi8KICAgICAgc3ltYm9sOwogICAgICAvKiogQSBsaW5rIHdoaWNoIHBvaW50cyB0byB0aGlzIHRhc2ssIG9yIHRvIHRoZSBjbG9zZXN0IGJsb2NrIHRoYXQgdGhpcyB0YXNrIGlzIGNvbnRhaW5lZCBpbi4gKi8KICAgICAgbGluazsKICAgICAgLyoqIEEgbGluayB0byB0aGUgc2VjdGlvbiB0aGF0IGNvbnRhaW5zIHRoaXMgbGlzdCBlbGVtZW50OyBjb3VsZCBiZSBhIGZpbGUgaWYgdGhpcyBpcyBub3QgaW4gYSBzZWN0aW9uLiAqLwogICAgICBzZWN0aW9uOwogICAgICAvKiogVGhlIHRleHQgb2YgdGhpcyBsaXN0IGl0ZW0uIFRoaXMgbWF5IGJlIG11bHRpcGxlIGxpbmVzIG9mIG1hcmtkb3duLiAqLwogICAgICB0ZXh0OwogICAgICAvKiogVGhlIGxpbmUgdGhhdCB0aGlzIGxpc3QgaXRlbSBzdGFydHMgb24gaW4gdGhlIGZpbGUuICovCiAgICAgIGxpbmU7CiAgICAgIC8qKiBUaGUgbnVtYmVyIG9mIGxpbmVzIHRoYXQgZGVmaW5lIHRoaXMgbGlzdCBpdGVtLiAqLwogICAgICBsaW5lQ291bnQ7CiAgICAgIC8qKiBUaGUgbGluZSBudW1iZXIgZm9yIHRoZSBmaXJzdCBsaXN0IGl0ZW0gaW4gdGhlIGxpc3QgdGhpcyBpdGVtIGJlbG9uZ3MgdG8uICovCiAgICAgIGxpc3Q7CiAgICAgIC8qKiBBbnkgbGlua3MgY29udGFpbmVkIHdpdGhpbiB0aGlzIGxpc3QgaXRlbS4gKi8KICAgICAgbGlua3M7CiAgICAgIC8qKiBUaGUgdGFncyBjb250YWluZWQgd2l0aGluIHRoaXMgbGlzdCBpdGVtLiAqLwogICAgICB0YWdzOwogICAgICAvKiogVGhlIHJhdyBPYnNpZGlhbi1wcm92aWRlZCBwb3NpdGlvbiBmb3Igd2hlcmUgdGhpcyB0YXNrIGlzLiAqLwogICAgICBwb3NpdGlvbjsKICAgICAgLyoqIFRoZSBsaW5lIG51bWJlciBvZiB0aGUgcGFyZW50IGxpc3QgaXRlbSwgaWYgcHJlc2VudDsgaWYgdGhpcyBpcyB1bmRlZmluZWQsIHRoaXMgaXMgYSByb290IGl0ZW0uICovCiAgICAgIHBhcmVudDsKICAgICAgLyoqIFRoZSBsaW5lIG51bWJlcnMgb2YgY2hpbGRyZW4gb2YgdGhpcyBsaXN0IGl0ZW0uICovCiAgICAgIGNoaWxkcmVuOwogICAgICAvKiogVGhlIGJsb2NrIElEIGZvciB0aGlzIGl0ZW0sIGlmIG9uZSBpcyBwcmVzZW50LiAqLwogICAgICBibG9ja0lkOwogICAgICAvKiogQW55IGZpZWxkcyBkZWZpbmVkIGluIHRoaXMgbGlzdCBpdGVtLiBGb3IgdGFza3MsIHRoaXMgaW5jbHVkZXMgZmllbGRzIHVuZGVybmVhdGggdGhlIHRhc2suICovCiAgICAgIGZpZWxkczsKICAgICAgdGFzazsKICAgICAgY29uc3RydWN0b3IoaW5pdCkgewogICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBpbml0KTsKICAgICAgICAgIHRoaXMuZmllbGRzID0gdGhpcy5maWVsZHMgfHwgbmV3IE1hcCgpOwogICAgICAgICAgdGhpcy50YWdzID0gdGhpcy50YWdzIHx8IG5ldyBTZXQoKTsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuIHx8IFtdOwogICAgICAgICAgdGhpcy5saW5rcyA9IHRoaXMubGlua3MgfHwgW107CiAgICAgIH0KICAgICAgaWQoKSB7CiAgICAgICAgICByZXR1cm4gYCR7dGhpcy5maWxlKCkucGF0aH0tJHt0aGlzLmxpbmV9YDsKICAgICAgfQogICAgICBmaWxlKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMubGluay50b0ZpbGUoKTsKICAgICAgfQogICAgICBtYXJrZG93bigpIHsKICAgICAgICAgIGlmICh0aGlzLnRhc2spCiAgICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuc3ltYm9sfSBbJHt0aGlzLnRhc2suY29tcGxldGVkID8gIngiIDogIiAifV0gJHt0aGlzLnRleHR9YDsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zeW1ib2x9ICR7dGhpcy50ZXh0fWA7CiAgICAgIH0KICAgICAgY3JlYXRlZCgpIHsKICAgICAgICAgIHJldHVybiAodGhpcy5maWVsZHMuZ2V0KCJjcmVhdGVkIikgPz8gdGhpcy5maWVsZHMuZ2V0KCJjdGltZSIpID8/IHRoaXMuZmllbGRzLmdldCgiY2RheSIpKT8uWzBdOwogICAgICB9CiAgICAgIGR1ZSgpIHsKICAgICAgICAgIHJldHVybiAodGhpcy5maWVsZHMuZ2V0KCJkdWUiKSA/PyB0aGlzLmZpZWxkcy5nZXQoImR1ZXRpbWUiKSA/PyB0aGlzLmZpZWxkcy5nZXQoImR1ZWRheSIpKT8uWzBdOwogICAgICB9CiAgICAgIGNvbXBsZXRlZCgpIHsKICAgICAgICAgIHJldHVybiAodGhpcy5maWVsZHMuZ2V0KCJjb21wbGV0ZWQiKSA/PwogICAgICAgICAgICAgIHRoaXMuZmllbGRzLmdldCgiY29tcGxldGlvbiIpID8/CiAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZ2V0KCJjb21wdGltZSIpID8/CiAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZ2V0KCJjb21wZGF5IikpPy5bMF07CiAgICAgIH0KICAgICAgc3RhcnQoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5maWVsZHMuZ2V0KCJzdGFydCIpPy5bMF07CiAgICAgIH0KICAgICAgc2NoZWR1bGVkKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuZmllbGRzLmdldCgic2NoZWR1bGVkIik/LlswXTsKICAgICAgfQogICAgICAvKiogQ3JlYXRlIGFuIEFQSS1mcmllbmRseSBjb3B5IG9mIHRoaXMgbGlzdCBpdGVtLiBEZS1kdXBsaWNhdGlvbiBpcyBkb25lIHZpYSB0aGUgcHJvdmlkZWQgY2FjaGUuICovCiAgICAgIHNlcmlhbGl6ZShjYWNoZSkgewogICAgICAgICAgLy8gTWFwIGNoaWxkcmVuIHRvIHRoZWlyIHNlcmlhbGl6ZWQvZGUtZHVwbGljYXRlZCBlcXVpdmFsZW50cyByaWdodCBhd2F5LgogICAgICAgICAgbGV0IGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5tYXAobCA9PiBjYWNoZS5nZXQobCkpLmZpbHRlcigobCkgPT4gbCAhPT0gdW5kZWZpbmVkKTsKICAgICAgICAgIGxldCByZXN1bHQgPSB7CiAgICAgICAgICAgICAgc3ltYm9sOiB0aGlzLnN5bWJvbCwKICAgICAgICAgICAgICBsaW5rOiB0aGlzLmxpbmssCiAgICAgICAgICAgICAgc2VjdGlvbjogdGhpcy5zZWN0aW9uLAogICAgICAgICAgICAgIHRleHQ6IHRoaXMudGV4dCwKICAgICAgICAgICAgICB0YWdzOiBBcnJheS5mcm9tKHRoaXMudGFncyksCiAgICAgICAgICAgICAgbGluZTogdGhpcy5saW5lLAogICAgICAgICAgICAgIGxpbmVDb3VudDogdGhpcy5saW5lQ291bnQsCiAgICAgICAgICAgICAgbGlzdDogdGhpcy5saXN0LAogICAgICAgICAgICAgIG91dGxpbmtzOiBBcnJheS5mcm9tKHRoaXMubGlua3MpLAogICAgICAgICAgICAgIHBhdGg6IHRoaXMubGluay5wYXRoLAogICAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbiwKICAgICAgICAgICAgICB0YXNrOiAhIXRoaXMudGFzaywKICAgICAgICAgICAgICBhbm5vdGF0ZWQ6IHRoaXMuZmllbGRzLnNpemUgPiAwLAogICAgICAgICAgICAgIHBvc2l0aW9uOiBWYWx1ZXMuZGVlcENvcHkodGhpcy5wb3NpdGlvbiksCiAgICAgICAgICAgICAgc3VidGFza3M6IGNoaWxkcmVuLAogICAgICAgICAgICAgIHJlYWw6ICEhdGhpcy50YXNrLAogICAgICAgICAgICAgIGhlYWRlcjogdGhpcy5zZWN0aW9uLCAvLyBAZGVwcmVjYXRlZCwgdXNlICdpdGVtLnNlY3Rpb24nIGluc3RlYWQuCiAgICAgICAgICB9OwogICAgICAgICAgaWYgKHRoaXMucGFyZW50IHx8IHRoaXMucGFyZW50ID09PSAwKQogICAgICAgICAgICAgIHJlc3VsdC5wYXJlbnQgPSB0aGlzLnBhcmVudDsKICAgICAgICAgIGlmICh0aGlzLmJsb2NrSWQpCiAgICAgICAgICAgICAgcmVzdWx0LmJsb2NrSWQgPSB0aGlzLmJsb2NrSWQ7CiAgICAgICAgICBhZGRGaWVsZHModGhpcy5maWVsZHMsIHJlc3VsdCk7CiAgICAgICAgICBpZiAodGhpcy50YXNrKSB7CiAgICAgICAgICAgICAgcmVzdWx0LnN0YXR1cyA9IHRoaXMudGFzay5zdGF0dXM7CiAgICAgICAgICAgICAgcmVzdWx0LmNoZWNrZWQgPSB0aGlzLnRhc2suY2hlY2tlZDsKICAgICAgICAgICAgICByZXN1bHQuY29tcGxldGVkID0gdGhpcy50YXNrLmNvbXBsZXRlZDsKICAgICAgICAgICAgICByZXN1bHQuZnVsbHlDb21wbGV0ZWQgPSB0aGlzLnRhc2suZnVsbHlDb21wbGV0ZWQ7CiAgICAgICAgICAgICAgbGV0IGNyZWF0ZWQgPSB0aGlzLmNyZWF0ZWQoKSwgZHVlID0gdGhpcy5kdWUoKSwgY29tcGxldGVkID0gdGhpcy5jb21wbGV0ZWQoKSwgc3RhcnQgPSB0aGlzLnN0YXJ0KCksIHNjaGVkdWxlZCA9IHRoaXMuc2NoZWR1bGVkKCk7CiAgICAgICAgICAgICAgaWYgKGNyZWF0ZWQpCiAgICAgICAgICAgICAgICAgIHJlc3VsdC5jcmVhdGVkID0gVmFsdWVzLmRlZXBDb3B5KGNyZWF0ZWQpOwogICAgICAgICAgICAgIGlmIChkdWUpCiAgICAgICAgICAgICAgICAgIHJlc3VsdC5kdWUgPSBWYWx1ZXMuZGVlcENvcHkoZHVlKTsKICAgICAgICAgICAgICBpZiAoY29tcGxldGVkKQogICAgICAgICAgICAgICAgICByZXN1bHQuY29tcGxldGlvbiA9IFZhbHVlcy5kZWVwQ29weShjb21wbGV0ZWQpOwogICAgICAgICAgICAgIGlmIChzdGFydCkKICAgICAgICAgICAgICAgICAgcmVzdWx0LnN0YXJ0ID0gVmFsdWVzLmRlZXBDb3B5KHN0YXJ0KTsKICAgICAgICAgICAgICBpZiAoc2NoZWR1bGVkKQogICAgICAgICAgICAgICAgICByZXN1bHQuc2NoZWR1bGVkID0gVmFsdWVzLmRlZXBDb3B5KHNjaGVkdWxlZCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgfQogIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIC8vIENvbnZlcnNpb24gLyBTZXJpYWxpemF0aW9uIFV0aWxpdGllcyAvLwogIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIC8qKiBEZS1kdXBsaWNhdGVzIGxpc3QgaXRlbXMgYWNyb3NzIHNlY3Rpb24gbWV0YWRhdGEgYW5kIHBhZ2UgbWV0YWRhdGEuICovCiAgY2xhc3MgTGlzdFNlcmlhbGl6YXRpb25DYWNoZSB7CiAgICAgIGxpc3RJdGVtczsKICAgICAgY2FjaGU7CiAgICAgIHNlZW47CiAgICAgIGNvbnN0cnVjdG9yKGxpc3RJdGVtcykgewogICAgICAgICAgdGhpcy5saXN0SXRlbXMgPSB7fTsKICAgICAgICAgIHRoaXMuY2FjaGUgPSB7fTsKICAgICAgICAgIHRoaXMuc2VlbiA9IG5ldyBTZXQoKTsKICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgbGlzdEl0ZW1zKQogICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zW2l0ZW0ubGluZV0gPSBpdGVtOwogICAgICB9CiAgICAgIGdldChsaW5lbm8pIHsKICAgICAgICAgIGlmIChsaW5lbm8gaW4gdGhpcy5jYWNoZSkKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWNoZVtsaW5lbm9dOwogICAgICAgICAgZWxzZSBpZiAodGhpcy5zZWVuLmhhcyhsaW5lbm8pKSB7CiAgICAgICAgICAgICAgY29uc29sZS5sb2coYERhdGF2aWV3OiBFbmNvdW50ZXJlZCBhIGNpcmN1bGFyIGxpc3QgKGxpbmUgbnVtYmVyICR7bGluZW5vfTsgY2hpbGRyZW4gJHt0aGlzLmxpc3RJdGVtc1tsaW5lbm9dLmNoaWxkcmVuLmpvaW4oIiwgIil9KWApOwogICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLnNlZW4uYWRkKGxpbmVubyk7CiAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5saXN0SXRlbXNbbGluZW5vXS5zZXJpYWxpemUodGhpcyk7CiAgICAgICAgICB0aGlzLmNhY2hlW2xpbmVub10gPSByZXN1bHQ7CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgfQogIGZ1bmN0aW9uIGFkZEZpZWxkcyhmaWVsZHMsIHRhcmdldCkgewogICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZXNdIG9mIGZpZWxkcy5lbnRyaWVzKCkpIHsKICAgICAgICAgIGlmIChrZXkgaW4gdGFyZ2V0KQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZXMubGVuZ3RoID09IDEgPyB2YWx1ZXNbMF0gOiB2YWx1ZXM7CiAgICAgIH0KICAgICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8qKiBDb21tb24gdXRpbGl0aWVzIGZvciBleHRyYWN0aW5nIHRhZ3MsIGxpbmtzLCBhbmQgb3RoZXIgYnVzaW5lc3MgZnJvbSBtZXRhZGF0YS4gKi8KICBjb25zdCBQT1RFTlRJQUxfVEFHX01BVENIRVIgPSAvI1teXHMsO1wuOiFcPyciYCgpXFtcXVx7XH1dKy9naXU7CiAgLyoqIEV4dHJhY3QgYWxsIHRhZ3MgZnJvbSB0aGUgZ2l2ZW4gc291cmNlIHN0cmluZy4gKi8KICBmdW5jdGlvbiBleHRyYWN0VGFncyQxKHNvdXJjZSkgewogICAgICBsZXQgcmVzdWx0ID0gbmV3IFNldCgpOwogICAgICBsZXQgbWF0Y2hlcyA9IHNvdXJjZS5tYXRjaEFsbChQT1RFTlRJQUxfVEFHX01BVENIRVIpOwogICAgICBmb3IgKGxldCBtYXRjaCBvZiBtYXRjaGVzKSB7CiAgICAgICAgICBsZXQgcGFyc2VkID0gRVhQUkVTU0lPTi50YWcucGFyc2UobWF0Y2hbMF0pOwogICAgICAgICAgaWYgKHBhcnNlZC5zdGF0dXMpCiAgICAgICAgICAgICAgcmVzdWx0LmFkZChwYXJzZWQudmFsdWUpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHQ7CiAgfQoKICAvKiogSW1wb3J0ZXIgZm9yIG1hcmtkb3duIGRvY3VtZW50cy4gKi8KICAvKiogRXh0cmFjdCBtYXJrZG93biBtZXRhZGF0YSBmcm9tIHRoZSBnaXZlbiBPYnNpZGlhbiBtYXJrZG93biBmaWxlLiAqLwogIGZ1bmN0aW9uIHBhcnNlUGFnZShwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEpIHsKICAgICAgbGV0IHRhZ3MgPSBuZXcgU2V0KCk7CiAgICAgIGxldCBhbGlhc2VzID0gbmV3IFNldCgpOwogICAgICBsZXQgZmllbGRzID0gbmV3IE1hcCgpOwogICAgICBsZXQgbGlua3MgPSBbXTsKICAgICAgLy8gRmlsZSB0YWdzLCBpbmNsdWRpbmcgZnJvbnQtbWF0dGVyIGFuZCBpbi1maWxlIHRhZ3MuCiAgICAgIChtZXRhZGF0YS50YWdzIHx8IFtdKS5mb3JFYWNoKHQgPT4gdGFncy5hZGQodC50YWcuc3RhcnRzV2l0aCgiIyIpID8gdC50YWcgOiAiIyIgKyB0LnRhZykpOwogICAgICAvLyBGcm9udC1tYXR0ZXIgZmlsZSB0YWdzLCBhbGlhc2VzLCBBTkQgZnJvbnRtYXR0ZXIgcHJvcGVydGllcy4KICAgICAgaWYgKG1ldGFkYXRhLmZyb250bWF0dGVyKSB7CiAgICAgICAgICBmb3IgKGxldCB0YWcgb2YgZXh0cmFjdFRhZ3MobWV0YWRhdGEuZnJvbnRtYXR0ZXIpKSB7CiAgICAgICAgICAgICAgaWYgKCF0YWcuc3RhcnRzV2l0aCgiIyIpKQogICAgICAgICAgICAgICAgICB0YWcgPSAiIyIgKyB0YWc7CiAgICAgICAgICAgICAgdGFncy5hZGQodGFnKTsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAobGV0IGFsaWFzIG9mIGV4dHJhY3RBbGlhc2VzKG1ldGFkYXRhLmZyb250bWF0dGVyKSB8fCBbXSkKICAgICAgICAgICAgICBhbGlhc2VzLmFkZChhbGlhcyk7CiAgICAgICAgICBsZXQgZnJvbnRGaWVsZHMgPSBwYXJzZUZyb250bWF0dGVyKG1ldGFkYXRhLmZyb250bWF0dGVyKTsKICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmcm9udEZpZWxkcykpIHsKICAgICAgICAgICAgICBpZiAoa2V5ID09ICJwb3NpdGlvbiIpCiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIGFkZElubGluZUZpZWxkKGtleSwgdmFsdWUsIGZpZWxkcyk7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgLy8gQWRkIGZyb250bWF0dGVyIGxpbmtzIHRvIGxpbmtzLgogICAgICBpZiAobWV0YWRhdGEuZnJvbnRtYXR0ZXJMaW5rcykgewogICAgICAgICAgZm9yIChsZXQgcmF3TGluayBvZiBtZXRhZGF0YS5mcm9udG1hdHRlckxpbmtzIHx8IFtdKSB7CiAgICAgICAgICAgICAgY29uc3QgbGluayA9IExpbmsuaW5mZXIocmF3TGluay5saW5rLCBmYWxzZSwgcmF3TGluay5kaXNwbGF5VGV4dCk7CiAgICAgICAgICAgICAgbGlua3MucHVzaChsaW5rKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICAvLyBMaW5rcyBpbiBtZXRhZGF0YS4KICAgICAgY29uc3QgbGlua3NCeUxpbmUgPSB7fTsKICAgICAgZm9yIChsZXQgcmF3TGluayBvZiBtZXRhZGF0YS5saW5rcyB8fCBbXSkgewogICAgICAgICAgY29uc3QgbGluayA9IExpbmsuaW5mZXIocmF3TGluay5saW5rLCBmYWxzZSwgcmF3TGluay5kaXNwbGF5VGV4dCk7CiAgICAgICAgICBjb25zdCBsaW5lID0gcmF3TGluay5wb3NpdGlvbi5zdGFydC5saW5lOwogICAgICAgICAgbGlua3MucHVzaChsaW5rKTsKICAgICAgICAgIGlmICghKGxpbmUgaW4gbGlua3NCeUxpbmUpKQogICAgICAgICAgICAgIGxpbmtzQnlMaW5lW2xpbmVdID0gW2xpbmtdOwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIGxpbmtzQnlMaW5lW2xpbmVdLnB1c2gobGluayk7CiAgICAgIH0KICAgICAgLy8gRW1iZWQgTGlua3MgaW4gbWV0YWRhdGEuCiAgICAgIGZvciAobGV0IHJhd0VtYmVkIG9mIG1ldGFkYXRhLmVtYmVkcyB8fCBbXSkgewogICAgICAgICAgY29uc3QgbGluayA9IExpbmsuaW5mZXIocmF3RW1iZWQubGluaywgdHJ1ZSwgcmF3RW1iZWQuZGlzcGxheVRleHQpOwogICAgICAgICAgY29uc3QgbGluZSA9IHJhd0VtYmVkLnBvc2l0aW9uLnN0YXJ0LmxpbmU7CiAgICAgICAgICBsaW5rcy5wdXNoKGxpbmspOwogICAgICAgICAgaWYgKCEobGluZSBpbiBsaW5rc0J5TGluZSkpCiAgICAgICAgICAgICAgbGlua3NCeUxpbmVbbGluZV0gPSBbbGlua107CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgbGlua3NCeUxpbmVbbGluZV0ucHVzaChsaW5rKTsKICAgICAgfQogICAgICAvLyBNZXJnZSBmcm9udG1hdHRlciBmaWVsZHMgd2l0aCBwYXJzZWQgZmllbGRzLgogICAgICBsZXQgbWFya2Rvd25EYXRhID0gcGFyc2VNYXJrZG93bihwYXRoLCBjb250ZW50cy5zcGxpdCgiXG4iKSwgbWV0YWRhdGEsIGxpbmtzQnlMaW5lKTsKICAgICAgbWVyZ2VGaWVsZEdyb3VwcyhmaWVsZHMsIG1hcmtkb3duRGF0YS5maWVsZHMpOwogICAgICAvLyBTdHJpcCAicG9zaXRpb24iIGZyb20gZnJvbnRtYXR0ZXIgc2luY2UgaXQgaXMgT2JzaWRpYW4gZGV0ZXJtaW5lZC4KICAgICAgY29uc3QgZnJvbnRtYXR0ZXIgPSBtZXRhZGF0YS5mcm9udG1hdHRlciB8fCB7fTsKICAgICAgaWYgKGZyb250bWF0dGVyICYmICJwb3NpdGlvbiIgaW4gZnJvbnRtYXR0ZXIpCiAgICAgICAgICBkZWxldGUgZnJvbnRtYXR0ZXJbInBvc2l0aW9uIl07CiAgICAgIHJldHVybiBuZXcgUGFnZU1ldGFkYXRhKHBhdGgsIHsKICAgICAgICAgIHRhZ3MsCiAgICAgICAgICBhbGlhc2VzLAogICAgICAgICAgbGlua3MsCiAgICAgICAgICBsaXN0czogbWFya2Rvd25EYXRhLmxpc3RzLAogICAgICAgICAgZmllbGRzOiBmaW5hbGl6ZUlubGluZUZpZWxkcyhmaWVsZHMpLAogICAgICAgICAgZnJvbnRtYXR0ZXI6IGZyb250bWF0dGVyLAogICAgICAgICAgY3RpbWU6IERhdGVUaW1lLmZyb21NaWxsaXMoc3RhdC5jdGltZSksCiAgICAgICAgICBtdGltZTogRGF0ZVRpbWUuZnJvbU1pbGxpcyhzdGF0Lm10aW1lKSwKICAgICAgICAgIHNpemU6IHN0YXQuc2l6ZSwKICAgICAgICAgIGRheTogZmluZERhdGUocGF0aCwgZmllbGRzKSwKICAgICAgfSk7CiAgfQogIC8qKiBFeHRyYWN0IHRhZ3MgaW50ZWxsaWdlbnRseSBmcm9tIGZyb250bWF0dGVyLiBIYW5kbGVzIGFycmF5cywgbnVtYmVycywgYW5kIHN0cmluZ3MuICovCiAgZnVuY3Rpb24gZXh0cmFjdFRhZ3MobWV0YWRhdGEpIHsKICAgICAgbGV0IHRhZ0tleXMgPSBPYmplY3Qua2V5cyhtZXRhZGF0YSkuZmlsdGVyKHQgPT4gdC50b0xvd2VyQ2FzZSgpID09ICJ0YWdzIiB8fCB0LnRvTG93ZXJDYXNlKCkgPT0gInRhZyIpOwogICAgICByZXR1cm4gdGFnS2V5cwogICAgICAgICAgLm1hcChrID0+IHNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKG1ldGFkYXRhW2tdLCAvWyxcc10rLykpCiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBwLmNvbmNhdChjKSwgW10pCiAgICAgICAgICAubWFwKHN0ciA9PiAoc3RyLnN0YXJ0c1dpdGgoIiMiKSA/IHN0ciA6ICIjIiArIHN0cikpOwogIH0KICAvKiogRXh0cmFjdCBhbGlhc2VzIGludGVsbGlnZW50bHkgZnJvbSBmcm9udG1hdHRlci4gSGFuZGxlcyBhcnJheXMsIG51bWJlcnMsIGFuZCBzdHJpbmdzLiAgKi8KICBmdW5jdGlvbiBleHRyYWN0QWxpYXNlcyhtZXRhZGF0YSkgewogICAgICBsZXQgYWxpYXNLZXlzID0gT2JqZWN0LmtleXMobWV0YWRhdGEpLmZpbHRlcih0ID0+IHQudG9Mb3dlckNhc2UoKSA9PSAiYWxpYXMiIHx8IHQudG9Mb3dlckNhc2UoKSA9PSAiYWxpYXNlcyIpOwogICAgICBjb25zdCByZXN1bHQgPSBbXTsKICAgICAgZm9yIChsZXQga2V5IG9mIGFsaWFzS2V5cykgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBtZXRhZGF0YVtrZXldOwogICAgICAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkKICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi52YWx1ZS5tYXAodiA9PiAoIiIgKyB2KS50cmltKCkpKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5zcGxpdEZyb250bWF0dGVyVGFnT3JBbGlhcyh2YWx1ZSwgLywvKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdDsKICB9CiAgLyoqIFNwbGl0IGEgZnJvbnRtYXR0ZXIgbGlzdCBpbnRvIHNlcGFyYXRlIGVsZW1lbnRzOyBoYW5kbGVzIGFjdHVhbCBsaXN0cywgY29tbWEgc2VwYXJhdGVkIGxpc3RzLCBhbmQgc2luZ2xlIGVsZW1lbnRzLiAqLwogIGZ1bmN0aW9uIHNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKGRhdGEsIG9uKSB7CiAgICAgIGlmIChkYXRhID09IG51bGwgfHwgZGF0YSA9PSB1bmRlZmluZWQpCiAgICAgICAgICByZXR1cm4gW107CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7CiAgICAgICAgICByZXR1cm4gZGF0YQogICAgICAgICAgICAgIC5maWx0ZXIocyA9PiAhIXMpCiAgICAgICAgICAgICAgLm1hcChzID0+IHNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKHMsIG9uKSkKICAgICAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBwLmNvbmNhdChjKSwgW10pOwogICAgICB9CiAgICAgIC8vIEZvcmNlIHRvIGEgc3RyaW5nIHRvIGhhbmRsZSBudW1iZXJzIGFuZCBzbyBvbi4KICAgICAgcmV0dXJuICgiIiArIGRhdGEpCiAgICAgICAgICAuc3BsaXQob24pCiAgICAgICAgICAuZmlsdGVyKHQgPT4gISF0KQogICAgICAgICAgLm1hcCh0ID0+IHQudHJpbSgpKQogICAgICAgICAgLmZpbHRlcih0ID0+IHQubGVuZ3RoID4gMCk7CiAgfQogIC8qKiBQYXJzZSByYXcgKG5ld2xpbmUtZGVsaW1pdGVkKSBtYXJrZG93biwgcmV0dXJuaW5nIGlubGluZSBmaWVsZHMsIGxpc3QgaXRlbXMsIGFuZCBvdGhlciBtZXRhZGF0YS4gKi8KICBmdW5jdGlvbiBwYXJzZU1hcmtkb3duKHBhdGgsIGNvbnRlbnRzLCBtZXRhZGF0YSwgbGlua3NCeUxpbmUpIHsKICAgICAgbGV0IGZpZWxkcyA9IG5ldyBNYXAoKTsKICAgICAgLy8gRXh0cmFjdCB0YXNrIGRhdGEgYW5kIGFwcGVuZCB0aGUgZ2xvYmFsIGRhdGEgZXh0cmFjdGVkIGZyb20gdGhlbSB0byBvdXIgZmllbGRzLgogICAgICBsZXQgW2xpc3RzLCBleHRyYURhdGFdID0gcGFyc2VMaXN0cyhwYXRoLCBjb250ZW50cywgbWV0YWRhdGEsIGxpbmtzQnlMaW5lKTsKICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVzXSBvZiBleHRyYURhdGEuZW50cmllcygpKSB7CiAgICAgICAgICBpZiAoIWZpZWxkcy5oYXMoa2V5KSkKICAgICAgICAgICAgICBmaWVsZHMuc2V0KGtleSwgdmFsdWVzKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBmaWVsZHMuc2V0KGtleSwgZmllbGRzLmdldChrZXkpLmNvbmNhdCh2YWx1ZXMpKTsKICAgICAgfQogICAgICAvLyBUaGUgT2JzaWRpYW4gbWV0YWRhdGEgY2FjaGUgd2lsbCB0cmFjayBsaXN0IGVsZW1lbnRzIGluc2lkZSBvZiBvdGhlciBlbGVtZW50IGdyb3VwcyAobGlrZSBhbm5vdGF0aW9ucyBhbmQKICAgICAgLy8gY2FsbG91dHMpLi4uIHRoaXMgbWVhbnMgd2UgbWlnaHQgc2VlIG1ldGFkYXRhIHR3aWNlLCBzbyBza2lwIHRoZW0gbm93LiBWZXJ5IGFubm95aW5nLgogICAgICBjb25zdCBsaXN0TGluZXNUb1NraXAgPSBuZXcgU2V0KCk7CiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaXN0cykgewogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lLmxpbmVDb3VudDsgaSsrKQogICAgICAgICAgICAgIGxpc3RMaW5lc1RvU2tpcC5hZGQobGluZS5saW5lICsgaSk7CiAgICAgIH0KICAgICAgLy8gT25seSBwYXJzZSBoZWFkaW5nIGFuZCBwYXJhZ3JhcGggZWxlbWVudHMgZm9yIGlubGluZSBmaWVsZHM7IHdlIHdpbGwgcGFyc2UgbGlzdCBtZXRhZGF0YSBzZXBhcmF0ZWx5LgogICAgICBmb3IgKGxldCBzZWN0aW9uIG9mIG1ldGFkYXRhLnNlY3Rpb25zIHx8IFtdKSB7CiAgICAgICAgICBpZiAoc2VjdGlvbi50eXBlID09ICJsaXN0IiB8fCBzZWN0aW9uLnR5cGUgPT0gInJ1bGluZyIpCiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICBmb3IgKGxldCBsaW5lbm8gPSBzZWN0aW9uLnBvc2l0aW9uLnN0YXJ0LmxpbmU7IGxpbmVubyA8PSBzZWN0aW9uLnBvc2l0aW9uLmVuZC5saW5lOyBsaW5lbm8rKykgewogICAgICAgICAgICAgIGxldCBsaW5lID0gY29udGVudHNbbGluZW5vXTsKICAgICAgICAgICAgICBpZiAobGluZSA9PSB1bmRlZmluZWQgfHwgbGluZSA9PSBudWxsKQogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICBpZiAobGlzdExpbmVzVG9Ta2lwLmhhcyhsaW5lbm8pKQogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAvLyBGYXN0IGJhaWwtb3V0IGZvciBsaW5lcyB0aGF0IGFyZSB0b28gbG9uZyBvciBkbyBub3QgY29udGFpbiAnOjonLgogICAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCA+IDMyNzY4IHx8ICFsaW5lLmluY2x1ZGVzKCI6OiIpKQogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CiAgICAgICAgICAgICAgbGV0IGlubGluZUZpZWxkcyA9IGV4dHJhY3RJbmxpbmVGaWVsZHMobGluZSk7CiAgICAgICAgICAgICAgaWYgKGlubGluZUZpZWxkcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgIGZvciAobGV0IGlmaWVsZCBvZiBpbmxpbmVGaWVsZHMpCiAgICAgICAgICAgICAgICAgICAgICBhZGRSYXdJbmxpbmVGaWVsZChpZmllbGQsIGZpZWxkcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICBsZXQgZnVsbExpbmUgPSBleHRyYWN0RnVsbExpbmVGaWVsZChsaW5lKTsKICAgICAgICAgICAgICAgICAgaWYgKGZ1bGxMaW5lKQogICAgICAgICAgICAgICAgICAgICAgYWRkUmF3SW5saW5lRmllbGQoZnVsbExpbmUsIGZpZWxkcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGZpZWxkcywgbGlzdHMgfTsKICB9CiAgLy8gVE9ETzogQ29uc2lkZXIgdXNpbmcgYW4gYWN0dWFsIHBhcnNlciBpbiBsZWl1IG9mIGEgbW9yZSBleHBlbnNpdmUgcmVnZXguCiAgY29uc3QgTElTVF9JVEVNX1JFR0VYID0gL15bXHM+XSooXGQrXC58XGQrXCl8XCp8LXxcKylccyooXFsuezAsMX1cXSk/XHMqKC4qKSQvbXU7CiAgLyoqCiAgICogUGFyc2UgbGlzdCBpdGVtcyBmcm9tIHRoZSBwYWdlICsgbWV0YWRhdGEuIFRoaXMgcmVxdWlyZXMgc29tZSBhZGRpdGlvbmFsIHBhcnNpbmcgYWJvdmUgd2hhdGV2ZXIgT2JzaWRpYW4gcHJvdmlkZXMsCiAgICogc2luY2UgT2JzaWRpYW4gb25seSBnaXZlcyBsaW5lIG51bWJlcnMuCiAgICovCiAgZnVuY3Rpb24gcGFyc2VMaXN0cyhwYXRoLCBjb250ZW50LCBtZXRhZGF0YSwgbGlua3NCeUxpbmUpIHsKICAgICAgbGV0IGNhY2hlID0ge307CiAgICAgIC8vIFBsYWNlIGFsbCBvZiB0aGUgdmFsdWVzIGluIHRoZSBjYWNoZSBiZWZvcmUgcmVzb2x2aW5nIGNoaWxkcmVuICYgbWV0YWRhdGEgcmVsYXRpb25zaGlwcy4KICAgICAgZm9yIChsZXQgcmF3RWxlbWVudCBvZiBtZXRhZGF0YS5saXN0SXRlbXMgfHwgW10pIHsKICAgICAgICAgIC8vIE1hdGNoIG9uIHRoZSBmaXJzdCBsaW5lIHRvIGdldCB0aGUgc3ltYm9sIGFuZCBmaXJzdCBsaW5lIG9mIHRleHQuCiAgICAgICAgICBsZXQgcmF3TWF0Y2ggPSBMSVNUX0lURU1fUkVHRVguZXhlYyhjb250ZW50W3Jhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZV0pOwogICAgICAgICAgaWYgKCFyYXdNYXRjaCkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIC8vIEFuZCB0aGVuIHN0cmlwIHVubmVjZXNzYXJ5IHNwYWNpbmcgZnJvbSB0aGUgcmVtYWluaW5nIGxpbmVzLgogICAgICAgICAgbGV0IHRleHRQYXJ0cyA9IFtyYXdNYXRjaFszXV0KICAgICAgICAgICAgICAuY29uY2F0KGNvbnRlbnQuc2xpY2UocmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lICsgMSwgcmF3RWxlbWVudC5wb3NpdGlvbi5lbmQubGluZSArIDEpKQogICAgICAgICAgICAgIC5tYXAodCA9PiB0LnRyaW0oKSk7CiAgICAgICAgICBsZXQgdGV4dFdpdGhOZXdsaW5lID0gdGV4dFBhcnRzLmpvaW4oIlxuIik7CiAgICAgICAgICBsZXQgdGV4dE5vTmV3bGluZSA9IHRleHRQYXJ0cy5qb2luKCIgIik7CiAgICAgICAgICAvLyBGaW5kIHRoZSBsaXN0IHRoYXQgd2UgYXJlIGEgcGFydCBvZiBieSBsaW5lLgogICAgICAgICAgbGV0IGNvbnRhaW5pbmdMaXN0SWQgPSAobWV0YWRhdGEuc2VjdGlvbnMgfHwgW10pLmZpbmRJbmRleChzID0+IHMudHlwZSA9PSAibGlzdCIgJiYKICAgICAgICAgICAgICBzLnBvc2l0aW9uLnN0YXJ0LmxpbmUgPD0gcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lICYmCiAgICAgICAgICAgICAgcy5wb3NpdGlvbi5lbmQubGluZSA+PSByYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUpOwogICAgICAgICAgLy8gRmluZCB0aGUgc2VjdGlvbiB3ZSBiZWxvbmcgdG8gYXMgd2VsbC4KICAgICAgICAgIGxldCBzZWN0aW9uTmFtZSA9IGZpbmRQcmV2aW91c0hlYWRlcihyYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUsIG1ldGFkYXRhLmhlYWRpbmdzIHx8IFtdKTsKICAgICAgICAgIGxldCBzZWN0aW9uTGluayA9IHNlY3Rpb25OYW1lID09PSB1bmRlZmluZWQgPyBMaW5rLmZpbGUocGF0aCkgOiBMaW5rLmhlYWRlcihwYXRoLCBzZWN0aW9uTmFtZSk7CiAgICAgICAgICBsZXQgY2xvc2VzdExpbmsgPSByYXdFbGVtZW50LmlkID09PSB1bmRlZmluZWQgPyBzZWN0aW9uTGluayA6IExpbmsuYmxvY2socGF0aCwgcmF3RWxlbWVudC5pZCk7CiAgICAgICAgICAvLyBHYXRoZXIgYW55IGxpbmtzIHRoYXQgb2NjdXIgb24gdGhlIHNhbWUgbGluZXMgYXMgdGhlIHRhc2suCiAgICAgICAgICBjb25zdCBsaW5rcyA9IFtdOwogICAgICAgICAgZm9yIChsZXQgbGluZSA9IHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZTsgbGluZSA8PSByYXdFbGVtZW50LnBvc2l0aW9uLmVuZC5saW5lOyBsaW5lKyspIHsKICAgICAgICAgICAgICBpZiAobGlua3NCeUxpbmVbbGluZV0pCiAgICAgICAgICAgICAgICAgIGxpbmtzLnB1c2goLi4ubGlua3NCeUxpbmVbbGluZV0pOwogICAgICAgICAgfQogICAgICAgICAgLy8gQ29uc3RydWN0IHVuaXZlcnNhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGVsZW1lbnQgKGJlZm9yZSB0YXNrcykuCiAgICAgICAgICBsZXQgaXRlbSA9IG5ldyBMaXN0SXRlbSh7CiAgICAgICAgICAgICAgc3ltYm9sOiByYXdNYXRjaFsxXSwKICAgICAgICAgICAgICBsaW5rOiBjbG9zZXN0TGluaywKICAgICAgICAgICAgICBsaW5rczogbGlua3MsCiAgICAgICAgICAgICAgc2VjdGlvbjogc2VjdGlvbkxpbmssCiAgICAgICAgICAgICAgdGV4dDogdGV4dFdpdGhOZXdsaW5lLAogICAgICAgICAgICAgIHRhZ3M6IGV4dHJhY3RUYWdzJDEodGV4dE5vTmV3bGluZSksCiAgICAgICAgICAgICAgbGluZTogcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lLAogICAgICAgICAgICAgIGxpbmVDb3VudDogcmF3RWxlbWVudC5wb3NpdGlvbi5lbmQubGluZSAtIHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZSArIDEsCiAgICAgICAgICAgICAgbGlzdDogY29udGFpbmluZ0xpc3RJZCA9PSAtMSA/IC0xIDogKG1ldGFkYXRhLnNlY3Rpb25zIHx8IFtdKVtjb250YWluaW5nTGlzdElkXS5wb3NpdGlvbi5zdGFydC5saW5lLAogICAgICAgICAgICAgIHBvc2l0aW9uOiByYXdFbGVtZW50LnBvc2l0aW9uLAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSwKICAgICAgICAgICAgICBibG9ja0lkOiByYXdFbGVtZW50LmlkLAogICAgICAgICAgfSk7CiAgICAgICAgICBpZiAocmF3RWxlbWVudC5wYXJlbnQgPj0gMCAmJiByYXdFbGVtZW50LnBhcmVudCAhPSBpdGVtLmxpbmUpCiAgICAgICAgICAgICAgaXRlbS5wYXJlbnQgPSByYXdFbGVtZW50LnBhcmVudDsKICAgICAgICAgIC8vIFNldCB1cCB0aGUgYmFzaWMgdGFzayBpbmZvcm1hdGlvbiBmb3Igbm93LCB0aG91Z2ggd2UgaGF2ZSB0byByZWNvbXB1dGUgYGZ1bGx5Q29tcHV0ZWRgIGxhdGVyLgogICAgICAgICAgaWYgKHJhd0VsZW1lbnQudGFzaykgewogICAgICAgICAgICAgIGl0ZW0udGFzayA9IHsKICAgICAgICAgICAgICAgICAgc3RhdHVzOiByYXdFbGVtZW50LnRhc2ssCiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHJhd0VsZW1lbnQudGFzayAhPSAiIiAmJiByYXdFbGVtZW50LnRhc2sgIT0gIiAiLAogICAgICAgICAgICAgICAgICBjb21wbGV0ZWQ6IHJhd0VsZW1lbnQudGFzayA9PSAiWCIgfHwgcmF3RWxlbWVudC50YXNrID09ICJ4IiwKICAgICAgICAgICAgICAgICAgZnVsbHlDb21wbGV0ZWQ6IHJhd0VsZW1lbnQudGFzayA9PSAiWCIgfHwgcmF3RWxlbWVudC50YXNrID09ICJ4IiwKICAgICAgICAgICAgICB9OwogICAgICAgICAgfQogICAgICAgICAgLy8gRXh0cmFjdCBpbmxpbmUgZmllbGRzOyBleHRyYWN0IGZ1bGwtbGluZSBmaWVsZHMgb25seSBpZiB3ZSBhcmUgTk9UIGEgdGFzay4KICAgICAgICAgIGl0ZW0uZmllbGRzID0gbmV3IE1hcCgpOwogICAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBleHRyYWN0SW5saW5lRmllbGRzKHRleHROb05ld2xpbmUsIHRydWUpKQogICAgICAgICAgICAgIGFkZFJhd0lubGluZUZpZWxkKGVsZW1lbnQsIGl0ZW0uZmllbGRzKTsKICAgICAgICAgIGlmICghcmF3RWxlbWVudC50YXNrICYmIGl0ZW0uZmllbGRzLnNpemUgPT0gMCkgewogICAgICAgICAgICAgIGxldCBmdWxsTGluZSA9IGV4dHJhY3RGdWxsTGluZUZpZWxkKHRleHROb05ld2xpbmUpOwogICAgICAgICAgICAgIGlmIChmdWxsTGluZSkKICAgICAgICAgICAgICAgICAgYWRkUmF3SW5saW5lRmllbGQoZnVsbExpbmUsIGl0ZW0uZmllbGRzKTsKICAgICAgICAgIH0KICAgICAgICAgIGNhY2hlW2l0ZW0ubGluZV0gPSBpdGVtOwogICAgICB9CiAgICAgIC8vIFRyZWUgdXBkYXRpbmcgcGFzc2VzLiBVcGRhdGUgY2hpbGQgbGlzdHMuIFByb3BvZ2F0ZSBtZXRhZGF0YSB1cCB0byBwYXJlbnQgdGFza3MuIFVwZGF0ZSB0YXNrIGBmdWxseUNvbXBsZXRlZGAuCiAgICAgIGxldCBsaXRlcmFscyA9IG5ldyBNYXAoKTsKICAgICAgZm9yIChsZXQgbGlzdEl0ZW0gb2YgT2JqZWN0LnZhbHVlcyhjYWNoZSkpIHsKICAgICAgICAgIC8vIFBhc3MgMTogVXBkYXRlIGNoaWxkIGxpc3RzLgogICAgICAgICAgaWYgKGxpc3RJdGVtLnBhcmVudCAhPT0gdW5kZWZpbmVkICYmIGxpc3RJdGVtLnBhcmVudCBpbiBjYWNoZSkgewogICAgICAgICAgICAgIGxldCBwYXJlbnQgPSBjYWNoZVtsaXN0SXRlbS5wYXJlbnRdOwogICAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKGxpc3RJdGVtLmxpbmUpOwogICAgICAgICAgfQogICAgICAgICAgLy8gUGFzcyAyOiBQcm9wb2dhdGUgbWV0YWRhdGEgdXAgdG8gdGhlIHBhcmVudCB0YXNrIG9yIHJvb3QgZWxlbWVudC4KICAgICAgICAgIGlmICghbGlzdEl0ZW0udGFzaykgewogICAgICAgICAgICAgIG1lcmdlRmllbGRHcm91cHMobGl0ZXJhbHMsIGxpc3RJdGVtLmZpZWxkcyk7CiAgICAgICAgICAgICAgLy8gVE9ETyAoYmxhY2tzbWl0aGd1KTogVGhlIGJlbG93IGNvZGUgcHJvcGVybHkgcHJvcG9nYXRlcyBtZXRhZGF0YSB1cCB0byB0aGUgbmVhcmVzdCB0YXNrLCB3aGljaCBpcyB0aGUKICAgICAgICAgICAgICAvLyBtb3JlIGludHVpdGl2ZSBiZWhhdmlvci4gRm9yIG5vdywgdGhvdWdoLCB3ZSB3aWxsIGtlZXAgdGhlIGV4aXN0aW5nIGxvZ2ljLgogICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgbGV0IHJvb3Q6IExpc3RJdGVtIHwgdW5kZWZpbmVkID0gbGlzdEl0ZW07CiAgICAgICAgICAgICAgd2hpbGUgKCEhcm9vdCAmJiAhcm9vdC50YXNrKSByb290ID0gY2FjaGVbcm9vdC5wYXJlbnQgPz8gLTFdOwoKICAgICAgICAgICAgICAvLyBJZiB0aGUgcm9vdCBpcyBudWxsLCBhcHBlbmQgdGhpcyBtZXRhZGF0YSB0byB0aGUgcm9vdDsgb3RoZXJ3aXNlLCBhcHBlbmQgdG8gdGhlIHRhc2suCiAgICAgICAgICAgICAgbWVyZ2VGaWVsZEdyb3Vwcyhyb290ID09PSB1bmRlZmluZWQgfHwgcm9vdCA9PSBudWxsID8gbGl0ZXJhbHMgOiByb290LmZpZWxkcywgbGlzdEl0ZW0uZmllbGRzKTsKICAgICAgICAgICAgICAqLwogICAgICAgICAgfQogICAgICAgICAgLy8gUGFzcyAzOiBQcm9wb2dhdGUgYGZ1bGx5Q29tcGxldGVkYCB1cCB0aGUgdGFzayB0cmVlLiBUaGlzIGlzIGEgbGl0dGxlIGxlc3MgZWZmaWNpZW50IHRoYW4ganVzdCBkb2luZyBhIHNpbXBsZQogICAgICAgICAgLy8gREZTIHVzaW5nIHRoZSBjaGlsZHJlbiBJRHMsIGJ1dCBpdCdzIHByb2JhYmx5IGZpbmUuCiAgICAgICAgICBpZiAobGlzdEl0ZW0udGFzaykgewogICAgICAgICAgICAgIGxldCBjdXJyID0gbGlzdEl0ZW07CiAgICAgICAgICAgICAgd2hpbGUgKCEhY3VycikgewogICAgICAgICAgICAgICAgICBpZiAoY3Vyci50YXNrKQogICAgICAgICAgICAgICAgICAgICAgY3Vyci50YXNrLmZ1bGx5Q29tcGxldGVkID0gY3Vyci50YXNrLmZ1bGx5Q29tcGxldGVkICYmIGxpc3RJdGVtLnRhc2suY29tcGxldGVkOwogICAgICAgICAgICAgICAgICBjdXJyID0gY2FjaGVbY3Vyci5wYXJlbnQgPz8gLTFdOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gW09iamVjdC52YWx1ZXMoY2FjaGUpLCBsaXRlcmFsc107CiAgfQogIC8qKiBBdHRlbXB0IHRvIGZpbmQgYSBkYXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcGFnZSBmcm9tIG1ldGFkYXRhIG9yIGZpbGVuYW1lcy4gKi8KICBmdW5jdGlvbiBmaW5kRGF0ZShmaWxlLCBmaWVsZHMpIHsKICAgICAgZm9yIChsZXQga2V5IG9mIGZpZWxkcy5rZXlzKCkpIHsKICAgICAgICAgIGlmICghKGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09ICJkYXRlIiB8fCBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSAiZGF5IikpCiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICBsZXQgdmFsdWUgPSBmaWVsZHMuZ2V0KGtleSk7CiAgICAgICAgICBpZiAoVmFsdWVzLmlzRGF0ZSh2YWx1ZSkpIHsKICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmIChWYWx1ZXMuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCAmJiBWYWx1ZXMuaXNEYXRlKHZhbHVlWzBdKSkgewogICAgICAgICAgICAgIHJldHVybiB2YWx1ZVswXTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKFZhbHVlcy5pc0xpbmsodmFsdWUpKSB7CiAgICAgICAgICAgICAgbGV0IGRhdGUgPSBleHRyYWN0RGF0ZSh2YWx1ZS5wYXRoKSA/PyBleHRyYWN0RGF0ZSh2YWx1ZS5zdWJwYXRoID8/ICIiKSA/PyBleHRyYWN0RGF0ZSh2YWx1ZS5kaXNwbGF5ID8/ICIiKTsKICAgICAgICAgICAgICBpZiAoZGF0ZSkKICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGU7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGV4dHJhY3REYXRlKGdldEZpbGVUaXRsZShmaWxlKSk7CiAgfQogIC8qKiBSZWN1cnNpdmVseSBjb252ZXJ0IGZyb250bWF0dGVyIGludG8gZmllbGRzLiBXZSBoYXZlIHRvIGRhbmNlIGFyb3VuZCBZQU1MIHN0cnVjdHVyZS4gKi8KICBmdW5jdGlvbiBwYXJzZUZyb250bWF0dGVyKHZhbHVlKSB7CiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiKSB7CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHsKICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107CiAgICAgICAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocGFyc2VGcm9udG1hdHRlcihjaGlsZCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7CiAgICAgICAgICAgICAgbGV0IGRhdGVQYXJzZSA9IERhdGVUaW1lLmZyb21KU0RhdGUodmFsdWUpOwogICAgICAgICAgICAgIHJldHVybiBkYXRlUGFyc2U7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0gdmFsdWU7CiAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHt9OwogICAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBvYmplY3QpIHsKICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBwYXJzZUZyb250bWF0dGVyKG9iamVjdFtrZXldKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICJudW1iZXIiKSB7CiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAiYm9vbGVhbiIpIHsKICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICBsZXQgZGF0ZVBhcnNlID0gRVhQUkVTU0lPTi5kYXRlLnBhcnNlKHZhbHVlKTsKICAgICAgICAgIGlmIChkYXRlUGFyc2Uuc3RhdHVzKQogICAgICAgICAgICAgIHJldHVybiBkYXRlUGFyc2UudmFsdWU7CiAgICAgICAgICBsZXQgZHVyYXRpb25QYXJzZSA9IEVYUFJFU1NJT04uZHVyYXRpb24ucGFyc2UodmFsdWUpOwogICAgICAgICAgaWYgKGR1cmF0aW9uUGFyc2Uuc3RhdHVzKQogICAgICAgICAgICAgIHJldHVybiBkdXJhdGlvblBhcnNlLnZhbHVlOwogICAgICAgICAgbGV0IGxpbmtQYXJzZSA9IEVYUFJFU1NJT04uZW1iZWRMaW5rLnBhcnNlKHZhbHVlKTsKICAgICAgICAgIGlmIChsaW5rUGFyc2Uuc3RhdHVzKQogICAgICAgICAgICAgIHJldHVybiBsaW5rUGFyc2UudmFsdWU7CiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgLy8gQmFja3VwIGlmIHdlIGRvbid0IHVuZGVyc3RhbmQgdGhlIHR5cGUuCiAgICAgIHJldHVybiBudWxsOwogIH0KICAvKiogQWRkIGEgcGFyc2VkIGlubGluZSBmaWVsZCB0byB0aGUgb3V0cHV0IG1hcC4gKi8KICBmdW5jdGlvbiBhZGRSYXdJbmxpbmVGaWVsZChmaWVsZCwgb3V0cHV0KSB7CiAgICAgIGFkZElubGluZUZpZWxkKGZpZWxkLmtleSwgcGFyc2VJbmxpbmVWYWx1ZShmaWVsZC52YWx1ZSksIG91dHB1dCk7CiAgfQogIC8qKiBBZGQgYSByYXcgaW5saW5lIGZpZWxkIHRvIGFuIG91dHB1dCBtYXAsIGNhbm9uaWNhbGl6aW5nIGFzIG5lZWRlZC4gKi8KICBmdW5jdGlvbiBhZGRJbmxpbmVGaWVsZChrZXksIHZhbHVlLCBvdXRwdXQpIHsKICAgICAgaWYgKCFvdXRwdXQuaGFzKGtleSkpCiAgICAgICAgICBvdXRwdXQuc2V0KGtleSwgW3ZhbHVlXSk7CiAgICAgIGVsc2UKICAgICAgICAgIG91dHB1dC5nZXQoa2V5KT8ucHVzaCh2YWx1ZSk7CiAgfQogIC8qKiBHaXZlbiBhIHJhdyBsaXN0IG9mIGlubGluZSBmaWVsZCB2YWx1ZXMsIGFkZCBub3JtYWxpemVkIGtleXMgYW5kIHNxdWFzaCB0aGVtLiAqLwogIGZ1bmN0aW9uIGZpbmFsaXplSW5saW5lRmllbGRzKGZpZWxkcykgewogICAgICAvLyBDb21wdXRlIHVuaXF1ZSBub3JtYWxpemVkIGtleXMgKHRoYXQgZG8gbm90IG92ZXJsYXAgdy8gdGhlIGZpZWxkcykuCiAgICAgIGxldCBub3JtYWxpemVkID0gbmV3IE1hcCgpOwogICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZXNdIG9mIGZpZWxkcy5lbnRyaWVzKCkpIHsKICAgICAgICAgIGxldCBub3JtS2V5ID0gY2Fub25pY2FsaXplVmFyTmFtZShrZXkpOwogICAgICAgICAgaWYgKG5vcm1LZXkgPT0gIiIgfHwgZmllbGRzLmhhcyhub3JtS2V5KSkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIGlmICghbm9ybWFsaXplZC5oYXMobm9ybUtleSkpCiAgICAgICAgICAgICAgbm9ybWFsaXplZC5zZXQobm9ybUtleSwgdmFsdWVzKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBub3JtYWxpemVkLnNldChub3JtS2V5LCBub3JtYWxpemVkLmdldChub3JtS2V5KS5jb25jYXQodmFsdWVzKSk7CiAgICAgIH0KICAgICAgLy8gQ29tYmluZSBub3JtYWxpemVkICsgbm9ybWFsIGtleXMuCiAgICAgIGxldCBpbnRlcmltID0gbmV3IE1hcCgpOwogICAgICBtZXJnZUZpZWxkR3JvdXBzKGludGVyaW0sIGZpZWxkcyk7CiAgICAgIG1lcmdlRmllbGRHcm91cHMoaW50ZXJpbSwgbm9ybWFsaXplZCk7CiAgICAgIC8vIEFuZCB0aGVuIGZsYXR0ZW4gdGhlbS4KICAgICAgbGV0IHJlc3VsdCA9IG5ldyBNYXAoKTsKICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIGludGVyaW0uZW50cmllcygpKSB7CiAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDEpCiAgICAgICAgICAgICAgcmVzdWx0LnNldChrZXksIHZhbHVlWzBdKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICByZXN1bHQuc2V0KGtleSwgdmFsdWUpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHQ7CiAgfQogIC8qKiBDb3B5IGFsbCBmaWVsZHMgb2YgJ3NvdXJjZScgaW50byAndGFyZ2V0Jy4gKi8KICBmdW5jdGlvbiBtZXJnZUZpZWxkR3JvdXBzKHRhcmdldCwgc291cmNlKSB7CiAgICAgIGZvciAobGV0IGtleSBvZiBzb3VyY2Uua2V5cygpKSB7CiAgICAgICAgICBpZiAoIXRhcmdldC5oYXMoa2V5KSkKICAgICAgICAgICAgICB0YXJnZXQuc2V0KGtleSwgc291cmNlLmdldChrZXkpKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB0YXJnZXQuc2V0KGtleSwgdGFyZ2V0LmdldChrZXkpLmNvbmNhdChzb3VyY2UuZ2V0KGtleSkpKTsKICAgICAgfQogIH0KICAvKiogRmluZCB0aGUgaGVhZGVyIHRoYXQgaXMgbW9zdCBpbW1lZGlhdGVseSBhYm92ZSB0aGUgZ2l2ZW4gbGluZSBudW1iZXIuICovCiAgZnVuY3Rpb24gZmluZFByZXZpb3VzSGVhZGVyKGxpbmUsIGhlYWRlcnMpIHsKICAgICAgaWYgKGhlYWRlcnMubGVuZ3RoID09IDApCiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgICBpZiAoaGVhZGVyc1swXS5wb3NpdGlvbi5zdGFydC5saW5lID4gbGluZSkKICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICAgIGxldCBpbmRleCA9IGhlYWRlcnMubGVuZ3RoIC0gMTsKICAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgaGVhZGVyc1tpbmRleF0ucG9zaXRpb24uc3RhcnQubGluZSA+IGxpbmUpCiAgICAgICAgICBpbmRleC0tOwogICAgICByZXR1cm4gaGVhZGVyc1tpbmRleF0uaGVhZGluZzsKICB9CgogIC8qKiBBY3R1YWwgaW1wb3J0IGltcGxlbWVudGF0aW9uIGJhY2tlbmQuIFRoaXMgbXVzdCByZW1haW4gc2VwYXJhdGUgZnJvbSBgaW1wb3J0LWVudHJ5YCBzaW5jZSBpdCBpcyB1c2VkIHdpdGhvdXQgd2ViIHdvcmtlcnMuICovCiAgZnVuY3Rpb24gcnVuSW1wb3J0KHBhdGgsIGNvbnRlbnRzLCBzdGF0cywgbWV0YWRhdGEpIHsKICAgICAgcmV0dXJuIHBhcnNlUGFnZShwYXRoLCBjb250ZW50cywgc3RhdHMsIG1ldGFkYXRhKTsKICB9CgogIC8qKiBTaW1wbGlmaWVzIHBhc3NpbmcgZGF0YXZpZXcgdmFsdWVzIGFjcm9zcyB0aGUgSlMgd2ViIHdvcmtlciBiYXJyaWVyLiAqLwogIHZhciBUcmFuc2ZlcmFibGU7CiAgKGZ1bmN0aW9uIChUcmFuc2ZlcmFibGUpIHsKICAgICAgLyoqIENvbnZlcnQgYSBsaXRlcmFsIHZhbHVlIHRvIGEgc2VyaWFsaXplci1mcmllbmRseSB0cmFuc2ZlcmFibGUgdmFsdWUuICovCiAgICAgIGZ1bmN0aW9uIHRyYW5zZmVyYWJsZSh2YWx1ZSkgewogICAgICAgICAgLy8gSGFuZGxlIHNpbXBsZSB1bml2ZXJzYWwgdHlwZXMgZmlyc3QuCiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBNYXApIHsKICAgICAgICAgICAgICBsZXQgY29waWVkID0gbmV3IE1hcCgpOwogICAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbF0gb2YgdmFsdWUuZW50cmllcygpKQogICAgICAgICAgICAgICAgICBjb3BpZWQuc2V0KHRyYW5zZmVyYWJsZShrZXkpLCB0cmFuc2ZlcmFibGUodmFsKSk7CiAgICAgICAgICAgICAgcmV0dXJuIGNvcGllZDsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgU2V0KSB7CiAgICAgICAgICAgICAgbGV0IGNvcGllZCA9IG5ldyBTZXQoKTsKICAgICAgICAgICAgICBmb3IgKGxldCB2YWwgb2YgdmFsdWUpCiAgICAgICAgICAgICAgICAgIGNvcGllZC5hZGQodHJhbnNmZXJhYmxlKHZhbCkpOwogICAgICAgICAgICAgIHJldHVybiBjb3BpZWQ7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgd3JhcHBlZCA9IFZhbHVlcy53cmFwVmFsdWUodmFsdWUpOwogICAgICAgICAgaWYgKHdyYXBwZWQgPT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICB0aHJvdyBFcnJvcigiVW5yZWNvZ25pemVkIHRyYW5zZmVyYWJsZSB2YWx1ZTogIiArIHZhbHVlKTsKICAgICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7CiAgICAgICAgICAgICAgY2FzZSAibnVsbCI6CiAgICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTsKICAgICAgICAgICAgICBjYXNlICJkYXRlIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICAgICJfX190cmFuc2Zlci10eXBlIjogImRhdGUiLAogICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRyYW5zZmVyYWJsZSh3cmFwcGVkLnZhbHVlLnRvT2JqZWN0KCkpLAogICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogewogICAgICAgICAgICAgICAgICAgICAgICAgIHpvbmU6IHdyYXBwZWQudmFsdWUuem9uZS5lcXVhbHMoU3lzdGVtWm9uZS5pbnN0YW5jZSkgPyB1bmRlZmluZWQgOiB3cmFwcGVkLnZhbHVlLnpvbmVOYW1lLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBjYXNlICJkdXJhdGlvbiI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB7ICJfX190cmFuc2Zlci10eXBlIjogImR1cmF0aW9uIiwgdmFsdWU6IHRyYW5zZmVyYWJsZSh3cmFwcGVkLnZhbHVlLnRvT2JqZWN0KCkpIH07CiAgICAgICAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXAodiA9PiB0cmFuc2ZlcmFibGUodikpOwogICAgICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICAgICAgICByZXR1cm4geyAiX19fdHJhbnNmZXItdHlwZSI6ICJsaW5rIiwgdmFsdWU6IHRyYW5zZmVyYWJsZSh3cmFwcGVkLnZhbHVlLnRvT2JqZWN0KCkpIH07CiAgICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHt9OwogICAgICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMod3JhcHBlZC52YWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZmVyYWJsZSh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgVHJhbnNmZXJhYmxlLnRyYW5zZmVyYWJsZSA9IHRyYW5zZmVyYWJsZTsKICAgICAgLyoqIENvbnZlcnQgYSB0cmFuc2ZlcmFibGUgdmFsdWUgYmFjayB0byBhIGxpdGVyYWwgdmFsdWUgd2UgY2FuIHdvcmsgd2l0aC4gKi8KICAgICAgZnVuY3Rpb24gdmFsdWUodHJhbnNmZXJhYmxlKSB7CiAgICAgICAgICBpZiAodHJhbnNmZXJhYmxlID09PSBudWxsKSB7CiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmICh0cmFuc2ZlcmFibGUgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmICh0cmFuc2ZlcmFibGUgaW5zdGFuY2VvZiBNYXApIHsKICAgICAgICAgICAgICBsZXQgcmVhbCA9IG5ldyBNYXAoKTsKICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWxdIG9mIHRyYW5zZmVyYWJsZS5lbnRyaWVzKCkpCiAgICAgICAgICAgICAgICAgIHJlYWwuc2V0KHZhbHVlKGtleSksIHZhbHVlKHZhbCkpOwogICAgICAgICAgICAgIHJldHVybiByZWFsOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAodHJhbnNmZXJhYmxlIGluc3RhbmNlb2YgU2V0KSB7CiAgICAgICAgICAgICAgbGV0IHJlYWwgPSBuZXcgU2V0KCk7CiAgICAgICAgICAgICAgZm9yIChsZXQgdmFsIG9mIHRyYW5zZmVyYWJsZSkKICAgICAgICAgICAgICAgICAgcmVhbC5hZGQodmFsdWUodmFsKSk7CiAgICAgICAgICAgICAgcmV0dXJuIHJlYWw7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRyYW5zZmVyYWJsZSkpIHsKICAgICAgICAgICAgICByZXR1cm4gdHJhbnNmZXJhYmxlLm1hcCh2ID0+IHZhbHVlKHYpKTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB0cmFuc2ZlcmFibGUgPT09ICJvYmplY3QiKSB7CiAgICAgICAgICAgICAgaWYgKCJfX190cmFuc2Zlci10eXBlIiBpbiB0cmFuc2ZlcmFibGUpIHsKICAgICAgICAgICAgICAgICAgc3dpdGNoICh0cmFuc2ZlcmFibGVbIl9fX3RyYW5zZmVyLXR5cGUiXSkgewogICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGF0ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGVPcHRzID0gdmFsdWUodHJhbnNmZXJhYmxlLm9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRlRGF0YSA9IHZhbHVlKHRyYW5zZmVyYWJsZS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3QoZGF0ZURhdGEsIHsgem9uZTogZGF0ZU9wdHMuem9uZSB9KTsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoKICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdCh2YWx1ZSh0cmFuc2ZlcmFibGUudmFsdWUpKTsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMaW5rLmZyb21PYmplY3QodmFsdWUodHJhbnNmZXJhYmxlLnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBVbnJlY29nbml6ZWQgdHJhbnNmZXIgdHlwZSAnJHt0cmFuc2ZlcmFibGVbIl9fX3RyYW5zZmVyLXR5cGUiXX0nYCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHt9OwogICAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXModHJhbnNmZXJhYmxlKSkKICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZSh2YWwpOwogICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJhbnNmZXJhYmxlOwogICAgICB9CiAgICAgIFRyYW5zZmVyYWJsZS52YWx1ZSA9IHZhbHVlOwogIH0pKFRyYW5zZmVyYWJsZSB8fCAoVHJhbnNmZXJhYmxlID0ge30pKTsKCiAgLyoqIEVudHJ5LXBvaW50IHNjcmlwdCB1c2VkIGJ5IHRoZSBpbmRleCBhcyBhIHdlYiB3b3JrZXIuICovCiAgLyoqIEFuIGltcG9ydCB3aGljaCBjYW4gZmFpbCBhbmQgcmFpc2UgYW4gZXhjZXB0aW9uLCB3aGljaCB3aWxsIGJlIGNhdWdodCBieSB0aGUgaGFuZGxlci4gKi8KICBmdW5jdGlvbiBmYWlsYWJsZUltcG9ydChwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEpIHsKICAgICAgaWYgKG1ldGFkYXRhID09PSB1bmRlZmluZWQgfHwgbWV0YWRhdGEgPT09IG51bGwpIHsKICAgICAgICAgIHRocm93IEVycm9yKGBDYW5ub3QgaW5kZXggZmlsZSwgc2luY2UgaXQgaGFzIG5vIE9ic2lkaWFuIGZpbGUgbWV0YWRhdGEuYCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJ1bkltcG9ydChwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEpOwogIH0KICBvbm1lc3NhZ2UgPSBhc3luYyAoZXZ0KSA9PiB7CiAgICAgIHRyeSB7CiAgICAgICAgICBsZXQgeyBwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEgfSA9IGV2dC5kYXRhOwogICAgICAgICAgbGV0IHJlc3VsdCA9IGZhaWxhYmxlSW1wb3J0KHBhdGgsIGNvbnRlbnRzLCBzdGF0LCBtZXRhZGF0YSk7CiAgICAgICAgICBwb3N0TWVzc2FnZSh7IHBhdGg6IGV2dC5kYXRhLnBhdGgsIHJlc3VsdDogVHJhbnNmZXJhYmxlLnRyYW5zZmVyYWJsZShyZXN1bHQpIH0pOwogICAgICB9CiAgICAgIGNhdGNoIChlcnJvcikgewogICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpOwogICAgICAgICAgcG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgIHBhdGg6IGV2dC5kYXRhLnBhdGgsCiAgICAgICAgICAgICAgcmVzdWx0OiB7CiAgICAgICAgICAgICAgICAgICRlcnJvcjogYEZhaWxlZCB0byBpbmRleCBmaWxlOiAke2V2dC5kYXRhLnBhdGh9OiAke2Vycm9yfWAsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICB9CiAgfTsKCn0pKCk7Cgo=', null, false); +var WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICd1c2Ugc3RyaWN0JzsKCiAgLy8gdGhlc2UgYXJlbid0IHJlYWxseSBwcml2YXRlLCBidXQgbm9yIGFyZSB0aGV5IHJlYWxseSB1c2VmdWwgdG8gZG9jdW1lbnQKCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBMdXhvbkVycm9yIGV4dGVuZHMgRXJyb3Ige30KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBJbnZhbGlkRGF0ZVRpbWVFcnJvciBleHRlbmRzIEx1eG9uRXJyb3IgewogICAgY29uc3RydWN0b3IocmVhc29uKSB7CiAgICAgIHN1cGVyKGBJbnZhbGlkIERhdGVUaW1lOiAke3JlYXNvbi50b01lc3NhZ2UoKX1gKTsKICAgIH0KICB9CgogIC8qKgogICAqIEBwcml2YXRlCiAgICovCiAgY2xhc3MgSW52YWxpZEludGVydmFsRXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHsKICAgIGNvbnN0cnVjdG9yKHJlYXNvbikgewogICAgICBzdXBlcihgSW52YWxpZCBJbnRlcnZhbDogJHtyZWFzb24udG9NZXNzYWdlKCl9YCk7CiAgICB9CiAgfQoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwogIGNsYXNzIEludmFsaWREdXJhdGlvbkVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7CiAgICBjb25zdHJ1Y3RvcihyZWFzb24pIHsKICAgICAgc3VwZXIoYEludmFsaWQgRHVyYXRpb246ICR7cmVhc29uLnRvTWVzc2FnZSgpfWApOwogICAgfQogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige30KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBJbnZhbGlkVW5pdEVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7CiAgICBjb25zdHJ1Y3Rvcih1bml0KSB7CiAgICAgIHN1cGVyKGBJbnZhbGlkIHVuaXQgJHt1bml0fWApOwogICAgfQogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBJbnZhbGlkQXJndW1lbnRFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige30KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KICBjbGFzcyBab25lSXNBYnN0cmFjdEVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgc3VwZXIoIlpvbmUgaXMgYW4gYWJzdHJhY3QgY2xhc3MiKTsKICAgIH0KICB9CgogIC8qKgogICAqIEBwcml2YXRlCiAgICovCgogIGNvbnN0IG4gPSAibnVtZXJpYyIsCiAgICBzID0gInNob3J0IiwKICAgIGwgPSAibG9uZyI7CgogIGNvbnN0IERBVEVfU0hPUlQgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IG4sCiAgICBkYXk6IG4sCiAgfTsKCiAgY29uc3QgREFURV9NRUQgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IHMsCiAgICBkYXk6IG4sCiAgfTsKCiAgY29uc3QgREFURV9NRURfV0lUSF9XRUVLREFZID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBzLAogICAgZGF5OiBuLAogICAgd2Vla2RheTogcywKICB9OwoKICBjb25zdCBEQVRFX0ZVTEwgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IGwsCiAgICBkYXk6IG4sCiAgfTsKCiAgY29uc3QgREFURV9IVUdFID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBsLAogICAgZGF5OiBuLAogICAgd2Vla2RheTogbCwKICB9OwoKICBjb25zdCBUSU1FX1NJTVBMRSA9IHsKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgfTsKCiAgY29uc3QgVElNRV9XSVRIX1NFQ09ORFMgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogIH07CgogIGNvbnN0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogICAgdGltZVpvbmVOYW1lOiBzLAogIH07CgogIGNvbnN0IFRJTUVfV0lUSF9MT05HX09GRlNFVCA9IHsKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgICBzZWNvbmQ6IG4sCiAgICB0aW1lWm9uZU5hbWU6IGwsCiAgfTsKCiAgY29uc3QgVElNRV8yNF9TSU1QTEUgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgaG91ckN5Y2xlOiAiaDIzIiwKICB9OwoKICBjb25zdCBUSU1FXzI0X1dJVEhfU0VDT05EUyA9IHsKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgICBzZWNvbmQ6IG4sCiAgICBob3VyQ3ljbGU6ICJoMjMiLAogIH07CgogIGNvbnN0IFRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogICAgaG91ckN5Y2xlOiAiaDIzIiwKICAgIHRpbWVab25lTmFtZTogcywKICB9OwoKICBjb25zdCBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQgPSB7CiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogICAgaG91ckN5Y2xlOiAiaDIzIiwKICAgIHRpbWVab25lTmFtZTogbCwKICB9OwoKICBjb25zdCBEQVRFVElNRV9TSE9SVCA9IHsKICAgIHllYXI6IG4sCiAgICBtb250aDogbiwKICAgIGRheTogbiwKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgfTsKCiAgY29uc3QgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBuLAogICAgZGF5OiBuLAogICAgaG91cjogbiwKICAgIG1pbnV0ZTogbiwKICAgIHNlY29uZDogbiwKICB9OwoKICBjb25zdCBEQVRFVElNRV9NRUQgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IHMsCiAgICBkYXk6IG4sCiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogIH07CgogIGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IHMsCiAgICBkYXk6IG4sCiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgc2Vjb25kOiBuLAogIH07CgogIGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkgPSB7CiAgICB5ZWFyOiBuLAogICAgbW9udGg6IHMsCiAgICBkYXk6IG4sCiAgICB3ZWVrZGF5OiBzLAogICAgaG91cjogbiwKICAgIG1pbnV0ZTogbiwKICB9OwoKICBjb25zdCBEQVRFVElNRV9GVUxMID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBsLAogICAgZGF5OiBuLAogICAgaG91cjogbiwKICAgIG1pbnV0ZTogbiwKICAgIHRpbWVab25lTmFtZTogcywKICB9OwoKICBjb25zdCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyA9IHsKICAgIHllYXI6IG4sCiAgICBtb250aDogbCwKICAgIGRheTogbiwKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgICBzZWNvbmQ6IG4sCiAgICB0aW1lWm9uZU5hbWU6IHMsCiAgfTsKCiAgY29uc3QgREFURVRJTUVfSFVHRSA9IHsKICAgIHllYXI6IG4sCiAgICBtb250aDogbCwKICAgIGRheTogbiwKICAgIHdlZWtkYXk6IGwsCiAgICBob3VyOiBuLAogICAgbWludXRlOiBuLAogICAgdGltZVpvbmVOYW1lOiBsLAogIH07CgogIGNvbnN0IERBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTID0gewogICAgeWVhcjogbiwKICAgIG1vbnRoOiBsLAogICAgZGF5OiBuLAogICAgd2Vla2RheTogbCwKICAgIGhvdXI6IG4sCiAgICBtaW51dGU6IG4sCiAgICBzZWNvbmQ6IG4sCiAgICB0aW1lWm9uZU5hbWU6IGwsCiAgfTsKCiAgLyoqCiAgICogQGludGVyZmFjZQogICAqLwogIGNsYXNzIFpvbmUgewogICAgLyoqCiAgICAgKiBUaGUgdHlwZSBvZiB6b25lCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCB0eXBlKCkgewogICAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhpcyB6b25lLgogICAgICogQGFic3RyYWN0CiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgbmFtZSgpIHsKICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKICAgIH0KCiAgICBnZXQgaWFuYU5hbWUoKSB7CiAgICAgIHJldHVybiB0aGlzLm5hbWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIG9mZnNldCBpcyBrbm93biB0byBiZSBmaXhlZCBmb3IgdGhlIHdob2xlIHllYXIuCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEB0eXBlIHtib29sZWFufQogICAgICovCiAgICBnZXQgaXNVbml2ZXJzYWwoKSB7CiAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyBjb21tb24gbmFtZSAoc3VjaCBhcyBFU1QpIGF0IHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gYWZmZWN0IHRoZSBmb3JtYXQKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLmZvcm1hdCAtIFdoYXQgc3R5bGUgb2Ygb2Zmc2V0IHRvIHJldHVybi4gQWNjZXB0cyAnbG9uZycgb3IgJ3Nob3J0Jy4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLmxvY2FsZSAtIFdoYXQgbG9jYWxlIHRvIHJldHVybiB0aGUgb2Zmc2V0IG5hbWUgaW4uCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIG9mZnNldE5hbWUodHMsIG9wdHMpIHsKICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG9mZnNldCdzIHZhbHVlIGFzIGEgc3RyaW5nCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBvZmZzZXQKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgLSBXaGF0IHN0eWxlIG9mIG9mZnNldCB0byByZXR1cm4uCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXB0cyAnbmFycm93JywgJ3Nob3J0Jywgb3IgJ3RlY2hpZScuIFJldHVybmluZyAnKzYnLCAnKzA2OjAwJywgb3IgJyswNjAwJyByZXNwZWN0aXZlbHkKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHsKICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgZm9yIHRoaXMgem9uZSBhdCB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC4KICAgICAqIEBhYnN0cmFjdAogICAgICogQHBhcmFtIHtudW1iZXJ9IHRzIC0gRXBvY2ggbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0byBjb21wdXRlIHRoZSBvZmZzZXQKICAgICAqIEByZXR1cm4ge251bWJlcn0KICAgICAqLwogICAgb2Zmc2V0KHRzKSB7CiAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIFpvbmUgaXMgZXF1YWwgdG8gYW5vdGhlciB6b25lCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSB7Wm9uZX0gb3RoZXJab25lIC0gdGhlIHpvbmUgdG8gY29tcGFyZQogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgZXF1YWxzKG90aGVyWm9uZSkgewogICAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIHZhbGlkLgogICAgICogQGFic3RyYWN0CiAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KICAgICAqLwogICAgZ2V0IGlzVmFsaWQoKSB7CiAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CiAgICB9CiAgfQoKICBsZXQgc2luZ2xldG9uJDEgPSBudWxsOwoKICAvKioKICAgKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuCiAgICogQGltcGxlbWVudHMge1pvbmV9CiAgICovCiAgY2xhc3MgU3lzdGVtWm9uZSBleHRlbmRzIFpvbmUgewogICAgLyoqCiAgICAgKiBHZXQgYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIGxvY2FsIHpvbmUKICAgICAqIEByZXR1cm4ge1N5c3RlbVpvbmV9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKSB7CiAgICAgIGlmIChzaW5nbGV0b24kMSA9PT0gbnVsbCkgewogICAgICAgIHNpbmdsZXRvbiQxID0gbmV3IFN5c3RlbVpvbmUoKTsKICAgICAgfQogICAgICByZXR1cm4gc2luZ2xldG9uJDE7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCB0eXBlKCkgewogICAgICByZXR1cm4gInN5c3RlbSI7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBuYW1lKCkgewogICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IGlzVW5pdmVyc2FsKCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIG9mZnNldE5hbWUodHMsIHsgZm9ybWF0LCBsb2NhbGUgfSkgewogICAgICByZXR1cm4gcGFyc2Vab25lSW5mbyh0cywgZm9ybWF0LCBsb2NhbGUpOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkgewogICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgb2Zmc2V0KHRzKSB7CiAgICAgIHJldHVybiAtbmV3IERhdGUodHMpLmdldFRpbWV6b25lT2Zmc2V0KCk7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGVxdWFscyhvdGhlclpvbmUpIHsKICAgICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSAic3lzdGVtIjsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IGlzVmFsaWQoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KCiAgbGV0IGR0ZkNhY2hlID0ge307CiAgZnVuY3Rpb24gbWFrZURURih6b25lKSB7CiAgICBpZiAoIWR0ZkNhY2hlW3pvbmVdKSB7CiAgICAgIGR0ZkNhY2hlW3pvbmVdID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIiwgewogICAgICAgIGhvdXIxMjogZmFsc2UsCiAgICAgICAgdGltZVpvbmU6IHpvbmUsCiAgICAgICAgeWVhcjogIm51bWVyaWMiLAogICAgICAgIG1vbnRoOiAiMi1kaWdpdCIsCiAgICAgICAgZGF5OiAiMi1kaWdpdCIsCiAgICAgICAgaG91cjogIjItZGlnaXQiLAogICAgICAgIG1pbnV0ZTogIjItZGlnaXQiLAogICAgICAgIHNlY29uZDogIjItZGlnaXQiLAogICAgICAgIGVyYTogInNob3J0IiwKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gZHRmQ2FjaGVbem9uZV07CiAgfQoKICBjb25zdCB0eXBlVG9Qb3MgPSB7CiAgICB5ZWFyOiAwLAogICAgbW9udGg6IDEsCiAgICBkYXk6IDIsCiAgICBlcmE6IDMsCiAgICBob3VyOiA0LAogICAgbWludXRlOiA1LAogICAgc2Vjb25kOiA2LAogIH07CgogIGZ1bmN0aW9uIGhhY2t5T2Zmc2V0KGR0ZiwgZGF0ZSkgewogICAgY29uc3QgZm9ybWF0dGVkID0gZHRmLmZvcm1hdChkYXRlKS5yZXBsYWNlKC9cdTIwMEUvZywgIiIpLAogICAgICBwYXJzZWQgPSAvKFxkKylcLyhcZCspXC8oXGQrKSAoQUR8QkMpLD8gKFxkKyk6KFxkKyk6KFxkKykvLmV4ZWMoZm9ybWF0dGVkKSwKICAgICAgWywgZk1vbnRoLCBmRGF5LCBmWWVhciwgZmFkT3JCYywgZkhvdXIsIGZNaW51dGUsIGZTZWNvbmRdID0gcGFyc2VkOwogICAgcmV0dXJuIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmYWRPckJjLCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF07CiAgfQoKICBmdW5jdGlvbiBwYXJ0c09mZnNldChkdGYsIGRhdGUpIHsKICAgIGNvbnN0IGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXRUb1BhcnRzKGRhdGUpOwogICAgY29uc3QgZmlsbGVkID0gW107CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZC5sZW5ndGg7IGkrKykgewogICAgICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBmb3JtYXR0ZWRbaV07CiAgICAgIGNvbnN0IHBvcyA9IHR5cGVUb1Bvc1t0eXBlXTsKCiAgICAgIGlmICh0eXBlID09PSAiZXJhIikgewogICAgICAgIGZpbGxlZFtwb3NdID0gdmFsdWU7CiAgICAgIH0gZWxzZSBpZiAoIWlzVW5kZWZpbmVkKHBvcykpIHsKICAgICAgICBmaWxsZWRbcG9zXSA9IHBhcnNlSW50KHZhbHVlLCAxMCk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBmaWxsZWQ7CiAgfQoKICBsZXQgaWFuYVpvbmVDYWNoZSA9IHt9OwogIC8qKgogICAqIEEgem9uZSBpZGVudGlmaWVkIGJ5IGFuIElBTkEgaWRlbnRpZmllciwgbGlrZSBBbWVyaWNhL05ld19Zb3JrCiAgICogQGltcGxlbWVudHMge1pvbmV9CiAgICovCiAgY2xhc3MgSUFOQVpvbmUgZXh0ZW5kcyBab25lIHsKICAgIC8qKgogICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWUKICAgICAqIEByZXR1cm4ge0lBTkFab25lfQogICAgICovCiAgICBzdGF0aWMgY3JlYXRlKG5hbWUpIHsKICAgICAgaWYgKCFpYW5hWm9uZUNhY2hlW25hbWVdKSB7CiAgICAgICAgaWFuYVpvbmVDYWNoZVtuYW1lXSA9IG5ldyBJQU5BWm9uZShuYW1lKTsKICAgICAgfQogICAgICByZXR1cm4gaWFuYVpvbmVDYWNoZVtuYW1lXTsKICAgIH0KCiAgICAvKioKICAgICAqIFJlc2V0IGxvY2FsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLgogICAgICogQHJldHVybiB7dm9pZH0KICAgICAqLwogICAgc3RhdGljIHJlc2V0Q2FjaGUoKSB7CiAgICAgIGlhbmFab25lQ2FjaGUgPSB7fTsKICAgICAgZHRmQ2FjaGUgPSB7fTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgc3RyaW5nIGlzIGEgdmFsaWQgc3BlY2lmaWVyLiBUaGlzIG9ubHkgY2hlY2tzIHRoZSBzdHJpbmcncyBmb3JtYXQsIG5vdCB0aGF0IHRoZSBzcGVjaWZpZXIgaWRlbnRpZmllcyBhIGtub3duIHpvbmU7IHNlZSBpc1ZhbGlkWm9uZSBmb3IgdGhhdC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIHN0cmluZyB0byBjaGVjayB2YWxpZGl0eSBvbgogICAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcigiQW1lcmljYS9OZXdfWW9yayIpIC8vPT4gdHJ1ZQogICAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcigiU3BvcnR+fmJsb3JwIikgLy89PiBmYWxzZQogICAgICogQGRlcHJlY2F0ZWQgVGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZSBmb3Igc29tZSB2YWxpZCBJQU5BIG5hbWVzLiBVc2UgaXNWYWxpZFpvbmUgaW5zdGVhZC4KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIHN0YXRpYyBpc1ZhbGlkU3BlY2lmaWVyKHMpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZFpvbmUocyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHN0cmluZyBpZGVudGlmaWVzIGEgcmVhbCB6b25lCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFRoZSBzdHJpbmcgdG8gY2hlY2sKICAgICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRab25lKCJBbWVyaWNhL05ld19Zb3JrIikgLy89PiB0cnVlCiAgICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkWm9uZSgiRmFudGFzaWEvQ2FzdGxlIikgLy89PiBmYWxzZQogICAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoIlNwb3J0fn5ibG9ycCIpIC8vPT4gZmFsc2UKICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIHN0YXRpYyBpc1ZhbGlkWm9uZSh6b25lKSB7CiAgICAgIGlmICghem9uZSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICB0cnkgewogICAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIsIHsgdGltZVpvbmU6IHpvbmUgfSkuZm9ybWF0KCk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KCiAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgIHN1cGVyKCk7CiAgICAgIC8qKiBAcHJpdmF0ZSAqKi8KICAgICAgdGhpcy56b25lTmFtZSA9IG5hbWU7CiAgICAgIC8qKiBAcHJpdmF0ZSAqKi8KICAgICAgdGhpcy52YWxpZCA9IElBTkFab25lLmlzVmFsaWRab25lKG5hbWUpOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBnZXQgdHlwZSgpIHsKICAgICAgcmV0dXJuICJpYW5hIjsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IG5hbWUoKSB7CiAgICAgIHJldHVybiB0aGlzLnpvbmVOYW1lOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBnZXQgaXNVbml2ZXJzYWwoKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgb2Zmc2V0TmFtZSh0cywgeyBmb3JtYXQsIGxvY2FsZSB9KSB7CiAgICAgIHJldHVybiBwYXJzZVpvbmVJbmZvKHRzLCBmb3JtYXQsIGxvY2FsZSwgdGhpcy5uYW1lKTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHsKICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh0aGlzLm9mZnNldCh0cyksIGZvcm1hdCk7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIG9mZnNldCh0cykgewogICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodHMpOwoKICAgICAgaWYgKGlzTmFOKGRhdGUpKSByZXR1cm4gTmFOOwoKICAgICAgY29uc3QgZHRmID0gbWFrZURURih0aGlzLm5hbWUpOwogICAgICBsZXQgW3llYXIsIG1vbnRoLCBkYXksIGFkT3JCYywgaG91ciwgbWludXRlLCBzZWNvbmRdID0gZHRmLmZvcm1hdFRvUGFydHMKICAgICAgICA/IHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkKICAgICAgICA6IGhhY2t5T2Zmc2V0KGR0ZiwgZGF0ZSk7CgogICAgICBpZiAoYWRPckJjID09PSAiQkMiKSB7CiAgICAgICAgeWVhciA9IC1NYXRoLmFicyh5ZWFyKSArIDE7CiAgICAgIH0KCiAgICAgIC8vIGJlY2F1c2Ugd2UncmUgdXNpbmcgaG91cjEyIGFuZCBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMDI1NTY0JmNhbj0yJnE9JTIyMjQlM0EwMCUyMiUyMGRhdGV0aW1lZm9ybWF0CiAgICAgIGNvbnN0IGFkanVzdGVkSG91ciA9IGhvdXIgPT09IDI0ID8gMCA6IGhvdXI7CgogICAgICBjb25zdCBhc1VUQyA9IG9ialRvTG9jYWxUUyh7CiAgICAgICAgeWVhciwKICAgICAgICBtb250aCwKICAgICAgICBkYXksCiAgICAgICAgaG91cjogYWRqdXN0ZWRIb3VyLAogICAgICAgIG1pbnV0ZSwKICAgICAgICBzZWNvbmQsCiAgICAgICAgbWlsbGlzZWNvbmQ6IDAsCiAgICAgIH0pOwoKICAgICAgbGV0IGFzVFMgPSArZGF0ZTsKICAgICAgY29uc3Qgb3ZlciA9IGFzVFMgJSAxMDAwOwogICAgICBhc1RTIC09IG92ZXIgPj0gMCA/IG92ZXIgOiAxMDAwICsgb3ZlcjsKICAgICAgcmV0dXJuIChhc1VUQyAtIGFzVFMpIC8gKDYwICogMTAwMCk7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGVxdWFscyhvdGhlclpvbmUpIHsKICAgICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSAiaWFuYSIgJiYgb3RoZXJab25lLm5hbWUgPT09IHRoaXMubmFtZTsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IGlzVmFsaWQoKSB7CiAgICAgIHJldHVybiB0aGlzLnZhbGlkOwogICAgfQogIH0KCiAgLy8gdG9kbyAtIHJlbWFwIGNhY2hpbmcKCiAgbGV0IGludGxMRkNhY2hlID0ge307CiAgZnVuY3Rpb24gZ2V0Q2FjaGVkTEYobG9jU3RyaW5nLCBvcHRzID0ge30pIHsKICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTsKICAgIGxldCBkdGYgPSBpbnRsTEZDYWNoZVtrZXldOwogICAgaWYgKCFkdGYpIHsKICAgICAgZHRmID0gbmV3IEludGwuTGlzdEZvcm1hdChsb2NTdHJpbmcsIG9wdHMpOwogICAgICBpbnRsTEZDYWNoZVtrZXldID0gZHRmOwogICAgfQogICAgcmV0dXJuIGR0ZjsKICB9CgogIGxldCBpbnRsRFRDYWNoZSA9IHt9OwogIGZ1bmN0aW9uIGdldENhY2hlZERURihsb2NTdHJpbmcsIG9wdHMgPSB7fSkgewogICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pOwogICAgbGV0IGR0ZiA9IGludGxEVENhY2hlW2tleV07CiAgICBpZiAoIWR0ZikgewogICAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpOwogICAgICBpbnRsRFRDYWNoZVtrZXldID0gZHRmOwogICAgfQogICAgcmV0dXJuIGR0ZjsKICB9CgogIGxldCBpbnRsTnVtQ2FjaGUgPSB7fTsKICBmdW5jdGlvbiBnZXRDYWNoZWRJTkYobG9jU3RyaW5nLCBvcHRzID0ge30pIHsKICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTsKICAgIGxldCBpbmYgPSBpbnRsTnVtQ2FjaGVba2V5XTsKICAgIGlmICghaW5mKSB7CiAgICAgIGluZiA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NTdHJpbmcsIG9wdHMpOwogICAgICBpbnRsTnVtQ2FjaGVba2V5XSA9IGluZjsKICAgIH0KICAgIHJldHVybiBpbmY7CiAgfQoKICBsZXQgaW50bFJlbENhY2hlID0ge307CiAgZnVuY3Rpb24gZ2V0Q2FjaGVkUlRGKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7CiAgICBjb25zdCB7IGJhc2UsIC4uLmNhY2hlS2V5T3B0cyB9ID0gb3B0czsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9ucwogICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgY2FjaGVLZXlPcHRzXSk7CiAgICBsZXQgaW5mID0gaW50bFJlbENhY2hlW2tleV07CiAgICBpZiAoIWluZikgewogICAgICBpbmYgPSBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQobG9jU3RyaW5nLCBvcHRzKTsKICAgICAgaW50bFJlbENhY2hlW2tleV0gPSBpbmY7CiAgICB9CiAgICByZXR1cm4gaW5mOwogIH0KCiAgbGV0IHN5c0xvY2FsZUNhY2hlID0gbnVsbDsKICBmdW5jdGlvbiBzeXN0ZW1Mb2NhbGUoKSB7CiAgICBpZiAoc3lzTG9jYWxlQ2FjaGUpIHsKICAgICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlOwogICAgfSBlbHNlIHsKICAgICAgc3lzTG9jYWxlQ2FjaGUgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKICAgICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlOwogICAgfQogIH0KCiAgZnVuY3Rpb24gcGFyc2VMb2NhbGVTdHJpbmcobG9jYWxlU3RyKSB7CiAgICAvLyBJIHJlYWxseSB3YW50IHRvIGF2b2lkIHdyaXRpbmcgYSBCQ1AgNDcgcGFyc2VyCiAgICAvLyBzZWUsIGUuZy4gaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9iY3AtNDcKICAgIC8vIEluc3RlYWQsIHdlJ2xsIGRvIHRoaXM6CgogICAgLy8gYSkgaWYgdGhlIHN0cmluZyBoYXMgbm8gLXUgZXh0ZW5zaW9ucywganVzdCBsZWF2ZSBpdCBhbG9uZQogICAgLy8gYikgaWYgaXQgZG9lcywgdXNlIEludGwgdG8gcmVzb2x2ZSBldmVyeXRoaW5nCiAgICAvLyBjKSBpZiBJbnRsIGZhaWxzLCB0cnkgYWdhaW4gd2l0aG91dCB0aGUgLXUKCiAgICAvLyBwcml2YXRlIHN1YnRhZ3MgYW5kIHVuaWNvZGUgc3VidGFncyBoYXZlIG9yZGVyaW5nIHJlcXVpcmVtZW50cywKICAgIC8vIGFuZCB3ZSdyZSBub3QgcHJvcGVybHkgcGFyc2luZyB0aGlzLCBzbyBqdXN0IHN0cmlwIG91dCB0aGUKICAgIC8vIHByaXZhdGUgb25lcyBpZiB0aGV5IGV4aXN0LgogICAgY29uc3QgeEluZGV4ID0gbG9jYWxlU3RyLmluZGV4T2YoIi14LSIpOwogICAgaWYgKHhJbmRleCAhPT0gLTEpIHsKICAgICAgbG9jYWxlU3RyID0gbG9jYWxlU3RyLnN1YnN0cmluZygwLCB4SW5kZXgpOwogICAgfQoKICAgIGNvbnN0IHVJbmRleCA9IGxvY2FsZVN0ci5pbmRleE9mKCItdS0iKTsKICAgIGlmICh1SW5kZXggPT09IC0xKSB7CiAgICAgIHJldHVybiBbbG9jYWxlU3RyXTsKICAgIH0gZWxzZSB7CiAgICAgIGxldCBvcHRpb25zOwogICAgICBsZXQgc2VsZWN0ZWRTdHI7CiAgICAgIHRyeSB7CiAgICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihsb2NhbGVTdHIpLnJlc29sdmVkT3B0aW9ucygpOwogICAgICAgIHNlbGVjdGVkU3RyID0gbG9jYWxlU3RyOwogICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgY29uc3Qgc21hbGxlciA9IGxvY2FsZVN0ci5zdWJzdHJpbmcoMCwgdUluZGV4KTsKICAgICAgICBvcHRpb25zID0gZ2V0Q2FjaGVkRFRGKHNtYWxsZXIpLnJlc29sdmVkT3B0aW9ucygpOwogICAgICAgIHNlbGVjdGVkU3RyID0gc21hbGxlcjsKICAgICAgfQoKICAgICAgY29uc3QgeyBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBvcHRpb25zOwogICAgICByZXR1cm4gW3NlbGVjdGVkU3RyLCBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyXTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGludGxDb25maWdTdHJpbmcobG9jYWxlU3RyLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKSB7CiAgICBpZiAob3V0cHV0Q2FsZW5kYXIgfHwgbnVtYmVyaW5nU3lzdGVtKSB7CiAgICAgIGlmICghbG9jYWxlU3RyLmluY2x1ZGVzKCItdS0iKSkgewogICAgICAgIGxvY2FsZVN0ciArPSAiLXUiOwogICAgICB9CgogICAgICBpZiAob3V0cHV0Q2FsZW5kYXIpIHsKICAgICAgICBsb2NhbGVTdHIgKz0gYC1jYS0ke291dHB1dENhbGVuZGFyfWA7CiAgICAgIH0KCiAgICAgIGlmIChudW1iZXJpbmdTeXN0ZW0pIHsKICAgICAgICBsb2NhbGVTdHIgKz0gYC1udS0ke251bWJlcmluZ1N5c3RlbX1gOwogICAgICB9CiAgICAgIHJldHVybiBsb2NhbGVTdHI7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gbG9jYWxlU3RyOwogICAgfQogIH0KCiAgZnVuY3Rpb24gbWFwTW9udGhzKGYpIHsKICAgIGNvbnN0IG1zID0gW107CiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAxMjsgaSsrKSB7CiAgICAgIGNvbnN0IGR0ID0gRGF0ZVRpbWUudXRjKDIwMDksIGksIDEpOwogICAgICBtcy5wdXNoKGYoZHQpKTsKICAgIH0KICAgIHJldHVybiBtczsKICB9CgogIGZ1bmN0aW9uIG1hcFdlZWtkYXlzKGYpIHsKICAgIGNvbnN0IG1zID0gW107CiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA3OyBpKyspIHsKICAgICAgY29uc3QgZHQgPSBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzICsgaSk7CiAgICAgIG1zLnB1c2goZihkdCkpOwogICAgfQogICAgcmV0dXJuIG1zOwogIH0KCiAgZnVuY3Rpb24gbGlzdFN0dWZmKGxvYywgbGVuZ3RoLCBlbmdsaXNoRm4sIGludGxGbikgewogICAgY29uc3QgbW9kZSA9IGxvYy5saXN0aW5nTW9kZSgpOwoKICAgIGlmIChtb2RlID09PSAiZXJyb3IiKSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfSBlbHNlIGlmIChtb2RlID09PSAiZW4iKSB7CiAgICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBpbnRsRm4obGVuZ3RoKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHN1cHBvcnRzRmFzdE51bWJlcnMobG9jKSB7CiAgICBpZiAobG9jLm51bWJlcmluZ1N5c3RlbSAmJiBsb2MubnVtYmVyaW5nU3lzdGVtICE9PSAibGF0biIpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICgKICAgICAgICBsb2MubnVtYmVyaW5nU3lzdGVtID09PSAibGF0biIgfHwKICAgICAgICAhbG9jLmxvY2FsZSB8fAogICAgICAgIGxvYy5sb2NhbGUuc3RhcnRzV2l0aCgiZW4iKSB8fAogICAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvYy5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW0gPT09ICJsYXRuIgogICAgICApOwogICAgfQogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KCiAgY2xhc3MgUG9seU51bWJlckZvcm1hdHRlciB7CiAgICBjb25zdHJ1Y3RvcihpbnRsLCBmb3JjZVNpbXBsZSwgb3B0cykgewogICAgICB0aGlzLnBhZFRvID0gb3B0cy5wYWRUbyB8fCAwOwogICAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTsKCiAgICAgIGNvbnN0IHsgcGFkVG8sIGZsb29yLCAuLi5vdGhlck9wdHMgfSA9IG9wdHM7CgogICAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkgewogICAgICAgIGNvbnN0IGludGxPcHRzID0geyB1c2VHcm91cGluZzogZmFsc2UsIC4uLm9wdHMgfTsKICAgICAgICBpZiAob3B0cy5wYWRUbyA+IDApIGludGxPcHRzLm1pbmltdW1JbnRlZ2VyRGlnaXRzID0gb3B0cy5wYWRUbzsKICAgICAgICB0aGlzLmluZiA9IGdldENhY2hlZElORihpbnRsLCBpbnRsT3B0cyk7CiAgICAgIH0KICAgIH0KCiAgICBmb3JtYXQoaSkgewogICAgICBpZiAodGhpcy5pbmYpIHsKICAgICAgICBjb25zdCBmaXhlZCA9IHRoaXMuZmxvb3IgPyBNYXRoLmZsb29yKGkpIDogaTsKICAgICAgICByZXR1cm4gdGhpcy5pbmYuZm9ybWF0KGZpeGVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvLyB0byBtYXRjaCB0aGUgYnJvd3NlcidzIG51bWJlcmZvcm1hdHRlciBkZWZhdWx0cwogICAgICAgIGNvbnN0IGZpeGVkID0gdGhpcy5mbG9vciA/IE1hdGguZmxvb3IoaSkgOiByb3VuZFRvKGksIDMpOwogICAgICAgIHJldHVybiBwYWRTdGFydChmaXhlZCwgdGhpcy5wYWRUbyk7CiAgICAgIH0KICAgIH0KICB9CgogIC8qKgogICAqIEBwcml2YXRlCiAgICovCgogIGNsYXNzIFBvbHlEYXRlRm9ybWF0dGVyIHsKICAgIGNvbnN0cnVjdG9yKGR0LCBpbnRsLCBvcHRzKSB7CiAgICAgIHRoaXMub3B0cyA9IG9wdHM7CiAgICAgIHRoaXMub3JpZ2luYWxab25lID0gdW5kZWZpbmVkOwoKICAgICAgbGV0IHogPSB1bmRlZmluZWQ7CiAgICAgIGlmICh0aGlzLm9wdHMudGltZVpvbmUpIHsKICAgICAgICAvLyBEb24ndCBhcHBseSBhbnkgd29ya2Fyb3VuZHMgaWYgYSB0aW1lWm9uZSBpcyBleHBsaWNpdGx5IHByb3ZpZGVkIGluIG9wdHMKICAgICAgICB0aGlzLmR0ID0gZHQ7CiAgICAgIH0gZWxzZSBpZiAoZHQuem9uZS50eXBlID09PSAiZml4ZWQiKSB7CiAgICAgICAgLy8gVVRDLTggb3IgRXRjL1VUQy04IGFyZSBub3QgcGFydCBvZiB0emRhdGEsIG9ubHkgRXRjL0dNVCs4IGFuZCB0aGUgbGlrZS4KICAgICAgICAvLyBUaGF0IGlzIHdoeSBmaXhlZC1vZmZzZXQgVFogaXMgc2V0IHRvIHRoYXQgdW5sZXNzIGl0IGlzOgogICAgICAgIC8vIDEuIFJlcHJlc2VudGluZyBvZmZzZXQgMCB3aGVuIFVUQyBpcyB1c2VkIHRvIG1haW50YWluIHByZXZpb3VzIGJlaGF2aW9yIGFuZCBkb2VzIG5vdCBiZWNvbWUgR01ULgogICAgICAgIC8vIDIuIFVuc3VwcG9ydGVkIGJ5IHRoZSBicm93c2VyOgogICAgICAgIC8vICAgIC0gc29tZSBkbyBub3Qgc3VwcG9ydCBFdGMvCiAgICAgICAgLy8gICAgLSA8IEV0Yy9HTVQtMTQsID4gRXRjL0dNVCsxMiwgYW5kIDMwLW1pbnV0ZSBvciA0NS1taW51dGUgb2Zmc2V0cyBhcmUgbm90IHBhcnQgb2YgdHpkYXRhCiAgICAgICAgY29uc3QgZ210T2Zmc2V0ID0gLTEgKiAoZHQub2Zmc2V0IC8gNjApOwogICAgICAgIGNvbnN0IG9mZnNldFogPSBnbXRPZmZzZXQgPj0gMCA/IGBFdGMvR01UKyR7Z210T2Zmc2V0fWAgOiBgRXRjL0dNVCR7Z210T2Zmc2V0fWA7CiAgICAgICAgaWYgKGR0Lm9mZnNldCAhPT0gMCAmJiBJQU5BWm9uZS5jcmVhdGUob2Zmc2V0WikudmFsaWQpIHsKICAgICAgICAgIHogPSBvZmZzZXRaOwogICAgICAgICAgdGhpcy5kdCA9IGR0OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyBOb3QgYWxsIGZpeGVkLW9mZnNldCB6b25lcyBsaWtlIEV0Yy8rNDozMCBhcmUgcHJlc2VudCBpbiB0emRhdGEgc28KICAgICAgICAgIC8vIHdlIG1hbnVhbGx5IGFwcGx5IHRoZSBvZmZzZXQgYW5kIHN1YnN0aXR1dGUgdGhlIHpvbmUgYXMgbmVlZGVkLgogICAgICAgICAgeiA9ICJVVEMiOwogICAgICAgICAgdGhpcy5kdCA9IGR0Lm9mZnNldCA9PT0gMCA/IGR0IDogZHQuc2V0Wm9uZSgiVVRDIikucGx1cyh7IG1pbnV0ZXM6IGR0Lm9mZnNldCB9KTsKICAgICAgICAgIHRoaXMub3JpZ2luYWxab25lID0gZHQuem9uZTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZHQuem9uZS50eXBlID09PSAic3lzdGVtIikgewogICAgICAgIHRoaXMuZHQgPSBkdDsKICAgICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09ICJpYW5hIikgewogICAgICAgIHRoaXMuZHQgPSBkdDsKICAgICAgICB6ID0gZHQuem9uZS5uYW1lOwogICAgICB9IGVsc2UgewogICAgICAgIC8vIEN1c3RvbSB6b25lcyBjYW4gaGF2ZSBhbnkgb2Zmc2V0IC8gb2Zmc2V0TmFtZSBzbyB3ZSBqdXN0IG1hbnVhbGx5CiAgICAgICAgLy8gYXBwbHkgdGhlIG9mZnNldCBhbmQgc3Vic3RpdHV0ZSB0aGUgem9uZSBhcyBuZWVkZWQuCiAgICAgICAgeiA9ICJVVEMiOwogICAgICAgIHRoaXMuZHQgPSBkdC5zZXRab25lKCJVVEMiKS5wbHVzKHsgbWludXRlczogZHQub2Zmc2V0IH0pOwogICAgICAgIHRoaXMub3JpZ2luYWxab25lID0gZHQuem9uZTsKICAgICAgfQoKICAgICAgY29uc3QgaW50bE9wdHMgPSB7IC4uLnRoaXMub3B0cyB9OwogICAgICBpbnRsT3B0cy50aW1lWm9uZSA9IGludGxPcHRzLnRpbWVab25lIHx8IHo7CiAgICAgIHRoaXMuZHRmID0gZ2V0Q2FjaGVkRFRGKGludGwsIGludGxPcHRzKTsKICAgIH0KCiAgICBmb3JtYXQoKSB7CiAgICAgIGlmICh0aGlzLm9yaWdpbmFsWm9uZSkgewogICAgICAgIC8vIElmIHdlIGhhdmUgdG8gc3Vic3RpdHV0ZSBpbiB0aGUgYWN0dWFsIHpvbmUgbmFtZSwgd2UgaGF2ZSB0byB1c2UKICAgICAgICAvLyBmb3JtYXRUb1BhcnRzIHNvIHRoYXQgdGhlIHRpbWV6b25lIGNhbiBiZSByZXBsYWNlZC4KICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRUb1BhcnRzKCkKICAgICAgICAgIC5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpCiAgICAgICAgICAuam9pbigiIik7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMuZHRmLmZvcm1hdCh0aGlzLmR0LnRvSlNEYXRlKCkpOwogICAgfQoKICAgIGZvcm1hdFRvUGFydHMoKSB7CiAgICAgIGNvbnN0IHBhcnRzID0gdGhpcy5kdGYuZm9ybWF0VG9QYXJ0cyh0aGlzLmR0LnRvSlNEYXRlKCkpOwogICAgICBpZiAodGhpcy5vcmlnaW5hbFpvbmUpIHsKICAgICAgICByZXR1cm4gcGFydHMubWFwKChwYXJ0KSA9PiB7CiAgICAgICAgICBpZiAocGFydC50eXBlID09PSAidGltZVpvbmVOYW1lIikgewogICAgICAgICAgICBjb25zdCBvZmZzZXROYW1lID0gdGhpcy5vcmlnaW5hbFpvbmUub2Zmc2V0TmFtZSh0aGlzLmR0LnRzLCB7CiAgICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmR0LmxvY2FsZSwKICAgICAgICAgICAgICBmb3JtYXQ6IHRoaXMub3B0cy50aW1lWm9uZU5hbWUsCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIC4uLnBhcnQsCiAgICAgICAgICAgICAgdmFsdWU6IG9mZnNldE5hbWUsCiAgICAgICAgICAgIH07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gcGFydDsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gcGFydHM7CiAgICB9CgogICAgcmVzb2x2ZWRPcHRpb25zKCkgewogICAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7CiAgICB9CiAgfQoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwogIGNsYXNzIFBvbHlSZWxGb3JtYXR0ZXIgewogICAgY29uc3RydWN0b3IoaW50bCwgaXNFbmdsaXNoLCBvcHRzKSB7CiAgICAgIHRoaXMub3B0cyA9IHsgc3R5bGU6ICJsb25nIiwgLi4ub3B0cyB9OwogICAgICBpZiAoIWlzRW5nbGlzaCAmJiBoYXNSZWxhdGl2ZSgpKSB7CiAgICAgICAgdGhpcy5ydGYgPSBnZXRDYWNoZWRSVEYoaW50bCwgb3B0cyk7CiAgICAgIH0KICAgIH0KCiAgICBmb3JtYXQoY291bnQsIHVuaXQpIHsKICAgICAgaWYgKHRoaXMucnRmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMucnRmLmZvcm1hdChjb3VudCwgdW5pdCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIGZvcm1hdFJlbGF0aXZlVGltZSh1bml0LCBjb3VudCwgdGhpcy5vcHRzLm51bWVyaWMsIHRoaXMub3B0cy5zdHlsZSAhPT0gImxvbmciKTsKICAgICAgfQogICAgfQoKICAgIGZvcm1hdFRvUGFydHMoY291bnQsIHVuaXQpIHsKICAgICAgaWYgKHRoaXMucnRmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMucnRmLmZvcm1hdFRvUGFydHMoY291bnQsIHVuaXQpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfQogICAgfQogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KCiAgY2xhc3MgTG9jYWxlIHsKICAgIHN0YXRpYyBmcm9tT3B0cyhvcHRzKSB7CiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKG9wdHMubG9jYWxlLCBvcHRzLm51bWJlcmluZ1N5c3RlbSwgb3B0cy5vdXRwdXRDYWxlbmRhciwgb3B0cy5kZWZhdWx0VG9FTik7CiAgICB9CgogICAgc3RhdGljIGNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIsIGRlZmF1bHRUb0VOID0gZmFsc2UpIHsKICAgICAgY29uc3Qgc3BlY2lmaWVkTG9jYWxlID0gbG9jYWxlIHx8IFNldHRpbmdzLmRlZmF1bHRMb2NhbGU7CiAgICAgIC8vIHRoZSBzeXN0ZW0gbG9jYWxlIGlzIHVzZWZ1bCBmb3IgaHVtYW4gcmVhZGFibGUgc3RyaW5ncyBidXQgYW5ub3lpbmcgZm9yIHBhcnNpbmcvZm9ybWF0dGluZyBrbm93biBmb3JtYXRzCiAgICAgIGNvbnN0IGxvY2FsZVIgPSBzcGVjaWZpZWRMb2NhbGUgfHwgKGRlZmF1bHRUb0VOID8gImVuLVVTIiA6IHN5c3RlbUxvY2FsZSgpKTsKICAgICAgY29uc3QgbnVtYmVyaW5nU3lzdGVtUiA9IG51bWJlcmluZ1N5c3RlbSB8fCBTZXR0aW5ncy5kZWZhdWx0TnVtYmVyaW5nU3lzdGVtOwogICAgICBjb25zdCBvdXRwdXRDYWxlbmRhclIgPSBvdXRwdXRDYWxlbmRhciB8fCBTZXR0aW5ncy5kZWZhdWx0T3V0cHV0Q2FsZW5kYXI7CiAgICAgIHJldHVybiBuZXcgTG9jYWxlKGxvY2FsZVIsIG51bWJlcmluZ1N5c3RlbVIsIG91dHB1dENhbGVuZGFyUiwgc3BlY2lmaWVkTG9jYWxlKTsKICAgIH0KCiAgICBzdGF0aWMgcmVzZXRDYWNoZSgpIHsKICAgICAgc3lzTG9jYWxlQ2FjaGUgPSBudWxsOwogICAgICBpbnRsRFRDYWNoZSA9IHt9OwogICAgICBpbnRsTnVtQ2FjaGUgPSB7fTsKICAgICAgaW50bFJlbENhY2hlID0ge307CiAgICB9CgogICAgc3RhdGljIGZyb21PYmplY3QoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7CiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcik7CiAgICB9CgogICAgY29uc3RydWN0b3IobG9jYWxlLCBudW1iZXJpbmcsIG91dHB1dENhbGVuZGFyLCBzcGVjaWZpZWRMb2NhbGUpIHsKICAgICAgY29uc3QgW3BhcnNlZExvY2FsZSwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtLCBwYXJzZWRPdXRwdXRDYWxlbmRhcl0gPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpOwoKICAgICAgdGhpcy5sb2NhbGUgPSBwYXJzZWRMb2NhbGU7CiAgICAgIHRoaXMubnVtYmVyaW5nU3lzdGVtID0gbnVtYmVyaW5nIHx8IHBhcnNlZE51bWJlcmluZ1N5c3RlbSB8fCBudWxsOwogICAgICB0aGlzLm91dHB1dENhbGVuZGFyID0gb3V0cHV0Q2FsZW5kYXIgfHwgcGFyc2VkT3V0cHV0Q2FsZW5kYXIgfHwgbnVsbDsKICAgICAgdGhpcy5pbnRsID0gaW50bENvbmZpZ1N0cmluZyh0aGlzLmxvY2FsZSwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIHRoaXMub3V0cHV0Q2FsZW5kYXIpOwoKICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9OwogICAgICB0aGlzLm1vbnRoc0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9OwogICAgICB0aGlzLm1lcmlkaWVtQ2FjaGUgPSBudWxsOwogICAgICB0aGlzLmVyYUNhY2hlID0ge307CgogICAgICB0aGlzLnNwZWNpZmllZExvY2FsZSA9IHNwZWNpZmllZExvY2FsZTsKICAgICAgdGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9IG51bGw7CiAgICB9CgogICAgZ2V0IGZhc3ROdW1iZXJzKCkgewogICAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7CiAgICAgICAgdGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9IHN1cHBvcnRzRmFzdE51bWJlcnModGhpcyk7CiAgICAgIH0KCiAgICAgIHJldHVybiB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkOwogICAgfQoKICAgIGxpc3RpbmdNb2RlKCkgewogICAgICBjb25zdCBpc0FjdHVhbGx5RW4gPSB0aGlzLmlzRW5nbGlzaCgpOwogICAgICBjb25zdCBoYXNOb1dlaXJkbmVzcyA9CiAgICAgICAgKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSAibGF0biIpICYmCiAgICAgICAgKHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IG51bGwgfHwgdGhpcy5vdXRwdXRDYWxlbmRhciA9PT0gImdyZWdvcnkiKTsKICAgICAgcmV0dXJuIGlzQWN0dWFsbHlFbiAmJiBoYXNOb1dlaXJkbmVzcyA/ICJlbiIgOiAiaW50bCI7CiAgICB9CgogICAgY2xvbmUoYWx0cykgewogICAgICBpZiAoIWFsdHMgfHwgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYWx0cykubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIExvY2FsZS5jcmVhdGUoCiAgICAgICAgICBhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSwKICAgICAgICAgIGFsdHMubnVtYmVyaW5nU3lzdGVtIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtLAogICAgICAgICAgYWx0cy5vdXRwdXRDYWxlbmRhciB8fCB0aGlzLm91dHB1dENhbGVuZGFyLAogICAgICAgICAgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZQogICAgICAgICk7CiAgICAgIH0KICAgIH0KCiAgICByZWRlZmF1bHRUb0VOKGFsdHMgPSB7fSkgewogICAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiB0cnVlIH0pOwogICAgfQoKICAgIHJlZGVmYXVsdFRvU3lzdGVtKGFsdHMgPSB7fSkgewogICAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiBmYWxzZSB9KTsKICAgIH0KCiAgICBtb250aHMobGVuZ3RoLCBmb3JtYXQgPSBmYWxzZSkgewogICAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgbW9udGhzLCAoKSA9PiB7CiAgICAgICAgY29uc3QgaW50bCA9IGZvcm1hdCA/IHsgbW9udGg6IGxlbmd0aCwgZGF5OiAibnVtZXJpYyIgfSA6IHsgbW9udGg6IGxlbmd0aCB9LAogICAgICAgICAgZm9ybWF0U3RyID0gZm9ybWF0ID8gImZvcm1hdCIgOiAic3RhbmRhbG9uZSI7CiAgICAgICAgaWYgKCF0aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSkgewogICAgICAgICAgdGhpcy5tb250aHNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0gPSBtYXBNb250aHMoKGR0KSA9PiB0aGlzLmV4dHJhY3QoZHQsIGludGwsICJtb250aCIpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdOwogICAgICB9KTsKICAgIH0KCiAgICB3ZWVrZGF5cyhsZW5ndGgsIGZvcm1hdCA9IGZhbHNlKSB7CiAgICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCB3ZWVrZGF5cywgKCkgPT4gewogICAgICAgIGNvbnN0IGludGwgPSBmb3JtYXQKICAgICAgICAgICAgPyB7IHdlZWtkYXk6IGxlbmd0aCwgeWVhcjogIm51bWVyaWMiLCBtb250aDogImxvbmciLCBkYXk6ICJudW1lcmljIiB9CiAgICAgICAgICAgIDogeyB3ZWVrZGF5OiBsZW5ndGggfSwKICAgICAgICAgIGZvcm1hdFN0ciA9IGZvcm1hdCA/ICJmb3JtYXQiIDogInN0YW5kYWxvbmUiOwogICAgICAgIGlmICghdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSkgewogICAgICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKChkdCkgPT4KICAgICAgICAgICAgdGhpcy5leHRyYWN0KGR0LCBpbnRsLCAid2Vla2RheSIpCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTsKICAgICAgfSk7CiAgICB9CgogICAgbWVyaWRpZW1zKCkgewogICAgICByZXR1cm4gbGlzdFN0dWZmKAogICAgICAgIHRoaXMsCiAgICAgICAgdW5kZWZpbmVkLAogICAgICAgICgpID0+IG1lcmlkaWVtcywKICAgICAgICAoKSA9PiB7CiAgICAgICAgICAvLyBJbiB0aGVvcnkgdGhlcmUgY291bGQgYmUgYXJpYml0cmFyeSBkYXkgcGVyaW9kcy4gV2UncmUgZ29ubmEgYXNzdW1lIHRoZXJlIGFyZSBleGFjdGx5IHR3bwogICAgICAgICAgLy8gZm9yIEFNIGFuZCBQTS4gVGhpcyBpcyBwcm9iYWJseSB3cm9uZywgYnV0IGl0J3MgbWFrZXMgcGFyc2luZyB3YXkgZWFzaWVyLgogICAgICAgICAgaWYgKCF0aGlzLm1lcmlkaWVtQ2FjaGUpIHsKICAgICAgICAgICAgY29uc3QgaW50bCA9IHsgaG91cjogIm51bWVyaWMiLCBob3VyQ3ljbGU6ICJoMTIiIH07CiAgICAgICAgICAgIHRoaXMubWVyaWRpZW1DYWNoZSA9IFtEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzLCA5KSwgRGF0ZVRpbWUudXRjKDIwMTYsIDExLCAxMywgMTkpXS5tYXAoCiAgICAgICAgICAgICAgKGR0KSA9PiB0aGlzLmV4dHJhY3QoZHQsIGludGwsICJkYXlwZXJpb2QiKQogICAgICAgICAgICApOwogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiB0aGlzLm1lcmlkaWVtQ2FjaGU7CiAgICAgICAgfQogICAgICApOwogICAgfQoKICAgIGVyYXMobGVuZ3RoKSB7CiAgICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBlcmFzLCAoKSA9PiB7CiAgICAgICAgY29uc3QgaW50bCA9IHsgZXJhOiBsZW5ndGggfTsKCiAgICAgICAgLy8gVGhpcyBpcyBwcm9ibGVtYXRpYy4gRGlmZmVyZW50IGNhbGVuZGFycyBhcmUgZ29pbmcgdG8gZGVmaW5lIGVyYXMgdG90YWxseSBkaWZmZXJlbnRseS4gV2hhdCBJIG5lZWQgaXMgdGhlIG1pbmltdW0gc2V0IG9mIGRhdGVzCiAgICAgICAgLy8gdG8gZGVmaW5pdGVseSBlbnVtZXJhdGUgdGhlbS4KICAgICAgICBpZiAoIXRoaXMuZXJhQ2FjaGVbbGVuZ3RoXSkgewogICAgICAgICAgdGhpcy5lcmFDYWNoZVtsZW5ndGhdID0gW0RhdGVUaW1lLnV0YygtNDAsIDEsIDEpLCBEYXRlVGltZS51dGMoMjAxNywgMSwgMSldLm1hcCgoZHQpID0+CiAgICAgICAgICAgIHRoaXMuZXh0cmFjdChkdCwgaW50bCwgImVyYSIpCiAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRoaXMuZXJhQ2FjaGVbbGVuZ3RoXTsKICAgICAgfSk7CiAgICB9CgogICAgZXh0cmFjdChkdCwgaW50bE9wdHMsIGZpZWxkKSB7CiAgICAgIGNvbnN0IGRmID0gdGhpcy5kdEZvcm1hdHRlcihkdCwgaW50bE9wdHMpLAogICAgICAgIHJlc3VsdHMgPSBkZi5mb3JtYXRUb1BhcnRzKCksCiAgICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZCk7CiAgICAgIHJldHVybiBtYXRjaGluZyA/IG1hdGNoaW5nLnZhbHVlIDogbnVsbDsKICAgIH0KCiAgICBudW1iZXJGb3JtYXR0ZXIob3B0cyA9IHt9KSB7CiAgICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKQogICAgICAvLyAoaW4gY29udHJhc3QsIHRoZSByZXN0IG9mIHRoZSBjb25kaXRpb24gaXMgdXNlZCBoZWF2aWx5KQogICAgICByZXR1cm4gbmV3IFBvbHlOdW1iZXJGb3JtYXR0ZXIodGhpcy5pbnRsLCBvcHRzLmZvcmNlU2ltcGxlIHx8IHRoaXMuZmFzdE51bWJlcnMsIG9wdHMpOwogICAgfQoKICAgIGR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiBuZXcgUG9seURhdGVGb3JtYXR0ZXIoZHQsIHRoaXMuaW50bCwgaW50bE9wdHMpOwogICAgfQoKICAgIHJlbEZvcm1hdHRlcihvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIG5ldyBQb2x5UmVsRm9ybWF0dGVyKHRoaXMuaW50bCwgdGhpcy5pc0VuZ2xpc2goKSwgb3B0cyk7CiAgICB9CgogICAgbGlzdEZvcm1hdHRlcihvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIGdldENhY2hlZExGKHRoaXMuaW50bCwgb3B0cyk7CiAgICB9CgogICAgaXNFbmdsaXNoKCkgewogICAgICByZXR1cm4gKAogICAgICAgIHRoaXMubG9jYWxlID09PSAiZW4iIHx8CiAgICAgICAgdGhpcy5sb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gImVuLXVzIiB8fAogICAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuaW50bCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLnN0YXJ0c1dpdGgoImVuLXVzIikKICAgICAgKTsKICAgIH0KCiAgICBlcXVhbHMob3RoZXIpIHsKICAgICAgcmV0dXJuICgKICAgICAgICB0aGlzLmxvY2FsZSA9PT0gb3RoZXIubG9jYWxlICYmCiAgICAgICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IG90aGVyLm51bWJlcmluZ1N5c3RlbSAmJgogICAgICAgIHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IG90aGVyLm91dHB1dENhbGVuZGFyCiAgICAgICk7CiAgICB9CiAgfQoKICBsZXQgc2luZ2xldG9uID0gbnVsbDsKCiAgLyoqCiAgICogQSB6b25lIHdpdGggYSBmaXhlZCBvZmZzZXQgKG1lYW5pbmcgbm8gRFNUKQogICAqIEBpbXBsZW1lbnRzIHtab25lfQogICAqLwogIGNsYXNzIEZpeGVkT2Zmc2V0Wm9uZSBleHRlbmRzIFpvbmUgewogICAgLyoqCiAgICAgKiBHZXQgYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgVVRDCiAgICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgdXRjSW5zdGFuY2UoKSB7CiAgICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHsKICAgICAgICBzaW5nbGV0b24gPSBuZXcgRml4ZWRPZmZzZXRab25lKDApOwogICAgICB9CiAgICAgIHJldHVybiBzaW5nbGV0b247CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYW4gaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBvZmZzZXQKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQgLSBUaGUgb2Zmc2V0IGluIG1pbnV0ZXMKICAgICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX0KICAgICAqLwogICAgc3RhdGljIGluc3RhbmNlKG9mZnNldCkgewogICAgICByZXR1cm4gb2Zmc2V0ID09PSAwID8gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlIDogbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGFuIGluc3RhbmNlIG9mIEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIGEgVVRDIG9mZnNldCBzdHJpbmcsIGxpa2UgIlVUQys2IgogICAgICogQHBhcmFtIHtzdHJpbmd9IHMgLSBUaGUgb2Zmc2V0IHN0cmluZyB0byBwYXJzZQogICAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKCJVVEMrNiIpCiAgICAgKiBAZXhhbXBsZSBGaXhlZE9mZnNldFpvbmUucGFyc2VTcGVjaWZpZXIoIlVUQyswNiIpCiAgICAgKiBAZXhhbXBsZSBGaXhlZE9mZnNldFpvbmUucGFyc2VTcGVjaWZpZXIoIlVUQy02OjAwIikKICAgICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX0KICAgICAqLwogICAgc3RhdGljIHBhcnNlU3BlY2lmaWVyKHMpIHsKICAgICAgaWYgKHMpIHsKICAgICAgICBjb25zdCByID0gcy5tYXRjaCgvXnV0Yyg/OihbKy1dXGR7MSwyfSkoPzo6KFxkezJ9KSk/KT8kL2kpOwogICAgICAgIGlmIChyKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEZpeGVkT2Zmc2V0Wm9uZShzaWduZWRPZmZzZXQoclsxXSwgclsyXSkpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBjb25zdHJ1Y3RvcihvZmZzZXQpIHsKICAgICAgc3VwZXIoKTsKICAgICAgLyoqIEBwcml2YXRlICoqLwogICAgICB0aGlzLmZpeGVkID0gb2Zmc2V0OwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBnZXQgdHlwZSgpIHsKICAgICAgcmV0dXJuICJmaXhlZCI7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBuYW1lKCkgewogICAgICByZXR1cm4gdGhpcy5maXhlZCA9PT0gMCA/ICJVVEMiIDogYFVUQyR7Zm9ybWF0T2Zmc2V0KHRoaXMuZml4ZWQsICJuYXJyb3ciKX1gOwogICAgfQoKICAgIGdldCBpYW5hTmFtZSgpIHsKICAgICAgaWYgKHRoaXMuZml4ZWQgPT09IDApIHsKICAgICAgICByZXR1cm4gIkV0Yy9VVEMiOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBgRXRjL0dNVCR7Zm9ybWF0T2Zmc2V0KC10aGlzLmZpeGVkLCAibmFycm93Iil9YDsKICAgICAgfQogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBvZmZzZXROYW1lKCkgewogICAgICByZXR1cm4gdGhpcy5uYW1lOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkgewogICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMuZml4ZWQsIGZvcm1hdCk7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBpc1VuaXZlcnNhbCgpIHsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIG9mZnNldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZml4ZWQ7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGVxdWFscyhvdGhlclpvbmUpIHsKICAgICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSAiZml4ZWQiICYmIG90aGVyWm9uZS5maXhlZCA9PT0gdGhpcy5maXhlZDsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZ2V0IGlzVmFsaWQoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KCiAgLyoqCiAgICogQSB6b25lIHRoYXQgZmFpbGVkIHRvIHBhcnNlLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gaW5zdGFudGlhdGUgdGhpcy4KICAgKiBAaW1wbGVtZW50cyB7Wm9uZX0KICAgKi8KICBjbGFzcyBJbnZhbGlkWm9uZSBleHRlbmRzIFpvbmUgewogICAgY29uc3RydWN0b3Ioem9uZU5hbWUpIHsKICAgICAgc3VwZXIoKTsKICAgICAgLyoqICBAcHJpdmF0ZSAqLwogICAgICB0aGlzLnpvbmVOYW1lID0gem9uZU5hbWU7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCB0eXBlKCkgewogICAgICByZXR1cm4gImludmFsaWQiOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBnZXQgbmFtZSgpIHsKICAgICAgcmV0dXJuIHRoaXMuem9uZU5hbWU7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBpc1VuaXZlcnNhbCgpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKiBAb3ZlcnJpZGUgKiovCiAgICBvZmZzZXROYW1lKCkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZm9ybWF0T2Zmc2V0KCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIG9mZnNldCgpIHsKICAgICAgcmV0dXJuIE5hTjsKICAgIH0KCiAgICAvKiogQG92ZXJyaWRlICoqLwogICAgZXF1YWxzKCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqIEBvdmVycmlkZSAqKi8KICAgIGdldCBpc1ZhbGlkKCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfQoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwoKICBmdW5jdGlvbiBub3JtYWxpemVab25lKGlucHV0LCBkZWZhdWx0Wm9uZSkgewogICAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCkgewogICAgICByZXR1cm4gZGVmYXVsdFpvbmU7CiAgICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgWm9uZSkgewogICAgICByZXR1cm4gaW5wdXQ7CiAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKGlucHV0KSkgewogICAgICBjb25zdCBsb3dlcmVkID0gaW5wdXQudG9Mb3dlckNhc2UoKTsKICAgICAgaWYgKGxvd2VyZWQgPT09ICJkZWZhdWx0IikgcmV0dXJuIGRlZmF1bHRab25lOwogICAgICBlbHNlIGlmIChsb3dlcmVkID09PSAibG9jYWwiIHx8IGxvd2VyZWQgPT09ICJzeXN0ZW0iKSByZXR1cm4gU3lzdGVtWm9uZS5pbnN0YW5jZTsKICAgICAgZWxzZSBpZiAobG93ZXJlZCA9PT0gInV0YyIgfHwgbG93ZXJlZCA9PT0gImdtdCIpIHJldHVybiBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2U7CiAgICAgIGVsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpOwogICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkpIHsKICAgICAgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5pbnN0YW5jZShpbnB1dCk7CiAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gIm9iamVjdCIgJiYgIm9mZnNldCIgaW4gaW5wdXQgJiYgdHlwZW9mIGlucHV0Lm9mZnNldCA9PT0gImZ1bmN0aW9uIikgewogICAgICAvLyBUaGlzIGlzIGR1bWIsIGJ1dCB0aGUgaW5zdGFuY2VvZiBjaGVjayBhYm92ZSBkb2Vzbid0IHNlZW0gdG8gcmVhbGx5IHdvcmsKICAgICAgLy8gc28gd2UncmUgZHVjayBjaGVja2luZyBpdAogICAgICByZXR1cm4gaW5wdXQ7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gbmV3IEludmFsaWRab25lKGlucHV0KTsKICAgIH0KICB9CgogIGxldCBub3cgPSAoKSA9PiBEYXRlLm5vdygpLAogICAgZGVmYXVsdFpvbmUgPSAic3lzdGVtIiwKICAgIGRlZmF1bHRMb2NhbGUgPSBudWxsLAogICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bGwsCiAgICBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIgPSBudWxsLAogICAgdHdvRGlnaXRDdXRvZmZZZWFyID0gNjAsCiAgICB0aHJvd09uSW52YWxpZDsKCiAgLyoqCiAgICogU2V0dGluZ3MgY29udGFpbnMgc3RhdGljIGdldHRlcnMgYW5kIHNldHRlcnMgdGhhdCBjb250cm9sIEx1eG9uJ3Mgb3ZlcmFsbCBiZWhhdmlvci4gTHV4b24gaXMgYSBzaW1wbGUgbGlicmFyeSB3aXRoIGZldyBvcHRpb25zLCBidXQgdGhlIG9uZXMgaXQgZG9lcyBoYXZlIGxpdmUgaGVyZS4KICAgKi8KICBjbGFzcyBTZXR0aW5ncyB7CiAgICAvKioKICAgICAqIEdldCB0aGUgY2FsbGJhY2sgZm9yIHJldHVybmluZyB0aGUgY3VycmVudCB0aW1lc3RhbXAuCiAgICAgKiBAdHlwZSB7ZnVuY3Rpb259CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgbm93KCkgewogICAgICByZXR1cm4gbm93OwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBjYWxsYmFjayBmb3IgcmV0dXJuaW5nIHRoZSBjdXJyZW50IHRpbWVzdGFtcC4KICAgICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50CiAgICAgKiBAdHlwZSB7ZnVuY3Rpb259CiAgICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiBEYXRlLm5vdygpICsgMzAwMCAvLyBwcmV0ZW5kIGl0IGlzIDMgc2Vjb25kcyBpbiB0aGUgZnV0dXJlCiAgICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWUKICAgICAqLwogICAgc3RhdGljIHNldCBub3cobikgewogICAgICBub3cgPSBuOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBkZWZhdWx0IHRpbWUgem9uZSB0byBjcmVhdGUgRGF0ZVRpbWVzIGluLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogVXNlIHRoZSB2YWx1ZSAic3lzdGVtIiB0byByZXNldCB0aGlzIHZhbHVlIHRvIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUuCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBzdGF0aWMgc2V0IGRlZmF1bHRab25lKHpvbmUpIHsKICAgICAgZGVmYXVsdFpvbmUgPSB6b25lOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZWZhdWx0IHRpbWUgem9uZSBvYmplY3QgY3VycmVudGx5IHVzZWQgdG8gY3JlYXRlIERhdGVUaW1lcy4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy4KICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUgKHRoZSBvbmUgc2V0IG9uIHRoZSBtYWNoaW5lIHRoYXQgcnVucyB0aGlzIGNvZGUpLgogICAgICogQHR5cGUge1pvbmV9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgZGVmYXVsdFpvbmUoKSB7CiAgICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgc3RhdGljIGdldCBkZWZhdWx0TG9jYWxlKCkgewogICAgICByZXR1cm4gZGVmYXVsdExvY2FsZTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgc3RhdGljIHNldCBkZWZhdWx0TG9jYWxlKGxvY2FsZSkgewogICAgICBkZWZhdWx0TG9jYWxlID0gbG9jYWxlOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZWZhdWx0IG51bWJlcmluZyBzeXN0ZW0gdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgc3RhdGljIGdldCBkZWZhdWx0TnVtYmVyaW5nU3lzdGVtKCkgewogICAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgZGVmYXVsdCBudW1iZXJpbmcgc3lzdGVtIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy4KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIHN0YXRpYyBzZXQgZGVmYXVsdE51bWJlcmluZ1N5c3RlbShudW1iZXJpbmdTeXN0ZW0pIHsKICAgICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZGVmYXVsdCBvdXRwdXQgY2FsZW5kYXIgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgc3RhdGljIGdldCBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIoKSB7CiAgICAgIHJldHVybiBkZWZhdWx0T3V0cHV0Q2FsZW5kYXI7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGNhbGVuZGFyIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy4KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIHN0YXRpYyBzZXQgZGVmYXVsdE91dHB1dENhbGVuZGFyKG91dHB1dENhbGVuZGFyKSB7CiAgICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBjdXRvZmYgeWVhciBhZnRlciB3aGljaCBhIHN0cmluZyBlbmNvZGluZyBhIHllYXIgYXMgdHdvIGRpZ2l0cyBpcyBpbnRlcnByZXRlZCB0byBvY2N1ciBpbiB0aGUgY3VycmVudCBjZW50dXJ5LgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgc3RhdGljIGdldCB0d29EaWdpdEN1dG9mZlllYXIoKSB7CiAgICAgIHJldHVybiB0d29EaWdpdEN1dG9mZlllYXI7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGN1dG9mZiB5ZWFyIGFmdGVyIHdoaWNoIGEgc3RyaW5nIGVuY29kaW5nIGEgeWVhciBhcyB0d28gZGlnaXRzIGlzIGludGVycHJldGVkIHRvIG9jY3VyIGluIHRoZSBjdXJyZW50IGNlbnR1cnkuCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICogQGV4YW1wbGUgU2V0dGluZ3MudHdvRGlnaXRDdXRvZmZZZWFyID0gMCAvLyBjdXQtb2ZmIHllYXIgaXMgMCwgc28gYWxsICd5eScgYXJlIGludGVycHJldGVkIGFzIGN1cnJlbnQgY2VudHVyeQogICAgICogQGV4YW1wbGUgU2V0dGluZ3MudHdvRGlnaXRDdXRvZmZZZWFyID0gNTAgLy8gJzQ5JyAtPiAxOTQ5OyAnNTAnIC0+IDIwNTAKICAgICAqIEBleGFtcGxlIFNldHRpbmdzLnR3b0RpZ2l0Q3V0b2ZmWWVhciA9IDE5NTAgLy8gaW50ZXJwcmV0ZWQgYXMgNTAKICAgICAqIEBleGFtcGxlIFNldHRpbmdzLnR3b0RpZ2l0Q3V0b2ZmWWVhciA9IDIwNTAgLy8gQUxTTyBpbnRlcnByZXRlZCBhcyA1MAogICAgICovCiAgICBzdGF0aWMgc2V0IHR3b0RpZ2l0Q3V0b2ZmWWVhcihjdXRvZmZZZWFyKSB7CiAgICAgIHR3b0RpZ2l0Q3V0b2ZmWWVhciA9IGN1dG9mZlllYXIgJSAxMDA7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgd2hldGhlciBMdXhvbiB3aWxsIHRocm93IHdoZW4gaXQgZW5jb3VudGVycyBpbnZhbGlkIERhdGVUaW1lcywgRHVyYXRpb25zLCBvciBJbnRlcnZhbHMKICAgICAqIEB0eXBlIHtib29sZWFufQogICAgICovCiAgICBzdGF0aWMgZ2V0IHRocm93T25JbnZhbGlkKCkgewogICAgICByZXR1cm4gdGhyb3dPbkludmFsaWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgd2hldGhlciBMdXhvbiB3aWxsIHRocm93IHdoZW4gaXQgZW5jb3VudGVycyBpbnZhbGlkIERhdGVUaW1lcywgRHVyYXRpb25zLCBvciBJbnRlcnZhbHMKICAgICAqIEB0eXBlIHtib29sZWFufQogICAgICovCiAgICBzdGF0aWMgc2V0IHRocm93T25JbnZhbGlkKHQpIHsKICAgICAgdGhyb3dPbkludmFsaWQgPSB0OwogICAgfQoKICAgIC8qKgogICAgICogUmVzZXQgTHV4b24ncyBnbG9iYWwgY2FjaGVzLiBTaG91bGQgb25seSBiZSBuZWNlc3NhcnkgaW4gdGVzdGluZyBzY2VuYXJpb3MuCiAgICAgKiBAcmV0dXJuIHt2b2lkfQogICAgICovCiAgICBzdGF0aWMgcmVzZXRDYWNoZXMoKSB7CiAgICAgIExvY2FsZS5yZXNldENhY2hlKCk7CiAgICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTsKICAgIH0KICB9CgogIC8qCiAgICBUaGlzIGlzIGp1c3QgYSBqdW5rIGRyYXdlciwgY29udGFpbmluZyBhbnl0aGluZyB1c2VkIGFjcm9zcyBtdWx0aXBsZSBjbGFzc2VzLgogICAgQmVjYXVzZSBMdXhvbiBpcyBzbWFsbChpc2gpLCB0aGlzIHNob3VsZCBzdGF5IHNtYWxsIGFuZCB3ZSB3b24ndCB3b3JyeSBhYm91dCBzcGxpdHRpbmcKICAgIGl0IHVwIGludG8sIHNheSwgcGFyc2luZ1V0aWwuanMgYW5kIGJhc2ljVXRpbC5qcyBhbmQgc28gb24uIEJ1dCB0aGV5IGFyZSBkaXZpZGVkIHVwIGJ5IGZlYXR1cmUgYXJlYS4KICAqLwoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwoKICAvLyBUWVBFUwoKICBmdW5jdGlvbiBpc1VuZGVmaW5lZChvKSB7CiAgICByZXR1cm4gdHlwZW9mIG8gPT09ICJ1bmRlZmluZWQiOwogIH0KCiAgZnVuY3Rpb24gaXNOdW1iZXIobykgewogICAgcmV0dXJuIHR5cGVvZiBvID09PSAibnVtYmVyIjsKICB9CgogIGZ1bmN0aW9uIGlzSW50ZWdlcihvKSB7CiAgICByZXR1cm4gdHlwZW9mIG8gPT09ICJudW1iZXIiICYmIG8gJSAxID09PSAwOwogIH0KCiAgZnVuY3Rpb24gaXNTdHJpbmcobykgewogICAgcmV0dXJuIHR5cGVvZiBvID09PSAic3RyaW5nIjsKICB9CgogIGZ1bmN0aW9uIGlzRGF0ZShvKSB7CiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pID09PSAiW29iamVjdCBEYXRlXSI7CiAgfQoKICAvLyBDQVBBQklMSVRJRVMKCiAgZnVuY3Rpb24gaGFzUmVsYXRpdmUoKSB7CiAgICB0cnkgewogICAgICByZXR1cm4gdHlwZW9mIEludGwgIT09ICJ1bmRlZmluZWQiICYmICEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICB9CgogIC8vIE9CSkVDVFMgQU5EIEFSUkFZUwoKICBmdW5jdGlvbiBtYXliZUFycmF5KHRoaW5nKSB7CiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZykgPyB0aGluZyA6IFt0aGluZ107CiAgfQoKICBmdW5jdGlvbiBiZXN0QnkoYXJyLCBieSwgY29tcGFyZSkgewogICAgaWYgKGFyci5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0KICAgIHJldHVybiBhcnIucmVkdWNlKChiZXN0LCBuZXh0KSA9PiB7CiAgICAgIGNvbnN0IHBhaXIgPSBbYnkobmV4dCksIG5leHRdOwogICAgICBpZiAoIWJlc3QpIHsKICAgICAgICByZXR1cm4gcGFpcjsKICAgICAgfSBlbHNlIGlmIChjb21wYXJlKGJlc3RbMF0sIHBhaXJbMF0pID09PSBiZXN0WzBdKSB7CiAgICAgICAgcmV0dXJuIGJlc3Q7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHBhaXI7CiAgICAgIH0KICAgIH0sIG51bGwpWzFdOwogIH0KCiAgZnVuY3Rpb24gcGljayhvYmosIGtleXMpIHsKICAgIHJldHVybiBrZXlzLnJlZHVjZSgoYSwgaykgPT4gewogICAgICBhW2tdID0gb2JqW2tdOwogICAgICByZXR1cm4gYTsKICAgIH0sIHt9KTsKICB9CgogIGZ1bmN0aW9uIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkgewogICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOwogIH0KCiAgLy8gTlVNQkVSUyBBTkQgU1RSSU5HUwoKICBmdW5jdGlvbiBpbnRlZ2VyQmV0d2Vlbih0aGluZywgYm90dG9tLCB0b3ApIHsKICAgIHJldHVybiBpc0ludGVnZXIodGhpbmcpICYmIHRoaW5nID49IGJvdHRvbSAmJiB0aGluZyA8PSB0b3A7CiAgfQoKICAvLyB4ICUgbiBidXQgdGFrZXMgdGhlIHNpZ24gb2YgbiBpbnN0ZWFkIG9mIHgKICBmdW5jdGlvbiBmbG9vck1vZCh4LCBuKSB7CiAgICByZXR1cm4geCAtIG4gKiBNYXRoLmZsb29yKHggLyBuKTsKICB9CgogIGZ1bmN0aW9uIHBhZFN0YXJ0KGlucHV0LCBuID0gMikgewogICAgY29uc3QgaXNOZWcgPSBpbnB1dCA8IDA7CiAgICBsZXQgcGFkZGVkOwogICAgaWYgKGlzTmVnKSB7CiAgICAgIHBhZGRlZCA9ICItIiArICgiIiArIC1pbnB1dCkucGFkU3RhcnQobiwgIjAiKTsKICAgIH0gZWxzZSB7CiAgICAgIHBhZGRlZCA9ICgiIiArIGlucHV0KS5wYWRTdGFydChuLCAiMCIpOwogICAgfQogICAgcmV0dXJuIHBhZGRlZDsKICB9CgogIGZ1bmN0aW9uIHBhcnNlSW50ZWdlcihzdHJpbmcpIHsKICAgIGlmIChpc1VuZGVmaW5lZChzdHJpbmcpIHx8IHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09ICIiKSB7CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gcGFyc2VJbnQoc3RyaW5nLCAxMCk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBwYXJzZUZsb2F0aW5nKHN0cmluZykgewogICAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gIiIpIHsKICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cmluZyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBwYXJzZU1pbGxpcyhmcmFjdGlvbikgewogICAgLy8gUmV0dXJuIHVuZGVmaW5lZCAoaW5zdGVhZCBvZiAwKSBpbiB0aGVzZSBjYXNlcywgd2hlcmUgZnJhY3Rpb24gaXMgbm90IHNldAogICAgaWYgKGlzVW5kZWZpbmVkKGZyYWN0aW9uKSB8fCBmcmFjdGlvbiA9PT0gbnVsbCB8fCBmcmFjdGlvbiA9PT0gIiIpIHsKICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnN0IGYgPSBwYXJzZUZsb2F0KCIwLiIgKyBmcmFjdGlvbikgKiAxMDAwOwogICAgICByZXR1cm4gTWF0aC5mbG9vcihmKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHJvdW5kVG8obnVtYmVyLCBkaWdpdHMsIHRvd2FyZFplcm8gPSBmYWxzZSkgewogICAgY29uc3QgZmFjdG9yID0gMTAgKiogZGlnaXRzLAogICAgICByb3VuZGVyID0gdG93YXJkWmVybyA/IE1hdGgudHJ1bmMgOiBNYXRoLnJvdW5kOwogICAgcmV0dXJuIHJvdW5kZXIobnVtYmVyICogZmFjdG9yKSAvIGZhY3RvcjsKICB9CgogIC8vIERBVEUgQkFTSUNTCgogIGZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcikgewogICAgcmV0dXJuIHllYXIgJSA0ID09PSAwICYmICh5ZWFyICUgMTAwICE9PSAwIHx8IHllYXIgJSA0MDAgPT09IDApOwogIH0KCiAgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7CiAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTsKICB9CgogIGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7CiAgICBjb25zdCBtb2RNb250aCA9IGZsb29yTW9kKG1vbnRoIC0gMSwgMTIpICsgMSwKICAgICAgbW9kWWVhciA9IHllYXIgKyAobW9udGggLSBtb2RNb250aCkgLyAxMjsKCiAgICBpZiAobW9kTW9udGggPT09IDIpIHsKICAgICAgcmV0dXJuIGlzTGVhcFllYXIobW9kWWVhcikgPyAyOSA6IDI4OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIFszMSwgbnVsbCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdW21vZE1vbnRoIC0gMV07CiAgICB9CiAgfQoKICAvLyBjb252ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgbG9jYWwgdGltZXN0YW1wIChlcG9jaCwgYnV0IHdpdGggdGhlIG9mZnNldCBiYWtlZCBpbikKICBmdW5jdGlvbiBvYmpUb0xvY2FsVFMob2JqKSB7CiAgICBsZXQgZCA9IERhdGUuVVRDKAogICAgICBvYmoueWVhciwKICAgICAgb2JqLm1vbnRoIC0gMSwKICAgICAgb2JqLmRheSwKICAgICAgb2JqLmhvdXIsCiAgICAgIG9iai5taW51dGUsCiAgICAgIG9iai5zZWNvbmQsCiAgICAgIG9iai5taWxsaXNlY29uZAogICAgKTsKCiAgICAvLyBmb3IgbGVnYWN5IHJlYXNvbnMsIHllYXJzIGJldHdlZW4gMCBhbmQgOTkgYXJlIGludGVycHJldGVkIGFzIDE5WFg7IHJldmVydCB0aGF0CiAgICBpZiAob2JqLnllYXIgPCAxMDAgJiYgb2JqLnllYXIgPj0gMCkgewogICAgICBkID0gbmV3IERhdGUoZCk7CiAgICAgIC8vIHNldCB0aGUgbW9udGggYW5kIGRheSBhZ2FpbiwgdGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB5ZWFyIDIwMDAgaXMgYSBsZWFwIHllYXIsIGJ1dCB5ZWFyIDEwMCBpcyBub3QKICAgICAgLy8gc28gaWYgb2JqLnllYXIgaXMgaW4gOTksIGJ1dCBvYmouZGF5IG1ha2VzIGl0IHJvbGwgb3ZlciBpbnRvIHllYXIgMTAwLAogICAgICAvLyB0aGUgY2FsY3VsYXRpb25zIGRvbmUgYnkgRGF0ZS5VVEMgYXJlIHVzaW5nIHllYXIgMjAwMCAtIHdoaWNoIGlzIGluY29ycmVjdAogICAgICBkLnNldFVUQ0Z1bGxZZWFyKG9iai55ZWFyLCBvYmoubW9udGggLSAxLCBvYmouZGF5KTsKICAgIH0KICAgIHJldHVybiArZDsKICB9CgogIGZ1bmN0aW9uIHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcikgewogICAgY29uc3QgcDEgPQogICAgICAgICh3ZWVrWWVhciArCiAgICAgICAgICBNYXRoLmZsb29yKHdlZWtZZWFyIC8gNCkgLQogICAgICAgICAgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDEwMCkgKwogICAgICAgICAgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDQwMCkpICUKICAgICAgICA3LAogICAgICBsYXN0ID0gd2Vla1llYXIgLSAxLAogICAgICBwMiA9IChsYXN0ICsgTWF0aC5mbG9vcihsYXN0IC8gNCkgLSBNYXRoLmZsb29yKGxhc3QgLyAxMDApICsgTWF0aC5mbG9vcihsYXN0IC8gNDAwKSkgJSA3OwogICAgcmV0dXJuIHAxID09PSA0IHx8IHAyID09PSAzID8gNTMgOiA1MjsKICB9CgogIGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXIpIHsKICAgIGlmICh5ZWFyID4gOTkpIHsKICAgICAgcmV0dXJuIHllYXI7CiAgICB9IGVsc2UgcmV0dXJuIHllYXIgPiBTZXR0aW5ncy50d29EaWdpdEN1dG9mZlllYXIgPyAxOTAwICsgeWVhciA6IDIwMDAgKyB5ZWFyOwogIH0KCiAgLy8gUEFSU0lORwoKICBmdW5jdGlvbiBwYXJzZVpvbmVJbmZvKHRzLCBvZmZzZXRGb3JtYXQsIGxvY2FsZSwgdGltZVpvbmUgPSBudWxsKSB7CiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodHMpLAogICAgICBpbnRsT3B0cyA9IHsKICAgICAgICBob3VyQ3ljbGU6ICJoMjMiLAogICAgICAgIHllYXI6ICJudW1lcmljIiwKICAgICAgICBtb250aDogIjItZGlnaXQiLAogICAgICAgIGRheTogIjItZGlnaXQiLAogICAgICAgIGhvdXI6ICIyLWRpZ2l0IiwKICAgICAgICBtaW51dGU6ICIyLWRpZ2l0IiwKICAgICAgfTsKCiAgICBpZiAodGltZVpvbmUpIHsKICAgICAgaW50bE9wdHMudGltZVpvbmUgPSB0aW1lWm9uZTsKICAgIH0KCiAgICBjb25zdCBtb2RpZmllZCA9IHsgdGltZVpvbmVOYW1lOiBvZmZzZXRGb3JtYXQsIC4uLmludGxPcHRzIH07CgogICAgY29uc3QgcGFyc2VkID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCBtb2RpZmllZCkKICAgICAgLmZvcm1hdFRvUGFydHMoZGF0ZSkKICAgICAgLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSAidGltZXpvbmVuYW1lIik7CiAgICByZXR1cm4gcGFyc2VkID8gcGFyc2VkLnZhbHVlIDogbnVsbDsKICB9CgogIC8vIHNpZ25lZE9mZnNldCgnLTUnLCAnMzAnKSAtPiAtMzMwCiAgZnVuY3Rpb24gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cikgewogICAgbGV0IG9mZkhvdXIgPSBwYXJzZUludChvZmZIb3VyU3RyLCAxMCk7CgogICAgLy8gZG9uJ3QgfHwgdGhpcyBiZWNhdXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgLTAKICAgIGlmIChOdW1iZXIuaXNOYU4ob2ZmSG91cikpIHsKICAgICAgb2ZmSG91ciA9IDA7CiAgICB9CgogICAgY29uc3Qgb2ZmTWluID0gcGFyc2VJbnQob2ZmTWludXRlU3RyLCAxMCkgfHwgMCwKICAgICAgb2ZmTWluU2lnbmVkID0gb2ZmSG91ciA8IDAgfHwgT2JqZWN0LmlzKG9mZkhvdXIsIC0wKSA/IC1vZmZNaW4gOiBvZmZNaW47CiAgICByZXR1cm4gb2ZmSG91ciAqIDYwICsgb2ZmTWluU2lnbmVkOwogIH0KCiAgLy8gQ09FUkNJT04KCiAgZnVuY3Rpb24gYXNOdW1iZXIodmFsdWUpIHsKICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2YWx1ZSk7CiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAiYm9vbGVhbiIgfHwgdmFsdWUgPT09ICIiIHx8IE51bWJlci5pc05hTihudW1lcmljVmFsdWUpKQogICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEludmFsaWQgdW5pdCB2YWx1ZSAke3ZhbHVlfWApOwogICAgcmV0dXJuIG51bWVyaWNWYWx1ZTsKICB9CgogIGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZXIpIHsKICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7fTsKICAgIGZvciAoY29uc3QgdSBpbiBvYmopIHsKICAgICAgaWYgKGhhc093blByb3BlcnR5KG9iaiwgdSkpIHsKICAgICAgICBjb25zdCB2ID0gb2JqW3VdOwogICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gbnVsbCkgY29udGludWU7CiAgICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVyKHUpXSA9IGFzTnVtYmVyKHYpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gbm9ybWFsaXplZDsKICB9CgogIGZ1bmN0aW9uIGZvcm1hdE9mZnNldChvZmZzZXQsIGZvcm1hdCkgewogICAgY29uc3QgaG91cnMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAvIDYwKSksCiAgICAgIG1pbnV0ZXMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAlIDYwKSksCiAgICAgIHNpZ24gPSBvZmZzZXQgPj0gMCA/ICIrIiA6ICItIjsKCiAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgICBjYXNlICJzaG9ydCI6CiAgICAgICAgcmV0dXJuIGAke3NpZ259JHtwYWRTdGFydChob3VycywgMil9OiR7cGFkU3RhcnQobWludXRlcywgMil9YDsKICAgICAgY2FzZSAibmFycm93IjoKICAgICAgICByZXR1cm4gYCR7c2lnbn0ke2hvdXJzfSR7bWludXRlcyA+IDAgPyBgOiR7bWludXRlc31gIDogIiJ9YDsKICAgICAgY2FzZSAidGVjaGllIjoKICAgICAgICByZXR1cm4gYCR7c2lnbn0ke3BhZFN0YXJ0KGhvdXJzLCAyKX0ke3BhZFN0YXJ0KG1pbnV0ZXMsIDIpfWA7CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFZhbHVlIGZvcm1hdCAke2Zvcm1hdH0gaXMgb3V0IG9mIHJhbmdlIGZvciBwcm9wZXJ0eSBmb3JtYXRgKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHRpbWVPYmplY3Qob2JqKSB7CiAgICByZXR1cm4gcGljayhvYmosIFsiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIm1pbGxpc2Vjb25kIl0pOwogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KCiAgY29uc3QgbW9udGhzTG9uZyA9IFsKICAgICJKYW51YXJ5IiwKICAgICJGZWJydWFyeSIsCiAgICAiTWFyY2giLAogICAgIkFwcmlsIiwKICAgICJNYXkiLAogICAgIkp1bmUiLAogICAgIkp1bHkiLAogICAgIkF1Z3VzdCIsCiAgICAiU2VwdGVtYmVyIiwKICAgICJPY3RvYmVyIiwKICAgICJOb3ZlbWJlciIsCiAgICAiRGVjZW1iZXIiLAogIF07CgogIGNvbnN0IG1vbnRoc1Nob3J0ID0gWwogICAgIkphbiIsCiAgICAiRmViIiwKICAgICJNYXIiLAogICAgIkFwciIsCiAgICAiTWF5IiwKICAgICJKdW4iLAogICAgIkp1bCIsCiAgICAiQXVnIiwKICAgICJTZXAiLAogICAgIk9jdCIsCiAgICAiTm92IiwKICAgICJEZWMiLAogIF07CgogIGNvbnN0IG1vbnRoc05hcnJvdyA9IFsiSiIsICJGIiwgIk0iLCAiQSIsICJNIiwgIkoiLCAiSiIsICJBIiwgIlMiLCAiTyIsICJOIiwgIkQiXTsKCiAgZnVuY3Rpb24gbW9udGhzKGxlbmd0aCkgewogICAgc3dpdGNoIChsZW5ndGgpIHsKICAgICAgY2FzZSAibmFycm93IjoKICAgICAgICByZXR1cm4gWy4uLm1vbnRoc05hcnJvd107CiAgICAgIGNhc2UgInNob3J0IjoKICAgICAgICByZXR1cm4gWy4uLm1vbnRoc1Nob3J0XTsKICAgICAgY2FzZSAibG9uZyI6CiAgICAgICAgcmV0dXJuIFsuLi5tb250aHNMb25nXTsKICAgICAgY2FzZSAibnVtZXJpYyI6CiAgICAgICAgcmV0dXJuIFsiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiwgIjkiLCAiMTAiLCAiMTEiLCAiMTIiXTsKICAgICAgY2FzZSAiMi1kaWdpdCI6CiAgICAgICAgcmV0dXJuIFsiMDEiLCAiMDIiLCAiMDMiLCAiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMDkiLCAiMTAiLCAiMTEiLCAiMTIiXTsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KICB9CgogIGNvbnN0IHdlZWtkYXlzTG9uZyA9IFsKICAgICJNb25kYXkiLAogICAgIlR1ZXNkYXkiLAogICAgIldlZG5lc2RheSIsCiAgICAiVGh1cnNkYXkiLAogICAgIkZyaWRheSIsCiAgICAiU2F0dXJkYXkiLAogICAgIlN1bmRheSIsCiAgXTsKCiAgY29uc3Qgd2Vla2RheXNTaG9ydCA9IFsiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIl07CgogIGNvbnN0IHdlZWtkYXlzTmFycm93ID0gWyJNIiwgIlQiLCAiVyIsICJUIiwgIkYiLCAiUyIsICJTIl07CgogIGZ1bmN0aW9uIHdlZWtkYXlzKGxlbmd0aCkgewogICAgc3dpdGNoIChsZW5ndGgpIHsKICAgICAgY2FzZSAibmFycm93IjoKICAgICAgICByZXR1cm4gWy4uLndlZWtkYXlzTmFycm93XTsKICAgICAgY2FzZSAic2hvcnQiOgogICAgICAgIHJldHVybiBbLi4ud2Vla2RheXNTaG9ydF07CiAgICAgIGNhc2UgImxvbmciOgogICAgICAgIHJldHVybiBbLi4ud2Vla2RheXNMb25nXTsKICAgICAgY2FzZSAibnVtZXJpYyI6CiAgICAgICAgcmV0dXJuIFsiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyJdOwogICAgICBkZWZhdWx0OgogICAgICAgIHJldHVybiBudWxsOwogICAgfQogIH0KCiAgY29uc3QgbWVyaWRpZW1zID0gWyJBTSIsICJQTSJdOwoKICBjb25zdCBlcmFzTG9uZyA9IFsiQmVmb3JlIENocmlzdCIsICJBbm5vIERvbWluaSJdOwoKICBjb25zdCBlcmFzU2hvcnQgPSBbIkJDIiwgIkFEIl07CgogIGNvbnN0IGVyYXNOYXJyb3cgPSBbIkIiLCAiQSJdOwoKICBmdW5jdGlvbiBlcmFzKGxlbmd0aCkgewogICAgc3dpdGNoIChsZW5ndGgpIHsKICAgICAgY2FzZSAibmFycm93IjoKICAgICAgICByZXR1cm4gWy4uLmVyYXNOYXJyb3ddOwogICAgICBjYXNlICJzaG9ydCI6CiAgICAgICAgcmV0dXJuIFsuLi5lcmFzU2hvcnRdOwogICAgICBjYXNlICJsb25nIjoKICAgICAgICByZXR1cm4gWy4uLmVyYXNMb25nXTsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KICB9CgogIGZ1bmN0aW9uIG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpIHsKICAgIHJldHVybiBtZXJpZGllbXNbZHQuaG91ciA8IDEyID8gMCA6IDFdOwogIH0KCiAgZnVuY3Rpb24gd2Vla2RheUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHsKICAgIHJldHVybiB3ZWVrZGF5cyhsZW5ndGgpW2R0LndlZWtkYXkgLSAxXTsKICB9CgogIGZ1bmN0aW9uIG1vbnRoRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkgewogICAgcmV0dXJuIG1vbnRocyhsZW5ndGgpW2R0Lm1vbnRoIC0gMV07CiAgfQoKICBmdW5jdGlvbiBlcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7CiAgICByZXR1cm4gZXJhcyhsZW5ndGgpW2R0LnllYXIgPCAwID8gMCA6IDFdOwogIH0KCiAgZnVuY3Rpb24gZm9ybWF0UmVsYXRpdmVUaW1lKHVuaXQsIGNvdW50LCBudW1lcmljID0gImFsd2F5cyIsIG5hcnJvdyA9IGZhbHNlKSB7CiAgICBjb25zdCB1bml0cyA9IHsKICAgICAgeWVhcnM6IFsieWVhciIsICJ5ci4iXSwKICAgICAgcXVhcnRlcnM6IFsicXVhcnRlciIsICJxdHIuIl0sCiAgICAgIG1vbnRoczogWyJtb250aCIsICJtby4iXSwKICAgICAgd2Vla3M6IFsid2VlayIsICJ3ay4iXSwKICAgICAgZGF5czogWyJkYXkiLCAiZGF5IiwgImRheXMiXSwKICAgICAgaG91cnM6IFsiaG91ciIsICJoci4iXSwKICAgICAgbWludXRlczogWyJtaW51dGUiLCAibWluLiJdLAogICAgICBzZWNvbmRzOiBbInNlY29uZCIsICJzZWMuIl0sCiAgICB9OwoKICAgIGNvbnN0IGxhc3RhYmxlID0gWyJob3VycyIsICJtaW51dGVzIiwgInNlY29uZHMiXS5pbmRleE9mKHVuaXQpID09PSAtMTsKCiAgICBpZiAobnVtZXJpYyA9PT0gImF1dG8iICYmIGxhc3RhYmxlKSB7CiAgICAgIGNvbnN0IGlzRGF5ID0gdW5pdCA9PT0gImRheXMiOwogICAgICBzd2l0Y2ggKGNvdW50KSB7CiAgICAgICAgY2FzZSAxOgogICAgICAgICAgcmV0dXJuIGlzRGF5ID8gInRvbW9ycm93IiA6IGBuZXh0ICR7dW5pdHNbdW5pdF1bMF19YDsKICAgICAgICBjYXNlIC0xOgogICAgICAgICAgcmV0dXJuIGlzRGF5ID8gInllc3RlcmRheSIgOiBgbGFzdCAke3VuaXRzW3VuaXRdWzBdfWA7CiAgICAgICAgY2FzZSAwOgogICAgICAgICAgcmV0dXJuIGlzRGF5ID8gInRvZGF5IiA6IGB0aGlzICR7dW5pdHNbdW5pdF1bMF19YDsKICAgICAgfQogICAgfQoKICAgIGNvbnN0IGlzSW5QYXN0ID0gT2JqZWN0LmlzKGNvdW50LCAtMCkgfHwgY291bnQgPCAwLAogICAgICBmbXRWYWx1ZSA9IE1hdGguYWJzKGNvdW50KSwKICAgICAgc2luZ3VsYXIgPSBmbXRWYWx1ZSA9PT0gMSwKICAgICAgbGlsVW5pdHMgPSB1bml0c1t1bml0XSwKICAgICAgZm10VW5pdCA9IG5hcnJvdwogICAgICAgID8gc2luZ3VsYXIKICAgICAgICAgID8gbGlsVW5pdHNbMV0KICAgICAgICAgIDogbGlsVW5pdHNbMl0gfHwgbGlsVW5pdHNbMV0KICAgICAgICA6IHNpbmd1bGFyCiAgICAgICAgPyB1bml0c1t1bml0XVswXQogICAgICAgIDogdW5pdDsKICAgIHJldHVybiBpc0luUGFzdCA/IGAke2ZtdFZhbHVlfSAke2ZtdFVuaXR9IGFnb2AgOiBgaW4gJHtmbXRWYWx1ZX0gJHtmbXRVbml0fWA7CiAgfQoKICBmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbnMoc3BsaXRzLCB0b2tlblRvU3RyaW5nKSB7CiAgICBsZXQgcyA9ICIiOwogICAgZm9yIChjb25zdCB0b2tlbiBvZiBzcGxpdHMpIHsKICAgICAgaWYgKHRva2VuLmxpdGVyYWwpIHsKICAgICAgICBzICs9IHRva2VuLnZhbDsKICAgICAgfSBlbHNlIHsKICAgICAgICBzICs9IHRva2VuVG9TdHJpbmcodG9rZW4udmFsKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHM7CiAgfQoKICBjb25zdCBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzID0gewogICAgRDogREFURV9TSE9SVCwKICAgIEREOiBEQVRFX01FRCwKICAgIERERDogREFURV9GVUxMLAogICAgRERERDogREFURV9IVUdFLAogICAgdDogVElNRV9TSU1QTEUsCiAgICB0dDogVElNRV9XSVRIX1NFQ09ORFMsCiAgICB0dHQ6IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQsCiAgICB0dHR0OiBUSU1FX1dJVEhfTE9OR19PRkZTRVQsCiAgICBUOiBUSU1FXzI0X1NJTVBMRSwKICAgIFRUOiBUSU1FXzI0X1dJVEhfU0VDT05EUywKICAgIFRUVDogVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCwKICAgIFRUVFQ6IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCwKICAgIGY6IERBVEVUSU1FX1NIT1JULAogICAgZmY6IERBVEVUSU1FX01FRCwKICAgIGZmZjogREFURVRJTUVfRlVMTCwKICAgIGZmZmY6IERBVEVUSU1FX0hVR0UsCiAgICBGOiBEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMsCiAgICBGRjogREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUywKICAgIEZGRjogREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMsCiAgICBGRkZGOiBEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUywKICB9OwoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwoKICBjbGFzcyBGb3JtYXR0ZXIgewogICAgc3RhdGljIGNyZWF0ZShsb2NhbGUsIG9wdHMgPSB7fSkgewogICAgICByZXR1cm4gbmV3IEZvcm1hdHRlcihsb2NhbGUsIG9wdHMpOwogICAgfQoKICAgIHN0YXRpYyBwYXJzZUZvcm1hdChmbXQpIHsKICAgICAgLy8gd2hpdGUtc3BhY2UgaXMgYWx3YXlzIGNvbnNpZGVyZWQgYSBsaXRlcmFsIGluIHVzZXItcHJvdmlkZWQgZm9ybWF0cwogICAgICAvLyB0aGUgIiAiIHRva2VuIGhhcyBhIHNwZWNpYWwgbWVhbmluZyAoc2VlIHVuaXRGb3JUb2tlbikKCiAgICAgIGxldCBjdXJyZW50ID0gbnVsbCwKICAgICAgICBjdXJyZW50RnVsbCA9ICIiLAogICAgICAgIGJyYWNrZXRlZCA9IGZhbHNlOwogICAgICBjb25zdCBzcGxpdHMgPSBbXTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmbXQubGVuZ3RoOyBpKyspIHsKICAgICAgICBjb25zdCBjID0gZm10LmNoYXJBdChpKTsKICAgICAgICBpZiAoYyA9PT0gIiciKSB7CiAgICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkgewogICAgICAgICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGJyYWNrZXRlZCB8fCAvXlxzKyQvLnRlc3QoY3VycmVudEZ1bGwpLCB2YWw6IGN1cnJlbnRGdWxsIH0pOwogICAgICAgICAgfQogICAgICAgICAgY3VycmVudCA9IG51bGw7CiAgICAgICAgICBjdXJyZW50RnVsbCA9ICIiOwogICAgICAgICAgYnJhY2tldGVkID0gIWJyYWNrZXRlZDsKICAgICAgICB9IGVsc2UgaWYgKGJyYWNrZXRlZCkgewogICAgICAgICAgY3VycmVudEZ1bGwgKz0gYzsKICAgICAgICB9IGVsc2UgaWYgKGMgPT09IGN1cnJlbnQpIHsKICAgICAgICAgIGN1cnJlbnRGdWxsICs9IGM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmIChjdXJyZW50RnVsbC5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogL15ccyskLy50ZXN0KGN1cnJlbnRGdWxsKSwgdmFsOiBjdXJyZW50RnVsbCB9KTsKICAgICAgICAgIH0KICAgICAgICAgIGN1cnJlbnRGdWxsID0gYzsKICAgICAgICAgIGN1cnJlbnQgPSBjOwogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHsKICAgICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGJyYWNrZXRlZCB8fCAvXlxzKyQvLnRlc3QoY3VycmVudEZ1bGwpLCB2YWw6IGN1cnJlbnRGdWxsIH0pOwogICAgICB9CgogICAgICByZXR1cm4gc3BsaXRzOwogICAgfQoKICAgIHN0YXRpYyBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKSB7CiAgICAgIHJldHVybiBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzW3Rva2VuXTsKICAgIH0KCiAgICBjb25zdHJ1Y3Rvcihsb2NhbGUsIGZvcm1hdE9wdHMpIHsKICAgICAgdGhpcy5vcHRzID0gZm9ybWF0T3B0czsKICAgICAgdGhpcy5sb2MgPSBsb2NhbGU7CiAgICAgIHRoaXMuc3lzdGVtTG9jID0gbnVsbDsKICAgIH0KCiAgICBmb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChkdCwgb3B0cykgewogICAgICBpZiAodGhpcy5zeXN0ZW1Mb2MgPT09IG51bGwpIHsKICAgICAgICB0aGlzLnN5c3RlbUxvYyA9IHRoaXMubG9jLnJlZGVmYXVsdFRvU3lzdGVtKCk7CiAgICAgIH0KICAgICAgY29uc3QgZGYgPSB0aGlzLnN5c3RlbUxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7CiAgICAgIHJldHVybiBkZi5mb3JtYXQoKTsKICAgIH0KCiAgICBkdEZvcm1hdHRlcihkdCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7CiAgICB9CgogICAgZm9ybWF0RGF0ZVRpbWUoZHQsIG9wdHMpIHsKICAgICAgcmV0dXJuIHRoaXMuZHRGb3JtYXR0ZXIoZHQsIG9wdHMpLmZvcm1hdCgpOwogICAgfQoKICAgIGZvcm1hdERhdGVUaW1lUGFydHMoZHQsIG9wdHMpIHsKICAgICAgcmV0dXJuIHRoaXMuZHRGb3JtYXR0ZXIoZHQsIG9wdHMpLmZvcm1hdFRvUGFydHMoKTsKICAgIH0KCiAgICBmb3JtYXRJbnRlcnZhbChpbnRlcnZhbCwgb3B0cykgewogICAgICBjb25zdCBkZiA9IHRoaXMuZHRGb3JtYXR0ZXIoaW50ZXJ2YWwuc3RhcnQsIG9wdHMpOwogICAgICByZXR1cm4gZGYuZHRmLmZvcm1hdFJhbmdlKGludGVydmFsLnN0YXJ0LnRvSlNEYXRlKCksIGludGVydmFsLmVuZC50b0pTRGF0ZSgpKTsKICAgIH0KCiAgICByZXNvbHZlZE9wdGlvbnMoZHQsIG9wdHMpIHsKICAgICAgcmV0dXJuIHRoaXMuZHRGb3JtYXR0ZXIoZHQsIG9wdHMpLnJlc29sdmVkT3B0aW9ucygpOwogICAgfQoKICAgIG51bShuLCBwID0gMCkgewogICAgICAvLyB3ZSBnZXQgc29tZSBwZXJmIG91dCBvZiBkb2luZyB0aGlzIGhlcmUsIGFubm95aW5nbHkKICAgICAgaWYgKHRoaXMub3B0cy5mb3JjZVNpbXBsZSkgewogICAgICAgIHJldHVybiBwYWRTdGFydChuLCBwKTsKICAgICAgfQoKICAgICAgY29uc3Qgb3B0cyA9IHsgLi4udGhpcy5vcHRzIH07CgogICAgICBpZiAocCA+IDApIHsKICAgICAgICBvcHRzLnBhZFRvID0gcDsKICAgICAgfQoKICAgICAgcmV0dXJuIHRoaXMubG9jLm51bWJlckZvcm1hdHRlcihvcHRzKS5mb3JtYXQobik7CiAgICB9CgogICAgZm9ybWF0RGF0ZVRpbWVGcm9tU3RyaW5nKGR0LCBmbXQpIHsKICAgICAgY29uc3Qga25vd25FbmdsaXNoID0gdGhpcy5sb2MubGlzdGluZ01vZGUoKSA9PT0gImVuIiwKICAgICAgICB1c2VEYXRlVGltZUZvcm1hdHRlciA9IHRoaXMubG9jLm91dHB1dENhbGVuZGFyICYmIHRoaXMubG9jLm91dHB1dENhbGVuZGFyICE9PSAiZ3JlZ29yeSIsCiAgICAgICAgc3RyaW5nID0gKG9wdHMsIGV4dHJhY3QpID0+IHRoaXMubG9jLmV4dHJhY3QoZHQsIG9wdHMsIGV4dHJhY3QpLAogICAgICAgIGZvcm1hdE9mZnNldCA9IChvcHRzKSA9PiB7CiAgICAgICAgICBpZiAoZHQuaXNPZmZzZXRGaXhlZCAmJiBkdC5vZmZzZXQgPT09IDAgJiYgb3B0cy5hbGxvd1opIHsKICAgICAgICAgICAgcmV0dXJuICJaIjsKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gZHQuaXNWYWxpZCA/IGR0LnpvbmUuZm9ybWF0T2Zmc2V0KGR0LnRzLCBvcHRzLmZvcm1hdCkgOiAiIjsKICAgICAgICB9LAogICAgICAgIG1lcmlkaWVtID0gKCkgPT4KICAgICAgICAgIGtub3duRW5nbGlzaAogICAgICAgICAgICA/IG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpCiAgICAgICAgICAgIDogc3RyaW5nKHsgaG91cjogIm51bWVyaWMiLCBob3VyQ3ljbGU6ICJoMTIiIH0sICJkYXlwZXJpb2QiKSwKICAgICAgICBtb250aCA9IChsZW5ndGgsIHN0YW5kYWxvbmUpID0+CiAgICAgICAgICBrbm93bkVuZ2xpc2gKICAgICAgICAgICAgPyBtb250aEZvckRhdGVUaW1lKGR0LCBsZW5ndGgpCiAgICAgICAgICAgIDogc3RyaW5nKHN0YW5kYWxvbmUgPyB7IG1vbnRoOiBsZW5ndGggfSA6IHsgbW9udGg6IGxlbmd0aCwgZGF5OiAibnVtZXJpYyIgfSwgIm1vbnRoIiksCiAgICAgICAgd2Vla2RheSA9IChsZW5ndGgsIHN0YW5kYWxvbmUpID0+CiAgICAgICAgICBrbm93bkVuZ2xpc2gKICAgICAgICAgICAgPyB3ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkKICAgICAgICAgICAgOiBzdHJpbmcoCiAgICAgICAgICAgICAgICBzdGFuZGFsb25lID8geyB3ZWVrZGF5OiBsZW5ndGggfSA6IHsgd2Vla2RheTogbGVuZ3RoLCBtb250aDogImxvbmciLCBkYXk6ICJudW1lcmljIiB9LAogICAgICAgICAgICAgICAgIndlZWtkYXkiCiAgICAgICAgICAgICAgKSwKICAgICAgICBtYXliZU1hY3JvID0gKHRva2VuKSA9PiB7CiAgICAgICAgICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4pOwogICAgICAgICAgaWYgKGZvcm1hdE9wdHMpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZHQsIGZvcm1hdE9wdHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIHRva2VuOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgZXJhID0gKGxlbmd0aCkgPT4KICAgICAgICAgIGtub3duRW5nbGlzaCA/IGVyYUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIDogc3RyaW5nKHsgZXJhOiBsZW5ndGggfSwgImVyYSIpLAogICAgICAgIHRva2VuVG9TdHJpbmcgPSAodG9rZW4pID0+IHsKICAgICAgICAgIC8vIFdoZXJlIHBvc3NpYmxlOiBodHRwczovL2NsZHIudW5pY29kZS5vcmcvdHJhbnNsYXRpb24vZGF0ZS10aW1lL2RhdGUtdGltZS1zeW1ib2xzCiAgICAgICAgICBzd2l0Y2ggKHRva2VuKSB7CiAgICAgICAgICAgIC8vIG1zCiAgICAgICAgICAgIGNhc2UgIlMiOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taWxsaXNlY29uZCk7CiAgICAgICAgICAgIGNhc2UgInUiOgogICAgICAgICAgICAvLyBmYWxscyB0aHJvdWdoCiAgICAgICAgICAgIGNhc2UgIlNTUyI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbGxpc2Vjb25kLCAzKTsKICAgICAgICAgICAgLy8gc2Vjb25kcwogICAgICAgICAgICBjYXNlICJzIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuc2Vjb25kKTsKICAgICAgICAgICAgY2FzZSAic3MiOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5zZWNvbmQsIDIpOwogICAgICAgICAgICAvLyBmcmFjdGlvbmFsIHNlY29uZHMKICAgICAgICAgICAgY2FzZSAidXUiOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTApLCAyKTsKICAgICAgICAgICAgY2FzZSAidXV1IjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC5taWxsaXNlY29uZCAvIDEwMCkpOwogICAgICAgICAgICAvLyBtaW51dGVzCiAgICAgICAgICAgIGNhc2UgIm0iOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taW51dGUpOwogICAgICAgICAgICBjYXNlICJtbSI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbnV0ZSwgMik7CiAgICAgICAgICAgIC8vIGhvdXJzCiAgICAgICAgICAgIGNhc2UgImgiOgogICAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyICUgMTIgPT09IDAgPyAxMiA6IGR0LmhvdXIgJSAxMik7CiAgICAgICAgICAgIGNhc2UgImhoIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciAlIDEyID09PSAwID8gMTIgOiBkdC5ob3VyICUgMTIsIDIpOwogICAgICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91cik7CiAgICAgICAgICAgIGNhc2UgIkhIIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciwgMik7CiAgICAgICAgICAgIC8vIG9mZnNldAogICAgICAgICAgICBjYXNlICJaIjoKICAgICAgICAgICAgICAvLyBsaWtlICs2CiAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogIm5hcnJvdyIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTsKICAgICAgICAgICAgY2FzZSAiWloiOgogICAgICAgICAgICAgIC8vIGxpa2UgKzA2OjAwCiAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogInNob3J0IiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pOwogICAgICAgICAgICBjYXNlICJaWloiOgogICAgICAgICAgICAgIC8vIGxpa2UgKzA2MDAKICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsgZm9ybWF0OiAidGVjaGllIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pOwogICAgICAgICAgICBjYXNlICJaWlpaIjoKICAgICAgICAgICAgICAvLyBsaWtlIEVTVAogICAgICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsgZm9ybWF0OiAic2hvcnQiLCBsb2NhbGU6IHRoaXMubG9jLmxvY2FsZSB9KTsKICAgICAgICAgICAgY2FzZSAiWlpaWloiOgogICAgICAgICAgICAgIC8vIGxpa2UgRWFzdGVybiBTdGFuZGFyZCBUaW1lCiAgICAgICAgICAgICAgcmV0dXJuIGR0LnpvbmUub2Zmc2V0TmFtZShkdC50cywgeyBmb3JtYXQ6ICJsb25nIiwgbG9jYWxlOiB0aGlzLmxvYy5sb2NhbGUgfSk7CiAgICAgICAgICAgIC8vIHpvbmUKICAgICAgICAgICAgY2FzZSAieiI6CiAgICAgICAgICAgICAgLy8gbGlrZSBBbWVyaWNhL05ld19Zb3JrCiAgICAgICAgICAgICAgcmV0dXJuIGR0LnpvbmVOYW1lOwogICAgICAgICAgICAvLyBtZXJpZGllbXMKICAgICAgICAgICAgY2FzZSAiYSI6CiAgICAgICAgICAgICAgcmV0dXJuIG1lcmlkaWVtKCk7CiAgICAgICAgICAgIC8vIGRhdGVzCiAgICAgICAgICAgIGNhc2UgImQiOgogICAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7IGRheTogIm51bWVyaWMiIH0sICJkYXkiKSA6IHRoaXMubnVtKGR0LmRheSk7CiAgICAgICAgICAgIGNhc2UgImRkIjoKICAgICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyBkYXk6ICIyLWRpZ2l0IiB9LCAiZGF5IikgOiB0aGlzLm51bShkdC5kYXksIDIpOwogICAgICAgICAgICAvLyB3ZWVrZGF5cyAtIHN0YW5kYWxvbmUKICAgICAgICAgICAgY2FzZSAiYyI6CiAgICAgICAgICAgICAgLy8gbGlrZSAxCiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtkYXkpOwogICAgICAgICAgICBjYXNlICJjY2MiOgogICAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXMnCiAgICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoInNob3J0IiwgdHJ1ZSk7CiAgICAgICAgICAgIGNhc2UgImNjY2MiOgogICAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknCiAgICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoImxvbmciLCB0cnVlKTsKICAgICAgICAgICAgY2FzZSAiY2NjY2MiOgogICAgICAgICAgICAgIC8vIGxpa2UgJ1QnCiAgICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoIm5hcnJvdyIsIHRydWUpOwogICAgICAgICAgICAvLyB3ZWVrZGF5cyAtIGZvcm1hdAogICAgICAgICAgICBjYXNlICJFIjoKICAgICAgICAgICAgICAvLyBsaWtlIDEKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla2RheSk7CiAgICAgICAgICAgIGNhc2UgIkVFRSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAnVHVlcycKICAgICAgICAgICAgICByZXR1cm4gd2Vla2RheSgic2hvcnQiLCBmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgIkVFRUUiOgogICAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknCiAgICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoImxvbmciLCBmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgIkVFRUVFIjoKICAgICAgICAgICAgICAvLyBsaWtlICdUJwogICAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KCJuYXJyb3ciLCBmYWxzZSk7CiAgICAgICAgICAgIC8vIG1vbnRocyAtIHN0YW5kYWxvbmUKICAgICAgICAgICAgY2FzZSAiTCI6CiAgICAgICAgICAgICAgLy8gbGlrZSAxCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiAibnVtZXJpYyIsIGRheTogIm51bWVyaWMiIH0sICJtb250aCIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoKTsKICAgICAgICAgICAgY2FzZSAiTEwiOgogICAgICAgICAgICAgIC8vIGxpa2UgMDEsIGRvZXNuJ3Qgc2VlbSB0byB3b3JrCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiAiMi1kaWdpdCIsIGRheTogIm51bWVyaWMiIH0sICJtb250aCIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTsKICAgICAgICAgICAgY2FzZSAiTExMIjoKICAgICAgICAgICAgICAvLyBsaWtlIEphbgogICAgICAgICAgICAgIHJldHVybiBtb250aCgic2hvcnQiLCB0cnVlKTsKICAgICAgICAgICAgY2FzZSAiTExMTCI6CiAgICAgICAgICAgICAgLy8gbGlrZSBKYW51YXJ5CiAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoKCJsb25nIiwgdHJ1ZSk7CiAgICAgICAgICAgIGNhc2UgIkxMTExMIjoKICAgICAgICAgICAgICAvLyBsaWtlIEoKICAgICAgICAgICAgICByZXR1cm4gbW9udGgoIm5hcnJvdyIsIHRydWUpOwogICAgICAgICAgICAvLyBtb250aHMgLSBmb3JtYXQKICAgICAgICAgICAgY2FzZSAiTSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAxCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiAibnVtZXJpYyIgfSwgIm1vbnRoIikKICAgICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgpOwogICAgICAgICAgICBjYXNlICJNTSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAwMQogICAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlcgogICAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogIjItZGlnaXQiIH0sICJtb250aCIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTsKICAgICAgICAgICAgY2FzZSAiTU1NIjoKICAgICAgICAgICAgICAvLyBsaWtlIEphbgogICAgICAgICAgICAgIHJldHVybiBtb250aCgic2hvcnQiLCBmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgIk1NTU0iOgogICAgICAgICAgICAgIC8vIGxpa2UgSmFudWFyeQogICAgICAgICAgICAgIHJldHVybiBtb250aCgibG9uZyIsIGZhbHNlKTsKICAgICAgICAgICAgY2FzZSAiTU1NTU0iOgogICAgICAgICAgICAgIC8vIGxpa2UgSgogICAgICAgICAgICAgIHJldHVybiBtb250aCgibmFycm93IiwgZmFsc2UpOwogICAgICAgICAgICAvLyB5ZWFycwogICAgICAgICAgICBjYXNlICJ5IjoKICAgICAgICAgICAgICAvLyBsaWtlIDIwMTQKICAgICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyB5ZWFyOiAibnVtZXJpYyIgfSwgInllYXIiKSA6IHRoaXMubnVtKGR0LnllYXIpOwogICAgICAgICAgICBjYXNlICJ5eSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAxNAogICAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlcgogICAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiAiMi1kaWdpdCIgfSwgInllYXIiKQogICAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTsKICAgICAgICAgICAgY2FzZSAieXl5eSI6CiAgICAgICAgICAgICAgLy8gbGlrZSAwMDEyCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IHllYXI6ICJudW1lcmljIiB9LCAieWVhciIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0LnllYXIsIDQpOwogICAgICAgICAgICBjYXNlICJ5eXl5eXkiOgogICAgICAgICAgICAgIC8vIGxpa2UgMDAwMDEyCiAgICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyCiAgICAgICAgICAgICAgICA/IHN0cmluZyh7IHllYXI6ICJudW1lcmljIiB9LCAieWVhciIpCiAgICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0LnllYXIsIDYpOwogICAgICAgICAgICAvLyBlcmFzCiAgICAgICAgICAgIGNhc2UgIkciOgogICAgICAgICAgICAgIC8vIGxpa2UgQUQKICAgICAgICAgICAgICByZXR1cm4gZXJhKCJzaG9ydCIpOwogICAgICAgICAgICBjYXNlICJHRyI6CiAgICAgICAgICAgICAgLy8gbGlrZSBBbm5vIERvbWluaQogICAgICAgICAgICAgIHJldHVybiBlcmEoImxvbmciKTsKICAgICAgICAgICAgY2FzZSAiR0dHR0ciOgogICAgICAgICAgICAgIHJldHVybiBlcmEoIm5hcnJvdyIpOwogICAgICAgICAgICBjYXNlICJrayI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtZZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTsKICAgICAgICAgICAgY2FzZSAia2trayI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtZZWFyLCA0KTsKICAgICAgICAgICAgY2FzZSAiVyI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtOdW1iZXIpOwogICAgICAgICAgICBjYXNlICJXVyI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtOdW1iZXIsIDIpOwogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQub3JkaW5hbCk7CiAgICAgICAgICAgIGNhc2UgIm9vbyI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm9yZGluYWwsIDMpOwogICAgICAgICAgICBjYXNlICJxIjoKICAgICAgICAgICAgICAvLyBsaWtlIDEKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQucXVhcnRlcik7CiAgICAgICAgICAgIGNhc2UgInFxIjoKICAgICAgICAgICAgICAvLyBsaWtlIDAxCiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnF1YXJ0ZXIsIDIpOwogICAgICAgICAgICBjYXNlICJYIjoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC50cyAvIDEwMDApKTsKICAgICAgICAgICAgY2FzZSAieCI6CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnRzKTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICByZXR1cm4gbWF5YmVNYWNybyh0b2tlbik7CiAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgIHJldHVybiBzdHJpbmdpZnlUb2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksIHRva2VuVG9TdHJpbmcpOwogICAgfQoKICAgIGZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyhkdXIsIGZtdCkgewogICAgICBjb25zdCB0b2tlblRvRmllbGQgPSAodG9rZW4pID0+IHsKICAgICAgICAgIHN3aXRjaCAodG9rZW5bMF0pIHsKICAgICAgICAgICAgY2FzZSAiUyI6CiAgICAgICAgICAgICAgcmV0dXJuICJtaWxsaXNlY29uZCI7CiAgICAgICAgICAgIGNhc2UgInMiOgogICAgICAgICAgICAgIHJldHVybiAic2Vjb25kIjsKICAgICAgICAgICAgY2FzZSAibSI6CiAgICAgICAgICAgICAgcmV0dXJuICJtaW51dGUiOwogICAgICAgICAgICBjYXNlICJoIjoKICAgICAgICAgICAgICByZXR1cm4gImhvdXIiOwogICAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgICByZXR1cm4gImRheSI7CiAgICAgICAgICAgIGNhc2UgInciOgogICAgICAgICAgICAgIHJldHVybiAid2VlayI7CiAgICAgICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICAgIHJldHVybiAibW9udGgiOwogICAgICAgICAgICBjYXNlICJ5IjoKICAgICAgICAgICAgICByZXR1cm4gInllYXIiOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdG9rZW5Ub1N0cmluZyA9IChsaWxkdXIpID0+ICh0b2tlbikgPT4gewogICAgICAgICAgY29uc3QgbWFwcGVkID0gdG9rZW5Ub0ZpZWxkKHRva2VuKTsKICAgICAgICAgIGlmIChtYXBwZWQpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGxpbGR1ci5nZXQobWFwcGVkKSwgdG9rZW4ubGVuZ3RoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0b2tlbjsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHRva2VucyA9IEZvcm1hdHRlci5wYXJzZUZvcm1hdChmbXQpLAogICAgICAgIHJlYWxUb2tlbnMgPSB0b2tlbnMucmVkdWNlKAogICAgICAgICAgKGZvdW5kLCB7IGxpdGVyYWwsIHZhbCB9KSA9PiAobGl0ZXJhbCA/IGZvdW5kIDogZm91bmQuY29uY2F0KHZhbCkpLAogICAgICAgICAgW10KICAgICAgICApLAogICAgICAgIGNvbGxhcHNlZCA9IGR1ci5zaGlmdFRvKC4uLnJlYWxUb2tlbnMubWFwKHRva2VuVG9GaWVsZCkuZmlsdGVyKCh0KSA9PiB0KSk7CiAgICAgIHJldHVybiBzdHJpbmdpZnlUb2tlbnModG9rZW5zLCB0b2tlblRvU3RyaW5nKGNvbGxhcHNlZCkpOwogICAgfQogIH0KCiAgY2xhc3MgSW52YWxpZCB7CiAgICBjb25zdHJ1Y3RvcihyZWFzb24sIGV4cGxhbmF0aW9uKSB7CiAgICAgIHRoaXMucmVhc29uID0gcmVhc29uOwogICAgICB0aGlzLmV4cGxhbmF0aW9uID0gZXhwbGFuYXRpb247CiAgICB9CgogICAgdG9NZXNzYWdlKCkgewogICAgICBpZiAodGhpcy5leHBsYW5hdGlvbikgewogICAgICAgIHJldHVybiBgJHt0aGlzLnJlYXNvbn06ICR7dGhpcy5leHBsYW5hdGlvbn1gOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB0aGlzLnJlYXNvbjsKICAgICAgfQogICAgfQogIH0KCiAgLyoKICAgKiBUaGlzIGZpbGUgaGFuZGxlcyBwYXJzaW5nIGZvciB3ZWxsLXNwZWNpZmllZCBmb3JtYXRzLiBIZXJlJ3MgaG93IGl0IHdvcmtzOgogICAqIFR3byB0aGluZ3MgZ28gaW50byBwYXJzaW5nOiBhIHJlZ2V4IHRvIG1hdGNoIHdpdGggYW5kIGFuIGV4dHJhY3RvciB0byB0YWtlIGFwYXJ0IHRoZSBncm91cHMgaW4gdGhlIG1hdGNoLgogICAqIEFuIGV4dHJhY3RvciBpcyBqdXN0IGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHJlZ2V4IG1hdGNoIGFycmF5IGFuZCByZXR1cm5zIGEgeyB5ZWFyOiAuLi4sIG1vbnRoOiAuLi4gfSBvYmplY3QKICAgKiBwYXJzZSgpIGRvZXMgdGhlIHdvcmsgb2YgZXhlY3V0aW5nIHRoZSByZWdleCBhbmQgYXBwbHlpbmcgdGhlIGV4dHJhY3Rvci4gSXQgdGFrZXMgbXVsdGlwbGUgcmVnZXgvZXh0cmFjdG9yIHBhaXJzIHRvIHRyeSBpbiBzZXF1ZW5jZS4KICAgKiBFeHRyYWN0b3JzIGNhbiB0YWtlIGEgImN1cnNvciIgcmVwcmVzZW50aW5nIHRoZSBvZmZzZXQgaW4gdGhlIG1hdGNoIHRvIGxvb2sgYXQuIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBjb21iaW5lIGV4dHJhY3RvcnMuCiAgICogY29tYmluZUV4dHJhY3RvcnMoKSBkb2VzIHRoZSB3b3JrIG9mIGNvbWJpbmluZyB0aGVtLCBrZWVwaW5nIHRyYWNrIG9mIHRoZSBjdXJzb3IgdGhyb3VnaCBtdWx0aXBsZSBleHRyYWN0aW9ucy4KICAgKiBTb21lIGV4dHJhY3Rpb25zIGFyZSBzdXBlciBkdW1iIGFuZCBzaW1wbGVQYXJzZSBhbmQgZnJvbVN0cmluZ3MgaGVscCBEUlkgdGhlbS4KICAgKi8KCiAgY29uc3QgaWFuYVJlZ2V4ID0gL1tBLVphLXpfKy1dezEsMjU2fSg/Ojo/XC9bQS1aYS16MC05XystXXsxLDI1Nn0oPzpcL1tBLVphLXowLTlfKy1dezEsMjU2fSk/KT8vOwoKICBmdW5jdGlvbiBjb21iaW5lUmVnZXhlcyguLi5yZWdleGVzKSB7CiAgICBjb25zdCBmdWxsID0gcmVnZXhlcy5yZWR1Y2UoKGYsIHIpID0+IGYgKyByLnNvdXJjZSwgIiIpOwogICAgcmV0dXJuIFJlZ0V4cChgXiR7ZnVsbH0kYCk7CiAgfQoKICBmdW5jdGlvbiBjb21iaW5lRXh0cmFjdG9ycyguLi5leHRyYWN0b3JzKSB7CiAgICByZXR1cm4gKG0pID0+CiAgICAgIGV4dHJhY3RvcnMKICAgICAgICAucmVkdWNlKAogICAgICAgICAgKFttZXJnZWRWYWxzLCBtZXJnZWRab25lLCBjdXJzb3JdLCBleCkgPT4gewogICAgICAgICAgICBjb25zdCBbdmFsLCB6b25lLCBuZXh0XSA9IGV4KG0sIGN1cnNvcik7CiAgICAgICAgICAgIHJldHVybiBbeyAuLi5tZXJnZWRWYWxzLCAuLi52YWwgfSwgem9uZSB8fCBtZXJnZWRab25lLCBuZXh0XTsKICAgICAgICAgIH0sCiAgICAgICAgICBbe30sIG51bGwsIDFdCiAgICAgICAgKQogICAgICAgIC5zbGljZSgwLCAyKTsKICB9CgogIGZ1bmN0aW9uIHBhcnNlKHMsIC4uLnBhdHRlcm5zKSB7CiAgICBpZiAocyA9PSBudWxsKSB7CiAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07CiAgICB9CgogICAgZm9yIChjb25zdCBbcmVnZXgsIGV4dHJhY3Rvcl0gb2YgcGF0dGVybnMpIHsKICAgICAgY29uc3QgbSA9IHJlZ2V4LmV4ZWMocyk7CiAgICAgIGlmIChtKSB7CiAgICAgICAgcmV0dXJuIGV4dHJhY3RvcihtKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIFtudWxsLCBudWxsXTsKICB9CgogIGZ1bmN0aW9uIHNpbXBsZVBhcnNlKC4uLmtleXMpIHsKICAgIHJldHVybiAobWF0Y2gsIGN1cnNvcikgPT4gewogICAgICBjb25zdCByZXQgPSB7fTsKICAgICAgbGV0IGk7CgogICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIHJldFtrZXlzW2ldXSA9IHBhcnNlSW50ZWdlcihtYXRjaFtjdXJzb3IgKyBpXSk7CiAgICAgIH0KICAgICAgcmV0dXJuIFtyZXQsIG51bGwsIGN1cnNvciArIGldOwogICAgfTsKICB9CgogIC8vIElTTyBhbmQgU1FMIHBhcnNpbmcKICBjb25zdCBvZmZzZXRSZWdleCA9IC8oPzooWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8pLzsKICBjb25zdCBpc29FeHRlbmRlZFpvbmUgPSBgKD86JHtvZmZzZXRSZWdleC5zb3VyY2V9Pyg/OlxcWygke2lhbmFSZWdleC5zb3VyY2V9KVxcXSk/KT9gOwogIGNvbnN0IGlzb1RpbWVCYXNlUmVnZXggPSAvKFxkXGQpKD86Oj8oXGRcZCkoPzo6PyhcZFxkKSg/OlsuLF0oXGR7MSwzMH0pKT8pPyk/LzsKICBjb25zdCBpc29UaW1lUmVnZXggPSBSZWdFeHAoYCR7aXNvVGltZUJhc2VSZWdleC5zb3VyY2V9JHtpc29FeHRlbmRlZFpvbmV9YCk7CiAgY29uc3QgaXNvVGltZUV4dGVuc2lvblJlZ2V4ID0gUmVnRXhwKGAoPzpUJHtpc29UaW1lUmVnZXguc291cmNlfSk/YCk7CiAgY29uc3QgaXNvWW1kUmVnZXggPSAvKFsrLV1cZHs2fXxcZHs0fSkoPzotPyhcZFxkKSg/Oi0/KFxkXGQpKT8pPy87CiAgY29uc3QgaXNvV2Vla1JlZ2V4ID0gLyhcZHs0fSktP1coXGRcZCkoPzotPyhcZCkpPy87CiAgY29uc3QgaXNvT3JkaW5hbFJlZ2V4ID0gLyhcZHs0fSktPyhcZHszfSkvOwogIGNvbnN0IGV4dHJhY3RJU09XZWVrRGF0YSA9IHNpbXBsZVBhcnNlKCJ3ZWVrWWVhciIsICJ3ZWVrTnVtYmVyIiwgIndlZWtEYXkiKTsKICBjb25zdCBleHRyYWN0SVNPT3JkaW5hbERhdGEgPSBzaW1wbGVQYXJzZSgieWVhciIsICJvcmRpbmFsIik7CiAgY29uc3Qgc3FsWW1kUmVnZXggPSAvKFxkezR9KS0oXGRcZCktKFxkXGQpLzsgLy8gZHVtYmVkLWRvd24gdmVyc2lvbiBvZiB0aGUgSVNPIG9uZQogIGNvbnN0IHNxbFRpbWVSZWdleCA9IFJlZ0V4cCgKICAgIGAke2lzb1RpbWVCYXNlUmVnZXguc291cmNlfSA/KD86JHtvZmZzZXRSZWdleC5zb3VyY2V9fCgke2lhbmFSZWdleC5zb3VyY2V9KSk/YAogICk7CiAgY29uc3Qgc3FsVGltZUV4dGVuc2lvblJlZ2V4ID0gUmVnRXhwKGAoPzogJHtzcWxUaW1lUmVnZXguc291cmNlfSk/YCk7CgogIGZ1bmN0aW9uIGludChtYXRjaCwgcG9zLCBmYWxsYmFjaykgewogICAgY29uc3QgbSA9IG1hdGNoW3Bvc107CiAgICByZXR1cm4gaXNVbmRlZmluZWQobSkgPyBmYWxsYmFjayA6IHBhcnNlSW50ZWdlcihtKTsKICB9CgogIGZ1bmN0aW9uIGV4dHJhY3RJU09ZbWQobWF0Y2gsIGN1cnNvcikgewogICAgY29uc3QgaXRlbSA9IHsKICAgICAgeWVhcjogaW50KG1hdGNoLCBjdXJzb3IpLAogICAgICBtb250aDogaW50KG1hdGNoLCBjdXJzb3IgKyAxLCAxKSwKICAgICAgZGF5OiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDEpLAogICAgfTsKCiAgICByZXR1cm4gW2l0ZW0sIG51bGwsIGN1cnNvciArIDNdOwogIH0KCiAgZnVuY3Rpb24gZXh0cmFjdElTT1RpbWUobWF0Y2gsIGN1cnNvcikgewogICAgY29uc3QgaXRlbSA9IHsKICAgICAgaG91cnM6IGludChtYXRjaCwgY3Vyc29yLCAwKSwKICAgICAgbWludXRlczogaW50KG1hdGNoLCBjdXJzb3IgKyAxLCAwKSwKICAgICAgc2Vjb25kczogaW50KG1hdGNoLCBjdXJzb3IgKyAyLCAwKSwKICAgICAgbWlsbGlzZWNvbmRzOiBwYXJzZU1pbGxpcyhtYXRjaFtjdXJzb3IgKyAzXSksCiAgICB9OwoKICAgIHJldHVybiBbaXRlbSwgbnVsbCwgY3Vyc29yICsgNF07CiAgfQoKICBmdW5jdGlvbiBleHRyYWN0SVNPT2Zmc2V0KG1hdGNoLCBjdXJzb3IpIHsKICAgIGNvbnN0IGxvY2FsID0gIW1hdGNoW2N1cnNvcl0gJiYgIW1hdGNoW2N1cnNvciArIDFdLAogICAgICBmdWxsT2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG1hdGNoW2N1cnNvciArIDFdLCBtYXRjaFtjdXJzb3IgKyAyXSksCiAgICAgIHpvbmUgPSBsb2NhbCA/IG51bGwgOiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoZnVsbE9mZnNldCk7CiAgICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTsKICB9CgogIGZ1bmN0aW9uIGV4dHJhY3RJQU5BWm9uZShtYXRjaCwgY3Vyc29yKSB7CiAgICBjb25zdCB6b25lID0gbWF0Y2hbY3Vyc29yXSA/IElBTkFab25lLmNyZWF0ZShtYXRjaFtjdXJzb3JdKSA6IG51bGw7CiAgICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTsKICB9CgogIC8vIElTTyB0aW1lIHBhcnNpbmcKCiAgY29uc3QgaXNvVGltZU9ubHkgPSBSZWdFeHAoYF5UPyR7aXNvVGltZUJhc2VSZWdleC5zb3VyY2V9JGApOwoKICAvLyBJU08gZHVyYXRpb24gcGFyc2luZwoKICBjb25zdCBpc29EdXJhdGlvbiA9CiAgICAvXi0/UCg/Oig/OigtP1xkezEsMjB9KD86XC5cZHsxLDIwfSk/KVkpPyg/OigtP1xkezEsMjB9KD86XC5cZHsxLDIwfSk/KU0pPyg/OigtP1xkezEsMjB9KD86XC5cZHsxLDIwfSk/KVcpPyg/OigtP1xkezEsMjB9KD86XC5cZHsxLDIwfSk/KUQpPyg/OlQoPzooLT9cZHsxLDIwfSg/OlwuXGR7MSwyMH0pPylIKT8oPzooLT9cZHsxLDIwfSg/OlwuXGR7MSwyMH0pPylNKT8oPzooLT9cZHsxLDIwfSkoPzpbLixdKC0/XGR7MSwyMH0pKT9TKT8pPykkLzsKCiAgZnVuY3Rpb24gZXh0cmFjdElTT0R1cmF0aW9uKG1hdGNoKSB7CiAgICBjb25zdCBbcywgeWVhclN0ciwgbW9udGhTdHIsIHdlZWtTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIsIG1pbGxpc2Vjb25kc1N0cl0gPQogICAgICBtYXRjaDsKCiAgICBjb25zdCBoYXNOZWdhdGl2ZVByZWZpeCA9IHNbMF0gPT09ICItIjsKICAgIGNvbnN0IG5lZ2F0aXZlU2Vjb25kcyA9IHNlY29uZFN0ciAmJiBzZWNvbmRTdHJbMF0gPT09ICItIjsKCiAgICBjb25zdCBtYXliZU5lZ2F0ZSA9IChudW0sIGZvcmNlID0gZmFsc2UpID0+CiAgICAgIG51bSAhPT0gdW5kZWZpbmVkICYmIChmb3JjZSB8fCAobnVtICYmIGhhc05lZ2F0aXZlUHJlZml4KSkgPyAtbnVtIDogbnVtOwoKICAgIHJldHVybiBbCiAgICAgIHsKICAgICAgICB5ZWFyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh5ZWFyU3RyKSksCiAgICAgICAgbW9udGhzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKG1vbnRoU3RyKSksCiAgICAgICAgd2Vla3M6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcod2Vla1N0cikpLAogICAgICAgIGRheXM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoZGF5U3RyKSksCiAgICAgICAgaG91cnM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoaG91clN0cikpLAogICAgICAgIG1pbnV0ZXM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcobWludXRlU3RyKSksCiAgICAgICAgc2Vjb25kczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhzZWNvbmRTdHIpLCBzZWNvbmRTdHIgPT09ICItMCIpLAogICAgICAgIG1pbGxpc2Vjb25kczogbWF5YmVOZWdhdGUocGFyc2VNaWxsaXMobWlsbGlzZWNvbmRzU3RyKSwgbmVnYXRpdmVTZWNvbmRzKSwKICAgICAgfSwKICAgIF07CiAgfQoKICAvLyBUaGVzZSBhcmUgYSBsaXR0bGUgYnJhaW5kZWFkLiBFRFQgKnNob3VsZCogdGVsbCB1cyB0aGF0IHdlJ3JlIGluLCBzYXksIEFtZXJpY2EvTmV3X1lvcmsKICAvLyBhbmQgbm90IGp1c3QgdGhhdCB3ZSdyZSBpbiAtMjQwICpyaWdodCBub3cqLiBCdXQgc2luY2UgSSBkb24ndCB0aGluayB0aGVzZSBhcmUgdXNlZCB0aGF0IG9mdGVuCiAgLy8gSSdtIGp1c3QgZ29pbmcgdG8gaWdub3JlIHRoYXQKICBjb25zdCBvYnNPZmZzZXRzID0gewogICAgR01UOiAwLAogICAgRURUOiAtNCAqIDYwLAogICAgRVNUOiAtNSAqIDYwLAogICAgQ0RUOiAtNSAqIDYwLAogICAgQ1NUOiAtNiAqIDYwLAogICAgTURUOiAtNiAqIDYwLAogICAgTVNUOiAtNyAqIDYwLAogICAgUERUOiAtNyAqIDYwLAogICAgUFNUOiAtOCAqIDYwLAogIH07CgogIGZ1bmN0aW9uIGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKSB7CiAgICBjb25zdCByZXN1bHQgPSB7CiAgICAgIHllYXI6IHllYXJTdHIubGVuZ3RoID09PSAyID8gdW50cnVuY2F0ZVllYXIocGFyc2VJbnRlZ2VyKHllYXJTdHIpKSA6IHBhcnNlSW50ZWdlcih5ZWFyU3RyKSwKICAgICAgbW9udGg6IG1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpICsgMSwKICAgICAgZGF5OiBwYXJzZUludGVnZXIoZGF5U3RyKSwKICAgICAgaG91cjogcGFyc2VJbnRlZ2VyKGhvdXJTdHIpLAogICAgICBtaW51dGU6IHBhcnNlSW50ZWdlcihtaW51dGVTdHIpLAogICAgfTsKCiAgICBpZiAoc2Vjb25kU3RyKSByZXN1bHQuc2Vjb25kID0gcGFyc2VJbnRlZ2VyKHNlY29uZFN0cik7CiAgICBpZiAod2Vla2RheVN0cikgewogICAgICByZXN1bHQud2Vla2RheSA9CiAgICAgICAgd2Vla2RheVN0ci5sZW5ndGggPiAzCiAgICAgICAgICA/IHdlZWtkYXlzTG9uZy5pbmRleE9mKHdlZWtkYXlTdHIpICsgMQogICAgICAgICAgOiB3ZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0cikgKyAxOwogICAgfQoKICAgIHJldHVybiByZXN1bHQ7CiAgfQoKICAvLyBSRkMgMjgyMi81MzIyCiAgY29uc3QgcmZjMjgyMiA9CiAgICAvXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLFxzKT8oXGR7MSwyfSlccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylccyhcZHsyLDR9KVxzKFxkXGQpOihcZFxkKSg/OjooXGRcZCkpP1xzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXGRcZCkoXGRcZCkpKSQvOwoKICBmdW5jdGlvbiBleHRyYWN0UkZDMjgyMihtYXRjaCkgewogICAgY29uc3QgWwogICAgICAgICwKICAgICAgICB3ZWVrZGF5U3RyLAogICAgICAgIGRheVN0ciwKICAgICAgICBtb250aFN0ciwKICAgICAgICB5ZWFyU3RyLAogICAgICAgIGhvdXJTdHIsCiAgICAgICAgbWludXRlU3RyLAogICAgICAgIHNlY29uZFN0ciwKICAgICAgICBvYnNPZmZzZXQsCiAgICAgICAgbWlsT2Zmc2V0LAogICAgICAgIG9mZkhvdXJTdHIsCiAgICAgICAgb2ZmTWludXRlU3RyLAogICAgICBdID0gbWF0Y2gsCiAgICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTsKCiAgICBsZXQgb2Zmc2V0OwogICAgaWYgKG9ic09mZnNldCkgewogICAgICBvZmZzZXQgPSBvYnNPZmZzZXRzW29ic09mZnNldF07CiAgICB9IGVsc2UgaWYgKG1pbE9mZnNldCkgewogICAgICBvZmZzZXQgPSAwOwogICAgfSBlbHNlIHsKICAgICAgb2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cik7CiAgICB9CgogICAgcmV0dXJuIFtyZXN1bHQsIG5ldyBGaXhlZE9mZnNldFpvbmUob2Zmc2V0KV07CiAgfQoKICBmdW5jdGlvbiBwcmVwcm9jZXNzUkZDMjgyMihzKSB7CiAgICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZQogICAgcmV0dXJuIHMKICAgICAgLnJlcGxhY2UoL1woW14oKV0qXCl8W1xuXHRdL2csICIgIikKICAgICAgLnJlcGxhY2UoLyhcc1xzKykvZywgIiAiKQogICAgICAudHJpbSgpOwogIH0KCiAgLy8gaHR0cCBkYXRlCgogIGNvbnN0IHJmYzExMjMgPQogICAgICAvXihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLCAoXGRcZCkgKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSAoXGR7NH0pIChcZFxkKTooXGRcZCk6KFxkXGQpIEdNVCQvLAogICAgcmZjODUwID0KICAgICAgL14oTW9uZGF5fFR1ZXNkYXl8V2VkbmVzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXGRcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXGRcZCkgKFxkXGQpOihcZFxkKTooXGRcZCkgR01UJC8sCiAgICBhc2NpaSA9CiAgICAgIC9eKE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1bikgKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSAoIFxkfFxkXGQpIChcZFxkKTooXGRcZCk6KFxkXGQpIChcZHs0fSkkLzsKCiAgZnVuY3Rpb24gZXh0cmFjdFJGQzExMjNPcjg1MChtYXRjaCkgewogICAgY29uc3QgWywgd2Vla2RheVN0ciwgZGF5U3RyLCBtb250aFN0ciwgeWVhclN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHJdID0gbWF0Y2gsCiAgICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTsKICAgIHJldHVybiBbcmVzdWx0LCBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2VdOwogIH0KCiAgZnVuY3Rpb24gZXh0cmFjdEFTQ0lJKG1hdGNoKSB7CiAgICBjb25zdCBbLCB3ZWVrZGF5U3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0ciwgeWVhclN0cl0gPSBtYXRjaCwKICAgICAgcmVzdWx0ID0gZnJvbVN0cmluZ3Mod2Vla2RheVN0ciwgeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpOwogICAgcmV0dXJuIFtyZXN1bHQsIEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZV07CiAgfQoKICBjb25zdCBpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvWW1kUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7CiAgY29uc3QgaXNvV2Vla1dpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29XZWVrUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7CiAgY29uc3QgaXNvT3JkaW5hbFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29PcmRpbmFsUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7CiAgY29uc3QgaXNvVGltZUNvbWJpbmVkUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29UaW1lUmVnZXgpOwoKICBjb25zdCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKAogICAgZXh0cmFjdElTT1ltZCwKICAgIGV4dHJhY3RJU09UaW1lLAogICAgZXh0cmFjdElTT09mZnNldCwKICAgIGV4dHJhY3RJQU5BWm9uZQogICk7CiAgY29uc3QgZXh0cmFjdElTT1dlZWtUaW1lQW5kT2Zmc2V0ID0gY29tYmluZUV4dHJhY3RvcnMoCiAgICBleHRyYWN0SVNPV2Vla0RhdGEsCiAgICBleHRyYWN0SVNPVGltZSwKICAgIGV4dHJhY3RJU09PZmZzZXQsCiAgICBleHRyYWN0SUFOQVpvbmUKICApOwogIGNvbnN0IGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWUgPSBjb21iaW5lRXh0cmFjdG9ycygKICAgIGV4dHJhY3RJU09PcmRpbmFsRGF0YSwKICAgIGV4dHJhY3RJU09UaW1lLAogICAgZXh0cmFjdElTT09mZnNldCwKICAgIGV4dHJhY3RJQU5BWm9uZQogICk7CiAgY29uc3QgZXh0cmFjdElTT1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycygKICAgIGV4dHJhY3RJU09UaW1lLAogICAgZXh0cmFjdElTT09mZnNldCwKICAgIGV4dHJhY3RJQU5BWm9uZQogICk7CgogIC8qCiAgICogQHByaXZhdGUKICAgKi8KCiAgZnVuY3Rpb24gcGFyc2VJU09EYXRlKHMpIHsKICAgIHJldHVybiBwYXJzZSgKICAgICAgcywKICAgICAgW2lzb1ltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0XSwKICAgICAgW2lzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXRdLAogICAgICBbaXNvT3JkaW5hbFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWVdLAogICAgICBbaXNvVGltZUNvbWJpbmVkUmVnZXgsIGV4dHJhY3RJU09UaW1lQW5kT2Zmc2V0XQogICAgKTsKICB9CgogIGZ1bmN0aW9uIHBhcnNlUkZDMjgyMkRhdGUocykgewogICAgcmV0dXJuIHBhcnNlKHByZXByb2Nlc3NSRkMyODIyKHMpLCBbcmZjMjgyMiwgZXh0cmFjdFJGQzI4MjJdKTsKICB9CgogIGZ1bmN0aW9uIHBhcnNlSFRUUERhdGUocykgewogICAgcmV0dXJuIHBhcnNlKAogICAgICBzLAogICAgICBbcmZjMTEyMywgZXh0cmFjdFJGQzExMjNPcjg1MF0sCiAgICAgIFtyZmM4NTAsIGV4dHJhY3RSRkMxMTIzT3I4NTBdLAogICAgICBbYXNjaWksIGV4dHJhY3RBU0NJSV0KICAgICk7CiAgfQoKICBmdW5jdGlvbiBwYXJzZUlTT0R1cmF0aW9uKHMpIHsKICAgIHJldHVybiBwYXJzZShzLCBbaXNvRHVyYXRpb24sIGV4dHJhY3RJU09EdXJhdGlvbl0pOwogIH0KCiAgY29uc3QgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpOwoKICBmdW5jdGlvbiBwYXJzZUlTT1RpbWVPbmx5KHMpIHsKICAgIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pOwogIH0KCiAgY29uc3Qgc3FsWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFltZFJlZ2V4LCBzcWxUaW1lRXh0ZW5zaW9uUmVnZXgpOwogIGNvbnN0IHNxbFRpbWVDb21iaW5lZFJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoc3FsVGltZVJlZ2V4KTsKCiAgY29uc3QgZXh0cmFjdElTT1RpbWVPZmZzZXRBbmRJQU5BWm9uZSA9IGNvbWJpbmVFeHRyYWN0b3JzKAogICAgZXh0cmFjdElTT1RpbWUsCiAgICBleHRyYWN0SVNPT2Zmc2V0LAogICAgZXh0cmFjdElBTkFab25lCiAgKTsKCiAgZnVuY3Rpb24gcGFyc2VTUUwocykgewogICAgcmV0dXJuIHBhcnNlKAogICAgICBzLAogICAgICBbc3FsWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT1ltZFRpbWVBbmRPZmZzZXRdLAogICAgICBbc3FsVGltZUNvbWJpbmVkUmVnZXgsIGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmVdCiAgICApOwogIH0KCiAgY29uc3QgSU5WQUxJRCQyID0gIkludmFsaWQgRHVyYXRpb24iOwoKICAvLyB1bml0IGNvbnZlcnNpb24gY29uc3RhbnRzCiAgY29uc3QgbG93T3JkZXJNYXRyaXggPSB7CiAgICAgIHdlZWtzOiB7CiAgICAgICAgZGF5czogNywKICAgICAgICBob3VyczogNyAqIDI0LAogICAgICAgIG1pbnV0ZXM6IDcgKiAyNCAqIDYwLAogICAgICAgIHNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiA3ICogMjQgKiA2MCAqIDYwICogMTAwMCwKICAgICAgfSwKICAgICAgZGF5czogewogICAgICAgIGhvdXJzOiAyNCwKICAgICAgICBtaW51dGVzOiAyNCAqIDYwLAogICAgICAgIHNlY29uZHM6IDI0ICogNjAgKiA2MCwKICAgICAgICBtaWxsaXNlY29uZHM6IDI0ICogNjAgKiA2MCAqIDEwMDAsCiAgICAgIH0sCiAgICAgIGhvdXJzOiB7IG1pbnV0ZXM6IDYwLCBzZWNvbmRzOiA2MCAqIDYwLCBtaWxsaXNlY29uZHM6IDYwICogNjAgKiAxMDAwIH0sCiAgICAgIG1pbnV0ZXM6IHsgc2Vjb25kczogNjAsIG1pbGxpc2Vjb25kczogNjAgKiAxMDAwIH0sCiAgICAgIHNlY29uZHM6IHsgbWlsbGlzZWNvbmRzOiAxMDAwIH0sCiAgICB9LAogICAgY2FzdWFsTWF0cml4ID0gewogICAgICB5ZWFyczogewogICAgICAgIHF1YXJ0ZXJzOiA0LAogICAgICAgIG1vbnRoczogMTIsCiAgICAgICAgd2Vla3M6IDUyLAogICAgICAgIGRheXM6IDM2NSwKICAgICAgICBob3VyczogMzY1ICogMjQsCiAgICAgICAgbWludXRlczogMzY1ICogMjQgKiA2MCwKICAgICAgICBzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwLAogICAgICB9LAogICAgICBxdWFydGVyczogewogICAgICAgIG1vbnRoczogMywKICAgICAgICB3ZWVrczogMTMsCiAgICAgICAgZGF5czogOTEsCiAgICAgICAgaG91cnM6IDkxICogMjQsCiAgICAgICAgbWludXRlczogOTEgKiAyNCAqIDYwLAogICAgICAgIHNlY29uZHM6IDkxICogMjQgKiA2MCAqIDYwLAogICAgICAgIG1pbGxpc2Vjb25kczogOTEgKiAyNCAqIDYwICogNjAgKiAxMDAwLAogICAgICB9LAogICAgICBtb250aHM6IHsKICAgICAgICB3ZWVrczogNCwKICAgICAgICBkYXlzOiAzMCwKICAgICAgICBob3VyczogMzAgKiAyNCwKICAgICAgICBtaW51dGVzOiAzMCAqIDI0ICogNjAsCiAgICAgICAgc2Vjb25kczogMzAgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiAzMCAqIDI0ICogNjAgKiA2MCAqIDEwMDAsCiAgICAgIH0sCgogICAgICAuLi5sb3dPcmRlck1hdHJpeCwKICAgIH0sCiAgICBkYXlzSW5ZZWFyQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQwMCwKICAgIGRheXNJbk1vbnRoQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQ4MDAsCiAgICBhY2N1cmF0ZU1hdHJpeCA9IHsKICAgICAgeWVhcnM6IHsKICAgICAgICBxdWFydGVyczogNCwKICAgICAgICBtb250aHM6IDEyLAogICAgICAgIHdlZWtzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyA3LAogICAgICAgIGRheXM6IGRheXNJblllYXJBY2N1cmF0ZSwKICAgICAgICBob3VyczogZGF5c0luWWVhckFjY3VyYXRlICogMjQsCiAgICAgICAgbWludXRlczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCwKICAgICAgICBzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgKiAxMDAwLAogICAgICB9LAogICAgICBxdWFydGVyczogewogICAgICAgIG1vbnRoczogMywKICAgICAgICB3ZWVrczogZGF5c0luWWVhckFjY3VyYXRlIC8gMjgsCiAgICAgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlIC8gNCwKICAgICAgICBob3VyczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0KSAvIDQsCiAgICAgICAgbWludXRlczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjApIC8gNCwKICAgICAgICBzZWNvbmRzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwKSAvIDQsCiAgICAgICAgbWlsbGlzZWNvbmRzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCkgLyA0LAogICAgICB9LAogICAgICBtb250aHM6IHsKICAgICAgICB3ZWVrczogZGF5c0luTW9udGhBY2N1cmF0ZSAvIDcsCiAgICAgICAgZGF5czogZGF5c0luTW9udGhBY2N1cmF0ZSwKICAgICAgICBob3VyczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0LAogICAgICAgIG1pbnV0ZXM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwLAogICAgICAgIHNlY29uZHM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsCiAgICAgICAgbWlsbGlzZWNvbmRzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCwKICAgICAgfSwKICAgICAgLi4ubG93T3JkZXJNYXRyaXgsCiAgICB9OwoKICAvLyB1bml0cyBvcmRlcmVkIGJ5IHNpemUKICBjb25zdCBvcmRlcmVkVW5pdHMkMSA9IFsKICAgICJ5ZWFycyIsCiAgICAicXVhcnRlcnMiLAogICAgIm1vbnRocyIsCiAgICAid2Vla3MiLAogICAgImRheXMiLAogICAgImhvdXJzIiwKICAgICJtaW51dGVzIiwKICAgICJzZWNvbmRzIiwKICAgICJtaWxsaXNlY29uZHMiLAogIF07CgogIGNvbnN0IHJldmVyc2VVbml0cyA9IG9yZGVyZWRVbml0cyQxLnNsaWNlKDApLnJldmVyc2UoKTsKCiAgLy8gY2xvbmUgcmVhbGx5IG1lYW5zICJjcmVhdGUgYW5vdGhlciBpbnN0YW5jZSBqdXN0IGxpa2UgdGhpcyBvbmUsIGJ1dCB3aXRoIHRoZXNlIGNoYW5nZXMiCiAgZnVuY3Rpb24gY2xvbmUkMShkdXIsIGFsdHMsIGNsZWFyID0gZmFsc2UpIHsKICAgIC8vIGRlZXAgbWVyZ2UgZm9yIHZhbHMKICAgIGNvbnN0IGNvbmYgPSB7CiAgICAgIHZhbHVlczogY2xlYXIgPyBhbHRzLnZhbHVlcyA6IHsgLi4uZHVyLnZhbHVlcywgLi4uKGFsdHMudmFsdWVzIHx8IHt9KSB9LAogICAgICBsb2M6IGR1ci5sb2MuY2xvbmUoYWx0cy5sb2MpLAogICAgICBjb252ZXJzaW9uQWNjdXJhY3k6IGFsdHMuY29udmVyc2lvbkFjY3VyYWN5IHx8IGR1ci5jb252ZXJzaW9uQWNjdXJhY3ksCiAgICAgIG1hdHJpeDogYWx0cy5tYXRyaXggfHwgZHVyLm1hdHJpeCwKICAgIH07CiAgICByZXR1cm4gbmV3IER1cmF0aW9uKGNvbmYpOwogIH0KCiAgZnVuY3Rpb24gZHVyYXRpb25Ub01pbGxpcyhtYXRyaXgsIHZhbHMpIHsKICAgIGxldCBzdW0gPSB2YWxzLm1pbGxpc2Vjb25kcyA/PyAwOwogICAgZm9yIChjb25zdCB1bml0IG9mIHJldmVyc2VVbml0cy5zbGljZSgxKSkgewogICAgICBpZiAodmFsc1t1bml0XSkgewogICAgICAgIHN1bSArPSB2YWxzW3VuaXRdICogbWF0cml4W3VuaXRdWyJtaWxsaXNlY29uZHMiXTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHN1bTsKICB9CgogIC8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnMKICBmdW5jdGlvbiBub3JtYWxpemVWYWx1ZXMobWF0cml4LCB2YWxzKSB7CiAgICAvLyB0aGUgbG9naWMgYmVsb3cgYXNzdW1lcyB0aGUgb3ZlcmFsbCB2YWx1ZSBvZiB0aGUgZHVyYXRpb24gaXMgcG9zaXRpdmUKICAgIC8vIGlmIHRoaXMgaXMgbm90IHRoZSBjYXNlLCBmYWN0b3IgaXMgdXNlZCB0byBtYWtlIGl0IHNvCiAgICBjb25zdCBmYWN0b3IgPSBkdXJhdGlvblRvTWlsbGlzKG1hdHJpeCwgdmFscykgPCAwID8gLTEgOiAxOwoKICAgIG9yZGVyZWRVbml0cyQxLnJlZHVjZVJpZ2h0KChwcmV2aW91cywgY3VycmVudCkgPT4gewogICAgICBpZiAoIWlzVW5kZWZpbmVkKHZhbHNbY3VycmVudF0pKSB7CiAgICAgICAgaWYgKHByZXZpb3VzKSB7CiAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbCA9IHZhbHNbcHJldmlvdXNdICogZmFjdG9yOwogICAgICAgICAgY29uc3QgY29udiA9IG1hdHJpeFtjdXJyZW50XVtwcmV2aW91c107CgogICAgICAgICAgLy8gaWYgKHByZXZpb3VzVmFsIDwgMCk6CiAgICAgICAgICAvLyBsb3dlciBvcmRlciB1bml0IGlzIG5lZ2F0aXZlIChlLmcuIHsgeWVhcnM6IDIsIGRheXM6IC0yIH0pCiAgICAgICAgICAvLyBub3JtYWxpemUgdGhpcyBieSByZWR1Y2luZyB0aGUgaGlnaGVyIG9yZGVyIHVuaXQgYnkgdGhlIGFwcHJvcHJpYXRlIGFtb3VudAogICAgICAgICAgLy8gYW5kIGluY3JlYXNpbmcgdGhlIGxvd2VyIG9yZGVyIHVuaXQKICAgICAgICAgIC8vIHRoaXMgY2FuIG5ldmVyIG1ha2UgdGhlIGhpZ2hlciBvcmRlciB1bml0IG5lZ2F0aXZlLCBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gb25seSBvcGVyYXRlcwogICAgICAgICAgLy8gb24gcG9zaXRpdmUgZHVyYXRpb25zLCBzbyB0aGUgYW1vdW50IG9mIHRpbWUgcmVwcmVzZW50ZWQgYnkgdGhlIGxvd2VyIG9yZGVyIHVuaXQgY2Fubm90CiAgICAgICAgICAvLyBiZSBsYXJnZXIgdGhhbiB0aGUgaGlnaGVyIG9yZGVyIHVuaXQKICAgICAgICAgIC8vIGVsc2U6CiAgICAgICAgICAvLyBsb3dlciBvcmRlciB1bml0IGlzIHBvc2l0aXZlIChlLmcuIHsgeWVhcnM6IDIsIGRheXM6IDQ1MCB9IG9yIHsgeWVhcnM6IC0yLCBkYXlzOiA0NTAgfSkKICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSB3ZSBhdHRlbXB0IHRvIGNvbnZlcnQgYXMgbXVjaCBhcyBwb3NzaWJsZSBmcm9tIHRoZSBsb3dlciBvcmRlciB1bml0IGludG8KICAgICAgICAgIC8vIHRoZSBoaWdoZXIgb3JkZXIgb25lCiAgICAgICAgICAvLwogICAgICAgICAgLy8gTWF0aC5mbG9vciB0YWtlcyBjYXJlIG9mIGJvdGggb2YgdGhlc2UgY2FzZXMsIHJvdW5kaW5nIGF3YXkgZnJvbSAwCiAgICAgICAgICAvLyBpZiBwcmV2aW91c1ZhbCA8IDAgaXQgbWFrZXMgdGhlIGFic29sdXRlIHZhbHVlIGxhcmdlcgogICAgICAgICAgLy8gaWYgcHJldmlvdXNWYWwgPj0gaXQgbWFrZXMgdGhlIGFic29sdXRlIHZhbHVlIHNtYWxsZXIKICAgICAgICAgIGNvbnN0IHJvbGxVcCA9IE1hdGguZmxvb3IocHJldmlvdXNWYWwgLyBjb252KTsKICAgICAgICAgIHZhbHNbY3VycmVudF0gKz0gcm9sbFVwICogZmFjdG9yOwogICAgICAgICAgdmFsc1twcmV2aW91c10gLT0gcm9sbFVwICogY29udiAqIGZhY3RvcjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHByZXZpb3VzOwogICAgICB9CiAgICB9LCBudWxsKTsKCiAgICAvLyB0cnkgdG8gY29udmVydCBhbnkgZGVjaW1hbHMgaW50byBzbWFsbGVyIHVuaXRzIGlmIHBvc3NpYmxlCiAgICAvLyBmb3IgZXhhbXBsZSBmb3IgeyB5ZWFyczogMi41LCBkYXlzOiAwLCBzZWNvbmRzOiAwIH0gd2Ugd2FudCB0byBnZXQgeyB5ZWFyczogMiwgZGF5czogMTgyLCBob3VyczogMTIgfQogICAgb3JkZXJlZFVuaXRzJDEucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gewogICAgICBpZiAoIWlzVW5kZWZpbmVkKHZhbHNbY3VycmVudF0pKSB7CiAgICAgICAgaWYgKHByZXZpb3VzKSB7CiAgICAgICAgICBjb25zdCBmcmFjdGlvbiA9IHZhbHNbcHJldmlvdXNdICUgMTsKICAgICAgICAgIHZhbHNbcHJldmlvdXNdIC09IGZyYWN0aW9uOwogICAgICAgICAgdmFsc1tjdXJyZW50XSArPSBmcmFjdGlvbiAqIG1hdHJpeFtwcmV2aW91c11bY3VycmVudF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBjdXJyZW50OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBwcmV2aW91czsKICAgICAgfQogICAgfSwgbnVsbCk7CiAgfQoKICAvLyBSZW1vdmUgYWxsIHByb3BlcnRpZXMgd2l0aCBhIHZhbHVlIG9mIDAgZnJvbSBhbiBvYmplY3QKICBmdW5jdGlvbiByZW1vdmVaZXJvZXModmFscykgewogICAgY29uc3QgbmV3VmFscyA9IHt9OwogICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFscykpIHsKICAgICAgaWYgKHZhbHVlICE9PSAwKSB7CiAgICAgICAgbmV3VmFsc1trZXldID0gdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBuZXdWYWxzOwogIH0KCiAgLyoqCiAgICogQSBEdXJhdGlvbiBvYmplY3QgcmVwcmVzZW50cyBhIHBlcmlvZCBvZiB0aW1lLCBsaWtlICIyIG1vbnRocyIgb3IgIjEgZGF5LCAxIGhvdXIiLiBDb25jZXB0dWFsbHksIGl0J3MganVzdCBhIG1hcCBvZiB1bml0cyB0byB0aGVpciBxdWFudGl0aWVzLCBhY2NvbXBhbmllZCBieSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcsIHBhcnNpbmcsIGludGVycm9nYXRpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS4gVGhleSBjYW4gYmUgdXNlZCBvbiB0aGVpciBvd24gb3IgaW4gY29uanVuY3Rpb24gd2l0aCBvdGhlciBMdXhvbiB0eXBlczsgZm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIHtAbGluayBEYXRlVGltZSNwbHVzfSB0byBhZGQgYSBEdXJhdGlvbiBvYmplY3QgdG8gYSBEYXRlVGltZSwgcHJvZHVjaW5nIGFub3RoZXIgRGF0ZVRpbWUuCiAgICoKICAgKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIER1cmF0aW9uOgogICAqCiAgICogKiAqKkNyZWF0aW9uKiogVG8gY3JlYXRlIGEgRHVyYXRpb24sIHVzZSB7QGxpbmsgRHVyYXRpb24uZnJvbU1pbGxpc30sIHtAbGluayBEdXJhdGlvbi5mcm9tT2JqZWN0fSwgb3Ige0BsaW5rIER1cmF0aW9uLmZyb21JU099LgogICAqICogKipVbml0IHZhbHVlcyoqIFNlZSB0aGUge0BsaW5rIER1cmF0aW9uI3llYXJzfSwge0BsaW5rIER1cmF0aW9uI21vbnRoc30sIHtAbGluayBEdXJhdGlvbiN3ZWVrc30sIHtAbGluayBEdXJhdGlvbiNkYXlzfSwge0BsaW5rIER1cmF0aW9uI2hvdXJzfSwge0BsaW5rIER1cmF0aW9uI21pbnV0ZXN9LCB7QGxpbmsgRHVyYXRpb24jc2Vjb25kc30sIHtAbGluayBEdXJhdGlvbiNtaWxsaXNlY29uZHN9IGFjY2Vzc29ycy4KICAgKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSAge0BsaW5rIER1cmF0aW9uI2xvY2FsZX0gYW5kIHtAbGluayBEdXJhdGlvbiNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy4KICAgKiAqICoqVHJhbnNmb3JtYXRpb24qKiBUbyBjcmVhdGUgbmV3IER1cmF0aW9ucyBvdXQgb2Ygb2xkIG9uZXMgdXNlIHtAbGluayBEdXJhdGlvbiNwbHVzfSwge0BsaW5rIER1cmF0aW9uI21pbnVzfSwge0BsaW5rIER1cmF0aW9uI25vcm1hbGl6ZX0sIHtAbGluayBEdXJhdGlvbiNzZXR9LCB7QGxpbmsgRHVyYXRpb24jcmVjb25maWd1cmV9LCB7QGxpbmsgRHVyYXRpb24jc2hpZnRUb30sIGFuZCB7QGxpbmsgRHVyYXRpb24jbmVnYXRlfS4KICAgKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgRHVyYXRpb24gaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgRHVyYXRpb24jYXN9LCB7QGxpbmsgRHVyYXRpb24jdG9JU099LCB7QGxpbmsgRHVyYXRpb24jdG9Gb3JtYXR9LCBhbmQge0BsaW5rIER1cmF0aW9uI3RvSlNPTn0KICAgKgogICAqIFRoZXJlJ3MgYXJlIG1vcmUgbWV0aG9kcyBkb2N1bWVudGVkIGJlbG93LiBJbiBhZGRpdGlvbiwgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gc3VidGxlciB0b3BpY3MgbGlrZSBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgdmFsaWRpdHksIHNlZSB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbi4KICAgKi8KICBjbGFzcyBEdXJhdGlvbiB7CiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKi8KICAgIGNvbnN0cnVjdG9yKGNvbmZpZykgewogICAgICBjb25zdCBhY2N1cmF0ZSA9IGNvbmZpZy5jb252ZXJzaW9uQWNjdXJhY3kgPT09ICJsb25ndGVybSIgfHwgZmFsc2U7CiAgICAgIGxldCBtYXRyaXggPSBhY2N1cmF0ZSA/IGFjY3VyYXRlTWF0cml4IDogY2FzdWFsTWF0cml4OwoKICAgICAgaWYgKGNvbmZpZy5tYXRyaXgpIHsKICAgICAgICBtYXRyaXggPSBjb25maWcubWF0cml4OwogICAgICB9CgogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLnZhbHVlcyA9IGNvbmZpZy52YWx1ZXM7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMubG9jID0gY29uZmlnLmxvYyB8fCBMb2NhbGUuY3JlYXRlKCk7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMuY29udmVyc2lvbkFjY3VyYWN5ID0gYWNjdXJhdGUgPyAibG9uZ3Rlcm0iIDogImNhc3VhbCI7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMuaW52YWxpZCA9IGNvbmZpZy5pbnZhbGlkIHx8IG51bGw7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMubWF0cml4ID0gbWF0cml4OwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmlzTHV4b25EdXJhdGlvbiA9IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgRHVyYXRpb24gZnJvbSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMuCiAgICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQgb2YgbWlsbGlzZWNvbmRzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmcKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2UKICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBzdGF0aWMgZnJvbU1pbGxpcyhjb3VudCwgb3B0cykgewogICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbGxpc2Vjb25kczogY291bnQgfSwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXJzJyBhbmQgJ2hvdXJzJy4KICAgICAqIElmIHRoaXMgb2JqZWN0IGlzIGVtcHR5IHRoZW4gYSB6ZXJvIG1pbGxpc2Vjb25kcyBkdXJhdGlvbiBpcyByZXR1cm5lZC4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbQogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai55ZWFycwogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5xdWFydGVycwogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aHMKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla3MKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouZGF5cwogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3VycwogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taW51dGVzCiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnNlY29uZHMKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmRzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHM9W11dIC0gb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhpcyBEdXJhdGlvbgogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIHByZXNldCBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5tYXRyaXg9T2JqZWN0XSAtIHRoZSBjdXN0b20gY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgc3RhdGljIGZyb21PYmplY3Qob2JqLCBvcHRzID0ge30pIHsKICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKAogICAgICAgICAgYER1cmF0aW9uLmZyb21PYmplY3Q6IGFyZ3VtZW50IGV4cGVjdGVkIHRvIGJlIGFuIG9iamVjdCwgZ290ICR7CiAgICAgICAgICBvYmogPT09IG51bGwgPyAibnVsbCIgOiB0eXBlb2Ygb2JqCiAgICAgICAgfWAKICAgICAgICApOwogICAgICB9CgogICAgICByZXR1cm4gbmV3IER1cmF0aW9uKHsKICAgICAgICB2YWx1ZXM6IG5vcm1hbGl6ZU9iamVjdChvYmosIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLAogICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0cyksCiAgICAgICAgY29udmVyc2lvbkFjY3VyYWN5OiBvcHRzLmNvbnZlcnNpb25BY2N1cmFjeSwKICAgICAgICBtYXRyaXg6IG9wdHMubWF0cml4LAogICAgICB9KTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gRHVyYXRpb25MaWtlLgogICAgICoKICAgICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVtYmVyIHwgRHVyYXRpb259IGR1cmF0aW9uTGlrZQogICAgICogT25lIG9mOgogICAgICogLSBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXJzJyBhbmQgJ2hvdXJzJy4KICAgICAqIC0gbnVtYmVyIHJlcHJlc2VudGluZyBtaWxsaXNlY29uZHMKICAgICAqIC0gRHVyYXRpb24gaW5zdGFuY2UKICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBzdGF0aWMgZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbkxpa2UpIHsKICAgICAgaWYgKGlzTnVtYmVyKGR1cmF0aW9uTGlrZSkpIHsKICAgICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhkdXJhdGlvbkxpa2UpOwogICAgICB9IGVsc2UgaWYgKER1cmF0aW9uLmlzRHVyYXRpb24oZHVyYXRpb25MaWtlKSkgewogICAgICAgIHJldHVybiBkdXJhdGlvbkxpa2U7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uTGlrZSA9PT0gIm9iamVjdCIpIHsKICAgICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdChkdXJhdGlvbkxpa2UpOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigKICAgICAgICAgIGBVbmtub3duIGR1cmF0aW9uIGFyZ3VtZW50ICR7ZHVyYXRpb25MaWtlfSBvZiB0eXBlICR7dHlwZW9mIGR1cmF0aW9uTGlrZX1gCiAgICAgICAgKTsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSBkdXJhdGlvbiBzdHJpbmcuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2UKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZwogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIHByZXNldCBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5tYXRyaXg9T2JqZWN0XSAtIHRoZSBwcmVzZXQgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI0R1cmF0aW9ucwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUDNZNk0xVzREVDEySDMwTTVTJykudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDMsIG1vbnRoczogNiwgd2Vla3M6IDEsIGRheXM6IDQsIGhvdXJzOiAxMiwgbWludXRlczogMzAsIHNlY29uZHM6IDUgfQogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUFQyM0gnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjMgfQogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUDVZM00nKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogNSwgbW9udGhzOiAzIH0KICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzKSB7CiAgICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09EdXJhdGlvbih0ZXh0KTsKICAgICAgaWYgKHBhcnNlZCkgewogICAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoInVucGFyc2FibGUiLCBgdGhlIGlucHV0ICIke3RleHR9IiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSB0aW1lIHN0cmluZy4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGV4dCB0byBwYXJzZQogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgcHJlc2V0IGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm1hdHJpeD1PYmplY3RdIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lcwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExOjIyOjMzLjQ0NCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMjIsIHNlY29uZHM6IDMzLCBtaWxsaXNlY29uZHM6IDQ0NCB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTE6MDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfQogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJ1QxMTowMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTEwMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnVDExMDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tSVNPVGltZSh0ZXh0LCBvcHRzKSB7CiAgICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09UaW1lT25seSh0ZXh0KTsKICAgICAgaWYgKHBhcnNlZCkgewogICAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoInVucGFyc2FibGUiLCBgdGhlIGlucHV0ICIke3RleHR9IiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGFuIGludmFsaWQgRHVyYXRpb24uCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBkYXRldGltZSBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50CiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uCiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHsKICAgICAgaWYgKCFyZWFzb24pIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRHVyYXRpb24gaXMgaW52YWxpZCIpOwogICAgICB9CgogICAgICBjb25zdCBpbnZhbGlkID0gcmVhc29uIGluc3RhbmNlb2YgSW52YWxpZCA/IHJlYXNvbiA6IG5ldyBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pOwoKICAgICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWREdXJhdGlvbkVycm9yKGludmFsaWQpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBuZXcgRHVyYXRpb24oeyBpbnZhbGlkIH0pOwogICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICovCiAgICBzdGF0aWMgbm9ybWFsaXplVW5pdCh1bml0KSB7CiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7CiAgICAgICAgeWVhcjogInllYXJzIiwKICAgICAgICB5ZWFyczogInllYXJzIiwKICAgICAgICBxdWFydGVyOiAicXVhcnRlcnMiLAogICAgICAgIHF1YXJ0ZXJzOiAicXVhcnRlcnMiLAogICAgICAgIG1vbnRoOiAibW9udGhzIiwKICAgICAgICBtb250aHM6ICJtb250aHMiLAogICAgICAgIHdlZWs6ICJ3ZWVrcyIsCiAgICAgICAgd2Vla3M6ICJ3ZWVrcyIsCiAgICAgICAgZGF5OiAiZGF5cyIsCiAgICAgICAgZGF5czogImRheXMiLAogICAgICAgIGhvdXI6ICJob3VycyIsCiAgICAgICAgaG91cnM6ICJob3VycyIsCiAgICAgICAgbWludXRlOiAibWludXRlcyIsCiAgICAgICAgbWludXRlczogIm1pbnV0ZXMiLAogICAgICAgIHNlY29uZDogInNlY29uZHMiLAogICAgICAgIHNlY29uZHM6ICJzZWNvbmRzIiwKICAgICAgICBtaWxsaXNlY29uZDogIm1pbGxpc2Vjb25kcyIsCiAgICAgICAgbWlsbGlzZWNvbmRzOiAibWlsbGlzZWNvbmRzIiwKICAgICAgfVt1bml0ID8gdW5pdC50b0xvd2VyQ2FzZSgpIDogdW5pdF07CgogICAgICBpZiAoIW5vcm1hbGl6ZWQpIHRocm93IG5ldyBJbnZhbGlkVW5pdEVycm9yKHVuaXQpOwoKICAgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYSBEdXJhdGlvbi4gV29ya3MgYWNyb3NzIGNvbnRleHQgYm91bmRhcmllcwogICAgICogQHBhcmFtIHtvYmplY3R9IG8KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIHN0YXRpYyBpc0R1cmF0aW9uKG8pIHsKICAgICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkR1cmF0aW9uKSB8fCBmYWxzZTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCAgdGhlIGxvY2FsZSBvZiBhIER1cmF0aW9uLCBzdWNoICdlbi1HQicKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBsb2NhbGUoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5sb2NhbGUgOiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBudW1iZXJpbmcgc3lzdGVtIG9mIGEgRHVyYXRpb24sIHN1Y2ggJ2JlbmcnLiBUaGUgbnVtYmVyaW5nIHN5c3RlbSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRHVyYXRpb24KICAgICAqCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgbnVtYmVyaW5nU3lzdGVtKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtIDogbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy4gWW91IG1heSB1c2UgdGhlc2UgdG9rZW5zOgogICAgICogKiBgU2AgZm9yIG1pbGxpc2Vjb25kcwogICAgICogKiBgc2AgZm9yIHNlY29uZHMKICAgICAqICogYG1gIGZvciBtaW51dGVzCiAgICAgKiAqIGBoYCBmb3IgaG91cnMKICAgICAqICogYGRgIGZvciBkYXlzCiAgICAgKiAqIGB3YCBmb3Igd2Vla3MKICAgICAqICogYE1gIGZvciBtb250aHMKICAgICAqICogYHlgIGZvciB5ZWFycwogICAgICogTm90ZXM6CiAgICAgKiAqIEFkZCBwYWRkaW5nIGJ5IHJlcGVhdGluZyB0aGUgdG9rZW4sIGUuZy4gInl5IiBwYWRzIHRoZSB5ZWFycyB0byB0d28gZGlnaXRzLCAiaGhoaCIgcGFkcyB0aGUgaG91cnMgb3V0IHRvIGZvdXIgZGlnaXRzCiAgICAgKiAqIFRva2VucyBjYW4gYmUgZXNjYXBlZCBieSB3cmFwcGluZyB3aXRoIHNpbmdsZSBxdW90ZXMuCiAgICAgKiAqIFRoZSBkdXJhdGlvbiB3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgc2V0IG9mIHVuaXRzIGluIHRoZSBmb3JtYXQgc3RyaW5nIHVzaW5nIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSBhbmQgdGhlIER1cmF0aW9ucydzIGNvbnZlcnNpb24gYWNjdXJhY3kgc2V0dGluZy4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHN0cmluZwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmZsb29yPXRydWVdIC0gZmxvb3IgbnVtZXJpY2FsIHZhbHVlcwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KCJ5IGQgcyIpIC8vPT4gIjEgNiAyIgogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KCJ5eSBkZCBzc3MiKSAvLz0+ICIwMSAwNiAwMDIiCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoIk0gUyIpIC8vPT4gIjEyIDUxODQwMjAwMCIKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9Gb3JtYXQoZm10LCBvcHRzID0ge30pIHsKICAgICAgLy8gcmV2ZXJzZS1jb21wYXQgc2luY2UgMS4yOyB3ZSBhbHdheXMgcm91bmQgZG93biBub3csIG5ldmVyIHVwLCBhbmQgd2UgZG8gaXQgYnkgZGVmYXVsdAogICAgICBjb25zdCBmbXRPcHRzID0gewogICAgICAgIC4uLm9wdHMsCiAgICAgICAgZmxvb3I6IG9wdHMucm91bmQgIT09IGZhbHNlICYmIG9wdHMuZmxvb3IgIT09IGZhbHNlLAogICAgICB9OwogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkCiAgICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLCBmbXRPcHRzKS5mb3JtYXREdXJhdGlvbkZyb21TdHJpbmcodGhpcywgZm10KQogICAgICAgIDogSU5WQUxJRCQyOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIER1cmF0aW9uIHdpdGggYWxsIHVuaXRzIGluY2x1ZGVkLgogICAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LgogICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9JbnRsL051bWJlckZvcm1hdAogICAgICogQHBhcmFtIG9wdHMgLSBPbiBvcHRpb24gb2JqZWN0IHRvIG92ZXJyaWRlIHRoZSBmb3JtYXR0aW5nLiBBY2NlcHRzIHRoZSBzYW1lIGtleXMgYXMgdGhlIG9wdGlvbnMgcGFyYW1ldGVyIG9mIHRoZSBuYXRpdmUgYEludC5OdW1iZXJGb3JtYXRgIGNvbnN0cnVjdG9yLCBhcyB3ZWxsIGFzIGBsaXN0U3R5bGVgLgogICAgICogQGV4YW1wbGUKICAgICAqIGBgYGpzCiAgICAgKiB2YXIgZHVyID0gRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEsIGhvdXJzOiA1LCBtaW51dGVzOiA2IH0pCiAgICAgKiBkdXIudG9IdW1hbigpIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCA2IG1pbnV0ZXMnCiAgICAgKiBkdXIudG9IdW1hbih7IGxpc3RTdHlsZTogImxvbmciIH0pIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCBhbmQgNiBtaW51dGVzJwogICAgICogZHVyLnRvSHVtYW4oeyB1bml0RGlzcGxheTogInNob3J0IiB9KSAvLz0+ICcxIGRheSwgNSBociwgNiBtaW4nCiAgICAgKiBgYGAKICAgICAqLwogICAgdG9IdW1hbihvcHRzID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEJDI7CgogICAgICBjb25zdCBsID0gb3JkZXJlZFVuaXRzJDEKICAgICAgICAubWFwKCh1bml0KSA9PiB7CiAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLnZhbHVlc1t1bml0XTsKICAgICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWwpKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRoaXMubG9jCiAgICAgICAgICAgIC5udW1iZXJGb3JtYXR0ZXIoeyBzdHlsZTogInVuaXQiLCB1bml0RGlzcGxheTogImxvbmciLCAuLi5vcHRzLCB1bml0OiB1bml0LnNsaWNlKDAsIC0xKSB9KQogICAgICAgICAgICAuZm9ybWF0KHZhbCk7CiAgICAgICAgfSkKICAgICAgICAuZmlsdGVyKChuKSA9PiBuKTsKCiAgICAgIHJldHVybiB0aGlzLmxvYwogICAgICAgIC5saXN0Rm9ybWF0dGVyKHsgdHlwZTogImNvbmp1bmN0aW9uIiwgc3R5bGU6IG9wdHMubGlzdFN0eWxlIHx8ICJuYXJyb3ciLCAuLi5vcHRzIH0pCiAgICAgICAgLmZvcm1hdChsKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoaXMgRHVyYXRpb24ncyB2YWx1ZXMuCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfQogICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICovCiAgICB0b09iamVjdCgpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTsKICAgICAgcmV0dXJuIHsgLi4udGhpcy52YWx1ZXMgfTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnMKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMywgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQM1lUNDVTJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNCwgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQNE1UNDVTJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNSB9KS50b0lTTygpIC8vPT4gJ1A1TScKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiA1IH0pLnRvSVNPKCkgLy89PiAnUFQ1TScKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IDYgfSkudG9JU08oKSAvLz0+ICdQVDAuMDA2UycKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU08oKSB7CiAgICAgIC8vIHdlIGNvdWxkIHVzZSB0aGUgZm9ybWF0dGVyLCBidXQgdGhpcyBpcyBhbiBlYXNpZXIgd2F5IHRvIGdldCB0aGUgbWluaW11bSBzdHJpbmcKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwoKICAgICAgbGV0IHMgPSAiUCI7CiAgICAgIGlmICh0aGlzLnllYXJzICE9PSAwKSBzICs9IHRoaXMueWVhcnMgKyAiWSI7CiAgICAgIGlmICh0aGlzLm1vbnRocyAhPT0gMCB8fCB0aGlzLnF1YXJ0ZXJzICE9PSAwKSBzICs9IHRoaXMubW9udGhzICsgdGhpcy5xdWFydGVycyAqIDMgKyAiTSI7CiAgICAgIGlmICh0aGlzLndlZWtzICE9PSAwKSBzICs9IHRoaXMud2Vla3MgKyAiVyI7CiAgICAgIGlmICh0aGlzLmRheXMgIT09IDApIHMgKz0gdGhpcy5kYXlzICsgIkQiOwogICAgICBpZiAodGhpcy5ob3VycyAhPT0gMCB8fCB0aGlzLm1pbnV0ZXMgIT09IDAgfHwgdGhpcy5zZWNvbmRzICE9PSAwIHx8IHRoaXMubWlsbGlzZWNvbmRzICE9PSAwKQogICAgICAgIHMgKz0gIlQiOwogICAgICBpZiAodGhpcy5ob3VycyAhPT0gMCkgcyArPSB0aGlzLmhvdXJzICsgIkgiOwogICAgICBpZiAodGhpcy5taW51dGVzICE9PSAwKSBzICs9IHRoaXMubWludXRlcyArICJNIjsKICAgICAgaWYgKHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMCkKICAgICAgICAvLyB0aGlzIHdpbGwgaGFuZGxlICJmbG9hdGluZyBwb2ludCBtYWRuZXNzIiBieSByZW1vdmluZyBleHRyYSBkZWNpbWFsIHBsYWNlcwogICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU4ODAwNC9pcy1mbG9hdGluZy1wb2ludC1tYXRoLWJyb2tlbgogICAgICAgIHMgKz0gcm91bmRUbyh0aGlzLnNlY29uZHMgKyB0aGlzLm1pbGxpc2Vjb25kcyAvIDEwMDAsIDMpICsgIlMiOwogICAgICBpZiAocyA9PT0gIlAiKSBzICs9ICJUMFMiOwogICAgICByZXR1cm4gczsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLCBmb3JtYXR0ZWQgYXMgYSB0aW1lIG9mIGRheS4KICAgICAqIE5vdGUgdGhhdCB0aGlzIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlIGR1cmF0aW9uIGlzIGludmFsaWQsIG5lZ2F0aXZlLCBvciBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gMjQgaG91cnMuCiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMAogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4CiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXQKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKCkgLy89PiAnMTE6MDA6MDAuMDAwJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc01pbGxpc2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcxMTowMDowMCcKICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NTZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzExOjAwJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QxMTowMDowMC4wMDAnCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcxMTAwMDAuMDAwJwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0lTT1RpbWUob3B0cyA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDsKCiAgICAgIGNvbnN0IG1pbGxpcyA9IHRoaXMudG9NaWxsaXMoKTsKICAgICAgaWYgKG1pbGxpcyA8IDAgfHwgbWlsbGlzID49IDg2NDAwMDAwKSByZXR1cm4gbnVsbDsKCiAgICAgIG9wdHMgPSB7CiAgICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHM6IGZhbHNlLAogICAgICAgIHN1cHByZXNzU2Vjb25kczogZmFsc2UsCiAgICAgICAgaW5jbHVkZVByZWZpeDogZmFsc2UsCiAgICAgICAgZm9ybWF0OiAiZXh0ZW5kZWQiLAogICAgICAgIC4uLm9wdHMsCiAgICAgICAgaW5jbHVkZU9mZnNldDogZmFsc2UsCiAgICAgIH07CgogICAgICBjb25zdCBkYXRlVGltZSA9IERhdGVUaW1lLmZyb21NaWxsaXMobWlsbGlzLCB7IHpvbmU6ICJVVEMiIH0pOwogICAgICByZXR1cm4gZGF0ZVRpbWUudG9JU09UaW1lKG9wdHMpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSlNPTi4KICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9KU09OKCkgewogICAgICByZXR1cm4gdGhpcy50b0lTTygpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gZGVidWdnaW5nLgogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b1N0cmluZygpIHsKICAgICAgcmV0dXJuIHRoaXMudG9JU08oKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gbWlsbGlzZWNvbmRzIHZhbHVlIG9mIHRoaXMgRHVyYXRpb24uCiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIHRvTWlsbGlzKCkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIE5hTjsKCiAgICAgIHJldHVybiBkdXJhdGlvblRvTWlsbGlzKHRoaXMubWF0cml4LCB0aGlzLnZhbHVlcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIG1pbGxpc2Vjb25kcyB2YWx1ZSBvZiB0aGlzIER1cmF0aW9uLiBBbGlhcyBvZiB7QGxpbmsgdG9NaWxsaXN9CiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIHZhbHVlT2YoKSB7CiAgICAgIHJldHVybiB0aGlzLnRvTWlsbGlzKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBNYWtlIHRoaXMgRHVyYXRpb24gbG9uZ2VyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBwbHVzKGR1cmF0aW9uKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCiAgICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLAogICAgICAgIHJlc3VsdCA9IHt9OwoKICAgICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cyQxKSB7CiAgICAgICAgaWYgKGhhc093blByb3BlcnR5KGR1ci52YWx1ZXMsIGspIHx8IGhhc093blByb3BlcnR5KHRoaXMudmFsdWVzLCBrKSkgewogICAgICAgICAgcmVzdWx0W2tdID0gZHVyLmdldChrKSArIHRoaXMuZ2V0KGspOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIGNsb25lJDEodGhpcywgeyB2YWx1ZXM6IHJlc3VsdCB9LCB0cnVlKTsKICAgIH0KCiAgICAvKioKICAgICAqIE1ha2UgdGhpcyBEdXJhdGlvbiBzaG9ydGVyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIHN1YnRyYWN0LiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIG1pbnVzKGR1cmF0aW9uKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCiAgICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pOwogICAgICByZXR1cm4gdGhpcy5wbHVzKGR1ci5uZWdhdGUoKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTY2FsZSB0aGlzIER1cmF0aW9uIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggdW5pdC4gQXJpdHkgaXMgMSBvciAyOiB0aGUgdmFsdWUgb2YgdGhlIHVuaXQgYW5kLCBvcHRpb25hbGx5LCB0aGUgdW5pdCBuYW1lLiBNdXN0IHJldHVybiBhIG51bWJlci4KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSwgbWludXRlczogMzAgfSkubWFwVW5pdHMoeCA9PiB4ICogMikgLy89PiB7IGhvdXJzOiAyLCBtaW51dGVzOiA2MCB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKCh4LCB1KSA9PiB1ID09PSAiaG91cnMiID8geCAqIDIgOiB4KSAvLz0+IHsgaG91cnM6IDIsIG1pbnV0ZXM6IDMwIH0KICAgICAqIEByZXR1cm4ge0R1cmF0aW9ufQogICAgICovCiAgICBtYXBVbml0cyhmbikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IHJlc3VsdCA9IHt9OwogICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXModGhpcy52YWx1ZXMpKSB7CiAgICAgICAgcmVzdWx0W2tdID0gYXNOdW1iZXIoZm4odGhpcy52YWx1ZXNba10sIGspKTsKICAgICAgfQogICAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7IHZhbHVlczogcmVzdWx0IH0sIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LgogICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5JwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDIsIGRheXM6IDN9KS5nZXQoJ3llYXJzJykgLy89PiAyCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnbW9udGhzJykgLy89PiAwCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnZGF5cycpIC8vPT4gMwogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBnZXQodW5pdCkgewogICAgICByZXR1cm4gdGhpc1tEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpXTsKICAgIH0KCiAgICAvKioKICAgICAqICJTZXQiIHRoZSB2YWx1ZXMgb2Ygc3BlY2lmaWVkIHVuaXRzLiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVycwogICAgICogQGV4YW1wbGUgZHVyLnNldCh7IHllYXJzOiAyMDE3IH0pCiAgICAgKiBAZXhhbXBsZSBkdXIuc2V0KHsgaG91cnM6IDgsIG1pbnV0ZXM6IDMwIH0pCiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgc2V0KHZhbHVlcykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgogICAgICBjb25zdCBtaXhlZCA9IHsgLi4udGhpcy52YWx1ZXMsIC4uLm5vcm1hbGl6ZU9iamVjdCh2YWx1ZXMsIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpIH07CiAgICAgIHJldHVybiBjbG9uZSQxKHRoaXMsIHsgdmFsdWVzOiBtaXhlZCB9KTsKICAgIH0KCiAgICAvKioKICAgICAqICJTZXQiIHRoZSBsb2NhbGUgYW5kL29yIG51bWJlcmluZ1N5c3RlbS4gIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KICAgICAqIEBleGFtcGxlIGR1ci5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHJlY29uZmlndXJlKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNvbnZlcnNpb25BY2N1cmFjeSwgbWF0cml4IH0gPSB7fSkgewogICAgICBjb25zdCBsb2MgPSB0aGlzLmxvYy5jbG9uZSh7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtIH0pOwogICAgICBjb25zdCBvcHRzID0geyBsb2MsIG1hdHJpeCwgY29udmVyc2lvbkFjY3VyYWN5IH07CiAgICAgIHJldHVybiBjbG9uZSQxKHRoaXMsIG9wdHMpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGR1cmF0aW9uIGluIHRoZSBzcGVjaWZpZWQgdW5pdC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gYSB1bml0IHN1Y2ggYXMgJ21pbnV0ZXMnIG9yICdkYXlzJwogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDF9KS5hcygnZGF5cycpIC8vPT4gMzY1CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMX0pLmFzKCdtb250aHMnKSAvLz0+IDEyCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHtob3VyczogNjB9KS5hcygnZGF5cycpIC8vPT4gMi41CiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIGFzKHVuaXQpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuc2hpZnRUbyh1bml0KS5nZXQodW5pdCkgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZWR1Y2UgdGhpcyBEdXJhdGlvbiB0byBpdHMgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uIGluIGl0cyBjdXJyZW50IHVuaXRzLgogICAgICogQXNzdW1pbmcgdGhlIG92ZXJhbGwgdmFsdWUgb2YgdGhlIER1cmF0aW9uIGlzIHBvc2l0aXZlLCB0aGlzIG1lYW5zOgogICAgICogLSBleGNlc3NpdmUgdmFsdWVzIGZvciBsb3dlci1vcmRlciB1bml0cyBhcmUgY29udmVydGVkIHRvIGhpZ2hlci1vcmRlciB1bml0cyAoaWYgcG9zc2libGUsIHNlZSBmaXJzdCBhbmQgc2Vjb25kIGV4YW1wbGUpCiAgICAgKiAtIG5lZ2F0aXZlIGxvd2VyLW9yZGVyIHVuaXRzIGFyZSBjb252ZXJ0ZWQgdG8gaGlnaGVyIG9yZGVyIHVuaXRzICh0aGVyZSBtdXN0IGJlIHN1Y2ggYSBoaWdoZXIgb3JkZXIgdW5pdCwgb3RoZXJ3aXNlCiAgICAgKiAgIHRoZSBvdmVyYWxsIHZhbHVlIHdvdWxkIGJlIG5lZ2F0aXZlLCBzZWUgc2Vjb25kIGV4YW1wbGUpCiAgICAgKiAtIGZyYWN0aW9uYWwgdmFsdWVzIGZvciBoaWdoZXItb3JkZXIgdW5pdHMgYXJlIGNvbnZlcnRlZCB0byBsb3dlci1vcmRlciB1bml0cyAoaWYgcG9zc2libGUsIHNlZSBmb3VydGggZXhhbXBsZSkKICAgICAqCiAgICAgKiBJZiB0aGUgb3ZlcmFsbCB2YWx1ZSBpcyBuZWdhdGl2ZSwgdGhlIHJlc3VsdCBvZiB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIGB0aGlzLm5lZ2F0ZSgpLm5vcm1hbGl6ZSgpLm5lZ2F0ZSgpYC4KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMiwgZGF5czogNTAwMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMTUsIGRheXM6IDI1NSB9CiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogNTAwMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyBkYXlzOiA1MDAwIH0KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTIsIG1pbnV0ZXM6IC00NSB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDE1IH0KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMi41LCBkYXlzOiAwLCBob3VyczogMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMiwgZGF5czogMTgyLCBob3VyczogMTIgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIG5vcm1hbGl6ZSgpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwogICAgICBjb25zdCB2YWxzID0gdGhpcy50b09iamVjdCgpOwogICAgICBub3JtYWxpemVWYWx1ZXModGhpcy5tYXRyaXgsIHZhbHMpOwogICAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7IHZhbHVlczogdmFscyB9LCB0cnVlKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJlc2NhbGUgdW5pdHMgdG8gaXRzIGxhcmdlc3QgcmVwcmVzZW50YXRpb24KICAgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IDkwMDAwIH0pLnJlc2NhbGUoKS50b09iamVjdCgpIC8vPT4geyBtaW51dGVzOiAxLCBzZWNvbmRzOiAzMCB9CiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgcmVzY2FsZSgpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwogICAgICBjb25zdCB2YWxzID0gcmVtb3ZlWmVyb2VzKHRoaXMubm9ybWFsaXplKCkuc2hpZnRUb0FsbCgpLnRvT2JqZWN0KCkpOwogICAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7IHZhbHVlczogdmFscyB9LCB0cnVlKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnZlcnQgdGhpcyBEdXJhdGlvbiBpbnRvIGl0cyByZXByZXNlbnRhdGlvbiBpbiBhIGRpZmZlcmVudCBzZXQgb2YgdW5pdHMuCiAgICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIHNlY29uZHM6IDMwIH0pLnNoaWZ0VG8oJ21pbnV0ZXMnLCAnbWlsbGlzZWNvbmRzJykudG9PYmplY3QoKSAvLz0+IHsgbWludXRlczogNjAsIG1pbGxpc2Vjb25kczogMzAwMDAgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHNoaWZ0VG8oLi4udW5pdHMpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoKICAgICAgaWYgKHVuaXRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CgogICAgICB1bml0cyA9IHVuaXRzLm1hcCgodSkgPT4gRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1KSk7CgogICAgICBjb25zdCBidWlsdCA9IHt9LAogICAgICAgIGFjY3VtdWxhdGVkID0ge30sCiAgICAgICAgdmFscyA9IHRoaXMudG9PYmplY3QoKTsKICAgICAgbGV0IGxhc3RVbml0OwoKICAgICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cyQxKSB7CiAgICAgICAgaWYgKHVuaXRzLmluZGV4T2YoaykgPj0gMCkgewogICAgICAgICAgbGFzdFVuaXQgPSBrOwoKICAgICAgICAgIGxldCBvd24gPSAwOwoKICAgICAgICAgIC8vIGFueXRoaW5nIHdlIGhhdmVuJ3QgYm9pbGVkIGRvd24geWV0IHNob3VsZCBnZXQgYm9pbGVkIHRvIHRoaXMgdW5pdAogICAgICAgICAgZm9yIChjb25zdCBhayBpbiBhY2N1bXVsYXRlZCkgewogICAgICAgICAgICBvd24gKz0gdGhpcy5tYXRyaXhbYWtdW2tdICogYWNjdW11bGF0ZWRbYWtdOwogICAgICAgICAgICBhY2N1bXVsYXRlZFtha10gPSAwOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIHBsdXMgYW55dGhpbmcgdGhhdCdzIGFscmVhZHkgaW4gdGhpcyB1bml0CiAgICAgICAgICBpZiAoaXNOdW1iZXIodmFsc1trXSkpIHsKICAgICAgICAgICAgb3duICs9IHZhbHNba107CiAgICAgICAgICB9CgogICAgICAgICAgLy8gb25seSBrZWVwIHRoZSBpbnRlZ2VyIHBhcnQgZm9yIG5vdyBpbiB0aGUgaG9wZXMgb2YgcHV0dGluZyBhbnkgZGVjaW1hbCBwYXJ0CiAgICAgICAgICAvLyBpbnRvIGEgc21hbGxlciB1bml0IGxhdGVyCiAgICAgICAgICBjb25zdCBpID0gTWF0aC50cnVuYyhvd24pOwogICAgICAgICAgYnVpbHRba10gPSBpOwogICAgICAgICAgYWNjdW11bGF0ZWRba10gPSAob3duICogMTAwMCAtIGkgKiAxMDAwKSAvIDEwMDA7CgogICAgICAgICAgLy8gb3RoZXJ3aXNlLCBrZWVwIGl0IGluIHRoZSB3aW5ncyB0byBib2lsIGl0IGxhdGVyCiAgICAgICAgfSBlbHNlIGlmIChpc051bWJlcih2YWxzW2tdKSkgewogICAgICAgICAgYWNjdW11bGF0ZWRba10gPSB2YWxzW2tdOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gYW55dGhpbmcgbGVmdG92ZXIgYmVjb21lcyB0aGUgZGVjaW1hbCBmb3IgdGhlIGxhc3QgdW5pdAogICAgICAvLyBsYXN0VW5pdCBtdXN0IGJlIGRlZmluZWQgc2luY2UgdW5pdHMgaXMgbm90IGVtcHR5CiAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjY3VtdWxhdGVkKSB7CiAgICAgICAgaWYgKGFjY3VtdWxhdGVkW2tleV0gIT09IDApIHsKICAgICAgICAgIGJ1aWx0W2xhc3RVbml0XSArPQogICAgICAgICAgICBrZXkgPT09IGxhc3RVbml0ID8gYWNjdW11bGF0ZWRba2V5XSA6IGFjY3VtdWxhdGVkW2tleV0gLyB0aGlzLm1hdHJpeFtsYXN0VW5pdF1ba2V5XTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIG5vcm1hbGl6ZVZhbHVlcyh0aGlzLm1hdHJpeCwgYnVpbHQpOwogICAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7IHZhbHVlczogYnVpbHQgfSwgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTaGlmdCB0aGlzIER1cmF0aW9uIHRvIGFsbCBhdmFpbGFibGUgdW5pdHMuCiAgICAgKiBTYW1lIGFzIHNoaWZ0VG8oInllYXJzIiwgIm1vbnRocyIsICJ3ZWVrcyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyIsICJtaWxsaXNlY29uZHMiKQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHNoaWZ0VG9BbGwoKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKICAgICAgcmV0dXJuIHRoaXMuc2hpZnRUbygKICAgICAgICAieWVhcnMiLAogICAgICAgICJtb250aHMiLAogICAgICAgICJ3ZWVrcyIsCiAgICAgICAgImRheXMiLAogICAgICAgICJob3VycyIsCiAgICAgICAgIm1pbnV0ZXMiLAogICAgICAgICJzZWNvbmRzIiwKICAgICAgICAibWlsbGlzZWNvbmRzIgogICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSBuZWdhdGl2ZSBvZiB0aGlzIER1cmF0aW9uLgogICAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5uZWdhdGUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogLTEsIHNlY29uZHM6IC0zMCB9CiAgICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KICAgICAqLwogICAgbmVnYXRlKCkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IG5lZ2F0ZWQgPSB7fTsKICAgICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkgewogICAgICAgIG5lZ2F0ZWRba10gPSB0aGlzLnZhbHVlc1trXSA9PT0gMCA/IDAgOiAtdGhpcy52YWx1ZXNba107CiAgICAgIH0KICAgICAgcmV0dXJuIGNsb25lJDEodGhpcywgeyB2YWx1ZXM6IG5lZ2F0ZWQgfSwgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHllYXJzLgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IHllYXJzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMueWVhcnMgfHwgMCA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcXVhcnRlcnMuCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgcXVhcnRlcnMoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5xdWFydGVycyB8fCAwIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBtb250aHMuCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgbW9udGhzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMubW9udGhzIHx8IDAgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHdlZWtzCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgd2Vla3MoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy53ZWVrcyB8fCAwIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkYXlzLgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IGRheXMoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5kYXlzIHx8IDAgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGhvdXJzLgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IGhvdXJzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuaG91cnMgfHwgMCA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbWludXRlcy4KICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCBtaW51dGVzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMubWludXRlcyB8fCAwIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBzZWNvbmRzLgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBnZXQgc2Vjb25kcygpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnNlY29uZHMgfHwgMCA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbWlsbGlzZWNvbmRzLgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBnZXQgbWlsbGlzZWNvbmRzKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMubWlsbGlzZWNvbmRzIHx8IDAgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIER1cmF0aW9uIGlzIGludmFsaWQuIEludmFsaWQgZHVyYXRpb25zIGFyZSByZXR1cm5lZCBieSBkaWZmIG9wZXJhdGlvbnMKICAgICAqIG9uIGludmFsaWQgRGF0ZVRpbWVzIG9yIEludGVydmFscy4KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGdldCBpc1ZhbGlkKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRHVyYXRpb24gYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIER1cmF0aW9uIGlzIHZhbGlkCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBpbnZhbGlkUmVhc29uKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIER1cmF0aW9uIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEdXJhdGlvbiBpcyB2YWxpZAogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBFcXVhbGl0eSBjaGVjawogICAgICogVHdvIER1cmF0aW9ucyBhcmUgZXF1YWwgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSB1bml0cyBhbmQgdGhlIHNhbWUgdmFsdWVzIGZvciBlYWNoIHVuaXQuCiAgICAgKiBAcGFyYW0ge0R1cmF0aW9ufSBvdGhlcgogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgZXF1YWxzKG90aGVyKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFvdGhlci5pc1ZhbGlkKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgICBpZiAoIXRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgICBmdW5jdGlvbiBlcSh2MSwgdjIpIHsKICAgICAgICAvLyBDb25zaWRlciAwIGFuZCB1bmRlZmluZWQgYXMgZXF1YWwKICAgICAgICBpZiAodjEgPT09IHVuZGVmaW5lZCB8fCB2MSA9PT0gMCkgcmV0dXJuIHYyID09PSB1bmRlZmluZWQgfHwgdjIgPT09IDA7CiAgICAgICAgcmV0dXJuIHYxID09PSB2MjsKICAgICAgfQoKICAgICAgZm9yIChjb25zdCB1IG9mIG9yZGVyZWRVbml0cyQxKSB7CiAgICAgICAgaWYgKCFlcSh0aGlzLnZhbHVlc1t1XSwgb3RoZXIudmFsdWVzW3VdKSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9CgogIGNvbnN0IElOVkFMSUQkMSA9ICJJbnZhbGlkIEludGVydmFsIjsKCiAgLy8gY2hlY2tzIGlmIHRoZSBzdGFydCBpcyBlcXVhbCB0byBvciBiZWZvcmUgdGhlIGVuZAogIGZ1bmN0aW9uIHZhbGlkYXRlU3RhcnRFbmQoc3RhcnQsIGVuZCkgewogICAgaWYgKCFzdGFydCB8fCAhc3RhcnQuaXNWYWxpZCkgewogICAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZCgibWlzc2luZyBvciBpbnZhbGlkIHN0YXJ0Iik7CiAgICB9IGVsc2UgaWYgKCFlbmQgfHwgIWVuZC5pc1ZhbGlkKSB7CiAgICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKCJtaXNzaW5nIG9yIGludmFsaWQgZW5kIik7CiAgICB9IGVsc2UgaWYgKGVuZCA8IHN0YXJ0KSB7CiAgICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKAogICAgICAgICJlbmQgYmVmb3JlIHN0YXJ0IiwKICAgICAgICBgVGhlIGVuZCBvZiBhbiBpbnRlcnZhbCBtdXN0IGJlIGFmdGVyIGl0cyBzdGFydCwgYnV0IHlvdSBoYWQgc3RhcnQ9JHtzdGFydC50b0lTTygpfSBhbmQgZW5kPSR7ZW5kLnRvSVNPKCl9YAogICAgICApOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgfQoKICAvKioKICAgKiBBbiBJbnRlcnZhbCBvYmplY3QgcmVwcmVzZW50cyBhIGhhbGYtb3BlbiBpbnRlcnZhbCBvZiB0aW1lLCB3aGVyZSBlYWNoIGVuZHBvaW50IGlzIGEge0BsaW5rIERhdGVUaW1lfS4gQ29uY2VwdHVhbGx5LCBpdCdzIGEgY29udGFpbmVyIGZvciB0aG9zZSB0d28gZW5kcG9pbnRzLCBhY2NvbXBhbmllZCBieSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgY29tcGFyaW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uCiAgICoKICAgKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIEludGVydmFsOgogICAqCiAgICogKiAqKkNyZWF0aW9uKiogVG8gY3JlYXRlIGFuIEludGVydmFsLCB1c2Uge0BsaW5rIEludGVydmFsLmZyb21EYXRlVGltZXN9LCB7QGxpbmsgSW50ZXJ2YWwuYWZ0ZXJ9LCB7QGxpbmsgSW50ZXJ2YWwuYmVmb3JlfSwgb3Ige0BsaW5rIEludGVydmFsLmZyb21JU099LgogICAqICogKipBY2Nlc3NvcnMqKiBVc2Uge0BsaW5rIEludGVydmFsI3N0YXJ0fSBhbmQge0BsaW5rIEludGVydmFsI2VuZH0gdG8gZ2V0IHRoZSBzdGFydCBhbmQgZW5kLgogICAqICogKipJbnRlcnJvZ2F0aW9uKiogVG8gYW5hbHl6ZSB0aGUgSW50ZXJ2YWwsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjY291bnR9LCB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSwge0BsaW5rIEludGVydmFsI2hhc1NhbWV9LCB7QGxpbmsgSW50ZXJ2YWwjY29udGFpbnN9LCB7QGxpbmsgSW50ZXJ2YWwjaXNBZnRlcn0sIG9yIHtAbGluayBJbnRlcnZhbCNpc0JlZm9yZX0uCiAgICogKiAqKlRyYW5zZm9ybWF0aW9uKiogVG8gY3JlYXRlIG90aGVyIEludGVydmFscyBvdXQgb2YgdGhpcyBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjc2V0fSwge0BsaW5rIEludGVydmFsI3NwbGl0QXR9LCB7QGxpbmsgSW50ZXJ2YWwjc3BsaXRCeX0sIHtAbGluayBJbnRlcnZhbCNkaXZpZGVFcXVhbGx5fSwge0BsaW5rIEludGVydmFsLm1lcmdlfSwge0BsaW5rIEludGVydmFsLnhvcn0sIHtAbGluayBJbnRlcnZhbCN1bmlvbn0sIHtAbGluayBJbnRlcnZhbCNpbnRlcnNlY3Rpb259LCBvciB7QGxpbmsgSW50ZXJ2YWwjZGlmZmVyZW5jZX0uCiAgICogKiAqKkNvbXBhcmlzb24qKiBUbyBjb21wYXJlIHRoaXMgSW50ZXJ2YWwgdG8gYW5vdGhlciBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjZXF1YWxzfSwge0BsaW5rIEludGVydmFsI292ZXJsYXBzfSwge0BsaW5rIEludGVydmFsI2FidXRzU3RhcnR9LCB7QGxpbmsgSW50ZXJ2YWwjYWJ1dHNFbmR9LCB7QGxpbmsgSW50ZXJ2YWwjZW5ndWxmc30KICAgKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgSW50ZXJ2YWwgaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgSW50ZXJ2YWwjdG9TdHJpbmd9LCB7QGxpbmsgSW50ZXJ2YWwjdG9Mb2NhbGVTdHJpbmd9LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU099LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU09EYXRlfSwge0BsaW5rIEludGVydmFsI3RvSVNPVGltZX0sIHtAbGluayBJbnRlcnZhbCN0b0Zvcm1hdH0sIGFuZCB7QGxpbmsgSW50ZXJ2YWwjdG9EdXJhdGlvbn0uCiAgICovCiAgY2xhc3MgSW50ZXJ2YWwgewogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICovCiAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHsKICAgICAgLyoqCiAgICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICAgKi8KICAgICAgdGhpcy5zID0gY29uZmlnLnN0YXJ0OwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmUgPSBjb25maWcuZW5kOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmlzTHV4b25JbnRlcnZhbCA9IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYW4gaW52YWxpZCBJbnRlcnZhbC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIEludGVydmFsIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnQKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICBzdGF0aWMgaW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uID0gbnVsbCkgewogICAgICBpZiAoIXJlYXNvbikgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBJbnRlcnZhbCBpcyBpbnZhbGlkIik7CiAgICAgIH0KCiAgICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7CgogICAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEludGVydmFsRXJyb3IoaW52YWxpZCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7IGludmFsaWQgfSk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGFuIGVuZCBEYXRlVGltZS4gSW5jbHVzaXZlIG9mIHRoZSBzdGFydCBidXQgbm90IHRoZSBlbmQuCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBzdGFydAogICAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gZW5kCiAgICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KICAgICAqLwogICAgc3RhdGljIGZyb21EYXRlVGltZXMoc3RhcnQsIGVuZCkgewogICAgICBjb25zdCBidWlsdFN0YXJ0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCksCiAgICAgICAgYnVpbHRFbmQgPSBmcmllbmRseURhdGVUaW1lKGVuZCk7CgogICAgICBjb25zdCB2YWxpZGF0ZUVycm9yID0gdmFsaWRhdGVTdGFydEVuZChidWlsdFN0YXJ0LCBidWlsdEVuZCk7CgogICAgICBpZiAodmFsaWRhdGVFcnJvciA9PSBudWxsKSB7CiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7CiAgICAgICAgICBzdGFydDogYnVpbHRTdGFydCwKICAgICAgICAgIGVuZDogYnVpbHRFbmQsCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHZhbGlkYXRlRXJyb3I7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGEgRHVyYXRpb24gdG8gZXh0ZW5kIHRvLgogICAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gc3RhcnQKICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbC4KICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICBzdGF0aWMgYWZ0ZXIoc3RhcnQsIGR1cmF0aW9uKSB7CiAgICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLAogICAgICAgIGR0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCk7CiAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0LCBkdC5wbHVzKGR1cikpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYW4gZW5kIERhdGVUaW1lIGFuZCBhIER1cmF0aW9uIHRvIGV4dGVuZCBiYWNrd2FyZHMgdG8uCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBlbmQKICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbC4KICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICBzdGF0aWMgYmVmb3JlKGVuZCwgZHVyYXRpb24pIHsKICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksCiAgICAgICAgZHQgPSBmcmllbmRseURhdGVUaW1lKGVuZCk7CiAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0Lm1pbnVzKGR1ciksIGR0KTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIElTTyA4NjAxIHN0cmluZy4KICAgICAqIEFjY2VwdHMgYDxzdGFydD4vPGVuZD5gLCBgPHN0YXJ0Pi88ZHVyYXRpb24+YCwgYW5kIGA8ZHVyYXRpb24+LzxlbmQ+YCBmb3JtYXRzLgogICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZyB0byBwYXJzZQogICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIG9wdGlvbnMgdG8gcGFzcyB7QGxpbmsgRGF0ZVRpbWUjZnJvbUlTT30gYW5kIG9wdGlvbmFsbHkge0BsaW5rIER1cmF0aW9uI2Zyb21JU099CiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzCiAgICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KICAgICAqLwogICAgc3RhdGljIGZyb21JU08odGV4dCwgb3B0cykgewogICAgICBjb25zdCBbcywgZV0gPSAodGV4dCB8fCAiIikuc3BsaXQoIi8iLCAyKTsKICAgICAgaWYgKHMgJiYgZSkgewogICAgICAgIGxldCBzdGFydCwgc3RhcnRJc1ZhbGlkOwogICAgICAgIHRyeSB7CiAgICAgICAgICBzdGFydCA9IERhdGVUaW1lLmZyb21JU08ocywgb3B0cyk7CiAgICAgICAgICBzdGFydElzVmFsaWQgPSBzdGFydC5pc1ZhbGlkOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIHN0YXJ0SXNWYWxpZCA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgbGV0IGVuZCwgZW5kSXNWYWxpZDsKICAgICAgICB0cnkgewogICAgICAgICAgZW5kID0gRGF0ZVRpbWUuZnJvbUlTTyhlLCBvcHRzKTsKICAgICAgICAgIGVuZElzVmFsaWQgPSBlbmQuaXNWYWxpZDsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBlbmRJc1ZhbGlkID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoc3RhcnRJc1ZhbGlkICYmIGVuZElzVmFsaWQpIHsKICAgICAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpOwogICAgICAgIH0KCiAgICAgICAgaWYgKHN0YXJ0SXNWYWxpZCkgewogICAgICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUlTTyhlLCBvcHRzKTsKICAgICAgICAgIGlmIChkdXIuaXNWYWxpZCkgewogICAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYWZ0ZXIoc3RhcnQsIGR1cik7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChlbmRJc1ZhbGlkKSB7CiAgICAgICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tSVNPKHMsIG9wdHMpOwogICAgICAgICAgaWYgKGR1ci5pc1ZhbGlkKSB7CiAgICAgICAgICAgIHJldHVybiBJbnRlcnZhbC5iZWZvcmUoZW5kLCBkdXIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZCgidW5wYXJzYWJsZSIsIGB0aGUgaW5wdXQgIiR7dGV4dH0iIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMWApOwogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIEludGVydmFsLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzCiAgICAgKiBAcGFyYW0ge29iamVjdH0gbwogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgc3RhdGljIGlzSW50ZXJ2YWwobykgewogICAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uSW50ZXJ2YWwpIHx8IGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgc3RhcnQgb2YgdGhlIEludGVydmFsCiAgICAgKiBAdHlwZSB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIGdldCBzdGFydCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMucyA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBlbmQgb2YgdGhlIEludGVydmFsCiAgICAgKiBAdHlwZSB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIGdldCBlbmQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmUgOiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBlbmQgaXMgYXQgbGVhc3QgaXRzIHN0YXJ0LCBtZWFuaW5nIHRoYXQgdGhlIEludGVydmFsIGlzbid0ICdiYWNrd2FyZHMnLgogICAgICogQHR5cGUge2Jvb2xlYW59CiAgICAgKi8KICAgIGdldCBpc1ZhbGlkKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkUmVhc29uID09PSBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgSW50ZXJ2YWwgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgSW50ZXJ2YWwgaXMgdmFsaWQKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBpbnZhbGlkUmVhc29uKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIEludGVydmFsIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBJbnRlcnZhbCBpcyB2YWxpZAogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsIGluIHRoZSBzcGVjaWZpZWQgdW5pdC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIHJldHVybiB0aGUgbGVuZ3RoIGluLgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBsZW5ndGgodW5pdCA9ICJtaWxsaXNlY29uZHMiKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvRHVyYXRpb24oLi4uW3VuaXRdKS5nZXQodW5pdCkgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb3VudCBvZiBtaW51dGVzLCBob3VycywgZGF5cywgbW9udGhzLCBvciB5ZWFycyBpbmNsdWRlZCBpbiB0aGUgSW50ZXJ2YWwsIGV2ZW4gaW4gcGFydC4KICAgICAqIFVubGlrZSB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSB0aGlzIGNvdW50cyBzZWN0aW9ucyBvZiB0aGUgY2FsZW5kYXIsIG5vdCBwZXJpb2RzIG9mIHRpbWUsIGUuZy4gc3BlY2lmeWluZyAnZGF5JwogICAgICogYXNrcyAnd2hhdCBkYXRlcyBhcmUgaW5jbHVkZWQgaW4gdGhpcyBpbnRlcnZhbD8nLCBub3QgJ2hvdyBtYW55IGRheXMgbG9uZyBpcyB0aGlzIGludGVydmFsPycKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdW5pdD0nbWlsbGlzZWNvbmRzJ10gLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNvdW50LgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBjb3VudCh1bml0ID0gIm1pbGxpc2Vjb25kcyIpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBOYU47CiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydC5zdGFydE9mKHVuaXQpLAogICAgICAgIGVuZCA9IHRoaXMuZW5kLnN0YXJ0T2YodW5pdCk7CiAgICAgIHJldHVybiBNYXRoLmZsb29yKGVuZC5kaWZmKHN0YXJ0LCB1bml0KS5nZXQodW5pdCkpICsgKGVuZC52YWx1ZU9mKCkgIT09IHRoaXMuZW5kLnZhbHVlT2YoKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGFuZCBlbmQgYXJlIGJvdGggaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb24KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGhhc1NhbWUodW5pdCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5pc0VtcHR5KCkgfHwgdGhpcy5lLm1pbnVzKDEpLmhhc1NhbWUodGhpcy5zLCB1bml0KSA6IGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBoYXMgdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBEYXRlVGltZXMuCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBpc0VtcHR5KCkgewogICAgICByZXR1cm4gdGhpcy5zLnZhbHVlT2YoKSA9PT0gdGhpcy5lLnZhbHVlT2YoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBzdGFydCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLgogICAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWUKICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGlzQWZ0ZXIoZGF0ZVRpbWUpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTsKICAgICAgcmV0dXJuIHRoaXMucyA+IGRhdGVUaW1lOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBEYXRlVGltZS4KICAgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBpc0JlZm9yZShkYXRlVGltZSkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwogICAgICByZXR1cm4gdGhpcy5lIDw9IGRhdGVUaW1lOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBjb250YWlucyB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLgogICAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWUKICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGNvbnRhaW5zKGRhdGVUaW1lKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CiAgICAgIHJldHVybiB0aGlzLnMgPD0gZGF0ZVRpbWUgJiYgdGhpcy5lID4gZGF0ZVRpbWU7CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0cyIgdGhlIHN0YXJ0IGFuZC9vciBlbmQgZGF0ZXMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBJbnRlcnZhbC4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSB0aGUgdmFsdWVzIHRvIHNldAogICAgICogQHBhcmFtIHtEYXRlVGltZX0gdmFsdWVzLnN0YXJ0IC0gdGhlIHN0YXJ0aW5nIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfSB2YWx1ZXMuZW5kIC0gdGhlIGVuZGluZyBEYXRlVGltZQogICAgICogQHJldHVybiB7SW50ZXJ2YWx9CiAgICAgKi8KICAgIHNldCh7IHN0YXJ0LCBlbmQgfSA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQgfHwgdGhpcy5zLCBlbmQgfHwgdGhpcy5lKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNwbGl0IHRoaXMgSW50ZXJ2YWwgYXQgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIERhdGVUaW1lcwogICAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIHVuaXQgb2YgdGltZSB0byBjb3VudC4KICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzcGxpdEF0KC4uLmRhdGVUaW1lcykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIFtdOwogICAgICBjb25zdCBzb3J0ZWQgPSBkYXRlVGltZXMKICAgICAgICAgIC5tYXAoZnJpZW5kbHlEYXRlVGltZSkKICAgICAgICAgIC5maWx0ZXIoKGQpID0+IHRoaXMuY29udGFpbnMoZCkpCiAgICAgICAgICAuc29ydCgpLAogICAgICAgIHJlc3VsdHMgPSBbXTsKICAgICAgbGV0IHsgcyB9ID0gdGhpcywKICAgICAgICBpID0gMDsKCiAgICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7CiAgICAgICAgY29uc3QgYWRkZWQgPSBzb3J0ZWRbaV0gfHwgdGhpcy5lLAogICAgICAgICAgbmV4dCA9ICthZGRlZCA+ICt0aGlzLmUgPyB0aGlzLmUgOiBhZGRlZDsKICAgICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7CiAgICAgICAgcyA9IG5leHQ7CiAgICAgICAgaSArPSAxOwogICAgICB9CgogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0KCiAgICAvKioKICAgICAqIFNwbGl0IHRoaXMgSW50ZXJ2YWwgaW50byBzbWFsbGVyIEludGVydmFscywgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIGxlbmd0aC4KICAgICAqIExlZnQgb3ZlciB0aW1lIGlzIGdyb3VwZWQgaW50byBhIHNtYWxsZXIgaW50ZXJ2YWwKICAgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgbGVuZ3RoIG9mIGVhY2ggcmVzdWx0aW5nIGludGVydmFsLgogICAgICogQHJldHVybiB7QXJyYXl9CiAgICAgKi8KICAgIHNwbGl0QnkoZHVyYXRpb24pIHsKICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbik7CgogICAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhZHVyLmlzVmFsaWQgfHwgZHVyLmFzKCJtaWxsaXNlY29uZHMiKSA9PT0gMCkgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfQoKICAgICAgbGV0IHsgcyB9ID0gdGhpcywKICAgICAgICBpZHggPSAxLAogICAgICAgIG5leHQ7CgogICAgICBjb25zdCByZXN1bHRzID0gW107CiAgICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7CiAgICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0YXJ0LnBsdXMoZHVyLm1hcFVuaXRzKCh4KSA9PiB4ICogaWR4KSk7CiAgICAgICAgbmV4dCA9ICthZGRlZCA+ICt0aGlzLmUgPyB0aGlzLmUgOiBhZGRlZDsKICAgICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7CiAgICAgICAgcyA9IG5leHQ7CiAgICAgICAgaWR4ICs9IDE7CiAgICAgIH0KCiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfQoKICAgIC8qKgogICAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBpbnRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNtYWxsZXIgaW50ZXJ2YWxzLgogICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlck9mUGFydHMgLSBUaGUgbnVtYmVyIG9mIEludGVydmFscyB0byBkaXZpZGUgdGhlIEludGVydmFsIGludG8uCiAgICAgKiBAcmV0dXJuIHtBcnJheX0KICAgICAqLwogICAgZGl2aWRlRXF1YWxseShudW1iZXJPZlBhcnRzKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107CiAgICAgIHJldHVybiB0aGlzLnNwbGl0QnkodGhpcy5sZW5ndGgoKSAvIG51bWJlck9mUGFydHMpLnNsaWNlKDAsIG51bWJlck9mUGFydHMpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBvdmVybGFwcyB3aXRoIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwKICAgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBvdmVybGFwcyhvdGhlcikgewogICAgICByZXR1cm4gdGhpcy5lID4gb3RoZXIucyAmJiB0aGlzLnMgPCBvdGhlci5lOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhZGphY2VudCB0byB0aGUgc3BlY2lmaWVkIEludGVydmFsJ3Mgc3RhcnQuCiAgICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlcgogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgYWJ1dHNTdGFydChvdGhlcikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwogICAgICByZXR1cm4gK3RoaXMuZSA9PT0gK290aGVyLnM7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgaXMgYWRqYWNlbnQgdG8gdGhlIHNwZWNpZmllZCBJbnRlcnZhbCdzIGVuZC4KICAgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBhYnV0c0VuZChvdGhlcikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwogICAgICByZXR1cm4gK290aGVyLmUgPT09ICt0aGlzLnM7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGVuZ3VsZnMgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KICAgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBlbmd1bGZzKG90aGVyKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CiAgICAgIHJldHVybiB0aGlzLnMgPD0gb3RoZXIucyAmJiB0aGlzLmUgPj0gb3RoZXIuZTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgaGFzIHRoZSBzYW1lIHN0YXJ0IGFuZCBlbmQgYXMgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KICAgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICBlcXVhbHMob3RoZXIpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiB0aGlzLnMuZXF1YWxzKG90aGVyLnMpICYmIHRoaXMuZS5lcXVhbHMob3RoZXIuZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBJbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KICAgICAqIFNwZWNpZmljYWxseSwgdGhlIHJlc3VsdGluZyBJbnRlcnZhbCBoYXMgdGhlIG1heGltdW0gc3RhcnQgdGltZSBhbmQgdGhlIG1pbmltdW0gZW5kIHRpbWUgb2YgdGhlIHR3byBJbnRlcnZhbHMuCiAgICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGludGVyc2VjdGlvbiBpcyBlbXB0eSwgbWVhbmluZywgdGhlIGludGVydmFscyBkb24ndCBpbnRlcnNlY3QuCiAgICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlcgogICAgICogQHJldHVybiB7SW50ZXJ2YWx9CiAgICAgKi8KICAgIGludGVyc2VjdGlvbihvdGhlcikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IHMgPSB0aGlzLnMgPiBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucywKICAgICAgICBlID0gdGhpcy5lIDwgb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7CgogICAgICBpZiAocyA+PSBlKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMocywgZSk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIHVuaW9uIG9mIHRoaXMgSW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuCiAgICAgKiBTcGVjaWZpY2FsbHksIHRoZSByZXN1bHRpbmcgSW50ZXJ2YWwgaGFzIHRoZSBtaW5pbXVtIHN0YXJ0IHRpbWUgYW5kIHRoZSBtYXhpbXVtIGVuZCB0aW1lIG9mIHRoZSB0d28gSW50ZXJ2YWxzLgogICAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXIKICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICB1bmlvbihvdGhlcikgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IHMgPSB0aGlzLnMgPCBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucywKICAgICAgICBlID0gdGhpcy5lID4gb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7CiAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIGUpOwogICAgfQoKICAgIC8qKgogICAgICogTWVyZ2UgYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIGludG8gYSBlcXVpdmFsZW50IG1pbmltYWwgc2V0IG9mIEludGVydmFscy4KICAgICAqIENvbWJpbmVzIG92ZXJsYXBwaW5nIGFuZCBhZGphY2VudCBJbnRlcnZhbHMuCiAgICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHMKICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzdGF0aWMgbWVyZ2UoaW50ZXJ2YWxzKSB7CiAgICAgIGNvbnN0IFtmb3VuZCwgZmluYWxdID0gaW50ZXJ2YWxzCiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEucyAtIGIucykKICAgICAgICAucmVkdWNlKAogICAgICAgICAgKFtzb2ZhciwgY3VycmVudF0sIGl0ZW0pID0+IHsKICAgICAgICAgICAgaWYgKCFjdXJyZW50KSB7CiAgICAgICAgICAgICAgcmV0dXJuIFtzb2ZhciwgaXRlbV07CiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5vdmVybGFwcyhpdGVtKSB8fCBjdXJyZW50LmFidXRzU3RhcnQoaXRlbSkpIHsKICAgICAgICAgICAgICByZXR1cm4gW3NvZmFyLCBjdXJyZW50LnVuaW9uKGl0ZW0pXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gW3NvZmFyLmNvbmNhdChbY3VycmVudF0pLCBpdGVtXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIFtbXSwgbnVsbF0KICAgICAgICApOwogICAgICBpZiAoZmluYWwpIHsKICAgICAgICBmb3VuZC5wdXNoKGZpbmFsKTsKICAgICAgfQogICAgICByZXR1cm4gZm91bmQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIHJlcHJlc2VudGluZyB0aGUgc3BhbnMgb2YgdGltZSB0aGF0IG9ubHkgYXBwZWFyIGluIG9uZSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy4KICAgICAqIEBwYXJhbSB7QXJyYXl9IGludGVydmFscwogICAgICogQHJldHVybiB7QXJyYXl9CiAgICAgKi8KICAgIHN0YXRpYyB4b3IoaW50ZXJ2YWxzKSB7CiAgICAgIGxldCBzdGFydCA9IG51bGwsCiAgICAgICAgY3VycmVudENvdW50ID0gMDsKICAgICAgY29uc3QgcmVzdWx0cyA9IFtdLAogICAgICAgIGVuZHMgPSBpbnRlcnZhbHMubWFwKChpKSA9PiBbCiAgICAgICAgICB7IHRpbWU6IGkucywgdHlwZTogInMiIH0sCiAgICAgICAgICB7IHRpbWU6IGkuZSwgdHlwZTogImUiIH0sCiAgICAgICAgXSksCiAgICAgICAgZmxhdHRlbmVkID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi5lbmRzKSwKICAgICAgICBhcnIgPSBmbGF0dGVuZWQuc29ydCgoYSwgYikgPT4gYS50aW1lIC0gYi50aW1lKTsKCiAgICAgIGZvciAoY29uc3QgaSBvZiBhcnIpIHsKICAgICAgICBjdXJyZW50Q291bnQgKz0gaS50eXBlID09PSAicyIgPyAxIDogLTE7CgogICAgICAgIGlmIChjdXJyZW50Q291bnQgPT09IDEpIHsKICAgICAgICAgIHN0YXJ0ID0gaS50aW1lOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoc3RhcnQgJiYgK3N0YXJ0ICE9PSAraS50aW1lKSB7CiAgICAgICAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBpLnRpbWUpKTsKICAgICAgICAgIH0KCiAgICAgICAgICBzdGFydCA9IG51bGw7CiAgICAgICAgfQogICAgICB9CgogICAgICByZXR1cm4gSW50ZXJ2YWwubWVyZ2UocmVzdWx0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBzcGFuIG9mIHRpbWUgaW4gdGhpcyBJbnRlcnZhbCB0aGF0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy4KICAgICAqIEBwYXJhbSB7Li4uSW50ZXJ2YWx9IGludGVydmFscwogICAgICogQHJldHVybiB7QXJyYXl9CiAgICAgKi8KICAgIGRpZmZlcmVuY2UoLi4uaW50ZXJ2YWxzKSB7CiAgICAgIHJldHVybiBJbnRlcnZhbC54b3IoW3RoaXNdLmNvbmNhdChpbnRlcnZhbHMpKQogICAgICAgIC5tYXAoKGkpID0+IHRoaXMuaW50ZXJzZWN0aW9uKGkpKQogICAgICAgIC5maWx0ZXIoKGkpID0+IGkgJiYgIWkuaXNFbXB0eSgpKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBJbnRlcnZhbCBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nLgogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b1N0cmluZygpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEJDE7CiAgICAgIHJldHVybiBgWyR7dGhpcy5zLnRvSVNPKCl9IOKAkyAke3RoaXMuZS50b0lTTygpfSlgOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGxvY2FsaXplZCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoaXMgSW50ZXJ2YWwuIEFjY2VwdHMgdGhlIHNhbWUgb3B0aW9ucyBhcyB0aGUKICAgICAqIEludGwuRGF0ZVRpbWVGb3JtYXQgY29uc3RydWN0b3IgYW5kIGFueSBwcmVzZXRzIGRlZmluZWQgYnkgTHV4b24sIHN1Y2ggYXMKICAgICAqIHtAbGluayBEYXRlVGltZS5EQVRFX0ZVTEx9IG9yIHtAbGluayBEYXRlVGltZS5USU1FX1NJTVBMRX0uIFRoZSBleGFjdCBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZAogICAgICogaXMgYnJvd3Nlci1zcGVjaWZpYywgYnV0IGluIGdlbmVyYWwgaXQgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcmVwcmVzZW50YXRpb24gb2YgdGhlCiAgICAgKiBJbnRlcnZhbCBpbiB0aGUgYXNzaWduZWQgbG9jYWxlLiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbgogICAgICogc3BlY2lmaWVkLgogICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlVGltZUZvcm1hdAogICAgICogQHBhcmFtIHtPYmplY3R9IFtmb3JtYXRPcHRzPURhdGVUaW1lLkRBVEVfU0hPUlRdIC0gRWl0aGVyIGEgRGF0ZVRpbWUgcHJlc2V0IG9yCiAgICAgKiBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHN0YXJ0IERhdGVUaW1lLgogICAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbUlTTygnMjAyMi0xMS0wN1QwOTowMFovMjAyMi0xMS0wOFQwOTowMFonKS50b0xvY2FsZVN0cmluZygpOyAvLz0+IDExLzcvMjAyMiDigJMgMTEvOC8yMDIyCiAgICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tSVNPKCcyMDIyLTExLTA3VDA5OjAwWi8yMDIyLTExLTA4VDA5OjAwWicpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gTm92ZW1iZXIgNyDigJMgOCwgMjAyMgogICAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbUlTTygnMjAyMi0xMS0wN1QwOTowMFovMjAyMi0xMS0wOFQwOTowMFonKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFX0ZVTEwsIHsgbG9jYWxlOiAnZnItRlInIH0pOyAvLz0+IDfigJM4IG5vdmVtYnJlIDIwMjIKICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21JU08oJzIwMjItMTEtMDdUMTc6MDBaLzIwMjItMTEtMDdUMTk6MDBaJykudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuVElNRV9TSU1QTEUpOyAvLz0+IDY6MDAg4oCTIDg6MDAgUE0KICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21JU08oJzIwMjItMTEtMDdUMTc6MDBaLzIwMjItMTEtMDdUMTk6MDBaJykudG9Mb2NhbGVTdHJpbmcoeyB3ZWVrZGF5OiAnc2hvcnQnLCBtb250aDogJ3Nob3J0JywgZGF5OiAnMi1kaWdpdCcsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IC8vPT4gTW9uLCBOb3YgMDcsIDY6MDAg4oCTIDg6MDAgcAogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzID0gREFURV9TSE9SVCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQKICAgICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5zLmxvYy5jbG9uZShvcHRzKSwgZm9ybWF0T3B0cykuZm9ybWF0SW50ZXJ2YWwodGhpcykKICAgICAgICA6IElOVkFMSUQkMTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsLgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFscwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT30KICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU08ob3B0cykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQkMTsKICAgICAgcmV0dXJuIGAke3RoaXMucy50b0lTTyhvcHRzKX0vJHt0aGlzLmUudG9JU08ob3B0cyl9YDsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBkYXRlIG9mIHRoaXMgSW50ZXJ2YWwuCiAgICAgKiBUaGUgdGltZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFscwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0lTT0RhdGUoKSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwogICAgICByZXR1cm4gYCR7dGhpcy5zLnRvSVNPRGF0ZSgpfS8ke3RoaXMuZS50b0lTT0RhdGUoKX1gOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRpbWUgb2YgdGhpcyBJbnRlcnZhbC4KICAgICAqIFRoZSBkYXRlIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuCiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIFRoZSBzYW1lIG9wdGlvbnMgYXMge0BsaW5rIERhdGVUaW1lI3RvSVNPfQogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0lTT1RpbWUob3B0cykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQkMTsKICAgICAgcmV0dXJuIGAke3RoaXMucy50b0lTT1RpbWUob3B0cyl9LyR7dGhpcy5lLnRvSVNPVGltZShvcHRzKX1gOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQKICAgICAqIHN0cmluZy4gKipZb3UgbWF5IG5vdCB3YW50IHRoaXMuKiogU2VlIHtAbGluayBJbnRlcnZhbCN0b0xvY2FsZVN0cmluZ30gZm9yIGEgbW9yZSBmbGV4aWJsZQogICAgICogZm9ybWF0dGluZyB0b29sLgogICAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGVGb3JtYXQgLSBUaGUgZm9ybWF0IHN0cmluZy4gVGhpcyBzdHJpbmcgZm9ybWF0cyB0aGUgc3RhcnQgYW5kIGVuZCB0aW1lLgogICAgICogU2VlIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0gZm9yIGRldGFpbHMuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gICcg4oCTICddIC0gQSBzZXBhcmF0b3IgdG8gcGxhY2UgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZAogICAgICogcmVwcmVzZW50YXRpb25zLgogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0Zvcm1hdChkYXRlRm9ybWF0LCB7IHNlcGFyYXRvciA9ICIg4oCTICIgfSA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwogICAgICByZXR1cm4gYCR7dGhpcy5zLnRvRm9ybWF0KGRhdGVGb3JtYXQpfSR7c2VwYXJhdG9yfSR7dGhpcy5lLnRvRm9ybWF0KGRhdGVGb3JtYXQpfWA7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYSBEdXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIHRpbWUgc3Bhbm5lZCBieSB0aGlzIGludGVydmFsLgogICAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbigpLnRvT2JqZWN0KCkgLy89PiB7IG1pbGxpc2Vjb25kczogODg0ODkyNTcgfQogICAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbignZGF5cycpLnRvT2JqZWN0KCkgLy89PiB7IGRheXM6IDEuMDI0MTgxMjE1Mjc3Nzc3OCB9CiAgICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcyddKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjQsIG1pbnV0ZXM6IDM0LjgyMDk1IH0KICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oWydob3VycycsICdtaW51dGVzJywgJ3NlY29uZHMnXSkudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDI0LCBtaW51dGVzOiAzNCwgc2Vjb25kczogNDkuMjU3IH0KICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ3NlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBzZWNvbmRzOiA4ODQ4OS4yNTcgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIHRvRHVyYXRpb24odW5pdCwgb3B0cykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewogICAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKHRoaXMuaW52YWxpZFJlYXNvbik7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMuZS5kaWZmKHRoaXMucywgdW5pdCwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSdW4gbWFwRm4gb24gdGhlIGludGVydmFsIHN0YXJ0IGFuZCBlbmQsIHJldHVybmluZyBhIG5ldyBJbnRlcnZhbCBmcm9tIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWVzCiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBtYXBGbgogICAgICogQHJldHVybiB7SW50ZXJ2YWx9CiAgICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS5tYXBFbmRwb2ludHMoZW5kcG9pbnQgPT4gZW5kcG9pbnQudG9VVEMoKSkKICAgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLm1hcEVuZHBvaW50cyhlbmRwb2ludCA9PiBlbmRwb2ludC5wbHVzKHsgaG91cnM6IDIgfSkpCiAgICAgKi8KICAgIG1hcEVuZHBvaW50cyhtYXBGbikgewogICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhtYXBGbih0aGlzLnMpLCBtYXBGbih0aGlzLmUpKTsKICAgIH0KICB9CgogIC8qKgogICAqIFRoZSBJbmZvIGNsYXNzIGNvbnRhaW5zIHN0YXRpYyBtZXRob2RzIGZvciByZXRyaWV2aW5nIGdlbmVyYWwgdGltZSBhbmQgZGF0ZSByZWxhdGVkIGRhdGEuIEZvciBleGFtcGxlLCBpdCBoYXMgbWV0aG9kcyBmb3IgZmluZGluZyBvdXQgaWYgYSB0aW1lIHpvbmUgaGFzIGEgRFNULCBmb3IgbGlzdGluZyB0aGUgbW9udGhzIGluIGFueSBzdXBwb3J0ZWQgbG9jYWxlLCBhbmQgZm9yIGRpc2NvdmVyaW5nIHdoaWNoIG9mIEx1eG9uIGZlYXR1cmVzIGFyZSBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuCiAgICovCiAgY2xhc3MgSW5mbyB7CiAgICAvKioKICAgICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBjb250YWlucyBhIERTVC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gWm9uZSB0byBjaGVjay4gRGVmYXVsdHMgdG8gdGhlIGVudmlyb25tZW50J3MgbG9jYWwgem9uZS4KICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIHN0YXRpYyBoYXNEU1Qoem9uZSA9IFNldHRpbmdzLmRlZmF1bHRab25lKSB7CiAgICAgIGNvbnN0IHByb3RvID0gRGF0ZVRpbWUubm93KCkuc2V0Wm9uZSh6b25lKS5zZXQoeyBtb250aDogMTIgfSk7CgogICAgICByZXR1cm4gIXpvbmUuaXNVbml2ZXJzYWwgJiYgcHJvdG8ub2Zmc2V0ICE9PSBwcm90by5zZXQoeyBtb250aDogNiB9KS5vZmZzZXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgaXMgYSB2YWxpZCBJQU5BIHNwZWNpZmllci4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSB6b25lIC0gWm9uZSB0byBjaGVjawogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgc3RhdGljIGlzVmFsaWRJQU5BWm9uZSh6b25lKSB7CiAgICAgIHJldHVybiBJQU5BWm9uZS5pc1ZhbGlkWm9uZSh6b25lKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnZlcnRzIHRoZSBpbnB1dCBpbnRvIGEge0BsaW5rIFpvbmV9IGluc3RhbmNlLgogICAgICoKICAgICAqICogSWYgYGlucHV0YCBpcyBhbHJlYWR5IGEgWm9uZSBpbnN0YW5jZSwgaXQgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLgogICAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSB2YWxpZCB0aW1lIHpvbmUgbmFtZSwgYSBab25lIGluc3RhbmNlCiAgICAgKiAgIHdpdGggdGhhdCBuYW1lIGlzIHJldHVybmVkLgogICAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIHRoYXQgZG9lc24ndCByZWZlciB0byBhIGtub3duIHRpbWUgem9uZSwgYSBab25lCiAgICAgKiAgIGluc3RhbmNlIHdpdGgge0BsaW5rIFpvbmUjaXNWYWxpZH0gPT0gZmFsc2UgaXMgcmV0dXJuZWQuCiAgICAgKiAqIElmIGBpbnB1dCBpcyBhIG51bWJlciwgYSBab25lIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBmaXhlZCBvZmZzZXQKICAgICAqICAgaW4gbWludXRlcyBpcyByZXR1cm5lZC4KICAgICAqICogSWYgYGlucHV0YCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIHRoZSBkZWZhdWx0IHpvbmUgaXMgcmV0dXJuZWQuCiAgICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfG51bWJlcn0gW2lucHV0XSAtIHRoZSB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQKICAgICAqIEByZXR1cm4ge1pvbmV9CiAgICAgKi8KICAgIHN0YXRpYyBub3JtYWxpemVab25lKGlucHV0KSB7CiAgICAgIHJldHVybiBub3JtYWxpemVab25lKGlucHV0LCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2Ygc3RhbmRhbG9uZSBtb250aCBuYW1lcy4KICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aCByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyAibnVtZXJpYyIsICIyLWRpZ2l0IiwgIm5hcnJvdyIsICJzaG9ydCIsICJsb25nIgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcj0nZ3JlZ29yeSddIC0gdGhlIGNhbGVuZGFyCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygpWzBdIC8vPT4gJ0phbnVhcnknCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnKVswXSAvLz0+ICdKYW4nCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycpWzBdIC8vPT4gJzEnCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnLCB7IGxvY2FsZTogJ2ZyLUNBJyB9IClbMF0gLy89PiAnamFudi4nCiAgICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycsIHsgbG9jYWxlOiAnYXInIH0pWzBdIC8vPT4gJ9mhJwogICAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ2xvbmcnLCB7IG91dHB1dENhbGVuZGFyOiAnaXNsYW1pYycgfSlbMF0gLy89PiAnUmFiacq7IEknCiAgICAgKiBAcmV0dXJuIHtBcnJheX0KICAgICAqLwogICAgc3RhdGljIG1vbnRocygKICAgICAgbGVuZ3RoID0gImxvbmciLAogICAgICB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwsIG91dHB1dENhbGVuZGFyID0gImdyZWdvcnkiIH0gPSB7fQogICAgKSB7CiAgICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKSkubW9udGhzKGxlbmd0aCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZm9ybWF0IG1vbnRoIG5hbWVzLgogICAgICogRm9ybWF0IG1vbnRocyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIG1vbnRocyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGRheSBvZiB0aGUgbW9udGguIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0CiAgICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuCiAgICAgKiBTZWUge0BsaW5rIEluZm8jbW9udGhzfQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJudW1lcmljIiwgIjItZGlnaXQiLCAibmFycm93IiwgInNob3J0IiwgImxvbmciCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm91dHB1dENhbGVuZGFyPSdncmVnb3J5J10gLSB0aGUgY2FsZW5kYXIKICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzdGF0aWMgbW9udGhzRm9ybWF0KAogICAgICBsZW5ndGggPSAibG9uZyIsCiAgICAgIHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCwgbG9jT2JqID0gbnVsbCwgb3V0cHV0Q2FsZW5kYXIgPSAiZ3JlZ29yeSIgfSA9IHt9CiAgICApIHsKICAgICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpKS5tb250aHMobGVuZ3RoLCB0cnVlKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBhbiBhcnJheSBvZiBzdGFuZGFsb25lIHdlZWsgbmFtZXMuCiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0CiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nbG9uZyddIC0gdGhlIGxlbmd0aCBvZiB0aGUgd2Vla2RheSByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyAibmFycm93IiwgInNob3J0IiwgImxvbmciLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2UKICAgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoKVswXSAvLz0+ICdNb25kYXknCiAgICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKCdzaG9ydCcpWzBdIC8vPT4gJ01vbicKICAgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdmci1DQScgfSlbMF0gLy89PiAnbHVuLicKICAgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAn2KfZhNin2KvZhtmK2YYnCiAgICAgKiBAcmV0dXJuIHtBcnJheX0KICAgICAqLwogICAgc3RhdGljIHdlZWtkYXlzKGxlbmd0aCA9ICJsb25nIiwgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fSkgewogICAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBudWxsKSkud2Vla2RheXMobGVuZ3RoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBhbiBhcnJheSBvZiBmb3JtYXQgd2VlayBuYW1lcy4KICAgICAqIEZvcm1hdCB3ZWVrZGF5cyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIHdlZWtkYXlzIGluIHRoYXQgdGhleSdyZSBtZWFudCB0byBhcHBlYXIgbmV4dCB0byBtb3JlIGRhdGUgaW5mb3JtYXRpb24uIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0CiAgICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuCiAgICAgKiBTZWUge0BsaW5rIEluZm8jd2Vla2RheXN9CiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nbG9uZyddIC0gdGhlIGxlbmd0aCBvZiB0aGUgbW9udGggcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgIm5hcnJvdyIsICJzaG9ydCIsICJsb25nIi4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT1udWxsXSAtIHRoZSBsb2NhbGUgY29kZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2UKICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzdGF0aWMgd2Vla2RheXNGb3JtYXQoCiAgICAgIGxlbmd0aCA9ICJsb25nIiwKICAgICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fQogICAgKSB7CiAgICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG51bGwpKS53ZWVrZGF5cyhsZW5ndGgsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIGFuIGFycmF5IG9mIG1lcmlkaWVtcy4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGUKICAgICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKCkgLy89PiBbICdBTScsICdQTScgXQogICAgICogQGV4YW1wbGUgSW5mby5tZXJpZGllbXMoeyBsb2NhbGU6ICdteScgfSkgLy89PiBbICfhgJThgLbhgJThgIDhgLonLCAn4YCK4YCU4YCxJyBdCiAgICAgKiBAcmV0dXJuIHtBcnJheX0KICAgICAqLwogICAgc3RhdGljIG1lcmlkaWVtcyh7IGxvY2FsZSA9IG51bGwgfSA9IHt9KSB7CiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSkubWVyaWRpZW1zKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZXJhcywgc3VjaCBhcyBbJ0JDJywgJ0FEJ10uIFRoZSBsb2NhbGUgY2FuIGJlIHNwZWNpZmllZCwgYnV0IHRoZSBjYWxlbmRhciBzeXN0ZW0gaXMgYWx3YXlzIEdyZWdvcmlhbi4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdzaG9ydCddIC0gdGhlIGxlbmd0aCBvZiB0aGUgZXJhIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJzaG9ydCIgb3IgImxvbmciLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQogICAgICogQGV4YW1wbGUgSW5mby5lcmFzKCkgLy89PiBbICdCQycsICdBRCcgXQogICAgICogQGV4YW1wbGUgSW5mby5lcmFzKCdsb25nJykgLy89PiBbICdCZWZvcmUgQ2hyaXN0JywgJ0Fubm8gRG9taW5pJyBdCiAgICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoJ2xvbmcnLCB7IGxvY2FsZTogJ2ZyJyB9KSAvLz0+IFsgJ2F2YW50IErDqXN1cy1DaHJpc3QnLCAnYXByw6hzIErDqXN1cy1DaHJpc3QnIF0KICAgICAqIEByZXR1cm4ge0FycmF5fQogICAgICovCiAgICBzdGF0aWMgZXJhcyhsZW5ndGggPSAic2hvcnQiLCB7IGxvY2FsZSA9IG51bGwgfSA9IHt9KSB7CiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVsbCwgImdyZWdvcnkiKS5lcmFzKGxlbmd0aCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhdmFpbGFibGUgZmVhdHVyZXMgaW4gdGhpcyBlbnZpcm9ubWVudC4KICAgICAqIFNvbWUgZmVhdHVyZXMgb2YgTHV4b24gYXJlIG5vdCBhdmFpbGFibGUgaW4gYWxsIGVudmlyb25tZW50cy4gRm9yIGV4YW1wbGUsIG9uIG9sZGVyIGJyb3dzZXJzLCByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmcgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBmaWd1cmUgb3V0IGlmIHRoYXQncyB0aGUgY2FzZS4KICAgICAqIEtleXM6CiAgICAgKiAqIGByZWxhdGl2ZWA6IHdoZXRoZXIgdGhpcyBlbnZpcm9ubWVudCBzdXBwb3J0cyByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmcKICAgICAqIEBleGFtcGxlIEluZm8uZmVhdHVyZXMoKSAvLz0+IHsgcmVsYXRpdmU6IGZhbHNlIH0KICAgICAqIEByZXR1cm4ge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGZlYXR1cmVzKCkgewogICAgICByZXR1cm4geyByZWxhdGl2ZTogaGFzUmVsYXRpdmUoKSB9OwogICAgfQogIH0KCiAgZnVuY3Rpb24gZGF5RGlmZihlYXJsaWVyLCBsYXRlcikgewogICAgY29uc3QgdXRjRGF5U3RhcnQgPSAoZHQpID0+IGR0LnRvVVRDKDAsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCksCiAgICAgIG1zID0gdXRjRGF5U3RhcnQobGF0ZXIpIC0gdXRjRGF5U3RhcnQoZWFybGllcik7CiAgICByZXR1cm4gTWF0aC5mbG9vcihEdXJhdGlvbi5mcm9tTWlsbGlzKG1zKS5hcygiZGF5cyIpKTsKICB9CgogIGZ1bmN0aW9uIGhpZ2hPcmRlckRpZmZzKGN1cnNvciwgbGF0ZXIsIHVuaXRzKSB7CiAgICBjb25zdCBkaWZmZXJzID0gWwogICAgICBbInllYXJzIiwgKGEsIGIpID0+IGIueWVhciAtIGEueWVhcl0sCiAgICAgIFsicXVhcnRlcnMiLCAoYSwgYikgPT4gYi5xdWFydGVyIC0gYS5xdWFydGVyICsgKGIueWVhciAtIGEueWVhcikgKiA0XSwKICAgICAgWyJtb250aHMiLCAoYSwgYikgPT4gYi5tb250aCAtIGEubW9udGggKyAoYi55ZWFyIC0gYS55ZWFyKSAqIDEyXSwKICAgICAgWwogICAgICAgICJ3ZWVrcyIsCiAgICAgICAgKGEsIGIpID0+IHsKICAgICAgICAgIGNvbnN0IGRheXMgPSBkYXlEaWZmKGEsIGIpOwogICAgICAgICAgcmV0dXJuIChkYXlzIC0gKGRheXMgJSA3KSkgLyA3OwogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIFsiZGF5cyIsIGRheURpZmZdLAogICAgXTsKCiAgICBjb25zdCByZXN1bHRzID0ge307CiAgICBjb25zdCBlYXJsaWVyID0gY3Vyc29yOwogICAgbGV0IGxvd2VzdE9yZGVyLCBoaWdoV2F0ZXI7CgogICAgLyogVGhpcyBsb29wIHRyaWVzIHRvIGRpZmYgdXNpbmcgbGFyZ2VyIHVuaXRzIGZpcnN0LgogICAgICAgSWYgd2Ugb3ZlcnNob290LCB3ZSBiYWNrdHJhY2sgYW5kIHRyeSB0aGUgbmV4dCBzbWFsbGVyIHVuaXQuCiAgICAgICAiY3Vyc29yIiBzdGFydHMgb3V0IGF0IHRoZSBlYXJsaWVyIHRpbWVzdGFtcCBhbmQgbW92ZXMgY2xvc2VyIGFuZCBjbG9zZXIgdG8gImxhdGVyIgogICAgICAgYXMgd2UgdXNlIHNtYWxsZXIgYW5kIHNtYWxsZXIgdW5pdHMuCiAgICAgICBoaWdoV2F0ZXIga2VlcHMgdHJhY2sgb2Ygd2hlcmUgd2Ugd291bGQgYmUgaWYgd2UgYWRkZWQgb25lIG1vcmUgb2YgdGhlIHNtYWxsZXN0IHVuaXQsCiAgICAgICB0aGlzIGlzIHVzZWQgbGF0ZXIgdG8gcG90ZW50aWFsbHkgY29udmVydCBhbnkgZGlmZmVyZW5jZSBzbWFsbGVyIHRoYW4gdGhlIHNtYWxsZXN0IGhpZ2hlciBvcmRlciB1bml0CiAgICAgICBpbnRvIGEgZnJhY3Rpb24gb2YgdGhhdCBzbWFsbGVzdCBoaWdoZXIgb3JkZXIgdW5pdAogICAgKi8KICAgIGZvciAoY29uc3QgW3VuaXQsIGRpZmZlcl0gb2YgZGlmZmVycykgewogICAgICBpZiAodW5pdHMuaW5kZXhPZih1bml0KSA+PSAwKSB7CiAgICAgICAgbG93ZXN0T3JkZXIgPSB1bml0OwoKICAgICAgICByZXN1bHRzW3VuaXRdID0gZGlmZmVyKGN1cnNvciwgbGF0ZXIpOwogICAgICAgIGhpZ2hXYXRlciA9IGVhcmxpZXIucGx1cyhyZXN1bHRzKTsKCiAgICAgICAgaWYgKGhpZ2hXYXRlciA+IGxhdGVyKSB7CiAgICAgICAgICAvLyB3ZSBvdmVyc2hvdCB0aGUgZW5kIHBvaW50LCBiYWNrdHJhY2sgY3Vyc29yIGJ5IDEKICAgICAgICAgIHJlc3VsdHNbdW5pdF0tLTsKICAgICAgICAgIGN1cnNvciA9IGVhcmxpZXIucGx1cyhyZXN1bHRzKTsKCiAgICAgICAgICAvLyBpZiB3ZSBhcmUgc3RpbGwgb3ZlcnNob290aW5nIG5vdywgd2UgbmVlZCB0byBiYWNrdHJhY2sgYWdhaW4KICAgICAgICAgIC8vIHRoaXMgaGFwcGVucyBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgd2hlbiBkaWZmaW5nIHRpbWVzIGluIGRpZmZlcmVudCB6b25lcywKICAgICAgICAgIC8vIGJlY2F1c2UgdGhpcyBjYWxjdWxhdGlvbiBpZ25vcmVzIHRpbWUgem9uZXMKICAgICAgICAgIGlmIChjdXJzb3IgPiBsYXRlcikgewogICAgICAgICAgICAvLyBrZWVwIHRoZSAib3ZlcnNob3QgYnkgMSIgYXJvdW5kIGFzIGhpZ2hXYXRlcgogICAgICAgICAgICBoaWdoV2F0ZXIgPSBjdXJzb3I7CiAgICAgICAgICAgIC8vIGJhY2t0cmFjayBjdXJzb3IgYnkgMQogICAgICAgICAgICByZXN1bHRzW3VuaXRdLS07CiAgICAgICAgICAgIGN1cnNvciA9IGVhcmxpZXIucGx1cyhyZXN1bHRzKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgY3Vyc29yID0gaGlnaFdhdGVyOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBbY3Vyc29yLCByZXN1bHRzLCBoaWdoV2F0ZXIsIGxvd2VzdE9yZGVyXTsKICB9CgogIGZ1bmN0aW9uIGRpZmYgKGVhcmxpZXIsIGxhdGVyLCB1bml0cywgb3B0cykgewogICAgbGV0IFtjdXJzb3IsIHJlc3VsdHMsIGhpZ2hXYXRlciwgbG93ZXN0T3JkZXJdID0gaGlnaE9yZGVyRGlmZnMoZWFybGllciwgbGF0ZXIsIHVuaXRzKTsKCiAgICBjb25zdCByZW1haW5pbmdNaWxsaXMgPSBsYXRlciAtIGN1cnNvcjsKCiAgICBjb25zdCBsb3dlck9yZGVyVW5pdHMgPSB1bml0cy5maWx0ZXIoCiAgICAgICh1KSA9PiBbImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyIsICJtaWxsaXNlY29uZHMiXS5pbmRleE9mKHUpID49IDAKICAgICk7CgogICAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPT09IDApIHsKICAgICAgaWYgKGhpZ2hXYXRlciA8IGxhdGVyKSB7CiAgICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoeyBbbG93ZXN0T3JkZXJdOiAxIH0pOwogICAgICB9CgogICAgICBpZiAoaGlnaFdhdGVyICE9PSBjdXJzb3IpIHsKICAgICAgICByZXN1bHRzW2xvd2VzdE9yZGVyXSA9IChyZXN1bHRzW2xvd2VzdE9yZGVyXSB8fCAwKSArIHJlbWFpbmluZ01pbGxpcyAvIChoaWdoV2F0ZXIgLSBjdXJzb3IpOwogICAgICB9CiAgICB9CgogICAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHJlc3VsdHMsIG9wdHMpOwoKICAgIGlmIChsb3dlck9yZGVyVW5pdHMubGVuZ3RoID4gMCkgewogICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhyZW1haW5pbmdNaWxsaXMsIG9wdHMpCiAgICAgICAgLnNoaWZ0VG8oLi4ubG93ZXJPcmRlclVuaXRzKQogICAgICAgIC5wbHVzKGR1cmF0aW9uKTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBkdXJhdGlvbjsKICAgIH0KICB9CgogIGNvbnN0IG51bWJlcmluZ1N5c3RlbXMgPSB7CiAgICBhcmFiOiAiW1x1MDY2MC1cdTA2NjldIiwKICAgIGFyYWJleHQ6ICJbXHUwNkYwLVx1MDZGOV0iLAogICAgYmFsaTogIltcdTFCNTAtXHUxQjU5XSIsCiAgICBiZW5nOiAiW1x1MDlFNi1cdTA5RUZdIiwKICAgIGRldmE6ICJbXHUwOTY2LVx1MDk2Rl0iLAogICAgZnVsbHdpZGU6ICJbXHVGRjEwLVx1RkYxOV0iLAogICAgZ3VqcjogIltcdTBBRTYtXHUwQUVGXSIsCiAgICBoYW5pZGVjOiAiW+OAh3zkuIB85LqMfOS4iXzlm5t85LqUfOWFrXzkuIN85YWrfOS5nV0iLAogICAga2htcjogIltcdTE3RTAtXHUxN0U5XSIsCiAgICBrbmRhOiAiW1x1MENFNi1cdTBDRUZdIiwKICAgIGxhb286ICJbXHUwRUQwLVx1MEVEOV0iLAogICAgbGltYjogIltcdTE5NDYtXHUxOTRGXSIsCiAgICBtbHltOiAiW1x1MEQ2Ni1cdTBENkZdIiwKICAgIG1vbmc6ICJbXHUxODEwLVx1MTgxOV0iLAogICAgbXltcjogIltcdTEwNDAtXHUxMDQ5XSIsCiAgICBvcnlhOiAiW1x1MEI2Ni1cdTBCNkZdIiwKICAgIHRhbWxkZWM6ICJbXHUwQkU2LVx1MEJFRl0iLAogICAgdGVsdTogIltcdTBDNjYtXHUwQzZGXSIsCiAgICB0aGFpOiAiW1x1MEU1MC1cdTBFNTldIiwKICAgIHRpYnQ6ICJbXHUwRjIwLVx1MEYyOV0iLAogICAgbGF0bjogIlxcZCIsCiAgfTsKCiAgY29uc3QgbnVtYmVyaW5nU3lzdGVtc1VURjE2ID0gewogICAgYXJhYjogWzE2MzIsIDE2NDFdLAogICAgYXJhYmV4dDogWzE3NzYsIDE3ODVdLAogICAgYmFsaTogWzY5OTIsIDcwMDFdLAogICAgYmVuZzogWzI1MzQsIDI1NDNdLAogICAgZGV2YTogWzI0MDYsIDI0MTVdLAogICAgZnVsbHdpZGU6IFs2NTI5NiwgNjUzMDNdLAogICAgZ3VqcjogWzI3OTAsIDI3OTldLAogICAga2htcjogWzYxMTIsIDYxMjFdLAogICAga25kYTogWzMzMDIsIDMzMTFdLAogICAgbGFvbzogWzM3OTIsIDM4MDFdLAogICAgbGltYjogWzY0NzAsIDY0NzldLAogICAgbWx5bTogWzM0MzAsIDM0MzldLAogICAgbW9uZzogWzYxNjAsIDYxNjldLAogICAgbXltcjogWzQxNjAsIDQxNjldLAogICAgb3J5YTogWzI5MTgsIDI5MjddLAogICAgdGFtbGRlYzogWzMwNDYsIDMwNTVdLAogICAgdGVsdTogWzMxNzQsIDMxODNdLAogICAgdGhhaTogWzM2NjQsIDM2NzNdLAogICAgdGlidDogWzM4NzIsIDM4ODFdLAogIH07CgogIGNvbnN0IGhhbmlkZWNDaGFycyA9IG51bWJlcmluZ1N5c3RlbXMuaGFuaWRlYy5yZXBsYWNlKC9bXFt8XF1dL2csICIiKS5zcGxpdCgiIik7CgogIGZ1bmN0aW9uIHBhcnNlRGlnaXRzKHN0cikgewogICAgbGV0IHZhbHVlID0gcGFyc2VJbnQoc3RyLCAxMCk7CiAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgIHZhbHVlID0gIiI7CiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpOwoKICAgICAgICBpZiAoc3RyW2ldLnNlYXJjaChudW1iZXJpbmdTeXN0ZW1zLmhhbmlkZWMpICE9PSAtMSkgewogICAgICAgICAgdmFsdWUgKz0gaGFuaWRlY0NoYXJzLmluZGV4T2Yoc3RyW2ldKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbnVtYmVyaW5nU3lzdGVtc1VURjE2KSB7CiAgICAgICAgICAgIGNvbnN0IFttaW4sIG1heF0gPSBudW1iZXJpbmdTeXN0ZW1zVVRGMTZba2V5XTsKICAgICAgICAgICAgaWYgKGNvZGUgPj0gbWluICYmIGNvZGUgPD0gbWF4KSB7CiAgICAgICAgICAgICAgdmFsdWUgKz0gY29kZSAtIG1pbjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGRpZ2l0UmVnZXgoeyBudW1iZXJpbmdTeXN0ZW0gfSwgYXBwZW5kID0gIiIpIHsKICAgIHJldHVybiBuZXcgUmVnRXhwKGAke251bWJlcmluZ1N5c3RlbXNbbnVtYmVyaW5nU3lzdGVtIHx8ICJsYXRuIl19JHthcHBlbmR9YCk7CiAgfQoKICBjb25zdCBNSVNTSU5HX0ZUUCA9ICJtaXNzaW5nIEludGwuRGF0ZVRpbWVGb3JtYXQuZm9ybWF0VG9QYXJ0cyBzdXBwb3J0IjsKCiAgZnVuY3Rpb24gaW50VW5pdChyZWdleCwgcG9zdCA9IChpKSA9PiBpKSB7CiAgICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHBvc3QocGFyc2VEaWdpdHMocykpIH07CiAgfQoKICBjb25zdCBOQlNQID0gU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApOwogIGNvbnN0IHNwYWNlT3JOQlNQID0gYFsgJHtOQlNQfV1gOwogIGNvbnN0IHNwYWNlT3JOQlNQUmVnRXhwID0gbmV3IFJlZ0V4cChzcGFjZU9yTkJTUCwgImciKTsKCiAgZnVuY3Rpb24gZml4TGlzdFJlZ2V4KHMpIHsKICAgIC8vIG1ha2UgZG90cyBvcHRpb25hbCBhbmQgYWxzbyBtYWtlIHRoZW0gbGl0ZXJhbAogICAgLy8gbWFrZSBzcGFjZSBhbmQgbm9uIGJyZWFrYWJsZSBzcGFjZSBjaGFyYWN0ZXJzIGludGVyY2hhbmdlYWJsZQogICAgcmV0dXJuIHMucmVwbGFjZSgvXC4vZywgIlxcLj8iKS5yZXBsYWNlKHNwYWNlT3JOQlNQUmVnRXhwLCBzcGFjZU9yTkJTUCk7CiAgfQoKICBmdW5jdGlvbiBzdHJpcEluc2Vuc2l0aXZpdGllcyhzKSB7CiAgICByZXR1cm4gcwogICAgICAucmVwbGFjZSgvXC4vZywgIiIpIC8vIGlnbm9yZSBkb3RzIHRoYXQgd2VyZSBtYWRlIG9wdGlvbmFsCiAgICAgIC5yZXBsYWNlKHNwYWNlT3JOQlNQUmVnRXhwLCAiICIpIC8vIGludGVyY2hhbmdlIHNwYWNlIGFuZCBuYnNwCiAgICAgIC50b0xvd2VyQ2FzZSgpOwogIH0KCiAgZnVuY3Rpb24gb25lT2Yoc3RyaW5ncywgc3RhcnRJbmRleCkgewogICAgaWYgKHN0cmluZ3MgPT09IG51bGwpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gewogICAgICAgIHJlZ2V4OiBSZWdFeHAoc3RyaW5ncy5tYXAoZml4TGlzdFJlZ2V4KS5qb2luKCJ8IikpLAogICAgICAgIGRlc2VyOiAoW3NdKSA9PgogICAgICAgICAgc3RyaW5ncy5maW5kSW5kZXgoKGkpID0+IHN0cmlwSW5zZW5zaXRpdml0aWVzKHMpID09PSBzdHJpcEluc2Vuc2l0aXZpdGllcyhpKSkgKyBzdGFydEluZGV4LAogICAgICB9OwogICAgfQogIH0KCiAgZnVuY3Rpb24gb2Zmc2V0KHJlZ2V4LCBncm91cHMpIHsKICAgIHJldHVybiB7IHJlZ2V4LCBkZXNlcjogKFssIGgsIG1dKSA9PiBzaWduZWRPZmZzZXQoaCwgbSksIGdyb3VwcyB9OwogIH0KCiAgZnVuY3Rpb24gc2ltcGxlKHJlZ2V4KSB7CiAgICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHMgfTsKICB9CgogIGZ1bmN0aW9uIGVzY2FwZVRva2VuKHZhbHVlKSB7CiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1wtXFtcXXt9KCkqKz8uLFxcXF4kfCNcc10vZywgIlxcJCYiKTsKICB9CgogIC8qKgogICAqIEBwYXJhbSB0b2tlbgogICAqIEBwYXJhbSB7TG9jYWxlfSBsb2MKICAgKi8KICBmdW5jdGlvbiB1bml0Rm9yVG9rZW4odG9rZW4sIGxvYykgewogICAgY29uc3Qgb25lID0gZGlnaXRSZWdleChsb2MpLAogICAgICB0d28gPSBkaWdpdFJlZ2V4KGxvYywgInsyfSIpLAogICAgICB0aHJlZSA9IGRpZ2l0UmVnZXgobG9jLCAiezN9IiksCiAgICAgIGZvdXIgPSBkaWdpdFJlZ2V4KGxvYywgIns0fSIpLAogICAgICBzaXggPSBkaWdpdFJlZ2V4KGxvYywgIns2fSIpLAogICAgICBvbmVPclR3byA9IGRpZ2l0UmVnZXgobG9jLCAiezEsMn0iKSwKICAgICAgb25lVG9UaHJlZSA9IGRpZ2l0UmVnZXgobG9jLCAiezEsM30iKSwKICAgICAgb25lVG9TaXggPSBkaWdpdFJlZ2V4KGxvYywgInsxLDZ9IiksCiAgICAgIG9uZVRvTmluZSA9IGRpZ2l0UmVnZXgobG9jLCAiezEsOX0iKSwKICAgICAgdHdvVG9Gb3VyID0gZGlnaXRSZWdleChsb2MsICJ7Miw0fSIpLAogICAgICBmb3VyVG9TaXggPSBkaWdpdFJlZ2V4KGxvYywgIns0LDZ9IiksCiAgICAgIGxpdGVyYWwgPSAodCkgPT4gKHsgcmVnZXg6IFJlZ0V4cChlc2NhcGVUb2tlbih0LnZhbCkpLCBkZXNlcjogKFtzXSkgPT4gcywgbGl0ZXJhbDogdHJ1ZSB9KSwKICAgICAgdW5pdGF0ZSA9ICh0KSA9PiB7CiAgICAgICAgaWYgKHRva2VuLmxpdGVyYWwpIHsKICAgICAgICAgIHJldHVybiBsaXRlcmFsKHQpOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHQudmFsKSB7CiAgICAgICAgICAvLyBlcmEKICAgICAgICAgIGNhc2UgIkciOgogICAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoInNob3J0IiksIDApOwogICAgICAgICAgY2FzZSAiR0ciOgogICAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoImxvbmciKSwgMCk7CiAgICAgICAgICAvLyB5ZWFycwogICAgICAgICAgY2FzZSAieSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvU2l4KTsKICAgICAgICAgIGNhc2UgInl5IjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvVG9Gb3VyLCB1bnRydW5jYXRlWWVhcik7CiAgICAgICAgICBjYXNlICJ5eXl5IjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQoZm91cik7CiAgICAgICAgICBjYXNlICJ5eXl5eSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXJUb1NpeCk7CiAgICAgICAgICBjYXNlICJ5eXl5eXkiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChzaXgpOwogICAgICAgICAgLy8gbW9udGhzCiAgICAgICAgICBjYXNlICJNIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pOwogICAgICAgICAgY2FzZSAiTU0iOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwogICAgICAgICAgY2FzZSAiTU1NIjoKICAgICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoInNob3J0IiwgdHJ1ZSksIDEpOwogICAgICAgICAgY2FzZSAiTU1NTSI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKCJsb25nIiwgdHJ1ZSksIDEpOwogICAgICAgICAgY2FzZSAiTCI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKICAgICAgICAgIGNhc2UgIkxMIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTsKICAgICAgICAgIGNhc2UgIkxMTCI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKCJzaG9ydCIsIGZhbHNlKSwgMSk7CiAgICAgICAgICBjYXNlICJMTExMIjoKICAgICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoImxvbmciLCBmYWxzZSksIDEpOwogICAgICAgICAgLy8gZGF0ZXMKICAgICAgICAgIGNhc2UgImQiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CiAgICAgICAgICBjYXNlICJkZCI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CiAgICAgICAgICAvLyBvcmRpbmFscwogICAgICAgICAgY2FzZSAibyI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvVGhyZWUpOwogICAgICAgICAgY2FzZSAib29vIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodGhyZWUpOwogICAgICAgICAgLy8gdGltZQogICAgICAgICAgY2FzZSAiSEgiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwogICAgICAgICAgY2FzZSAiSCI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKICAgICAgICAgIGNhc2UgImhoIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTsKICAgICAgICAgIGNhc2UgImgiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CiAgICAgICAgICBjYXNlICJtbSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CiAgICAgICAgICBjYXNlICJtIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pOwogICAgICAgICAgY2FzZSAicSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKICAgICAgICAgIGNhc2UgInFxIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTsKICAgICAgICAgIGNhc2UgInMiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CiAgICAgICAgICBjYXNlICJzcyI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CiAgICAgICAgICBjYXNlICJTIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9UaHJlZSk7CiAgICAgICAgICBjYXNlICJTU1MiOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7CiAgICAgICAgICBjYXNlICJ1IjoKICAgICAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVUb05pbmUpOwogICAgICAgICAgY2FzZSAidXUiOgogICAgICAgICAgICByZXR1cm4gc2ltcGxlKG9uZU9yVHdvKTsKICAgICAgICAgIGNhc2UgInV1dSI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZSk7CiAgICAgICAgICAvLyBtZXJpZGllbQogICAgICAgICAgY2FzZSAiYSI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubWVyaWRpZW1zKCksIDApOwogICAgICAgICAgLy8gd2Vla1llYXIgKGspCiAgICAgICAgICBjYXNlICJra2trIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQoZm91cik7CiAgICAgICAgICBjYXNlICJrayI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3b1RvRm91ciwgdW50cnVuY2F0ZVllYXIpOwogICAgICAgICAgLy8gd2Vla051bWJlciAoVykKICAgICAgICAgIGNhc2UgIlciOgogICAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CiAgICAgICAgICBjYXNlICJXVyI6CiAgICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CiAgICAgICAgICAvLyB3ZWVrZGF5cwogICAgICAgICAgY2FzZSAiRSI6CiAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgcmV0dXJuIGludFVuaXQob25lKTsKICAgICAgICAgIGNhc2UgIkVFRSI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoInNob3J0IiwgZmFsc2UpLCAxKTsKICAgICAgICAgIGNhc2UgIkVFRUUiOgogICAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKCJsb25nIiwgZmFsc2UpLCAxKTsKICAgICAgICAgIGNhc2UgImNjYyI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoInNob3J0IiwgdHJ1ZSksIDEpOwogICAgICAgICAgY2FzZSAiY2NjYyI6CiAgICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoImxvbmciLCB0cnVlKSwgMSk7CiAgICAgICAgICAvLyBvZmZzZXQvem9uZQogICAgICAgICAgY2FzZSAiWiI6CiAgICAgICAgICBjYXNlICJaWiI6CiAgICAgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cChgKFsrLV0ke29uZU9yVHdvLnNvdXJjZX0pKD86Oigke3R3by5zb3VyY2V9KSk/YCksIDIpOwogICAgICAgICAgY2FzZSAiWlpaIjoKICAgICAgICAgICAgcmV0dXJuIG9mZnNldChuZXcgUmVnRXhwKGAoWystXSR7b25lT3JUd28uc291cmNlfSkoJHt0d28uc291cmNlfSk/YCksIDIpOwogICAgICAgICAgLy8gd2UgZG9uJ3Qgc3VwcG9ydCBaWlpaIChQU1QpIG9yIFpaWlpaIChQYWNpZmljIFN0YW5kYXJkIFRpbWUpIGluIHBhcnNpbmcKICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhbnkgd2F5IHRvIGZpZ3VyZSBvdXQgd2hhdCB0aGV5IGFyZQogICAgICAgICAgY2FzZSAieiI6CiAgICAgICAgICAgIHJldHVybiBzaW1wbGUoL1thLXpfKy0vXXsxLDI1Nn0/L2kpOwogICAgICAgICAgLy8gdGhpcyBzcGVjaWFsLWNhc2UgInRva2VuIiByZXByZXNlbnRzIGEgcGxhY2Ugd2hlcmUgYSBtYWNyby10b2tlbiBleHBhbmRlZCBpbnRvIGEgd2hpdGUtc3BhY2UgbGl0ZXJhbAogICAgICAgICAgLy8gaW4gdGhpcyBjYXNlIHdlIGFjY2VwdCBhbnkgbm9uLW5ld2xpbmUgd2hpdGUtc3BhY2UKICAgICAgICAgIGNhc2UgIiAiOgogICAgICAgICAgICByZXR1cm4gc2ltcGxlKC9bXlxTXG5ccl0vKTsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBsaXRlcmFsKHQpOwogICAgICAgIH0KICAgICAgfTsKCiAgICBjb25zdCB1bml0ID0gdW5pdGF0ZSh0b2tlbikgfHwgewogICAgICBpbnZhbGlkUmVhc29uOiBNSVNTSU5HX0ZUUCwKICAgIH07CgogICAgdW5pdC50b2tlbiA9IHRva2VuOwoKICAgIHJldHVybiB1bml0OwogIH0KCiAgY29uc3QgcGFydFR5cGVTdHlsZVRvVG9rZW5WYWwgPSB7CiAgICB5ZWFyOiB7CiAgICAgICIyLWRpZ2l0IjogInl5IiwKICAgICAgbnVtZXJpYzogInl5eXl5IiwKICAgIH0sCiAgICBtb250aDogewogICAgICBudW1lcmljOiAiTSIsCiAgICAgICIyLWRpZ2l0IjogIk1NIiwKICAgICAgc2hvcnQ6ICJNTU0iLAogICAgICBsb25nOiAiTU1NTSIsCiAgICB9LAogICAgZGF5OiB7CiAgICAgIG51bWVyaWM6ICJkIiwKICAgICAgIjItZGlnaXQiOiAiZGQiLAogICAgfSwKICAgIHdlZWtkYXk6IHsKICAgICAgc2hvcnQ6ICJFRUUiLAogICAgICBsb25nOiAiRUVFRSIsCiAgICB9LAogICAgZGF5cGVyaW9kOiAiYSIsCiAgICBkYXlQZXJpb2Q6ICJhIiwKICAgIGhvdXIxMjogewogICAgICBudW1lcmljOiAiaCIsCiAgICAgICIyLWRpZ2l0IjogImhoIiwKICAgIH0sCiAgICBob3VyMjQ6IHsKICAgICAgbnVtZXJpYzogIkgiLAogICAgICAiMi1kaWdpdCI6ICJISCIsCiAgICB9LAogICAgbWludXRlOiB7CiAgICAgIG51bWVyaWM6ICJtIiwKICAgICAgIjItZGlnaXQiOiAibW0iLAogICAgfSwKICAgIHNlY29uZDogewogICAgICBudW1lcmljOiAicyIsCiAgICAgICIyLWRpZ2l0IjogInNzIiwKICAgIH0sCiAgICB0aW1lWm9uZU5hbWU6IHsKICAgICAgbG9uZzogIlpaWlpaIiwKICAgICAgc2hvcnQ6ICJaWloiLAogICAgfSwKICB9OwoKICBmdW5jdGlvbiB0b2tlbkZvclBhcnQocGFydCwgZm9ybWF0T3B0cywgcmVzb2x2ZWRPcHRzKSB7CiAgICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBwYXJ0OwoKICAgIGlmICh0eXBlID09PSAibGl0ZXJhbCIpIHsKICAgICAgY29uc3QgaXNTcGFjZSA9IC9eXHMrJC8udGVzdCh2YWx1ZSk7CiAgICAgIHJldHVybiB7CiAgICAgICAgbGl0ZXJhbDogIWlzU3BhY2UsCiAgICAgICAgdmFsOiBpc1NwYWNlID8gIiAiIDogdmFsdWUsCiAgICAgIH07CiAgICB9CgogICAgY29uc3Qgc3R5bGUgPSBmb3JtYXRPcHRzW3R5cGVdOwoKICAgIC8vIFRoZSB1c2VyIG1pZ2h0IGhhdmUgZXhwbGljaXRseSBzcGVjaWZpZWQgaG91cjEyIG9yIGhvdXJDeWNsZQogICAgLy8gaWYgc28sIHJlc3BlY3QgdGhlaXIgZGVjaXNpb24KICAgIC8vIGlmIG5vdCwgcmVmZXIgYmFjayB0byB0aGUgcmVzb2x2ZWRPcHRzLCB3aGljaCBhcmUgYmFzZWQgb24gdGhlIGxvY2FsZQogICAgbGV0IGFjdHVhbFR5cGUgPSB0eXBlOwogICAgaWYgKHR5cGUgPT09ICJob3VyIikgewogICAgICBpZiAoZm9ybWF0T3B0cy5ob3VyMTIgIT0gbnVsbCkgewogICAgICAgIGFjdHVhbFR5cGUgPSBmb3JtYXRPcHRzLmhvdXIxMiA/ICJob3VyMTIiIDogImhvdXIyNCI7CiAgICAgIH0gZWxzZSBpZiAoZm9ybWF0T3B0cy5ob3VyQ3ljbGUgIT0gbnVsbCkgewogICAgICAgIGlmIChmb3JtYXRPcHRzLmhvdXJDeWNsZSA9PT0gImgxMSIgfHwgZm9ybWF0T3B0cy5ob3VyQ3ljbGUgPT09ICJoMTIiKSB7CiAgICAgICAgICBhY3R1YWxUeXBlID0gImhvdXIxMiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGFjdHVhbFR5cGUgPSAiaG91cjI0IjsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gdG9rZW5zIG9ubHkgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIDI0IGhvdXJzIG9yIG5vdCwKICAgICAgICAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byBjaGVjayBob3VyQ3ljbGUgaGVyZSwgd2hpY2ggaXMgbGVzcyBzdXBwb3J0ZWQgYW55d2F5cwogICAgICAgIGFjdHVhbFR5cGUgPSByZXNvbHZlZE9wdHMuaG91cjEyID8gImhvdXIxMiIgOiAiaG91cjI0IjsKICAgICAgfQogICAgfQogICAgbGV0IHZhbCA9IHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsW2FjdHVhbFR5cGVdOwogICAgaWYgKHR5cGVvZiB2YWwgPT09ICJvYmplY3QiKSB7CiAgICAgIHZhbCA9IHZhbFtzdHlsZV07CiAgICB9CgogICAgaWYgKHZhbCkgewogICAgICByZXR1cm4gewogICAgICAgIGxpdGVyYWw6IGZhbHNlLAogICAgICAgIHZhbCwKICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gdW5kZWZpbmVkOwogIH0KCiAgZnVuY3Rpb24gYnVpbGRSZWdleCh1bml0cykgewogICAgY29uc3QgcmUgPSB1bml0cy5tYXAoKHUpID0+IHUucmVnZXgpLnJlZHVjZSgoZiwgcikgPT4gYCR7Zn0oJHtyLnNvdXJjZX0pYCwgIiIpOwogICAgcmV0dXJuIFtgXiR7cmV9JGAsIHVuaXRzXTsKICB9CgogIGZ1bmN0aW9uIG1hdGNoKGlucHV0LCByZWdleCwgaGFuZGxlcnMpIHsKICAgIGNvbnN0IG1hdGNoZXMgPSBpbnB1dC5tYXRjaChyZWdleCk7CgogICAgaWYgKG1hdGNoZXMpIHsKICAgICAgY29uc3QgYWxsID0ge307CiAgICAgIGxldCBtYXRjaEluZGV4ID0gMTsKICAgICAgZm9yIChjb25zdCBpIGluIGhhbmRsZXJzKSB7CiAgICAgICAgaWYgKGhhc093blByb3BlcnR5KGhhbmRsZXJzLCBpKSkgewogICAgICAgICAgY29uc3QgaCA9IGhhbmRsZXJzW2ldLAogICAgICAgICAgICBncm91cHMgPSBoLmdyb3VwcyA/IGguZ3JvdXBzICsgMSA6IDE7CiAgICAgICAgICBpZiAoIWgubGl0ZXJhbCAmJiBoLnRva2VuKSB7CiAgICAgICAgICAgIGFsbFtoLnRva2VuLnZhbFswXV0gPSBoLmRlc2VyKG1hdGNoZXMuc2xpY2UobWF0Y2hJbmRleCwgbWF0Y2hJbmRleCArIGdyb3VwcykpOwogICAgICAgICAgfQogICAgICAgICAgbWF0Y2hJbmRleCArPSBncm91cHM7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBbbWF0Y2hlcywgYWxsXTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBbbWF0Y2hlcywge31dOwogICAgfQogIH0KCiAgZnVuY3Rpb24gZGF0ZVRpbWVGcm9tTWF0Y2hlcyhtYXRjaGVzKSB7CiAgICBjb25zdCB0b0ZpZWxkID0gKHRva2VuKSA9PiB7CiAgICAgIHN3aXRjaCAodG9rZW4pIHsKICAgICAgICBjYXNlICJTIjoKICAgICAgICAgIHJldHVybiAibWlsbGlzZWNvbmQiOwogICAgICAgIGNhc2UgInMiOgogICAgICAgICAgcmV0dXJuICJzZWNvbmQiOwogICAgICAgIGNhc2UgIm0iOgogICAgICAgICAgcmV0dXJuICJtaW51dGUiOwogICAgICAgIGNhc2UgImgiOgogICAgICAgIGNhc2UgIkgiOgogICAgICAgICAgcmV0dXJuICJob3VyIjsKICAgICAgICBjYXNlICJkIjoKICAgICAgICAgIHJldHVybiAiZGF5IjsKICAgICAgICBjYXNlICJvIjoKICAgICAgICAgIHJldHVybiAib3JkaW5hbCI7CiAgICAgICAgY2FzZSAiTCI6CiAgICAgICAgY2FzZSAiTSI6CiAgICAgICAgICByZXR1cm4gIm1vbnRoIjsKICAgICAgICBjYXNlICJ5IjoKICAgICAgICAgIHJldHVybiAieWVhciI7CiAgICAgICAgY2FzZSAiRSI6CiAgICAgICAgY2FzZSAiYyI6CiAgICAgICAgICByZXR1cm4gIndlZWtkYXkiOwogICAgICAgIGNhc2UgIlciOgogICAgICAgICAgcmV0dXJuICJ3ZWVrTnVtYmVyIjsKICAgICAgICBjYXNlICJrIjoKICAgICAgICAgIHJldHVybiAid2Vla1llYXIiOwogICAgICAgIGNhc2UgInEiOgogICAgICAgICAgcmV0dXJuICJxdWFydGVyIjsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgIH07CgogICAgbGV0IHpvbmUgPSBudWxsOwogICAgbGV0IHNwZWNpZmljT2Zmc2V0OwogICAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnopKSB7CiAgICAgIHpvbmUgPSBJQU5BWm9uZS5jcmVhdGUobWF0Y2hlcy56KTsKICAgIH0KCiAgICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuWikpIHsKICAgICAgaWYgKCF6b25lKSB7CiAgICAgICAgem9uZSA9IG5ldyBGaXhlZE9mZnNldFpvbmUobWF0Y2hlcy5aKTsKICAgICAgfQogICAgICBzcGVjaWZpY09mZnNldCA9IG1hdGNoZXMuWjsKICAgIH0KCiAgICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMucSkpIHsKICAgICAgbWF0Y2hlcy5NID0gKG1hdGNoZXMucSAtIDEpICogMyArIDE7CiAgICB9CgogICAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLmgpKSB7CiAgICAgIGlmIChtYXRjaGVzLmggPCAxMiAmJiBtYXRjaGVzLmEgPT09IDEpIHsKICAgICAgICBtYXRjaGVzLmggKz0gMTI7CiAgICAgIH0gZWxzZSBpZiAobWF0Y2hlcy5oID09PSAxMiAmJiBtYXRjaGVzLmEgPT09IDApIHsKICAgICAgICBtYXRjaGVzLmggPSAwOwogICAgICB9CiAgICB9CgogICAgaWYgKG1hdGNoZXMuRyA9PT0gMCAmJiBtYXRjaGVzLnkpIHsKICAgICAgbWF0Y2hlcy55ID0gLW1hdGNoZXMueTsKICAgIH0KCiAgICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMudSkpIHsKICAgICAgbWF0Y2hlcy5TID0gcGFyc2VNaWxsaXMobWF0Y2hlcy51KTsKICAgIH0KCiAgICBjb25zdCB2YWxzID0gT2JqZWN0LmtleXMobWF0Y2hlcykucmVkdWNlKChyLCBrKSA9PiB7CiAgICAgIGNvbnN0IGYgPSB0b0ZpZWxkKGspOwogICAgICBpZiAoZikgewogICAgICAgIHJbZl0gPSBtYXRjaGVzW2tdOwogICAgICB9CgogICAgICByZXR1cm4gcjsKICAgIH0sIHt9KTsKCiAgICByZXR1cm4gW3ZhbHMsIHpvbmUsIHNwZWNpZmljT2Zmc2V0XTsKICB9CgogIGxldCBkdW1teURhdGVUaW1lQ2FjaGUgPSBudWxsOwoKICBmdW5jdGlvbiBnZXREdW1teURhdGVUaW1lKCkgewogICAgaWYgKCFkdW1teURhdGVUaW1lQ2FjaGUpIHsKICAgICAgZHVtbXlEYXRlVGltZUNhY2hlID0gRGF0ZVRpbWUuZnJvbU1pbGxpcygxNTU1NTU1NTU1NTU1KTsKICAgIH0KCiAgICByZXR1cm4gZHVtbXlEYXRlVGltZUNhY2hlOwogIH0KCiAgZnVuY3Rpb24gbWF5YmVFeHBhbmRNYWNyb1Rva2VuKHRva2VuLCBsb2NhbGUpIHsKICAgIGlmICh0b2tlbi5saXRlcmFsKSB7CiAgICAgIHJldHVybiB0b2tlbjsKICAgIH0KCiAgICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4udmFsKTsKICAgIGNvbnN0IHRva2VucyA9IGZvcm1hdE9wdHNUb1Rva2Vucyhmb3JtYXRPcHRzLCBsb2NhbGUpOwoKICAgIGlmICh0b2tlbnMgPT0gbnVsbCB8fCB0b2tlbnMuaW5jbHVkZXModW5kZWZpbmVkKSkgewogICAgICByZXR1cm4gdG9rZW47CiAgICB9CgogICAgcmV0dXJuIHRva2VuczsKICB9CgogIGZ1bmN0aW9uIGV4cGFuZE1hY3JvVG9rZW5zKHRva2VucywgbG9jYWxlKSB7CiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi50b2tlbnMubWFwKCh0KSA9PiBtYXliZUV4cGFuZE1hY3JvVG9rZW4odCwgbG9jYWxlKSkpOwogIH0KCiAgLyoqCiAgICogQHByaXZhdGUKICAgKi8KCiAgZnVuY3Rpb24gZXhwbGFpbkZyb21Ub2tlbnMobG9jYWxlLCBpbnB1dCwgZm9ybWF0KSB7CiAgICBjb25zdCB0b2tlbnMgPSBleHBhbmRNYWNyb1Rva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm9ybWF0KSwgbG9jYWxlKSwKICAgICAgdW5pdHMgPSB0b2tlbnMubWFwKCh0KSA9PiB1bml0Rm9yVG9rZW4odCwgbG9jYWxlKSksCiAgICAgIGRpc3F1YWxpZnlpbmdVbml0ID0gdW5pdHMuZmluZCgodCkgPT4gdC5pbnZhbGlkUmVhc29uKTsKCiAgICBpZiAoZGlzcXVhbGlmeWluZ1VuaXQpIHsKICAgICAgcmV0dXJuIHsgaW5wdXQsIHRva2VucywgaW52YWxpZFJlYXNvbjogZGlzcXVhbGlmeWluZ1VuaXQuaW52YWxpZFJlYXNvbiB9OwogICAgfSBlbHNlIHsKICAgICAgY29uc3QgW3JlZ2V4U3RyaW5nLCBoYW5kbGVyc10gPSBidWlsZFJlZ2V4KHVuaXRzKSwKICAgICAgICByZWdleCA9IFJlZ0V4cChyZWdleFN0cmluZywgImkiKSwKICAgICAgICBbcmF3TWF0Y2hlcywgbWF0Y2hlc10gPSBtYXRjaChpbnB1dCwgcmVnZXgsIGhhbmRsZXJzKSwKICAgICAgICBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldF0gPSBtYXRjaGVzCiAgICAgICAgICA/IGRhdGVUaW1lRnJvbU1hdGNoZXMobWF0Y2hlcykKICAgICAgICAgIDogW251bGwsIG51bGwsIHVuZGVmaW5lZF07CiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eShtYXRjaGVzLCAiYSIpICYmIGhhc093blByb3BlcnR5KG1hdGNoZXMsICJIIikpIHsKICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoCiAgICAgICAgICAiQ2FuJ3QgaW5jbHVkZSBtZXJpZGllbSB3aGVuIHNwZWNpZnlpbmcgMjQtaG91ciBmb3JtYXQiCiAgICAgICAgKTsKICAgICAgfQogICAgICByZXR1cm4geyBpbnB1dCwgdG9rZW5zLCByZWdleCwgcmF3TWF0Y2hlcywgbWF0Y2hlcywgcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldCB9OwogICAgfQogIH0KCiAgZnVuY3Rpb24gcGFyc2VGcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkgewogICAgY29uc3QgeyByZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkUmVhc29uIH0gPSBleHBsYWluRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpOwogICAgcmV0dXJuIFtyZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkUmVhc29uXTsKICB9CgogIGZ1bmN0aW9uIGZvcm1hdE9wdHNUb1Rva2Vucyhmb3JtYXRPcHRzLCBsb2NhbGUpIHsKICAgIGlmICghZm9ybWF0T3B0cykgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBjb25zdCBmb3JtYXR0ZXIgPSBGb3JtYXR0ZXIuY3JlYXRlKGxvY2FsZSwgZm9ybWF0T3B0cyk7CiAgICBjb25zdCBkZiA9IGZvcm1hdHRlci5kdEZvcm1hdHRlcihnZXREdW1teURhdGVUaW1lKCkpOwogICAgY29uc3QgcGFydHMgPSBkZi5mb3JtYXRUb1BhcnRzKCk7CiAgICBjb25zdCByZXNvbHZlZE9wdHMgPSBkZi5yZXNvbHZlZE9wdGlvbnMoKTsKICAgIHJldHVybiBwYXJ0cy5tYXAoKHApID0+IHRva2VuRm9yUGFydChwLCBmb3JtYXRPcHRzLCByZXNvbHZlZE9wdHMpKTsKICB9CgogIGNvbnN0IG5vbkxlYXBMYWRkZXIgPSBbMCwgMzEsIDU5LCA5MCwgMTIwLCAxNTEsIDE4MSwgMjEyLCAyNDMsIDI3MywgMzA0LCAzMzRdLAogICAgbGVhcExhZGRlciA9IFswLCAzMSwgNjAsIDkxLCAxMjEsIDE1MiwgMTgyLCAyMTMsIDI0NCwgMjc0LCAzMDUsIDMzNV07CgogIGZ1bmN0aW9uIHVuaXRPdXRPZlJhbmdlKHVuaXQsIHZhbHVlKSB7CiAgICByZXR1cm4gbmV3IEludmFsaWQoCiAgICAgICJ1bml0IG91dCBvZiByYW5nZSIsCiAgICAgIGB5b3Ugc3BlY2lmaWVkICR7dmFsdWV9IChvZiB0eXBlICR7dHlwZW9mIHZhbHVlfSkgYXMgYSAke3VuaXR9LCB3aGljaCBpcyBpbnZhbGlkYAogICAgKTsKICB9CgogIGZ1bmN0aW9uIGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KSB7CiAgICBjb25zdCBkID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKTsKCiAgICBpZiAoeWVhciA8IDEwMCAmJiB5ZWFyID49IDApIHsKICAgICAgZC5zZXRVVENGdWxsWWVhcihkLmdldFVUQ0Z1bGxZZWFyKCkgLSAxOTAwKTsKICAgIH0KCiAgICBjb25zdCBqcyA9IGQuZ2V0VVRDRGF5KCk7CgogICAgcmV0dXJuIGpzID09PSAwID8gNyA6IGpzOwogIH0KCiAgZnVuY3Rpb24gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSkgewogICAgcmV0dXJuIGRheSArIChpc0xlYXBZZWFyKHllYXIpID8gbGVhcExhZGRlciA6IG5vbkxlYXBMYWRkZXIpW21vbnRoIC0gMV07CiAgfQoKICBmdW5jdGlvbiB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpIHsKICAgIGNvbnN0IHRhYmxlID0gaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyLAogICAgICBtb250aDAgPSB0YWJsZS5maW5kSW5kZXgoKGkpID0+IGkgPCBvcmRpbmFsKSwKICAgICAgZGF5ID0gb3JkaW5hbCAtIHRhYmxlW21vbnRoMF07CiAgICByZXR1cm4geyBtb250aDogbW9udGgwICsgMSwgZGF5IH07CiAgfQoKICAvKioKICAgKiBAcHJpdmF0ZQogICAqLwoKICBmdW5jdGlvbiBncmVnb3JpYW5Ub1dlZWsoZ3JlZ09iaikgewogICAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5IH0gPSBncmVnT2JqLAogICAgICBvcmRpbmFsID0gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSksCiAgICAgIHdlZWtkYXkgPSBkYXlPZldlZWsoeWVhciwgbW9udGgsIGRheSk7CgogICAgbGV0IHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChvcmRpbmFsIC0gd2Vla2RheSArIDEwKSAvIDcpLAogICAgICB3ZWVrWWVhcjsKCiAgICBpZiAod2Vla051bWJlciA8IDEpIHsKICAgICAgd2Vla1llYXIgPSB5ZWFyIC0gMTsKICAgICAgd2Vla051bWJlciA9IHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcik7CiAgICB9IGVsc2UgaWYgKHdlZWtOdW1iZXIgPiB3ZWVrc0luV2Vla1llYXIoeWVhcikpIHsKICAgICAgd2Vla1llYXIgPSB5ZWFyICsgMTsKICAgICAgd2Vla051bWJlciA9IDE7CiAgICB9IGVsc2UgewogICAgICB3ZWVrWWVhciA9IHllYXI7CiAgICB9CgogICAgcmV0dXJuIHsgd2Vla1llYXIsIHdlZWtOdW1iZXIsIHdlZWtkYXksIC4uLnRpbWVPYmplY3QoZ3JlZ09iaikgfTsKICB9CgogIGZ1bmN0aW9uIHdlZWtUb0dyZWdvcmlhbih3ZWVrRGF0YSkgewogICAgY29uc3QgeyB3ZWVrWWVhciwgd2Vla051bWJlciwgd2Vla2RheSB9ID0gd2Vla0RhdGEsCiAgICAgIHdlZWtkYXlPZkphbjQgPSBkYXlPZldlZWsod2Vla1llYXIsIDEsIDQpLAogICAgICB5ZWFySW5EYXlzID0gZGF5c0luWWVhcih3ZWVrWWVhcik7CgogICAgbGV0IG9yZGluYWwgPSB3ZWVrTnVtYmVyICogNyArIHdlZWtkYXkgLSB3ZWVrZGF5T2ZKYW40IC0gMywKICAgICAgeWVhcjsKCiAgICBpZiAob3JkaW5hbCA8IDEpIHsKICAgICAgeWVhciA9IHdlZWtZZWFyIC0gMTsKICAgICAgb3JkaW5hbCArPSBkYXlzSW5ZZWFyKHllYXIpOwogICAgfSBlbHNlIGlmIChvcmRpbmFsID4geWVhckluRGF5cykgewogICAgICB5ZWFyID0gd2Vla1llYXIgKyAxOwogICAgICBvcmRpbmFsIC09IGRheXNJblllYXIod2Vla1llYXIpOwogICAgfSBlbHNlIHsKICAgICAgeWVhciA9IHdlZWtZZWFyOwogICAgfQoKICAgIGNvbnN0IHsgbW9udGgsIGRheSB9ID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKTsKICAgIHJldHVybiB7IHllYXIsIG1vbnRoLCBkYXksIC4uLnRpbWVPYmplY3Qod2Vla0RhdGEpIH07CiAgfQoKICBmdW5jdGlvbiBncmVnb3JpYW5Ub09yZGluYWwoZ3JlZ0RhdGEpIHsKICAgIGNvbnN0IHsgeWVhciwgbW9udGgsIGRheSB9ID0gZ3JlZ0RhdGE7CiAgICBjb25zdCBvcmRpbmFsID0gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSk7CiAgICByZXR1cm4geyB5ZWFyLCBvcmRpbmFsLCAuLi50aW1lT2JqZWN0KGdyZWdEYXRhKSB9OwogIH0KCiAgZnVuY3Rpb24gb3JkaW5hbFRvR3JlZ29yaWFuKG9yZGluYWxEYXRhKSB7CiAgICBjb25zdCB7IHllYXIsIG9yZGluYWwgfSA9IG9yZGluYWxEYXRhOwogICAgY29uc3QgeyBtb250aCwgZGF5IH0gPSB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpOwogICAgcmV0dXJuIHsgeWVhciwgbW9udGgsIGRheSwgLi4udGltZU9iamVjdChvcmRpbmFsRGF0YSkgfTsKICB9CgogIGZ1bmN0aW9uIGhhc0ludmFsaWRXZWVrRGF0YShvYmopIHsKICAgIGNvbnN0IHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoud2Vla1llYXIpLAogICAgICB2YWxpZFdlZWsgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla051bWJlciwgMSwgd2Vla3NJbldlZWtZZWFyKG9iai53ZWVrWWVhcikpLAogICAgICB2YWxpZFdlZWtkYXkgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla2RheSwgMSwgNyk7CgogICAgaWYgKCF2YWxpZFllYXIpIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ3ZWVrWWVhciIsIG9iai53ZWVrWWVhcik7CiAgICB9IGVsc2UgaWYgKCF2YWxpZFdlZWspIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ3ZWVrIiwgb2JqLndlZWspOwogICAgfSBlbHNlIGlmICghdmFsaWRXZWVrZGF5KSB7CiAgICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZSgid2Vla2RheSIsIG9iai53ZWVrZGF5KTsKICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBoYXNJbnZhbGlkT3JkaW5hbERhdGEob2JqKSB7CiAgICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLAogICAgICB2YWxpZE9yZGluYWwgPSBpbnRlZ2VyQmV0d2VlbihvYmoub3JkaW5hbCwgMSwgZGF5c0luWWVhcihvYmoueWVhcikpOwoKICAgIGlmICghdmFsaWRZZWFyKSB7CiAgICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZSgieWVhciIsIG9iai55ZWFyKTsKICAgIH0gZWxzZSBpZiAoIXZhbGlkT3JkaW5hbCkgewogICAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIm9yZGluYWwiLCBvYmoub3JkaW5hbCk7CiAgICB9IGVsc2UgcmV0dXJuIGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEob2JqKSB7CiAgICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLAogICAgICB2YWxpZE1vbnRoID0gaW50ZWdlckJldHdlZW4ob2JqLm1vbnRoLCAxLCAxMiksCiAgICAgIHZhbGlkRGF5ID0gaW50ZWdlckJldHdlZW4ob2JqLmRheSwgMSwgZGF5c0luTW9udGgob2JqLnllYXIsIG9iai5tb250aCkpOwoKICAgIGlmICghdmFsaWRZZWFyKSB7CiAgICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZSgieWVhciIsIG9iai55ZWFyKTsKICAgIH0gZWxzZSBpZiAoIXZhbGlkTW9udGgpIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJtb250aCIsIG9iai5tb250aCk7CiAgICB9IGVsc2UgaWYgKCF2YWxpZERheSkgewogICAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoImRheSIsIG9iai5kYXkpOwogICAgfSBlbHNlIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIGhhc0ludmFsaWRUaW1lRGF0YShvYmopIHsKICAgIGNvbnN0IHsgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0gPSBvYmo7CiAgICBjb25zdCB2YWxpZEhvdXIgPQogICAgICAgIGludGVnZXJCZXR3ZWVuKGhvdXIsIDAsIDIzKSB8fAogICAgICAgIChob3VyID09PSAyNCAmJiBtaW51dGUgPT09IDAgJiYgc2Vjb25kID09PSAwICYmIG1pbGxpc2Vjb25kID09PSAwKSwKICAgICAgdmFsaWRNaW51dGUgPSBpbnRlZ2VyQmV0d2VlbihtaW51dGUsIDAsIDU5KSwKICAgICAgdmFsaWRTZWNvbmQgPSBpbnRlZ2VyQmV0d2VlbihzZWNvbmQsIDAsIDU5KSwKICAgICAgdmFsaWRNaWxsaXNlY29uZCA9IGludGVnZXJCZXR3ZWVuKG1pbGxpc2Vjb25kLCAwLCA5OTkpOwoKICAgIGlmICghdmFsaWRIb3VyKSB7CiAgICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZSgiaG91ciIsIGhvdXIpOwogICAgfSBlbHNlIGlmICghdmFsaWRNaW51dGUpIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJtaW51dGUiLCBtaW51dGUpOwogICAgfSBlbHNlIGlmICghdmFsaWRTZWNvbmQpIHsKICAgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJzZWNvbmQiLCBzZWNvbmQpOwogICAgfSBlbHNlIGlmICghdmFsaWRNaWxsaXNlY29uZCkgewogICAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIm1pbGxpc2Vjb25kIiwgbWlsbGlzZWNvbmQpOwogICAgfSBlbHNlIHJldHVybiBmYWxzZTsKICB9CgogIGNvbnN0IElOVkFMSUQgPSAiSW52YWxpZCBEYXRlVGltZSI7CiAgY29uc3QgTUFYX0RBVEUgPSA4LjY0ZTE1OwoKICBmdW5jdGlvbiB1bnN1cHBvcnRlZFpvbmUoem9uZSkgewogICAgcmV0dXJuIG5ldyBJbnZhbGlkKCJ1bnN1cHBvcnRlZCB6b25lIiwgYHRoZSB6b25lICIke3pvbmUubmFtZX0iIGlzIG5vdCBzdXBwb3J0ZWRgKTsKICB9CgogIC8vIHdlIGNhY2hlIHdlZWsgZGF0YSBvbiB0aGUgRFQgb2JqZWN0IGFuZCB0aGlzIGludGVybWVkaWF0ZXMgdGhlIGNhY2hlCiAgZnVuY3Rpb24gcG9zc2libHlDYWNoZWRXZWVrRGF0YShkdCkgewogICAgaWYgKGR0LndlZWtEYXRhID09PSBudWxsKSB7CiAgICAgIGR0LndlZWtEYXRhID0gZ3JlZ29yaWFuVG9XZWVrKGR0LmMpOwogICAgfQogICAgcmV0dXJuIGR0LndlZWtEYXRhOwogIH0KCiAgLy8gY2xvbmUgcmVhbGx5IG1lYW5zLCAibWFrZSBhIG5ldyBvYmplY3Qgd2l0aCB0aGVzZSBtb2RpZmljYXRpb25zIi4gYWxsICJzZXR0ZXJzIiByZWFsbHkgdXNlIHRoaXMKICAvLyB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IHdoaWxlIG9ubHkgY2hhbmdpbmcgc29tZSBvZiB0aGUgcHJvcGVydGllcwogIGZ1bmN0aW9uIGNsb25lKGluc3QsIGFsdHMpIHsKICAgIGNvbnN0IGN1cnJlbnQgPSB7CiAgICAgIHRzOiBpbnN0LnRzLAogICAgICB6b25lOiBpbnN0LnpvbmUsCiAgICAgIGM6IGluc3QuYywKICAgICAgbzogaW5zdC5vLAogICAgICBsb2M6IGluc3QubG9jLAogICAgICBpbnZhbGlkOiBpbnN0LmludmFsaWQsCiAgICB9OwogICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7IC4uLmN1cnJlbnQsIC4uLmFsdHMsIG9sZDogY3VycmVudCB9KTsKICB9CgogIC8vIGZpbmQgdGhlIHJpZ2h0IG9mZnNldCBhIGdpdmVuIGxvY2FsIHRpbWUuIFRoZSBvIGlucHV0IGlzIG91ciBndWVzcywgd2hpY2ggZGV0ZXJtaW5lcyB3aGljaAogIC8vIG9mZnNldCB3ZSdsbCBwaWNrIGluIGFtYmlndW91cyBjYXNlcyAoZS5nLiB0aGVyZSBhcmUgdHdvIDMgQU1zIGIvYyBGYWxsYmFjayBEU1QpCiAgZnVuY3Rpb24gZml4T2Zmc2V0KGxvY2FsVFMsIG8sIHR6KSB7CiAgICAvLyBPdXIgVVRDIHRpbWUgaXMganVzdCBhIGd1ZXNzIGJlY2F1c2Ugb3VyIG9mZnNldCBpcyBqdXN0IGEgZ3Vlc3MKICAgIGxldCB1dGNHdWVzcyA9IGxvY2FsVFMgLSBvICogNjAgKiAxMDAwOwoKICAgIC8vIFRlc3Qgd2hldGhlciB0aGUgem9uZSBtYXRjaGVzIHRoZSBvZmZzZXQgZm9yIHRoaXMgdHMKICAgIGNvbnN0IG8yID0gdHoub2Zmc2V0KHV0Y0d1ZXNzKTsKCiAgICAvLyBJZiBzbywgb2Zmc2V0IGRpZG4ndCBjaGFuZ2UgYW5kIHdlJ3JlIGRvbmUKICAgIGlmIChvID09PSBvMikgewogICAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvXTsKICAgIH0KCiAgICAvLyBJZiBub3QsIGNoYW5nZSB0aGUgdHMgYnkgdGhlIGRpZmZlcmVuY2UgaW4gdGhlIG9mZnNldAogICAgdXRjR3Vlc3MgLT0gKG8yIC0gbykgKiA2MCAqIDEwMDA7CgogICAgLy8gSWYgdGhhdCBnaXZlcyB1cyB0aGUgbG9jYWwgdGltZSB3ZSB3YW50LCB3ZSdyZSBkb25lCiAgICBjb25zdCBvMyA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7CiAgICBpZiAobzIgPT09IG8zKSB7CiAgICAgIHJldHVybiBbdXRjR3Vlc3MsIG8yXTsKICAgIH0KCiAgICAvLyBJZiBpdCdzIGRpZmZlcmVudCwgd2UncmUgaW4gYSBob2xlIHRpbWUuIFRoZSBvZmZzZXQgaGFzIGNoYW5nZWQsIGJ1dCB0aGUgd2UgZG9uJ3QgYWRqdXN0IHRoZSB0aW1lCiAgICByZXR1cm4gW2xvY2FsVFMgLSBNYXRoLm1pbihvMiwgbzMpICogNjAgKiAxMDAwLCBNYXRoLm1heChvMiwgbzMpXTsKICB9CgogIC8vIGNvbnZlcnQgYW4gZXBvY2ggdGltZXN0YW1wIGludG8gYSBjYWxlbmRhciBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gb2Zmc2V0CiAgZnVuY3Rpb24gdHNUb09iaih0cywgb2Zmc2V0KSB7CiAgICB0cyArPSBvZmZzZXQgKiA2MCAqIDEwMDA7CgogICAgY29uc3QgZCA9IG5ldyBEYXRlKHRzKTsKCiAgICByZXR1cm4gewogICAgICB5ZWFyOiBkLmdldFVUQ0Z1bGxZZWFyKCksCiAgICAgIG1vbnRoOiBkLmdldFVUQ01vbnRoKCkgKyAxLAogICAgICBkYXk6IGQuZ2V0VVRDRGF0ZSgpLAogICAgICBob3VyOiBkLmdldFVUQ0hvdXJzKCksCiAgICAgIG1pbnV0ZTogZC5nZXRVVENNaW51dGVzKCksCiAgICAgIHNlY29uZDogZC5nZXRVVENTZWNvbmRzKCksCiAgICAgIG1pbGxpc2Vjb25kOiBkLmdldFVUQ01pbGxpc2Vjb25kcygpLAogICAgfTsKICB9CgogIC8vIGNvbnZlcnQgYSBjYWxlbmRhciBvYmplY3QgdG8gYSBlcG9jaCB0aW1lc3RhbXAKICBmdW5jdGlvbiBvYmpUb1RTKG9iaiwgb2Zmc2V0LCB6b25lKSB7CiAgICByZXR1cm4gZml4T2Zmc2V0KG9ialRvTG9jYWxUUyhvYmopLCBvZmZzZXQsIHpvbmUpOwogIH0KCiAgLy8gY3JlYXRlIGEgbmV3IERUIGluc3RhbmNlIGJ5IGFkZGluZyBhIGR1cmF0aW9uLCBhZGp1c3RpbmcgZm9yIERTVHMKICBmdW5jdGlvbiBhZGp1c3RUaW1lKGluc3QsIGR1cikgewogICAgY29uc3Qgb1ByZSA9IGluc3QubywKICAgICAgeWVhciA9IGluc3QuYy55ZWFyICsgTWF0aC50cnVuYyhkdXIueWVhcnMpLAogICAgICBtb250aCA9IGluc3QuYy5tb250aCArIE1hdGgudHJ1bmMoZHVyLm1vbnRocykgKyBNYXRoLnRydW5jKGR1ci5xdWFydGVycykgKiAzLAogICAgICBjID0gewogICAgICAgIC4uLmluc3QuYywKICAgICAgICB5ZWFyLAogICAgICAgIG1vbnRoLAogICAgICAgIGRheToKICAgICAgICAgIE1hdGgubWluKGluc3QuYy5kYXksIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSkgKwogICAgICAgICAgTWF0aC50cnVuYyhkdXIuZGF5cykgKwogICAgICAgICAgTWF0aC50cnVuYyhkdXIud2Vla3MpICogNywKICAgICAgfSwKICAgICAgbWlsbGlzVG9BZGQgPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsKICAgICAgICB5ZWFyczogZHVyLnllYXJzIC0gTWF0aC50cnVuYyhkdXIueWVhcnMpLAogICAgICAgIHF1YXJ0ZXJzOiBkdXIucXVhcnRlcnMgLSBNYXRoLnRydW5jKGR1ci5xdWFydGVycyksCiAgICAgICAgbW9udGhzOiBkdXIubW9udGhzIC0gTWF0aC50cnVuYyhkdXIubW9udGhzKSwKICAgICAgICB3ZWVrczogZHVyLndlZWtzIC0gTWF0aC50cnVuYyhkdXIud2Vla3MpLAogICAgICAgIGRheXM6IGR1ci5kYXlzIC0gTWF0aC50cnVuYyhkdXIuZGF5cyksCiAgICAgICAgaG91cnM6IGR1ci5ob3VycywKICAgICAgICBtaW51dGVzOiBkdXIubWludXRlcywKICAgICAgICBzZWNvbmRzOiBkdXIuc2Vjb25kcywKICAgICAgICBtaWxsaXNlY29uZHM6IGR1ci5taWxsaXNlY29uZHMsCiAgICAgIH0pLmFzKCJtaWxsaXNlY29uZHMiKSwKICAgICAgbG9jYWxUUyA9IG9ialRvTG9jYWxUUyhjKTsKCiAgICBsZXQgW3RzLCBvXSA9IGZpeE9mZnNldChsb2NhbFRTLCBvUHJlLCBpbnN0LnpvbmUpOwoKICAgIGlmIChtaWxsaXNUb0FkZCAhPT0gMCkgewogICAgICB0cyArPSBtaWxsaXNUb0FkZDsKICAgICAgLy8gdGhhdCBjb3VsZCBoYXZlIGNoYW5nZWQgdGhlIG9mZnNldCBieSBnb2luZyBvdmVyIGEgRFNULCBidXQgd2Ugd2FudCB0byBrZWVwIHRoZSB0cyB0aGUgc2FtZQogICAgICBvID0gaW5zdC56b25lLm9mZnNldCh0cyk7CiAgICB9CgogICAgcmV0dXJuIHsgdHMsIG8gfTsKICB9CgogIC8vIGhlbHBlciB1c2VmdWwgaW4gdHVybmluZyB0aGUgcmVzdWx0cyBvZiBwYXJzaW5nIGludG8gcmVhbCBkYXRlcwogIC8vIGJ5IGhhbmRsaW5nIHRoZSB6b25lIG9wdGlvbnMKICBmdW5jdGlvbiBwYXJzZURhdGFUb0RhdGVUaW1lKHBhcnNlZCwgcGFyc2VkWm9uZSwgb3B0cywgZm9ybWF0LCB0ZXh0LCBzcGVjaWZpY09mZnNldCkgewogICAgY29uc3QgeyBzZXRab25lLCB6b25lIH0gPSBvcHRzOwogICAgaWYgKChwYXJzZWQgJiYgT2JqZWN0LmtleXMocGFyc2VkKS5sZW5ndGggIT09IDApIHx8IHBhcnNlZFpvbmUpIHsKICAgICAgY29uc3QgaW50ZXJwcmV0YXRpb25ab25lID0gcGFyc2VkWm9uZSB8fCB6b25lLAogICAgICAgIGluc3QgPSBEYXRlVGltZS5mcm9tT2JqZWN0KHBhcnNlZCwgewogICAgICAgICAgLi4ub3B0cywKICAgICAgICAgIHpvbmU6IGludGVycHJldGF0aW9uWm9uZSwKICAgICAgICAgIHNwZWNpZmljT2Zmc2V0LAogICAgICAgIH0pOwogICAgICByZXR1cm4gc2V0Wm9uZSA/IGluc3QgOiBpbnN0LnNldFpvbmUoem9uZSk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgKICAgICAgICBuZXcgSW52YWxpZCgidW5wYXJzYWJsZSIsIGB0aGUgaW5wdXQgIiR7dGV4dH0iIGNhbid0IGJlIHBhcnNlZCBhcyAke2Zvcm1hdH1gKQogICAgICApOwogICAgfQogIH0KCiAgLy8gaWYgeW91IHdhbnQgdG8gb3V0cHV0IGEgdGVjaG5pY2FsIGZvcm1hdCAoZS5nLiBSRkMgMjgyMiksIHRoaXMgaGVscGVyCiAgLy8gaGVscHMgaGFuZGxlIHRoZSBkZXRhaWxzCiAgZnVuY3Rpb24gdG9UZWNoRm9ybWF0KGR0LCBmb3JtYXQsIGFsbG93WiA9IHRydWUpIHsKICAgIHJldHVybiBkdC5pc1ZhbGlkCiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZShMb2NhbGUuY3JlYXRlKCJlbi1VUyIpLCB7CiAgICAgICAgICBhbGxvd1osCiAgICAgICAgICBmb3JjZVNpbXBsZTogdHJ1ZSwKICAgICAgICB9KS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZvcm1hdCkKICAgICAgOiBudWxsOwogIH0KCiAgZnVuY3Rpb24gdG9JU09EYXRlKG8sIGV4dGVuZGVkKSB7CiAgICBjb25zdCBsb25nRm9ybWF0ID0gby5jLnllYXIgPiA5OTk5IHx8IG8uYy55ZWFyIDwgMDsKICAgIGxldCBjID0gIiI7CiAgICBpZiAobG9uZ0Zvcm1hdCAmJiBvLmMueWVhciA+PSAwKSBjICs9ICIrIjsKICAgIGMgKz0gcGFkU3RhcnQoby5jLnllYXIsIGxvbmdGb3JtYXQgPyA2IDogNCk7CgogICAgaWYgKGV4dGVuZGVkKSB7CiAgICAgIGMgKz0gIi0iOwogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5tb250aCk7CiAgICAgIGMgKz0gIi0iOwogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpOwogICAgfSBlbHNlIHsKICAgICAgYyArPSBwYWRTdGFydChvLmMubW9udGgpOwogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpOwogICAgfQogICAgcmV0dXJuIGM7CiAgfQoKICBmdW5jdGlvbiB0b0lTT1RpbWUoCiAgICBvLAogICAgZXh0ZW5kZWQsCiAgICBzdXBwcmVzc1NlY29uZHMsCiAgICBzdXBwcmVzc01pbGxpc2Vjb25kcywKICAgIGluY2x1ZGVPZmZzZXQsCiAgICBleHRlbmRlZFpvbmUKICApIHsKICAgIGxldCBjID0gcGFkU3RhcnQoby5jLmhvdXIpOwogICAgaWYgKGV4dGVuZGVkKSB7CiAgICAgIGMgKz0gIjoiOwogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpOwogICAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8IG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykgewogICAgICAgIGMgKz0gIjoiOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpOwogICAgfQoKICAgIGlmIChvLmMubWlsbGlzZWNvbmQgIT09IDAgfHwgby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7CiAgICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7CgogICAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8ICFzdXBwcmVzc01pbGxpc2Vjb25kcykgewogICAgICAgIGMgKz0gIi4iOwogICAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTsKICAgICAgfQogICAgfQoKICAgIGlmIChpbmNsdWRlT2Zmc2V0KSB7CiAgICAgIGlmIChvLmlzT2Zmc2V0Rml4ZWQgJiYgby5vZmZzZXQgPT09IDAgJiYgIWV4dGVuZGVkWm9uZSkgewogICAgICAgIGMgKz0gIloiOwogICAgICB9IGVsc2UgaWYgKG8ubyA8IDApIHsKICAgICAgICBjICs9ICItIjsKICAgICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoLW8ubyAvIDYwKSk7CiAgICAgICAgYyArPSAiOiI7CiAgICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gJSA2MCkpOwogICAgICB9IGVsc2UgewogICAgICAgIGMgKz0gIisiOwogICAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gLyA2MCkpOwogICAgICAgIGMgKz0gIjoiOwogICAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gJSA2MCkpOwogICAgICB9CiAgICB9CgogICAgaWYgKGV4dGVuZGVkWm9uZSkgewogICAgICBjICs9ICJbIiArIG8uem9uZS5pYW5hTmFtZSArICJdIjsKICAgIH0KICAgIHJldHVybiBjOwogIH0KCiAgLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzCiAgY29uc3QgZGVmYXVsdFVuaXRWYWx1ZXMgPSB7CiAgICAgIG1vbnRoOiAxLAogICAgICBkYXk6IDEsCiAgICAgIGhvdXI6IDAsCiAgICAgIG1pbnV0ZTogMCwKICAgICAgc2Vjb25kOiAwLAogICAgICBtaWxsaXNlY29uZDogMCwKICAgIH0sCiAgICBkZWZhdWx0V2Vla1VuaXRWYWx1ZXMgPSB7CiAgICAgIHdlZWtOdW1iZXI6IDEsCiAgICAgIHdlZWtkYXk6IDEsCiAgICAgIGhvdXI6IDAsCiAgICAgIG1pbnV0ZTogMCwKICAgICAgc2Vjb25kOiAwLAogICAgICBtaWxsaXNlY29uZDogMCwKICAgIH0sCiAgICBkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXMgPSB7CiAgICAgIG9yZGluYWw6IDEsCiAgICAgIGhvdXI6IDAsCiAgICAgIG1pbnV0ZTogMCwKICAgICAgc2Vjb25kOiAwLAogICAgICBtaWxsaXNlY29uZDogMCwKICAgIH07CgogIC8vIFVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzLCBzb3J0ZWQgYnkgYmlnbmVzcwogIGNvbnN0IG9yZGVyZWRVbml0cyA9IFsieWVhciIsICJtb250aCIsICJkYXkiLCAiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIm1pbGxpc2Vjb25kIl0sCiAgICBvcmRlcmVkV2Vla1VuaXRzID0gWwogICAgICAid2Vla1llYXIiLAogICAgICAid2Vla051bWJlciIsCiAgICAgICJ3ZWVrZGF5IiwKICAgICAgImhvdXIiLAogICAgICAibWludXRlIiwKICAgICAgInNlY29uZCIsCiAgICAgICJtaWxsaXNlY29uZCIsCiAgICBdLAogICAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFsieWVhciIsICJvcmRpbmFsIiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJtaWxsaXNlY29uZCJdOwoKICAvLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHMKICBmdW5jdGlvbiBub3JtYWxpemVVbml0KHVuaXQpIHsKICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7CiAgICAgIHllYXI6ICJ5ZWFyIiwKICAgICAgeWVhcnM6ICJ5ZWFyIiwKICAgICAgbW9udGg6ICJtb250aCIsCiAgICAgIG1vbnRoczogIm1vbnRoIiwKICAgICAgZGF5OiAiZGF5IiwKICAgICAgZGF5czogImRheSIsCiAgICAgIGhvdXI6ICJob3VyIiwKICAgICAgaG91cnM6ICJob3VyIiwKICAgICAgbWludXRlOiAibWludXRlIiwKICAgICAgbWludXRlczogIm1pbnV0ZSIsCiAgICAgIHF1YXJ0ZXI6ICJxdWFydGVyIiwKICAgICAgcXVhcnRlcnM6ICJxdWFydGVyIiwKICAgICAgc2Vjb25kOiAic2Vjb25kIiwKICAgICAgc2Vjb25kczogInNlY29uZCIsCiAgICAgIG1pbGxpc2Vjb25kOiAibWlsbGlzZWNvbmQiLAogICAgICBtaWxsaXNlY29uZHM6ICJtaWxsaXNlY29uZCIsCiAgICAgIHdlZWtkYXk6ICJ3ZWVrZGF5IiwKICAgICAgd2Vla2RheXM6ICJ3ZWVrZGF5IiwKICAgICAgd2Vla251bWJlcjogIndlZWtOdW1iZXIiLAogICAgICB3ZWVrc251bWJlcjogIndlZWtOdW1iZXIiLAogICAgICB3ZWVrbnVtYmVyczogIndlZWtOdW1iZXIiLAogICAgICB3ZWVreWVhcjogIndlZWtZZWFyIiwKICAgICAgd2Vla3llYXJzOiAid2Vla1llYXIiLAogICAgICBvcmRpbmFsOiAib3JkaW5hbCIsCiAgICB9W3VuaXQudG9Mb3dlckNhc2UoKV07CgogICAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTsKCiAgICByZXR1cm4gbm9ybWFsaXplZDsKICB9CgogIC8vIHRoaXMgaXMgYSBkdW1iZWQgZG93biB2ZXJzaW9uIG9mIGZyb21PYmplY3QoKSB0aGF0IHJ1bnMgYWJvdXQgNjAlIGZhc3RlcgogIC8vIGJ1dCBkb2Vzbid0IGRvIGFueSB2YWxpZGF0aW9uLCBtYWtlcyBhIGJ1bmNoIG9mIGFzc3VtcHRpb25zIGFib3V0IHdoYXQgdW5pdHMKICAvLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLgogIGZ1bmN0aW9uIHF1aWNrRFQob2JqLCBvcHRzKSB7CiAgICBjb25zdCB6b25lID0gbm9ybWFsaXplWm9uZShvcHRzLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSwKICAgICAgbG9jID0gTG9jYWxlLmZyb21PYmplY3Qob3B0cyksCiAgICAgIHRzTm93ID0gU2V0dGluZ3Mubm93KCk7CgogICAgbGV0IHRzLCBvOwoKICAgIC8vIGFzc3VtZSB3ZSBoYXZlIHRoZSBoaWdoZXItb3JkZXIgdW5pdHMKICAgIGlmICghaXNVbmRlZmluZWQob2JqLnllYXIpKSB7CiAgICAgIGZvciAoY29uc3QgdSBvZiBvcmRlcmVkVW5pdHMpIHsKICAgICAgICBpZiAoaXNVbmRlZmluZWQob2JqW3VdKSkgewogICAgICAgICAgb2JqW3VdID0gZGVmYXVsdFVuaXRWYWx1ZXNbdV07CiAgICAgICAgfQogICAgICB9CgogICAgICBjb25zdCBpbnZhbGlkID0gaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEob2JqKSB8fCBoYXNJbnZhbGlkVGltZURhdGEob2JqKTsKICAgICAgaWYgKGludmFsaWQpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChpbnZhbGlkKTsKICAgICAgfQoKICAgICAgY29uc3Qgb2Zmc2V0UHJvdmlzID0gem9uZS5vZmZzZXQodHNOb3cpOwogICAgICBbdHMsIG9dID0gb2JqVG9UUyhvYmosIG9mZnNldFByb3Zpcywgem9uZSk7CiAgICB9IGVsc2UgewogICAgICB0cyA9IHRzTm93OwogICAgfQoKICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoeyB0cywgem9uZSwgbG9jLCBvIH0pOwogIH0KCiAgZnVuY3Rpb24gZGlmZlJlbGF0aXZlKHN0YXJ0LCBlbmQsIG9wdHMpIHsKICAgIGNvbnN0IHJvdW5kID0gaXNVbmRlZmluZWQob3B0cy5yb3VuZCkgPyB0cnVlIDogb3B0cy5yb3VuZCwKICAgICAgZm9ybWF0ID0gKGMsIHVuaXQpID0+IHsKICAgICAgICBjID0gcm91bmRUbyhjLCByb3VuZCB8fCBvcHRzLmNhbGVuZGFyeSA/IDAgOiAyLCB0cnVlKTsKICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBlbmQubG9jLmNsb25lKG9wdHMpLnJlbEZvcm1hdHRlcihvcHRzKTsKICAgICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChjLCB1bml0KTsKICAgICAgfSwKICAgICAgZGlmZmVyID0gKHVuaXQpID0+IHsKICAgICAgICBpZiAob3B0cy5jYWxlbmRhcnkpIHsKICAgICAgICAgIGlmICghZW5kLmhhc1NhbWUoc3RhcnQsIHVuaXQpKSB7CiAgICAgICAgICAgIHJldHVybiBlbmQuc3RhcnRPZih1bml0KS5kaWZmKHN0YXJ0LnN0YXJ0T2YodW5pdCksIHVuaXQpLmdldCh1bml0KTsKICAgICAgICAgIH0gZWxzZSByZXR1cm4gMDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGVuZC5kaWZmKHN0YXJ0LCB1bml0KS5nZXQodW5pdCk7CiAgICAgICAgfQogICAgICB9OwoKICAgIGlmIChvcHRzLnVuaXQpIHsKICAgICAgcmV0dXJuIGZvcm1hdChkaWZmZXIob3B0cy51bml0KSwgb3B0cy51bml0KTsKICAgIH0KCiAgICBmb3IgKGNvbnN0IHVuaXQgb2Ygb3B0cy51bml0cykgewogICAgICBjb25zdCBjb3VudCA9IGRpZmZlcih1bml0KTsKICAgICAgaWYgKE1hdGguYWJzKGNvdW50KSA+PSAxKSB7CiAgICAgICAgcmV0dXJuIGZvcm1hdChjb3VudCwgdW5pdCk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBmb3JtYXQoc3RhcnQgPiBlbmQgPyAtMCA6IDAsIG9wdHMudW5pdHNbb3B0cy51bml0cy5sZW5ndGggLSAxXSk7CiAgfQoKICBmdW5jdGlvbiBsYXN0T3B0cyhhcmdMaXN0KSB7CiAgICBsZXQgb3B0cyA9IHt9LAogICAgICBhcmdzOwogICAgaWYgKGFyZ0xpc3QubGVuZ3RoID4gMCAmJiB0eXBlb2YgYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdID09PSAib2JqZWN0IikgewogICAgICBvcHRzID0gYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdOwogICAgICBhcmdzID0gQXJyYXkuZnJvbShhcmdMaXN0KS5zbGljZSgwLCBhcmdMaXN0Lmxlbmd0aCAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgYXJncyA9IEFycmF5LmZyb20oYXJnTGlzdCk7CiAgICB9CiAgICByZXR1cm4gW29wdHMsIGFyZ3NdOwogIH0KCiAgLyoqCiAgICogQSBEYXRlVGltZSBpcyBhbiBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZSBhbmQgYWNjb21wYW55aW5nIG1ldGhvZHMuIEl0IGNvbnRhaW5zIGNsYXNzIGFuZCBpbnN0YW5jZSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLgogICAqCiAgICogQSBEYXRlVGltZSBjb21wcmlzZXMgb2Y6CiAgICogKiBBIHRpbWVzdGFtcC4gRWFjaCBEYXRlVGltZSBpbnN0YW5jZSByZWZlcnMgdG8gYSBzcGVjaWZpYyBtaWxsaXNlY29uZCBvZiB0aGUgVW5peCBlcG9jaC4KICAgKiAqIEEgdGltZSB6b25lLiBFYWNoIGluc3RhbmNlIGlzIGNvbnNpZGVyZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBzcGVjaWZpYyB6b25lIChieSBkZWZhdWx0IHRoZSBsb2NhbCBzeXN0ZW0ncyB6b25lKS4KICAgKiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0aGF0IGVmZmVjdCBob3cgb3V0cHV0IHN0cmluZ3MgYXJlIGZvcm1hdHRlZCwgc3VjaCBhcyBgbG9jYWxlYCwgYG51bWJlcmluZ1N5c3RlbWAsIGFuZCBgb3V0cHV0Q2FsZW5kYXJgLgogICAqCiAgICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgZnVuY3Rpb25hbGl0eSBpdCBwcm92aWRlczoKICAgKgogICAqICogKipDcmVhdGlvbioqOiBUbyBjcmVhdGUgYSBEYXRlVGltZSBmcm9tIGl0cyBjb21wb25lbnRzLCB1c2Ugb25lIG9mIGl0cyBmYWN0b3J5IGNsYXNzIG1ldGhvZHM6IHtAbGluayBEYXRlVGltZS5sb2NhbH0sIHtAbGluayBEYXRlVGltZS51dGN9LCBhbmQgKG1vc3QgZmxleGlibHkpIHtAbGluayBEYXRlVGltZS5mcm9tT2JqZWN0fS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgc3RhbmRhcmQgc3RyaW5nIGZvcm1hdCwgdXNlIHtAbGluayBEYXRlVGltZS5mcm9tSVNPfSwge0BsaW5rIERhdGVUaW1lLmZyb21IVFRQfSwgYW5kIHtAbGluayBEYXRlVGltZS5mcm9tUkZDMjgyMn0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIGN1c3RvbSBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lLmZyb21Gb3JtYXR9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBuYXRpdmUgSlMgZGF0ZSwgdXNlIHtAbGluayBEYXRlVGltZS5mcm9tSlNEYXRlfS4KICAgKiAqICoqR3JlZ29yaWFuIGNhbGVuZGFyIGFuZCB0aW1lKio6IFRvIGV4YW1pbmUgdGhlIEdyZWdvcmlhbiBwcm9wZXJ0aWVzIG9mIGEgRGF0ZVRpbWUgaW5kaXZpZHVhbGx5IChpLmUgYXMgb3Bwb3NlZCB0byBjb2xsZWN0aXZlbHkgdGhyb3VnaCB7QGxpbmsgRGF0ZVRpbWUjdG9PYmplY3R9KSwgdXNlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjeWVhcn0sIHtAbGluayBEYXRlVGltZSNtb250aH0sCiAgICoge0BsaW5rIERhdGVUaW1lI2RheX0sIHtAbGluayBEYXRlVGltZSNob3VyfSwge0BsaW5rIERhdGVUaW1lI21pbnV0ZX0sIHtAbGluayBEYXRlVGltZSNzZWNvbmR9LCB7QGxpbmsgRGF0ZVRpbWUjbWlsbGlzZWNvbmR9IGFjY2Vzc29ycy4KICAgKiAqICoqV2VlayBjYWxlbmRhcioqOiBGb3IgSVNPIHdlZWsgY2FsZW5kYXIgYXR0cmlidXRlcywgc2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjd2Vla1llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjd2Vla051bWJlcn0sIGFuZCB7QGxpbmsgRGF0ZVRpbWUjd2Vla2RheX0gYWNjZXNzb3JzLgogICAqICogKipDb25maWd1cmF0aW9uKiogU2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjbG9jYWxlfSBhbmQge0BsaW5rIERhdGVUaW1lI251bWJlcmluZ1N5c3RlbX0gYWNjZXNzb3JzLgogICAqICogKipUcmFuc2Zvcm1hdGlvbioqOiBUbyB0cmFuc2Zvcm0gdGhlIERhdGVUaW1lIGludG8gb3RoZXIgRGF0ZVRpbWVzLCB1c2Uge0BsaW5rIERhdGVUaW1lI3NldH0sIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0sIHtAbGluayBEYXRlVGltZSNzZXRab25lfSwge0BsaW5rIERhdGVUaW1lI3NldExvY2FsZX0sIHtAbGluayBEYXRlVGltZS5wbHVzfSwge0BsaW5rIERhdGVUaW1lI21pbnVzfSwge0BsaW5rIERhdGVUaW1lI2VuZE9mfSwge0BsaW5rIERhdGVUaW1lI3N0YXJ0T2Z9LCB7QGxpbmsgRGF0ZVRpbWUjdG9VVEN9LCBhbmQge0BsaW5rIERhdGVUaW1lI3RvTG9jYWx9LgogICAqICogKipPdXRwdXQqKjogVG8gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN0b1JlbGF0aXZlfSwge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmVDYWxlbmRhcn0sIHtAbGluayBEYXRlVGltZSN0b0pTT059LCB7QGxpbmsgRGF0ZVRpbWUjdG9JU099LCB7QGxpbmsgRGF0ZVRpbWUjdG9IVFRQfSwge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSwge0BsaW5rIERhdGVUaW1lI3RvUkZDMjgyMn0sIHtAbGluayBEYXRlVGltZSN0b1N0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0sIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30gYW5kIHtAbGluayBEYXRlVGltZSN0b0pTRGF0ZX0uCiAgICoKICAgKiBUaGVyZSdzIHBsZW50eSBvdGhlcnMgZG9jdW1lbnRlZCBiZWxvdy4gSW4gYWRkaXRpb24sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHN1YnRsZXIgdG9waWNzIGxpa2UgaW50ZXJuYXRpb25hbGl6YXRpb24sIHRpbWUgem9uZXMsIGFsdGVybmF0aXZlIGNhbGVuZGFycywgdmFsaWRpdHksIGFuZCBzbyBvbiwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLgogICAqLwogIGNsYXNzIERhdGVUaW1lIHsKICAgIC8qKgogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIGNvbnN0cnVjdG9yKGNvbmZpZykgewogICAgICBjb25zdCB6b25lID0gY29uZmlnLnpvbmUgfHwgU2V0dGluZ3MuZGVmYXVsdFpvbmU7CgogICAgICBsZXQgaW52YWxpZCA9CiAgICAgICAgY29uZmlnLmludmFsaWQgfHwKICAgICAgICAoTnVtYmVyLmlzTmFOKGNvbmZpZy50cykgPyBuZXcgSW52YWxpZCgiaW52YWxpZCBpbnB1dCIpIDogbnVsbCkgfHwKICAgICAgICAoIXpvbmUuaXNWYWxpZCA/IHVuc3VwcG9ydGVkWm9uZSh6b25lKSA6IG51bGwpOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLnRzID0gaXNVbmRlZmluZWQoY29uZmlnLnRzKSA/IFNldHRpbmdzLm5vdygpIDogY29uZmlnLnRzOwoKICAgICAgbGV0IGMgPSBudWxsLAogICAgICAgIG8gPSBudWxsOwogICAgICBpZiAoIWludmFsaWQpIHsKICAgICAgICBjb25zdCB1bmNoYW5nZWQgPSBjb25maWcub2xkICYmIGNvbmZpZy5vbGQudHMgPT09IHRoaXMudHMgJiYgY29uZmlnLm9sZC56b25lLmVxdWFscyh6b25lKTsKCiAgICAgICAgaWYgKHVuY2hhbmdlZCkgewogICAgICAgICAgW2MsIG9dID0gW2NvbmZpZy5vbGQuYywgY29uZmlnLm9sZC5vXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc3Qgb3QgPSB6b25lLm9mZnNldCh0aGlzLnRzKTsKICAgICAgICAgIGMgPSB0c1RvT2JqKHRoaXMudHMsIG90KTsKICAgICAgICAgIGludmFsaWQgPSBOdW1iZXIuaXNOYU4oYy55ZWFyKSA/IG5ldyBJbnZhbGlkKCJpbnZhbGlkIGlucHV0IikgOiBudWxsOwogICAgICAgICAgYyA9IGludmFsaWQgPyBudWxsIDogYzsKICAgICAgICAgIG8gPSBpbnZhbGlkID8gbnVsbCA6IG90OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICAgKi8KICAgICAgdGhpcy5fem9uZSA9IHpvbmU7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMubG9jID0gY29uZmlnLmxvYyB8fCBMb2NhbGUuY3JlYXRlKCk7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMuaW52YWxpZCA9IGludmFsaWQ7CiAgICAgIC8qKgogICAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAgICovCiAgICAgIHRoaXMud2Vla0RhdGEgPSBudWxsOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmMgPSBjOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLm8gPSBvOwogICAgICAvKioKICAgICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgICAqLwogICAgICB0aGlzLmlzTHV4b25EYXRlVGltZSA9IHRydWU7CiAgICB9CgogICAgLy8gQ09OU1RSVUNUCgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmb3IgdGhlIGN1cnJlbnQgaW5zdGFudCwgaW4gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS4KICAgICAqCiAgICAgKiBVc2UgU2V0dGluZ3MgdG8gb3ZlcnJpZGUgdGhlc2UgZGVmYXVsdCB2YWx1ZXMgaWYgbmVlZGVkLgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvL34+IG5vdyBpbiB0aGUgSVNPIGZvcm1hdAogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBub3coKSB7CiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe30pOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbG9jYWwgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeWVhcl0gLSBUaGUgY2FsZW5kYXIgeWVhci4gSWYgb21pdHRlZCAoYXMgaW4sIGNhbGwgYGxvY2FsKClgIHdpdGggbm8gYXJndW1lbnRzKSwgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHVzZWQKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbW9udGg9MV0gLSBUaGUgbW9udGgsIDEtaW5kZXhlZAogICAgICogQHBhcmFtIHtudW1iZXJ9IFtkYXk9MV0gLSBUaGUgZGF5IG9mIHRoZSBtb250aCwgMS1pbmRleGVkCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWUKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CiAgICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiBub3cKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKHsgem9uZTogIkFtZXJpY2EvTmV3X1lvcmsiIH0pICAgICAgLy9+PiBub3csIGluIFVTIGVhc3QgY29hc3QgdGltZQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDEtMDFUMDA6MDA6MDAKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgeyBsb2NhbGU6ICJmciIgfSkgICAgIC8vfj4gMjAxNy0wMy0xMlQwMDowMDowMCwgd2l0aCBhIEZyZW5jaCBsb2NhbGUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgeyB6b25lOiAidXRjIiB9KSAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMCwgaW4gVVRDCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUpICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCkgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSkgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwLjc2NQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBsb2NhbCgpIHsKICAgICAgY29uc3QgW29wdHMsIGFyZ3NdID0gbGFzdE9wdHMoYXJndW1lbnRzKSwKICAgICAgICBbeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXSA9IGFyZ3M7CiAgICAgIHJldHVybiBxdWlja0RUKHsgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0sIG9wdHMpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgaW4gVVRDCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3llYXJdIC0gVGhlIGNhbGVuZGFyIHllYXIuIElmIG9taXR0ZWQgKGFzIGluLCBjYWxsIGB1dGMoKWAgd2l0aCBubyBhcmd1bWVudHMpLCB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZAogICAgICogQHBhcmFtIHtudW1iZXJ9IFttb250aD0xXSAtIFRoZSBtb250aCwgMS1pbmRleGVkCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RheT0xXSAtIFRoZSBkYXkgb2YgdGhlIG1vbnRoCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWUKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CiAgICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTkKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sb2NhbGVdIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IG5vdwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgeyBsb2NhbGU6ICJmciIgfSkgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwWiB3aXRoIGEgRnJlbmNoIGxvY2FsZQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwWgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSwgeyBsb2NhbGU6ICJmciIgfSkgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwLjc2NVogd2l0aCBhIEZyZW5jaCBsb2NhbGUKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzdGF0aWMgdXRjKCkgewogICAgICBjb25zdCBbb3B0cywgYXJnc10gPSBsYXN0T3B0cyhhcmd1bWVudHMpLAogICAgICAgIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdID0gYXJnczsKCiAgICAgIG9wdHMuem9uZSA9IEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZTsKICAgICAgcmV0dXJuIHF1aWNrRFQoeyB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQgfSwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdC4gVXNlcyB0aGUgZGVmYXVsdCB6b25lLgogICAgICogQHBhcmFtIHtEYXRlfSBkYXRlIC0gYSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0CiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG8KICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzdGF0aWMgZnJvbUpTRGF0ZShkYXRlLCBvcHRpb25zID0ge30pIHsKICAgICAgY29uc3QgdHMgPSBpc0RhdGUoZGF0ZSkgPyBkYXRlLnZhbHVlT2YoKSA6IE5hTjsKICAgICAgaWYgKE51bWJlci5pc05hTih0cykpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgiaW52YWxpZCBpbnB1dCIpOwogICAgICB9CgogICAgICBjb25zdCB6b25lVG9Vc2UgPSBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpOwogICAgICBpZiAoIXpvbmVUb1VzZS5pc1ZhbGlkKSB7CiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQodW5zdXBwb3J0ZWRab25lKHpvbmVUb1VzZSkpOwogICAgICB9CgogICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsKICAgICAgICB0czogdHMsCiAgICAgICAgem9uZTogem9uZVRvVXNlLAogICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksCiAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS4KICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaWxsaXNlY29uZHMgLSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgMTk3MCBVVEMKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50bwogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tTWlsbGlzKG1pbGxpc2Vjb25kcywgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGlmICghaXNOdW1iZXIobWlsbGlzZWNvbmRzKSkgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigKICAgICAgICAgIGBmcm9tTWlsbGlzIHJlcXVpcmVzIGEgbnVtZXJpY2FsIGlucHV0LCBidXQgcmVjZWl2ZWQgYSAke3R5cGVvZiBtaWxsaXNlY29uZHN9IHdpdGggdmFsdWUgJHttaWxsaXNlY29uZHN9YAogICAgICAgICk7CiAgICAgIH0gZWxzZSBpZiAobWlsbGlzZWNvbmRzIDwgLU1BWF9EQVRFIHx8IG1pbGxpc2Vjb25kcyA+IE1BWF9EQVRFKSB7CiAgICAgICAgLy8gdGhpcyBpc24ndCBwZXJmZWN0IGJlY2F1c2UgYmVjYXVzZSB3ZSBjYW4gc3RpbGwgZW5kIHVwIG91dCBvZiByYW5nZSBiZWNhdXNlIG9mIGFkZGl0aW9uYWwgc2hpZnRpbmcsIGJ1dCBpdCdzIGEgc3RhcnQKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgiVGltZXN0YW1wIG91dCBvZiByYW5nZSIpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoewogICAgICAgICAgdHM6IG1pbGxpc2Vjb25kcywKICAgICAgICAgIHpvbmU6IG5vcm1hbGl6ZVpvbmUob3B0aW9ucy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksCiAgICAgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpLAogICAgICAgIH0pOwogICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS4KICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzZWNvbmRzIC0gYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAxOTcwIFVUQwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZQogICAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdGlvbnMuem9uZT0nbG9jYWwnXSAtIHRoZSB6b25lIHRvIHBsYWNlIHRoZSBEYXRlVGltZSBpbnRvCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgc3RhdGljIGZyb21TZWNvbmRzKHNlY29uZHMsIG9wdGlvbnMgPSB7fSkgewogICAgICBpZiAoIWlzTnVtYmVyKHNlY29uZHMpKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCIpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoewogICAgICAgICAgdHM6IHNlY29uZHMgKiAxMDAwLAogICAgICAgICAgem9uZTogbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSwKICAgICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcicgYW5kICdob3VyJyB3aXRoIHJlYXNvbmFibGUgZGVmYXVsdHMuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gdGhlIG9iamVjdCB0byBjcmVhdGUgdGhlIERhdGVUaW1lIGZyb20KICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoueWVhciAtIGEgeWVhciwgc3VjaCBhcyAxOTg3CiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1vbnRoIC0gYSBtb250aCwgMS0xMgogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5kYXkgLSBhIGRheSBvZiB0aGUgbW9udGgsIDEtMzEsIGRlcGVuZGluZyBvbiB0aGUgbW9udGgKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoub3JkaW5hbCAtIGRheSBvZiB0aGUgeWVhciwgMS0zNjUgb3IgMzY2CiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtZZWFyIC0gYW4gSVNPIHdlZWsgeWVhcgogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrTnVtYmVyIC0gYW4gSVNPIHdlZWsgbnVtYmVyLCBiZXR3ZWVuIDEgYW5kIDUyIG9yIDUzLCBkZXBlbmRpbmcgb24gdGhlIHllYXIKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla2RheSAtIGFuIElTTyB3ZWVrZGF5LCAxLTcsIHdoZXJlIDEgaXMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheQogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3VyIC0gaG91ciBvZiB0aGUgZGF5LCAwLTIzCiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZSAtIG1pbnV0ZSBvZiB0aGUgaG91ciwgMC01OQogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmQgLSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgMC01OQogICAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taWxsaXNlY29uZCAtIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIDAtOTk5CiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBpbnRlcnByZXQgdGhlIG51bWJlcnMgaW4gdGhlIGNvbnRleHQgb2YgYSBwYXJ0aWN1bGFyIHpvbmUuIENhbiB0YWtlIGFueSB2YWx1ZSB0YWtlbiBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gc2V0Wm9uZSgpCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogMTk4MiwgbW9udGg6IDUsIGRheTogMjV9KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTA1LTI1JwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IDE5ODIgfSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wMS0wMScKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0pIC8vfj4gdG9kYXkgYXQgMTA6MjY6MDYKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ3V0YycgfSksCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICdsb2NhbCcgfSkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ0FtZXJpY2EvTmV3X1lvcmsnIH0pCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgd2Vla1llYXI6IDIwMTYsIHdlZWtOdW1iZXI6IDIsIHdlZWtkYXk6IDMgfSkudG9JU09EYXRlKCkgLy89PiAnMjAxNi0wMS0xMycKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzdGF0aWMgZnJvbU9iamVjdChvYmosIG9wdHMgPSB7fSkgewogICAgICBvYmogPSBvYmogfHwge307CiAgICAgIGNvbnN0IHpvbmVUb1VzZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7CiAgICAgIGlmICghem9uZVRvVXNlLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZVRvVXNlKSk7CiAgICAgIH0KCiAgICAgIGNvbnN0IHRzTm93ID0gU2V0dGluZ3Mubm93KCksCiAgICAgICAgb2Zmc2V0UHJvdmlzID0gIWlzVW5kZWZpbmVkKG9wdHMuc3BlY2lmaWNPZmZzZXQpCiAgICAgICAgICA/IG9wdHMuc3BlY2lmaWNPZmZzZXQKICAgICAgICAgIDogem9uZVRvVXNlLm9mZnNldCh0c05vdyksCiAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZVVuaXQpLAogICAgICAgIGNvbnRhaW5zT3JkaW5hbCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpLAogICAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLAogICAgICAgIGNvbnRhaW5zR3JlZ29yTUQgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5tb250aCkgfHwgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSwKICAgICAgICBjb250YWluc0dyZWdvciA9IGNvbnRhaW5zR3JlZ29yWWVhciB8fCBjb250YWluc0dyZWdvck1ELAogICAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyLAogICAgICAgIGxvYyA9IExvY2FsZS5mcm9tT2JqZWN0KG9wdHMpOwoKICAgICAgLy8gY2FzZXM6CiAgICAgIC8vIGp1c3QgYSB3ZWVrZGF5IC0+IHRoaXMgd2VlaydzIGluc3RhbmNlIG9mIHRoYXQgd2Vla2RheSwgbm8gd29ycmllcwogICAgICAvLyAoZ3JlZ29yaWFuIGRhdGEgb3Igb3JkaW5hbCkgKyAod2Vla1llYXIgb3Igd2Vla051bWJlcikgLT4gZXJyb3IKICAgICAgLy8gKGdyZWdvcmlhbiBtb250aCBvciBkYXkpICsgb3JkaW5hbCAtPiBlcnJvcgogICAgICAvLyBvdGhlcndpc2UganVzdCB1c2Ugd2Vla3Mgb3Igb3JkaW5hbHMgb3IgZ3JlZ29yaWFuLCBkZXBlbmRpbmcgb24gd2hhdCdzIHNwZWNpZmllZAoKICAgICAgaWYgKChjb250YWluc0dyZWdvciB8fCBjb250YWluc09yZGluYWwpICYmIGRlZmluaXRlV2Vla0RlZikgewogICAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigKICAgICAgICAgICJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzIgogICAgICAgICk7CiAgICAgIH0KCiAgICAgIGlmIChjb250YWluc0dyZWdvck1EICYmIGNvbnRhaW5zT3JkaW5hbCkgewogICAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigiQ2FuJ3QgbWl4IG9yZGluYWwgZGF0ZXMgd2l0aCBtb250aC9kYXkiKTsKICAgICAgfQoKICAgICAgY29uc3QgdXNlV2Vla0RhdGEgPSBkZWZpbml0ZVdlZWtEZWYgfHwgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiAhY29udGFpbnNHcmVnb3IpOwoKICAgICAgLy8gY29uZmlndXJlIG91cnNlbHZlcyB0byBkZWFsIHdpdGggZ3JlZ29yaWFuIGRhdGVzIG9yIHdlZWsgc3R1ZmYKICAgICAgbGV0IHVuaXRzLAogICAgICAgIGRlZmF1bHRWYWx1ZXMsCiAgICAgICAgb2JqTm93ID0gdHNUb09iaih0c05vdywgb2Zmc2V0UHJvdmlzKTsKICAgICAgaWYgKHVzZVdlZWtEYXRhKSB7CiAgICAgICAgdW5pdHMgPSBvcmRlcmVkV2Vla1VuaXRzOwogICAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0V2Vla1VuaXRWYWx1ZXM7CiAgICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9XZWVrKG9iak5vdyk7CiAgICAgIH0gZWxzZSBpZiAoY29udGFpbnNPcmRpbmFsKSB7CiAgICAgICAgdW5pdHMgPSBvcmRlcmVkT3JkaW5hbFVuaXRzOwogICAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXM7CiAgICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9PcmRpbmFsKG9iak5vdyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdW5pdHMgPSBvcmRlcmVkVW5pdHM7CiAgICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRVbml0VmFsdWVzOwogICAgICB9CgogICAgICAvLyBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIG1pc3Npbmcgc3R1ZmYKICAgICAgbGV0IGZvdW5kRmlyc3QgPSBmYWxzZTsKICAgICAgZm9yIChjb25zdCB1IG9mIHVuaXRzKSB7CiAgICAgICAgY29uc3QgdiA9IG5vcm1hbGl6ZWRbdV07CiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2KSkgewogICAgICAgICAgZm91bmRGaXJzdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIGlmIChmb3VuZEZpcnN0KSB7CiAgICAgICAgICBub3JtYWxpemVkW3VdID0gZGVmYXVsdFZhbHVlc1t1XTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbm9ybWFsaXplZFt1XSA9IG9iak5vd1t1XTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgdmFsdWVzIHdlIGhhdmUgYXJlIGluIHJhbmdlCiAgICAgIGNvbnN0IGhpZ2hlck9yZGVySW52YWxpZCA9IHVzZVdlZWtEYXRhCiAgICAgICAgICA/IGhhc0ludmFsaWRXZWVrRGF0YShub3JtYWxpemVkKQogICAgICAgICAgOiBjb250YWluc09yZGluYWwKICAgICAgICAgID8gaGFzSW52YWxpZE9yZGluYWxEYXRhKG5vcm1hbGl6ZWQpCiAgICAgICAgICA6IGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG5vcm1hbGl6ZWQpLAogICAgICAgIGludmFsaWQgPSBoaWdoZXJPcmRlckludmFsaWQgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG5vcm1hbGl6ZWQpOwoKICAgICAgaWYgKGludmFsaWQpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChpbnZhbGlkKTsKICAgICAgfQoKICAgICAgLy8gY29tcHV0ZSB0aGUgYWN0dWFsIHRpbWUKICAgICAgY29uc3QgZ3JlZ29yaWFuID0gdXNlV2Vla0RhdGEKICAgICAgICAgID8gd2Vla1RvR3JlZ29yaWFuKG5vcm1hbGl6ZWQpCiAgICAgICAgICA6IGNvbnRhaW5zT3JkaW5hbAogICAgICAgICAgPyBvcmRpbmFsVG9HcmVnb3JpYW4obm9ybWFsaXplZCkKICAgICAgICAgIDogbm9ybWFsaXplZCwKICAgICAgICBbdHNGaW5hbCwgb2Zmc2V0RmluYWxdID0gb2JqVG9UUyhncmVnb3JpYW4sIG9mZnNldFByb3Zpcywgem9uZVRvVXNlKSwKICAgICAgICBpbnN0ID0gbmV3IERhdGVUaW1lKHsKICAgICAgICAgIHRzOiB0c0ZpbmFsLAogICAgICAgICAgem9uZTogem9uZVRvVXNlLAogICAgICAgICAgbzogb2Zmc2V0RmluYWwsCiAgICAgICAgICBsb2MsCiAgICAgICAgfSk7CgogICAgICAvLyBncmVnb3JpYW4gZGF0YSArIHdlZWtkYXkgc2VydmVzIG9ubHkgdG8gdmFsaWRhdGUKICAgICAgaWYgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiBjb250YWluc0dyZWdvciAmJiBvYmoud2Vla2RheSAhPT0gaW5zdC53ZWVrZGF5KSB7CiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoCiAgICAgICAgICAibWlzbWF0Y2hlZCB3ZWVrZGF5IiwKICAgICAgICAgIGB5b3UgY2FuJ3Qgc3BlY2lmeSBib3RoIGEgd2Vla2RheSBvZiAke25vcm1hbGl6ZWQud2Vla2RheX0gYW5kIGEgZGF0ZSBvZiAke2luc3QudG9JU08oKX1gCiAgICAgICAgKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGluc3Q7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIElTTyA4NjAxIHN0cmluZwogICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZQogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMycpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcsIHtzZXRab25lOiB0cnVlfSkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzJywge3pvbmU6ICd1dGMnfSkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtVzA1LTQnKQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMgPSB7fSkgewogICAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZUlTT0RhdGUodGV4dCk7CiAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsICJJU08gODYwMSIsIHRleHQpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBSRkMgMjgyMiBzdHJpbmcKICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIFJGQyAyODIyIHN0cmluZwogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZS4gU2luY2UgdGhlIG9mZnNldCBpcyBhbHdheXMgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcgaXRzZWxmLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLgogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCcyNSBOb3YgMjAxNiAxMzoyMzoxMiBHTVQnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJ0ZyaSwgMjUgTm92IDIwMTYgMTM6MjM6MTIgKzA2MDAnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzIFonKQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tUkZDMjgyMih0ZXh0LCBvcHRzID0ge30pIHsKICAgICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VSRkMyODIyRGF0ZSh0ZXh0KTsKICAgICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgIlJGQyAyODIyIiwgdGV4dCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIEhUVFAgaGVhZGVyIGRhdGUKICAgICAqIEBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMy5odG1sI3NlYzMuMy4xCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBIVFRQIGhlYWRlciBkYXRlCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgogICAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSBIVFRQIGRhdGVzIGFyZSBhbHdheXMgaW4gVVRDLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLgogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggdGhlIGZpeGVkLW9mZnNldCB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nLiBGb3IgSFRUUCBkYXRlcywgdGhpcyBpcyBhbHdheXMgVVRDLCBzbyB0aGlzIG9wdGlvbiBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgdGhlIGB6b25lYCBvcHRpb24gdG8gJ3V0YycsIGJ1dCB0aGlzIG9wdGlvbiBpcyBpbmNsdWRlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCBzaW1pbGFyIG1ldGhvZHMuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSFRUUCgnU3VuLCAwNiBOb3YgMTk5NCAwODo0OTozNyBHTVQnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1bmRheSwgMDYtTm92LTk0IDA4OjQ5OjM3IEdNVCcpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSFRUUCgnU3VuIE5vdiAgNiAwODo0OTozNyAxOTk0JykKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzdGF0aWMgZnJvbUhUVFAodGV4dCwgb3B0cyA9IHt9KSB7CiAgICAgIGNvbnN0IFt2YWxzLCBwYXJzZWRab25lXSA9IHBhcnNlSFRUUERhdGUodGV4dCk7CiAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsICJIVFRQIiwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIGlucHV0IHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZy4KICAgICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZS4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvcGFyc2luZz9pZD10YWJsZS1vZi10b2tlbnMpLgogICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCB0aGUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGluIChzZWUgdGhlIGxpbmsgYmVsb3cgZm9yIHRoZSBmb3JtYXRzKQogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byB0aGlzIHpvbmUKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSBhIGxvY2FsZSBzdHJpbmcgdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyBsb2NhbGUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIHJlc3VsdGluZyBEYXRlVGltZSB0byB0aGlzIG51bWJlcmluZyBzeXN0ZW0KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cyA9IHt9KSB7CiAgICAgIGlmIChpc1VuZGVmaW5lZCh0ZXh0KSB8fCBpc1VuZGVmaW5lZChmbXQpKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJmcm9tRm9ybWF0IHJlcXVpcmVzIGFuIGlucHV0IHN0cmluZyBhbmQgYSBmb3JtYXQiKTsKICAgICAgfQoKICAgICAgY29uc3QgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsIH0gPSBvcHRzLAogICAgICAgIGxvY2FsZVRvVXNlID0gTG9jYWxlLmZyb21PcHRzKHsKICAgICAgICAgIGxvY2FsZSwKICAgICAgICAgIG51bWJlcmluZ1N5c3RlbSwKICAgICAgICAgIGRlZmF1bHRUb0VOOiB0cnVlLAogICAgICAgIH0pLAogICAgICAgIFt2YWxzLCBwYXJzZWRab25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZF0gPSBwYXJzZUZyb21Ub2tlbnMobG9jYWxlVG9Vc2UsIHRleHQsIGZtdCk7CiAgICAgIGlmIChpbnZhbGlkKSB7CiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgYGZvcm1hdCAke2ZtdH1gLCB0ZXh0LCBzcGVjaWZpY09mZnNldCk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBkZXByZWNhdGVkIHVzZSBmcm9tRm9ybWF0IGluc3RlYWQKICAgICAqLwogICAgc3RhdGljIGZyb21TdHJpbmcodGV4dCwgZm10LCBvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodGV4dCwgZm10LCBvcHRzKTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBTUUwgZGF0ZSwgdGltZSwgb3IgZGF0ZXRpbWUKICAgICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZQogICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgogICAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIHVzZSB0aGlzIHpvbmUgaWYgbm8gb2Zmc2V0IGlzIHNwZWNpZmllZCBpbiB0aGUgaW5wdXQgc3RyaW5nIGl0c2VsZi4gV2lsbCBhbHNvIGNvbnZlcnQgdGhlIERhdGVUaW1lIHRvIHRoaXMgem9uZQogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZQogICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIHRvIHRoaXMgbnVtYmVyaW5nIHN5c3RlbQogICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1JykKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDInKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIrMDY6MDAnKQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIgQW1lcmljYS9Mb3NfQW5nZWxlcycpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJywgeyBzZXRab25lOiB0cnVlIH0pCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MicsIHsgem9uZTogJ0FtZXJpY2EvTG9zX0FuZ2VsZXMnIH0pCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcwOToxMjozNC4zNDInKQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBmcm9tU1FMKHRleHQsIG9wdHMgPSB7fSkgewogICAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZVNRTCh0ZXh0KTsKICAgICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgIlNRTCIsIHRleHQpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGFuIGludmFsaWQgRGF0ZVRpbWUuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBEYXRlVGltZSBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50LgogICAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbgogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXRpYyBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24gPSBudWxsKSB7CiAgICAgIGlmICghcmVhc29uKSB7CiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJuZWVkIHRvIHNwZWNpZnkgYSByZWFzb24gdGhlIERhdGVUaW1lIGlzIGludmFsaWQiKTsKICAgICAgfQoKICAgICAgY29uc3QgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTsKCiAgICAgIGlmIChTZXR0aW5ncy50aHJvd09uSW52YWxpZCkgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0ZVRpbWVFcnJvcihpbnZhbGlkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsgaW52YWxpZCB9KTsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIGluc3RhbmNlIG9mIERhdGVUaW1lLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzCiAgICAgKiBAcGFyYW0ge29iamVjdH0gbwogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgc3RhdGljIGlzRGF0ZVRpbWUobykgewogICAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uRGF0ZVRpbWUpIHx8IGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogUHJvZHVjZSB0aGUgZm9ybWF0IHN0cmluZyBmb3IgYSBzZXQgb2Ygb3B0aW9ucwogICAgICogQHBhcmFtIGZvcm1hdE9wdHMKICAgICAqIEBwYXJhbSBsb2NhbGVPcHRzCiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfQogICAgICovCiAgICBzdGF0aWMgcGFyc2VGb3JtYXRGb3JPcHRzKGZvcm1hdE9wdHMsIGxvY2FsZU9wdHMgPSB7fSkgewogICAgICBjb25zdCB0b2tlbkxpc3QgPSBmb3JtYXRPcHRzVG9Ub2tlbnMoZm9ybWF0T3B0cywgTG9jYWxlLmZyb21PYmplY3QobG9jYWxlT3B0cykpOwogICAgICByZXR1cm4gIXRva2VuTGlzdCA/IG51bGwgOiB0b2tlbkxpc3QubWFwKCh0KSA9PiAodCA/IHQudmFsIDogbnVsbCkpLmpvaW4oIiIpOwogICAgfQoKICAgIC8qKgogICAgICogUHJvZHVjZSB0aGUgdGhlIGZ1bGx5IGV4cGFuZGVkIGZvcm1hdCB0b2tlbiBmb3IgdGhlIGxvY2FsZQogICAgICogRG9lcyBOT1QgcXVvdGUgY2hhcmFjdGVycywgc28gcXVvdGVkIHRva2VucyB3aWxsIG5vdCByb3VuZCB0cmlwIGNvcnJlY3RseQogICAgICogQHBhcmFtIGZtdAogICAgICogQHBhcmFtIGxvY2FsZU9wdHMKICAgICAqIEByZXR1cm5zIHtzdHJpbmd9CiAgICAgKi8KICAgIHN0YXRpYyBleHBhbmRGb3JtYXQoZm10LCBsb2NhbGVPcHRzID0ge30pIHsKICAgICAgY29uc3QgZXhwYW5kZWQgPSBleHBhbmRNYWNyb1Rva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm10KSwgTG9jYWxlLmZyb21PYmplY3QobG9jYWxlT3B0cykpOwogICAgICByZXR1cm4gZXhwYW5kZWQubWFwKCh0KSA9PiB0LnZhbCkuam9pbigiIik7CiAgICB9CgogICAgLy8gSU5GTwoKICAgIC8qKgogICAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LgogICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5JwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNywgNCkuZ2V0KCdtb250aCcpOyAvLz0+IDcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnZGF5Jyk7IC8vPT4gNAogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICBnZXQodW5pdCkgewogICAgICByZXR1cm4gdGhpc1t1bml0XTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQuIEludmFsaWQgRGF0ZVRpbWVzIG9jY3VyIHdoZW46CiAgICAgKiAqIFRoZSBEYXRlVGltZSB3YXMgY3JlYXRlZCBmcm9tIGludmFsaWQgY2FsZW5kYXIgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIDEzdGggbW9udGggb3IgRmVicnVhcnkgMzAKICAgICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGJ5IGFuIG9wZXJhdGlvbiBvbiBhbm90aGVyIGludmFsaWQgZGF0ZQogICAgICogQHR5cGUge2Jvb2xlYW59CiAgICAgKi8KICAgIGdldCBpc1ZhbGlkKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBpbnZhbGlkUmVhc29uKCkgewogICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIERhdGVUaW1lIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEYXRlVGltZSBpcyB2YWxpZAogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGxvY2FsZSBvZiBhIERhdGVUaW1lLCBzdWNoICdlbi1HQicuIFRoZSBsb2NhbGUgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lCiAgICAgKgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IGxvY2FsZSgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLmxvY2FsZSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG51bWJlcmluZyBzeXN0ZW0gb2YgYSBEYXRlVGltZSwgc3VjaCAnYmVuZycuIFRoZSBudW1iZXJpbmcgc3lzdGVtIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZQogICAgICoKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBudW1iZXJpbmdTeXN0ZW0oKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBvdXRwdXQgY2FsZW5kYXIgb2YgYSBEYXRlVGltZSwgc3VjaCAnaXNsYW1pYycuIFRoZSBvdXRwdXQgY2FsZW5kYXIgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lCiAgICAgKgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IG91dHB1dENhbGVuZGFyKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXIgOiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAdHlwZSB7Wm9uZX0KICAgICAqLwogICAgZ2V0IHpvbmUoKSB7CiAgICAgIHJldHVybiB0aGlzLl96b25lOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSB0aW1lIHpvbmUuCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgem9uZU5hbWUoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnpvbmUubmFtZSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHllYXIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS55ZWFyIC8vPT4gMjAxNwogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IHllYXIoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMueWVhciA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcXVhcnRlcgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnF1YXJ0ZXIgLy89PiAyCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgcXVhcnRlcigpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IE1hdGguY2VpbCh0aGlzLmMubW9udGggLyAzKSA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbW9udGggKDEtMTIpLgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm1vbnRoIC8vPT4gNQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IG1vbnRoKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1vbnRoIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoICgxLTMwaXNoKS4KICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5kYXkgLy89PiAyNQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IGRheSgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5kYXkgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGhvdXIgb2YgdGhlIGRheSAoMC0yMykuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSkuaG91ciAvLz0+IDkKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCBob3VyKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmhvdXIgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG1pbnV0ZSBvZiB0aGUgaG91ciAoMC01OSkuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzApLm1pbnV0ZSAvLz0+IDMwCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgbWludXRlKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1pbnV0ZSA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgc2Vjb25kIG9mIHRoZSBtaW51dGUgKDAtNTkpLgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwLCA1Mikuc2Vjb25kIC8vPT4gNTIKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCBzZWNvbmQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMuc2Vjb25kIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kICgwLTk5OSkuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzAsIDUyLCA2NTQpLm1pbGxpc2Vjb25kIC8vPT4gNjU0CiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgbWlsbGlzZWNvbmQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWlsbGlzZWNvbmQgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHdlZWsgeWVhcgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAxMiwgMzEpLndlZWtZZWFyIC8vPT4gMjAxNQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IHdlZWtZZWFyKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrWWVhciA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgd2VlayBudW1iZXIgb2YgdGhlIHdlZWsgeWVhciAoMS01MmlzaCkuCiAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS53ZWVrTnVtYmVyIC8vPT4gMjEKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCB3ZWVrTnVtYmVyKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrTnVtYmVyIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsuCiAgICAgKiAxIGlzIE1vbmRheSBhbmQgNyBpcyBTdW5kYXkKICAgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTEsIDMxKS53ZWVrZGF5IC8vPT4gNAogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IHdlZWtkYXkoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtkYXkgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG9yZGluYWwgKG1lYW5pbmcgdGhlIGRheSBvZiB0aGUgeWVhcikKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5vcmRpbmFsIC8vPT4gMTQ1CiAgICAgKiBAdHlwZSB7bnVtYmVyfERhdGVUaW1lfQogICAgICovCiAgICBnZXQgb3JkaW5hbCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IGdyZWdvcmlhblRvT3JkaW5hbCh0aGlzLmMpLm9yZGluYWwgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHNob3J0IG1vbnRoIG5hbWUsIHN1Y2ggYXMgJ09jdCcuCiAgICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhTaG9ydCAvLz0+IE9jdAogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IG1vbnRoU2hvcnQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLm1vbnRocygic2hvcnQiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy5tb250aCAtIDFdIDogbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgbG9uZyBtb250aCBuYW1lLCBzdWNoIGFzICdPY3RvYmVyJy4KICAgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS5tb250aExvbmcgLy89PiBPY3RvYmVyCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgbW9udGhMb25nKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby5tb250aHMoImxvbmciLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy5tb250aCAtIDFdIDogbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgc2hvcnQgd2Vla2RheSwgc3VjaCBhcyAnTW9uJy4KICAgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5U2hvcnQgLy89PiBNb24KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCB3ZWVrZGF5U2hvcnQoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLndlZWtkYXlzKCJzaG9ydCIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLndlZWtkYXkgLSAxXSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIGxvbmcgd2Vla2RheSwgc3VjaCBhcyAnTW9uZGF5Jy4KICAgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5TG9uZyAvLz0+IE1vbmRheQogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgZ2V0IHdlZWtkYXlMb25nKCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby53ZWVrZGF5cygibG9uZyIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLndlZWtkYXkgLSAxXSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIFVUQyBvZmZzZXQgb2YgdGhpcyBEYXRlVGltZSBpbiBtaW51dGVzCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5vZmZzZXQgLy89PiAtMjQwCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5vZmZzZXQgLy89PiAwCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgb2Zmc2V0KCkgewogICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gK3RoaXMubyA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgc2hvcnQgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgIkVTVCIgb3IgIkVEVCIuCiAgICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIGdldCBvZmZzZXROYW1lU2hvcnQoKSB7CiAgICAgIGlmICh0aGlzLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywgewogICAgICAgICAgZm9ybWF0OiAic2hvcnQiLAogICAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSwKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBsb25nIGh1bWFuIG5hbWUgZm9yIHRoZSB6b25lJ3MgY3VycmVudCBvZmZzZXQsIGZvciBleGFtcGxlICJFYXN0ZXJuIFN0YW5kYXJkIFRpbWUiIG9yICJFYXN0ZXJuIERheWxpZ2h0IFRpbWUiLgogICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCiAgICAgKiBAdHlwZSB7c3RyaW5nfQogICAgICovCiAgICBnZXQgb2Zmc2V0TmFtZUxvbmcoKSB7CiAgICAgIGlmICh0aGlzLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywgewogICAgICAgICAgZm9ybWF0OiAibG9uZyIsCiAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLAogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgd2hldGhlciB0aGlzIHpvbmUncyBvZmZzZXQgZXZlciBjaGFuZ2VzLCBhcyBpbiBhIERTVC4KICAgICAqIEB0eXBlIHtib29sZWFufQogICAgICovCiAgICBnZXQgaXNPZmZzZXRGaXhlZCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuem9uZS5pc1VuaXZlcnNhbCA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgaW4gYSBEU1QuCiAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KICAgICAqLwogICAgZ2V0IGlzSW5EU1QoKSB7CiAgICAgIGlmICh0aGlzLmlzT2Zmc2V0Rml4ZWQpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoeyBtb250aDogMSwgZGF5OiAxIH0pLm9mZnNldCB8fAogICAgICAgICAgdGhpcy5vZmZzZXQgPiB0aGlzLnNldCh7IG1vbnRoOiA1IH0pLm9mZnNldAogICAgICAgICk7CiAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aG9zZSBEYXRlVGltZXMgd2hpY2ggaGF2ZSB0aGUgc2FtZSBsb2NhbCB0aW1lIGFzIHRoaXMgRGF0ZVRpbWUsIGJ1dCBhIGRpZmZlcmVudCBvZmZzZXQgZnJvbSBVVEMKICAgICAqIGluIHRoaXMgRGF0ZVRpbWUncyB6b25lLiBEdXJpbmcgRFNUIGNoYW5nZXMgbG9jYWwgdGltZSBjYW4gYmUgYW1iaWd1b3VzLCBmb3IgZXhhbXBsZQogICAgICogYDIwMjMtMTAtMjlUMDI6MzA6MDBgIGluIGBFdXJvcGUvQmVybGluYCBjYW4gaGF2ZSBvZmZzZXQgYCswMTowMGAgb3IgYCswMjowMGAuCiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiBib3RoIHBvc3NpYmxlIERhdGVUaW1lcyBpZiB0aGlzIERhdGVUaW1lJ3MgbG9jYWwgdGltZSBpcyBhbWJpZ3VvdXMuCiAgICAgKiBAcmV0dXJucyB7RGF0ZVRpbWVbXX0KICAgICAqLwogICAgZ2V0UG9zc2libGVPZmZzZXRzKCkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCB0aGlzLmlzT2Zmc2V0Rml4ZWQpIHsKICAgICAgICByZXR1cm4gW3RoaXNdOwogICAgICB9CiAgICAgIGNvbnN0IGRheU1zID0gODY0MDAwMDA7CiAgICAgIGNvbnN0IG1pbnV0ZU1zID0gNjAwMDA7CiAgICAgIGNvbnN0IGxvY2FsVFMgPSBvYmpUb0xvY2FsVFModGhpcy5jKTsKICAgICAgY29uc3Qgb0VhcmxpZXIgPSB0aGlzLnpvbmUub2Zmc2V0KGxvY2FsVFMgLSBkYXlNcyk7CiAgICAgIGNvbnN0IG9MYXRlciA9IHRoaXMuem9uZS5vZmZzZXQobG9jYWxUUyArIGRheU1zKTsKCiAgICAgIGNvbnN0IG8xID0gdGhpcy56b25lLm9mZnNldChsb2NhbFRTIC0gb0VhcmxpZXIgKiBtaW51dGVNcyk7CiAgICAgIGNvbnN0IG8yID0gdGhpcy56b25lLm9mZnNldChsb2NhbFRTIC0gb0xhdGVyICogbWludXRlTXMpOwogICAgICBpZiAobzEgPT09IG8yKSB7CiAgICAgICAgcmV0dXJuIFt0aGlzXTsKICAgICAgfQogICAgICBjb25zdCB0czEgPSBsb2NhbFRTIC0gbzEgKiBtaW51dGVNczsKICAgICAgY29uc3QgdHMyID0gbG9jYWxUUyAtIG8yICogbWludXRlTXM7CiAgICAgIGNvbnN0IGMxID0gdHNUb09iaih0czEsIG8xKTsKICAgICAgY29uc3QgYzIgPSB0c1RvT2JqKHRzMiwgbzIpOwogICAgICBpZiAoCiAgICAgICAgYzEuaG91ciA9PT0gYzIuaG91ciAmJgogICAgICAgIGMxLm1pbnV0ZSA9PT0gYzIubWludXRlICYmCiAgICAgICAgYzEuc2Vjb25kID09PSBjMi5zZWNvbmQgJiYKICAgICAgICBjMS5taWxsaXNlY29uZCA9PT0gYzIubWlsbGlzZWNvbmQKICAgICAgKSB7CiAgICAgICAgcmV0dXJuIFtjbG9uZSh0aGlzLCB7IHRzOiB0czEgfSksIGNsb25lKHRoaXMsIHsgdHM6IHRzMiB9KV07CiAgICAgIH0KICAgICAgcmV0dXJuIFt0aGlzXTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIERhdGVUaW1lIGlzIGluIGEgbGVhcCB5ZWFyLCBmYWxzZSBvdGhlcndpc2UKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYpLmlzSW5MZWFwWWVhciAvLz0+IHRydWUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLmlzSW5MZWFwWWVhciAvLz0+IGZhbHNlCiAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KICAgICAqLwogICAgZ2V0IGlzSW5MZWFwWWVhcigpIHsKICAgICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyBtb250aAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMikuZGF5c0luTW9udGggLy89PiAyOQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMykuZGF5c0luTW9udGggLy89PiAzMQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgZ2V0IGRheXNJbk1vbnRoKCkgewogICAgICByZXR1cm4gZGF5c0luTW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyB5ZWFyCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2KS5kYXlzSW5ZZWFyIC8vPT4gMzY2CiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDEzKS5kYXlzSW5ZZWFyIC8vPT4gMzY1CiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICBnZXQgZGF5c0luWWVhcigpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IGRheXNJblllYXIodGhpcy55ZWFyKSA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB3ZWVrcyBpbiB0aGlzIERhdGVUaW1lJ3MgeWVhcgogICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDA0KS53ZWVrc0luV2Vla1llYXIgLy89PiA1MwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykud2Vla3NJbldlZWtZZWFyIC8vPT4gNTIKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIGdldCB3ZWVrc0luV2Vla1llYXIoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB3ZWVrc0luV2Vla1llYXIodGhpcy53ZWVrWWVhcikgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSByZXNvbHZlZCBJbnRsIG9wdGlvbnMgZm9yIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBiZWhhdmlvciBvZiBmb3JtYXR0aW5nIG1ldGhvZHMKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gdGhlIHNhbWUgb3B0aW9ucyBhcyB0b0xvY2FsZVN0cmluZwogICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICovCiAgICByZXNvbHZlZExvY2FsZU9wdGlvbnMob3B0cyA9IHt9KSB7CiAgICAgIGNvbnN0IHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBGb3JtYXR0ZXIuY3JlYXRlKAogICAgICAgIHRoaXMubG9jLmNsb25lKG9wdHMpLAogICAgICAgIG9wdHMKICAgICAgKS5yZXNvbHZlZE9wdGlvbnModGhpcyk7CiAgICAgIHJldHVybiB7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcjogY2FsZW5kYXIgfTsKICAgIH0KCiAgICAvLyBUUkFOU0ZPUk0KCiAgICAvKioKICAgICAqICJTZXQiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gVVRDLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCiAgICAgKgogICAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0oJ3V0YycpCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29mZnNldD0wXSAtIG9wdGlvbmFsbHksIGFuIG9mZnNldCBmcm9tIFVUQyBpbiBtaW51dGVzCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHM9e31dIC0gb3B0aW9ucyB0byBwYXNzIHRvIGBzZXRab25lKClgCiAgICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgdG9VVEMob2Zmc2V0ID0gMCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLnNldFpvbmUoRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKG9mZnNldCksIG9wdHMpOwogICAgfQoKICAgIC8qKgogICAgICogIlNldCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byB0aGUgaG9zdCdzIGxvY2FsIHpvbmUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS4KICAgICAqCiAgICAgKiBFcXVpdmFsZW50IHRvIGBzZXRab25lKCdsb2NhbCcpYAogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHRvTG9jYWwoKSB7CiAgICAgIHJldHVybiB0aGlzLnNldFpvbmUoU2V0dGluZ3MuZGVmYXVsdFpvbmUpOwogICAgfQoKICAgIC8qKgogICAgICogIlNldCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBzcGVjaWZpZWQgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLgogICAgICoKICAgICAqIEJ5IGRlZmF1bHQsIHRoZSBzZXR0ZXIga2VlcHMgdGhlIHVuZGVybHlpbmcgdGltZSB0aGUgc2FtZSAoYXMgaW4sIHRoZSBzYW1lIHRpbWVzdGFtcCksIGJ1dCB0aGUgbmV3IGluc3RhbmNlIHdpbGwgcmVwb3J0IGRpZmZlcmVudCBsb2NhbCB0aW1lcyBhbmQgY29uc2lkZXIgRFNUcyB3aGVuIG1ha2luZyBjb21wdXRhdGlvbnMsIGFzIHdpdGgge0BsaW5rIERhdGVUaW1lI3BsdXN9LiBZb3UgbWF5IHdpc2ggdG8gdXNlIHtAbGluayBEYXRlVGltZSN0b0xvY2FsfSBhbmQge0BsaW5rIERhdGVUaW1lI3RvVVRDfSB3aGljaCBwcm92aWRlIHNpbXBsZSBjb252ZW5pZW5jZSB3cmFwcGVycyBmb3IgY29tbW9ubHkgdXNlZCB6b25lcy4KICAgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gYSB6b25lIGlkZW50aWZpZXIuIEFzIGEgc3RyaW5nLCB0aGF0IGNhbiBiZSBhbnkgSUFOQSB6b25lIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBlbnZpcm9ubWVudCwgb3IgYSBmaXhlZC1vZmZzZXQgbmFtZSBvZiB0aGUgZm9ybSAnVVRDKzMnLCBvciB0aGUgc3RyaW5ncyAnbG9jYWwnIG9yICd1dGMnLiBZb3UgbWF5IGFsc28gc3VwcGx5IGFuIGluc3RhbmNlIG9mIGEge0BsaW5rIERhdGVUaW1lI1pvbmV9IGNsYXNzLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmtlZXBMb2NhbFRpbWU9ZmFsc2VdIC0gSWYgdHJ1ZSwgYWRqdXN0IHRoZSB1bmRlcmx5aW5nIHRpbWUgc28gdGhhdCB0aGUgbG9jYWwgdGltZSBzdGF5cyB0aGUgc2FtZSwgYnV0IGluIHRoZSB0YXJnZXQgem9uZS4gWW91IHNob3VsZCByYXJlbHkgbmVlZCB0aGlzLgogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHNldFpvbmUoem9uZSwgeyBrZWVwTG9jYWxUaW1lID0gZmFsc2UsIGtlZXBDYWxlbmRhclRpbWUgPSBmYWxzZSB9ID0ge30pIHsKICAgICAgem9uZSA9IG5vcm1hbGl6ZVpvbmUoem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpOwogICAgICBpZiAoem9uZS5lcXVhbHModGhpcy56b25lKSkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9IGVsc2UgaWYgKCF6b25lLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZSkpOwogICAgICB9IGVsc2UgewogICAgICAgIGxldCBuZXdUUyA9IHRoaXMudHM7CiAgICAgICAgaWYgKGtlZXBMb2NhbFRpbWUgfHwga2VlcENhbGVuZGFyVGltZSkgewogICAgICAgICAgY29uc3Qgb2Zmc2V0R3Vlc3MgPSB6b25lLm9mZnNldCh0aGlzLnRzKTsKICAgICAgICAgIGNvbnN0IGFzT2JqID0gdGhpcy50b09iamVjdCgpOwogICAgICAgICAgW25ld1RTXSA9IG9ialRvVFMoYXNPYmosIG9mZnNldEd1ZXNzLCB6b25lKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdHM6IG5ld1RTLCB6b25lIH0pOwogICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0IiB0aGUgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG9yIG91dHB1dENhbGVuZGFyLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllcyAtIHRoZSBwcm9wZXJ0aWVzIHRvIHNldAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnJlY29uZmlndXJlKHsgbG9jYWxlOiAnZW4tR0InIH0pCiAgICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgcmVjb25maWd1cmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7CiAgICAgIGNvbnN0IGxvYyA9IHRoaXMubG9jLmNsb25lKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyIH0pOwogICAgICByZXR1cm4gY2xvbmUodGhpcywgeyBsb2MgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0IiB0aGUgbG9jYWxlLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCiAgICAgKiBKdXN0IGEgY29udmVuaWVudCBhbGlhcyBmb3IgcmVjb25maWd1cmUoeyBsb2NhbGUgfSkKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5zZXRMb2NhbGUoJ2VuLUdCJykKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBzZXRMb2NhbGUobG9jYWxlKSB7CiAgICAgIHJldHVybiB0aGlzLnJlY29uZmlndXJlKHsgbG9jYWxlIH0pOwogICAgfQoKICAgIC8qKgogICAgICogIlNldCIgdGhlIHZhbHVlcyBvZiBzcGVjaWZpZWQgdW5pdHMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS4KICAgICAqIFlvdSBjYW4gb25seSBzZXQgdW5pdHMgd2l0aCB0aGlzIG1ldGhvZDsgZm9yICJzZXR0aW5nIiBtZXRhZGF0YSwgc2VlIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0gYW5kIHtAbGluayBEYXRlVGltZSNzZXRab25lfS4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVycwogICAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAxNyB9KQogICAgICogQGV4YW1wbGUgZHQuc2V0KHsgaG91cjogOCwgbWludXRlOiAzMCB9KQogICAgICogQGV4YW1wbGUgZHQuc2V0KHsgd2Vla2RheTogNSB9KQogICAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAwNSwgb3JkaW5hbDogMjM0IH0pCiAgICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgc2V0KHZhbHVlcykgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgogICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplT2JqZWN0KHZhbHVlcywgbm9ybWFsaXplVW5pdCksCiAgICAgICAgc2V0dGluZ1dlZWtTdHVmZiA9CiAgICAgICAgICAhaXNVbmRlZmluZWQobm9ybWFsaXplZC53ZWVrWWVhcikgfHwKICAgICAgICAgICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtOdW1iZXIpIHx8CiAgICAgICAgICAhaXNVbmRlZmluZWQobm9ybWFsaXplZC53ZWVrZGF5KSwKICAgICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSwKICAgICAgICBjb250YWluc0dyZWdvclllYXIgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC55ZWFyKSwKICAgICAgICBjb250YWluc0dyZWdvck1EID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQubW9udGgpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSksCiAgICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCwKICAgICAgICBkZWZpbml0ZVdlZWtEZWYgPSBub3JtYWxpemVkLndlZWtZZWFyIHx8IG5vcm1hbGl6ZWQud2Vla051bWJlcjsKCiAgICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHsKICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoCiAgICAgICAgICAiQ2FuJ3QgbWl4IHdlZWtZZWFyL3dlZWtOdW1iZXIgdW5pdHMgd2l0aCB5ZWFyL21vbnRoL2RheSBvciBvcmRpbmFscyIKICAgICAgICApOwogICAgICB9CgogICAgICBpZiAoY29udGFpbnNHcmVnb3JNRCAmJiBjb250YWluc09yZGluYWwpIHsKICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5Iik7CiAgICAgIH0KCiAgICAgIGxldCBtaXhlZDsKICAgICAgaWYgKHNldHRpbmdXZWVrU3R1ZmYpIHsKICAgICAgICBtaXhlZCA9IHdlZWtUb0dyZWdvcmlhbih7IC4uLmdyZWdvcmlhblRvV2Vlayh0aGlzLmMpLCAuLi5ub3JtYWxpemVkIH0pOwogICAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpKSB7CiAgICAgICAgbWl4ZWQgPSBvcmRpbmFsVG9HcmVnb3JpYW4oeyAuLi5ncmVnb3JpYW5Ub09yZGluYWwodGhpcy5jKSwgLi4ubm9ybWFsaXplZCB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBtaXhlZCA9IHsgLi4udGhpcy50b09iamVjdCgpLCAuLi5ub3JtYWxpemVkIH07CgogICAgICAgIC8vIGlmIHdlIGRpZG4ndCBzZXQgdGhlIGRheSBidXQgd2UgZW5kZWQgdXAgb24gYW4gb3ZlcmZsb3cgZGF0ZSwKICAgICAgICAvLyB1c2UgdGhlIGxhc3QgZGF5IG9mIHRoZSByaWdodCBtb250aAogICAgICAgIGlmIChpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSkpIHsKICAgICAgICAgIG1peGVkLmRheSA9IE1hdGgubWluKGRheXNJbk1vbnRoKG1peGVkLnllYXIsIG1peGVkLm1vbnRoKSwgbWl4ZWQuZGF5KTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGNvbnN0IFt0cywgb10gPSBvYmpUb1RTKG1peGVkLCB0aGlzLm8sIHRoaXMuem9uZSk7CiAgICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHRzLCBvIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGEgcGVyaW9kIG9mIHRpbWUgdG8gdGhpcyBEYXRlVGltZSBhbmQgcmV0dXJuIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUKICAgICAqCiAgICAgKiBBZGRpbmcgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG9yIG1pbGxpc2Vjb25kcyBpbmNyZWFzZXMgdGhlIHRpbWVzdGFtcCBieSB0aGUgcmlnaHQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy4gQWRkaW5nIGRheXMsIG1vbnRocywgb3IgeWVhcnMgc2hpZnRzIHRoZSBjYWxlbmRhciwgYWNjb3VudGluZyBmb3IgRFNUcyBhbmQgbGVhcCB5ZWFycyBhbG9uZyB0aGUgd2F5LiBUaHVzLCBgZHQucGx1cyh7IGhvdXJzOiAyNCB9KWAgbWF5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0aW1lIHRoYW4gYGR0LnBsdXMoeyBkYXlzOiAxIH0pYCBpZiB0aGVyZSdzIGEgRFNUIHNoaWZ0IGluIGJldHdlZW4uCiAgICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBhZGQuIEVpdGhlciBhIEx1eG9uIER1cmF0aW9uLCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIHRoZSBvYmplY3QgYXJndW1lbnQgdG8gRHVyYXRpb24uZnJvbU9iamVjdCgpCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKDEyMykgLy9+PiBpbiAxMjMgbWlsbGlzZWNvbmRzCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgbWludXRlczogMTUgfSkgLy9+PiBpbiAxNSBtaW51dGVzCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KSAvL34+IHRoaXMgdGltZSB0b21vcnJvdwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IC0xIH0pIC8vfj4gdGhpcyB0aW1lIHllc3RlcmRheQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSAvL34+IGluIDMgaHIsIDEzIG1pbgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDMsIG1pbnV0ZXM6IDEzIH0pKSAvL34+IGluIDMgaHIsIDEzIG1pbgogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHBsdXMoZHVyYXRpb24pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwogICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTsKICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTdWJ0cmFjdCBhIHBlcmlvZCBvZiB0aW1lIHRvIHRoaXMgRGF0ZVRpbWUgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lCiAgICAgKiBTZWUge0BsaW5rIERhdGVUaW1lI3BsdXN9CiAgICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKICAgICBAcmV0dXJuIHtEYXRlVGltZX0KICAgICAqLwogICAgbWludXMoZHVyYXRpb24pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwogICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKS5uZWdhdGUoKTsKICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0IiB0aGlzIERhdGVUaW1lIHRvIHRoZSBiZWdpbm5pbmcgb2YgYSB1bml0IG9mIHRpbWUuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIFRoZSB1bml0IHRvIGdvIHRvIHRoZSBiZWdpbm5pbmcgb2YuIENhbiBiZSAneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsIG9yICdtaWxsaXNlY29uZCcuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCdtb250aCcpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAxJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZigneWVhcicpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAxLTAxJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZignd2VlaycpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAzJywgd2Vla3MgYWx3YXlzIHN0YXJ0IG9uIE1vbmRheXMKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5zdGFydE9mKCdkYXknKS50b0lTT1RpbWUoKTsgLy89PiAnMDA6MDAuMDAwLTA1OjAwJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMywgNSwgMzApLnN0YXJ0T2YoJ2hvdXInKS50b0lTT1RpbWUoKTsgLy89PiAnMDU6MDA6MDAuMDAwLTA1OjAwJwogICAgICogQHJldHVybiB7RGF0ZVRpbWV9CiAgICAgKi8KICAgIHN0YXJ0T2YodW5pdCkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CiAgICAgIGNvbnN0IG8gPSB7fSwKICAgICAgICBub3JtYWxpemVkVW5pdCA9IER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodW5pdCk7CiAgICAgIHN3aXRjaCAobm9ybWFsaXplZFVuaXQpIHsKICAgICAgICBjYXNlICJ5ZWFycyI6CiAgICAgICAgICBvLm1vbnRoID0gMTsKICAgICAgICAvLyBmYWxscyB0aHJvdWdoCiAgICAgICAgY2FzZSAicXVhcnRlcnMiOgogICAgICAgIGNhc2UgIm1vbnRocyI6CiAgICAgICAgICBvLmRheSA9IDE7CiAgICAgICAgLy8gZmFsbHMgdGhyb3VnaAogICAgICAgIGNhc2UgIndlZWtzIjoKICAgICAgICBjYXNlICJkYXlzIjoKICAgICAgICAgIG8uaG91ciA9IDA7CiAgICAgICAgLy8gZmFsbHMgdGhyb3VnaAogICAgICAgIGNhc2UgImhvdXJzIjoKICAgICAgICAgIG8ubWludXRlID0gMDsKICAgICAgICAvLyBmYWxscyB0aHJvdWdoCiAgICAgICAgY2FzZSAibWludXRlcyI6CiAgICAgICAgICBvLnNlY29uZCA9IDA7CiAgICAgICAgLy8gZmFsbHMgdGhyb3VnaAogICAgICAgIGNhc2UgInNlY29uZHMiOgogICAgICAgICAgby5taWxsaXNlY29uZCA9IDA7CiAgICAgICAgICBicmVhazsKICAgICAgICAvLyBubyBkZWZhdWx0LCBpbnZhbGlkIHVuaXRzIHRocm93IGluIG5vcm1hbGl6ZVVuaXQoKQogICAgICB9CgogICAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09ICJ3ZWVrcyIpIHsKICAgICAgICBvLndlZWtkYXkgPSAxOwogICAgICB9CgogICAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09ICJxdWFydGVycyIpIHsKICAgICAgICBjb25zdCBxID0gTWF0aC5jZWlsKHRoaXMubW9udGggLyAzKTsKICAgICAgICBvLm1vbnRoID0gKHEgLSAxKSAqIDMgKyAxOwogICAgICB9CgogICAgICByZXR1cm4gdGhpcy5zZXQobyk7CiAgICB9CgogICAgLyoqCiAgICAgKiAiU2V0IiB0aGlzIERhdGVUaW1lIHRvIHRoZSBlbmQgKG1lYW5pbmcgdGhlIGxhc3QgbWlsbGlzZWNvbmQpIG9mIGEgdW5pdCBvZiB0aW1lCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIFRoZSB1bml0IHRvIGdvIHRvIHRoZSBlbmQgb2YuIENhbiBiZSAneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsIG9yICdtaWxsaXNlY29uZCcuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5lbmRPZignbW9udGgnKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTMxVDIzOjU5OjU5Ljk5OS0wNTowMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd5ZWFyJykudG9JU08oKTsgLy89PiAnMjAxNC0xMi0zMVQyMzo1OTo1OS45OTktMDU6MDAnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5lbmRPZignd2VlaycpLnRvSVNPKCk7IC8vID0+ICcyMDE0LTAzLTA5VDIzOjU5OjU5Ljk5OS0wNTowMCcsIHdlZWtzIHN0YXJ0IG9uIE1vbmRheXMKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5lbmRPZignZGF5JykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0wM1QyMzo1OTo1OS45OTktMDU6MDAnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2hvdXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTAzVDA1OjU5OjU5Ljk5OS0wNTowMCcKICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfQogICAgICovCiAgICBlbmRPZih1bml0KSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQKICAgICAgICA/IHRoaXMucGx1cyh7IFt1bml0XTogMSB9KQogICAgICAgICAgICAuc3RhcnRPZih1bml0KQogICAgICAgICAgICAubWludXMoMSkKICAgICAgICA6IHRoaXM7CiAgICB9CgogICAgLy8gT1VUUFVUCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuCiAgICAgKiAqKllvdSBtYXkgbm90IHdhbnQgdGhpcy4qKiBTZWUge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3IgYSBtb3JlIGZsZXhpYmxlIGZvcm1hdHRpbmcgdG9vbC4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvZm9ybWF0dGluZz9pZD10YWJsZS1vZi10b2tlbnMpLgogICAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLgogICAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgc3RyaW5nCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdHMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvbiB0aGlzIERhdGVUaW1lCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IEFwciAyMicKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgnZnInKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IGF2ci4gMjInCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnLCB7IGxvY2FsZTogImZyIiB9KSAvLz0+ICcyMDE3IGF2ci4gMjInCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgiSEggJ2hvdXJzIGFuZCcgbW0gJ21pbnV0ZXMnIikgLy89PiAnMjAgaG91cnMgYW5kIDU1IG1pbnV0ZXMnCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvRm9ybWF0KGZtdCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQKICAgICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5sb2MucmVkZWZhdWx0VG9FTihvcHRzKSkuZm9ybWF0RGF0ZVRpbWVGcm9tU3RyaW5nKHRoaXMsIGZtdCkKICAgICAgICA6IElOVkFMSUQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbG9jYWxpemVkIHN0cmluZyByZXByZXNlbnRpbmcgdGhpcyBkYXRlLiBBY2NlcHRzIHRoZSBzYW1lIG9wdGlvbnMgYXMgdGhlIEludGwuRGF0ZVRpbWVGb3JtYXQgY29uc3RydWN0b3IgYW5kIGFueSBwcmVzZXRzIGRlZmluZWQgYnkgTHV4b24sIHN1Y2ggYXMgYERhdGVUaW1lLkRBVEVfRlVMTGAgb3IgYERhdGVUaW1lLlRJTUVfU0lNUExFYC4KICAgICAqIFRoZSBleGFjdCBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZCBpcyBicm93c2VyLXNwZWNpZmljLCBidXQgaW4gZ2VuZXJhbCBpdCB3aWxsIHJldHVybiBhbiBhcHByb3ByaWF0ZSByZXByZXNlbnRhdGlvbgogICAgICogb2YgdGhlIERhdGVUaW1lIGluIHRoZSBhc3NpZ25lZCBsb2NhbGUuCiAgICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQKICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQKICAgICAqIEBwYXJhbSBmb3JtYXRPcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0cyB0byBvdmVycmlkZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9uIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKCk7IC8vPT4gNC8yMC8yMDE3CiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2VuLWdiJykudG9Mb2NhbGVTdHJpbmcoKTsgLy89PiAnMjAvMDQvMjAxNycKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gJ0FwcmlsIDIwLCAyMDE3JwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9GVUxMLCB7IGxvY2FsZTogJ2ZyJyB9KTsgLy89PiAnMjggYW/Du3QgMjAyMicKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLlRJTUVfU0lNUExFKTsgLy89PiAnMTE6MzIgQU0nCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFVElNRV9TSE9SVCk7IC8vPT4gJzQvMjAvMjAxNywgMTE6MzIgQU0nCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IHdlZWtkYXk6ICdsb25nJywgbW9udGg6ICdsb25nJywgZGF5OiAnMi1kaWdpdCcgfSk7IC8vPT4gJ1RodXJzZGF5LCBBcHJpbCAyMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ3Nob3J0JywgbW9udGg6ICdzaG9ydCcsIGRheTogJzItZGlnaXQnLCBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pOyAvLz0+ICdUaHUsIEFwciAyMCwgMTE6MjcgQU0nCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXJDeWNsZTogJ2gyMycgfSk7IC8vPT4gJzExOjMyJwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzID0gREFURV9TSE9SVCwgb3B0cyA9IHt9KSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQKICAgICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5sb2MuY2xvbmUob3B0cyksIGZvcm1hdE9wdHMpLmZvcm1hdERhdGVUaW1lKHRoaXMpCiAgICAgICAgOiBJTlZBTElEOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBmb3JtYXQgInBhcnRzIiwgbWVhbmluZyBpbmRpdmlkdWFsIHRva2VucyBhbG9uZyB3aXRoIG1ldGFkYXRhLiBUaGlzIGlzIGFsbG93cyBjYWxsZXJzIHRvIHBvc3QtcHJvY2VzcyBpbmRpdmlkdWFsIHNlY3Rpb25zIG9mIHRoZSBmb3JtYXR0ZWQgb3V0cHV0LgogICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0L2Zvcm1hdFRvUGFydHMKICAgICAqIEBwYXJhbSBvcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zLCBzYW1lIGFzIGB0b0xvY2FsZVN0cmluZ2AuCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVBhcnRzKCk7IC8vPT4gWwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdkYXknLCB2YWx1ZTogJzI1JyB9LAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdsaXRlcmFsJywgdmFsdWU6ICcvJyB9LAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdtb250aCcsIHZhbHVlOiAnMDUnIH0sCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ3llYXInLCB2YWx1ZTogJzE5ODInIH0KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+IF0KICAgICAqLwogICAgdG9Mb2NhbGVQYXJ0cyhvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZAogICAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgb3B0cykuZm9ybWF0RGF0ZVRpbWVQYXJ0cyh0aGlzKQogICAgICAgIDogW107CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZQogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmV4dGVuZGVkWm9uZT1mYWxzZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXQKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgzLCA1LCAyNSkudG9JU08oKSAvLz0+ICcxOTgyLTA1LTI1VDAwOjAwOjAwLjAwMFonCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTygpIC8vPT4gJzIwMTctMDQtMjJUMjA6NDc6MDUuMzM1LTA0OjAwJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE3LTA0LTIyVDIwOjQ3OjA1LjMzNScKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzIwMTcwNDIyVDIwNDcwNS4zMzUtMDQwMCcKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU08oewogICAgICBmb3JtYXQgPSAiZXh0ZW5kZWQiLAogICAgICBzdXBwcmVzc1NlY29uZHMgPSBmYWxzZSwKICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHMgPSBmYWxzZSwKICAgICAgaW5jbHVkZU9mZnNldCA9IHRydWUsCiAgICAgIGV4dGVuZGVkWm9uZSA9IGZhbHNlLAogICAgfSA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KCiAgICAgIGNvbnN0IGV4dCA9IGZvcm1hdCA9PT0gImV4dGVuZGVkIjsKCiAgICAgIGxldCBjID0gdG9JU09EYXRlKHRoaXMsIGV4dCk7CiAgICAgIGMgKz0gIlQiOwogICAgICBjICs9IHRvSVNPVGltZSh0aGlzLCBleHQsIHN1cHByZXNzU2Vjb25kcywgc3VwcHJlc3NNaWxsaXNlY29uZHMsIGluY2x1ZGVPZmZzZXQsIGV4dGVuZGVkWm9uZSk7CiAgICAgIHJldHVybiBjOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyBkYXRlIGNvbXBvbmVudAogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXQKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wNS0yNScKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzE5ODIwNTI1JwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b0lTT0RhdGUoeyBmb3JtYXQgPSAiZXh0ZW5kZWQiIH0gPSB7fSkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CgogICAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIGZvcm1hdCA9PT0gImV4dGVuZGVkIik7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHdlZWsgZGF0ZQogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODIsIDUsIDI1KS50b0lTT1dlZWtEYXRlKCkgLy89PiAnMTk4Mi1XMjEtMicKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU09XZWVrRGF0ZSgpIHsKICAgICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCAia2tray0nVydXVy1jIik7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHRpbWUgY29tcG9uZW50CiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMAogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCcKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuZXh0ZW5kZWRab25lPXRydWVdIC0gYWRkIHRoZSB0aW1lIHpvbmUgZm9ybWF0IGV4dGVuc2lvbgogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlUHJlZml4PWZhbHNlXSAtIGluY2x1ZGUgdGhlIGBUYCBwcmVmaXgKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdAogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoKSAvLz0+ICcwNzozNDoxOS4zNjFaJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCwgc2Vjb25kczogMCwgbWlsbGlzZWNvbmRzOiAwIH0pLnRvSVNPVGltZSh7IHN1cHByZXNzU2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcwNzozNFonCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcwNzM0MTkuMzYxWicKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQgfSkudG9JU09UaW1lKHsgaW5jbHVkZVByZWZpeDogdHJ1ZSB9KSAvLz0+ICdUMDc6MzQ6MTkuMzYxWicKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9JU09UaW1lKHsKICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHMgPSBmYWxzZSwKICAgICAgc3VwcHJlc3NTZWNvbmRzID0gZmFsc2UsCiAgICAgIGluY2x1ZGVPZmZzZXQgPSB0cnVlLAogICAgICBpbmNsdWRlUHJlZml4ID0gZmFsc2UsCiAgICAgIGV4dGVuZGVkWm9uZSA9IGZhbHNlLAogICAgICBmb3JtYXQgPSAiZXh0ZW5kZWQiLAogICAgfSA9IHt9KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KCiAgICAgIGxldCBjID0gaW5jbHVkZVByZWZpeCA/ICJUIiA6ICIiOwogICAgICByZXR1cm4gKAogICAgICAgIGMgKwogICAgICAgIHRvSVNPVGltZSgKICAgICAgICAgIHRoaXMsCiAgICAgICAgICBmb3JtYXQgPT09ICJleHRlbmRlZCIsCiAgICAgICAgICBzdXBwcmVzc1NlY29uZHMsCiAgICAgICAgICBzdXBwcmVzc01pbGxpc2Vjb25kcywKICAgICAgICAgIGluY2x1ZGVPZmZzZXQsCiAgICAgICAgICBleHRlbmRlZFpvbmUKICAgICAgICApCiAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIFJGQyAyODIyLWNvbXBhdGlibGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9SRkMyODIyKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAwMDowMDowMCArMDAwMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1JGQzI4MjIoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIC0wNDAwJwogICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICovCiAgICB0b1JGQzI4MjIoKSB7CiAgICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgWlpaIiwgZmFsc2UpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSFRUUCBoZWFkZXJzLiBUaGUgb3V0cHV0IGlzIGFsd2F5cyBleHByZXNzZWQgaW4gR01ULgogICAgICogU3BlY2lmaWNhbGx5LCB0aGUgc3RyaW5nIGNvbmZvcm1zIHRvIFJGQyAxMTIzLgogICAgICogQHNlZSBodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMzLmh0bWwjc2VjMy4zLjEKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9IVFRQKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAwMDowMDowMCBHTVQnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMsIDE5KS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDE5OjAwOjAwIEdNVCcKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9IVFRQKCkgewogICAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMudG9VVEMoKSwgIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgJ0dNVCciKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvU1FMRGF0ZSgpIC8vPT4gJzIwMTQtMDctMTMnCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvU1FMRGF0ZSgpIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIFRpbWUKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlWm9uZT1mYWxzZV0gLSBpbmNsdWRlIHRoZSB6b25lLCBzdWNoIGFzICdBbWVyaWNhL05ld19Zb3JrJy4gT3ZlcnJpZGVzIGluY2x1ZGVPZmZzZXQuCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXRTcGFjZT10cnVlXSAtIGluY2x1ZGUgdGhlIHNwYWNlIGJldHdlZW4gdGhlIHRpbWUgYW5kIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJzA1OjE1OjE2LjM0NSAtMDQ6MDAnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS50b1NRTCgpIC8vPT4gJzA1OjE1OjE2LjM0NScKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKCkgLy89PiAnMDU6MTU6MTYuMzQ1IC0wNDowMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1JwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlWm9uZTogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1IEFtZXJpY2EvTmV3X1lvcmsnCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvU1FMVGltZSh7IGluY2x1ZGVPZmZzZXQgPSB0cnVlLCBpbmNsdWRlWm9uZSA9IGZhbHNlLCBpbmNsdWRlT2Zmc2V0U3BhY2UgPSB0cnVlIH0gPSB7fSkgewogICAgICBsZXQgZm10ID0gIkhIOm1tOnNzLlNTUyI7CgogICAgICBpZiAoaW5jbHVkZVpvbmUgfHwgaW5jbHVkZU9mZnNldCkgewogICAgICAgIGlmIChpbmNsdWRlT2Zmc2V0U3BhY2UpIHsKICAgICAgICAgIGZtdCArPSAiICI7CiAgICAgICAgfQogICAgICAgIGlmIChpbmNsdWRlWm9uZSkgewogICAgICAgICAgZm10ICs9ICJ6IjsKICAgICAgICB9IGVsc2UgaWYgKGluY2x1ZGVPZmZzZXQpIHsKICAgICAgICAgIGZtdCArPSAiWloiOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBmbXQsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVpvbmU9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgem9uZSwgc3VjaCBhcyAnQW1lcmljYS9OZXdfWW9yaycuIE92ZXJyaWRlcyBpbmNsdWRlT2Zmc2V0LgogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJwogICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0U3BhY2U9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB0aW1lIGFuZCB0aGUgb2Zmc2V0LCBzdWNoIGFzICcwNToxNToxNi4zNDUgLTA0OjAwJwogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b1NRTCgpIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIFonCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoKSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCAtMDQ6MDAnCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCcKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1NRTCh7IGluY2x1ZGVab25lOiB0cnVlIH0pIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIEFtZXJpY2EvTmV3X1lvcmsnCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvU1FMKG9wdHMgPSB7fSkgewogICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CgogICAgICByZXR1cm4gYCR7dGhpcy50b1NRTERhdGUoKX0gJHt0aGlzLnRvU1FMVGltZShvcHRzKX1gOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciBkZWJ1Z2dpbmcKICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAqLwogICAgdG9TdHJpbmcoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvSVNPKCkgOiBJTlZBTElEOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZXBvY2ggbWlsbGlzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuIEFsaWFzIG9mIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30KICAgICAqIEByZXR1cm4ge251bWJlcn0KICAgICAqLwogICAgdmFsdWVPZigpIHsKICAgICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLgogICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICovCiAgICB0b01pbGxpcygpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIHRvU2Vjb25kcygpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgLyAxMDAwIDogTmFOOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZXBvY2ggc2Vjb25kcyAoYXMgYSB3aG9sZSBudW1iZXIpIG9mIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICAgKi8KICAgIHRvVW5peEludGVnZXIoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmZsb29yKHRoaXMudHMgLyAxMDAwKSA6IE5hTjsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEpTT04uCiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgKi8KICAgIHRvSlNPTigpIHsKICAgICAgcmV0dXJuIHRoaXMudG9JU08oKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYSBCU09OIHNlcmlhbGl6YWJsZSBlcXVpdmFsZW50IHRvIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAcmV0dXJuIHtEYXRlfQogICAgICovCiAgICB0b0JTT04oKSB7CiAgICAgIHJldHVybiB0aGlzLnRvSlNEYXRlKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0aGlzIERhdGVUaW1lJ3MgeWVhciwgbW9udGgsIGRheSwgYW5kIHNvIG9uLgogICAgICogQHBhcmFtIG9wdHMgLSBvcHRpb25zIGZvciBnZW5lcmF0aW5nIHRoZSBvYmplY3QKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZUNvbmZpZz1mYWxzZV0gLSBpbmNsdWRlIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBpbiB0aGUgb3V0cHV0CiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b09iamVjdCgpIC8vPT4geyB5ZWFyOiAyMDE3LCBtb250aDogNCwgZGF5OiAyMiwgaG91cjogMjAsIG1pbnV0ZTogNDksIHNlY29uZDogNDIsIG1pbGxpc2Vjb25kOiAyNjggfQogICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICovCiAgICB0b09iamVjdChvcHRzID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTsKCiAgICAgIGNvbnN0IGJhc2UgPSB7IC4uLnRoaXMuYyB9OwoKICAgICAgaWYgKG9wdHMuaW5jbHVkZUNvbmZpZykgewogICAgICAgIGJhc2Uub3V0cHV0Q2FsZW5kYXIgPSB0aGlzLm91dHB1dENhbGVuZGFyOwogICAgICAgIGJhc2UubnVtYmVyaW5nU3lzdGVtID0gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtOwogICAgICAgIGJhc2UubG9jYWxlID0gdGhpcy5sb2MubG9jYWxlOwogICAgICB9CiAgICAgIHJldHVybiBiYXNlOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgRGF0ZSBlcXVpdmFsZW50IHRvIHRoaXMgRGF0ZVRpbWUuCiAgICAgKiBAcmV0dXJuIHtEYXRlfQogICAgICovCiAgICB0b0pTRGF0ZSgpIHsKICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU4pOwogICAgfQoKICAgIC8vIENPTVBBUkUKCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBEYXRlVGltZXMgYXMgYSBEdXJhdGlvbi4KICAgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgRGF0ZVRpbWUgdG8gY29tcGFyZSB0aGlzIG9uZSB0bwogICAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uLgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQGV4YW1wbGUKICAgICAqIHZhciBpMSA9IERhdGVUaW1lLmZyb21JU08oJzE5ODItMDUtMjVUMDk6NDUnKSwKICAgICAqICAgICBpMiA9IERhdGVUaW1lLmZyb21JU08oJzE5ODMtMTAtMTRUMTA6MzAnKTsKICAgICAqIGkyLmRpZmYoaTEpLnRvT2JqZWN0KCkgLy89PiB7IG1pbGxpc2Vjb25kczogNDM4MDc1MDAwMDAgfQogICAgICogaTIuZGlmZihpMSwgJ2hvdXJzJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDEyMTY4Ljc1IH0KICAgICAqIGkyLmRpZmYoaTEsIFsnbW9udGhzJywgJ2RheXMnXSkudG9PYmplY3QoKSAvLz0+IHsgbW9udGhzOiAxNiwgZGF5czogMTkuMDMxMjUgfQogICAgICogaTIuZGlmZihpMSwgWydtb250aHMnLCAnZGF5cycsICdob3VycyddKS50b09iamVjdCgpIC8vPT4geyBtb250aHM6IDE2LCBkYXlzOiAxOSwgaG91cnM6IDAuNzUgfQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIGRpZmYob3RoZXJEYXRlVGltZSwgdW5pdCA9ICJtaWxsaXNlY29uZHMiLCBvcHRzID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyRGF0ZVRpbWUuaXNWYWxpZCkgewogICAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKCJjcmVhdGVkIGJ5IGRpZmZpbmcgYW4gaW52YWxpZCBEYXRlVGltZSIpOwogICAgICB9CgogICAgICBjb25zdCBkdXJPcHRzID0geyBsb2NhbGU6IHRoaXMubG9jYWxlLCBudW1iZXJpbmdTeXN0ZW06IHRoaXMubnVtYmVyaW5nU3lzdGVtLCAuLi5vcHRzIH07CgogICAgICBjb25zdCB1bml0cyA9IG1heWJlQXJyYXkodW5pdCkubWFwKER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLAogICAgICAgIG90aGVySXNMYXRlciA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpID4gdGhpcy52YWx1ZU9mKCksCiAgICAgICAgZWFybGllciA9IG90aGVySXNMYXRlciA/IHRoaXMgOiBvdGhlckRhdGVUaW1lLAogICAgICAgIGxhdGVyID0gb3RoZXJJc0xhdGVyID8gb3RoZXJEYXRlVGltZSA6IHRoaXMsCiAgICAgICAgZGlmZmVkID0gZGlmZihlYXJsaWVyLCBsYXRlciwgdW5pdHMsIGR1ck9wdHMpOwoKICAgICAgcmV0dXJuIG90aGVySXNMYXRlciA/IGRpZmZlZC5uZWdhdGUoKSA6IGRpZmZlZDsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgRGF0ZVRpbWUgYW5kIHJpZ2h0IG5vdy4KICAgICAqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjZGlmZn0KICAgICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQogICAgICogQHJldHVybiB7RHVyYXRpb259CiAgICAgKi8KICAgIGRpZmZOb3codW5pdCA9ICJtaWxsaXNlY29uZHMiLCBvcHRzID0ge30pIHsKICAgICAgcmV0dXJuIHRoaXMuZGlmZihEYXRlVGltZS5ub3coKSwgdW5pdCwgb3B0cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgc3Bhbm5pbmcgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCBhbm90aGVyIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIG90aGVyIGVuZCBwb2ludCBvZiB0aGUgSW50ZXJ2YWwKICAgICAqIEByZXR1cm4ge0ludGVydmFsfQogICAgICovCiAgICB1bnRpbChvdGhlckRhdGVUaW1lKSB7CiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHRoaXMsIG90aGVyRGF0ZVRpbWUpIDogdGhpczsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgRGF0ZVRpbWUgaXMgaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lIGFzIGFub3RoZXIgRGF0ZVRpbWUuCiAgICAgKiBIaWdoZXItb3JkZXIgdW5pdHMgbXVzdCBhbHNvIGJlIGlkZW50aWNhbCBmb3IgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gYHRydWVgLgogICAgICogTm90ZSB0aGF0IHRpbWUgem9uZXMgYXJlICoqaWdub3JlZCoqIGluIHRoaXMgY29tcGFyaXNvbiwgd2hpY2ggY29tcGFyZXMgdGhlICoqbG9jYWwqKiBjYWxlbmRhciB0aW1lLiBVc2Uge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9IHRvIGNvbnZlcnQgb25lIG9mIHRoZSBkYXRlcyBpZiBuZWVkZWQuCiAgICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIG90aGVyIERhdGVUaW1lCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb24KICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLmhhc1NhbWUob3RoZXJEVCwgJ2RheScpOyAvL34+IHRydWUgaWYgb3RoZXJEVCBpcyBpbiB0aGUgc2FtZSBjdXJyZW50IGNhbGVuZGFyIGRheQogICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAqLwogICAgaGFzU2FtZShvdGhlckRhdGVUaW1lLCB1bml0KSB7CiAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CgogICAgICBjb25zdCBpbnB1dE1zID0gb3RoZXJEYXRlVGltZS52YWx1ZU9mKCk7CiAgICAgIGNvbnN0IGFkanVzdGVkVG9ab25lID0gdGhpcy5zZXRab25lKG90aGVyRGF0ZVRpbWUuem9uZSwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pOwogICAgICByZXR1cm4gYWRqdXN0ZWRUb1pvbmUuc3RhcnRPZih1bml0KSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gYWRqdXN0ZWRUb1pvbmUuZW5kT2YodW5pdCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBFcXVhbGl0eSBjaGVjawogICAgICogVHdvIERhdGVUaW1lcyBhcmUgZXF1YWwgaWYgYW5kIG9ubHkgaWYgdGhleSByZXByZXNlbnQgdGhlIHNhbWUgbWlsbGlzZWNvbmQsIGhhdmUgdGhlIHNhbWUgem9uZSBhbmQgbG9jYXRpb24sIGFuZCBhcmUgYm90aCB2YWxpZC4KICAgICAqIFRvIGNvbXBhcmUganVzdCB0aGUgbWlsbGlzZWNvbmQgdmFsdWVzLCB1c2UgYCtkdDEgPT09ICtkdDJgLgogICAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXIgLSB0aGUgb3RoZXIgRGF0ZVRpbWUKICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgKi8KICAgIGVxdWFscyhvdGhlcikgewogICAgICByZXR1cm4gKAogICAgICAgIHRoaXMuaXNWYWxpZCAmJgogICAgICAgIG90aGVyLmlzVmFsaWQgJiYKICAgICAgICB0aGlzLnZhbHVlT2YoKSA9PT0gb3RoZXIudmFsdWVPZigpICYmCiAgICAgICAgdGhpcy56b25lLmVxdWFscyhvdGhlci56b25lKSAmJgogICAgICAgIHRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpCiAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgdGhpcyB0aW1lIHJlbGF0aXZlIHRvIG5vdywgc3VjaCBhcyAiaW4gdHdvIGRheXMiLiBDYW4gb25seSBpbnRlcm5hdGlvbmFsaXplIGlmIHlvdXIKICAgICAqIHBsYXRmb3JtIHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LiBSb3VuZHMgZG93biBieSBkZWZhdWx0LgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBvdXRwdXQKICAgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuc3R5bGU9ImxvbmciXSAtIHRoZSBzdHlsZSBvZiB1bml0cywgbXVzdCBiZSAibG9uZyIsICJzaG9ydCIsIG9yICJuYXJyb3ciCiAgICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gb3B0aW9ucy51bml0IC0gdXNlIGEgc3BlY2lmaWMgdW5pdCBvciBhcnJheSBvZiB1bml0czsgaWYgb21pdHRlZCwgb3IgYW4gYXJyYXksIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSBiZXN0IHVuaXQuIFVzZSBhbiBhcnJheSBvciBvbmUgb2YgInllYXJzIiwgInF1YXJ0ZXJzIiwgIm1vbnRocyIsICJ3ZWVrcyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCBvciAic2Vjb25kcyIKICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMucm91bmQ9dHJ1ZV0gLSB3aGV0aGVyIHRvIHJvdW5kIHRoZSBudW1iZXJzIGluIHRoZSBvdXRwdXQuCiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMucGFkZGluZz0wXSAtIHBhZGRpbmcgaW4gbWlsbGlzZWNvbmRzLiBUaGlzIGFsbG93cyB5b3UgdG8gcm91bmQgdXAgdGhlIHJlc3VsdCBpZiBpdCBmaXRzIGluc2lkZSB0aGUgdGhyZXNob2xkLiBEb24ndCB1c2UgaW4gY29tYmluYXRpb24gd2l0aCB7cm91bmQ6IGZhbHNlfSBiZWNhdXNlIHRoZSBkZWNpbWFsIG91dHB1dCB3aWxsIGluY2x1ZGUgdGhlIHBhZGRpbmcuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXMKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoKSAvLz0+ICJpbiAxIGRheSIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgiZXMiKS50b1JlbGF0aXZlKHsgZGF5czogMSB9KSAvLz0+ICJkZW50cm8gZGUgMSBkw61hIgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSh7IGxvY2FsZTogImZyIiB9KSAvLz0+ICJkYW5zIDIzIGhldXJlcyIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlKCkgLy89PiAiMiBkYXlzIGFnbyIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlKHsgdW5pdDogImhvdXJzIiB9KSAvLz0+ICI0OCBob3VycyBhZ28iCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGhvdXJzOiAzNiB9KS50b1JlbGF0aXZlKHsgcm91bmQ6IGZhbHNlIH0pIC8vPT4gIjEuNSBkYXlzIGFnbyIKICAgICAqLwogICAgdG9SZWxhdGl2ZShvcHRpb25zID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwogICAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IERhdGVUaW1lLmZyb21PYmplY3Qoe30sIHsgem9uZTogdGhpcy56b25lIH0pLAogICAgICAgIHBhZGRpbmcgPSBvcHRpb25zLnBhZGRpbmcgPyAodGhpcyA8IGJhc2UgPyAtb3B0aW9ucy5wYWRkaW5nIDogb3B0aW9ucy5wYWRkaW5nKSA6IDA7CiAgICAgIGxldCB1bml0cyA9IFsieWVhcnMiLCAibW9udGhzIiwgImRheXMiLCAiaG91cnMiLCAibWludXRlcyIsICJzZWNvbmRzIl07CiAgICAgIGxldCB1bml0ID0gb3B0aW9ucy51bml0OwogICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnVuaXQpKSB7CiAgICAgICAgdW5pdHMgPSBvcHRpb25zLnVuaXQ7CiAgICAgICAgdW5pdCA9IHVuZGVmaW5lZDsKICAgICAgfQogICAgICByZXR1cm4gZGlmZlJlbGF0aXZlKGJhc2UsIHRoaXMucGx1cyhwYWRkaW5nKSwgewogICAgICAgIC4uLm9wdGlvbnMsCiAgICAgICAgbnVtZXJpYzogImFsd2F5cyIsCiAgICAgICAgdW5pdHMsCiAgICAgICAgdW5pdCwKICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgZGF0ZSByZWxhdGl2ZSB0byB0b2RheSwgc3VjaCBhcyAieWVzdGVyZGF5IiBvciAibmV4dCBtb250aCIuCiAgICAgKiBPbmx5IGludGVybmF0aW9uYWxpemVzIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LgogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBvdXRwdXQKICAgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnVuaXQgLSB1c2UgYSBzcGVjaWZpYyB1bml0OyBpZiBvbWl0dGVkLCB0aGUgbWV0aG9kIHdpbGwgcGljayB0aGUgdW5pdC4gVXNlIG9uZSBvZiAieWVhcnMiLCAicXVhcnRlcnMiLCAibW9udGhzIiwgIndlZWtzIiwgb3IgImRheXMiCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSBvdmVycmlkZSB0aGUgbnVtYmVyaW5nU3lzdGVtIG9mIHRoaXMgRGF0ZVRpbWUuIFRoZSBJbnRsIHN5c3RlbSBtYXkgY2hvb3NlIG5vdCB0byBob25vciB0aGlzCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+ICJ0b21vcnJvdyIKICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgiZXMiKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlKCkgLy89PiAiIm1hw7FhbmEiCiAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoeyBsb2NhbGU6ICJmciIgfSkgLy89PiAiZGVtYWluIgogICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmVDYWxlbmRhcigpIC8vPT4gIjIgZGF5cyBhZ28iCiAgICAgKi8KICAgIHRvUmVsYXRpdmVDYWxlbmRhcihvcHRpb25zID0ge30pIHsKICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwoKICAgICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShvcHRpb25zLmJhc2UgfHwgRGF0ZVRpbWUuZnJvbU9iamVjdCh7fSwgeyB6b25lOiB0aGlzLnpvbmUgfSksIHRoaXMsIHsKICAgICAgICAuLi5vcHRpb25zLAogICAgICAgIG51bWVyaWM6ICJhdXRvIiwKICAgICAgICB1bml0czogWyJ5ZWFycyIsICJtb250aHMiLCAiZGF5cyJdLAogICAgICAgIGNhbGVuZGFyeTogdHJ1ZSwKICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIG1pbiBvZiBzZXZlcmFsIGRhdGUgdGltZXMKICAgICAqIEBwYXJhbSB7Li4uRGF0ZVRpbWV9IGRhdGVUaW1lcyAtIHRoZSBEYXRlVGltZXMgZnJvbSB3aGljaCB0byBjaG9vc2UgdGhlIG1pbmltdW0KICAgICAqIEByZXR1cm4ge0RhdGVUaW1lfSB0aGUgbWluIERhdGVUaW1lLCBvciB1bmRlZmluZWQgaWYgY2FsbGVkIHdpdGggbm8gYXJndW1lbnQKICAgICAqLwogICAgc3RhdGljIG1pbiguLi5kYXRlVGltZXMpIHsKICAgICAgaWYgKCFkYXRlVGltZXMuZXZlcnkoRGF0ZVRpbWUuaXNEYXRlVGltZSkpIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIm1pbiByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGJlIERhdGVUaW1lcyIpOwogICAgICB9CiAgICAgIHJldHVybiBiZXN0QnkoZGF0ZVRpbWVzLCAoaSkgPT4gaS52YWx1ZU9mKCksIE1hdGgubWluKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgbWF4IG9mIHNldmVyYWwgZGF0ZSB0aW1lcwogICAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWF4aW11bQogICAgICogQHJldHVybiB7RGF0ZVRpbWV9IHRoZSBtYXggRGF0ZVRpbWUsIG9yIHVuZGVmaW5lZCBpZiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudAogICAgICovCiAgICBzdGF0aWMgbWF4KC4uLmRhdGVUaW1lcykgewogICAgICBpZiAoIWRhdGVUaW1lcy5ldmVyeShEYXRlVGltZS5pc0RhdGVUaW1lKSkgewogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibWF4IHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzIik7CiAgICAgIH0KICAgICAgcmV0dXJuIGJlc3RCeShkYXRlVGltZXMsIChpKSA9PiBpLnZhbHVlT2YoKSwgTWF0aC5tYXgpOwogICAgfQoKICAgIC8vIE1JU0MKCiAgICAvKioKICAgICAqIEV4cGxhaW4gaG93IGEgc3RyaW5nIHdvdWxkIGJlIHBhcnNlZCBieSBmcm9tRm9ybWF0KCkKICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZQogICAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgdGhlIHN0cmluZyBpcyBleHBlY3RlZCB0byBiZSBpbiAoc2VlIGRlc2NyaXB0aW9uKQogICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRha2VuIGJ5IGZyb21Gb3JtYXQoKQogICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICovCiAgICBzdGF0aWMgZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHsKICAgICAgY29uc3QgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsIH0gPSBvcHRpb25zLAogICAgICAgIGxvY2FsZVRvVXNlID0gTG9jYWxlLmZyb21PcHRzKHsKICAgICAgICAgIGxvY2FsZSwKICAgICAgICAgIG51bWJlcmluZ1N5c3RlbSwKICAgICAgICAgIGRlZmF1bHRUb0VOOiB0cnVlLAogICAgICAgIH0pOwogICAgICByZXR1cm4gZXhwbGFpbkZyb21Ub2tlbnMobG9jYWxlVG9Vc2UsIHRleHQsIGZtdCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdEV4cGxhaW4gaW5zdGVhZAogICAgICovCiAgICBzdGF0aWMgZnJvbVN0cmluZ0V4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHsKICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXRFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucyk7CiAgICB9CgogICAgLy8gRk9STUFUIFBSRVNFVFMKCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgMTAvMTQvMTk4MwogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFX1NIT1JUKCkgewogICAgICByZXR1cm4gREFURV9TSE9SVDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MycKICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgREFURV9NRUQoKSB7CiAgICAgIHJldHVybiBEQVRFX01FRDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaSwgT2N0IDE0LCAxOTgzJwogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFX01FRF9XSVRIX1dFRUtEQVkoKSB7CiAgICAgIHJldHVybiBEQVRFX01FRF9XSVRIX1dFRUtEQVk7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzJwogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFX0ZVTEwoKSB7CiAgICAgIHJldHVybiBEQVRFX0ZVTEw7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdUdWVzZGF5LCBPY3RvYmVyIDE0LCAxOTgzJwogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFX0hVR0UoKSB7CiAgICAgIHJldHVybiBEQVRFX0hVR0U7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FX1NJTVBMRSgpIHsKICAgICAgcmV0dXJuIFRJTUVfU0lNUExFOwogICAgfQoKICAgIC8qKgogICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgVElNRV9XSVRIX1NFQ09ORFMoKSB7CiAgICAgIHJldHVybiBUSU1FX1dJVEhfU0VDT05EUzsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUKCkgewogICAgICByZXR1cm4gVElNRV9XSVRIX1NIT1JUX09GRlNFVDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FX1dJVEhfTE9OR19PRkZTRVQoKSB7CiAgICAgIHJldHVybiBUSU1FX1dJVEhfTE9OR19PRkZTRVQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMCcsIGFsd2F5cyAyNC1ob3VyLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FXzI0X1NJTVBMRSgpIHsKICAgICAgcmV0dXJuIFRJTUVfMjRfU0lNUExFOwogICAgfQoKICAgIC8qKgogICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMnLCBhbHdheXMgMjQtaG91ci4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NFQ09ORFMoKSB7CiAgICAgIHJldHVybiBUSU1FXzI0X1dJVEhfU0VDT05EUzsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEVEVCcsIGFsd2F5cyAyNC1ob3VyLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUKCkgewogICAgICByZXR1cm4gVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVDsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScsIGFsd2F5cyAyNC1ob3VyLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQoKSB7CiAgICAgIHJldHVybiBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCiAgICAgKiBAdHlwZSB7T2JqZWN0fQogICAgICovCiAgICBzdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUKCkgewogICAgICByZXR1cm4gREFURVRJTUVfU0hPUlQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwOjMzIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCiAgICAgKiBAdHlwZSB7T2JqZWN0fQogICAgICovCiAgICBzdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUygpIHsKICAgICAgcmV0dXJuIERBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUzsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFVElNRV9NRUQoKSB7CiAgICAgIHJldHVybiBEQVRFVElNRV9NRUQ7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUygpIHsKICAgICAgcmV0dXJuIERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFM7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmksIDE0IE9jdCAxOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCiAgICAgKiBAdHlwZSB7T2JqZWN0fQogICAgICovCiAgICBzdGF0aWMgZ2V0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkoKSB7CiAgICAgIHJldHVybiBEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZOwogICAgfQoKICAgIC8qKgogICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MywgOTozMCBBTSBFRFQnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgREFURVRJTUVfRlVMTCgpIHsKICAgICAgcmV0dXJuIERBVEVUSU1FX0ZVTEw7CiAgICB9CgogICAgLyoqCiAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzLCA5OjMwOjMzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUygpIHsKICAgICAgcmV0dXJuIERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTOwogICAgfQoKICAgIC8qKgogICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpZGF5LCBPY3RvYmVyIDE0LCAxOTgzLCA5OjMwIEFNIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgogICAgICogQHR5cGUge09iamVjdH0KICAgICAqLwogICAgc3RhdGljIGdldCBEQVRFVElNRV9IVUdFKCkgewogICAgICByZXR1cm4gREFURVRJTUVfSFVHRTsKICAgIH0KCiAgICAvKioKICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaWRheSwgT2N0b2JlciAxNCwgMTk4MywgOTozMDozMyBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgKi8KICAgIHN0YXRpYyBnZXQgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMoKSB7CiAgICAgIHJldHVybiBEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUzsKICAgIH0KICB9CgogIC8qKgogICAqIEBwcml2YXRlCiAgICovCiAgZnVuY3Rpb24gZnJpZW5kbHlEYXRlVGltZShkYXRlVGltZWlzaCkgewogICAgaWYgKERhdGVUaW1lLmlzRGF0ZVRpbWUoZGF0ZVRpbWVpc2gpKSB7CiAgICAgIHJldHVybiBkYXRlVGltZWlzaDsKICAgIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgZGF0ZVRpbWVpc2gudmFsdWVPZiAmJiBpc051bWJlcihkYXRlVGltZWlzaC52YWx1ZU9mKCkpKSB7CiAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tSlNEYXRlKGRhdGVUaW1laXNoKTsKICAgIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgdHlwZW9mIGRhdGVUaW1laXNoID09PSAib2JqZWN0IikgewogICAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbU9iamVjdChkYXRlVGltZWlzaCk7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoCiAgICAgICAgYFVua25vd24gZGF0ZXRpbWUgYXJndW1lbnQ6ICR7ZGF0ZVRpbWVpc2h9LCBvZiB0eXBlICR7dHlwZW9mIGRhdGVUaW1laXNofWAKICAgICAgKTsKICAgIH0KICB9CgogIC8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgLy8gUXVlcnkgU2V0dGluZ3MgLy8KICAvLy8vLy8vLy8vLy8vLy8vLy8vLwogIGNvbnN0IERFRkFVTFRfUVVFUllfU0VUVElOR1MgPSB7CiAgICAgIHJlbmRlck51bGxBczogIlxcLSIsCiAgICAgIHRhc2tDb21wbGV0aW9uVHJhY2tpbmc6IGZhbHNlLAogICAgICB0YXNrQ29tcGxldGlvblVzZUVtb2ppU2hvcnRoYW5kOiBmYWxzZSwKICAgICAgdGFza0NvbXBsZXRpb25UZXh0OiAiY29tcGxldGlvbiIsCiAgICAgIHRhc2tDb21wbGV0aW9uRGF0ZUZvcm1hdDogInl5eXktTU0tZGQiLAogICAgICByZWN1cnNpdmVTdWJUYXNrQ29tcGxldGlvbjogZmFsc2UsCiAgICAgIHdhcm5PbkVtcHR5UmVzdWx0OiB0cnVlLAogICAgICByZWZyZXNoRW5hYmxlZDogdHJ1ZSwKICAgICAgcmVmcmVzaEludGVydmFsOiAyNTAwLAogICAgICBkZWZhdWx0RGF0ZUZvcm1hdDogIk1NTU0gZGQsIHl5eXkiLAogICAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6ICJoOm1tIGEgLSBNTU1NIGRkLCB5eXl5IiwKICAgICAgbWF4UmVjdXJzaXZlUmVuZGVyRGVwdGg6IDQsCiAgICAgIHRhYmxlSWRDb2x1bW5OYW1lOiAiRmlsZSIsCiAgICAgIHRhYmxlR3JvdXBDb2x1bW5OYW1lOiAiR3JvdXAiLAogICAgICBzaG93UmVzdWx0Q291bnQ6IHRydWUsCiAgfTsKICBjb25zdCBERUZBVUxUX0VYUE9SVF9TRVRUSU5HUyA9IHsKICAgICAgYWxsb3dIdG1sOiB0cnVlLAogIH07CiAgLyoqIERlZmF1bHQgc2V0dGluZ3MgZm9yIGRhdGF2aWV3IG9uIGluc3RhbGwuICovCiAgKHsKICAgICAgLi4uREVGQVVMVF9RVUVSWV9TRVRUSU5HUywKICAgICAgLi4uREVGQVVMVF9FWFBPUlRfU0VUVElOR1MsCiAgICAgIC4uLnsKICAgICAgICAgIGlubGluZVF1ZXJ5UHJlZml4OiAiPSIsCiAgICAgICAgICBpbmxpbmVKc1F1ZXJ5UHJlZml4OiAiJD0iLAogICAgICAgICAgaW5saW5lUXVlcmllc0luQ29kZWJsb2NrczogdHJ1ZSwKICAgICAgICAgIGVuYWJsZUlubGluZURhdGF2aWV3OiB0cnVlLAogICAgICAgICAgZW5hYmxlRGF0YXZpZXdKczogZmFsc2UsCiAgICAgICAgICBlbmFibGVJbmxpbmVEYXRhdmlld0pzOiBmYWxzZSwKICAgICAgICAgIHByZXR0eVJlbmRlcklubGluZUZpZWxkczogdHJ1ZSwKICAgICAgICAgIHByZXR0eVJlbmRlcklubGluZUZpZWxkc0luTGl2ZVByZXZpZXc6IHRydWUsCiAgICAgICAgICBkYXRhdmlld0pzS2V5d29yZDogImRhdGF2aWV3anMiLAogICAgICB9LAogIH0pOwoKICAvKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuICovCiAgY2xhc3MgU3VjY2VzcyB7CiAgICAgIHZhbHVlOwogICAgICBzdWNjZXNzZnVsOwogICAgICBjb25zdHJ1Y3Rvcih2YWx1ZSkgewogICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gdHJ1ZTsKICAgICAgfQogICAgICBtYXAoZikgewogICAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKGYodGhpcy52YWx1ZSkpOwogICAgICB9CiAgICAgIGZsYXRNYXAoZikgewogICAgICAgICAgcmV0dXJuIGYodGhpcy52YWx1ZSk7CiAgICAgIH0KICAgICAgbWFwRXJyKGYpIHsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGJpbWFwKHN1Y2MsIF9mYWlsKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5tYXAoc3VjYyk7CiAgICAgIH0KICAgICAgb3JFbHNlKF92YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7CiAgICAgIH0KICAgICAgY2FzdCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIG9yRWxzZVRocm93KF9tZXNzYWdlKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKICAgICAgfQogIH0KICAvKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuICovCiAgY2xhc3MgRmFpbHVyZSB7CiAgICAgIGVycm9yOwogICAgICBzdWNjZXNzZnVsOwogICAgICBjb25zdHJ1Y3RvcihlcnJvcikgewogICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gZmFsc2U7CiAgICAgIH0KICAgICAgbWFwKF9mKSB7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBmbGF0TWFwKF9mKSB7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBtYXBFcnIoZikgewogICAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGYodGhpcy5lcnJvcikpOwogICAgICB9CiAgICAgIGJpbWFwKF9zdWNjLCBmYWlsKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5tYXBFcnIoZmFpbCk7CiAgICAgIH0KICAgICAgb3JFbHNlKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgY2FzdCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIG9yRWxzZVRocm93KG1lc3NhZ2UpIHsKICAgICAgICAgIGlmIChtZXNzYWdlKQogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKHRoaXMuZXJyb3IpKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIiIgKyB0aGlzLmVycm9yKTsKICAgICAgfQogIH0KICAvKiogTW9uYWRpYyAnUmVzdWx0JyB0eXBlIHdoaWNoIGVuY2Fwc3VsYXRlcyB3aGV0aGVyIGEgcHJvY2VkdXJlIHN1Y2NlZWRlZCBvciBmYWlsZWQsIGFzIHdlbGwgYXMgaXQncyByZXR1cm4gdmFsdWUuICovCiAgdmFyIFJlc3VsdDsKICAoZnVuY3Rpb24gKFJlc3VsdCkgewogICAgICAvKiogQ29uc3RydWN0IGEgbmV3IHN1Y2Nlc3MgcmVzdWx0IHdyYXBwaW5nIHRoZSBnaXZlbiB2YWx1ZS4gKi8KICAgICAgZnVuY3Rpb24gc3VjY2Vzcyh2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKHZhbHVlKTsKICAgICAgfQogICAgICBSZXN1bHQuc3VjY2VzcyA9IHN1Y2Nlc3M7CiAgICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgZmFpbHVyZSB2YWx1ZSB3cmFwcGluZyB0aGUgZ2l2ZW4gZXJyb3IuICovCiAgICAgIGZ1bmN0aW9uIGZhaWx1cmUoZXJyb3IpIHsKICAgICAgICAgIHJldHVybiBuZXcgRmFpbHVyZShlcnJvcik7CiAgICAgIH0KICAgICAgUmVzdWx0LmZhaWx1cmUgPSBmYWlsdXJlOwogICAgICAvKiogSm9pbiB0d28gcmVzdWx0cyB3aXRoIGEgYmktZnVuY3Rpb24gYW5kIHJldHVybiBhIG5ldyByZXN1bHQuICovCiAgICAgIGZ1bmN0aW9uIGZsYXRNYXAyKGZpcnN0LCBzZWNvbmQsIGYpIHsKICAgICAgICAgIGlmIChmaXJzdC5zdWNjZXNzZnVsKSB7CiAgICAgICAgICAgICAgaWYgKHNlY29uZC5zdWNjZXNzZnVsKQogICAgICAgICAgICAgICAgICByZXR1cm4gZihmaXJzdC52YWx1ZSwgc2Vjb25kLnZhbHVlKTsKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlKHNlY29uZC5lcnJvcik7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZShmaXJzdC5lcnJvcik7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgUmVzdWx0LmZsYXRNYXAyID0gZmxhdE1hcDI7CiAgICAgIC8qKiBKb2luIHR3byByZXN1bHRzIHdpdGggYSBiaS1mdW5jdGlvbiBhbmQgcmV0dXJuIGEgbmV3IHJlc3VsdC4gKi8KICAgICAgZnVuY3Rpb24gbWFwMihmaXJzdCwgc2Vjb25kLCBmKSB7CiAgICAgICAgICByZXR1cm4gZmxhdE1hcDIoZmlyc3QsIHNlY29uZCwgKGEsIGIpID0+IHN1Y2Nlc3MoZihhLCBiKSkpOwogICAgICB9CiAgICAgIFJlc3VsdC5tYXAyID0gbWFwMjsKICB9KShSZXN1bHQgfHwgKFJlc3VsdCA9IHt9KSk7CgogIHZhciBjb21tb25qc0dsb2JhbCA9IHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbFRoaXMgOiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHt9OwoKICB2YXIgcGFyc2ltbW9uX3VtZF9taW4gPSB7ZXhwb3J0czoge319OwoKICBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzOwoKICAoZnVuY3Rpb24gKG1vZHVsZSwgZXhwb3J0cykgewogIAkhZnVuY3Rpb24obix0KXttb2R1bGUuZXhwb3J0cz10KCk7fSgidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjpjb21tb25qc0dsb2JhbCxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgdD17fTtmdW5jdGlvbiByKGUpe2lmKHRbZV0pcmV0dXJuIHRbZV0uZXhwb3J0czt2YXIgdT10W2VdPXtpOmUsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gbltlXS5jYWxsKHUuZXhwb3J0cyx1LHUuZXhwb3J0cyxyKSx1Lmw9ITAsdS5leHBvcnRzfXJldHVybiByLm09bixyLmM9dCxyLmQ9ZnVuY3Rpb24obix0LGUpe3IubyhuLHQpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkobix0LHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCxnZXQ6ZX0pO30sci5yPWZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt9LHIubj1mdW5jdGlvbihuKXt2YXIgdD1uJiZuLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gbi5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBufTtyZXR1cm4gci5kKHQsImEiLHQpLHR9LHIubz1mdW5jdGlvbihuLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KX0sci5wPSIiLHIoci5zPTApfShbZnVuY3Rpb24obix0LHIpe2Z1bmN0aW9uIGUobil7aWYoISh0aGlzIGluc3RhbmNlb2YgZSkpcmV0dXJuIG5ldyBlKG4pO3RoaXMuXz1uO312YXIgdT1lLnByb3RvdHlwZTtmdW5jdGlvbiBvKG4sdCl7Zm9yKHZhciByPTA7cjxuO3IrKyl0KHIpO31mdW5jdGlvbiBpKG4sdCxyKXtyZXR1cm4gZnVuY3Rpb24obix0KXtvKHQubGVuZ3RoLGZ1bmN0aW9uKHIpe24odFtyXSxyLHQpO30pO30oZnVuY3Rpb24ocixlLHUpe3Q9bih0LHIsZSx1KTt9LHIpLHR9ZnVuY3Rpb24gYShuLHQpe3JldHVybiBpKGZ1bmN0aW9uKHQscixlLHUpe3JldHVybiB0LmNvbmNhdChbbihyLGUsdSldKX0sW10sdCl9ZnVuY3Rpb24gZihuLHQpe3ZhciByPXt2OjAsYnVmOnR9O3JldHVybiBvKG4sZnVuY3Rpb24oKXt2YXIgbjtyPXt2OnIudjw8MXwobj1yLmJ1ZixuWzBdPj43KSxidWY6ZnVuY3Rpb24obil7dmFyIHQ9aShmdW5jdGlvbihuLHQscixlKXtyZXR1cm4gbi5jb25jYXQocj09PWUubGVuZ3RoLTE/QnVmZmVyLmZyb20oW3QsMF0pLnJlYWRVSW50MTZCRSgwKTplLnJlYWRVSW50MTZCRShyKSl9LFtdLG4pO3JldHVybiBCdWZmZXIuZnJvbShhKGZ1bmN0aW9uKG4pe3JldHVybiAobjw8MSY2NTUzNSk+Pjh9LHQpKX0oci5idWYpfTt9KSxyfWZ1bmN0aW9uIGMoKXtyZXR1cm4gInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXJ9ZnVuY3Rpb24gcygpe2lmKCFjKCkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIgZ2xvYmFsIGRvZXMgbm90IGV4aXN0OyBwbGVhc2UgdXNlIHdlYnBhY2sgaWYgeW91IG5lZWQgdG8gcGFyc2UgQnVmZmVycyBpbiB0aGUgYnJvd3Nlci4iKX1mdW5jdGlvbiBsKG4pe3MoKTt2YXIgdD1pKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4rdH0sMCxuKTtpZih0JTghPTApdGhyb3cgbmV3IEVycm9yKCJUaGUgYml0cyBbIituLmpvaW4oIiwgIikrIl0gYWRkIHVwIHRvICIrdCsiIHdoaWNoIGlzIG5vdCBhbiBldmVuIG51bWJlciBvZiBieXRlczsgdGhlIHRvdGFsIHNob3VsZCBiZSBkaXZpc2libGUgYnkgOCIpO3ZhciByLHU9dC84LG89KHI9ZnVuY3Rpb24obil7cmV0dXJuIG4+NDh9LGkoZnVuY3Rpb24obix0KXtyZXR1cm4gbnx8KHIodCk/dDpuKX0sbnVsbCxuKSk7aWYobyl0aHJvdyBuZXcgRXJyb3IobysiIGJpdCByYW5nZSByZXF1ZXN0ZWQgZXhjZWVkcyA0OCBiaXQgKDYgYnl0ZSkgTnVtYmVyIG1heC4iKTtyZXR1cm4gbmV3IGUoZnVuY3Rpb24odCxyKXt2YXIgZT11K3I7cmV0dXJuIGU+dC5sZW5ndGg/eChyLHUudG9TdHJpbmcoKSsiIGJ5dGVzIik6YihlLGkoZnVuY3Rpb24obix0KXt2YXIgcj1mKHQsbi5idWYpO3JldHVybiB7Y29sbDpuLmNvbGwuY29uY2F0KHIudiksYnVmOnIuYnVmfX0se2NvbGw6W10sYnVmOnQuc2xpY2UocixlKX0sbikuY29sbCl9KX1mdW5jdGlvbiBoKG4sdCl7cmV0dXJuIG5ldyBlKGZ1bmN0aW9uKHIsZSl7cmV0dXJuIHMoKSxlK3Q+ci5sZW5ndGg/eChlLHQrIiBieXRlcyBmb3IgIituKTpiKGUrdCxyLnNsaWNlKGUsZSt0KSl9KX1mdW5jdGlvbiBwKG4sdCl7aWYoIm51bWJlciIhPXR5cGVvZihyPXQpfHxNYXRoLmZsb29yKHIpIT09cnx8dDwwfHx0PjYpdGhyb3cgbmV3IEVycm9yKG4rIiByZXF1aXJlcyBpbnRlZ2VyIGxlbmd0aCBpbiByYW5nZSBbMCwgNl0uIik7dmFyIHI7fWZ1bmN0aW9uIGQobil7cmV0dXJuIHAoInVpbnRCRSIsbiksaCgidWludEJFKCIrbisiKSIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50QkUoMCxuKX0pfWZ1bmN0aW9uIHYobil7cmV0dXJuIHAoInVpbnRMRSIsbiksaCgidWludExFKCIrbisiKSIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50TEUoMCxuKX0pfWZ1bmN0aW9uIGcobil7cmV0dXJuIHAoImludEJFIixuKSxoKCJpbnRCRSgiK24rIikiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50QkUoMCxuKX0pfWZ1bmN0aW9uIG0obil7cmV0dXJuIHAoImludExFIixuKSxoKCJpbnRMRSgiK24rIikiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50TEUoMCxuKX0pfWZ1bmN0aW9uIHkobil7cmV0dXJuIG4gaW5zdGFuY2VvZiBlfWZ1bmN0aW9uIEUobil7cmV0dXJuICJbb2JqZWN0IEFycmF5XSI9PT17fS50b1N0cmluZy5jYWxsKG4pfWZ1bmN0aW9uIHcobil7cmV0dXJuIGMoKSYmQnVmZmVyLmlzQnVmZmVyKG4pfWZ1bmN0aW9uIGIobix0KXtyZXR1cm4ge3N0YXR1czohMCxpbmRleDpuLHZhbHVlOnQsZnVydGhlc3Q6LTEsZXhwZWN0ZWQ6W119fWZ1bmN0aW9uIHgobix0KXtyZXR1cm4gRSh0KXx8KHQ9W3RdKSx7c3RhdHVzOiExLGluZGV4Oi0xLHZhbHVlOm51bGwsZnVydGhlc3Q6bixleHBlY3RlZDp0fX1mdW5jdGlvbiBCKG4sdCl7aWYoIXQpcmV0dXJuIG47aWYobi5mdXJ0aGVzdD50LmZ1cnRoZXN0KXJldHVybiBuO3ZhciByPW4uZnVydGhlc3Q9PT10LmZ1cnRoZXN0P2Z1bmN0aW9uKG4sdCl7aWYoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1lLl9zdXBwb3J0c1NldClyZXR1cm4gZS5fc3VwcG9ydHNTZXQ7dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQ7cmV0dXJuIGUuX3N1cHBvcnRzU2V0PW4sbn0oKSYmQXJyYXkuZnJvbSl7Zm9yKHZhciByPW5ldyBTZXQobiksdT0wO3U8dC5sZW5ndGg7dSsrKXIuYWRkKHRbdV0pO3ZhciBvPUFycmF5LmZyb20ocik7cmV0dXJuIG8uc29ydCgpLG99Zm9yKHZhciBpPXt9LGE9MDthPG4ubGVuZ3RoO2ErKylpW25bYV1dPSEwO2Zvcih2YXIgZj0wO2Y8dC5sZW5ndGg7ZisrKWlbdFtmXV09ITA7dmFyIGM9W107Zm9yKHZhciBzIGluIGkpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscykmJmMucHVzaChzKTtyZXR1cm4gYy5zb3J0KCksY30obi5leHBlY3RlZCx0LmV4cGVjdGVkKTp0LmV4cGVjdGVkO3JldHVybiB7c3RhdHVzOm4uc3RhdHVzLGluZGV4Om4uaW5kZXgsdmFsdWU6bi52YWx1ZSxmdXJ0aGVzdDp0LmZ1cnRoZXN0LGV4cGVjdGVkOnJ9fXZhciBqPXt9O2Z1bmN0aW9uIFMobix0KXtpZih3KG4pKXJldHVybiB7b2Zmc2V0OnQsbGluZTotMSxjb2x1bW46LTF9O24gaW4ganx8KGpbbl09e30pO2Zvcih2YXIgcj1qW25dLGU9MCx1PTAsbz0wLGk9dDtpPj0wOyl7aWYoaSBpbiByKXtlPXJbaV0ubGluZSwwPT09byYmKG89cltpXS5saW5lU3RhcnQpO2JyZWFrfSgiXG4iPT09bi5jaGFyQXQoaSl8fCJcciI9PT1uLmNoYXJBdChpKSYmIlxuIiE9PW4uY2hhckF0KGkrMSkpJiYodSsrLDA9PT1vJiYobz1pKzEpKSxpLS07fXZhciBhPWUrdSxmPXQtbztyZXR1cm4gclt0XT17bGluZTphLGxpbmVTdGFydDpvfSx7b2Zmc2V0OnQsbGluZTphKzEsY29sdW1uOmYrMX19ZnVuY3Rpb24gXyhuKXtpZigheShuKSl0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHBhcnNlcjogIituKX1mdW5jdGlvbiBMKG4sdCl7cmV0dXJuICJzdHJpbmciPT10eXBlb2Ygbj9uLmNoYXJBdCh0KTpuW3RdfWZ1bmN0aW9uIE8obil7aWYoIm51bWJlciIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcigibm90IGEgbnVtYmVyOiAiK24pfWZ1bmN0aW9uIGsobil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKCJub3QgYSBmdW5jdGlvbjogIituKX1mdW5jdGlvbiBQKG4pe2lmKCJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHN0cmluZzogIituKX12YXIgcT0yLEE9MyxJPTgsRj01KkksTT00Kkksej0iICAiO2Z1bmN0aW9uIFIobix0KXtyZXR1cm4gbmV3IEFycmF5KHQrMSkuam9pbihuKX1mdW5jdGlvbiBVKG4sdCxyKXt2YXIgZT10LW4ubGVuZ3RoO3JldHVybiBlPD0wP246UihyLGUpK259ZnVuY3Rpb24gVyhuLHQscixlKXtyZXR1cm4ge2Zyb206bi10PjA/bi10OjAsdG86bityPmU/ZTpuK3J9fWZ1bmN0aW9uIEQobix0KXt2YXIgcixlLHUsbyxmLGM9dC5pbmRleCxzPWMub2Zmc2V0LGw9MTtpZihzPT09bi5sZW5ndGgpcmV0dXJuICJHb3QgdGhlIGVuZCBvZiB0aGUgaW5wdXQiO2lmKHcobikpe3ZhciBoPXMtcyVJLHA9cy1oLGQ9VyhoLEYsTStJLG4ubGVuZ3RoKSx2PWEoZnVuY3Rpb24obil7cmV0dXJuIGEoZnVuY3Rpb24obil7cmV0dXJuIFUobi50b1N0cmluZygxNiksMiwiMCIpfSxuKX0sZnVuY3Rpb24obix0KXt2YXIgcj1uLmxlbmd0aCxlPVtdLHU9MDtpZihyPD10KXJldHVybiBbbi5zbGljZSgpXTtmb3IodmFyIG89MDtvPHI7bysrKWVbdV18fGUucHVzaChbXSksZVt1XS5wdXNoKG5bb10pLChvKzEpJXQ9PTAmJnUrKztyZXR1cm4gZX0obi5zbGljZShkLmZyb20sZC50bykudG9KU09OKCkuZGF0YSxJKSk7bz1mdW5jdGlvbihuKXtyZXR1cm4gMD09PW4uZnJvbSYmMT09PW4udG8/e2Zyb206bi5mcm9tLHRvOm4udG99Ontmcm9tOm4uZnJvbS9JLHRvOk1hdGguZmxvb3Iobi50by9JKX19KGQpLGU9aC9JLHI9MypwLHA+PTQmJihyKz0xKSxsPTIsdT1hKGZ1bmN0aW9uKG4pe3JldHVybiBuLmxlbmd0aDw9ND9uLmpvaW4oIiAiKTpuLnNsaWNlKDAsNCkuam9pbigiICIpKyIgICIrbi5zbGljZSg0KS5qb2luKCIgIil9LHYpLChmPSg4KihvLnRvPjA/by50by0xOm8udG8pKS50b1N0cmluZygxNikubGVuZ3RoKTwyJiYoZj0yKTt9ZWxzZSB7dmFyIGc9bi5zcGxpdCgvXHJcbnxbXG5cclx1MjAyOFx1MjAyOV0vKTtyPWMuY29sdW1uLTEsZT1jLmxpbmUtMSxvPVcoZSxxLEEsZy5sZW5ndGgpLHU9Zy5zbGljZShvLmZyb20sby50byksZj1vLnRvLnRvU3RyaW5nKCkubGVuZ3RoO312YXIgbT1lLW8uZnJvbTtyZXR1cm4gdyhuKSYmKGY9KDgqKG8udG8+MD9vLnRvLTE6by50bykpLnRvU3RyaW5nKDE2KS5sZW5ndGgpPDImJihmPTIpLGkoZnVuY3Rpb24odCxlLHUpe3ZhciBpLGE9dT09PW0sYz1hPyI+ICI6ejtyZXR1cm4gaT13KG4pP1UoKDgqKG8uZnJvbSt1KSkudG9TdHJpbmcoMTYpLGYsIjAiKTpVKChvLmZyb20rdSsxKS50b1N0cmluZygpLGYsIiAiKSxbXS5jb25jYXQodCxbYytpKyIgfCAiK2VdLGE/W3orUigiICIsZikrIiB8ICIrVSgiIixyLCIgIikrUigiXiIsbCldOltdKX0sW10sdSkuam9pbigiXG4iKX1mdW5jdGlvbiBOKG4sdCl7cmV0dXJuIFsiXG4iLCItLSBQQVJTSU5HIEZBSUxFRCAiK1IoIi0iLDUwKSwiXG5cbiIsRChuLHQpLCJcblxuIiwocj10LmV4cGVjdGVkLDE9PT1yLmxlbmd0aD8iRXhwZWN0ZWQ6XG5cbiIrclswXToiRXhwZWN0ZWQgb25lIG9mIHRoZSBmb2xsb3dpbmc6IFxuXG4iK3Iuam9pbigiLCAiKSksIlxuIl0uam9pbigiIik7dmFyIHI7fWZ1bmN0aW9uIEcobil7cmV0dXJuIHZvaWQgMCE9PW4uZmxhZ3M/bi5mbGFnczpbbi5nbG9iYWw/ImciOiIiLG4uaWdub3JlQ2FzZT8iaSI6IiIsbi5tdWx0aWxpbmU/Im0iOiIiLG4udW5pY29kZT8idSI6IiIsbi5zdGlja3k/InkiOiIiXS5qb2luKCIiKX1mdW5jdGlvbiBDKCl7Zm9yKHZhciBuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx0PW4ubGVuZ3RoLHI9MDtyPHQ7cis9MSlfKG5bcl0pO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7Zm9yKHZhciB1LG89bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSs9MSl7aWYoISh1PUIobltpXS5fKHIsZSksdSkpLnN0YXR1cylyZXR1cm4gdTtvW2ldPXUudmFsdWUsZT11LmluZGV4O31yZXR1cm4gQihiKGUsbyksdSl9KX1mdW5jdGlvbiBKKCl7dmFyIG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKDA9PT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoInNlcU1hcCBuZWVkcyBhdCBsZWFzdCBvbmUgYXJndW1lbnQiKTt2YXIgdD1uLnBvcCgpO3JldHVybiBrKHQpLEMuYXBwbHkobnVsbCxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIHQuYXBwbHkobnVsbCxuKX0pfWZ1bmN0aW9uIFQoKXt2YXIgbj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksdD1uLmxlbmd0aDtpZigwPT09dClyZXR1cm4gWSgiemVybyBhbHRlcm5hdGVzIik7Zm9yKHZhciByPTA7cjx0O3IrPTEpXyhuW3JdKTtyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZSx1PTA7dTxuLmxlbmd0aDt1Kz0xKWlmKChlPUIoblt1XS5fKHQsciksZSkpLnN0YXR1cylyZXR1cm4gZTtyZXR1cm4gZX0pfWZ1bmN0aW9uIFYobix0KXtyZXR1cm4gSChuLHQpLm9yKFgoW10pKX1mdW5jdGlvbiBIKG4sdCl7cmV0dXJuIF8obiksXyh0KSxKKG4sdC50aGVuKG4pLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBbbl0uY29uY2F0KHQpfSl9ZnVuY3Rpb24gSyhuKXtQKG4pO3ZhciB0PSInIituKyInIjtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PWUrbi5sZW5ndGgsbz1yLnNsaWNlKGUsdSk7cmV0dXJuIG89PT1uP2IodSxvKTp4KGUsdCl9KX1mdW5jdGlvbiBRKG4sdCl7IWZ1bmN0aW9uKG4pe2lmKCEobiBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgbmV3IEVycm9yKCJub3QgYSByZWdleHA6ICIrbik7Zm9yKHZhciB0PUcobikscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgZT10LmNoYXJBdChyKTtpZigiaSIhPT1lJiYibSIhPT1lJiYidSIhPT1lJiYicyIhPT1lKXRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgcmVnZXhwIGZsYWcgIicrZSsnIjogJytuKX19KG4pLGFyZ3VtZW50cy5sZW5ndGg+PTI/Tyh0KTp0PTA7dmFyIHI9ZnVuY3Rpb24obil7cmV0dXJuIFJlZ0V4cCgiXig/OiIrbi5zb3VyY2UrIikiLEcobikpfShuKSx1PSIiK247cmV0dXJuIGUoZnVuY3Rpb24obixlKXt2YXIgbz1yLmV4ZWMobi5zbGljZShlKSk7aWYobyl7aWYoMDw9dCYmdDw9by5sZW5ndGgpe3ZhciBpPW9bMF0sYT1vW3RdO3JldHVybiBiKGUraS5sZW5ndGgsYSl9cmV0dXJuIHgoZSwidmFsaWQgbWF0Y2ggZ3JvdXAgKDAgdG8gIitvLmxlbmd0aCsiKSBpbiAiK3UpfXJldHVybiB4KGUsdSl9KX1mdW5jdGlvbiBYKG4pe3JldHVybiBlKGZ1bmN0aW9uKHQscil7cmV0dXJuIGIocixuKX0pfWZ1bmN0aW9uIFkobil7cmV0dXJuIGUoZnVuY3Rpb24odCxyKXtyZXR1cm4geChyLG4pfSl9ZnVuY3Rpb24gWihuKXtpZih5KG4pKXJldHVybiBlKGZ1bmN0aW9uKHQscil7dmFyIGU9bi5fKHQscik7cmV0dXJuIGUuaW5kZXg9cixlLnZhbHVlPSIiLGV9KTtpZigic3RyaW5nIj09dHlwZW9mIG4pcmV0dXJuIFooSyhuKSk7aWYobiBpbnN0YW5jZW9mIFJlZ0V4cClyZXR1cm4gWihRKG4pKTt0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHN0cmluZywgcmVnZXhwLCBvciBwYXJzZXI6ICIrbil9ZnVuY3Rpb24gJChuKXtyZXR1cm4gXyhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9bi5fKHQsciksdT10LnNsaWNlKHIsZS5pbmRleCk7cmV0dXJuIGUuc3RhdHVzP3gociwnbm90ICInK3UrJyInKTpiKHIsbnVsbCl9KX1mdW5jdGlvbiBubihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9TCh0LHIpO3JldHVybiByPHQubGVuZ3RoJiZuKGUpP2IocisxLGUpOngociwiYSBjaGFyYWN0ZXIvYnl0ZSBtYXRjaGluZyAiK24pfSl9ZnVuY3Rpb24gdG4obix0KXthcmd1bWVudHMubGVuZ3RoPDImJih0PW4sbj12b2lkIDApO3ZhciByPWUoZnVuY3Rpb24obixlKXtyZXR1cm4gci5fPXQoKS5fLHIuXyhuLGUpfSk7cmV0dXJuIG4/ci5kZXNjKG4pOnJ9ZnVuY3Rpb24gcm4oKXtyZXR1cm4gWSgiZmFudGFzeS1sYW5kL2VtcHR5Iil9dS5wYXJzZT1mdW5jdGlvbihuKXtpZigic3RyaW5nIiE9dHlwZW9mIG4mJiF3KG4pKXRocm93IG5ldyBFcnJvcigiLnBhcnNlIG11c3QgYmUgY2FsbGVkIHdpdGggYSBzdHJpbmcgb3IgQnVmZmVyIGFzIGl0cyBhcmd1bWVudCIpO3ZhciB0LHI9dGhpcy5za2lwKGFuKS5fKG4sMCk7cmV0dXJuIHQ9ci5zdGF0dXM/e3N0YXR1czohMCx2YWx1ZTpyLnZhbHVlfTp7c3RhdHVzOiExLGluZGV4OlMobixyLmZ1cnRoZXN0KSxleHBlY3RlZDpyLmV4cGVjdGVkfSxkZWxldGUgaltuXSx0fSx1LnRyeVBhcnNlPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMucGFyc2Uobik7aWYodC5zdGF0dXMpcmV0dXJuIHQudmFsdWU7dmFyIHI9TihuLHQpLGU9bmV3IEVycm9yKHIpO3Rocm93IGUudHlwZT0iUGFyc2ltbW9uRXJyb3IiLGUucmVzdWx0PXQsZX0sdS5hc3NlcnQ9ZnVuY3Rpb24obix0KXtyZXR1cm4gdGhpcy5jaGFpbihmdW5jdGlvbihyKXtyZXR1cm4gbihyKT9YKHIpOlkodCl9KX0sdS5vcj1mdW5jdGlvbihuKXtyZXR1cm4gVCh0aGlzLG4pfSx1LnRyaW09ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMud3JhcChuLG4pfSx1LndyYXA9ZnVuY3Rpb24obix0KXtyZXR1cm4gSihuLHRoaXMsdCxmdW5jdGlvbihuLHQpe3JldHVybiB0fSl9LHUudGhydT1mdW5jdGlvbihuKXtyZXR1cm4gbih0aGlzKX0sdS50aGVuPWZ1bmN0aW9uKG4pe3JldHVybiBfKG4pLEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMV19KX0sdS5tYW55PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT1bXSx1PXZvaWQgMDs7KXtpZighKHU9QihuLl8odCxyKSx1KSkuc3RhdHVzKXJldHVybiBCKGIocixlKSx1KTtpZihyPT09dS5pbmRleCl0aHJvdyBuZXcgRXJyb3IoImluZmluaXRlIGxvb3AgZGV0ZWN0ZWQgaW4gLm1hbnkoKSBwYXJzZXIgLS0tIGNhbGxpbmcgLm1hbnkoKSBvbiBhIHBhcnNlciB3aGljaCBjYW4gYWNjZXB0IHplcm8gY2hhcmFjdGVycyBpcyB1c3VhbGx5IHRoZSBjYXVzZSIpO3I9dS5pbmRleCxlLnB1c2godS52YWx1ZSk7fX0pfSx1LnRpZVdpdGg9ZnVuY3Rpb24obil7cmV0dXJuIFAobiksdGhpcy5tYXAoZnVuY3Rpb24odCl7aWYoZnVuY3Rpb24obil7aWYoIUUobikpdGhyb3cgbmV3IEVycm9yKCJub3QgYW4gYXJyYXk6ICIrbil9KHQpLHQubGVuZ3RoKXtQKHRbMF0pO2Zvcih2YXIgcj10WzBdLGU9MTtlPHQubGVuZ3RoO2UrKylQKHRbZV0pLHIrPW4rdFtlXTtyZXR1cm4gcn1yZXR1cm4gIiJ9KX0sdS50aWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aWVXaXRoKCIiKX0sdS50aW1lcz1mdW5jdGlvbihuLHQpe3ZhciByPXRoaXM7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9biksTyhuKSxPKHQpLGUoZnVuY3Rpb24oZSx1KXtmb3IodmFyIG89W10saT12b2lkIDAsYT12b2lkIDAsZj0wO2Y8bjtmKz0xKXtpZihhPUIoaT1yLl8oZSx1KSxhKSwhaS5zdGF0dXMpcmV0dXJuIGE7dT1pLmluZGV4LG8ucHVzaChpLnZhbHVlKTt9Zm9yKDtmPHQmJihhPUIoaT1yLl8oZSx1KSxhKSxpLnN0YXR1cyk7Zis9MSl1PWkuaW5kZXgsby5wdXNoKGkudmFsdWUpO3JldHVybiBCKGIodSxvKSxhKX0pfSx1LnJlc3VsdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSx1LmF0TW9zdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy50aW1lcygwLG4pfSx1LmF0TGVhc3Q9ZnVuY3Rpb24obil7cmV0dXJuIEoodGhpcy50aW1lcyhuKSx0aGlzLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBuLmNvbmNhdCh0KX0pfSx1Lm1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihiKHUuaW5kZXgsbih1LnZhbHVlKSksdSk6dX0pfSx1LmNvbnRyYW1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10LnBhcnNlKG4oci5zbGljZShlKSkpO3JldHVybiB1LnN0YXR1cz9iKGUrci5sZW5ndGgsdS52YWx1ZSk6dX0pfSx1LnByb21hcD1mdW5jdGlvbihuLHQpe3JldHVybiBrKG4pLGsodCksdGhpcy5jb250cmFtYXAobikubWFwKHQpfSx1LnNraXA9ZnVuY3Rpb24obil7cmV0dXJuIEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19KX0sdS5tYXJrPWZ1bmN0aW9uKCl7cmV0dXJuIEooZW4sdGhpcyxlbixmdW5jdGlvbihuLHQscil7cmV0dXJuIHtzdGFydDpuLHZhbHVlOnQsZW5kOnJ9fSl9LHUubm9kZT1mdW5jdGlvbihuKXtyZXR1cm4gSihlbix0aGlzLGVuLGZ1bmN0aW9uKHQscixlKXtyZXR1cm4ge25hbWU6bix2YWx1ZTpyLHN0YXJ0OnQsZW5kOmV9fSl9LHUuc2VwQnk9ZnVuY3Rpb24obil7cmV0dXJuIFYodGhpcyxuKX0sdS5zZXBCeTE9ZnVuY3Rpb24obil7cmV0dXJuIEgodGhpcyxuKX0sdS5sb29rYWhlYWQ9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuc2tpcChaKG4pKX0sdS5ub3RGb2xsb3dlZEJ5PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnNraXAoJChuKSl9LHUuZGVzYz1mdW5jdGlvbihuKXtFKG4pfHwobj1bbl0pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXN8fCh1LmV4cGVjdGVkPW4pLHV9KX0sdS5mYWxsYmFjaz1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5vcihYKG4pKX0sdS5hcD1mdW5jdGlvbihuKXtyZXR1cm4gSihuLHRoaXMsZnVuY3Rpb24obix0KXtyZXR1cm4gbih0KX0pfSx1LmNoYWluPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihuKHUudmFsdWUpLl8ocix1LmluZGV4KSx1KTp1fSl9LHUuY29uY2F0PXUub3IsdS5lbXB0eT1ybix1Lm9mPVgsdVsiZmFudGFzeS1sYW5kL2FwIl09dS5hcCx1WyJmYW50YXN5LWxhbmQvY2hhaW4iXT11LmNoYWluLHVbImZhbnRhc3ktbGFuZC9jb25jYXQiXT11LmNvbmNhdCx1WyJmYW50YXN5LWxhbmQvZW1wdHkiXT11LmVtcHR5LHVbImZhbnRhc3ktbGFuZC9vZiJdPXUub2YsdVsiZmFudGFzeS1sYW5kL21hcCJdPXUubWFwO3ZhciBlbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIodCxTKG4sdCkpfSksdW49ZShmdW5jdGlvbihuLHQpe3JldHVybiB0Pj1uLmxlbmd0aD94KHQsImFueSBjaGFyYWN0ZXIvYnl0ZSIpOmIodCsxLEwobix0KSl9KSxvbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIobi5sZW5ndGgsbi5zbGljZSh0KSl9KSxhbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ8bi5sZW5ndGg/eCh0LCJFT0YiKTpiKHQsbnVsbCl9KSxmbj1RKC9bMC05XS8pLmRlc2MoImEgZGlnaXQiKSxjbj1RKC9bMC05XSovKS5kZXNjKCJvcHRpb25hbCBkaWdpdHMiKSxzbj1RKC9bYS16XS9pKS5kZXNjKCJhIGxldHRlciIpLGxuPVEoL1thLXpdKi9pKS5kZXNjKCJvcHRpb25hbCBsZXR0ZXJzIiksaG49USgvXHMqLykuZGVzYygib3B0aW9uYWwgd2hpdGVzcGFjZSIpLHBuPVEoL1xzKy8pLmRlc2MoIndoaXRlc3BhY2UiKSxkbj1LKCJcciIpLHZuPUsoIlxuIiksZ249SygiXHJcbiIpLG1uPVQoZ24sdm4sZG4pLmRlc2MoIm5ld2xpbmUiKSx5bj1UKG1uLGFuKTtlLmFsbD1vbixlLmFsdD1ULGUuYW55PXVuLGUuY3I9ZG4sZS5jcmVhdGVMYW5ndWFnZT1mdW5jdGlvbihuKXt2YXIgdD17fTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmZnVuY3Rpb24ocil7dFtyXT10bihmdW5jdGlvbigpe3JldHVybiBuW3JdKHQpfSk7fShyKTtyZXR1cm4gdH0sZS5jcmxmPWduLGUuY3VzdG9tPWZ1bmN0aW9uKG4pe3JldHVybiBlKG4oYix4KSl9LGUuZGlnaXQ9Zm4sZS5kaWdpdHM9Y24sZS5lbXB0eT1ybixlLmVuZD15bixlLmVvZj1hbixlLmZhaWw9WSxlLmZvcm1hdEVycm9yPU4sZS5pbmRleD1lbixlLmlzUGFyc2VyPXksZS5sYXp5PXRuLGUubGV0dGVyPXNuLGUubGV0dGVycz1sbixlLmxmPXZuLGUubG9va2FoZWFkPVosZS5tYWtlRmFpbHVyZT14LGUubWFrZVN1Y2Nlc3M9YixlLm5ld2xpbmU9bW4sZS5ub25lT2Y9ZnVuY3Rpb24obil7cmV0dXJuIG5uKGZ1bmN0aW9uKHQpe3JldHVybiBuLmluZGV4T2YodCk8MH0pLmRlc2MoIm5vbmUgb2YgJyIrbisiJyIpfSxlLm5vdEZvbGxvd2VkQnk9JCxlLm9mPVgsZS5vbmVPZj1mdW5jdGlvbihuKXtmb3IodmFyIHQ9bi5zcGxpdCgiIikscj0wO3I8dC5sZW5ndGg7cisrKXRbcl09IiciK3Rbcl0rIiciO3JldHVybiBubihmdW5jdGlvbih0KXtyZXR1cm4gbi5pbmRleE9mKHQpPj0wfSkuZGVzYyh0KX0sZS5vcHRXaGl0ZXNwYWNlPWhuLGUuUGFyc2VyPWUsZS5yYW5nZT1mdW5jdGlvbihuLHQpe3JldHVybiBubihmdW5jdGlvbihyKXtyZXR1cm4gbjw9ciYmcjw9dH0pLmRlc2MobisiLSIrdCl9LGUucmVnZXg9USxlLnJlZ2V4cD1RLGUuc2VwQnk9VixlLnNlcEJ5MT1ILGUuc2VxPUMsZS5zZXFNYXA9SixlLnNlcU9iaj1mdW5jdGlvbigpe2Zvcih2YXIgbix0PXt9LHI9MCx1PShuPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSksbz11Lmxlbmd0aCxpPTA7aTxvO2krPTEpe3ZhciBhPXVbaV07aWYoIXkoYSkpe2lmKEUoYSkmJjI9PT1hLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBhWzBdJiZ5KGFbMV0pKXt2YXIgZj1hWzBdO2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGYpKXRocm93IG5ldyBFcnJvcigic2VxT2JqOiBkdXBsaWNhdGUga2V5ICIrZik7dFtmXT0hMCxyKys7Y29udGludWV9dGhyb3cgbmV3IEVycm9yKCJzZXFPYmogYXJndW1lbnRzIG11c3QgYmUgcGFyc2VycyBvciBbc3RyaW5nLCBwYXJzZXJdIGFycmF5IHBhaXJzLiIpfX1pZigwPT09cil0aHJvdyBuZXcgRXJyb3IoInNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYXJzZXIsIGZvdW5kIHplcm8iKTtyZXR1cm4gZShmdW5jdGlvbihuLHQpe2Zvcih2YXIgcixlPXt9LGk9MDtpPG87aSs9MSl7dmFyIGEsZjtpZihFKHVbaV0pPyhhPXVbaV1bMF0sZj11W2ldWzFdKTooYT1udWxsLGY9dVtpXSksIShyPUIoZi5fKG4sdCkscikpLnN0YXR1cylyZXR1cm4gcjthJiYoZVthXT1yLnZhbHVlKSx0PXIuaW5kZXg7fXJldHVybiBCKGIodCxlKSxyKX0pfSxlLnN0cmluZz1LLGUuc3VjY2VlZD1YLGUudGFrZVdoaWxlPWZ1bmN0aW9uKG4pe3JldHVybiBrKG4pLGUoZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9cjtlPHQubGVuZ3RoJiZuKEwodCxlKSk7KWUrKztyZXR1cm4gYihlLHQuc2xpY2UocixlKSl9KX0sZS50ZXN0PW5uLGUud2hpdGVzcGFjZT1wbixlWyJmYW50YXN5LWxhbmQvZW1wdHkiXT1ybixlWyJmYW50YXN5LWxhbmQvb2YiXT1YLGUuQmluYXJ5PXtiaXRTZXE6bCxiaXRTZXFPYmo6ZnVuY3Rpb24obil7cygpO3ZhciB0PXt9LHI9MCxlPWEoZnVuY3Rpb24obil7aWYoRShuKSl7dmFyIGU9bjtpZigyIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJbIitlLmpvaW4oIiwgIikrIl0gc2hvdWxkIGJlIGxlbmd0aCAyLCBnb3QgbGVuZ3RoICIrZS5sZW5ndGgpO2lmKFAoZVswXSksTyhlWzFdKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlWzBdKSl0aHJvdyBuZXcgRXJyb3IoImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiAiK2VbMF0pO3JldHVybiB0W2VbMF1dPSEwLHIrKyxlfXJldHVybiBPKG4pLFtudWxsLG5dfSxuKTtpZihyPDEpdGhyb3cgbmV3IEVycm9yKCJiaXRTZXFPYmogZXhwZWN0cyBhdCBsZWFzdCBvbmUgbmFtZWQgcGFpciwgZ290IFsiK24uam9pbigiLCAiKSsiXSIpO3ZhciB1PWEoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19LGUpO3JldHVybiBsKGEoZnVuY3Rpb24obil7cmV0dXJuIG5bMV19LGUpKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIGkoZnVuY3Rpb24obix0KXtyZXR1cm4gbnVsbCE9PXRbMF0mJihuW3RbMF1dPXRbMV0pLG59LHt9LGEoZnVuY3Rpb24odCxyKXtyZXR1cm4gW3QsbltyXV19LHUpKX0pfSxieXRlOmZ1bmN0aW9uKG4pe2lmKHMoKSxPKG4pLG4+MjU1KXRocm93IG5ldyBFcnJvcigiVmFsdWUgc3BlY2lmaWVkIHRvIGJ5dGUgY29uc3RydWN0b3IgKCIrbisiPTB4IituLnRvU3RyaW5nKDE2KSsiKSBpcyBsYXJnZXIgaW4gdmFsdWUgdGhhbiBhIHNpbmdsZSBieXRlLiIpO3ZhciB0PShuPjE1PyIweCI6IjB4MCIpK24udG9TdHJpbmcoMTYpO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9TChyLGUpO3JldHVybiB1PT09bj9iKGUrMSx1KTp4KGUsdCl9KX0sYnVmZmVyOmZ1bmN0aW9uKG4pe3JldHVybiBoKCJidWZmZXIiLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gQnVmZmVyLmZyb20obil9KX0sZW5jb2RlZFN0cmluZzpmdW5jdGlvbihuLHQpe3JldHVybiBoKCJzdHJpbmciLHQpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZyhuKX0pfSx1aW50QkU6ZCx1aW50OEJFOmQoMSksdWludDE2QkU6ZCgyKSx1aW50MzJCRTpkKDQpLHVpbnRMRTp2LHVpbnQ4TEU6digxKSx1aW50MTZMRTp2KDIpLHVpbnQzMkxFOnYoNCksaW50QkU6ZyxpbnQ4QkU6ZygxKSxpbnQxNkJFOmcoMiksaW50MzJCRTpnKDQpLGludExFOm0saW50OExFOm0oMSksaW50MTZMRTptKDIpLGludDMyTEU6bSg0KSxmbG9hdEJFOmgoImZsb2F0QkUiLDQpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRmxvYXRCRSgwKX0pLGZsb2F0TEU6aCgiZmxvYXRMRSIsNCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWRGbG9hdExFKDApfSksZG91YmxlQkU6aCgiZG91YmxlQkUiLDgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRG91YmxlQkUoMCl9KSxkb3VibGVMRTpoKCJkb3VibGVMRSIsOCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWREb3VibGVMRSgwKX0pfSxuLmV4cG9ydHM9ZTt9XSl9KTsgCiAgfSAocGFyc2ltbW9uX3VtZF9taW4sIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMpKTsKCiAgdmFyIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cyA9IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHM7CgogIHZhciBlbW9qaVJlZ2V4ID0gKCkgPT4gewogIAkvLyBodHRwczovL210aHMuYmUvZW1vamkKICAJcmV0dXJuIC9bIyowLTldXHVGRTBGP1x1MjBFM3xbXHhBOVx4QUVcdTIwM0NcdTIwNDlcdTIxMjJcdTIxMzlcdTIxOTQtXHUyMTk5XHUyMUE5XHUyMUFBXHUyMzFBXHUyMzFCXHUyMzI4XHUyM0NGXHUyM0VELVx1MjNFRlx1MjNGMVx1MjNGMlx1MjNGOC1cdTIzRkFcdTI0QzJcdTI1QUFcdTI1QUJcdTI1QjZcdTI1QzBcdTI1RkJcdTI1RkNcdTI1RkVcdTI2MDAtXHUyNjA0XHUyNjBFXHUyNjExXHUyNjE0XHUyNjE1XHUyNjE4XHUyNjIwXHUyNjIyXHUyNjIzXHUyNjI2XHUyNjJBXHUyNjJFXHUyNjJGXHUyNjM4LVx1MjYzQVx1MjY0MFx1MjY0Mlx1MjY0OC1cdTI2NTNcdTI2NUZcdTI2NjBcdTI2NjNcdTI2NjVcdTI2NjZcdTI2NjhcdTI2N0JcdTI2N0VcdTI2N0ZcdTI2OTJcdTI2OTQtXHUyNjk3XHUyNjk5XHUyNjlCXHUyNjlDXHUyNkEwXHUyNkE3XHUyNkFBXHUyNkIwXHUyNkIxXHUyNkJEXHUyNkJFXHUyNkM0XHUyNkM4XHUyNkNGXHUyNkQxXHUyNkQzXHUyNkU5XHUyNkYwLVx1MjZGNVx1MjZGN1x1MjZGOFx1MjZGQVx1MjcwMlx1MjcwOFx1MjcwOVx1MjcwRlx1MjcxMlx1MjcxNFx1MjcxNlx1MjcxRFx1MjcyMVx1MjczM1x1MjczNFx1Mjc0NFx1Mjc0N1x1Mjc1N1x1Mjc2M1x1MjdBMVx1MjkzNFx1MjkzNVx1MkIwNS1cdTJCMDdcdTJCMUJcdTJCMUNcdTJCNTVcdTMwMzBcdTMwM0RcdTMyOTdcdTMyOTldXHVGRTBGP3xbXHUyNjFEXHUyNzBDXHUyNzBEXSg/Olx1RkUwRnxcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHUyNzBBXHUyNzBCXSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/fFtcdTIzRTktXHUyM0VDXHUyM0YwXHUyM0YzXHUyNUZEXHUyNjkzXHUyNkExXHUyNkFCXHUyNkM1XHUyNkNFXHUyNkQ0XHUyNkVBXHUyNkZEXHUyNzA1XHUyNzI4XHUyNzRDXHUyNzRFXHUyNzUzLVx1Mjc1NVx1Mjc5NS1cdTI3OTdcdTI3QjBcdTI3QkZcdTJCNTBdfFx1MjZGOSg/Olx1RkUwRnxcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFx1Mjc2NFx1RkUwRj8oPzpcdTIwMEQoPzpcdUQ4M0RcdUREMjV8XHVEODNFXHVERTc5KSk/fFx1RDgzQyg/OltcdURDMDRcdURENzBcdURENzFcdUREN0VcdUREN0ZcdURFMDJcdURFMzdcdURGMjFcdURGMjQtXHVERjJDXHVERjM2XHVERjdEXHVERjk2XHVERjk3XHVERjk5LVx1REY5Qlx1REY5RVx1REY5Rlx1REZDRFx1REZDRVx1REZENC1cdURGREZcdURGRjVcdURGRjddXHVGRTBGP3xbXHVERjg1XHVERkMyXHVERkM3XSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/fFtcdURGQzNcdURGQzRcdURGQ0FdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVERkNCXHVERkNDXSg/Olx1RkUwRnxcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFtcdURDQ0ZcdUREOEVcdUREOTEtXHVERDlBXHVERTAxXHVERTFBXHVERTJGXHVERTMyLVx1REUzNlx1REUzOC1cdURFM0FcdURFNTBcdURFNTFcdURGMDAtXHVERjIwXHVERjJELVx1REYzNVx1REYzNy1cdURGN0NcdURGN0UtXHVERjg0XHVERjg2LVx1REY5M1x1REZBMC1cdURGQzFcdURGQzVcdURGQzZcdURGQzhcdURGQzlcdURGQ0YtXHVERkQzXHVERkUwLVx1REZGMFx1REZGOC1cdURGRkZdfFx1RERFNlx1RDgzQ1tcdURERTgtXHVEREVDXHVEREVFXHVEREYxXHVEREYyXHVEREY0XHVEREY2LVx1RERGQVx1RERGQ1x1RERGRFx1RERGRl18XHVEREU3XHVEODNDW1x1RERFNlx1RERFN1x1RERFOS1cdURERUZcdURERjEtXHVEREY0XHVEREY2LVx1RERGOVx1RERGQlx1RERGQ1x1RERGRVx1RERGRl18XHVEREU4XHVEODNDW1x1RERFNlx1RERFOFx1RERFOVx1RERFQi1cdURERUVcdURERjAtXHVEREY1XHVEREY3XHVEREZBLVx1RERGRl18XHVEREU5XHVEODNDW1x1RERFQVx1RERFQ1x1RERFRlx1RERGMFx1RERGMlx1RERGNFx1RERGRl18XHVEREVBXHVEODNDW1x1RERFNlx1RERFOFx1RERFQVx1RERFQ1x1RERFRFx1RERGNy1cdURERkFdfFx1RERFQlx1RDgzQ1tcdURERUUtXHVEREYwXHVEREYyXHVEREY0XHVEREY3XXxcdURERUNcdUQ4M0NbXHVEREU2XHVEREU3XHVEREU5LVx1RERFRVx1RERGMS1cdURERjNcdURERjUtXHVEREZBXHVEREZDXHVEREZFXXxcdURERURcdUQ4M0NbXHVEREYwXHVEREYyXHVEREYzXHVEREY3XHVEREY5XHVEREZBXXxcdURERUVcdUQ4M0NbXHVEREU4LVx1RERFQVx1RERGMS1cdURERjRcdURERjYtXHVEREY5XXxcdURERUZcdUQ4M0NbXHVEREVBXHVEREYyXHVEREY0XHVEREY1XXxcdURERjBcdUQ4M0NbXHVEREVBXHVEREVDLVx1RERFRVx1RERGMlx1RERGM1x1RERGNVx1RERGN1x1RERGQ1x1RERGRVx1RERGRl18XHVEREYxXHVEODNDW1x1RERFNi1cdURERThcdURERUVcdURERjBcdURERjctXHVEREZCXHVEREZFXXxcdURERjJcdUQ4M0NbXHVEREU2XHVEREU4LVx1RERFRFx1RERGMC1cdURERkZdfFx1RERGM1x1RDgzQ1tcdURERTZcdURERThcdURERUEtXHVEREVDXHVEREVFXHVEREYxXHVEREY0XHVEREY1XHVEREY3XHVEREZBXHVEREZGXXxcdURERjRcdUQ4M0NcdURERjJ8XHVEREY1XHVEODNDW1x1RERFNlx1RERFQS1cdURERURcdURERjAtXHVEREYzXHVEREY3LVx1RERGOVx1RERGQ1x1RERGRV18XHVEREY2XHVEODNDXHVEREU2fFx1RERGN1x1RDgzQ1tcdURERUFcdURERjRcdURERjhcdURERkFcdURERkNdfFx1RERGOFx1RDgzQ1tcdURERTYtXHVEREVBXHVEREVDLVx1RERGNFx1RERGNy1cdURERjlcdURERkJcdURERkQtXHVEREZGXXxcdURERjlcdUQ4M0NbXHVEREU2XHVEREU4XHVEREU5XHVEREVCLVx1RERFRFx1RERFRi1cdURERjRcdURERjdcdURERjlcdURERkJcdURERkNcdURERkZdfFx1RERGQVx1RDgzQ1tcdURERTZcdURERUNcdURERjJcdURERjNcdURERjhcdURERkVcdURERkZdfFx1RERGQlx1RDgzQ1tcdURERTZcdURERThcdURERUFcdURERUNcdURERUVcdURERjNcdURERkFdfFx1RERGQ1x1RDgzQ1tcdURERUJcdURERjhdfFx1RERGRFx1RDgzQ1x1RERGMHxcdURERkVcdUQ4M0NbXHVEREVBXHVEREY5XXxcdURERkZcdUQ4M0NbXHVEREU2XHVEREYyXHVEREZDXXxcdURGRjNcdUZFMEY/KD86XHUyMDBEKD86XHUyNkE3XHVGRTBGP3xcdUQ4M0NcdURGMDgpKT98XHVERkY0KD86XHUyMDBEXHUyNjIwXHVGRTBGP3xcdURCNDBcdURDNjdcdURCNDBcdURDNjJcdURCNDAoPzpcdURDNjVcdURCNDBcdURDNkVcdURCNDBcdURDNjd8XHVEQzczXHVEQjQwXHVEQzYzXHVEQjQwXHVEQzc0fFx1REM3N1x1REI0MFx1REM2Q1x1REI0MFx1REM3MylcdURCNDBcdURDN0YpPyl8XHVEODNEKD86W1x1REMwOFx1REMyNl0oPzpcdTIwMERcdTJCMUIpP3xbXHVEQzNGXHVEQ0ZEXHVERDQ5XHVERDRBXHVERDZGXHVERDcwXHVERDczXHVERDc2LVx1REQ3OVx1REQ4N1x1REQ4QS1cdUREOERcdUREQTVcdUREQThcdUREQjFcdUREQjJcdUREQkNcdUREQzItXHVEREM0XHVEREQxLVx1REREM1x1REREQy1cdUREREVcdURERTFcdURERTNcdURERThcdURERUZcdURERjNcdURERkFcdURFQ0JcdURFQ0QtXHVERUNGXHVERUUwLVx1REVFNVx1REVFOVx1REVGMFx1REVGM11cdUZFMEY/fFtcdURDNDJcdURDNDNcdURDNDYtXHVEQzUwXHVEQzY2XHVEQzY3XHVEQzZCLVx1REM2RFx1REM3Mlx1REM3NC1cdURDNzZcdURDNzhcdURDN0NcdURDODNcdURDODVcdURDOEZcdURDOTFcdURDQUFcdUREN0FcdUREOTVcdUREOTZcdURFNENcdURFNEZcdURFQzBcdURFQ0NdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REM2RVx1REM3MFx1REM3MVx1REM3M1x1REM3N1x1REM4MVx1REM4Mlx1REM4Nlx1REM4N1x1REU0NS1cdURFNDdcdURFNEJcdURFNERcdURFNEVcdURFQTNcdURFQjQtXHVERUI2XSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1REQ3NFx1REQ5MF0oPzpcdUZFMEZ8XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REMwMC1cdURDMDdcdURDMDktXHVEQzE0XHVEQzE2LVx1REMyNVx1REMyNy1cdURDM0FcdURDM0MtXHVEQzNFXHVEQzQwXHVEQzQ0XHVEQzQ1XHVEQzUxLVx1REM2NVx1REM2QVx1REM3OS1cdURDN0JcdURDN0QtXHVEQzgwXHVEQzg0XHVEQzg4LVx1REM4RVx1REM5MFx1REM5Mi1cdURDQTlcdURDQUItXHVEQ0ZDXHVEQ0ZGLVx1REQzRFx1REQ0Qi1cdURENEVcdURENTAtXHVERDY3XHVEREE0XHVEREZCLVx1REUyRFx1REUyRi1cdURFMzRcdURFMzctXHVERTQ0XHVERTQ4LVx1REU0QVx1REU4MC1cdURFQTJcdURFQTQtXHVERUIzXHVERUI3LVx1REVCRlx1REVDMS1cdURFQzVcdURFRDAtXHVERUQyXHVERUQ1LVx1REVEN1x1REVEQy1cdURFREZcdURFRUJcdURFRUNcdURFRjQtXHVERUZDXHVERkUwLVx1REZFQlx1REZGMF18XHVEQzE1KD86XHUyMDBEXHVEODNFXHVEREJBKT98XHVEQzNCKD86XHUyMDBEXHUyNzQ0XHVGRTBGPyk/fFx1REM0MVx1RkUwRj8oPzpcdTIwMERcdUQ4M0RcdURERThcdUZFMEY/KT98XHVEQzY4KD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OHxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XVx1MjAwRFx1RDgzRCg/Olx1REM2Nig/Olx1MjAwRFx1RDgzRFx1REM2Nik/fFx1REM2Nyg/Olx1MjAwRFx1RDgzRFtcdURDNjZcdURDNjddKT8pfFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1REM2Nig/Olx1MjAwRFx1RDgzRFx1REM2Nik/fFx1REM2Nyg/Olx1MjAwRFx1RDgzRFtcdURDNjZcdURDNjddKT8pfFx1RDgzRVtcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXSl8XHVEODNDKD86XHVERkZCKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQy1cdURGRkZdKSkpP3xcdURGRkMoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCXHVERkZELVx1REZGRl0pKSk/fFx1REZGRCg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKSkpP3xcdURGRkUoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRFx1REZGRl0pKSk/fFx1REZGRig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkItXHVERkZFXSkpKT8pKT98XHVEQzY5KD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1tcdURDNjhcdURDNjldfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRCg/OltcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1REM2Nig/Olx1MjAwRFx1RDgzRFx1REM2Nik/fFx1REM2Nyg/Olx1MjAwRFx1RDgzRFtcdURDNjZcdURDNjddKT98XHVEQzY5XHUyMDBEXHVEODNEKD86XHVEQzY2KD86XHUyMDBEXHVEODNEXHVEQzY2KT98XHVEQzY3KD86XHUyMDBEXHVEODNEW1x1REM2Nlx1REM2N10pPykpfFx1RDgzRVtcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXSl8XHVEODNDKD86XHVERkZCKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XXxcdURDOEJcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XSlcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldXHVEODNDW1x1REZGQy1cdURGRkZdKSkpP3xcdURGRkMoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV1cdUQ4M0NbXHVERkZCXHVERkZELVx1REZGRl0pKSk/fFx1REZGRCg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKSkpP3xcdURGRkUoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV1cdUQ4M0NbXHVERkZCLVx1REZGRFx1REZGRl0pKSk/fFx1REZGRig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkItXHVERkZFXSkpKT8pKT98XHVEQzZGKD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98XHVERDc1KD86XHVGRTBGfFx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98XHVERTJFKD86XHUyMDBEXHVEODNEXHVEQ0E4KT98XHVERTM1KD86XHUyMDBEXHVEODNEXHVEQ0FCKT98XHVERTM2KD86XHUyMDBEXHVEODNDXHVERjJCXHVGRTBGPyk/KXxcdUQ4M0UoPzpbXHVERDBDXHVERDBGXHVERDE4LVx1REQxRlx1REQzMC1cdUREMzRcdUREMzZcdURENzdcdUREQjVcdUREQjZcdUREQkJcdURERDJcdURERDNcdURERDVcdURFQzMtXHVERUM1XHVERUYwXHVERUYyLVx1REVGOF0oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHVERDI2XHVERDM1XHVERDM3LVx1REQzOVx1REQzRFx1REQzRVx1RERCOFx1RERCOVx1RERDRC1cdUREQ0ZcdURERDRcdURERDYtXHVEREREXSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1RERERVx1RERERl0oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVERDBEXHVERDBFXHVERDEwLVx1REQxN1x1REQyMC1cdUREMjVcdUREMjctXHVERDJGXHVERDNBXHVERDNGLVx1REQ0NVx1REQ0Ny1cdURENzZcdURENzgtXHVEREI0XHVEREI3XHVEREJBXHVEREJDLVx1RERDQ1x1REREMFx1RERFMC1cdURERkZcdURFNzAtXHVERTdDXHVERTgwLVx1REU4OFx1REU5MC1cdURFQkRcdURFQkYtXHVERUMyXHVERUNFLVx1REVEQlx1REVFMC1cdURFRThdfFx1REQzQyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGP3xcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xcdURERDEoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMSkpfFx1RDgzQyg/Olx1REZGQig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEKD86XHVEODNEXHVEQzhCXHUyMDBEKT9cdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZDLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXSkpKT98XHVERkZDKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkZdKSkpP3xcdURGRkQoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQlx1REZGQ1x1REZGRVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXSkpKT98XHVERkZFKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkZdKSkpP3xcdURGRkYoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkVdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGODRcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRl0pKSk/KSk/fFx1REVGMSg/Olx1RDgzQyg/Olx1REZGQig/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkMtXHVERkZGXSk/fFx1REZGQyg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSk/fFx1REZGRCg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKT98XHVERkZFKD86XHUyMDBEXHVEODNFXHVERUYyXHVEODNDW1x1REZGQi1cdURGRkRcdURGRkZdKT98XHVERkZGKD86XHUyMDBEXHVEODNFXHVERUYyXHVEODNDW1x1REZGQi1cdURGRkVdKT8pKT8pL2c7CiAgfTsKCiAgLyoqIE5vcm1hbGl6ZSBhIGR1cmF0aW9uIHRvIGFsbCBvZiB0aGUgcHJvcGVyIHVuaXRzLiAqLwogIGZ1bmN0aW9uIG5vcm1hbGl6ZUR1cmF0aW9uKGR1cikgewogICAgICBpZiAoZHVyID09PSB1bmRlZmluZWQgfHwgZHVyID09PSBudWxsKQogICAgICAgICAgcmV0dXJuIGR1cjsKICAgICAgcmV0dXJuIGR1ci5zaGlmdFRvQWxsKCkubm9ybWFsaXplKCk7CiAgfQogIC8qKiBTdHJpcCB0aGUgdGltZSBjb21wb25lbnRzIG9mIGEgZGF0ZSB0aW1lIG9iamVjdC4gKi8KICBmdW5jdGlvbiBzdHJpcFRpbWUoZHQpIHsKICAgICAgaWYgKGR0ID09PSBudWxsIHx8IGR0ID09PSB1bmRlZmluZWQpCiAgICAgICAgICByZXR1cm4gZHQ7CiAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KHsKICAgICAgICAgIHllYXI6IGR0LnllYXIsCiAgICAgICAgICBtb250aDogZHQubW9udGgsCiAgICAgICAgICBkYXk6IGR0LmRheSwKICAgICAgfSk7CiAgfQogIC8qKiBUcnkgdG8gZXh0cmFjdCBhIFlZWVlNTUREIGRhdGUgZnJvbSBhIHN0cmluZy4gKi8KICBmdW5jdGlvbiBleHRyYWN0RGF0ZShzdHIpIHsKICAgICAgbGV0IGRhdGVNYXRjaCA9IC8oXGR7NH0pLShcZHsyfSktKFxkezJ9KS8uZXhlYyhzdHIpOwogICAgICBpZiAoIWRhdGVNYXRjaCkKICAgICAgICAgIGRhdGVNYXRjaCA9IC8oXGR7NH0pKFxkezJ9KShcZHsyfSkvLmV4ZWMoc3RyKTsKICAgICAgaWYgKGRhdGVNYXRjaCkgewogICAgICAgICAgbGV0IHllYXIgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzFdKTsKICAgICAgICAgIGxldCBtb250aCA9IE51bWJlci5wYXJzZUludChkYXRlTWF0Y2hbMl0pOwogICAgICAgICAgbGV0IGRheSA9IE51bWJlci5wYXJzZUludChkYXRlTWF0Y2hbM10pOwogICAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyLCBtb250aCwgZGF5IH0pOwogICAgICB9CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgfQogIC8qKiBHZXQgdGhlIGZvbGRlciBjb250YWluaW5nIHRoZSBnaXZlbiBwYXRoIChpLmUuLCBsaWtlIGNvbXB1dGluZyAncGF0aC8uLicpLiAqLwogIGZ1bmN0aW9uIGdldFBhcmVudEZvbGRlcihwYXRoKSB7CiAgICAgIHJldHVybiBwYXRoLnNwbGl0KCIvIikuc2xpY2UoMCwgLTEpLmpvaW4oIi8iKTsKICB9CiAgLyoqIEdldCB0aGUgInRpdGxlIiBmb3IgYSBmaWxlLCBieSBzdHJpcHBpbmcgb3RoZXIgcGFydHMgb2YgdGhlIHBhdGggYXMgd2VsbCBhcyB0aGUgZXh0ZW5zaW9uLiAqLwogIGZ1bmN0aW9uIGdldEZpbGVUaXRsZShwYXRoKSB7CiAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCIvIikpCiAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMSk7CiAgICAgIGlmIChwYXRoLmVuZHNXaXRoKCIubWQiKSkKICAgICAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygwLCBwYXRoLmxlbmd0aCAtIDMpOwogICAgICByZXR1cm4gcGF0aDsKICB9CiAgLyoqIEdldCB0aGUgZXh0ZW5zaW9uIG9mIGEgZmlsZSBmcm9tIHRoZSBmaWxlIHBhdGguICovCiAgZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uKHBhdGgpIHsKICAgICAgaWYgKCFwYXRoLmluY2x1ZGVzKCIuIikpCiAgICAgICAgICByZXR1cm4gIiI7CiAgICAgIHJldHVybiBwYXRoLnN1YnN0cmluZyhwYXRoLmxhc3RJbmRleE9mKCIuIikgKyAxKTsKICB9CiAgLyoqIFBhcnNlIGFsbCBzdWJ0YWdzIG91dCBvZiB0aGUgZ2l2ZW4gdGFnLiBJLmUuLCAjaGVsbG8vaS9hbSB3b3VsZCB5aWVsZCBbI2hlbGxvL2kvYW0sICNoZWxsby9pLCAjaGVsbG9dLiAqLwogIGZ1bmN0aW9uIGV4dHJhY3RTdWJ0YWdzKHRhZykgewogICAgICBsZXQgcmVzdWx0ID0gW3RhZ107CiAgICAgIHdoaWxlICh0YWcuaW5jbHVkZXMoIi8iKSkgewogICAgICAgICAgdGFnID0gdGFnLnN1YnN0cmluZygwLCB0YWcubGFzdEluZGV4T2YoIi8iKSk7CiAgICAgICAgICByZXN1bHQucHVzaCh0YWcpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHQ7CiAgfQogIC8qKiBBIHBhcnNpbW1vbiBwYXJzZXIgd2hpY2ggY2Fub25pY2FsaXplcyB2YXJpYWJsZSBuYW1lcyB3aGlsZSBwcm9wZXJseSByZXNwZWN0aW5nIGVtb2ppLiAqLwogIGNvbnN0IFZBUl9OQU1FX0NBTk9OSUNBTElaRVIgPSBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleChuZXcgUmVnRXhwKGVtb2ppUmVnZXgoKSwgIiIpKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4KC9bMC05XHB7TGV0dGVyfV8tXSsvdSkubWFwKHN0ciA9PiBzdHIudG9Mb2NhbGVMb3dlckNhc2UoKSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy53aGl0ZXNwYWNlLm1hcChfID0+ICItIiksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbnkubWFwKF8gPT4gIiIpKQogICAgICAubWFueSgpCiAgICAgIC5tYXAocmVzdWx0ID0+IHJlc3VsdC5qb2luKCIiKSk7CiAgLyoqIENvbnZlcnQgYW4gYXJiaXRyYXJ5IHZhcmlhYmxlIG5hbWUgaW50byBzb21ldGhpbmcgSlMvcXVlcnkgZnJpZW5kbHkuICovCiAgZnVuY3Rpb24gY2Fub25pY2FsaXplVmFyTmFtZShuYW1lKSB7CiAgICAgIHJldHVybiBWQVJfTkFNRV9DQU5PTklDQUxJWkVSLnRyeVBhcnNlKG5hbWUpOwogIH0KICBjb25zdCBIRUFERVJfQ0FOT05JQ0FMSVpFUiA9IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4KG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCAiIikpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXgoL1swLTlccHtMZXR0ZXJ9Xy1dKy91KSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLndoaXRlc3BhY2UubWFwKF8gPT4gIiAiKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFueS5tYXAoXyA9PiAiICIpKQogICAgICAubWFueSgpCiAgICAgIC5tYXAocmVzdWx0ID0+IHsKICAgICAgcmV0dXJuIHJlc3VsdC5qb2luKCIiKS5zcGxpdCgvXHMrLykuam9pbigiICIpLnRyaW0oKTsKICB9KTsKICAvKioKICAgKiBOb3JtYWxpemVzIHRoZSB0ZXh0IGluIGEgaGVhZGVyIHRvIGJlIHNvbWV0aGluZyB0aGF0IGlzIGFjdHVhbGx5IGxpbmthYmxlIHRvLiBUaGlzIG1pbWljcwogICAqIGhvdyBPYnNpZGlhbiBkb2VzIGl0J3Mgbm9ybWFsaXphdGlvbiwgY29sbGFwc2luZyByZXBlYXRlZCBzcGFjZXMgYW5kIHN0cmlwcGluZyBvdXQgY29udHJvbCBjaGFyYWN0ZXJzLgogICAqLwogIGZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlckZvckxpbmsoaGVhZGVyKSB7CiAgICAgIHJldHVybiBIRUFERVJfQ0FOT05JQ0FMSVpFUi50cnlQYXJzZShoZWFkZXIpOwogIH0KICAvKiogUmVuZGVyIGEgZHVyYXRpb24gaW4gYSBtaW5pbWFsIGZvcm1hdCB0byBzYXZlIHNwYWNlLiAqLwogIGZ1bmN0aW9uIHJlbmRlck1pbmltYWxEdXJhdGlvbihkdXIpIHsKICAgICAgZHVyID0gbm9ybWFsaXplRHVyYXRpb24oZHVyKTsKICAgICAgLy8gdG9IdW1hbiBvdXRwdXRzIHplcm8gcXVhbnRpdGllcyBlLmcuICIwIHNlY29uZHMiCiAgICAgIGR1ciA9IER1cmF0aW9uLmZyb21PYmplY3QoT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGR1ci50b09iamVjdCgpKS5maWx0ZXIoKFssIHF1YW50aXR5XSkgPT4gcXVhbnRpdHkgIT0gMCkpKTsKICAgICAgcmV0dXJuIGR1ci50b0h1bWFuKCk7CiAgfQoKICB2YXIgVmFsdWVzOwogIChmdW5jdGlvbiAoVmFsdWVzKSB7CiAgICAgIC8qKiBDb252ZXJ0IGFuIGFyYml0cmFyeSB2YWx1ZSBpbnRvIGEgcmVhc29uYWJsZSwgTWFya2Rvd24tZnJpZW5kbHkgc3RyaW5nIGlmIHBvc3NpYmxlLiAqLwogICAgICBmdW5jdGlvbiB0b1N0cmluZyhmaWVsZCwgc2V0dGluZyA9IERFRkFVTFRfUVVFUllfU0VUVElOR1MsIHJlY3Vyc2l2ZSA9IGZhbHNlKSB7CiAgICAgICAgICBsZXQgd3JhcHBlZCA9IHdyYXBWYWx1ZShmaWVsZCk7CiAgICAgICAgICBpZiAoIXdyYXBwZWQpCiAgICAgICAgICAgICAgcmV0dXJuIHNldHRpbmcucmVuZGVyTnVsbEFzOwogICAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHsKICAgICAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHNldHRpbmcucmVuZGVyTnVsbEFzOwogICAgICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlOwogICAgICAgICAgICAgIGNhc2UgIm51bWJlciI6CiAgICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgICAgICAgIHJldHVybiAiIiArIHdyYXBwZWQudmFsdWU7CiAgICAgICAgICAgICAgY2FzZSAiaHRtbCI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm91dGVySFRNTDsKICAgICAgICAgICAgICBjYXNlICJ3aWRnZXQiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpOwogICAgICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpOwogICAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuICI8ZnVuY3Rpb24+IjsKICAgICAgICAgICAgICBjYXNlICJhcnJheSI6CiAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZSkKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiWyI7CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3cmFwcGVkLnZhbHVlLm1hcChmID0+IHRvU3RyaW5nKGYsIHNldHRpbmcsIHRydWUpKS5qb2luKCIsICIpOwogICAgICAgICAgICAgICAgICBpZiAocmVjdXJzaXZlKQogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJdIjsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICAgICAgICAgICByZXR1cm4gKCJ7ICIgKwogICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMod3JhcHBlZC52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGUgPT4gZVswXSArICI6ICIgKyB0b1N0cmluZyhlWzFdLCBzZXR0aW5nLCB0cnVlKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbigiLCAiKSArCiAgICAgICAgICAgICAgICAgICAgICAiIH0iKTsKICAgICAgICAgICAgICBjYXNlICJkYXRlIjoKICAgICAgICAgICAgICAgICAgaWYgKHdyYXBwZWQudmFsdWUuc2Vjb25kID09IDAgJiYgd3JhcHBlZC52YWx1ZS5ob3VyID09IDAgJiYgd3JhcHBlZC52YWx1ZS5taW51dGUgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9Gb3JtYXQoc2V0dGluZy5kZWZhdWx0RGF0ZUZvcm1hdCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9Gb3JtYXQoc2V0dGluZy5kZWZhdWx0RGF0ZVRpbWVGb3JtYXQpOwogICAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlck1pbmltYWxEdXJhdGlvbih3cmFwcGVkLnZhbHVlKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBWYWx1ZXMudG9TdHJpbmcgPSB0b1N0cmluZzsKICAgICAgLyoqIFdyYXAgYSBsaXRlcmFsIHZhbHVlIHNvIHlvdSBjYW4gc3dpdGNoIG9uIGl0IGVhc2lseS4gKi8KICAgICAgZnVuY3Rpb24gd3JhcFZhbHVlKHZhbCkgewogICAgICAgICAgaWYgKGlzTnVsbCh2YWwpKQogICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJudWxsIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNOdW1iZXIodmFsKSkKICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcodmFsKSkKICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAic3RyaW5nIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNCb29sZWFuKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJvb2xlYW4iLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc0R1cmF0aW9uKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImR1cmF0aW9uIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNEYXRlKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImRhdGUiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc1dpZGdldCh2YWwpKQogICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJ3aWRnZXQiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImFycmF5IiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNMaW5rKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImxpbmsiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc0Z1bmN0aW9uKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImZ1bmN0aW9uIiwgdmFsdWU6IHZhbCB9OwogICAgICAgICAgZWxzZSBpZiAoaXNIdG1sKHZhbCkpCiAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImh0bWwiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKQogICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJvYmplY3QiLCB2YWx1ZTogdmFsIH07CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgfQogICAgICBWYWx1ZXMud3JhcFZhbHVlID0gd3JhcFZhbHVlOwogICAgICAvKiogUmVjdXJzaXZlbHkgbWFwIGNvbXBsZXggb2JqZWN0cyBhdCB0aGUgbGVhdmVzLiAqLwogICAgICBmdW5jdGlvbiBtYXBMZWF2ZXModmFsLCBmdW5jKSB7CiAgICAgICAgICBpZiAoaXNPYmplY3QodmFsKSkgewogICAgICAgICAgICAgIGxldCByZXN1bHQgPSB7fTsKICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsKSkKICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBtYXBMZWF2ZXModmFsdWUsIGZ1bmMpOwogICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkpIHsKICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107CiAgICAgICAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsKQogICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChtYXBMZWF2ZXModmFsdWUsIGZ1bmMpKTsKICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBWYWx1ZXMubWFwTGVhdmVzID0gbWFwTGVhdmVzOwogICAgICAvKiogQ29tcGFyZSB0d28gYXJiaXRyYXJ5IEphdmFTY3JpcHQgdmFsdWVzLiBQcm9kdWNlcyBhIHRvdGFsIG9yZGVyaW5nIG92ZXIgQU5ZIHBvc3NpYmxlIGRhdGF2aWV3IHZhbHVlLiAqLwogICAgICBmdW5jdGlvbiBjb21wYXJlVmFsdWUodmFsMSwgdmFsMiwgbGlua05vcm1hbGl6ZXIpIHsKICAgICAgICAgIC8vIEhhbmRsZSB1bmRlZmluZWQvbnVsbHMgZmlyc3QuCiAgICAgICAgICBpZiAodmFsMSA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgICAgIHZhbDEgPSBudWxsOwogICAgICAgICAgaWYgKHZhbDIgPT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICB2YWwyID0gbnVsbDsKICAgICAgICAgIGlmICh2YWwxID09PSBudWxsICYmIHZhbDIgPT09IG51bGwpCiAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICBlbHNlIGlmICh2YWwxID09PSBudWxsKQogICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIGVsc2UgaWYgKHZhbDIgPT09IG51bGwpCiAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAvLyBBIG5vbi1udWxsIHZhbHVlIG5vdyB3aGljaCB3ZSBjYW4gd3JhcCAmIGNvbXBhcmUgb24uCiAgICAgICAgICBsZXQgd3JhcDEgPSB3cmFwVmFsdWUodmFsMSk7CiAgICAgICAgICBsZXQgd3JhcDIgPSB3cmFwVmFsdWUodmFsMik7CiAgICAgICAgICBpZiAod3JhcDEgPT09IHVuZGVmaW5lZCAmJiB3cmFwMiA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgZWxzZSBpZiAod3JhcDEgPT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICBlbHNlIGlmICh3cmFwMiA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgLy8gU2hvcnQtY2lyY3VpdCBvbiBkaWZmZXJlbnQgdHlwZXMgb3Igb24gcmVmZXJlbmNlIGVxdWFsaXR5LgogICAgICAgICAgaWYgKHdyYXAxLnR5cGUgIT0gd3JhcDIudHlwZSkKICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudHlwZS5sb2NhbGVDb21wYXJlKHdyYXAyLnR5cGUpOwogICAgICAgICAgaWYgKHdyYXAxLnZhbHVlID09PSB3cmFwMi52YWx1ZSkKICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgIHN3aXRjaCAod3JhcDEudHlwZSkgewogICAgICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZS5sb2NhbGVDb21wYXJlKHdyYXAyLnZhbHVlKTsKICAgICAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICAgICAgICBpZiAod3JhcDEudmFsdWUgPCB3cmFwMi52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICAgICAgZWxzZSBpZiAod3JhcDEudmFsdWUgPT0gd3JhcDIudmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgY2FzZSAibnVsbCI6CiAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgICBpZiAod3JhcDEudmFsdWUgPT0gd3JhcDIudmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXAxLnZhbHVlID8gMSA6IC0xOwogICAgICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICAgICAgICBsZXQgbGluazEgPSB3cmFwMS52YWx1ZTsKICAgICAgICAgICAgICAgICAgbGV0IGxpbmsyID0gd3JhcDIudmFsdWU7CiAgICAgICAgICAgICAgICAgIGxldCBub3JtYWxpemUgPSBsaW5rTm9ybWFsaXplciA/PyAoKHgpID0+IHgpOwogICAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBjb21wYXJlIGJ5IGZpbGUgbmFtZSBvciBkaXNwbGF5LCBzaW5jZSB0aGF0IHdvdWxkIGJyZWFrIGxpbmsgZXF1YWxpdHkuIENvbXBhcmUgYnkgcGF0aC4KICAgICAgICAgICAgICAgICAgbGV0IHBhdGhDb21wYXJlID0gbm9ybWFsaXplKGxpbmsxLnBhdGgpLmxvY2FsZUNvbXBhcmUobm9ybWFsaXplKGxpbmsyLnBhdGgpKTsKICAgICAgICAgICAgICAgICAgaWYgKHBhdGhDb21wYXJlICE9IDApCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGF0aENvbXBhcmU7CiAgICAgICAgICAgICAgICAgIC8vIFRoZW4gY29tcGFyZSBieSB0eXBlLgogICAgICAgICAgICAgICAgICBsZXQgdHlwZUNvbXBhcmUgPSBsaW5rMS50eXBlLmxvY2FsZUNvbXBhcmUobGluazIudHlwZSk7CiAgICAgICAgICAgICAgICAgIGlmICh0eXBlQ29tcGFyZSAhPSAwKQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVDb21wYXJlOwogICAgICAgICAgICAgICAgICAvLyBUaGVuIGNvbXBhcmUgYnkgc3VicGF0aCBleGlzdGVuY2UuCiAgICAgICAgICAgICAgICAgIGlmIChsaW5rMS5zdWJwYXRoICYmICFsaW5rMi5zdWJwYXRoKQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgIGlmICghbGluazEuc3VicGF0aCAmJiBsaW5rMi5zdWJwYXRoKQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgICAgICBpZiAoIWxpbmsxLnN1YnBhdGggJiYgIWxpbmsyLnN1YnBhdGgpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgLy8gU2luY2UgYm90aCBoYXZlIGEgc3VicGF0aCwgY29tcGFyZSBieSBzdWJwYXRoLgogICAgICAgICAgICAgICAgICByZXR1cm4gKGxpbmsxLnN1YnBhdGggPz8gIiIpLmxvY2FsZUNvbXBhcmUobGluazIuc3VicGF0aCA/PyAiIik7CiAgICAgICAgICAgICAgY2FzZSAiZGF0ZSI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZSA8IHdyYXAyLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICA/IC0xCiAgICAgICAgICAgICAgICAgICAgICA6IHdyYXAxLnZhbHVlLmVxdWFscyh3cmFwMi52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICA6IDE7CiAgICAgICAgICAgICAgY2FzZSAiZHVyYXRpb24iOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCB3cmFwMi52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgPyAtMQogICAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAxOwogICAgICAgICAgICAgIGNhc2UgImFycmF5IjoKICAgICAgICAgICAgICAgICAgbGV0IGYxID0gd3JhcDEudmFsdWU7CiAgICAgICAgICAgICAgICAgIGxldCBmMiA9IHdyYXAyLnZhbHVlOwogICAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgTWF0aC5taW4oZjEubGVuZ3RoLCBmMi5sZW5ndGgpOyBpbmRleCsrKSB7CiAgICAgICAgICAgICAgICAgICAgICBsZXQgY29tcCA9IGNvbXBhcmVWYWx1ZShmMVtpbmRleF0sIGYyW2luZGV4XSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tcCAhPSAwKQogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiBmMS5sZW5ndGggLSBmMi5sZW5ndGg7CiAgICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgICAgICAgbGV0IG8xID0gd3JhcDEudmFsdWU7CiAgICAgICAgICAgICAgICAgIGxldCBvMiA9IHdyYXAyLnZhbHVlOwogICAgICAgICAgICAgICAgICBsZXQgazEgPSBBcnJheS5mcm9tKE9iamVjdC5rZXlzKG8xKSk7CiAgICAgICAgICAgICAgICAgIGxldCBrMiA9IEFycmF5LmZyb20oT2JqZWN0LmtleXMobzIpKTsKICAgICAgICAgICAgICAgICAgazEuc29ydCgpOwogICAgICAgICAgICAgICAgICBrMi5zb3J0KCk7CiAgICAgICAgICAgICAgICAgIGxldCBrZXlDb21wYXJlID0gY29tcGFyZVZhbHVlKGsxLCBrMik7CiAgICAgICAgICAgICAgICAgIGlmIChrZXlDb21wYXJlICE9IDApCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5Q29tcGFyZTsKICAgICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IG9mIGsxKSB7CiAgICAgICAgICAgICAgICAgICAgICBsZXQgY29tcCA9IGNvbXBhcmVWYWx1ZShvMVtrZXldLCBvMltrZXldKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wICE9IDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXA7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICAgY2FzZSAid2lkZ2V0IjoKICAgICAgICAgICAgICBjYXNlICJodG1sIjoKICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgfQogICAgICB9CiAgICAgIFZhbHVlcy5jb21wYXJlVmFsdWUgPSBjb21wYXJlVmFsdWU7CiAgICAgIC8qKiBGaW5kIHRoZSBjb3JyZXNwb25kaW5nIERhdGF2aWV3IHR5cGUgZm9yIGFuIGFyYml0cmFyeSB2YWx1ZS4gKi8KICAgICAgZnVuY3Rpb24gdHlwZU9mKHZhbCkgewogICAgICAgICAgcmV0dXJuIHdyYXBWYWx1ZSh2YWwpPy50eXBlOwogICAgICB9CiAgICAgIFZhbHVlcy50eXBlT2YgPSB0eXBlT2Y7CiAgICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIHZhbHVlIGlzICJ0cnV0aHkiIChpLmUuLCBpcyBub24tbnVsbCBhbmQgaGFzIGRhdGEgaW4gaXQpLiAqLwogICAgICBmdW5jdGlvbiBpc1RydXRoeShmaWVsZCkgewogICAgICAgICAgbGV0IHdyYXBwZWQgPSB3cmFwVmFsdWUoZmllbGQpOwogICAgICAgICAgaWYgKCF3cmFwcGVkKQogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7CiAgICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUgIT0gMDsKICAgICAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5sZW5ndGggPiAwOwogICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTsKICAgICAgICAgICAgICBjYXNlICJsaW5rIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuICEhd3JhcHBlZC52YWx1ZS5wYXRoOwogICAgICAgICAgICAgIGNhc2UgImRhdGUiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS50b01pbGxpcygpICE9IDA7CiAgICAgICAgICAgICAgY2FzZSAiZHVyYXRpb24iOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5hcygic2Vjb25kcyIpICE9IDA7CiAgICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHdyYXBwZWQudmFsdWUpLmxlbmd0aCA+IDA7CiAgICAgICAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5sZW5ndGggPiAwOwogICAgICAgICAgICAgIGNhc2UgIm51bGwiOgogICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgY2FzZSAiaHRtbCI6CiAgICAgICAgICAgICAgY2FzZSAid2lkZ2V0IjoKICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICB9CiAgICAgIFZhbHVlcy5pc1RydXRoeSA9IGlzVHJ1dGh5OwogICAgICAvKiogRGVlcCBjb3B5IGEgZmllbGQuICovCiAgICAgIGZ1bmN0aW9uIGRlZXBDb3B5KGZpZWxkKSB7CiAgICAgICAgICBpZiAoZmllbGQgPT09IG51bGwgfHwgZmllbGQgPT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICByZXR1cm4gZmllbGQ7CiAgICAgICAgICBpZiAoVmFsdWVzLmlzQXJyYXkoZmllbGQpKSB7CiAgICAgICAgICAgICAgcmV0dXJuIFtdLmNvbmNhdChmaWVsZC5tYXAodiA9PiBkZWVwQ29weSh2KSkpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoVmFsdWVzLmlzT2JqZWN0KGZpZWxkKSkgewogICAgICAgICAgICAgIGxldCByZXN1bHQgPSB7fTsKICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGQpKQogICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGRlZXBDb3B5KHZhbHVlKTsKICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkOwogICAgICAgICAgfQogICAgICB9CiAgICAgIFZhbHVlcy5kZWVwQ29weSA9IGRlZXBDb3B5OwogICAgICBmdW5jdGlvbiBpc1N0cmluZyh2YWwpIHsKICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09ICJzdHJpbmciOwogICAgICB9CiAgICAgIFZhbHVlcy5pc1N0cmluZyA9IGlzU3RyaW5nOwogICAgICBmdW5jdGlvbiBpc051bWJlcih2YWwpIHsKICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09ICJudW1iZXIiOwogICAgICB9CiAgICAgIFZhbHVlcy5pc051bWJlciA9IGlzTnVtYmVyOwogICAgICBmdW5jdGlvbiBpc0RhdGUodmFsKSB7CiAgICAgICAgICByZXR1cm4gdmFsIGluc3RhbmNlb2YgRGF0ZVRpbWU7CiAgICAgIH0KICAgICAgVmFsdWVzLmlzRGF0ZSA9IGlzRGF0ZTsKICAgICAgZnVuY3Rpb24gaXNEdXJhdGlvbih2YWwpIHsKICAgICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBEdXJhdGlvbjsKICAgICAgfQogICAgICBWYWx1ZXMuaXNEdXJhdGlvbiA9IGlzRHVyYXRpb247CiAgICAgIGZ1bmN0aW9uIGlzTnVsbCh2YWwpIHsKICAgICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQ7CiAgICAgIH0KICAgICAgVmFsdWVzLmlzTnVsbCA9IGlzTnVsbDsKICAgICAgZnVuY3Rpb24gaXNBcnJheSh2YWwpIHsKICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbCk7CiAgICAgIH0KICAgICAgVmFsdWVzLmlzQXJyYXkgPSBpc0FycmF5OwogICAgICBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsKSB7CiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gImJvb2xlYW4iOwogICAgICB9CiAgICAgIFZhbHVlcy5pc0Jvb2xlYW4gPSBpc0Jvb2xlYW47CiAgICAgIGZ1bmN0aW9uIGlzTGluayh2YWwpIHsKICAgICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBMaW5rOwogICAgICB9CiAgICAgIFZhbHVlcy5pc0xpbmsgPSBpc0xpbms7CiAgICAgIGZ1bmN0aW9uIGlzV2lkZ2V0KHZhbCkgewogICAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIFdpZGdldDsKICAgICAgfQogICAgICBWYWx1ZXMuaXNXaWRnZXQgPSBpc1dpZGdldDsKICAgICAgZnVuY3Rpb24gaXNIdG1sKHZhbCkgewogICAgICAgICAgaWYgKHR5cGVvZiBIVE1MRWxlbWVudCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICByZXR1cm4gdmFsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgVmFsdWVzLmlzSHRtbCA9IGlzSHRtbDsKICAgICAgLyoqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gb2JqZWN0IChhbmQgbm90IGFueSBvdGhlciBkYXRhdmlldy1yZWNvZ25pemVkIG9iamVjdC1saWtlIHR5cGUpLiAqLwogICAgICBmdW5jdGlvbiBpc09iamVjdCh2YWwpIHsKICAgICAgICAgIHJldHVybiAodHlwZW9mIHZhbCA9PSAib2JqZWN0IiAmJgogICAgICAgICAgICAgICFpc0h0bWwodmFsKSAmJgogICAgICAgICAgICAgICFpc1dpZGdldCh2YWwpICYmCiAgICAgICAgICAgICAgIWlzQXJyYXkodmFsKSAmJgogICAgICAgICAgICAgICFpc0R1cmF0aW9uKHZhbCkgJiYKICAgICAgICAgICAgICAhaXNEYXRlKHZhbCkgJiYKICAgICAgICAgICAgICAhaXNMaW5rKHZhbCkgJiYKICAgICAgICAgICAgICB2YWwgIT09IHVuZGVmaW5lZCAmJgogICAgICAgICAgICAgICFpc051bGwodmFsKSk7CiAgICAgIH0KICAgICAgVmFsdWVzLmlzT2JqZWN0ID0gaXNPYmplY3Q7CiAgICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsKSB7CiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PSAiZnVuY3Rpb24iOwogICAgICB9CiAgICAgIFZhbHVlcy5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjsKICB9KShWYWx1ZXMgfHwgKFZhbHVlcyA9IHt9KSk7CiAgLy8vLy8vLy8vLy8vLy8vCiAgLy8gR3JvdXBpbmdzIC8vCiAgLy8vLy8vLy8vLy8vLy8vCiAgdmFyIEdyb3VwaW5nczsKICAoZnVuY3Rpb24gKEdyb3VwaW5ncykgewogICAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gZ3JvdXAgZW50cnkgaXMgYSBzdGFuZGFsb25lIHZhbHVlLCBvciBhIGdyb3VwaW5nIG9mIHN1Yi1lbnRyaWVzLiAqLwogICAgICBmdW5jdGlvbiBpc0VsZW1lbnRHcm91cChlbnRyeSkgewogICAgICAgICAgcmV0dXJuIFZhbHVlcy5pc09iamVjdChlbnRyeSkgJiYgT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCA9PSAyICYmICJrZXkiIGluIGVudHJ5ICYmICJyb3dzIiBpbiBlbnRyeTsKICAgICAgfQogICAgICBHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAgPSBpc0VsZW1lbnRHcm91cDsKICAgICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgZ3JvdXBpbmcgYXJyYXkuICovCiAgICAgIGZ1bmN0aW9uIGlzR3JvdXBpbmcoZW50cnkpIHsKICAgICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZW50cnkpCiAgICAgICAgICAgICAgaWYgKCFpc0VsZW1lbnRHcm91cChlbGVtZW50KSkKICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgR3JvdXBpbmdzLmlzR3JvdXBpbmcgPSBpc0dyb3VwaW5nOwogICAgICAvKiogQ291bnQgdGhlIHRvdGFsIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIHJlY3Vyc2l2ZSBncm91cGluZy4gKi8KICAgICAgZnVuY3Rpb24gY291bnQoZWxlbWVudHMpIHsKICAgICAgICAgIGlmIChpc0dyb3VwaW5nKGVsZW1lbnRzKSkgewogICAgICAgICAgICAgIGxldCByZXN1bHQgPSAwOwogICAgICAgICAgICAgIGZvciAobGV0IHN1Ymdyb3VwIG9mIGVsZW1lbnRzKQogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gY291bnQoc3ViZ3JvdXAucm93cyk7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIHJldHVybiBlbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgR3JvdXBpbmdzLmNvdW50ID0gY291bnQ7CiAgfSkoR3JvdXBpbmdzIHx8IChHcm91cGluZ3MgPSB7fSkpOwogIC8vLy8vLy8vLy8KICAvLyBMSU5LIC8vCiAgLy8vLy8vLy8vLwogIC8qKiBUaGUgT2JzaWRpYW4gJ2xpbmsnLCB1c2VkIGZvciB1bmlxdWVseSBkZXNjcmliaW5nIGEgZmlsZSwgaGVhZGVyLCBvciBibG9jay4gKi8KICBjbGFzcyBMaW5rIHsKICAgICAgLyoqIFRoZSBmaWxlIHBhdGggdGhpcyBsaW5rIHBvaW50cyB0by4gKi8KICAgICAgcGF0aDsKICAgICAgLyoqIFRoZSBkaXNwbGF5IG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBsaW5rLiAqLwogICAgICBkaXNwbGF5OwogICAgICAvKiogVGhlIGJsb2NrIElEIG9yIGhlYWRlciB0aGlzIGxpbmsgcG9pbnRzIHRvIHdpdGhpbiBhIGZpbGUsIGlmIHJlbGV2YW50LiAqLwogICAgICBzdWJwYXRoOwogICAgICAvKiogSXMgdGhpcyBsaW5rIGFuIGVtYmVkZGVkIGxpbmsgKCEpPyAqLwogICAgICBlbWJlZDsKICAgICAgLyoqIFRoZSB0eXBlIG9mIHRoaXMgbGluaywgd2hpY2ggZGV0ZXJtaW5lcyB3aGF0ICdzdWJwYXRoJyByZWZlcnMgdG8sIGlmIGFueXRoaW5nLiAqLwogICAgICB0eXBlOwogICAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUuICovCiAgICAgIHN0YXRpYyBmaWxlKHBhdGgsIGVtYmVkID0gZmFsc2UsIGRpc3BsYXkpIHsKICAgICAgICAgIHJldHVybiBuZXcgTGluayh7CiAgICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgICBlbWJlZCwKICAgICAgICAgICAgICBkaXNwbGF5LAogICAgICAgICAgICAgIHN1YnBhdGg6IHVuZGVmaW5lZCwKICAgICAgICAgICAgICB0eXBlOiAiZmlsZSIsCiAgICAgICAgICB9KTsKICAgICAgfQogICAgICBzdGF0aWMgaW5mZXIobGlua3BhdGgsIGVtYmVkID0gZmFsc2UsIGRpc3BsYXkpIHsKICAgICAgICAgIGlmIChsaW5rcGF0aC5pbmNsdWRlcygiI14iKSkgewogICAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KCIjXiIpOwogICAgICAgICAgICAgIHJldHVybiBMaW5rLmJsb2NrKHNwbGl0WzBdLCBzcGxpdFsxXSwgZW1iZWQsIGRpc3BsYXkpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAobGlua3BhdGguaW5jbHVkZXMoIiMiKSkgewogICAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KCIjIik7CiAgICAgICAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHNwbGl0WzBdLCBzcGxpdFsxXSwgZW1iZWQsIGRpc3BsYXkpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHJldHVybiBMaW5rLmZpbGUobGlua3BhdGgsIGVtYmVkLCBkaXNwbGF5KTsKICAgICAgfQogICAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGhlYWRlciBpbiB0aGF0IGZpbGUuICovCiAgICAgIHN0YXRpYyBoZWFkZXIocGF0aCwgaGVhZGVyLCBlbWJlZCwgZGlzcGxheSkgewogICAgICAgICAgLy8gSGVhZGVycyBuZWVkIHRvIGJlIG5vcm1hbGl6ZWQgdG8gYWxwaGEtbnVtZXJpYyAmIHdpdGggZXh0cmEgc3BhY2luZyByZW1vdmVkLgogICAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHsKICAgICAgICAgICAgICBwYXRoLAogICAgICAgICAgICAgIGVtYmVkLAogICAgICAgICAgICAgIGRpc3BsYXksCiAgICAgICAgICAgICAgc3VicGF0aDogbm9ybWFsaXplSGVhZGVyRm9yTGluayhoZWFkZXIpLAogICAgICAgICAgICAgIHR5cGU6ICJoZWFkZXIiLAogICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqIENyZWF0ZSBhIGxpbmsgdG8gYSBzcGVjaWZpYyBmaWxlIGFuZCBibG9jayBpbiB0aGF0IGZpbGUuICovCiAgICAgIHN0YXRpYyBibG9jayhwYXRoLCBibG9ja0lkLCBlbWJlZCwgZGlzcGxheSkgewogICAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHsKICAgICAgICAgICAgICBwYXRoLAogICAgICAgICAgICAgIGVtYmVkLAogICAgICAgICAgICAgIGRpc3BsYXksCiAgICAgICAgICAgICAgc3VicGF0aDogYmxvY2tJZCwKICAgICAgICAgICAgICB0eXBlOiAiYmxvY2siLAogICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgc3RhdGljIGZyb21PYmplY3Qob2JqZWN0KSB7CiAgICAgICAgICByZXR1cm4gbmV3IExpbmsob2JqZWN0KTsKICAgICAgfQogICAgICBjb25zdHJ1Y3RvcihmaWVsZHMpIHsKICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTsKICAgICAgfQogICAgICAvKiogQ2hlY2tzIGZvciBsaW5rIGVxdWFsaXR5IChpLmUuLCB0aGF0IHRoZSBsaW5rcyBhcmUgcG9pbnRpbmcgdG8gdGhlIHNhbWUgZXhhY3QgbG9jYXRpb24pLiAqLwogICAgICBlcXVhbHMob3RoZXIpIHsKICAgICAgICAgIGlmIChvdGhlciA9PSB1bmRlZmluZWQgfHwgb3RoZXIgPT0gbnVsbCkKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoID09IG90aGVyLnBhdGggJiYgdGhpcy50eXBlID09IG90aGVyLnR5cGUgJiYgdGhpcy5zdWJwYXRoID09IG90aGVyLnN1YnBhdGg7CiAgICAgIH0KICAgICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIHRvIGl0J3MgbWFya2Rvd24gcmVwcmVzZW50YXRpb24uICovCiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMubWFya2Rvd24oKTsKICAgICAgfQogICAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gYSByYXcgb2JqZWN0IHdoaWNoIGlzIHNlcmlhbGl6YXRpb24tZnJpZW5kbHkuICovCiAgICAgIHRvT2JqZWN0KCkgewogICAgICAgICAgcmV0dXJuIHsgcGF0aDogdGhpcy5wYXRoLCB0eXBlOiB0aGlzLnR5cGUsIHN1YnBhdGg6IHRoaXMuc3VicGF0aCwgZGlzcGxheTogdGhpcy5kaXNwbGF5LCBlbWJlZDogdGhpcy5lbWJlZCB9OwogICAgICB9CiAgICAgIC8qKiBVcGRhdGUgdGhpcyBsaW5rIHdpdGggYSBuZXcgcGF0aC4gKi8KICAgICAgLy9AdHMtaWdub3JlOyBlcnJvciBhcHBlYXJlZCBhZnRlciB1cGRhdGluZyBPYnNpZGlhbiB0byAwLjE1LjQ7IGl0IGFsc28gdXBkYXRlZCBvdGhlciBwYWNrYWdlcyBidXQgZGlkbid0IHNheSB3aGljaAogICAgICB3aXRoUGF0aChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gbmV3IExpbmsoT2JqZWN0LmFzc2lnbih7fSwgdGhpcywgeyBwYXRoIH0pKTsKICAgICAgfQogICAgICAvKiogUmV0dXJuIGEgbmV3IGxpbmsgd2hpY2ggcG9pbnRzIHRvIHRoZSBzYW1lIGxvY2F0aW9uIGJ1dCB3aXRoIGEgbmV3IGRpc3BsYXkgdmFsdWUuICovCiAgICAgIHdpdGhEaXNwbGF5KGRpc3BsYXkpIHsKICAgICAgICAgIHJldHVybiBuZXcgTGluayhPYmplY3QuYXNzaWduKHt9LCB0aGlzLCB7IGRpc3BsYXkgfSkpOwogICAgICB9CiAgICAgIC8qKiBDb252ZXJ0IGEgZmlsZSBsaW5rIGludG8gYSBsaW5rIHRvIGEgc3BlY2lmaWMgaGVhZGVyLiAqLwogICAgICB3aXRoSGVhZGVyKGhlYWRlcikgewogICAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHRoaXMucGF0aCwgaGVhZGVyLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpOwogICAgICB9CiAgICAgIC8qKiBDb252ZXJ0IGFueSBsaW5rIGludG8gYSBsaW5rIHRvIGl0cyBmaWxlLiAqLwogICAgICB0b0ZpbGUoKSB7CiAgICAgICAgICByZXR1cm4gTGluay5maWxlKHRoaXMucGF0aCwgdGhpcy5lbWJlZCwgdGhpcy5kaXNwbGF5KTsKICAgICAgfQogICAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgaW50byBhbiBlbWJlZGRlZCBsaW5rLiAqLwogICAgICB0b0VtYmVkKCkgewogICAgICAgICAgaWYgKHRoaXMuZW1iZWQpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGxldCBsaW5rID0gbmV3IExpbmsodGhpcyk7CiAgICAgICAgICAgICAgbGluay5lbWJlZCA9IHRydWU7CiAgICAgICAgICAgICAgcmV0dXJuIGxpbms7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIGludG8gYSBub24tZW1iZWRkZWQgbGluay4gKi8KICAgICAgZnJvbUVtYmVkKCkgewogICAgICAgICAgaWYgKCF0aGlzLmVtYmVkKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBsZXQgbGluayA9IG5ldyBMaW5rKHRoaXMpOwogICAgICAgICAgICAgIGxpbmsuZW1iZWQgPSBmYWxzZTsKICAgICAgICAgICAgICByZXR1cm4gbGluazsKICAgICAgICAgIH0KICAgICAgfQogICAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gbWFya2Rvd24gc28gaXQgY2FuIGJlIHJlbmRlcmVkLiAqLwogICAgICBtYXJrZG93bigpIHsKICAgICAgICAgIGxldCByZXN1bHQgPSAodGhpcy5lbWJlZCA/ICIhIiA6ICIiKSArICJbWyIgKyB0aGlzLm9ic2lkaWFuTGluaygpOwogICAgICAgICAgaWYgKHRoaXMuZGlzcGxheSkgewogICAgICAgICAgICAgIHJlc3VsdCArPSAifCIgKyB0aGlzLmRpc3BsYXk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICByZXN1bHQgKz0gInwiICsgZ2V0RmlsZVRpdGxlKHRoaXMucGF0aCk7CiAgICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAiaGVhZGVyIiB8fCB0aGlzLnR5cGUgPT0gImJsb2NrIikKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgPiAiICsgdGhpcy5zdWJwYXRoOwogICAgICAgICAgfQogICAgICAgICAgcmVzdWx0ICs9ICJdXSI7CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIC8qKiBDb252ZXJ0IHRoZSBpbm5lciBwYXJ0IG9mIHRoZSBsaW5rIHRvIHNvbWV0aGluZyB0aGF0IE9ic2lkaWFuIGNhbiBvcGVuIC8gdW5kZXJzdGFuZC4gKi8KICAgICAgb2JzaWRpYW5MaW5rKCkgewogICAgICAgICAgY29uc3QgZXNjYXBlZCA9IHRoaXMucGF0aC5yZXBsYWNlQWxsKCJ8IiwgIlxcfCIpOwogICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAiaGVhZGVyIikKICAgICAgICAgICAgICByZXR1cm4gZXNjYXBlZCArICIjIiArIHRoaXMuc3VicGF0aD8ucmVwbGFjZUFsbCgifCIsICJcXHwiKTsKICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gImJsb2NrIikKICAgICAgICAgICAgICByZXR1cm4gZXNjYXBlZCArICIjXiIgKyB0aGlzLnN1YnBhdGg/LnJlcGxhY2VBbGwoInwiLCAiXFx8Iik7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgcmV0dXJuIGVzY2FwZWQ7CiAgICAgIH0KICAgICAgLyoqIFRoZSBzdHJpcHBlZCBuYW1lIG9mIHRoZSBmaWxlIHRoaXMgbGluayBwb2ludHMgdG8uICovCiAgICAgIGZpbGVOYW1lKCkgewogICAgICAgICAgcmV0dXJuIGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpLnJlcGxhY2UoIi5tZCIsICIiKTsKICAgICAgfQogIH0KICAvLy8vLy8vLy8vLy8vLy8vLwogIC8vIFdJREdFVCBCQVNFIC8vCiAgLy8vLy8vLy8vLy8vLy8vLy8KICAvKioKICAgKiBBIHRyaXZpYWwgYmFzZSBjbGFzcyB3aGljaCBqdXN0IGRlZmluZXMgdGhlICckd2lkZ2V0JyBpZGVudGlmaWVyIHR5cGUuIFN1YnR5cGVzIG9mCiAgICogd2lkZ2V0IGFyZSByZXNwb25zaWJsZSBmb3IgYWRkaW5nIHdoYXRldmVyIG1ldGFkYXRhIGlzIHJlbGV2YW50LiBJZiB5b3Ugd2FudCB5b3VyIHdpZGdldAogICAqIHRvIGhhdmUgcmVuZGVyaW5nIGZ1bmN0aW9uYWxpdHkgKHdoaWNoIHlvdSBwcm9iYWJseSBkbyksIHlvdSBzaG91bGQgZXh0ZW5kIGBSZW5kZXJXaWRnZXRgLgogICAqLwogIGNsYXNzIFdpZGdldCB7CiAgICAgICR3aWRnZXQ7CiAgICAgIGNvbnN0cnVjdG9yKCR3aWRnZXQpIHsKICAgICAgICAgIHRoaXMuJHdpZGdldCA9ICR3aWRnZXQ7CiAgICAgIH0KICB9CiAgLyoqIEEgdHJpdmlhbCB3aWRnZXQgd2hpY2ggcmVuZGVycyBhIChrZXksIHZhbHVlKSBwYWlyLCBhbmQgYWxsb3dzIGFjY2Vzc2luZyB0aGUga2V5IGFuZCB2YWx1ZS4gKi8KICBjbGFzcyBMaXN0UGFpcldpZGdldCBleHRlbmRzIFdpZGdldCB7CiAgICAgIGtleTsKICAgICAgdmFsdWU7CiAgICAgIGNvbnN0cnVjdG9yKGtleSwgdmFsdWUpIHsKICAgICAgICAgIHN1cGVyKCJkYXRhdmlldzpsaXN0LXBhaXIiKTsKICAgICAgICAgIHRoaXMua2V5ID0ga2V5OwogICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOwogICAgICB9CiAgICAgIG1hcmtkb3duKCkgewogICAgICAgICAgcmV0dXJuIGAke1ZhbHVlcy50b1N0cmluZyh0aGlzLmtleSl9OiAke1ZhbHVlcy50b1N0cmluZyh0aGlzLnZhbHVlKX1gOwogICAgICB9CiAgfQogIC8qKiBBIHNpbXBsZSB3aWRnZXQgd2hpY2ggcmVuZGVycyBhbiBleHRlcm5hbCBsaW5rLiAqLwogIGNsYXNzIEV4dGVybmFsTGlua1dpZGdldCBleHRlbmRzIFdpZGdldCB7CiAgICAgIHVybDsKICAgICAgZGlzcGxheTsKICAgICAgY29uc3RydWN0b3IodXJsLCBkaXNwbGF5KSB7CiAgICAgICAgICBzdXBlcigiZGF0YXZpZXc6ZXh0ZXJuYWwtbGluayIpOwogICAgICAgICAgdGhpcy51cmwgPSB1cmw7CiAgICAgICAgICB0aGlzLmRpc3BsYXkgPSBkaXNwbGF5OwogICAgICB9CiAgICAgIG1hcmtkb3duKCkgewogICAgICAgICAgcmV0dXJuIGBbJHt0aGlzLmRpc3BsYXkgPz8gdGhpcy51cmx9XSgke3RoaXMudXJsfSlgOwogICAgICB9CiAgfQogIHZhciBXaWRnZXRzOwogIChmdW5jdGlvbiAoV2lkZ2V0cykgewogICAgICAvKiogQ3JlYXRlIGEgbGlzdCBwYWlyIHdpZGdldCBtYXRjaGluZyB0aGUgZ2l2ZW4ga2V5IGFuZCB2YWx1ZS4gKi8KICAgICAgZnVuY3Rpb24gbGlzdFBhaXIoa2V5LCB2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIG5ldyBMaXN0UGFpcldpZGdldChrZXksIHZhbHVlKTsKICAgICAgfQogICAgICBXaWRnZXRzLmxpc3RQYWlyID0gbGlzdFBhaXI7CiAgICAgIC8qKiBDcmVhdGUgYW4gZXh0ZXJuYWwgbGluayB3aWRnZXQgd2hpY2ggcmVuZGVycyBhbiBleHRlcm5hbCBPYnNpZGlhbiBsaW5rLiAqLwogICAgICBmdW5jdGlvbiBleHRlcm5hbExpbmsodXJsLCBkaXNwbGF5KSB7CiAgICAgICAgICByZXR1cm4gbmV3IEV4dGVybmFsTGlua1dpZGdldCh1cmwsIGRpc3BsYXkpOwogICAgICB9CiAgICAgIFdpZGdldHMuZXh0ZXJuYWxMaW5rID0gZXh0ZXJuYWxMaW5rOwogICAgICAvKiogQ2hlY2tzIGlmIHRoZSBnaXZlbiB3aWRnZXQgaXMgYSBsaXN0IHBhaXIgd2lkZ2V0LiAqLwogICAgICBmdW5jdGlvbiBpc0xpc3RQYWlyKHdpZGdldCkgewogICAgICAgICAgcmV0dXJuIHdpZGdldC4kd2lkZ2V0ID09PSAiZGF0YXZpZXc6bGlzdC1wYWlyIjsKICAgICAgfQogICAgICBXaWRnZXRzLmlzTGlzdFBhaXIgPSBpc0xpc3RQYWlyOwogICAgICBmdW5jdGlvbiBpc0V4dGVybmFsTGluayh3aWRnZXQpIHsKICAgICAgICAgIHJldHVybiB3aWRnZXQuJHdpZGdldCA9PT0gImRhdGF2aWV3OmV4dGVybmFsLWxpbmsiOwogICAgICB9CiAgICAgIFdpZGdldHMuaXNFeHRlcm5hbExpbmsgPSBpc0V4dGVybmFsTGluazsKICAgICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHdpZGdldCBpcyBhbnkga2luZCBvZiBidWlsdC1pbiB3aWRnZXQgd2l0aCBzcGVjaWFsIHJlbmRlcmluZyBoYW5kbGluZy4gKi8KICAgICAgZnVuY3Rpb24gaXNCdWlsdGluKHdpZGdldCkgewogICAgICAgICAgcmV0dXJuIGlzTGlzdFBhaXIod2lkZ2V0KSB8fCBpc0V4dGVybmFsTGluayh3aWRnZXQpOwogICAgICB9CiAgICAgIFdpZGdldHMuaXNCdWlsdGluID0gaXNCdWlsdGluOwogIH0pKFdpZGdldHMgfHwgKFdpZGdldHMgPSB7fSkpOwoKICAvKiogVXRpbGl0eSBtZXRob2RzIGZvciBjcmVhdGluZyAmIGNvbXBhcmluZyBmaWVsZHMuICovCiAgdmFyIEZpZWxkczsKICAoZnVuY3Rpb24gKEZpZWxkcykgewogICAgICBmdW5jdGlvbiB2YXJpYWJsZShuYW1lKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAidmFyaWFibGUiLCBuYW1lIH07CiAgICAgIH0KICAgICAgRmllbGRzLnZhcmlhYmxlID0gdmFyaWFibGU7CiAgICAgIGZ1bmN0aW9uIGxpdGVyYWwodmFsdWUpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJsaXRlcmFsIiwgdmFsdWUgfTsKICAgICAgfQogICAgICBGaWVsZHMubGl0ZXJhbCA9IGxpdGVyYWw7CiAgICAgIGZ1bmN0aW9uIGJpbmFyeU9wKGxlZnQsIG9wLCByaWdodCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3AsIHJpZ2h0IH07CiAgICAgIH0KICAgICAgRmllbGRzLmJpbmFyeU9wID0gYmluYXJ5T3A7CiAgICAgIGZ1bmN0aW9uIGluZGV4KG9iaiwgaW5kZXgpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJpbmRleCIsIG9iamVjdDogb2JqLCBpbmRleCB9OwogICAgICB9CiAgICAgIEZpZWxkcy5pbmRleCA9IGluZGV4OwogICAgICAvKiogQ29udmVydHMgYSBzdHJpbmcgaW4gZG90LW5vdGF0aW9uLWZvcm1hdCBpbnRvIGEgdmFyaWFibGUgd2hpY2ggaW5kZXhlcy4gKi8KICAgICAgZnVuY3Rpb24gaW5kZXhWYXJpYWJsZShuYW1lKSB7CiAgICAgICAgICBsZXQgcGFydHMgPSBuYW1lLnNwbGl0KCIuIik7CiAgICAgICAgICBsZXQgcmVzdWx0ID0gRmllbGRzLnZhcmlhYmxlKHBhcnRzWzBdKTsKICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCBwYXJ0cy5sZW5ndGg7IGluZGV4KyspIHsKICAgICAgICAgICAgICByZXN1bHQgPSBGaWVsZHMuaW5kZXgocmVzdWx0LCBGaWVsZHMubGl0ZXJhbChwYXJ0c1tpbmRleF0pKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgRmllbGRzLmluZGV4VmFyaWFibGUgPSBpbmRleFZhcmlhYmxlOwogICAgICBmdW5jdGlvbiBsYW1iZGEoYXJncywgdmFsdWUpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJsYW1iZGEiLCBhcmd1bWVudHM6IGFyZ3MsIHZhbHVlIH07CiAgICAgIH0KICAgICAgRmllbGRzLmxhbWJkYSA9IGxhbWJkYTsKICAgICAgZnVuY3Rpb24gZnVuYyhmdW5jLCBhcmdzKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiZnVuY3Rpb24iLCBmdW5jLCBhcmd1bWVudHM6IGFyZ3MgfTsKICAgICAgfQogICAgICBGaWVsZHMuZnVuYyA9IGZ1bmM7CiAgICAgIGZ1bmN0aW9uIGxpc3QodmFsdWVzKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAibGlzdCIsIHZhbHVlcyB9OwogICAgICB9CiAgICAgIEZpZWxkcy5saXN0ID0gbGlzdDsKICAgICAgZnVuY3Rpb24gb2JqZWN0KHZhbHVlcykgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogIm9iamVjdCIsIHZhbHVlcyB9OwogICAgICB9CiAgICAgIEZpZWxkcy5vYmplY3QgPSBvYmplY3Q7CiAgICAgIGZ1bmN0aW9uIG5lZ2F0ZShjaGlsZCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogIm5lZ2F0ZWQiLCBjaGlsZCB9OwogICAgICB9CiAgICAgIEZpZWxkcy5uZWdhdGUgPSBuZWdhdGU7CiAgICAgIGZ1bmN0aW9uIGlzQ29tcGFyZU9wKG9wKSB7CiAgICAgICAgICByZXR1cm4gb3AgPT0gIjw9IiB8fCBvcCA9PSAiPCIgfHwgb3AgPT0gIj4iIHx8IG9wID09ICI+PSIgfHwgb3AgPT0gIiE9IiB8fCBvcCA9PSAiPSI7CiAgICAgIH0KICAgICAgRmllbGRzLmlzQ29tcGFyZU9wID0gaXNDb21wYXJlT3A7CiAgICAgIEZpZWxkcy5OVUxMID0gRmllbGRzLmxpdGVyYWwobnVsbCk7CiAgfSkoRmllbGRzIHx8IChGaWVsZHMgPSB7fSkpOwoKICAvKiogQVNUIGltcGxlbWVudGF0aW9uIGZvciBxdWVyaWVzIG92ZXIgZGF0YSBzb3VyY2VzLiAqLwogIC8qKiBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZyBzb3VyY2VzLiAqLwogIHZhciBTb3VyY2VzOwogIChmdW5jdGlvbiAoU291cmNlcykgewogICAgICAvKiogQ3JlYXRlIGEgc291cmNlIHdoaWNoIHNlYXJjaGVzIGZyb20gYSB0YWcuICovCiAgICAgIGZ1bmN0aW9uIHRhZyh0YWcpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJ0YWciLCB0YWcgfTsKICAgICAgfQogICAgICBTb3VyY2VzLnRhZyA9IHRhZzsKICAgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBmZXRjaGVzIGZyb20gYSBDU1YgZmlsZS4gKi8KICAgICAgZnVuY3Rpb24gY3N2KHBhdGgpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJjc3YiLCBwYXRoIH07CiAgICAgIH0KICAgICAgU291cmNlcy5jc3YgPSBjc3Y7CiAgICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggc2VhcmNoZXMgZm9yIGZpbGVzIHVuZGVyIGEgZm9sZGVyIHByZWZpeC4gKi8KICAgICAgZnVuY3Rpb24gZm9sZGVyKHByZWZpeCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImZvbGRlciIsIGZvbGRlcjogcHJlZml4IH07CiAgICAgIH0KICAgICAgU291cmNlcy5mb2xkZXIgPSBmb2xkZXI7CiAgICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggc2VhcmNoZXMgZm9yIGZpbGVzIHdoaWNoIGxpbmsgdG8vZnJvbSBhIGdpdmVuIGZpbGUuICovCiAgICAgIGZ1bmN0aW9uIGxpbmsoZmlsZSwgaW5jb21pbmcpIHsKICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJsaW5rIiwgZmlsZSwgZGlyZWN0aW9uOiBpbmNvbWluZyA/ICJpbmNvbWluZyIgOiAib3V0Z29pbmciIH07CiAgICAgIH0KICAgICAgU291cmNlcy5saW5rID0gbGluazsKICAgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBqb2lucyB0d28gc291cmNlcyBieSBhIGxvZ2ljYWwgb3BlcmF0b3IgKGFuZC9vcikuICovCiAgICAgIGZ1bmN0aW9uIGJpbmFyeU9wKGxlZnQsIG9wLCByaWdodCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3AsIHJpZ2h0IH07CiAgICAgIH0KICAgICAgU291cmNlcy5iaW5hcnlPcCA9IGJpbmFyeU9wOwogICAgICAvKiogQ3JlYXRlIGEgc291cmNlIHdoaWNoIHRha2VzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdHdvIHNvdXJjZXMuICovCiAgICAgIGZ1bmN0aW9uIGFuZChsZWZ0LCByaWdodCkgewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3A6ICImIiwgcmlnaHQgfTsKICAgICAgfQogICAgICBTb3VyY2VzLmFuZCA9IGFuZDsKICAgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCB0YWtlcyB0aGUgdW5pb24gb2YgdHdvIHNvdXJjZXMuICovCiAgICAgIGZ1bmN0aW9uIG9yKGxlZnQsIHJpZ2h0KSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiYmluYXJ5b3AiLCBsZWZ0LCBvcDogInwiLCByaWdodCB9OwogICAgICB9CiAgICAgIFNvdXJjZXMub3IgPSBvcjsKICAgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBuZWdhdGVzIHRoZSB1bmRlcmx5aW5nIHNvdXJjZS4gKi8KICAgICAgZnVuY3Rpb24gbmVnYXRlKGNoaWxkKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAibmVnYXRlIiwgY2hpbGQgfTsKICAgICAgfQogICAgICBTb3VyY2VzLm5lZ2F0ZSA9IG5lZ2F0ZTsKICAgICAgZnVuY3Rpb24gZW1wdHkoKSB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiZW1wdHkiIH07CiAgICAgIH0KICAgICAgU291cmNlcy5lbXB0eSA9IGVtcHR5OwogIH0pKFNvdXJjZXMgfHwgKFNvdXJjZXMgPSB7fSkpOwoKICAvKiogRW1vamkgcmVnZXggd2l0aG91dCBhbnkgYWRkaXRpb25hbCBmbGFncy4gKi8KICBjb25zdCBFTU9KSV9SRUdFWCA9IG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCAiIik7CiAgLyoqIFByb3ZpZGVzIGEgbG9va3VwIHRhYmxlIGZvciB1bml0IGR1cmF0aW9ucyBvZiB0aGUgZ2l2ZW4gdHlwZS4gKi8KICBjb25zdCBEVVJBVElPTl9UWVBFUyA9IHsKICAgICAgeWVhcjogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLAogICAgICB5ZWFyczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLAogICAgICB5cjogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLAogICAgICB5cnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSwKICAgICAgbW9udGg6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksCiAgICAgIG1vbnRoczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSwKICAgICAgbW86IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksCiAgICAgIG1vczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSwKICAgICAgd2VlazogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLAogICAgICB3ZWVrczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLAogICAgICB3azogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLAogICAgICB3a3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSwKICAgICAgdzogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLAogICAgICBkYXk6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLAogICAgICBkYXlzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSwKICAgICAgZDogRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEgfSksCiAgICAgIGhvdXI6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwKICAgICAgaG91cnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwKICAgICAgaHI6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwKICAgICAgaHJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksCiAgICAgIGg6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwKICAgICAgbWludXRlOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSwKICAgICAgbWludXRlczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksCiAgICAgIG1pbjogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksCiAgICAgIG1pbnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLAogICAgICBtOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSwKICAgICAgc2Vjb25kOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSwKICAgICAgc2Vjb25kczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksCiAgICAgIHNlYzogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksCiAgICAgIHNlY3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLAogICAgICBzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSwKICB9OwogIC8qKiBTaG9ydGhhbmQgZm9yIGNvbW1vbiBkYXRlcyAocmVsYXRpdmUgdG8gcmlnaHQgbm93KS4gKi8KICBjb25zdCBEQVRFX1NIT1JUSEFORFMgPSB7CiAgICAgIG5vdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKSwKICAgICAgdG9kYXk6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZigiZGF5IiksCiAgICAgIHllc3RlcmRheTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKQogICAgICAgICAgLnN0YXJ0T2YoImRheSIpCiAgICAgICAgICAubWludXMoRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEgfSkpLAogICAgICB0b21vcnJvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKQogICAgICAgICAgLnN0YXJ0T2YoImRheSIpCiAgICAgICAgICAucGx1cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSksCiAgICAgIHNvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJ3ZWVrIiksCiAgICAgICJzdGFydC1vZi13ZWVrIjogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJ3ZWVrIiksCiAgICAgIGVvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZigid2VlayIpLAogICAgICAiZW5kLW9mLXdlZWsiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKCJ3ZWVrIiksCiAgICAgIHNveTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJ5ZWFyIiksCiAgICAgICJzdGFydC1vZi15ZWFyIjogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJ5ZWFyIiksCiAgICAgIGVveTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZigieWVhciIpLAogICAgICAiZW5kLW9mLXllYXIiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKCJ5ZWFyIiksCiAgICAgIHNvbTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKCJtb250aCIpLAogICAgICAic3RhcnQtb2YtbW9udGgiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoIm1vbnRoIiksCiAgICAgIGVvbTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZigibW9udGgiKSwKICAgICAgImVuZC1vZi1tb250aCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoIm1vbnRoIiksCiAgfTsKICAvKioKICAgKiBLZXl3b3JkcyB3aGljaCBjYW5ub3QgYmUgdXNlZCBhcyB2YXJpYWJsZXMgZGlyZWN0bHkuIFVzZSBgcm93Ljx0aGluZz5gIGlmIGl0IGlzIGEgdmFyaWFibGUgeW91IGhhdmUgZGVmaW5lZCBhbmQgd2FudAogICAqIHRvIGFjY2Vzcy4KICAgKi8KICBjb25zdCBLRVlXT1JEUyA9IFsiRlJPTSIsICJXSEVSRSIsICJMSU1JVCIsICJHUk9VUCIsICJGTEFUVEVOIl07CiAgLy8vLy8vLy8vLy8vLy8vCiAgLy8gVXRpbGl0aWVzIC8vCiAgLy8vLy8vLy8vLy8vLy8vCiAgLyoqIFNwbGl0IG9uIHVuZXNjYXBlZCBwaXBlcyBpbiBhbiBpbm5lciBsaW5rLiAqLwogIGZ1bmN0aW9uIHNwbGl0T25VbmVzY2FwZWRQaXBlKGxpbmspIHsKICAgICAgbGV0IHBpcGUgPSAtMTsKICAgICAgd2hpbGUgKChwaXBlID0gbGluay5pbmRleE9mKCJ8IiwgcGlwZSArIDEpKSA+PSAwKSB7CiAgICAgICAgICBpZiAocGlwZSA+IDAgJiYgbGlua1twaXBlIC0gMV0gPT0gIlxcIikKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIHJldHVybiBbbGluay5zdWJzdHJpbmcoMCwgcGlwZSkucmVwbGFjZSgvXFxcfC9nLCAifCIpLCBsaW5rLnN1YnN0cmluZyhwaXBlICsgMSldOwogICAgICB9CiAgICAgIHJldHVybiBbbGluay5yZXBsYWNlKC9cXFx8L2csICJ8IiksIHVuZGVmaW5lZF07CiAgfQogIC8qKiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBpbnNpZGUgb2YgYSBsaW5rIHRvIHB1bGwgb3V0IGRpc3BsYXkgbmFtZSwgc3VicGF0aCwgZXRjLiAqLwogIGZ1bmN0aW9uIHBhcnNlSW5uZXJMaW5rKHJhd2xpbmspIHsKICAgICAgbGV0IFtsaW5rLCBkaXNwbGF5XSA9IHNwbGl0T25VbmVzY2FwZWRQaXBlKHJhd2xpbmspOwogICAgICByZXR1cm4gTGluay5pbmZlcihsaW5rLCBmYWxzZSwgZGlzcGxheSk7CiAgfQogIC8qKiBDcmVhdGUgYSBsZWZ0LWFzc29jaWF0aXZlIGJpbmFyeSBwYXJzZXIgd2hpY2ggcGFyc2VzIHRoZSBnaXZlbiBzdWItZWxlbWVudCBhbmQgc2VwYXJhdG9yLiBIYW5kbGVzIHdoaXRlc3BhY2UuICovCiAgZnVuY3Rpb24gY3JlYXRlQmluYXJ5UGFyc2VyKGNoaWxkLCBzZXAsIGNvbWJpbmUpIHsKICAgICAgcmV0dXJuIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAoY2hpbGQsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXEocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIHNlcCwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIGNoaWxkKS5tYW55KCksIChmaXJzdCwgcmVzdCkgPT4gewogICAgICAgICAgaWYgKHJlc3QubGVuZ3RoID09IDApCiAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0OwogICAgICAgICAgbGV0IG5vZGUgPSBjb21iaW5lKGZpcnN0LCByZXN0WzBdWzFdLCByZXN0WzBdWzNdKTsKICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCByZXN0Lmxlbmd0aDsgaW5kZXgrKykgewogICAgICAgICAgICAgIG5vZGUgPSBjb21iaW5lKG5vZGUsIHJlc3RbaW5kZXhdWzFdLCByZXN0W2luZGV4XVszXSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIGNoYWluT3B0KGJhc2UsIC4uLmZ1bmNzKSB7CiAgICAgIHJldHVybiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuY3VzdG9tKChzdWNjZXNzLCBmYWlsdXJlKSA9PiB7CiAgICAgICAgICByZXR1cm4gKGlucHV0LCBpKSA9PiB7CiAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGJhc2UuXyhpbnB1dCwgaSk7CiAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuc3RhdHVzKQogICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHsKICAgICAgICAgICAgICAgICAgbGV0IG5leHQgPSBmdW5jKHJlc3VsdC52YWx1ZSkuXyhpbnB1dCwgcmVzdWx0LmluZGV4KTsKICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0LnN0YXR1cykKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9OwogICAgICB9KTsKICB9CiAgY29uc3QgRVhQUkVTU0lPTiA9IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5jcmVhdGVMYW5ndWFnZSh7CiAgICAgIC8vIEEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyOyB0aGUgZGVjaW1hbCBwb2ludCBpcyBvcHRpb25hbC4KICAgICAgbnVtYmVyOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoLy0/WzAtOV0rKFwuWzAtOV0rKT8vKQogICAgICAgICAgLm1hcChzdHIgPT4gTnVtYmVyLnBhcnNlRmxvYXQoc3RyKSkKICAgICAgICAgIC5kZXNjKCJudW1iZXIiKSwKICAgICAgLy8gQSBxdW90ZS1zdXJyb3VuZGVkIHN0cmluZyB3aGljaCBzdXBwb3J0cyBlc2NhcGUgY2hhcmFjdGVycyAoJ1wnKS4KICAgICAgc3RyaW5nOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoJyInKQogICAgICAgICAgLnRoZW4ocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChxLmVzY2FwZUNoYXJhY3RlciwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm5vbmVPZignIlxcJykpCiAgICAgICAgICAuYXRMZWFzdCgwKQogICAgICAgICAgLm1hcChjaGFycyA9PiBjaGFycy5qb2luKCIiKSkpCiAgICAgICAgICAuc2tpcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCciJykpCiAgICAgICAgICAuZGVzYygic3RyaW5nIiksCiAgICAgIGVzY2FwZUNoYXJhY3RlcjogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJcXCIpCiAgICAgICAgICAudGhlbihwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYW55KQogICAgICAgICAgLm1hcChlc2NhcGVkID0+IHsKICAgICAgICAgIC8vIElmIHdlIGFyZSBlc2NhcGluZyBhIGJhY2tzbGFzaCBvciBhIHF1b3RlLCBwYXNzIGluIG9uIGluIGVzY2FwZWQgZm9ybQogICAgICAgICAgaWYgKGVzY2FwZWQgPT09ICciJykKICAgICAgICAgICAgICByZXR1cm4gJyInOwogICAgICAgICAgaWYgKGVzY2FwZWQgPT09ICJcXCIpCiAgICAgICAgICAgICAgcmV0dXJuICJcXCI7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgcmV0dXJuICJcXCIgKyBlc2NhcGVkOwogICAgICB9KSwKICAgICAgLy8gQSBib29sZWFuIHRydWUvZmFsc2UgdmFsdWUuCiAgICAgIGJvb2w6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvdHJ1ZXxmYWxzZXxUcnVlfEZhbHNlLykKICAgICAgICAgIC5tYXAoc3RyID0+IHN0ci50b0xvd2VyQ2FzZSgpID09ICJ0cnVlIikKICAgICAgICAgIC5kZXNjKCJib29sZWFuICgndHJ1ZScgb3IgJ2ZhbHNlJykiKSwKICAgICAgLy8gQSB0YWcgb2YgdGhlIGZvcm0gJyNzdHVmZi9oZWxsby10aGVyZScuCiAgICAgIHRhZzogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiMiKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9bXlx1MjAwMC1cdTIwNkZcdTJFMDAtXHUyRTdGJyEiIyQlJigpKissLjo7PD0+P0BeYHt8fX5cW1xdXFxcc10vKS5kZXNjKCJ0ZXh0IikpLm1hbnkoKSwgKHN0YXJ0LCByZXN0KSA9PiBzdGFydCArIHJlc3Quam9pbigiIikpLmRlc2MoInRhZyAoJyNoZWxsby9zdHVmZicpIiksCiAgICAgIC8vIEEgdmFyaWFibGUgaWRlbnRpZmllciwgd2hpY2ggaXMgYWxwaGFudW1lcmljIGFuZCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IuLi4gZW1vamkuCiAgICAgIGlkZW50aWZpZXI6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1xwe0xldHRlcn0vdSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoInRleHQiKSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvWzAtOVxwe0xldHRlcn1fLV0vdSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoInRleHQiKSkubWFueSgpLCAoZmlyc3QsIHJlc3QpID0+IGZpcnN0ICsgcmVzdC5qb2luKCIiKSkuZGVzYygidmFyaWFibGUgaWRlbnRpZmllciIpLAogICAgICAvLyBBbiBPYnNpZGlhbiBsaW5rIG9mIHRoZSBmb3JtIFtbPGxpbms+XV0uCiAgICAgIGxpbms6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXFtcWyhbXlxbXF1dKj8pXF1cXS91LCAxKQogICAgICAgICAgLm1hcChsaW5rSW5uZXIgPT4gcGFyc2VJbm5lckxpbmsobGlua0lubmVyKSkKICAgICAgICAgIC5kZXNjKCJmaWxlIGxpbmsiKSwKICAgICAgLy8gQW4gZW1iZWRkYWJsZSBsaW5rIHdoaWNoIGNhbiBzdGFydCB3aXRoICchJy4gVGhpcyBvdmVybGFwcyB3aXRoIHRoZSBub3JtYWwgbmVnYXRpb24gb3BlcmF0b3IsIHNvIGl0IGlzIG9ubHkKICAgICAgLy8gcHJvdmlkZWQgZm9yIG1ldGFkYXRhIHBhcnNpbmcuCiAgICAgIGVtYmVkTGluazogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiEiKS5hdE1vc3QoMSksIHEubGluaywgKHAsIGwpID0+IHsKICAgICAgICAgIGlmIChwLmxlbmd0aCA+IDApCiAgICAgICAgICAgICAgbC5lbWJlZCA9IHRydWU7CiAgICAgICAgICByZXR1cm4gbDsKICAgICAgfSkuZGVzYygiZmlsZSBsaW5rIiksCiAgICAgIC8vIEJpbmFyeSBwbHVzIG9yIG1pbnVzIG9wZXJhdG9yLgogICAgICBiaW5hcnlQbHVzTWludXM6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXCt8LS8pCiAgICAgICAgICAubWFwKHN0ciA9PiBzdHIpCiAgICAgICAgICAuZGVzYygiJysnIG9yICctJyIpLAogICAgICAvLyBCaW5hcnkgdGltZXMgb3IgZGl2aWRlIG9wZXJhdG9yLgogICAgICBiaW5hcnlNdWxEaXY6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXCp8XC98JS8pCiAgICAgICAgICAubWFwKHN0ciA9PiBzdHIpCiAgICAgICAgICAuZGVzYygiJyonIG9yICcvJyBvciAnJSciKSwKICAgICAgLy8gQmluYXJ5IGNvbXBhcmlzb24gb3BlcmF0b3IuCiAgICAgIGJpbmFyeUNvbXBhcmVPcDogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC8+PXw8PXwhPXw+fDx8PS8pCiAgICAgICAgICAubWFwKHN0ciA9PiBzdHIpCiAgICAgICAgICAuZGVzYygiJz49JyBvciAnPD0nIG9yICchPScgb3IgJz0nIG9yICc+JyBvciAnPCciKSwKICAgICAgLy8gQmluYXJ5IGJvb2xlYW4gY29tYmluYXRpb24gb3BlcmF0b3IuCiAgICAgIGJpbmFyeUJvb2xlYW5PcDogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9hbmR8b3J8JnxcfC9pKQogICAgICAgICAgLm1hcChzdHIgPT4gewogICAgICAgICAgaWYgKHN0ci50b0xvd2VyQ2FzZSgpID09ICJhbmQiKQogICAgICAgICAgICAgIHJldHVybiAiJiI7CiAgICAgICAgICBlbHNlIGlmIChzdHIudG9Mb3dlckNhc2UoKSA9PSAib3IiKQogICAgICAgICAgICAgIHJldHVybiAifCI7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgcmV0dXJuIHN0cjsKICAgICAgfSkKICAgICAgICAgIC5kZXNjKCInYW5kJyBvciAnb3InIiksCiAgICAgIC8vIEEgZGF0ZSB3aGljaCBjYW4gYmUgWVlZWS1NTVstRERUSEg6bW06c3NdLgogICAgICByb290RGF0ZTogXyA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1xkezR9LyksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIi0iKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXGR7Mn0vKSwgKHllYXIsIF8sIG1vbnRoKSA9PiB7CiAgICAgICAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IE51bWJlci5wYXJzZUludCh5ZWFyKSwgbW9udGg6IE51bWJlci5wYXJzZUludChtb250aCkgfSk7CiAgICAgIH0pLmRlc2MoImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXSIpLAogICAgICBkYXRlU2hvcnRoYW5kOiBfID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQoLi4uT2JqZWN0LmtleXMoREFURV9TSE9SVEhBTkRTKQogICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpCiAgICAgICAgICAubWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcpKSwKICAgICAgZGF0ZTogcSA9PiBjaGFpbk9wdChxLnJvb3REYXRlLCAoeW0pID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiLSIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgZGF5KSA9PiB5bS5zZXQoeyBkYXk6IE51bWJlci5wYXJzZUludChkYXkpIH0pKSwgKHltZCkgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJUIiksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1xkezJ9LyksIChfLCBob3VyKSA9PiB5bWQuc2V0KHsgaG91cjogTnVtYmVyLnBhcnNlSW50KGhvdXIpIH0pKSwgKHltZGgpID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiOiIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgbWludXRlKSA9PiB5bWRoLnNldCh7IG1pbnV0ZTogTnVtYmVyLnBhcnNlSW50KG1pbnV0ZSkgfSkpLCAoeW1kaG0pID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiOiIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgc2Vjb25kKSA9PiB5bWRobS5zZXQoeyBzZWNvbmQ6IE51bWJlci5wYXJzZUludChzZWNvbmQpIH0pKSwgKHltZGhtcykgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIi4iKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvXGR7M30vKSwgKF8sIG1pbGxpc2Vjb25kKSA9PiB5bWRobXMuc2V0KHsgbWlsbGlzZWNvbmQ6IE51bWJlci5wYXJzZUludChtaWxsaXNlY29uZCkgfSkpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3VjY2VlZCh5bWRobXMpIC8vIHBhc3MKICAgICAgKSwgKGR0KSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKyIpLm9yKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIi0iKSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5yZWdleHAoL1xkezEsMn0oOlxkezJ9KT8vKSwgKHBtLCBocikgPT4gZHQuc2V0Wm9uZSgiVVRDIiArIHBtICsgaHIsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KSksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiWiIpLCAoKSA9PiBkdC5zZXRab25lKCJ1dGMiLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIlsiKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvWzAtOUEtWmEteistXC9dKy91KSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiXSIpLCAoX2EsIHpvbmUsIF9iKSA9PiBkdC5zZXRab25lKHpvbmUsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KSkpKQogICAgICAgICAgLmFzc2VydCgoZHQpID0+IGR0LmlzVmFsaWQsICJ2YWxpZCBkYXRlIikKICAgICAgICAgIC5kZXNjKCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU10iKSwKICAgICAgLy8gQSBkYXRlLCBwbHVzIHZhcmlvdXMgc2hvcnRoYW5kIHRpbWVzIG9mIGRheSBpdCBjb3VsZCBiZS4KICAgICAgZGF0ZVBsdXM6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChxLmRhdGVTaG9ydGhhbmQubWFwKGQgPT4gREFURV9TSE9SVEhBTkRTW2RdKCkpLCBxLmRhdGUpLmRlc2MoImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXSBvciBpbiBzaG9ydGhhbmQiKSwKICAgICAgLy8gQSBkdXJhdGlvbiBvZiB0aW1lLgogICAgICBkdXJhdGlvblR5cGU6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdCguLi5PYmplY3Qua2V5cyhEVVJBVElPTl9UWVBFUykKICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKQogICAgICAgICAgLm1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKSksCiAgICAgIGR1cmF0aW9uOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocS5udW1iZXIsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmR1cmF0aW9uVHlwZSwgKGNvdW50LCBfLCB0KSA9PiBEVVJBVElPTl9UWVBFU1t0XS5tYXBVbml0cyh4ID0+IHggKiBjb3VudCkpCiAgICAgICAgICAuc2VwQnkxKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKS5vcihwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSkpCiAgICAgICAgICAubWFwKGR1cmF0aW9ucyA9PiBkdXJhdGlvbnMucmVkdWNlKChwLCBjKSA9PiBwLnBsdXMoYykpKQogICAgICAgICAgLmRlc2MoImR1cmF0aW9uIGxpa2UgNGhyMm1pbiIpLAogICAgICAvLyBBIHJhdyBudWxsIHZhbHVlLgogICAgICByYXdOdWxsOiBfID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIm51bGwiKSwKICAgICAgLy8gU291cmNlIHBhcnNpbmcuCiAgICAgIHRhZ1NvdXJjZTogcSA9PiBxLnRhZy5tYXAodGFnID0+IFNvdXJjZXMudGFnKHRhZykpLAogICAgICBjc3ZTb3VyY2U6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJjc3YoIikuc2tpcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSksIHEuc3RyaW5nLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCIpIiksIChfMSwgcGF0aCwgXzIpID0+IFNvdXJjZXMuY3N2KHBhdGgpKSwKICAgICAgbGlua0luY29taW5nU291cmNlOiBxID0+IHEubGluay5tYXAobGluayA9PiBTb3VyY2VzLmxpbmsobGluay5wYXRoLCB0cnVlKSksCiAgICAgIGxpbmtPdXRnb2luZ1NvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIm91dGdvaW5nKCIpLnNraXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UpLCBxLmxpbmssIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIikiKSwgKF8xLCBsaW5rLCBfMikgPT4gU291cmNlcy5saW5rKGxpbmsucGF0aCwgZmFsc2UpKSwKICAgICAgZm9sZGVyU291cmNlOiBxID0+IHEuc3RyaW5nLm1hcChzdHIgPT4gU291cmNlcy5mb2xkZXIoc3RyKSksCiAgICAgIHBhcmVuc1NvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIigiKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIHEuc291cmNlLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLCAoXzEsIF8yLCBmaWVsZCwgXzMsIF80KSA9PiBmaWVsZCksCiAgICAgIG5lZ2F0ZVNvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiLSIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCIhIikpLCBxLmF0b21Tb3VyY2UsIChfLCBzb3VyY2UpID0+IFNvdXJjZXMubmVnYXRlKHNvdXJjZSkpLAogICAgICBhdG9tU291cmNlOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocS5wYXJlbnNTb3VyY2UsIHEubmVnYXRlU291cmNlLCBxLmxpbmtPdXRnb2luZ1NvdXJjZSwgcS5saW5rSW5jb21pbmdTb3VyY2UsIHEuZm9sZGVyU291cmNlLCBxLnRhZ1NvdXJjZSwgcS5jc3ZTb3VyY2UpLAogICAgICBiaW5hcnlPcFNvdXJjZTogcSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5hdG9tU291cmNlLCBxLmJpbmFyeUJvb2xlYW5PcC5tYXAocyA9PiBzKSwgU291cmNlcy5iaW5hcnlPcCksCiAgICAgIHNvdXJjZTogcSA9PiBxLmJpbmFyeU9wU291cmNlLAogICAgICAvLyBGaWVsZCBwYXJzaW5nLgogICAgICB2YXJpYWJsZUZpZWxkOiBxID0+IHEuaWRlbnRpZmllcgogICAgICAgICAgLmNoYWluKHIgPT4gewogICAgICAgICAgaWYgKEtFWVdPUkRTLmluY2x1ZGVzKHIudG9VcHBlckNhc2UoKSkpIHsKICAgICAgICAgICAgICByZXR1cm4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmZhaWwoIlZhcmlhYmxlIGZpZWxkcyBjYW5ub3QgYmUgYSBrZXl3b3JkICgiICsgS0VZV09SRFMuam9pbigiIG9yICIpICsgIikiKTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIHJldHVybiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3VjY2VlZChGaWVsZHMudmFyaWFibGUocikpOwogICAgICAgICAgfQogICAgICB9KQogICAgICAgICAgLmRlc2MoInZhcmlhYmxlIiksCiAgICAgIG51bWJlckZpZWxkOiBxID0+IHEubnVtYmVyLm1hcCh2YWwgPT4gRmllbGRzLmxpdGVyYWwodmFsKSkuZGVzYygibnVtYmVyIiksCiAgICAgIHN0cmluZ0ZpZWxkOiBxID0+IHEuc3RyaW5nLm1hcCh2YWwgPT4gRmllbGRzLmxpdGVyYWwodmFsKSkuZGVzYygic3RyaW5nIiksCiAgICAgIGJvb2xGaWVsZDogcSA9PiBxLmJvb2wubWFwKHZhbCA9PiBGaWVsZHMubGl0ZXJhbCh2YWwpKS5kZXNjKCJib29sZWFuIiksCiAgICAgIGRhdGVGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoImRhdGUoIiksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmRhdGVQbHVzLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLCAocHJlZml4LCBfMSwgZGF0ZSwgXzIsIHBvc3RmaXgpID0+IEZpZWxkcy5saXRlcmFsKGRhdGUpKS5kZXNjKCJkYXRlIiksCiAgICAgIGR1cmF0aW9uRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJkdXIoIiksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmR1cmF0aW9uLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLCAocHJlZml4LCBfMSwgZHVyLCBfMiwgcG9zdGZpeCkgPT4gRmllbGRzLmxpdGVyYWwoZHVyKSkuZGVzYygiZHVyYXRpb24iKSwKICAgICAgbnVsbEZpZWxkOiBxID0+IHEucmF3TnVsbC5tYXAoXyA9PiBGaWVsZHMuTlVMTCksCiAgICAgIGxpbmtGaWVsZDogcSA9PiBxLmxpbmsubWFwKGYgPT4gRmllbGRzLmxpdGVyYWwoZikpLAogICAgICBsaXN0RmllbGQ6IHEgPT4gcS5maWVsZAogICAgICAgICAgLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkKICAgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIlsiKS5za2lwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UudGhlbihwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJdIikpKQogICAgICAgICAgLm1hcChsID0+IEZpZWxkcy5saXN0KGwpKQogICAgICAgICAgLmRlc2MoImxpc3QgKCdbMSwgMiwgM10nKSIpLAogICAgICBvYmplY3RGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHEuaWRlbnRpZmllci5vcihxLnN0cmluZyksIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIjoiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcS5maWVsZCwgKG5hbWUsIF9zZXAsIHZhbHVlKSA9PiB7CiAgICAgICAgICByZXR1cm4geyBuYW1lLCB2YWx1ZSB9OwogICAgICB9KQogICAgICAgICAgLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkKICAgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoInsiKS5za2lwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UudGhlbihwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCJ9IikpKQogICAgICAgICAgLm1hcCh2YWxzID0+IHsKICAgICAgICAgIGxldCByZXMgPSB7fTsKICAgICAgICAgIGZvciAobGV0IGVudHJ5IG9mIHZhbHMpCiAgICAgICAgICAgICAgcmVzW2VudHJ5Lm5hbWVdID0gZW50cnkudmFsdWU7CiAgICAgICAgICByZXR1cm4gRmllbGRzLm9iamVjdChyZXMpOwogICAgICB9KQogICAgICAgICAgLmRlc2MoIm9iamVjdCAoJ3sgYTogMSwgYjogMiB9JykiKSwKICAgICAgYXRvbUlubGluZUZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocS5kYXRlLCBxLmR1cmF0aW9uLm1hcChkID0+IG5vcm1hbGl6ZUR1cmF0aW9uKGQpKSwgcS5zdHJpbmcsIHEudGFnLCBxLmVtYmVkTGluaywgcS5ib29sLCBxLm51bWJlciwgcS5yYXdOdWxsKSwKICAgICAgaW5saW5lRmllbGRMaXN0OiBxID0+IHEuYXRvbUlubGluZUZpZWxkLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKS5sb29rYWhlYWQocS5hdG9tSW5saW5lRmllbGQpKSwKICAgICAgaW5saW5lRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHEuYXRvbUlubGluZUZpZWxkLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCIsIikudHJpbShwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSksIHEuaW5saW5lRmllbGRMaXN0LCAoZiwgX3MsIGwpID0+IFtmXS5jb25jYXQobCkpLCBxLmF0b21JbmxpbmVGaWVsZCksCiAgICAgIGF0b21GaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuYWx0KAogICAgICAvLyBQbGFjZSBlbWJlZCBsaW5rcyBhYm92ZSBuZWdhdGVkIGZpZWxkcyBhcyB0aGV5IGFyZSB0aGUgc3BlY2lhbCBwYXJzZXIgY2FzZSAnIVtbdGhpbmddXScgYW5kIGFyZSBnZW5lcmFsbHkgdW5hbWJpZ3VvdXMuCiAgICAgIHEuZW1iZWRMaW5rLm1hcChsID0+IEZpZWxkcy5saXRlcmFsKGwpKSwgcS5uZWdhdGVkRmllbGQsIHEubGlua0ZpZWxkLCBxLmxpc3RGaWVsZCwgcS5vYmplY3RGaWVsZCwgcS5sYW1iZGFGaWVsZCwgcS5wYXJlbnNGaWVsZCwgcS5ib29sRmllbGQsIHEubnVtYmVyRmllbGQsIHEuc3RyaW5nRmllbGQsIHEuZGF0ZUZpZWxkLCBxLmR1cmF0aW9uRmllbGQsIHEubnVsbEZpZWxkLCBxLnZhcmlhYmxlRmllbGQpLAogICAgICBpbmRleEZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocS5hdG9tRmllbGQsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5hbHQocS5kb3RQb3N0Zml4LCBxLmluZGV4UG9zdGZpeCwgcS5mdW5jdGlvblBvc3RmaXgpLm1hbnkoKSwgKG9iaiwgcG9zdGZpeGVzKSA9PiB7CiAgICAgICAgICBsZXQgcmVzdWx0ID0gb2JqOwogICAgICAgICAgZm9yIChsZXQgcG9zdCBvZiBwb3N0Zml4ZXMpIHsKICAgICAgICAgICAgICBzd2l0Y2ggKHBvc3QudHlwZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJkb3QiOgogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRmllbGRzLmluZGV4KHJlc3VsdCwgRmllbGRzLmxpdGVyYWwocG9zdC5maWVsZCkpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImluZGV4IjoKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEZpZWxkcy5pbmRleChyZXN1bHQsIHBvc3QuZmllbGQpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEZpZWxkcy5mdW5jKHJlc3VsdCwgcG9zdC5maWVsZHMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfSksCiAgICAgIG5lZ2F0ZWRGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiEiKSwgcS5pbmRleEZpZWxkLCAoXywgZmllbGQpID0+IEZpZWxkcy5uZWdhdGUoZmllbGQpKS5kZXNjKCJuZWdhdGVkIGZpZWxkIiksCiAgICAgIHBhcmVuc0ZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKCIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5maWVsZCwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIikiKSwgKF8xLCBfMiwgZmllbGQsIF8zLCBfNCkgPT4gZmllbGQpLAogICAgICBsYW1iZGFGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc2VxTWFwKHEuaWRlbnRpZmllcgogICAgICAgICAgLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkKICAgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIigiKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UpKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiPT4iKS50cmltKHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcS5maWVsZCwgKGlkZW50LCBfaWdub3JlLCB2YWx1ZSkgPT4gewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImxhbWJkYSIsIGFyZ3VtZW50czogaWRlbnQsIHZhbHVlIH07CiAgICAgIH0pLAogICAgICBkb3RQb3N0Zml4OiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiLiIpLCBxLmlkZW50aWZpZXIsIChfLCBmaWVsZCkgPT4gewogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImRvdCIsIGZpZWxkOiBmaWVsZCB9OwogICAgICB9KSwKICAgICAgaW5kZXhQb3N0Zml4OiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiWyIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5maWVsZCwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zdHJpbmcoIl0iKSwgKF8sIF8yLCBmaWVsZCwgXzMsIF80KSA9PiB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiaW5kZXgiLCBmaWVsZCB9OwogICAgICB9KSwKICAgICAgZnVuY3Rpb25Qb3N0Zml4OiBxID0+IHBhcnNpbW1vbl91bWRfbWluRXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKCIpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5maWVsZC5zZXBCeShwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMuc3RyaW5nKCIsIikudHJpbShwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSkpLCBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnN0cmluZygiKSIpLCAoXywgXzEsIGZpZWxkcywgXzIsIF8zKSA9PiB7CiAgICAgICAgICByZXR1cm4geyB0eXBlOiAiZnVuY3Rpb24iLCBmaWVsZHMgfTsKICAgICAgfSksCiAgICAgIC8vIFRoZSBwcmVjZWRlbmNlIGhpZXJhcmNoeSBvZiBvcGVyYXRvcnMgLSBtdWx0aXBseS9kaXZpZGUsIGFkZC9zdWJ0cmFjdCwgY29tcGFyZSwgYW5kIHRoZW4gYm9vbGVhbiBvcGVyYXRpb25zLgogICAgICBiaW5hcnlNdWxEaXZGaWVsZDogcSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5pbmRleEZpZWxkLCBxLmJpbmFyeU11bERpdiwgRmllbGRzLmJpbmFyeU9wKSwKICAgICAgYmluYXJ5UGx1c01pbnVzRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5TXVsRGl2RmllbGQsIHEuYmluYXJ5UGx1c01pbnVzLCBGaWVsZHMuYmluYXJ5T3ApLAogICAgICBiaW5hcnlDb21wYXJlRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5UGx1c01pbnVzRmllbGQsIHEuYmluYXJ5Q29tcGFyZU9wLCBGaWVsZHMuYmluYXJ5T3ApLAogICAgICBiaW5hcnlCb29sZWFuRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5Q29tcGFyZUZpZWxkLCBxLmJpbmFyeUJvb2xlYW5PcCwgRmllbGRzLmJpbmFyeU9wKSwKICAgICAgYmluYXJ5T3BGaWVsZDogcSA9PiBxLmJpbmFyeUJvb2xlYW5GaWVsZCwKICAgICAgZmllbGQ6IHEgPT4gcS5iaW5hcnlPcEZpZWxkLAogIH0pOwoKICAvKiogUGFyc2UgaW5saW5lIGZpZWxkcyBhbmQgb3RoZXIgZW1iZWRkZWQgbWV0YWRhdGEgaW4gYSBsaW5lLiAqLwogIC8qKiBUaGUgd3JhcHBlciBjaGFyYWN0ZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIGFuIGlubGluZSBmaWVsZC4gKi8KICBjb25zdCBJTkxJTkVfRklFTERfV1JBUFBFUlMgPSBPYmplY3QuZnJlZXplKHsKICAgICAgIlsiOiAiXSIsCiAgICAgICIoIjogIikiLAogIH0pOwogIC8qKgogICAqIEZpbmQgYSBtYXRjaGluZyBjbG9zaW5nIGJyYWNrZXQgdGhhdCBvY2N1cnMgYXQgb3IgYWZ0ZXIgYHN0YXJ0YCwgcmVzcGVjdGluZyBuZXN0aW5nIGFuZCBlc2NhcGVzLiBJZiBmb3VuZCwKICAgKiByZXR1cm5zIHRoZSB2YWx1ZSBjb250YWluZWQgd2l0aGluIGFuZCB0aGUgc3RyaW5nIGluZGV4IGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZhbHVlLgogICAqLwogIGZ1bmN0aW9uIGZpbmRDbG9zaW5nKGxpbmUsIHN0YXJ0LCBvcGVuLCBjbG9zZSkgewogICAgICBsZXQgbmVzdGluZyA9IDA7CiAgICAgIGxldCBlc2NhcGVkID0gZmFsc2U7CiAgICAgIGZvciAobGV0IGluZGV4ID0gc3RhcnQ7IGluZGV4IDwgbGluZS5sZW5ndGg7IGluZGV4KyspIHsKICAgICAgICAgIGxldCBjaGFyID0gbGluZS5jaGFyQXQoaW5kZXgpOwogICAgICAgICAgLy8gQWxsb3dzIGZvciBkb3VibGUgZXNjYXBlcyBsaWtlICdcXCcgdG8gYmUgcmVuZGVyZWQgbm9ybWFsbHkuCiAgICAgICAgICBpZiAoY2hhciA9PSAiXFwiKSB7CiAgICAgICAgICAgICAgZXNjYXBlZCA9ICFlc2NhcGVkOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgLy8gSWYgZXNjYXBlZCwgaWdub3JlIHRoZSBuZXh0IGNoYXJhY3RlciBmb3IgY29tcHV0aW5nIG5lc3RpbmcsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBpdCBpcy4KICAgICAgICAgIGlmIChlc2NhcGVkKSB7CiAgICAgICAgICAgICAgZXNjYXBlZCA9IGZhbHNlOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNoYXIgPT0gb3BlbikKICAgICAgICAgICAgICBuZXN0aW5nKys7CiAgICAgICAgICBlbHNlIGlmIChjaGFyID09IGNsb3NlKQogICAgICAgICAgICAgIG5lc3RpbmctLTsKICAgICAgICAgIC8vIE9ubHkgb2NjdXJzIGlmIHdlIGFyZSBvbiBhIGNsb3NlIGNoYXJhY3RlciBhbmQgdGhlcmUgaXMgbm8gbW9yZSBuZXN0aW5nLgogICAgICAgICAgaWYgKG5lc3RpbmcgPCAwKQogICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBsaW5lLnN1YnN0cmluZyhzdGFydCwgaW5kZXgpLnRyaW0oKSwgZW5kSW5kZXg6IGluZGV4ICsgMSB9OwogICAgICAgICAgZXNjYXBlZCA9IGZhbHNlOwogICAgICB9CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgfQogIC8qKiBGaW5kIHRoZSAnOjonIHNlcGFyYXRvciBpbiBhbiBpbmxpbmUgZmllbGQuICovCiAgZnVuY3Rpb24gZmluZFNlcGFyYXRvcihsaW5lLCBzdGFydCkgewogICAgICBsZXQgc2VwID0gbGluZS5pbmRleE9mKCI6OiIsIHN0YXJ0KTsKICAgICAgaWYgKHNlcCA8IDApCiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgICByZXR1cm4geyBrZXk6IGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBzZXApLnRyaW0oKSwgdmFsdWVJbmRleDogc2VwICsgMiB9OwogIH0KICAvKiogVHJ5IHRvIGNvbXBsZXRlbHkgcGFyc2UgYW4gaW5saW5lIGZpZWxkIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4gQXNzdW1lcyBgc3RhcnRgIGlzIG9uIGEgd3JhcHBpbmcgY2hhcmFjdGVyLiAqLwogIGZ1bmN0aW9uIGZpbmRTcGVjaWZpY0lubGluZUZpZWxkKGxpbmUsIHN0YXJ0KSB7CiAgICAgIGxldCBvcGVuID0gbGluZS5jaGFyQXQoc3RhcnQpOwogICAgICBsZXQga2V5ID0gZmluZFNlcGFyYXRvcihsaW5lLCBzdGFydCArIDEpOwogICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpCiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgICAvLyBGYWlsIHRoZSBtYXRjaCBpZiB3ZSBmaW5kIGFueSBzZXBhcmF0b3IgY2hhcmFjdGVycyAobm90IGFsbG93ZWQgaW4ga2V5cykuCiAgICAgIGZvciAobGV0IHNlcCBvZiBPYmplY3Qua2V5cyhJTkxJTkVfRklFTERfV1JBUFBFUlMpLmNvbmNhdChPYmplY3QudmFsdWVzKElOTElORV9GSUVMRF9XUkFQUEVSUykpKSB7CiAgICAgICAgICBpZiAoa2V5LmtleS5pbmNsdWRlcyhzZXApKQogICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICAgIH0KICAgICAgbGV0IHZhbHVlID0gZmluZENsb3NpbmcobGluZSwga2V5LnZhbHVlSW5kZXgsIG9wZW4sIElOTElORV9GSUVMRF9XUkFQUEVSU1tvcGVuXSk7CiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgcmV0dXJuIHsKICAgICAgICAgIGtleToga2V5LmtleSwKICAgICAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSwKICAgICAgICAgIHN0YXJ0OiBzdGFydCwKICAgICAgICAgIHN0YXJ0VmFsdWU6IGtleS52YWx1ZUluZGV4LAogICAgICAgICAgZW5kOiB2YWx1ZS5lbmRJbmRleCwKICAgICAgICAgIHdyYXBwaW5nOiBvcGVuLAogICAgICB9OwogIH0KICAvKiogUGFyc2UgYSB0ZXh0dWFsIGlubGluZSBmaWVsZCB2YWx1ZSBpbnRvIHNvbWV0aGluZyB3ZSBjYW4gd29yayB3aXRoLiAqLwogIGZ1bmN0aW9uIHBhcnNlSW5saW5lVmFsdWUodmFsdWUpIHsKICAgICAgLy8gRW1wdHkgaW5saW5lIHZhbHVlcyAoaS5lLiwgbm8gdGV4dCkgc2hvdWxkIG1hcCB0byBudWxsIHRvIG1hdGNoIGxvbmctdGVybSBEYXRhdmlldyBzZW1hbnRpY3MuCiAgICAgIC8vIE51bGwgaXMgYWxzbyBhIG1vcmUgdW5pdmVyc2FsIHR5cGUgdG8gZGVhbCB3aXRoIHRoYW4gc3RyaW5ncywgc2luY2UgYWxsIGZ1bmN0aW9ucyBhY2NlcHQgbnVsbHMuCiAgICAgIGlmICh2YWx1ZS50cmltKCkgPT0gIiIpCiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgLy8gVGhlIHN0cmlwcGVkIGxpdGVyYWwgZmllbGQgcGFyc2VyIHVuZGVyc3RhbmRzIGFsbCBvZiB0aGUgbm9uLWFycmF5L25vbi1vYmplY3QgZmllbGRzIGFuZCBjYW4gcGFyc2UgdGhlbSBmb3IgdXMuCiAgICAgIC8vIElubGluZSBmaWVsZCBvYmplY3RzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZDsgaW5saW5lIGFycmF5IG9iamVjdHMgaGF2ZSB0byBiZSBoYW5kbGVkIGJ5IHRoZSBwYXJzZXIKICAgICAgLy8gc2VwYXJhdGVseS4KICAgICAgbGV0IGlubGluZSA9IEVYUFJFU1NJT04uaW5saW5lRmllbGQucGFyc2UodmFsdWUpOwogICAgICBpZiAoaW5saW5lLnN0YXR1cykKICAgICAgICAgIHJldHVybiBpbmxpbmUudmFsdWU7CiAgICAgIGVsc2UKICAgICAgICAgIHJldHVybiB2YWx1ZTsKICB9CiAgLyoqIEV4dHJhY3RzIGlubGluZSBmaWVsZHMgb2YgdGhlIGZvcm0gJ1trZXk6OiB2YWx1ZV0nIGZyb20gYSBsaW5lIG9mIHRleHQuIFRoaXMgaXMgZG9uZSBpbiBhIHJlbGF0aXZlbHkKICAgKiAicm9idXN0IiB3YXkgdG8gYXZvaWQgZmFpbGluZyBkdWUgdG8gYmFkIG5lc3Rpbmcgb3Igb3RoZXIgaW50ZXJmZXJpbmcgTWFya2Rvd24gc3ltYm9sczoKICAgKgogICAqIC0gTG9vayBmb3IgYW55IHdyYXBwZXJzICgnWycgYW5kICcoJykgaW4gdGhlIGxpbmUsIHRyeWluZyB0byBwYXJzZSB3aGF0ZXZlciBjb21lcyBhZnRlciBpdCBhcyBhbiBpbmxpbmUga2V5OjouCiAgICogLSBJZiBzdWNjZXNzZnVsLCBzY2FuIHVudGlsIHlvdSBmaW5kIGEgbWF0Y2hpbmcgZW5kIGJyYWNrZXQsIGFuZCBwYXJzZSB3aGF0ZXZlciByZW1haW5zIGFzIGFuIGlubGluZSB2YWx1ZS4KICAgKi8KICBmdW5jdGlvbiBleHRyYWN0SW5saW5lRmllbGRzKGxpbmUsIGluY2x1ZGVUYXNrRmllbGRzID0gZmFsc2UpIHsKICAgICAgbGV0IGZpZWxkcyA9IFtdOwogICAgICBmb3IgKGxldCB3cmFwcGVyIG9mIE9iamVjdC5rZXlzKElOTElORV9GSUVMRF9XUkFQUEVSUykpIHsKICAgICAgICAgIGxldCBmb3VuZEluZGV4ID0gbGluZS5pbmRleE9mKHdyYXBwZXIpOwogICAgICAgICAgd2hpbGUgKGZvdW5kSW5kZXggPj0gMCkgewogICAgICAgICAgICAgIGxldCBwYXJzZWRGaWVsZCA9IGZpbmRTcGVjaWZpY0lubGluZUZpZWxkKGxpbmUsIGZvdW5kSW5kZXgpOwogICAgICAgICAgICAgIGlmICghcGFyc2VkRmllbGQpIHsKICAgICAgICAgICAgICAgICAgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyLCBmb3VuZEluZGV4ICsgMSk7CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmaWVsZHMucHVzaChwYXJzZWRGaWVsZCk7CiAgICAgICAgICAgICAgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyLCBwYXJzZWRGaWVsZC5lbmQpOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChpbmNsdWRlVGFza0ZpZWxkcykKICAgICAgICAgIGZpZWxkcyA9IGZpZWxkcy5jb25jYXQoZXh0cmFjdFNwZWNpYWxUYXNrRmllbGRzKGxpbmUpKTsKICAgICAgZmllbGRzLnNvcnQoKGEsIGIpID0+IGEuc3RhcnQgLSBiLnN0YXJ0KTsKICAgICAgbGV0IGZpbHRlcmVkRmllbGRzID0gW107CiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoaSA9PSAwIHx8IGZpbHRlcmVkRmllbGRzW2ZpbHRlcmVkRmllbGRzLmxlbmd0aCAtIDFdLmVuZCA8IGZpZWxkc1tpXS5zdGFydCkgewogICAgICAgICAgICAgIGZpbHRlcmVkRmllbGRzLnB1c2goZmllbGRzW2ldKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmlsdGVyZWRGaWVsZHM7CiAgfQogIC8qKiBWYWxpZGF0ZXMgdGhhdCBhIHJhdyBmaWVsZCBuYW1lIGhhcyBhIHZhbGlkIGZvcm0uICovCiAgY29uc3QgRlVMTF9MSU5FX0tFWV9QQVJUID0gcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCAidSIpKSwgcGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvWzAtOVxwe0xldHRlcn1cd1xzXy8tXSsvdSkpCiAgICAgIC5tYW55KCkKICAgICAgLm1hcChwYXJ0cyA9PiBwYXJ0cy5qb2luKCIiKSk7CiAgY29uc3QgRlVMTF9MSU5FX0tFWV9QQVJTRVIgPSBwYXJzaW1tb25fdW1kX21pbkV4cG9ydHMucmVnZXhwKC9bXjAtOVx3XHB7TGV0dGVyfV0qL3UpCiAgICAgIC50aGVuKEZVTExfTElORV9LRVlfUEFSVCkKICAgICAgLnNraXAocGFyc2ltbW9uX3VtZF9taW5FeHBvcnRzLnJlZ2V4cCgvW19cKn5gXSovdSkpOwogIC8qKiBBdHRlbXB0IHRvIGV4dHJhY3QgYSBmdWxsLWxpbmUgZmllbGQgKEtleTo6IFZhbHVlIGNvbnN1bWluZyB0aGUgZW50aXJlIGNvbnRlbnQgbGluZSkuICovCiAgZnVuY3Rpb24gZXh0cmFjdEZ1bGxMaW5lRmllbGQodGV4dCkgewogICAgICBsZXQgc2VwID0gZmluZFNlcGFyYXRvcih0ZXh0LCAwKTsKICAgICAgaWYgKCFzZXApCiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgICAvLyBXZSBuZWVkIHRvIHBvc3QtcHJvY2VzcyB0aGUga2V5IHRvIGRyb3AgdW5uZWNlc3Nhcnkgb3BlbmluZyBhbm5vdGF0aW9ucyBhcyB3ZWxsIGFzCiAgICAgIC8vIGRyb3Agc3Vycm91bmRpbmcgTWFya2Rvd24uCiAgICAgIGxldCByZWFsS2V5ID0gRlVMTF9MSU5FX0tFWV9QQVJTRVIucGFyc2Uoc2VwLmtleSk7CiAgICAgIGlmICghcmVhbEtleS5zdGF0dXMpCiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgICByZXR1cm4gewogICAgICAgICAga2V5OiByZWFsS2V5LnZhbHVlLAogICAgICAgICAgdmFsdWU6IHRleHQuc3Vic3RyaW5nKHNlcC52YWx1ZUluZGV4KS50cmltKCksCiAgICAgICAgICBzdGFydDogMCwKICAgICAgICAgIHN0YXJ0VmFsdWU6IHNlcC52YWx1ZUluZGV4LAogICAgICAgICAgZW5kOiB0ZXh0Lmxlbmd0aCwKICAgICAgfTsKICB9CiAgY29uc3QgQ1JFQVRFRF9EQVRFX1JFR0VYID0gL1x1ezI3OTV9XHMqKFxkezR9LVxkezJ9LVxkezJ9KS91OwogIGNvbnN0IERVRV9EQVRFX1JFR0VYID0gLyg/Olx1ezFGNEM1fXxcdXsxRjRDNn18XHV7MUY1RDN9XHV7RkUwRn0/KVxzKihcZHs0fS1cZHsyfS1cZHsyfSkvdTsKICBjb25zdCBET05FX0RBVEVfUkVHRVggPSAvXHV7MjcwNX1ccyooXGR7NH0tXGR7Mn0tXGR7Mn0pL3U7CiAgY29uc3QgU0NIRURVTEVEX0RBVEVfUkVHRVggPSAvW1x1ezIzRjN9XHV7MjMxQn1dXHMqKFxkezR9LVxkezJ9LVxkezJ9KS91OwogIGNvbnN0IFNUQVJUX0RBVEVfUkVHRVggPSAvXHV7MUY2RUJ9XHMqKFxkezR9LVxkezJ9LVxkezJ9KS91OwogIGNvbnN0IEVNT0pJX1JFR0VYRVMgPSBbCiAgICAgIHsgcmVnZXg6IENSRUFURURfREFURV9SRUdFWCwga2V5OiAiY3JlYXRlZCIgfSwKICAgICAgeyByZWdleDogU1RBUlRfREFURV9SRUdFWCwga2V5OiAic3RhcnQiIH0sCiAgICAgIHsgcmVnZXg6IFNDSEVEVUxFRF9EQVRFX1JFR0VYLCBrZXk6ICJzY2hlZHVsZWQiIH0sCiAgICAgIHsgcmVnZXg6IERVRV9EQVRFX1JFR0VYLCBrZXk6ICJkdWUiIH0sCiAgICAgIHsgcmVnZXg6IERPTkVfREFURV9SRUdFWCwga2V5OiAiY29tcGxldGlvbiIgfSwKICBdOwogIC8qKiBQYXJzZSBzcGVjaWFsIGNvbXBsZXRlZC9kdWUvZG9uZSB0YXNrIGZpZWxkcyB3aGljaCBhcmUgbWFya2VkIHZpYSBlbW9qaS4gKi8KICBmdW5jdGlvbiBleHRyYWN0U3BlY2lhbFRhc2tGaWVsZHMobGluZSkgewogICAgICBsZXQgcmVzdWx0cyA9IFtdOwogICAgICBmb3IgKGxldCB7IHJlZ2V4LCBrZXkgfSBvZiBFTU9KSV9SRUdFWEVTKSB7CiAgICAgICAgICBjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWMobGluZSk7CiAgICAgICAgICBpZiAoIW1hdGNoKQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgcmVzdWx0cy5wdXNoKHsKICAgICAgICAgICAgICBrZXksCiAgICAgICAgICAgICAgdmFsdWU6IG1hdGNoWzFdLAogICAgICAgICAgICAgIHN0YXJ0OiBtYXRjaC5pbmRleCwKICAgICAgICAgICAgICBzdGFydFZhbHVlOiBtYXRjaC5pbmRleCArIDEsCiAgICAgICAgICAgICAgZW5kOiBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwKICAgICAgICAgICAgICB3cmFwcGluZzogImVtb2ppLXNob3J0aGFuZCIsCiAgICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0czsKICB9CgogIC8qKiBBbGwgZXh0cmFjdGVkIG1hcmtkb3duIGZpbGUgbWV0YWRhdGEgb2J0YWluZWQgZnJvbSBhIGZpbGUuICovCiAgY2xhc3MgUGFnZU1ldGFkYXRhIHsKICAgICAgLyoqIFRoZSBwYXRoIHRoaXMgZmlsZSBleGlzdHMgYXQuICovCiAgICAgIHBhdGg7CiAgICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBkYXRlIHRoaXMgcGFnZSB3YXMgY3JlYXRlZC4gKi8KICAgICAgY3RpbWU7CiAgICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBkYXRlIHRoaXMgcGFnZSB3YXMgbW9kaWZpZWQuICovCiAgICAgIG10aW1lOwogICAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgc2l6ZSBvZiB0aGlzIHBhZ2UgaW4gYnl0ZXMuICovCiAgICAgIHNpemU7CiAgICAgIC8qKiBUaGUgZGF5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhZ2UsIGlmIHJlbGV2YW50LiAqLwogICAgICBkYXk7CiAgICAgIC8qKiBUaGUgZmlyc3QgSDEvSDIgaGVhZGVyIGluIHRoZSBmaWxlLiBNYXkgbm90IGV4aXN0LiAqLwogICAgICB0aXRsZTsKICAgICAgLyoqIEFsbCBvZiB0aGUgZmllbGRzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcmtkb3duIGZpbGUgLSBib3RoIGZyb250bWF0dGVyIEFORCBpbi1maWxlIGxpbmtzLiAqLwogICAgICBmaWVsZHM7CiAgICAgIC8qKiBBbGwgb2YgdGhlIGV4YWN0IHRhZ3MgKHByZWZpeGVkIHdpdGggJyMnKSBpbiB0aGlzIGZpbGUgb3ZlcmFsbC4gKi8KICAgICAgdGFnczsKICAgICAgLyoqIEFsbCBvZiB0aGUgYWxpYXNlcyBkZWZpbmVkIGZvciB0aGlzIGZpbGUuICovCiAgICAgIGFsaWFzZXM7CiAgICAgIC8qKiBBbGwgT1VUR09JTkcgbGlua3MgKGluY2x1ZGluZyBlbWJlZHMsIGhlYWRlciArIGJsb2NrIGxpbmtzKSBpbiB0aGlzIGZpbGUuICovCiAgICAgIGxpbmtzOwogICAgICAvKiogQWxsIGxpc3QgaXRlbXMgY29udGFpbmVkIHdpdGhpbiB0aGlzIHBhZ2UuIEZpbHRlciBmb3IgdGFza3MgdG8gZ2V0IGp1c3QgdGFza3MuICovCiAgICAgIGxpc3RzOwogICAgICAvKiogVGhlIHJhdyBmcm9udG1hdHRlciBmb3IgdGhpcyBkb2N1bWVudC4gKi8KICAgICAgZnJvbnRtYXR0ZXI7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgsIGluaXQpIHsKICAgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CiAgICAgICAgICB0aGlzLmZpZWxkcyA9IG5ldyBNYXAoKTsKICAgICAgICAgIHRoaXMuZnJvbnRtYXR0ZXIgPSB7fTsKICAgICAgICAgIHRoaXMudGFncyA9IG5ldyBTZXQoKTsKICAgICAgICAgIHRoaXMuYWxpYXNlcyA9IG5ldyBTZXQoKTsKICAgICAgICAgIHRoaXMubGlua3MgPSBbXTsKICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7CiAgICAgICAgICB0aGlzLmxpc3RzID0gKHRoaXMubGlzdHMgfHwgW10pLm1hcChsID0+IG5ldyBMaXN0SXRlbShsKSk7CiAgICAgIH0KICAgICAgLyoqIENhbm9uaWNhbGl6ZSByYXcgbGlua3MgYW5kIG90aGVyIGRhdGEgaW4gcGFydGlhbCBkYXRhIHdpdGggbm9ybWFsaXplcnMsIHJldHVybmluZyBhIGNvbXBsZXRlZCBvYmplY3QuICovCiAgICAgIHN0YXRpYyBjYW5vbmljYWxpemUoZGF0YSwgbGlua05vcm1hbGl6ZXIpIHsKICAgICAgICAgIC8vIE11dGF0ZSB0aGUgZGF0YSBmb3Igbm93LCB3aGljaCBpcyBwcm9iYWJseSBhIGJhZCBpZGVhIGJ1dC4uLiBhbGwgd2VsbC4KICAgICAgICAgIGlmIChkYXRhLmZyb250bWF0dGVyKSB7CiAgICAgICAgICAgICAgZGF0YS5mcm9udG1hdHRlciA9IFZhbHVlcy5tYXBMZWF2ZXMoZGF0YS5mcm9udG1hdHRlciwgdCA9PiBWYWx1ZXMuaXNMaW5rKHQpID8gbGlua05vcm1hbGl6ZXIodCkgOiB0KTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkYXRhLmZpZWxkcykgewogICAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBkYXRhLmZpZWxkcy5lbnRyaWVzKCkpIHsKICAgICAgICAgICAgICAgICAgZGF0YS5maWVsZHMuc2V0KGtleSwgVmFsdWVzLm1hcExlYXZlcyh2YWx1ZSwgdCA9PiAoVmFsdWVzLmlzTGluayh0KSA/IGxpbmtOb3JtYWxpemVyKHQpIDogdCkpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZGF0YS5saXN0cykgewogICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgZGF0YS5saXN0cykgewogICAgICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgaXRlbS5maWVsZHMuZW50cmllcygpKSB7CiAgICAgICAgICAgICAgICAgICAgICBpdGVtLmZpZWxkcy5zZXQoa2V5LCB2YWx1ZS5tYXAoeCA9PiBWYWx1ZXMubWFwTGVhdmVzKHgsIHQgPT4gKFZhbHVlcy5pc0xpbmsodCkgPyBsaW5rTm9ybWFsaXplcih0KSA6IHQpKSkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGRhdGEubGlua3MpIHsKICAgICAgICAgICAgICBkYXRhLmxpbmtzID0gZGF0YS5saW5rcy5tYXAobCA9PiBsaW5rTm9ybWFsaXplcihsKSk7CiAgICAgICAgICB9CiAgICAgICAgICAvLyBUaGlzIGlzIHByZXR0eSB1Z2x5LCBidXQgaXQncyBub3QgcG9zc2libGUgdG8gbm9ybWFsaXplIG9uIHRoZSB3b3JrZXIgdGhyZWFkIHRoYXQgZG9lcyBwYXJzaW5nLgogICAgICAgICAgLy8gVGhlIGJlc3Qgd2F5IHRvIGltcHJvdmUgdGhpcyBpcyB0byBpbnN0ZWFkIGp1c3QgY2Fub25pY2FsaXplIHRoZSBlbnRpcmUgZGF0YSBvYmplY3Q7IEkgY2FuIHRyeSB0bwogICAgICAgICAgLy8gb3B0aW1pemUgYFZhbHVlcy5tYXBMZWF2ZXNgIHRvIG9ubHkgbXV0YXRlIGlmIGl0IGFjdHVhbGx5IGNoYW5nZXMgdGhpbmdzLgogICAgICAgICAgcmV0dXJuIG5ldyBQYWdlTWV0YWRhdGEoZGF0YS5wYXRoLCBkYXRhKTsKICAgICAgfQogICAgICAvKiogVGhlIG5hbWUgKGJhc2VkIG9uIHBhdGgpIG9mIHRoaXMgZmlsZS4gKi8KICAgICAgbmFtZSgpIHsKICAgICAgICAgIHJldHVybiBnZXRGaWxlVGl0bGUodGhpcy5wYXRoKTsKICAgICAgfQogICAgICAvKiogVGhlIGNvbnRhaW5pbmcgZm9sZGVyIChiYXNlZCBvbiBwYXRoKSBvZiB0aGlzIGZpbGUuICovCiAgICAgIGZvbGRlcigpIHsKICAgICAgICAgIHJldHVybiBnZXRQYXJlbnRGb2xkZXIodGhpcy5wYXRoKTsKICAgICAgfQogICAgICAvKiogVGhlIGV4dGVuc2lvbiBvZiB0aGlzIGZpbGUgKGxpa2VseSAnbWQnKS4gKi8KICAgICAgZXh0ZW5zaW9uKCkgewogICAgICAgICAgcmV0dXJuIGdldEV4dGVuc2lvbih0aGlzLnBhdGgpOwogICAgICB9CiAgICAgIC8qKiBSZXR1cm4gYSBzZXQgb2YgdGFncyBBTkQgYWxsIG9mIHRoZWlyIHBhcmVudCB0YWdzIChzbyAjaGVsbG8veWVzIHdvdWxkIGJlY29tZSAjaGVsbG8sICNoZWxsby95ZXMpLiAqLwogICAgICBmdWxsVGFncygpIHsKICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgU2V0KCk7CiAgICAgICAgICBmb3IgKGxldCB0YWcgb2YgdGhpcy50YWdzKSB7CiAgICAgICAgICAgICAgZm9yIChsZXQgc3VidGFnIG9mIGV4dHJhY3RTdWJ0YWdzKHRhZykpCiAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoc3VidGFnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgLyoqIENvbnZlcnQgYWxsIGxpbmtzIGluIHRoaXMgZmlsZSB0byBmaWxlIGxpbmtzLiAqLwogICAgICBmaWxlTGlua3MoKSB7CiAgICAgICAgICAvLyBXZSB3YW50IHRvIG1ha2UgdGhlbSBkaXN0aW5jdCwgYnV0IHdoZXJlIGxpbmtzIGFyZSBub3QgcmF3IGxpbmtzIHdlCiAgICAgICAgICAvLyBub3cga2VlcCB0aGUgYWRkaXRpb25hbCBtZXRhZGF0YS4KICAgICAgICAgIGxldCBkaXN0aW5jdExpbmtzID0gbmV3IFNldCh0aGlzLmxpbmtzKTsKICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKGRpc3RpbmN0TGlua3MpOwogICAgICB9CiAgICAgIC8qKiBNYXAgdGhpcyBtZXRhZGF0YSB0byBhIGZ1bGwgb2JqZWN0OyB1c2VzIHRoZSBpbmRleCBmb3IgYWRkaXRpb25hbCBkYXRhIGxvb2t1cHMuICAqLwogICAgICBzZXJpYWxpemUoaW5kZXgsIGNhY2hlKSB7CiAgICAgICAgICAvLyBDb252ZXJ0IGxpc3QgaXRlbXMgdmlhIHRoZSBjYW5vbmljYWxpemF0aW9uIGNhY2hlLgogICAgICAgICAgbGV0IHJlYWxDYWNoZSA9IGNhY2hlID8/IG5ldyBMaXN0U2VyaWFsaXphdGlvbkNhY2hlKHRoaXMubGlzdHMpOwogICAgICAgICAgbGV0IHJlc3VsdCA9IHsKICAgICAgICAgICAgICBmaWxlOiB7CiAgICAgICAgICAgICAgICAgIHBhdGg6IHRoaXMucGF0aCwKICAgICAgICAgICAgICAgICAgZm9sZGVyOiB0aGlzLmZvbGRlcigpLAogICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUoKSwKICAgICAgICAgICAgICAgICAgbGluazogTGluay5maWxlKHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgIG91dGxpbmtzOiB0aGlzLmZpbGVMaW5rcygpLAogICAgICAgICAgICAgICAgICBpbmxpbmtzOiBBcnJheS5mcm9tKGluZGV4LmxpbmtzLmdldEludmVyc2UodGhpcy5wYXRoKSkubWFwKGwgPT4gTGluay5maWxlKGwpKSwKICAgICAgICAgICAgICAgICAgZXRhZ3M6IEFycmF5LmZyb20odGhpcy50YWdzKSwKICAgICAgICAgICAgICAgICAgdGFnczogQXJyYXkuZnJvbSh0aGlzLmZ1bGxUYWdzKCkpLAogICAgICAgICAgICAgICAgICBhbGlhc2VzOiBBcnJheS5mcm9tKHRoaXMuYWxpYXNlcyksCiAgICAgICAgICAgICAgICAgIGxpc3RzOiB0aGlzLmxpc3RzLm1hcChsID0+IHJlYWxDYWNoZS5nZXQobC5saW5lKSksCiAgICAgICAgICAgICAgICAgIHRhc2tzOiB0aGlzLmxpc3RzLmZpbHRlcihsID0+ICEhbC50YXNrKS5tYXAobCA9PiByZWFsQ2FjaGUuZ2V0KGwubGluZSkpLAogICAgICAgICAgICAgICAgICBjdGltZTogdGhpcy5jdGltZSwKICAgICAgICAgICAgICAgICAgY2RheTogc3RyaXBUaW1lKHRoaXMuY3RpbWUpLAogICAgICAgICAgICAgICAgICBtdGltZTogdGhpcy5tdGltZSwKICAgICAgICAgICAgICAgICAgbWRheTogc3RyaXBUaW1lKHRoaXMubXRpbWUpLAogICAgICAgICAgICAgICAgICBzaXplOiB0aGlzLnNpemUsCiAgICAgICAgICAgICAgICAgIHN0YXJyZWQ6IGluZGV4LnN0YXJyZWQuc3RhcnJlZCh0aGlzLnBhdGgpLAogICAgICAgICAgICAgICAgICBmcm9udG1hdHRlcjogVmFsdWVzLmRlZXBDb3B5KHRoaXMuZnJvbnRtYXR0ZXIpLAogICAgICAgICAgICAgICAgICBleHQ6IHRoaXMuZXh0ZW5zaW9uKCksCiAgICAgICAgICAgICAgfSwKICAgICAgICAgIH07CiAgICAgICAgICAvLyBBZGQgdGhlIGN1cnJlbnQgZGF5IGlmIHByZXNlbnQuCiAgICAgICAgICBpZiAodGhpcy5kYXkpCiAgICAgICAgICAgICAgcmVzdWx0LmZpbGUuZGF5ID0gdGhpcy5kYXk7CiAgICAgICAgICAvLyBUaGVuIGFwcGVuZCB0aGUgY29tcHV0ZWQgZmllbGRzLgogICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIHRoaXMuZmllbGRzLmVudHJpZXMoKSkgewogICAgICAgICAgICAgIGlmIChrZXkgaW4gcmVzdWx0KQogICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRG9uJ3QgYWxsb3cgZmllbGRzIHRvIG92ZXJyaWRlIGV4aXN0aW5nIGtleXMuCiAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICB9CiAgLyoqIEEgbGlzdCBpdGVtIGluc2lkZSBvZiBhIGxpc3QuICovCiAgY2xhc3MgTGlzdEl0ZW0gewogICAgICAvKiogVGhlIHN5bWJvbCAoJyonLCAnLScsICcxLicpIHVzZWQgdG8gZGVmaW5lIHRoaXMgbGlzdCBpdGVtLiAqLwogICAgICBzeW1ib2w7CiAgICAgIC8qKiBBIGxpbmsgd2hpY2ggcG9pbnRzIHRvIHRoaXMgdGFzaywgb3IgdG8gdGhlIGNsb3Nlc3QgYmxvY2sgdGhhdCB0aGlzIHRhc2sgaXMgY29udGFpbmVkIGluLiAqLwogICAgICBsaW5rOwogICAgICAvKiogQSBsaW5rIHRvIHRoZSBzZWN0aW9uIHRoYXQgY29udGFpbnMgdGhpcyBsaXN0IGVsZW1lbnQ7IGNvdWxkIGJlIGEgZmlsZSBpZiB0aGlzIGlzIG5vdCBpbiBhIHNlY3Rpb24uICovCiAgICAgIHNlY3Rpb247CiAgICAgIC8qKiBUaGUgdGV4dCBvZiB0aGlzIGxpc3QgaXRlbS4gVGhpcyBtYXkgYmUgbXVsdGlwbGUgbGluZXMgb2YgbWFya2Rvd24uICovCiAgICAgIHRleHQ7CiAgICAgIC8qKiBUaGUgbGluZSB0aGF0IHRoaXMgbGlzdCBpdGVtIHN0YXJ0cyBvbiBpbiB0aGUgZmlsZS4gKi8KICAgICAgbGluZTsKICAgICAgLyoqIFRoZSBudW1iZXIgb2YgbGluZXMgdGhhdCBkZWZpbmUgdGhpcyBsaXN0IGl0ZW0uICovCiAgICAgIGxpbmVDb3VudDsKICAgICAgLyoqIFRoZSBsaW5lIG51bWJlciBmb3IgdGhlIGZpcnN0IGxpc3QgaXRlbSBpbiB0aGUgbGlzdCB0aGlzIGl0ZW0gYmVsb25ncyB0by4gKi8KICAgICAgbGlzdDsKICAgICAgLyoqIEFueSBsaW5rcyBjb250YWluZWQgd2l0aGluIHRoaXMgbGlzdCBpdGVtLiAqLwogICAgICBsaW5rczsKICAgICAgLyoqIFRoZSB0YWdzIGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBsaXN0IGl0ZW0uICovCiAgICAgIHRhZ3M7CiAgICAgIC8qKiBUaGUgcmF3IE9ic2lkaWFuLXByb3ZpZGVkIHBvc2l0aW9uIGZvciB3aGVyZSB0aGlzIHRhc2sgaXMuICovCiAgICAgIHBvc2l0aW9uOwogICAgICAvKiogVGhlIGxpbmUgbnVtYmVyIG9mIHRoZSBwYXJlbnQgbGlzdCBpdGVtLCBpZiBwcmVzZW50OyBpZiB0aGlzIGlzIHVuZGVmaW5lZCwgdGhpcyBpcyBhIHJvb3QgaXRlbS4gKi8KICAgICAgcGFyZW50OwogICAgICAvKiogVGhlIGxpbmUgbnVtYmVycyBvZiBjaGlsZHJlbiBvZiB0aGlzIGxpc3QgaXRlbS4gKi8KICAgICAgY2hpbGRyZW47CiAgICAgIC8qKiBUaGUgYmxvY2sgSUQgZm9yIHRoaXMgaXRlbSwgaWYgb25lIGlzIHByZXNlbnQuICovCiAgICAgIGJsb2NrSWQ7CiAgICAgIC8qKiBBbnkgZmllbGRzIGRlZmluZWQgaW4gdGhpcyBsaXN0IGl0ZW0uIEZvciB0YXNrcywgdGhpcyBpbmNsdWRlcyBmaWVsZHMgdW5kZXJuZWF0aCB0aGUgdGFzay4gKi8KICAgICAgZmllbGRzOwogICAgICB0YXNrOwogICAgICBjb25zdHJ1Y3Rvcihpbml0KSB7CiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpOwogICAgICAgICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkcyB8fCBuZXcgTWFwKCk7CiAgICAgICAgICB0aGlzLnRhZ3MgPSB0aGlzLnRhZ3MgfHwgbmV3IFNldCgpOwogICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4gfHwgW107CiAgICAgICAgICB0aGlzLmxpbmtzID0gdGhpcy5saW5rcyB8fCBbXTsKICAgICAgfQogICAgICBpZCgpIHsKICAgICAgICAgIHJldHVybiBgJHt0aGlzLmZpbGUoKS5wYXRofS0ke3RoaXMubGluZX1gOwogICAgICB9CiAgICAgIGZpbGUoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5saW5rLnRvRmlsZSgpOwogICAgICB9CiAgICAgIG1hcmtkb3duKCkgewogICAgICAgICAgaWYgKHRoaXMudGFzaykKICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zeW1ib2x9IFske3RoaXMudGFzay5jb21wbGV0ZWQgPyAieCIgOiAiICJ9XSAke3RoaXMudGV4dH1gOwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLnN5bWJvbH0gJHt0aGlzLnRleHR9YDsKICAgICAgfQogICAgICBjcmVhdGVkKCkgewogICAgICAgICAgcmV0dXJuICh0aGlzLmZpZWxkcy5nZXQoImNyZWF0ZWQiKSA/PyB0aGlzLmZpZWxkcy5nZXQoImN0aW1lIikgPz8gdGhpcy5maWVsZHMuZ2V0KCJjZGF5IikpPy5bMF07CiAgICAgIH0KICAgICAgZHVlKCkgewogICAgICAgICAgcmV0dXJuICh0aGlzLmZpZWxkcy5nZXQoImR1ZSIpID8/IHRoaXMuZmllbGRzLmdldCgiZHVldGltZSIpID8/IHRoaXMuZmllbGRzLmdldCgiZHVlZGF5IikpPy5bMF07CiAgICAgIH0KICAgICAgY29tcGxldGVkKCkgewogICAgICAgICAgcmV0dXJuICh0aGlzLmZpZWxkcy5nZXQoImNvbXBsZXRlZCIpID8/CiAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZ2V0KCJjb21wbGV0aW9uIikgPz8KICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5nZXQoImNvbXB0aW1lIikgPz8KICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5nZXQoImNvbXBkYXkiKSk/LlswXTsKICAgICAgfQogICAgICBzdGFydCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzLmZpZWxkcy5nZXQoInN0YXJ0Iik/LlswXTsKICAgICAgfQogICAgICBzY2hlZHVsZWQoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5maWVsZHMuZ2V0KCJzY2hlZHVsZWQiKT8uWzBdOwogICAgICB9CiAgICAgIC8qKiBDcmVhdGUgYW4gQVBJLWZyaWVuZGx5IGNvcHkgb2YgdGhpcyBsaXN0IGl0ZW0uIERlLWR1cGxpY2F0aW9uIGlzIGRvbmUgdmlhIHRoZSBwcm92aWRlZCBjYWNoZS4gKi8KICAgICAgc2VyaWFsaXplKGNhY2hlKSB7CiAgICAgICAgICAvLyBNYXAgY2hpbGRyZW4gdG8gdGhlaXIgc2VyaWFsaXplZC9kZS1kdXBsaWNhdGVkIGVxdWl2YWxlbnRzIHJpZ2h0IGF3YXkuCiAgICAgICAgICBsZXQgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuLm1hcChsID0+IGNhY2hlLmdldChsKSkuZmlsdGVyKChsKSA9PiBsICE9PSB1bmRlZmluZWQpOwogICAgICAgICAgbGV0IHJlc3VsdCA9IHsKICAgICAgICAgICAgICBzeW1ib2w6IHRoaXMuc3ltYm9sLAogICAgICAgICAgICAgIGxpbms6IHRoaXMubGluaywKICAgICAgICAgICAgICBzZWN0aW9uOiB0aGlzLnNlY3Rpb24sCiAgICAgICAgICAgICAgdGV4dDogdGhpcy50ZXh0LAogICAgICAgICAgICAgIHRhZ3M6IEFycmF5LmZyb20odGhpcy50YWdzKSwKICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsCiAgICAgICAgICAgICAgbGluZUNvdW50OiB0aGlzLmxpbmVDb3VudCwKICAgICAgICAgICAgICBsaXN0OiB0aGlzLmxpc3QsCiAgICAgICAgICAgICAgb3V0bGlua3M6IEFycmF5LmZyb20odGhpcy5saW5rcyksCiAgICAgICAgICAgICAgcGF0aDogdGhpcy5saW5rLnBhdGgsCiAgICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLAogICAgICAgICAgICAgIHRhc2s6ICEhdGhpcy50YXNrLAogICAgICAgICAgICAgIGFubm90YXRlZDogdGhpcy5maWVsZHMuc2l6ZSA+IDAsCiAgICAgICAgICAgICAgcG9zaXRpb246IFZhbHVlcy5kZWVwQ29weSh0aGlzLnBvc2l0aW9uKSwKICAgICAgICAgICAgICBzdWJ0YXNrczogY2hpbGRyZW4sCiAgICAgICAgICAgICAgcmVhbDogISF0aGlzLnRhc2ssCiAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnNlY3Rpb24sIC8vIEBkZXByZWNhdGVkLCB1c2UgJ2l0ZW0uc2VjdGlvbicgaW5zdGVhZC4KICAgICAgICAgIH07CiAgICAgICAgICBpZiAodGhpcy5wYXJlbnQgfHwgdGhpcy5wYXJlbnQgPT09IDApCiAgICAgICAgICAgICAgcmVzdWx0LnBhcmVudCA9IHRoaXMucGFyZW50OwogICAgICAgICAgaWYgKHRoaXMuYmxvY2tJZCkKICAgICAgICAgICAgICByZXN1bHQuYmxvY2tJZCA9IHRoaXMuYmxvY2tJZDsKICAgICAgICAgIGFkZEZpZWxkcyh0aGlzLmZpZWxkcywgcmVzdWx0KTsKICAgICAgICAgIGlmICh0aGlzLnRhc2spIHsKICAgICAgICAgICAgICByZXN1bHQuc3RhdHVzID0gdGhpcy50YXNrLnN0YXR1czsKICAgICAgICAgICAgICByZXN1bHQuY2hlY2tlZCA9IHRoaXMudGFzay5jaGVja2VkOwogICAgICAgICAgICAgIHJlc3VsdC5jb21wbGV0ZWQgPSB0aGlzLnRhc2suY29tcGxldGVkOwogICAgICAgICAgICAgIHJlc3VsdC5mdWxseUNvbXBsZXRlZCA9IHRoaXMudGFzay5mdWxseUNvbXBsZXRlZDsKICAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IHRoaXMuY3JlYXRlZCgpLCBkdWUgPSB0aGlzLmR1ZSgpLCBjb21wbGV0ZWQgPSB0aGlzLmNvbXBsZXRlZCgpLCBzdGFydCA9IHRoaXMuc3RhcnQoKSwgc2NoZWR1bGVkID0gdGhpcy5zY2hlZHVsZWQoKTsKICAgICAgICAgICAgICBpZiAoY3JlYXRlZCkKICAgICAgICAgICAgICAgICAgcmVzdWx0LmNyZWF0ZWQgPSBWYWx1ZXMuZGVlcENvcHkoY3JlYXRlZCk7CiAgICAgICAgICAgICAgaWYgKGR1ZSkKICAgICAgICAgICAgICAgICAgcmVzdWx0LmR1ZSA9IFZhbHVlcy5kZWVwQ29weShkdWUpOwogICAgICAgICAgICAgIGlmIChjb21wbGV0ZWQpCiAgICAgICAgICAgICAgICAgIHJlc3VsdC5jb21wbGV0aW9uID0gVmFsdWVzLmRlZXBDb3B5KGNvbXBsZXRlZCk7CiAgICAgICAgICAgICAgaWYgKHN0YXJ0KQogICAgICAgICAgICAgICAgICByZXN1bHQuc3RhcnQgPSBWYWx1ZXMuZGVlcENvcHkoc3RhcnQpOwogICAgICAgICAgICAgIGlmIChzY2hlZHVsZWQpCiAgICAgICAgICAgICAgICAgIHJlc3VsdC5zY2hlZHVsZWQgPSBWYWx1ZXMuZGVlcENvcHkoc2NoZWR1bGVkKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICB9CiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgLy8gQ29udmVyc2lvbiAvIFNlcmlhbGl6YXRpb24gVXRpbGl0aWVzIC8vCiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgLyoqIERlLWR1cGxpY2F0ZXMgbGlzdCBpdGVtcyBhY3Jvc3Mgc2VjdGlvbiBtZXRhZGF0YSBhbmQgcGFnZSBtZXRhZGF0YS4gKi8KICBjbGFzcyBMaXN0U2VyaWFsaXphdGlvbkNhY2hlIHsKICAgICAgbGlzdEl0ZW1zOwogICAgICBjYWNoZTsKICAgICAgc2VlbjsKICAgICAgY29uc3RydWN0b3IobGlzdEl0ZW1zKSB7CiAgICAgICAgICB0aGlzLmxpc3RJdGVtcyA9IHt9OwogICAgICAgICAgdGhpcy5jYWNoZSA9IHt9OwogICAgICAgICAgdGhpcy5zZWVuID0gbmV3IFNldCgpOwogICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBsaXN0SXRlbXMpCiAgICAgICAgICAgICAgdGhpcy5saXN0SXRlbXNbaXRlbS5saW5lXSA9IGl0ZW07CiAgICAgIH0KICAgICAgZ2V0KGxpbmVubykgewogICAgICAgICAgaWYgKGxpbmVubyBpbiB0aGlzLmNhY2hlKQogICAgICAgICAgICAgIHJldHVybiB0aGlzLmNhY2hlW2xpbmVub107CiAgICAgICAgICBlbHNlIGlmICh0aGlzLnNlZW4uaGFzKGxpbmVubykpIHsKICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRGF0YXZpZXc6IEVuY291bnRlcmVkIGEgY2lyY3VsYXIgbGlzdCAobGluZSBudW1iZXIgJHtsaW5lbm99OyBjaGlsZHJlbiAke3RoaXMubGlzdEl0ZW1zW2xpbmVub10uY2hpbGRyZW4uam9pbigiLCAiKX0pYCk7CiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuc2Vlbi5hZGQobGluZW5vKTsKICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmxpc3RJdGVtc1tsaW5lbm9dLnNlcmlhbGl6ZSh0aGlzKTsKICAgICAgICAgIHRoaXMuY2FjaGVbbGluZW5vXSA9IHJlc3VsdDsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICB9CiAgZnVuY3Rpb24gYWRkRmllbGRzKGZpZWxkcywgdGFyZ2V0KSB7CiAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlc10gb2YgZmllbGRzLmVudHJpZXMoKSkgewogICAgICAgICAgaWYgKGtleSBpbiB0YXJnZXQpCiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlcy5sZW5ndGggPT0gMSA/IHZhbHVlc1swXSA6IHZhbHVlczsKICAgICAgfQogICAgICByZXR1cm4gdGFyZ2V0OwogIH0KCiAgLyoqIENvbW1vbiB1dGlsaXRpZXMgZm9yIGV4dHJhY3RpbmcgdGFncywgbGlua3MsIGFuZCBvdGhlciBidXNpbmVzcyBmcm9tIG1ldGFkYXRhLiAqLwogIGNvbnN0IFBPVEVOVElBTF9UQUdfTUFUQ0hFUiA9IC8jW15ccyw7XC46IVw/JyJgKClcW1xdXHtcfV0rL2dpdTsKICAvKiogRXh0cmFjdCBhbGwgdGFncyBmcm9tIHRoZSBnaXZlbiBzb3VyY2Ugc3RyaW5nLiAqLwogIGZ1bmN0aW9uIGV4dHJhY3RUYWdzJDEoc291cmNlKSB7CiAgICAgIGxldCByZXN1bHQgPSBuZXcgU2V0KCk7CiAgICAgIGxldCBtYXRjaGVzID0gc291cmNlLm1hdGNoQWxsKFBPVEVOVElBTF9UQUdfTUFUQ0hFUik7CiAgICAgIGZvciAobGV0IG1hdGNoIG9mIG1hdGNoZXMpIHsKICAgICAgICAgIGxldCBwYXJzZWQgPSBFWFBSRVNTSU9OLnRhZy5wYXJzZShtYXRjaFswXSk7CiAgICAgICAgICBpZiAocGFyc2VkLnN0YXR1cykKICAgICAgICAgICAgICByZXN1bHQuYWRkKHBhcnNlZC52YWx1ZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdDsKICB9CgogIC8qKiBJbXBvcnRlciBmb3IgbWFya2Rvd24gZG9jdW1lbnRzLiAqLwogIC8qKiBFeHRyYWN0IG1hcmtkb3duIG1ldGFkYXRhIGZyb20gdGhlIGdpdmVuIE9ic2lkaWFuIG1hcmtkb3duIGZpbGUuICovCiAgZnVuY3Rpb24gcGFyc2VQYWdlKHBhdGgsIGNvbnRlbnRzLCBzdGF0LCBtZXRhZGF0YSkgewogICAgICBsZXQgdGFncyA9IG5ldyBTZXQoKTsKICAgICAgbGV0IGFsaWFzZXMgPSBuZXcgU2V0KCk7CiAgICAgIGxldCBmaWVsZHMgPSBuZXcgTWFwKCk7CiAgICAgIGxldCBsaW5rcyA9IFtdOwogICAgICAvLyBGaWxlIHRhZ3MsIGluY2x1ZGluZyBmcm9udC1tYXR0ZXIgYW5kIGluLWZpbGUgdGFncy4KICAgICAgKG1ldGFkYXRhLnRhZ3MgfHwgW10pLmZvckVhY2godCA9PiB0YWdzLmFkZCh0LnRhZy5zdGFydHNXaXRoKCIjIikgPyB0LnRhZyA6ICIjIiArIHQudGFnKSk7CiAgICAgIC8vIEZyb250LW1hdHRlciBmaWxlIHRhZ3MsIGFsaWFzZXMsIEFORCBmcm9udG1hdHRlciBwcm9wZXJ0aWVzLgogICAgICBpZiAobWV0YWRhdGEuZnJvbnRtYXR0ZXIpIHsKICAgICAgICAgIGZvciAobGV0IHRhZyBvZiBleHRyYWN0VGFncyhtZXRhZGF0YS5mcm9udG1hdHRlcikpIHsKICAgICAgICAgICAgICBpZiAoIXRhZy5zdGFydHNXaXRoKCIjIikpCiAgICAgICAgICAgICAgICAgIHRhZyA9ICIjIiArIHRhZzsKICAgICAgICAgICAgICB0YWdzLmFkZCh0YWcpOwogICAgICAgICAgfQogICAgICAgICAgZm9yIChsZXQgYWxpYXMgb2YgZXh0cmFjdEFsaWFzZXMobWV0YWRhdGEuZnJvbnRtYXR0ZXIpIHx8IFtdKQogICAgICAgICAgICAgIGFsaWFzZXMuYWRkKGFsaWFzKTsKICAgICAgICAgIGxldCBmcm9udEZpZWxkcyA9IHBhcnNlRnJvbnRtYXR0ZXIobWV0YWRhdGEuZnJvbnRtYXR0ZXIpOwogICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZyb250RmllbGRzKSkgewogICAgICAgICAgICAgIGlmIChrZXkgPT0gInBvc2l0aW9uIikKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgYWRkSW5saW5lRmllbGQoa2V5LCB2YWx1ZSwgZmllbGRzKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICAvLyBBZGQgZnJvbnRtYXR0ZXIgbGlua3MgdG8gbGlua3MuCiAgICAgIGlmIChtZXRhZGF0YS5mcm9udG1hdHRlckxpbmtzKSB7CiAgICAgICAgICBmb3IgKGxldCByYXdMaW5rIG9mIG1ldGFkYXRhLmZyb250bWF0dGVyTGlua3MgfHwgW10pIHsKICAgICAgICAgICAgICBjb25zdCBsaW5rID0gTGluay5pbmZlcihyYXdMaW5rLmxpbmssIGZhbHNlLCByYXdMaW5rLmRpc3BsYXlUZXh0KTsKICAgICAgICAgICAgICBsaW5rcy5wdXNoKGxpbmspOwogICAgICAgICAgfQogICAgICB9CiAgICAgIC8vIExpbmtzIGluIG1ldGFkYXRhLgogICAgICBjb25zdCBsaW5rc0J5TGluZSA9IHt9OwogICAgICBmb3IgKGxldCByYXdMaW5rIG9mIG1ldGFkYXRhLmxpbmtzIHx8IFtdKSB7CiAgICAgICAgICBjb25zdCBsaW5rID0gTGluay5pbmZlcihyYXdMaW5rLmxpbmssIGZhbHNlLCByYXdMaW5rLmRpc3BsYXlUZXh0KTsKICAgICAgICAgIGNvbnN0IGxpbmUgPSByYXdMaW5rLnBvc2l0aW9uLnN0YXJ0LmxpbmU7CiAgICAgICAgICBsaW5rcy5wdXNoKGxpbmspOwogICAgICAgICAgaWYgKCEobGluZSBpbiBsaW5rc0J5TGluZSkpCiAgICAgICAgICAgICAgbGlua3NCeUxpbmVbbGluZV0gPSBbbGlua107CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgbGlua3NCeUxpbmVbbGluZV0ucHVzaChsaW5rKTsKICAgICAgfQogICAgICAvLyBFbWJlZCBMaW5rcyBpbiBtZXRhZGF0YS4KICAgICAgZm9yIChsZXQgcmF3RW1iZWQgb2YgbWV0YWRhdGEuZW1iZWRzIHx8IFtdKSB7CiAgICAgICAgICBjb25zdCBsaW5rID0gTGluay5pbmZlcihyYXdFbWJlZC5saW5rLCB0cnVlLCByYXdFbWJlZC5kaXNwbGF5VGV4dCk7CiAgICAgICAgICBjb25zdCBsaW5lID0gcmF3RW1iZWQucG9zaXRpb24uc3RhcnQubGluZTsKICAgICAgICAgIGxpbmtzLnB1c2gobGluayk7CiAgICAgICAgICBpZiAoIShsaW5lIGluIGxpbmtzQnlMaW5lKSkKICAgICAgICAgICAgICBsaW5rc0J5TGluZVtsaW5lXSA9IFtsaW5rXTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBsaW5rc0J5TGluZVtsaW5lXS5wdXNoKGxpbmspOwogICAgICB9CiAgICAgIC8vIE1lcmdlIGZyb250bWF0dGVyIGZpZWxkcyB3aXRoIHBhcnNlZCBmaWVsZHMuCiAgICAgIGxldCBtYXJrZG93bkRhdGEgPSBwYXJzZU1hcmtkb3duKHBhdGgsIGNvbnRlbnRzLnNwbGl0KCJcbiIpLCBtZXRhZGF0YSwgbGlua3NCeUxpbmUpOwogICAgICBtZXJnZUZpZWxkR3JvdXBzKGZpZWxkcywgbWFya2Rvd25EYXRhLmZpZWxkcyk7CiAgICAgIC8vIFN0cmlwICJwb3NpdGlvbiIgZnJvbSBmcm9udG1hdHRlciBzaW5jZSBpdCBpcyBPYnNpZGlhbiBkZXRlcm1pbmVkLgogICAgICBjb25zdCBmcm9udG1hdHRlciA9IG1ldGFkYXRhLmZyb250bWF0dGVyIHx8IHt9OwogICAgICBpZiAoZnJvbnRtYXR0ZXIgJiYgInBvc2l0aW9uIiBpbiBmcm9udG1hdHRlcikKICAgICAgICAgIGRlbGV0ZSBmcm9udG1hdHRlclsicG9zaXRpb24iXTsKICAgICAgcmV0dXJuIG5ldyBQYWdlTWV0YWRhdGEocGF0aCwgewogICAgICAgICAgdGFncywKICAgICAgICAgIGFsaWFzZXMsCiAgICAgICAgICBsaW5rcywKICAgICAgICAgIGxpc3RzOiBtYXJrZG93bkRhdGEubGlzdHMsCiAgICAgICAgICBmaWVsZHM6IGZpbmFsaXplSW5saW5lRmllbGRzKGZpZWxkcyksCiAgICAgICAgICBmcm9udG1hdHRlcjogZnJvbnRtYXR0ZXIsCiAgICAgICAgICBjdGltZTogRGF0ZVRpbWUuZnJvbU1pbGxpcyhzdGF0LmN0aW1lKSwKICAgICAgICAgIG10aW1lOiBEYXRlVGltZS5mcm9tTWlsbGlzKHN0YXQubXRpbWUpLAogICAgICAgICAgc2l6ZTogc3RhdC5zaXplLAogICAgICAgICAgZGF5OiBmaW5kRGF0ZShwYXRoLCBmaWVsZHMpLAogICAgICB9KTsKICB9CiAgLyoqIEV4dHJhY3QgdGFncyBpbnRlbGxpZ2VudGx5IGZyb20gZnJvbnRtYXR0ZXIuIEhhbmRsZXMgYXJyYXlzLCBudW1iZXJzLCBhbmQgc3RyaW5ncy4gKi8KICBmdW5jdGlvbiBleHRyYWN0VGFncyhtZXRhZGF0YSkgewogICAgICBsZXQgdGFnS2V5cyA9IE9iamVjdC5rZXlzKG1ldGFkYXRhKS5maWx0ZXIodCA9PiB0LnRvTG93ZXJDYXNlKCkgPT0gInRhZ3MiIHx8IHQudG9Mb3dlckNhc2UoKSA9PSAidGFnIik7CiAgICAgIHJldHVybiB0YWdLZXlzCiAgICAgICAgICAubWFwKGsgPT4gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMobWV0YWRhdGFba10sIC9bLFxzXSsvKSkKICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IHAuY29uY2F0KGMpLCBbXSkKICAgICAgICAgIC5tYXAoc3RyID0+IChzdHIuc3RhcnRzV2l0aCgiIyIpID8gc3RyIDogIiMiICsgc3RyKSk7CiAgfQogIC8qKiBFeHRyYWN0IGFsaWFzZXMgaW50ZWxsaWdlbnRseSBmcm9tIGZyb250bWF0dGVyLiBIYW5kbGVzIGFycmF5cywgbnVtYmVycywgYW5kIHN0cmluZ3MuICAqLwogIGZ1bmN0aW9uIGV4dHJhY3RBbGlhc2VzKG1ldGFkYXRhKSB7CiAgICAgIGxldCBhbGlhc0tleXMgPSBPYmplY3Qua2V5cyhtZXRhZGF0YSkuZmlsdGVyKHQgPT4gdC50b0xvd2VyQ2FzZSgpID09ICJhbGlhcyIgfHwgdC50b0xvd2VyQ2FzZSgpID09ICJhbGlhc2VzIik7CiAgICAgIGNvbnN0IHJlc3VsdCA9IFtdOwogICAgICBmb3IgKGxldCBrZXkgb2YgYWxpYXNLZXlzKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IG1ldGFkYXRhW2tleV07CiAgICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKQogICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnZhbHVlLm1hcCh2ID0+ICgiIiArIHYpLnRyaW0oKSkpOwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKHZhbHVlLCAvLC8pKTsKICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0OwogIH0KICAvKiogU3BsaXQgYSBmcm9udG1hdHRlciBsaXN0IGludG8gc2VwYXJhdGUgZWxlbWVudHM7IGhhbmRsZXMgYWN0dWFsIGxpc3RzLCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMsIGFuZCBzaW5nbGUgZWxlbWVudHMuICovCiAgZnVuY3Rpb24gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMoZGF0YSwgb24pIHsKICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCBkYXRhID09IHVuZGVmaW5lZCkKICAgICAgICAgIHJldHVybiBbXTsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHsKICAgICAgICAgIHJldHVybiBkYXRhCiAgICAgICAgICAgICAgLmZpbHRlcihzID0+ICEhcykKICAgICAgICAgICAgICAubWFwKHMgPT4gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMocywgb24pKQogICAgICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IHAuY29uY2F0KGMpLCBbXSk7CiAgICAgIH0KICAgICAgLy8gRm9yY2UgdG8gYSBzdHJpbmcgdG8gaGFuZGxlIG51bWJlcnMgYW5kIHNvIG9uLgogICAgICByZXR1cm4gKCIiICsgZGF0YSkKICAgICAgICAgIC5zcGxpdChvbikKICAgICAgICAgIC5maWx0ZXIodCA9PiAhIXQpCiAgICAgICAgICAubWFwKHQgPT4gdC50cmltKCkpCiAgICAgICAgICAuZmlsdGVyKHQgPT4gdC5sZW5ndGggPiAwKTsKICB9CiAgLyoqIFBhcnNlIHJhdyAobmV3bGluZS1kZWxpbWl0ZWQpIG1hcmtkb3duLCByZXR1cm5pbmcgaW5saW5lIGZpZWxkcywgbGlzdCBpdGVtcywgYW5kIG90aGVyIG1ldGFkYXRhLiAqLwogIGZ1bmN0aW9uIHBhcnNlTWFya2Rvd24ocGF0aCwgY29udGVudHMsIG1ldGFkYXRhLCBsaW5rc0J5TGluZSkgewogICAgICBsZXQgZmllbGRzID0gbmV3IE1hcCgpOwogICAgICAvLyBFeHRyYWN0IHRhc2sgZGF0YSBhbmQgYXBwZW5kIHRoZSBnbG9iYWwgZGF0YSBleHRyYWN0ZWQgZnJvbSB0aGVtIHRvIG91ciBmaWVsZHMuCiAgICAgIGxldCBbbGlzdHMsIGV4dHJhRGF0YV0gPSBwYXJzZUxpc3RzKHBhdGgsIGNvbnRlbnRzLCBtZXRhZGF0YSwgbGlua3NCeUxpbmUpOwogICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZXNdIG9mIGV4dHJhRGF0YS5lbnRyaWVzKCkpIHsKICAgICAgICAgIGlmICghZmllbGRzLmhhcyhrZXkpKQogICAgICAgICAgICAgIGZpZWxkcy5zZXQoa2V5LCB2YWx1ZXMpOwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIGZpZWxkcy5zZXQoa2V5LCBmaWVsZHMuZ2V0KGtleSkuY29uY2F0KHZhbHVlcykpOwogICAgICB9CiAgICAgIC8vIFRoZSBPYnNpZGlhbiBtZXRhZGF0YSBjYWNoZSB3aWxsIHRyYWNrIGxpc3QgZWxlbWVudHMgaW5zaWRlIG9mIG90aGVyIGVsZW1lbnQgZ3JvdXBzIChsaWtlIGFubm90YXRpb25zIGFuZAogICAgICAvLyBjYWxsb3V0cykuLi4gdGhpcyBtZWFucyB3ZSBtaWdodCBzZWUgbWV0YWRhdGEgdHdpY2UsIHNvIHNraXAgdGhlbSBub3cuIFZlcnkgYW5ub3lpbmcuCiAgICAgIGNvbnN0IGxpc3RMaW5lc1RvU2tpcCA9IG5ldyBTZXQoKTsKICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpc3RzKSB7CiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmUubGluZUNvdW50OyBpKyspCiAgICAgICAgICAgICAgbGlzdExpbmVzVG9Ta2lwLmFkZChsaW5lLmxpbmUgKyBpKTsKICAgICAgfQogICAgICAvLyBPbmx5IHBhcnNlIGhlYWRpbmcgYW5kIHBhcmFncmFwaCBlbGVtZW50cyBmb3IgaW5saW5lIGZpZWxkczsgd2Ugd2lsbCBwYXJzZSBsaXN0IG1ldGFkYXRhIHNlcGFyYXRlbHkuCiAgICAgIGZvciAobGV0IHNlY3Rpb24gb2YgbWV0YWRhdGEuc2VjdGlvbnMgfHwgW10pIHsKICAgICAgICAgIGlmIChzZWN0aW9uLnR5cGUgPT0gImxpc3QiIHx8IHNlY3Rpb24udHlwZSA9PSAicnVsaW5nIikKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIGZvciAobGV0IGxpbmVubyA9IHNlY3Rpb24ucG9zaXRpb24uc3RhcnQubGluZTsgbGluZW5vIDw9IHNlY3Rpb24ucG9zaXRpb24uZW5kLmxpbmU7IGxpbmVubysrKSB7CiAgICAgICAgICAgICAgbGV0IGxpbmUgPSBjb250ZW50c1tsaW5lbm9dOwogICAgICAgICAgICAgIGlmIChsaW5lID09IHVuZGVmaW5lZCB8fCBsaW5lID09IG51bGwpCiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIGlmIChsaXN0TGluZXNUb1NraXAuaGFzKGxpbmVubykpCiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIC8vIEZhc3QgYmFpbC1vdXQgZm9yIGxpbmVzIHRoYXQgYXJlIHRvbyBsb25nIG9yIGRvIG5vdCBjb250YWluICc6OicuCiAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID4gMzI3NjggfHwgIWxpbmUuaW5jbHVkZXMoIjo6IikpCiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKICAgICAgICAgICAgICBsZXQgaW5saW5lRmllbGRzID0gZXh0cmFjdElubGluZUZpZWxkcyhsaW5lKTsKICAgICAgICAgICAgICBpZiAoaW5saW5lRmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaWZpZWxkIG9mIGlubGluZUZpZWxkcykKICAgICAgICAgICAgICAgICAgICAgIGFkZFJhd0lubGluZUZpZWxkKGlmaWVsZCwgZmllbGRzKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIGxldCBmdWxsTGluZSA9IGV4dHJhY3RGdWxsTGluZUZpZWxkKGxpbmUpOwogICAgICAgICAgICAgICAgICBpZiAoZnVsbExpbmUpCiAgICAgICAgICAgICAgICAgICAgICBhZGRSYXdJbmxpbmVGaWVsZChmdWxsTGluZSwgZmllbGRzKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHsgZmllbGRzLCBsaXN0cyB9OwogIH0KICAvLyBUT0RPOiBDb25zaWRlciB1c2luZyBhbiBhY3R1YWwgcGFyc2VyIGluIGxpZXUgb2YgYSBtb3JlIGV4cGVuc2l2ZSByZWdleC4KICBjb25zdCBMSVNUX0lURU1fUkVHRVggPSAvXltccz5dKihcZCtcLnxcZCtcKXxcKnwtfFwrKVxzKihcWy57MCwxfVxdKT9ccyooLiopJC9tdTsKICAvKioKICAgKiBQYXJzZSBsaXN0IGl0ZW1zIGZyb20gdGhlIHBhZ2UgKyBtZXRhZGF0YS4gVGhpcyByZXF1aXJlcyBzb21lIGFkZGl0aW9uYWwgcGFyc2luZyBhYm92ZSB3aGF0ZXZlciBPYnNpZGlhbiBwcm92aWRlcywKICAgKiBzaW5jZSBPYnNpZGlhbiBvbmx5IGdpdmVzIGxpbmUgbnVtYmVycy4KICAgKi8KICBmdW5jdGlvbiBwYXJzZUxpc3RzKHBhdGgsIGNvbnRlbnQsIG1ldGFkYXRhLCBsaW5rc0J5TGluZSkgewogICAgICBsZXQgY2FjaGUgPSB7fTsKICAgICAgLy8gUGxhY2UgYWxsIG9mIHRoZSB2YWx1ZXMgaW4gdGhlIGNhY2hlIGJlZm9yZSByZXNvbHZpbmcgY2hpbGRyZW4gJiBtZXRhZGF0YSByZWxhdGlvbnNoaXBzLgogICAgICBmb3IgKGxldCByYXdFbGVtZW50IG9mIG1ldGFkYXRhLmxpc3RJdGVtcyB8fCBbXSkgewogICAgICAgICAgLy8gTWF0Y2ggb24gdGhlIGZpcnN0IGxpbmUgdG8gZ2V0IHRoZSBzeW1ib2wgYW5kIGZpcnN0IGxpbmUgb2YgdGV4dC4KICAgICAgICAgIGxldCByYXdNYXRjaCA9IExJU1RfSVRFTV9SRUdFWC5leGVjKGNvbnRlbnRbcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lXSk7CiAgICAgICAgICBpZiAoIXJhd01hdGNoKQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgLy8gQW5kIHRoZW4gc3RyaXAgdW5uZWNlc3Nhcnkgc3BhY2luZyBmcm9tIHRoZSByZW1haW5pbmcgbGluZXMuCiAgICAgICAgICBsZXQgdGV4dFBhcnRzID0gW3Jhd01hdGNoWzNdXQogICAgICAgICAgICAgIC5jb25jYXQoY29udGVudC5zbGljZShyYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUgKyAxLCByYXdFbGVtZW50LnBvc2l0aW9uLmVuZC5saW5lICsgMSkpCiAgICAgICAgICAgICAgLm1hcCh0ID0+IHQudHJpbSgpKTsKICAgICAgICAgIGxldCB0ZXh0V2l0aE5ld2xpbmUgPSB0ZXh0UGFydHMuam9pbigiXG4iKTsKICAgICAgICAgIGxldCB0ZXh0Tm9OZXdsaW5lID0gdGV4dFBhcnRzLmpvaW4oIiAiKTsKICAgICAgICAgIC8vIEZpbmQgdGhlIGxpc3QgdGhhdCB3ZSBhcmUgYSBwYXJ0IG9mIGJ5IGxpbmUuCiAgICAgICAgICBsZXQgY29udGFpbmluZ0xpc3RJZCA9IChtZXRhZGF0YS5zZWN0aW9ucyB8fCBbXSkuZmluZEluZGV4KHMgPT4gcy50eXBlID09ICJsaXN0IiAmJgogICAgICAgICAgICAgIHMucG9zaXRpb24uc3RhcnQubGluZSA8PSByYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUgJiYKICAgICAgICAgICAgICBzLnBvc2l0aW9uLmVuZC5saW5lID49IHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZSk7CiAgICAgICAgICAvLyBGaW5kIHRoZSBzZWN0aW9uIHdlIGJlbG9uZyB0byBhcyB3ZWxsLgogICAgICAgICAgbGV0IHNlY3Rpb25OYW1lID0gZmluZFByZXZpb3VzSGVhZGVyKHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZSwgbWV0YWRhdGEuaGVhZGluZ3MgfHwgW10pOwogICAgICAgICAgbGV0IHNlY3Rpb25MaW5rID0gc2VjdGlvbk5hbWUgPT09IHVuZGVmaW5lZCA/IExpbmsuZmlsZShwYXRoKSA6IExpbmsuaGVhZGVyKHBhdGgsIHNlY3Rpb25OYW1lKTsKICAgICAgICAgIGxldCBjbG9zZXN0TGluayA9IHJhd0VsZW1lbnQuaWQgPT09IHVuZGVmaW5lZCA/IHNlY3Rpb25MaW5rIDogTGluay5ibG9jayhwYXRoLCByYXdFbGVtZW50LmlkKTsKICAgICAgICAgIC8vIEdhdGhlciBhbnkgbGlua3MgdGhhdCBvY2N1ciBvbiB0aGUgc2FtZSBsaW5lcyBhcyB0aGUgdGFzay4KICAgICAgICAgIGNvbnN0IGxpbmtzID0gW107CiAgICAgICAgICBmb3IgKGxldCBsaW5lID0gcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lOyBsaW5lIDw9IHJhd0VsZW1lbnQucG9zaXRpb24uZW5kLmxpbmU7IGxpbmUrKykgewogICAgICAgICAgICAgIGlmIChsaW5rc0J5TGluZVtsaW5lXSkKICAgICAgICAgICAgICAgICAgbGlua3MucHVzaCguLi5saW5rc0J5TGluZVtsaW5lXSk7CiAgICAgICAgICB9CiAgICAgICAgICAvLyBDb25zdHJ1Y3QgdW5pdmVyc2FsIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgZWxlbWVudCAoYmVmb3JlIHRhc2tzKS4KICAgICAgICAgIGxldCBpdGVtID0gbmV3IExpc3RJdGVtKHsKICAgICAgICAgICAgICBzeW1ib2w6IHJhd01hdGNoWzFdLAogICAgICAgICAgICAgIGxpbms6IGNsb3Nlc3RMaW5rLAogICAgICAgICAgICAgIGxpbmtzOiBsaW5rcywKICAgICAgICAgICAgICBzZWN0aW9uOiBzZWN0aW9uTGluaywKICAgICAgICAgICAgICB0ZXh0OiB0ZXh0V2l0aE5ld2xpbmUsCiAgICAgICAgICAgICAgdGFnczogZXh0cmFjdFRhZ3MkMSh0ZXh0Tm9OZXdsaW5lKSwKICAgICAgICAgICAgICBsaW5lOiByYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUsCiAgICAgICAgICAgICAgbGluZUNvdW50OiByYXdFbGVtZW50LnBvc2l0aW9uLmVuZC5saW5lIC0gcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lICsgMSwKICAgICAgICAgICAgICBsaXN0OiBjb250YWluaW5nTGlzdElkID09IC0xID8gLTEgOiAobWV0YWRhdGEuc2VjdGlvbnMgfHwgW10pW2NvbnRhaW5pbmdMaXN0SWRdLnBvc2l0aW9uLnN0YXJ0LmxpbmUsCiAgICAgICAgICAgICAgcG9zaXRpb246IHJhd0VsZW1lbnQucG9zaXRpb24sCiAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLAogICAgICAgICAgICAgIGJsb2NrSWQ6IHJhd0VsZW1lbnQuaWQsCiAgICAgICAgICB9KTsKICAgICAgICAgIGlmIChyYXdFbGVtZW50LnBhcmVudCA+PSAwICYmIHJhd0VsZW1lbnQucGFyZW50ICE9IGl0ZW0ubGluZSkKICAgICAgICAgICAgICBpdGVtLnBhcmVudCA9IHJhd0VsZW1lbnQucGFyZW50OwogICAgICAgICAgLy8gU2V0IHVwIHRoZSBiYXNpYyB0YXNrIGluZm9ybWF0aW9uIGZvciBub3csIHRob3VnaCB3ZSBoYXZlIHRvIHJlY29tcHV0ZSBgZnVsbHlDb21wdXRlZGAgbGF0ZXIuCiAgICAgICAgICBpZiAocmF3RWxlbWVudC50YXNrKSB7CiAgICAgICAgICAgICAgaXRlbS50YXNrID0gewogICAgICAgICAgICAgICAgICBzdGF0dXM6IHJhd0VsZW1lbnQudGFzaywKICAgICAgICAgICAgICAgICAgY2hlY2tlZDogcmF3RWxlbWVudC50YXNrICE9ICIiICYmIHJhd0VsZW1lbnQudGFzayAhPSAiICIsCiAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZDogcmF3RWxlbWVudC50YXNrID09ICJYIiB8fCByYXdFbGVtZW50LnRhc2sgPT0gIngiLAogICAgICAgICAgICAgICAgICBmdWxseUNvbXBsZXRlZDogcmF3RWxlbWVudC50YXNrID09ICJYIiB8fCByYXdFbGVtZW50LnRhc2sgPT0gIngiLAogICAgICAgICAgICAgIH07CiAgICAgICAgICB9CiAgICAgICAgICAvLyBFeHRyYWN0IGlubGluZSBmaWVsZHM7IGV4dHJhY3QgZnVsbC1saW5lIGZpZWxkcyBvbmx5IGlmIHdlIGFyZSBOT1QgYSB0YXNrLgogICAgICAgICAgaXRlbS5maWVsZHMgPSBuZXcgTWFwKCk7CiAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGV4dHJhY3RJbmxpbmVGaWVsZHModGV4dE5vTmV3bGluZSwgdHJ1ZSkpCiAgICAgICAgICAgICAgYWRkUmF3SW5saW5lRmllbGQoZWxlbWVudCwgaXRlbS5maWVsZHMpOwogICAgICAgICAgaWYgKCFyYXdFbGVtZW50LnRhc2sgJiYgaXRlbS5maWVsZHMuc2l6ZSA9PSAwKSB7CiAgICAgICAgICAgICAgbGV0IGZ1bGxMaW5lID0gZXh0cmFjdEZ1bGxMaW5lRmllbGQodGV4dE5vTmV3bGluZSk7CiAgICAgICAgICAgICAgaWYgKGZ1bGxMaW5lKQogICAgICAgICAgICAgICAgICBhZGRSYXdJbmxpbmVGaWVsZChmdWxsTGluZSwgaXRlbS5maWVsZHMpOwogICAgICAgICAgfQogICAgICAgICAgY2FjaGVbaXRlbS5saW5lXSA9IGl0ZW07CiAgICAgIH0KICAgICAgLy8gVHJlZSB1cGRhdGluZyBwYXNzZXMuIFVwZGF0ZSBjaGlsZCBsaXN0cy4gUHJvcGFnYXRlIG1ldGFkYXRhIHVwIHRvIHBhcmVudCB0YXNrcy4gVXBkYXRlIHRhc2sgYGZ1bGx5Q29tcGxldGVkYC4KICAgICAgbGV0IGxpdGVyYWxzID0gbmV3IE1hcCgpOwogICAgICBmb3IgKGxldCBsaXN0SXRlbSBvZiBPYmplY3QudmFsdWVzKGNhY2hlKSkgewogICAgICAgICAgLy8gUGFzcyAxOiBVcGRhdGUgY2hpbGQgbGlzdHMuCiAgICAgICAgICBpZiAobGlzdEl0ZW0ucGFyZW50ICE9PSB1bmRlZmluZWQgJiYgbGlzdEl0ZW0ucGFyZW50IGluIGNhY2hlKSB7CiAgICAgICAgICAgICAgbGV0IHBhcmVudCA9IGNhY2hlW2xpc3RJdGVtLnBhcmVudF07CiAgICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobGlzdEl0ZW0ubGluZSk7CiAgICAgICAgICB9CiAgICAgICAgICAvLyBQYXNzIDI6IFByb3BhZ2F0ZSBtZXRhZGF0YSB1cCB0byB0aGUgcGFyZW50IHRhc2sgb3Igcm9vdCBlbGVtZW50LgogICAgICAgICAgaWYgKCFsaXN0SXRlbS50YXNrKSB7CiAgICAgICAgICAgICAgbWVyZ2VGaWVsZEdyb3VwcyhsaXRlcmFscywgbGlzdEl0ZW0uZmllbGRzKTsKICAgICAgICAgICAgICAvLyBUT0RPIChibGFja3NtaXRoZ3UpOiBUaGUgYmVsb3cgY29kZSBwcm9wZXJseSBQcm9wYWdhdGVzIG1ldGFkYXRhIHVwIHRvIHRoZSBuZWFyZXN0IHRhc2ssIHdoaWNoIGlzIHRoZQogICAgICAgICAgICAgIC8vIG1vcmUgaW50dWl0aXZlIGJlaGF2aW9yLiBGb3Igbm93LCB0aG91Z2gsIHdlIHdpbGwga2VlcCB0aGUgZXhpc3RpbmcgbG9naWMuCiAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICBsZXQgcm9vdDogTGlzdEl0ZW0gfCB1bmRlZmluZWQgPSBsaXN0SXRlbTsKICAgICAgICAgICAgICB3aGlsZSAoISFyb290ICYmICFyb290LnRhc2spIHJvb3QgPSBjYWNoZVtyb290LnBhcmVudCA/PyAtMV07CgogICAgICAgICAgICAgIC8vIElmIHRoZSByb290IGlzIG51bGwsIGFwcGVuZCB0aGlzIG1ldGFkYXRhIHRvIHRoZSByb290OyBvdGhlcndpc2UsIGFwcGVuZCB0byB0aGUgdGFzay4KICAgICAgICAgICAgICBtZXJnZUZpZWxkR3JvdXBzKHJvb3QgPT09IHVuZGVmaW5lZCB8fCByb290ID09IG51bGwgPyBsaXRlcmFscyA6IHJvb3QuZmllbGRzLCBsaXN0SXRlbS5maWVsZHMpOwogICAgICAgICAgICAgICovCiAgICAgICAgICB9CiAgICAgICAgICAvLyBQYXNzIDM6IFByb3BhZ2F0ZSBgZnVsbHlDb21wbGV0ZWRgIHVwIHRoZSB0YXNrIHRyZWUuIFRoaXMgaXMgYSBsaXR0bGUgbGVzcyBlZmZpY2llbnQgdGhhbiBqdXN0IGRvaW5nIGEgc2ltcGxlCiAgICAgICAgICAvLyBERlMgdXNpbmcgdGhlIGNoaWxkcmVuIElEcywgYnV0IGl0J3MgcHJvYmFibHkgZmluZS4KICAgICAgICAgIGlmIChsaXN0SXRlbS50YXNrKSB7CiAgICAgICAgICAgICAgbGV0IGN1cnIgPSBsaXN0SXRlbTsKICAgICAgICAgICAgICB3aGlsZSAoISFjdXJyKSB7CiAgICAgICAgICAgICAgICAgIGlmIChjdXJyLnRhc2spCiAgICAgICAgICAgICAgICAgICAgICBjdXJyLnRhc2suZnVsbHlDb21wbGV0ZWQgPSBjdXJyLnRhc2suZnVsbHlDb21wbGV0ZWQgJiYgbGlzdEl0ZW0udGFzay5jb21wbGV0ZWQ7CiAgICAgICAgICAgICAgICAgIGN1cnIgPSBjYWNoZVtjdXJyLnBhcmVudCA/PyAtMV07CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBbT2JqZWN0LnZhbHVlcyhjYWNoZSksIGxpdGVyYWxzXTsKICB9CiAgLyoqIEF0dGVtcHQgdG8gZmluZCBhIGRhdGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBwYWdlIGZyb20gbWV0YWRhdGEgb3IgZmlsZW5hbWVzLiAqLwogIGZ1bmN0aW9uIGZpbmREYXRlKGZpbGUsIGZpZWxkcykgewogICAgICBmb3IgKGxldCBrZXkgb2YgZmllbGRzLmtleXMoKSkgewogICAgICAgICAgaWYgKCEoa2V5LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gImRhdGUiIHx8IGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09ICJkYXkiKSkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIGxldCB2YWx1ZSA9IGZpZWxkcy5nZXQoa2V5KTsKICAgICAgICAgIGlmIChWYWx1ZXMuaXNEYXRlKHZhbHVlKSkgewogICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKFZhbHVlcy5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwICYmIFZhbHVlcy5pc0RhdGUodmFsdWVbMF0pKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoVmFsdWVzLmlzTGluayh2YWx1ZSkpIHsKICAgICAgICAgICAgICBsZXQgZGF0ZSA9IGV4dHJhY3REYXRlKHZhbHVlLnBhdGgpID8/IGV4dHJhY3REYXRlKHZhbHVlLnN1YnBhdGggPz8gIiIpID8/IGV4dHJhY3REYXRlKHZhbHVlLmRpc3BsYXkgPz8gIiIpOwogICAgICAgICAgICAgIGlmIChkYXRlKQogICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZTsKICAgICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZXh0cmFjdERhdGUoZ2V0RmlsZVRpdGxlKGZpbGUpKTsKICB9CiAgLyoqIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgZnJvbnRtYXR0ZXIgaW50byBmaWVsZHMuIFdlIGhhdmUgdG8gZGFuY2UgYXJvdW5kIFlBTUwgc3RydWN0dXJlLiAqLwogIGZ1bmN0aW9uIHBhcnNlRnJvbnRtYXR0ZXIodmFsdWUpIHsKICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgewogICAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTsKICAgICAgICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB2YWx1ZSkgewogICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChwYXJzZUZyb250bWF0dGVyKGNoaWxkKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHsKICAgICAgICAgICAgICBsZXQgZGF0ZVBhcnNlID0gRGF0ZVRpbWUuZnJvbUpTRGF0ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgcmV0dXJuIGRhdGVQYXJzZTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGxldCBvYmplY3QgPSB2YWx1ZTsKICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0ge307CiAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIG9iamVjdCkgewogICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHBhcnNlRnJvbnRtYXR0ZXIob2JqZWN0W2tleV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciIpIHsKICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICJib29sZWFuIikgewogICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIGxldCBkYXRlUGFyc2UgPSBFWFBSRVNTSU9OLmRhdGUucGFyc2UodmFsdWUpOwogICAgICAgICAgaWYgKGRhdGVQYXJzZS5zdGF0dXMpCiAgICAgICAgICAgICAgcmV0dXJuIGRhdGVQYXJzZS52YWx1ZTsKICAgICAgICAgIGxldCBkdXJhdGlvblBhcnNlID0gRVhQUkVTU0lPTi5kdXJhdGlvbi5wYXJzZSh2YWx1ZSk7CiAgICAgICAgICBpZiAoZHVyYXRpb25QYXJzZS5zdGF0dXMpCiAgICAgICAgICAgICAgcmV0dXJuIGR1cmF0aW9uUGFyc2UudmFsdWU7CiAgICAgICAgICBsZXQgbGlua1BhcnNlID0gRVhQUkVTU0lPTi5lbWJlZExpbmsucGFyc2UodmFsdWUpOwogICAgICAgICAgaWYgKGxpbmtQYXJzZS5zdGF0dXMpCiAgICAgICAgICAgICAgcmV0dXJuIGxpbmtQYXJzZS52YWx1ZTsKICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICAvLyBCYWNrdXAgaWYgd2UgZG9uJ3QgdW5kZXJzdGFuZCB0aGUgdHlwZS4KICAgICAgcmV0dXJuIG51bGw7CiAgfQogIC8qKiBBZGQgYSBwYXJzZWQgaW5saW5lIGZpZWxkIHRvIHRoZSBvdXRwdXQgbWFwLiAqLwogIGZ1bmN0aW9uIGFkZFJhd0lubGluZUZpZWxkKGZpZWxkLCBvdXRwdXQpIHsKICAgICAgYWRkSW5saW5lRmllbGQoZmllbGQua2V5LCBwYXJzZUlubGluZVZhbHVlKGZpZWxkLnZhbHVlKSwgb3V0cHV0KTsKICB9CiAgLyoqIEFkZCBhIHJhdyBpbmxpbmUgZmllbGQgdG8gYW4gb3V0cHV0IG1hcCwgY2Fub25pY2FsaXppbmcgYXMgbmVlZGVkLiAqLwogIGZ1bmN0aW9uIGFkZElubGluZUZpZWxkKGtleSwgdmFsdWUsIG91dHB1dCkgewogICAgICBpZiAoIW91dHB1dC5oYXMoa2V5KSkKICAgICAgICAgIG91dHB1dC5zZXQoa2V5LCBbdmFsdWVdKTsKICAgICAgZWxzZQogICAgICAgICAgb3V0cHV0LmdldChrZXkpPy5wdXNoKHZhbHVlKTsKICB9CiAgLyoqIEdpdmVuIGEgcmF3IGxpc3Qgb2YgaW5saW5lIGZpZWxkIHZhbHVlcywgYWRkIG5vcm1hbGl6ZWQga2V5cyBhbmQgc3F1YXNoIHRoZW0uICovCiAgZnVuY3Rpb24gZmluYWxpemVJbmxpbmVGaWVsZHMoZmllbGRzKSB7CiAgICAgIC8vIENvbXB1dGUgdW5pcXVlIG5vcm1hbGl6ZWQga2V5cyAodGhhdCBkbyBub3Qgb3ZlcmxhcCB3LyB0aGUgZmllbGRzKS4KICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBuZXcgTWFwKCk7CiAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlc10gb2YgZmllbGRzLmVudHJpZXMoKSkgewogICAgICAgICAgbGV0IG5vcm1LZXkgPSBjYW5vbmljYWxpemVWYXJOYW1lKGtleSk7CiAgICAgICAgICBpZiAobm9ybUtleSA9PSAiIiB8fCBmaWVsZHMuaGFzKG5vcm1LZXkpKQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgaWYgKCFub3JtYWxpemVkLmhhcyhub3JtS2V5KSkKICAgICAgICAgICAgICBub3JtYWxpemVkLnNldChub3JtS2V5LCB2YWx1ZXMpOwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIG5vcm1hbGl6ZWQuc2V0KG5vcm1LZXksIG5vcm1hbGl6ZWQuZ2V0KG5vcm1LZXkpLmNvbmNhdCh2YWx1ZXMpKTsKICAgICAgfQogICAgICAvLyBDb21iaW5lIG5vcm1hbGl6ZWQgKyBub3JtYWwga2V5cy4KICAgICAgbGV0IGludGVyaW0gPSBuZXcgTWFwKCk7CiAgICAgIG1lcmdlRmllbGRHcm91cHMoaW50ZXJpbSwgZmllbGRzKTsKICAgICAgbWVyZ2VGaWVsZEdyb3VwcyhpbnRlcmltLCBub3JtYWxpemVkKTsKICAgICAgLy8gQW5kIHRoZW4gZmxhdHRlbiB0aGVtLgogICAgICBsZXQgcmVzdWx0ID0gbmV3IE1hcCgpOwogICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgaW50ZXJpbS5lbnRyaWVzKCkpIHsKICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMSkKICAgICAgICAgICAgICByZXN1bHQuc2V0KGtleSwgdmFsdWVbMF0pOwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCB2YWx1ZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdDsKICB9CiAgLyoqIENvcHkgYWxsIGZpZWxkcyBvZiAnc291cmNlJyBpbnRvICd0YXJnZXQnLiAqLwogIGZ1bmN0aW9uIG1lcmdlRmllbGRHcm91cHModGFyZ2V0LCBzb3VyY2UpIHsKICAgICAgZm9yIChsZXQga2V5IG9mIHNvdXJjZS5rZXlzKCkpIHsKICAgICAgICAgIGlmICghdGFyZ2V0LmhhcyhrZXkpKQogICAgICAgICAgICAgIHRhcmdldC5zZXQoa2V5LCBzb3VyY2UuZ2V0KGtleSkpOwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHRhcmdldC5zZXQoa2V5LCB0YXJnZXQuZ2V0KGtleSkuY29uY2F0KHNvdXJjZS5nZXQoa2V5KSkpOwogICAgICB9CiAgfQogIC8qKiBGaW5kIHRoZSBoZWFkZXIgdGhhdCBpcyBtb3N0IGltbWVkaWF0ZWx5IGFib3ZlIHRoZSBnaXZlbiBsaW5lIG51bWJlci4gKi8KICBmdW5jdGlvbiBmaW5kUHJldmlvdXNIZWFkZXIobGluZSwgaGVhZGVycykgewogICAgICBpZiAoaGVhZGVycy5sZW5ndGggPT0gMCkKICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICAgIGlmIChoZWFkZXJzWzBdLnBvc2l0aW9uLnN0YXJ0LmxpbmUgPiBsaW5lKQogICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgbGV0IGluZGV4ID0gaGVhZGVycy5sZW5ndGggLSAxOwogICAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBoZWFkZXJzW2luZGV4XS5wb3NpdGlvbi5zdGFydC5saW5lID4gbGluZSkKICAgICAgICAgIGluZGV4LS07CiAgICAgIHJldHVybiBoZWFkZXJzW2luZGV4XS5oZWFkaW5nOwogIH0KCiAgLyoqIEFjdHVhbCBpbXBvcnQgaW1wbGVtZW50YXRpb24gYmFja2VuZC4gVGhpcyBtdXN0IHJlbWFpbiBzZXBhcmF0ZSBmcm9tIGBpbXBvcnQtZW50cnlgIHNpbmNlIGl0IGlzIHVzZWQgd2l0aG91dCB3ZWIgd29ya2Vycy4gKi8KICBmdW5jdGlvbiBydW5JbXBvcnQocGF0aCwgY29udGVudHMsIHN0YXRzLCBtZXRhZGF0YSkgewogICAgICByZXR1cm4gcGFyc2VQYWdlKHBhdGgsIGNvbnRlbnRzLCBzdGF0cywgbWV0YWRhdGEpOwogIH0KCiAgLyoqIFNpbXBsaWZpZXMgcGFzc2luZyBkYXRhdmlldyB2YWx1ZXMgYWNyb3NzIHRoZSBKUyB3ZWIgd29ya2VyIGJhcnJpZXIuICovCiAgdmFyIFRyYW5zZmVyYWJsZTsKICAoZnVuY3Rpb24gKFRyYW5zZmVyYWJsZSkgewogICAgICAvKiogQ29udmVydCBhIGxpdGVyYWwgdmFsdWUgdG8gYSBzZXJpYWxpemVyLWZyaWVuZGx5IHRyYW5zZmVyYWJsZSB2YWx1ZS4gKi8KICAgICAgZnVuY3Rpb24gdHJhbnNmZXJhYmxlKHZhbHVlKSB7CiAgICAgICAgICAvLyBIYW5kbGUgc2ltcGxlIHVuaXZlcnNhbCB0eXBlcyBmaXJzdC4KICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1hcCkgewogICAgICAgICAgICAgIGxldCBjb3BpZWQgPSBuZXcgTWFwKCk7CiAgICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsXSBvZiB2YWx1ZS5lbnRyaWVzKCkpCiAgICAgICAgICAgICAgICAgIGNvcGllZC5zZXQodHJhbnNmZXJhYmxlKGtleSksIHRyYW5zZmVyYWJsZSh2YWwpKTsKICAgICAgICAgICAgICByZXR1cm4gY29waWVkOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpIHsKICAgICAgICAgICAgICBsZXQgY29waWVkID0gbmV3IFNldCgpOwogICAgICAgICAgICAgIGZvciAobGV0IHZhbCBvZiB2YWx1ZSkKICAgICAgICAgICAgICAgICAgY29waWVkLmFkZCh0cmFuc2ZlcmFibGUodmFsKSk7CiAgICAgICAgICAgICAgcmV0dXJuIGNvcGllZDsKICAgICAgICAgIH0KICAgICAgICAgIGxldCB3cmFwcGVkID0gVmFsdWVzLndyYXBWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICBpZiAod3JhcHBlZCA9PT0gdW5kZWZpbmVkKQogICAgICAgICAgICAgIHRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgdHJhbnNmZXJhYmxlIHZhbHVlOiAiICsgdmFsdWUpOwogICAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHsKICAgICAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlOwogICAgICAgICAgICAgIGNhc2UgImRhdGUiOgogICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgICAgIl9fX3RyYW5zZmVyLXR5cGUiOiAiZGF0ZSIsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJhbnNmZXJhYmxlKHdyYXBwZWQudmFsdWUudG9PYmplY3QoKSksCiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZTogd3JhcHBlZC52YWx1ZS56b25lLmVxdWFscyhTeXN0ZW1ab25lLmluc3RhbmNlKSA/IHVuZGVmaW5lZCA6IHdyYXBwZWQudmFsdWUuem9uZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgIl9fX3RyYW5zZmVyLXR5cGUiOiAiZHVyYXRpb24iLCB2YWx1ZTogdHJhbnNmZXJhYmxlKHdyYXBwZWQudmFsdWUudG9PYmplY3QoKSkgfTsKICAgICAgICAgICAgICBjYXNlICJhcnJheSI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm1hcCh2ID0+IHRyYW5zZmVyYWJsZSh2KSk7CiAgICAgICAgICAgICAgY2FzZSAibGluayI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB7ICJfX190cmFuc2Zlci10eXBlIjogImxpbmsiLCB2YWx1ZTogdHJhbnNmZXJhYmxlKHdyYXBwZWQudmFsdWUudG9PYmplY3QoKSkgfTsKICAgICAgICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0ge307CiAgICAgICAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh3cmFwcGVkLnZhbHVlKSkKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmZXJhYmxlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgIH0KICAgICAgfQogICAgICBUcmFuc2ZlcmFibGUudHJhbnNmZXJhYmxlID0gdHJhbnNmZXJhYmxlOwogICAgICAvKiogQ29udmVydCBhIHRyYW5zZmVyYWJsZSB2YWx1ZSBiYWNrIHRvIGEgbGl0ZXJhbCB2YWx1ZSB3ZSBjYW4gd29yayB3aXRoLiAqLwogICAgICBmdW5jdGlvbiB2YWx1ZSh0cmFuc2ZlcmFibGUpIHsKICAgICAgICAgIGlmICh0cmFuc2ZlcmFibGUgPT09IG51bGwpIHsKICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKHRyYW5zZmVyYWJsZSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKHRyYW5zZmVyYWJsZSBpbnN0YW5jZW9mIE1hcCkgewogICAgICAgICAgICAgIGxldCByZWFsID0gbmV3IE1hcCgpOwogICAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbF0gb2YgdHJhbnNmZXJhYmxlLmVudHJpZXMoKSkKICAgICAgICAgICAgICAgICAgcmVhbC5zZXQodmFsdWUoa2V5KSwgdmFsdWUodmFsKSk7CiAgICAgICAgICAgICAgcmV0dXJuIHJlYWw7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmICh0cmFuc2ZlcmFibGUgaW5zdGFuY2VvZiBTZXQpIHsKICAgICAgICAgICAgICBsZXQgcmVhbCA9IG5ldyBTZXQoKTsKICAgICAgICAgICAgICBmb3IgKGxldCB2YWwgb2YgdHJhbnNmZXJhYmxlKQogICAgICAgICAgICAgICAgICByZWFsLmFkZCh2YWx1ZSh2YWwpKTsKICAgICAgICAgICAgICByZXR1cm4gcmVhbDsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodHJhbnNmZXJhYmxlKSkgewogICAgICAgICAgICAgIHJldHVybiB0cmFuc2ZlcmFibGUubWFwKHYgPT4gdmFsdWUodikpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHRyYW5zZmVyYWJsZSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICBpZiAoIl9fX3RyYW5zZmVyLXR5cGUiIGluIHRyYW5zZmVyYWJsZSkgewogICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRyYW5zZmVyYWJsZVsiX19fdHJhbnNmZXItdHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJkYXRlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0ZU9wdHMgPSB2YWx1ZSh0cmFuc2ZlcmFibGUub3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGVEYXRhID0gdmFsdWUodHJhbnNmZXJhYmxlLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbU9iamVjdChkYXRlRGF0YSwgeyB6b25lOiBkYXRlT3B0cy56b25lIH0pOwogICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZHVyYXRpb24iOgogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHZhbHVlKHRyYW5zZmVyYWJsZS52YWx1ZSkpOwogICAgICAgICAgICAgICAgICAgICAgY2FzZSAibGluayI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExpbmsuZnJvbU9iamVjdCh2YWx1ZSh0cmFuc2ZlcmFibGUudmFsdWUpKTsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYFVucmVjb2duaXplZCB0cmFuc2ZlciB0eXBlICcke3RyYW5zZmVyYWJsZVsiX19fdHJhbnNmZXItdHlwZSJdfSdgKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0ge307CiAgICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyh0cmFuc2ZlcmFibGUpKQogICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlKHZhbCk7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cmFuc2ZlcmFibGU7CiAgICAgIH0KICAgICAgVHJhbnNmZXJhYmxlLnZhbHVlID0gdmFsdWU7CiAgfSkoVHJhbnNmZXJhYmxlIHx8IChUcmFuc2ZlcmFibGUgPSB7fSkpOwoKICAvKiogRW50cnktcG9pbnQgc2NyaXB0IHVzZWQgYnkgdGhlIGluZGV4IGFzIGEgd2ViIHdvcmtlci4gKi8KICAvKiogQW4gaW1wb3J0IHdoaWNoIGNhbiBmYWlsIGFuZCByYWlzZSBhbiBleGNlcHRpb24sIHdoaWNoIHdpbGwgYmUgY2F1Z2h0IGJ5IHRoZSBoYW5kbGVyLiAqLwogIGZ1bmN0aW9uIGZhaWxhYmxlSW1wb3J0KHBhdGgsIGNvbnRlbnRzLCBzdGF0LCBtZXRhZGF0YSkgewogICAgICBpZiAobWV0YWRhdGEgPT09IHVuZGVmaW5lZCB8fCBtZXRhZGF0YSA9PT0gbnVsbCkgewogICAgICAgICAgdGhyb3cgRXJyb3IoYENhbm5vdCBpbmRleCBmaWxlLCBzaW5jZSBpdCBoYXMgbm8gT2JzaWRpYW4gZmlsZSBtZXRhZGF0YS5gKTsKICAgICAgfQogICAgICByZXR1cm4gcnVuSW1wb3J0KHBhdGgsIGNvbnRlbnRzLCBzdGF0LCBtZXRhZGF0YSk7CiAgfQogIG9ubWVzc2FnZSA9IGFzeW5jIChldnQpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICAgIGxldCB7IHBhdGgsIGNvbnRlbnRzLCBzdGF0LCBtZXRhZGF0YSB9ID0gZXZ0LmRhdGE7CiAgICAgICAgICBsZXQgcmVzdWx0ID0gZmFpbGFibGVJbXBvcnQocGF0aCwgY29udGVudHMsIHN0YXQsIG1ldGFkYXRhKTsKICAgICAgICAgIHBvc3RNZXNzYWdlKHsgcGF0aDogZXZ0LmRhdGEucGF0aCwgcmVzdWx0OiBUcmFuc2ZlcmFibGUudHJhbnNmZXJhYmxlKHJlc3VsdCkgfSk7CiAgICAgIH0KICAgICAgY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7CiAgICAgICAgICBwb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgcGF0aDogZXZ0LmRhdGEucGF0aCwKICAgICAgICAgICAgICByZXN1bHQ6IHsKICAgICAgICAgICAgICAgICAgJGVycm9yOiBgRmFpbGVkIHRvIGluZGV4IGZpbGU6ICR7ZXZ0LmRhdGEucGF0aH06ICR7ZXJyb3J9YCwKICAgICAgICAgICAgICB9LAogICAgICAgICAgfSk7CiAgICAgIH0KICB9OwoKfSkoKTsKCg==', null, false); /* eslint-enable */ /** Controls and creates Dataview file importers, allowing for asynchronous loading and parsing of files. */ @@ -13415,7 +13527,7 @@ function cyrb53(str, seed = 0) { /** Default function implementations for the expression evaluator. */ /** * Allows for the creation of functions that check the number and type of their arguments, and dispatch - * to different implemenations based on the types of the inputs. + * to different implementations based on the types of the inputs. */ class FunctionBuilder { name; @@ -13824,7 +13936,7 @@ var DefaultFunctions; .add2("*", "*", (elem1, elem2, context) => context.evaluate(Fields.binaryOp(Fields.literal(elem1), "=", Fields.literal(elem2))).orElseThrow()) .vectorize(2, [1]) .build(); - // Case insensitive contains which looks for exact word matches (i.e., boundry-to-boundry match). + // Case insensitive contains which looks for exact word matches (i.e., boundary-to-boundary match). DefaultFunctions.containsword = new FunctionBuilder("containsword") .add2("string", "string", (hay, needle) => !!hay.match(new RegExp(".*\\b" + escapeRegex(needle) + "\\b.*", "i"))) .add2("null", "*", (_a, _b) => null) @@ -14018,6 +14130,25 @@ var DefaultFunctions; DefaultFunctions.ldefault = new FunctionBuilder("ldefault") .add2("*", "*", (v, bk) => (Values.isNull(v) ? bk : v)) .build(); + // Returns the display name of the element. + DefaultFunctions.display = new FunctionBuilder("display") + .add1("null", () => "") + .add1("array", (a, ctx) => { + return a.map(e => DefaultFunctions.display(ctx, e)).join(", "); + }) + .add1("string", (str) => normalizeMarkdown(str)) + .add1("link", (a, ctx) => { + if (a.display) { + return DefaultFunctions.display(ctx, a.display); + } + else { + return Values.toString(a, ctx.settings).replace(/\[\[.*\|(.*)\]\]/, "$1"); + } + }) + .add1("*", (a, ctx) => { + return Values.toString(a, ctx.settings); + }) + .build(); DefaultFunctions.choice = new FunctionBuilder("choice") .add3("*", "*", "*", (b, left, right) => (Values.isTruthy(b) ? left : right)) .vectorize(3, [0]) @@ -14157,6 +14288,15 @@ var DefaultFunctions; }) .add1("null", () => null) .build(); + // Returns the first non-null value from the array as a single element + DefaultFunctions.firstvalue = new FunctionBuilder("firstvalue") + .add1("array", a => { + let nonnull = a.filter(v => Values.typeOf(v) != "null"); + let res = nonnull.length != 0 ? nonnull[0] : null; + return res; + }) + .add1("null", () => null) + .build(); })(DefaultFunctions || (DefaultFunctions = {})); /** Default function implementations for the expression evaluator. */ // Keep functions in same order as they're documented !! @@ -14195,6 +14335,7 @@ const DEFAULT_FUNCTIONS = { reverse: DefaultFunctions.reverse, length: DefaultFunctions.length, nonnull: DefaultFunctions.nonnull, + firstvalue: DefaultFunctions.firstvalue, all: DefaultFunctions.all, any: DefaultFunctions.any, none: DefaultFunctions.none, @@ -14222,6 +14363,7 @@ const DEFAULT_FUNCTIONS = { // Utility Operations default: DefaultFunctions.fdefault, ldefault: DefaultFunctions.ldefault, + display: DefaultFunctions.display, choice: DefaultFunctions.choice, striptime: DefaultFunctions.striptime, dateformat: DefaultFunctions.dateformat, @@ -15250,7 +15392,7 @@ function ErrorMessage({ message }) { y$1("p", { class: "dataview dataview-error-message" }, message))); } /** - * Complex convienence hook which calls `compute` every time the index updates, updating the current state. + * Complex convenience hook which calls `compute` every time the index updates, updating the current state. */ function useIndexBackedState(container, app, settings, index, initial, compute) { let [initialized, setInitialized] = h(false); @@ -15418,7 +15560,7 @@ function TaskGrouping({ items, sourcePath }) { function TaskView({ query, sourcePath }) { let context = q$1(DataviewContext); let items = useIndexBackedState(context.container, context.app, context.settings, context.index, { state: "loading" }, async () => { - let result = await asyncTryOrPropogate(() => executeTask(query, sourcePath, context.index, context.settings)); + let result = await asyncTryOrPropagate(() => executeTask(query, sourcePath, context.index, context.settings)); if (!result.successful) return { state: "error", error: result.error, sourcePath }; else @@ -15570,7 +15712,7 @@ function ListGrouping({ items, sourcePath }) { function ListView({ query, sourcePath }) { let context = q$1(DataviewContext); let items = useIndexBackedState(context.container, context.app, context.settings, context.index, { state: "loading" }, async () => { - let result = await asyncTryOrPropogate(() => executeList(query, context.index, sourcePath, context.settings)); + let result = await asyncTryOrPropagate(() => executeList(query, context.index, sourcePath, context.settings)); if (!result.successful) return { state: "error", error: result.error, sourcePath }; return { state: "ready", items: result.value.data }; @@ -15618,7 +15760,7 @@ function TableGrouping({ headings, values, sourcePath, }) { function TableView({ query, sourcePath }) { let context = q$1(DataviewContext); let items = useIndexBackedState(context.container, context.app, context.settings, context.index, { state: "loading" }, async () => { - let result = await asyncTryOrPropogate(() => executeTable(query, context.index, sourcePath, context.settings)); + let result = await asyncTryOrPropagate(() => executeTable(query, context.index, sourcePath, context.settings)); if (!result.successful) return { state: "error", error: result.error }; return { state: "ready", headings: result.value.names, values: result.value.data }; @@ -18497,7 +18639,7 @@ class DataviewCalendarRenderer extends DataviewRefreshableRenderer { } async render() { this.container.innerHTML = ""; - let maybeResult = await asyncTryOrPropogate(() => executeCalendar(this.query, this.index, this.origin, this.settings)); + let maybeResult = await asyncTryOrPropagate(() => executeCalendar(this.query, this.index, this.origin, this.settings)); if (!maybeResult.successful) { renderErrorPre(this.container, "Dataview: " + maybeResult.error); return; @@ -18694,7 +18836,7 @@ class DataviewInlineApi { * Note that `this` is implicitly available and refers to the current file. * * This method returns a Result type instead of throwing an error; you can check the result of the - * execution via `result.successful` and obtain `result.value` or `result.error` resultingly. If + * execution via `result.successful` and obtain `result.value` or `result.error` accordingly. If * you'd rather this method throw on an error, use `dv.tryEvaluate`. */ evaluate(expression, context) { @@ -18725,7 +18867,7 @@ class DataviewInlineApi { array(raw) { return this.api.array(raw); } - /** Return true if theg given value is a javascript array OR a dataview data array. */ + /** Return true if the given value is a javascript array OR a dataview data array. */ isArray(raw) { return this.api.isArray(raw); } @@ -18996,7 +19138,7 @@ function markdownTable(headers, values, settings) { let table = `| ${headers.map((v, i) => padright(escapeTable(v), " ", maxLengths[i])).join(" | ")} |\n`; // Then the separating column. table += `| ${maxLengths.map(i => padright("", "-", i)).join(" | ")} |\n`; - // Then the data colunns. + // Then the data columns. for (let row = 0; row < values.length; row++) { table += `| ${mvalues[row].map((v, i) => padright(v, " ", maxLengths[i])).join(" | ")} |\n`; } @@ -19164,7 +19306,7 @@ class DataviewApi { this.func = Functions.bindAll(DEFAULT_FUNCTIONS, this.evaluationContext); this.io = new DataviewIOApi(this); } - /** Utilities to check the current Dataview version and comapre it to SemVer version ranges. */ + /** Utilities to check the current Dataview version and compare it to SemVer version ranges. */ version = (() => { const self = this; return { @@ -19384,7 +19526,7 @@ class DataviewApi { * ``` * * This method returns a Result type instead of throwing an error; you can check the result of the - * execution via `result.successful` and obtain `result.value` or `result.error` resultingly. If + * execution via `result.successful` and obtain `result.value` or `result.error` accordingly. If * you'd rather this method throw on an error, use `dv.tryEvaluate`. */ evaluate(expression, context, originFile) { @@ -19423,7 +19565,7 @@ class DataviewApi { renderCodeBlock(container, source); return; } - let maybeQuery = tryOrPropogate(() => parseQuery(source)); + let maybeQuery = tryOrPropagate(() => parseQuery(source)); // In case of parse error, just render the error. if (!maybeQuery.successful) { renderErrorPre(container, "Dataview: " + maybeQuery.error); @@ -19561,7 +19703,7 @@ class DataviewInlineRenderer extends DataviewRefreshableRenderer { } async render() { this.errorbox?.remove(); - let result = tryOrPropogate(() => executeInline(this.field, this.origin, this.index, this.settings)); + let result = tryOrPropagate(() => executeInline(this.field, this.origin, this.index, this.settings)); if (!result.successful) { this.errorbox = this.container.createEl("div"); renderErrorPre(this.errorbox, "Dataview (for inline query '" + this.fieldText + "'): " + result.error); @@ -19607,7 +19749,11 @@ async function replaceInlineFields(ctx, init) { else { renderContainer.createSpan({ cls: ["dataview", "inline-field-standalone-value"], - attr: { id: "dataview-inline-field-" + x }, + attr: { + id: "dataview-inline-field-" + x, + "data-dv-key": field.key, + "data-dv-norm-key": canonicalizeVarName(field.key), + }, }); } result = result.slice(0, field.start) + renderContainer.outerHTML + result.slice(field.end); @@ -19929,14 +20075,14 @@ function inlinePlugin(app, index, settings, api) { if (text.startsWith(settings.inlineQueryPrefix)) { if (settings.enableInlineDataview) { code = text.substring(settings.inlineQueryPrefix.length).trim(); - const field = tryOrPropogate(() => parseField(code)); + const field = tryOrPropagate(() => parseField(code)); if (!field.successful) { result = `Dataview (inline field '${code}'): ${field.error}`; el.innerText = result; } else { const fieldValue = field.value; - const intermediateResult = tryOrPropogate(() => executeInline(fieldValue, currentFile.path, index, settings)); + const intermediateResult = tryOrPropagate(() => executeInline(fieldValue, currentFile.path, index, settings)); if (!intermediateResult.successful) { result = `Dataview (for inline query '${fieldValue}'): ${intermediateResult.error}`; el.innerText = result; @@ -20043,7 +20189,7 @@ function buildInlineFields(state$1) { const inlineFieldsField = state.StateField.define({ create: buildInlineFields, update(oldFields, tr) { - return tr.docChanged ? buildInlineFields(tr.state) : oldFields; + return buildInlineFields(tr.state); }, }); /** Create a view plugin that renders inline fields in live preview just as in the reading view. */ @@ -20091,10 +20237,7 @@ const replaceInlineFieldsInLivePreview = (app, settings) => view.ViewPlugin.from this.decorations = this.decorations.map(update.changes); this.updateDecorations(update.view); } - else if (update.selectionSet) { - this.updateDecorations(update.view); - } - else if (update.viewportChanged || layoutChanged) { + else if (update.selectionSet || update.viewportChanged || layoutChanged) { this.decorations = this.buildDecorations(update.view); } } @@ -20188,6 +20331,10 @@ class InlineFieldWidget extends view.WidgetType { renderCompactMarkdown(this.app, this.field.key, key, this.sourcePath, this.component, true); const value = renderContainer.createSpan({ cls: ["dataview", "inline-field-value"], + attr: { + "data-dv-key": this.field.key, + "data-dv-norm-key": canonicalizeVarName(this.field.key), + }, }); renderValue(this.app, parseInlineValue(this.field.value), value, this.sourcePath, this.component, this.settings, false, undefined, undefined, true); this.addKeyClickHandler(key, renderContainer); @@ -20196,6 +20343,10 @@ class InlineFieldWidget extends view.WidgetType { else { const value = renderContainer.createSpan({ cls: ["dataview", "inline-field-standalone-value"], + attr: { + "data-dv-key": this.field.key, + "data-dv-norm-key": canonicalizeVarName(this.field.key), + }, }); renderValue(this.app, parseInlineValue(this.field.value), value, this.sourcePath, this.component, this.settings, false, undefined, undefined, true); this.addValueClickHandler(value, renderContainer); @@ -20409,7 +20560,7 @@ class DataviewPlugin extends obsidian.Plugin { let potentialField = text.substring(this.settings.inlineQueryPrefix.length).trim(); if (potentialField.length == 0) continue; - let field = tryOrPropogate(() => parseField(potentialField)); + let field = tryOrPropagate(() => parseField(potentialField)); if (!field.successful) { let errorBlock = el.createEl("div"); renderErrorPre(errorBlock, `Dataview (inline field '${potentialField}'): ${field.error}`); diff --git a/.obsidian/plugins/dataview/manifest.json b/.obsidian/plugins/dataview/manifest.json index 95b8152..926b2a6 100644 --- a/.obsidian/plugins/dataview/manifest.json +++ b/.obsidian/plugins/dataview/manifest.json @@ -1,7 +1,7 @@ { "id": "dataview", "name": "Dataview", - "version": "0.5.67", + "version": "0.5.68", "minAppVersion": "0.13.11", "description": "Complex data views for the data-obsessed.", "author": "Michael Brenan ", diff --git a/.obsidian/plugins/dataview/styles.css b/.obsidian/plugins/dataview/styles.css index e884570..618821a 100644 --- a/.obsidian/plugins/dataview/styles.css +++ b/.obsidian/plugins/dataview/styles.css @@ -1,8 +1,3 @@ -/** Live Preview padding fixes, specifically for DataviewJS custom HTML elements. */ -.is-live-preview .block-language-dataviewjs > p, .is-live-preview .block-language-dataviewjs > span { - line-height: 1.0; -} - .block-language-dataview { overflow-y: auto; } @@ -74,7 +69,7 @@ padding-right: 8px; font-family: var(--font-monospace); background-color: var(--background-primary-alt); - color: var(--text-nav-selected); + color: var(--nav-item-color-selected); } .dataview.inline-field-value { @@ -82,7 +77,7 @@ padding-right: 8px; font-family: var(--font-monospace); background-color: var(--background-secondary-alt); - color: var(--text-nav-selected); + color: var(--nav-item-color-selected); } .dataview.inline-field-standalone-value { @@ -90,7 +85,7 @@ padding-right: 8px; font-family: var(--font-monospace); background-color: var(--background-secondary-alt); - color: var(--text-nav-selected); + color: var(--nav-item-color-selected); } /***************/ diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js index 1c88304..7140b16 100644 --- a/.obsidian/plugins/obsidian-git/main.js +++ b/.obsidian/plugins/obsidian-git/main.js @@ -3,32 +3,32 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source visit the plugins github repository (https://github.com/denolehov/obsidian-git) */ -var UP=Object.create;var Oo=Object.defineProperty;var GP=Object.getOwnPropertyDescriptor;var zP=Object.getOwnPropertyNames;var VP=Object.getPrototypeOf,WP=Object.prototype.hasOwnProperty;var Bv=e=>{throw TypeError(e)};var qP=(e,t,r)=>t in e?Oo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var YP=(e,t)=>()=>(e&&(t=e(e=0)),t);var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),XP=(e,t)=>{for(var r in t)Oo(e,r,{get:t[r],enumerable:!0})},Hv=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of zP(t))!WP.call(e,i)&&i!==r&&Oo(e,i,{get:()=>t[i],enumerable:!(n=GP(t,i))||n.enumerable});return e};var ze=(e,t,r)=>(r=e!=null?UP(VP(e)):{},Hv(t||!e||!e.__esModule?Oo(r,"default",{value:e,enumerable:!0}):r,e)),ZP=e=>Hv(Oo({},"__esModule",{value:!0}),e);var Tr=(e,t,r)=>qP(e,typeof t!="symbol"?t+"":t,r),Uv=(e,t,r)=>t.has(e)||Bv("Cannot "+r);var Bt=(e,t,r)=>(Uv(e,t,"read from private field"),r?r.call(e):t.get(e)),Rc=(e,t,r)=>t.has(e)?Bv("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Mc=(e,t,r,n)=>(Uv(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var Vv=I(Oc=>{"use strict";g();Oc.byteLength=JP;Oc.toByteArray=eR;Oc.fromByteArray=nR;var fn=[],Cr=[],KP=typeof Uint8Array!="undefined"?Uint8Array:Array,eh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Xi=0,Gv=eh.length;Xi0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var n=r===t?0:4-r%4;return[r,n]}function JP(e){var t=zv(e),r=t[0],n=t[1];return(r+n)*3/4-n}function QP(e,t,r){return(t+r)*3/4-r}function eR(e){var t,r=zv(e),n=r[0],i=r[1],a=new KP(QP(e,n,i)),s=0,o=i>0?n-4:n,c;for(c=0;c>16&255,a[s++]=t>>8&255,a[s++]=t&255;return i===2&&(t=Cr[e.charCodeAt(c)]<<2|Cr[e.charCodeAt(c+1)]>>4,a[s++]=t&255),i===1&&(t=Cr[e.charCodeAt(c)]<<10|Cr[e.charCodeAt(c+1)]<<4|Cr[e.charCodeAt(c+2)]>>2,a[s++]=t>>8&255,a[s++]=t&255),a}function tR(e){return fn[e>>18&63]+fn[e>>12&63]+fn[e>>6&63]+fn[e&63]}function rR(e,t,r){for(var n,i=[],a=t;ao?o:s+a));return n===1?(t=e[r-1],i.push(fn[t>>2]+fn[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],i.push(fn[t>>10]+fn[t>>4&63]+fn[t<<2&63]+"=")),i.join("")}});var Wv=I(th=>{g();th.read=function(e,t,r,n,i){var a,s,o=i*8-n-1,c=(1<>1,u=-7,f=r?i-1:0,d=r?-1:1,h=e[t+f];for(f+=d,a=h&(1<<-u)-1,h>>=-u,u+=o;u>0;a=a*256+e[t+f],f+=d,u-=8);for(s=a&(1<<-u)-1,a>>=-u,u+=n;u>0;s=s*256+e[t+f],f+=d,u-=8);if(a===0)a=1-l;else{if(a===c)return s?NaN:(h?-1:1)*(1/0);s=s+Math.pow(2,n),a=a-l}return(h?-1:1)*s*Math.pow(2,a-n)};th.write=function(e,t,r,n,i,a){var s,o,c,l=a*8-i-1,u=(1<>1,d=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,p=n?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,s=u):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),s+f>=1?t+=d/c:t+=d*Math.pow(2,1-f),t*c>=2&&(s++,c/=2),s+f>=u?(o=0,s=u):s+f>=1?(o=(t*c-1)*Math.pow(2,i),s=s+f):(o=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[r+h]=o&255,h+=p,o/=256,i-=8);for(s=s<0;e[r+h]=s&255,h+=p,s/=256,l-=8);e[r+h-p]|=m*128}});var uh=I(Ka=>{"use strict";g();var rh=Vv(),Xa=Wv(),qv=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ka.Buffer=M;Ka.SlowBuffer=cR;Ka.INSPECT_MAX_BYTES=50;var Ic=2147483647;Ka.kMaxLength=Ic;M.TYPED_ARRAY_SUPPORT=iR();!M.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function iR(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch(e){return!1}}Object.defineProperty(M.prototype,"parent",{enumerable:!0,get:function(){if(M.isBuffer(this))return this.buffer}});Object.defineProperty(M.prototype,"offset",{enumerable:!0,get:function(){if(M.isBuffer(this))return this.byteOffset}});function Ln(e){if(e>Ic)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,M.prototype),t}function M(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return sh(e)}return Kv(e,t,r)}M.poolSize=8192;function Kv(e,t,r){if(typeof e=="string")return sR(e,t);if(ArrayBuffer.isView(e))return oR(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(dn(e,ArrayBuffer)||e&&dn(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(dn(e,SharedArrayBuffer)||e&&dn(e.buffer,SharedArrayBuffer)))return ih(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return M.from(n,t,r);let i=lR(e);if(i)return i;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return M.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}M.from=function(e,t,r){return Kv(e,t,r)};Object.setPrototypeOf(M.prototype,Uint8Array.prototype);Object.setPrototypeOf(M,Uint8Array);function Jv(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function aR(e,t,r){return Jv(e),e<=0?Ln(e):t!==void 0?typeof r=="string"?Ln(e).fill(t,r):Ln(e).fill(t):Ln(e)}M.alloc=function(e,t,r){return aR(e,t,r)};function sh(e){return Jv(e),Ln(e<0?0:oh(e)|0)}M.allocUnsafe=function(e){return sh(e)};M.allocUnsafeSlow=function(e){return sh(e)};function sR(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!M.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=Qv(e,t)|0,n=Ln(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function nh(e){let t=e.length<0?0:oh(e.length)|0,r=Ln(t);for(let n=0;n=Ic)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Ic.toString(16)+" bytes");return e|0}function cR(e){return+e!=e&&(e=0),M.alloc(+e)}M.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==M.prototype};M.compare=function(t,r){if(dn(t,Uint8Array)&&(t=M.from(t,t.offset,t.byteLength)),dn(r,Uint8Array)&&(r=M.from(r,r.offset,r.byteLength)),!M.isBuffer(t)||!M.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===r)return 0;let n=t.length,i=r.length;for(let a=0,s=Math.min(n,i);ai.length?(M.isBuffer(s)||(s=M.from(s)),s.copy(i,a)):Uint8Array.prototype.set.call(i,s,a);else if(M.isBuffer(s))s.copy(i,a);else throw new TypeError('"list" argument must be an Array of Buffers');a+=s.length}return i};function Qv(e,t){if(M.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||dn(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return ah(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return l1(e).length;default:if(i)return n?-1:ah(e).length;t=(""+t).toLowerCase(),i=!0}}M.byteLength=Qv;function uR(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return bR(this,t,r);case"utf8":case"utf-8":return t1(this,t,r);case"ascii":return yR(this,t,r);case"latin1":case"binary":return wR(this,t,r);case"base64":return gR(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _R(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}M.prototype._isBuffer=!0;function Zi(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}M.prototype.swap16=function(){let t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let r=0;rr&&(t+=" ... "),""};qv&&(M.prototype[qv]=M.prototype.inspect);M.prototype.compare=function(t,r,n,i,a){if(dn(t,Uint8Array)&&(t=M.from(t,t.offset,t.byteLength)),!M.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;let s=a-i,o=n-r,c=Math.min(s,o),l=this.slice(i,a),u=t.slice(r,n);for(let f=0;f2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,ch(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=M.from(t,n)),M.isBuffer(t))return t.length===0?-1:Yv(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):Yv(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Yv(e,t,r,n,i){let a=1,s=e.length,o=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,s/=2,o/=2,r/=2}function c(u,f){return a===1?u[f]:u.readUInt16BE(f*a)}let l;if(i){let u=-1;for(l=r;ls&&(r=s-o),l=r;l>=0;l--){let u=!0;for(let f=0;fi&&(n=i)):n=i;let a=t.length;n>a/2&&(n=a/2);let s;for(s=0;s>>0,isFinite(n)?(n=n>>>0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let a=this.length-r;if((n===void 0||n>a)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let s=!1;for(;;)switch(i){case"hex":return fR(this,t,r,n);case"utf8":case"utf-8":return dR(this,t,r,n);case"ascii":case"latin1":case"binary":return hR(this,t,r,n);case"base64":return pR(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return mR(this,t,r,n);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}};M.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function gR(e,t,r){return t===0&&r===e.length?rh.fromByteArray(e):rh.fromByteArray(e.slice(t,r))}function t1(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:a>223?3:a>191?2:1;if(i+o<=r){let c,l,u,f;switch(o){case 1:a<128&&(s=a);break;case 2:c=e[i+1],(c&192)===128&&(f=(a&31)<<6|c&63,f>127&&(s=f));break;case 3:c=e[i+1],l=e[i+2],(c&192)===128&&(l&192)===128&&(f=(a&15)<<12|(c&63)<<6|l&63,f>2047&&(f<55296||f>57343)&&(s=f));break;case 4:c=e[i+1],l=e[i+2],u=e[i+3],(c&192)===128&&(l&192)===128&&(u&192)===128&&(f=(a&15)<<18|(c&63)<<12|(l&63)<<6|u&63,f>65535&&f<1114112&&(s=f))}}s===null?(s=65533,o=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=o}return vR(n)}var Xv=4096;function vR(e){let t=e.length;if(t<=Xv)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let a=t;an&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),rr)throw new RangeError("Trying to access beyond buffer length")}M.prototype.readUintLE=M.prototype.readUIntLE=function(t,r,n){t=t>>>0,r=r>>>0,n||yt(t,r,this.length);let i=this[t],a=1,s=0;for(;++s>>0,r=r>>>0,n||yt(t,r,this.length);let i=this[t+--r],a=1;for(;r>0&&(a*=256);)i+=this[t+--r]*a;return i};M.prototype.readUint8=M.prototype.readUInt8=function(t,r){return t=t>>>0,r||yt(t,1,this.length),this[t]};M.prototype.readUint16LE=M.prototype.readUInt16LE=function(t,r){return t=t>>>0,r||yt(t,2,this.length),this[t]|this[t+1]<<8};M.prototype.readUint16BE=M.prototype.readUInt16BE=function(t,r){return t=t>>>0,r||yt(t,2,this.length),this[t]<<8|this[t+1]};M.prototype.readUint32LE=M.prototype.readUInt32LE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};M.prototype.readUint32BE=M.prototype.readUInt32BE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};M.prototype.readBigUInt64LE=ui(function(t){t=t>>>0,Za(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&Io(t,this.length-8);let i=r+this[++t]*2**8+this[++t]*2**16+this[++t]*2**24,a=this[++t]+this[++t]*2**8+this[++t]*2**16+n*2**24;return BigInt(i)+(BigInt(a)<>>0,Za(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&Io(t,this.length-8);let i=r*2**24+this[++t]*2**16+this[++t]*2**8+this[++t],a=this[++t]*2**24+this[++t]*2**16+this[++t]*2**8+n;return(BigInt(i)<>>0,r=r>>>0,n||yt(t,r,this.length);let i=this[t],a=1,s=0;for(;++s=a&&(i-=Math.pow(2,8*r)),i};M.prototype.readIntBE=function(t,r,n){t=t>>>0,r=r>>>0,n||yt(t,r,this.length);let i=r,a=1,s=this[t+--i];for(;i>0&&(a*=256);)s+=this[t+--i]*a;return a*=128,s>=a&&(s-=Math.pow(2,8*r)),s};M.prototype.readInt8=function(t,r){return t=t>>>0,r||yt(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]};M.prototype.readInt16LE=function(t,r){t=t>>>0,r||yt(t,2,this.length);let n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n};M.prototype.readInt16BE=function(t,r){t=t>>>0,r||yt(t,2,this.length);let n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n};M.prototype.readInt32LE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};M.prototype.readInt32BE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};M.prototype.readBigInt64LE=ui(function(t){t=t>>>0,Za(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&Io(t,this.length-8);let i=this[t+4]+this[t+5]*2**8+this[t+6]*2**16+(n<<24);return(BigInt(i)<>>0,Za(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&Io(t,this.length-8);let i=(r<<24)+this[++t]*2**16+this[++t]*2**8+this[++t];return(BigInt(i)<>>0,r||yt(t,4,this.length),Xa.read(this,t,!0,23,4)};M.prototype.readFloatBE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),Xa.read(this,t,!1,23,4)};M.prototype.readDoubleLE=function(t,r){return t=t>>>0,r||yt(t,8,this.length),Xa.read(this,t,!0,52,8)};M.prototype.readDoubleBE=function(t,r){return t=t>>>0,r||yt(t,8,this.length),Xa.read(this,t,!1,52,8)};function Kt(e,t,r,n,i,a){if(!M.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}M.prototype.writeUintLE=M.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r>>>0,n=n>>>0,!i){let o=Math.pow(2,8*n)-1;Kt(this,t,r,n,o,0)}let a=1,s=0;for(this[r]=t&255;++s>>0,n=n>>>0,!i){let o=Math.pow(2,8*n)-1;Kt(this,t,r,n,o,0)}let a=n-1,s=1;for(this[r+a]=t&255;--a>=0&&(s*=256);)this[r+a]=t/s&255;return r+n};M.prototype.writeUint8=M.prototype.writeUInt8=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,1,255,0),this[r]=t&255,r+1};M.prototype.writeUint16LE=M.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,2,65535,0),this[r]=t&255,this[r+1]=t>>>8,r+2};M.prototype.writeUint16BE=M.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,2,65535,0),this[r]=t>>>8,this[r+1]=t&255,r+2};M.prototype.writeUint32LE=M.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,4,4294967295,0),this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255,r+4};M.prototype.writeUint32BE=M.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,4,4294967295,0),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255,r+4};function r1(e,t,r,n,i){o1(t,n,i,e,r,7);let a=Number(t&BigInt(4294967295));e[r++]=a,a=a>>8,e[r++]=a,a=a>>8,e[r++]=a,a=a>>8,e[r++]=a;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function n1(e,t,r,n,i){o1(t,n,i,e,r,7);let a=Number(t&BigInt(4294967295));e[r+7]=a,a=a>>8,e[r+6]=a,a=a>>8,e[r+5]=a,a=a>>8,e[r+4]=a;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}M.prototype.writeBigUInt64LE=ui(function(t,r=0){return r1(this,t,r,BigInt(0),BigInt("0xffffffffffffffff"))});M.prototype.writeBigUInt64BE=ui(function(t,r=0){return n1(this,t,r,BigInt(0),BigInt("0xffffffffffffffff"))});M.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r>>>0,!i){let c=Math.pow(2,8*n-1);Kt(this,t,r,n,c-1,-c)}let a=0,s=1,o=0;for(this[r]=t&255;++a>0)-o&255;return r+n};M.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r>>>0,!i){let c=Math.pow(2,8*n-1);Kt(this,t,r,n,c-1,-c)}let a=n-1,s=1,o=0;for(this[r+a]=t&255;--a>=0&&(s*=256);)t<0&&o===0&&this[r+a+1]!==0&&(o=1),this[r+a]=(t/s>>0)-o&255;return r+n};M.prototype.writeInt8=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,1,127,-128),t<0&&(t=255+t+1),this[r]=t&255,r+1};M.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,2,32767,-32768),this[r]=t&255,this[r+1]=t>>>8,r+2};M.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,2,32767,-32768),this[r]=t>>>8,this[r+1]=t&255,r+2};M.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,4,2147483647,-2147483648),this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24,r+4};M.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255,r+4};M.prototype.writeBigInt64LE=ui(function(t,r=0){return r1(this,t,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});M.prototype.writeBigInt64BE=ui(function(t,r=0){return n1(this,t,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function i1(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function a1(e,t,r,n,i){return t=+t,r=r>>>0,i||i1(e,t,r,4,34028234663852886e22,-34028234663852886e22),Xa.write(e,t,r,n,23,4),r+4}M.prototype.writeFloatLE=function(t,r,n){return a1(this,t,r,!0,n)};M.prototype.writeFloatBE=function(t,r,n){return a1(this,t,r,!1,n)};function s1(e,t,r,n,i){return t=+t,r=r>>>0,i||i1(e,t,r,8,17976931348623157e292,-17976931348623157e292),Xa.write(e,t,r,n,52,8),r+8}M.prototype.writeDoubleLE=function(t,r,n){return s1(this,t,r,!0,n)};M.prototype.writeDoubleBE=function(t,r,n){return s1(this,t,r,!1,n)};M.prototype.copy=function(t,r,n,i){if(!M.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r>>0,n=n===void 0?this.length:n>>>0,t||(t=0);let a;if(typeof t=="number")for(a=r;a2**32?i=Zv(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=Zv(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function Zv(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function xR(e,t,r){Za(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&Io(t,e.length-(r+1))}function o1(e,t,r,n,i,a){if(e>r||e3?t===0||t===BigInt(0)?o=`>= 0${s} and < 2${s} ** ${(a+1)*8}${s}`:o=`>= -(2${s} ** ${(a+1)*8-1}${s}) and < 2 ** ${(a+1)*8-1}${s}`:o=`>= ${t}${s} and <= ${r}${s}`,new Ya.ERR_OUT_OF_RANGE("value",o,e)}xR(n,i,a)}function Za(e,t){if(typeof e!="number")throw new Ya.ERR_INVALID_ARG_TYPE(t,"number",e)}function Io(e,t,r){throw Math.floor(e)!==e?(Za(e,r),new Ya.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Ya.ERR_BUFFER_OUT_OF_BOUNDS:new Ya.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var SR=/[^+/0-9A-Za-z-_]/g;function ER(e){if(e=e.split("=")[0],e=e.trim().replace(SR,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function ah(e,t){t=t||1/0;let r,n=e.length,i=null,a=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function AR(e){let t=[];for(let r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function l1(e){return rh.toByteArray(ER(e))}function Fc(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function dn(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function ch(e){return e!==e}var TR=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function ui(e){return typeof BigInt=="undefined"?CR:e}function CR(){throw new Error("BigInt not supported")}});var c1,fh,Buffer,g=YP(()=>{c1=require("obsidian");c1.Platform.isMobileApp?fh=uh().Buffer:fh=global.Buffer;Buffer=fh});var f1=I((XH,u1)=>{"use strict";g();var fr=function(e){if(e=e||{},this.Promise=e.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=e.domainReentrant||!1,this.domainReentrant){if(typeof process=="undefined"||typeof process.domain=="undefined")throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");this.domains=Object.create(null)}this.timeout=e.timeout||fr.DEFAULT_TIMEOUT,this.maxOccupationTime=e.maxOccupationTime||fr.DEFAULT_MAX_OCCUPATION_TIME,this.maxExecutionTime=e.maxExecutionTime||fr.DEFAULT_MAX_EXECUTION_TIME,e.maxPending===1/0||Number.isInteger(e.maxPending)&&e.maxPending>=0?this.maxPending=e.maxPending:this.maxPending=fr.DEFAULT_MAX_PENDING};fr.DEFAULT_TIMEOUT=0;fr.DEFAULT_MAX_OCCUPATION_TIME=0;fr.DEFAULT_MAX_EXECUTION_TIME=0;fr.DEFAULT_MAX_PENDING=1e3;fr.prototype.acquire=function(e,t,r,n){if(Array.isArray(e))return this._acquireBatch(e,t,r,n);if(typeof t!="function")throw new Error("You must pass a function to execute");var i=null,a=null,s=null;typeof r!="function"&&(n=r,r=null,s=new this.Promise(function(b,x){i=b,a=x})),n=n||{};var o=!1,c=null,l=null,u=null,f=this,d=function(b,x,E){l&&(clearTimeout(l),l=null),u&&(clearTimeout(u),u=null),b&&(f.queues[e]&&f.queues[e].length===0&&delete f.queues[e],f.domainReentrant&&delete f.domains[e]),o||(s?x?a(x):i(E):typeof r=="function"&&r(x,E),o=!0),b&&f.queues[e]&&f.queues[e].length>0&&f.queues[e].shift()()},h=function(b){if(o)return d(b);c&&(clearTimeout(c),c=null),f.domainReentrant&&b&&(f.domains[e]=process.domain);var x=n.maxExecutionTime||f.maxExecutionTime;if(x&&(u=setTimeout(function(){f.queues[e]&&d(b,new Error("Maximum execution time is exceeded "+e))},x)),t.length===1){var E=!1;try{t(function(_,k){E||(E=!0,d(b,_,k))})}catch(_){E||(E=!0,d(b,_))}}else f._promiseTry(function(){return t()}).then(function(_){d(b,void 0,_)},function(_){d(b,_)})};f.domainReentrant&&process.domain&&(h=process.domain.bind(h));var p=n.maxPending||f.maxPending;if(!f.queues[e])f.queues[e]=[],h(!0);else if(f.domainReentrant&&process.domain&&process.domain===f.domains[e])h(!1);else if(f.queues[e].length>=p)d(!1,new Error("Too many pending tasks in queue "+e));else{var m=function(){h(!0)};n.skipQueue?f.queues[e].unshift(m):f.queues[e].push(m);var v=n.timeout||f.timeout;v&&(c=setTimeout(function(){c=null,d(!1,new Error("async-lock timed out in queue "+e))},v))}var y=n.maxOccupationTime||f.maxOccupationTime;if(y&&(l=setTimeout(function(){f.queues[e]&&d(!1,new Error("Maximum occupation time is exceeded in queue "+e))},y)),s)return s};fr.prototype._acquireBatch=function(e,t,r,n){typeof r!="function"&&(n=r,r=null);var i=this,a=function(o,c){return function(l){i.acquire(o,c,l,n)}},s=e.reduceRight(function(o,c){return a(c,o)},t);if(typeof r=="function")s(r);else return new this.Promise(function(o,c){s.length===1?s(function(l,u){l?c(l):o(u)}):o(s())})};fr.prototype.isBusy=function(e){return e?!!this.queues[e]:Object.keys(this.queues).length>0};fr.prototype._promiseTry=function(e){try{return this.Promise.resolve(e())}catch(t){return this.Promise.reject(t)}};u1.exports=fr});var h1=I((KH,d1)=>{"use strict";g();d1.exports=f1()});var p1=I((QH,dh)=>{g();typeof Object.create=="function"?dh.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:dh.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var ph=I((hh,g1)=>{g();var $c=uh(),hn=$c.Buffer;function m1(e,t){for(var r in e)t[r]=e[r]}hn.from&&hn.alloc&&hn.allocUnsafe&&hn.allocUnsafeSlow?g1.exports=$c:(m1($c,hh),hh.Buffer=Ki);function Ki(e,t,r){return hn(e,t,r)}Ki.prototype=Object.create(hn.prototype);m1(hn,Ki);Ki.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return hn(e,t,r)};Ki.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=hn(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};Ki.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return hn(e)};Ki.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return $c.SlowBuffer(e)}});var w1=I((rU,y1)=>{g();var v1=ph().Buffer;function Lc(e,t){this._block=v1.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}Lc.prototype.update=function(e,t){typeof e=="string"&&(t=t||"utf8",e=v1.from(e,t));for(var r=this._block,n=this._blockSize,i=e.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a};Lc.prototype._update=function(){throw new Error("_update must be implemented by subclass")};y1.exports=Lc});var x1=I((iU,_1)=>{g();var PR=p1(),b1=w1(),RR=ph().Buffer,MR=[1518500249,1859775393,-1894007588,-899497514],OR=new Array(80);function Fo(){this.init(),this._w=OR,b1.call(this,64,56)}PR(Fo,b1);Fo.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function IR(e){return e<<1|e>>>31}function FR(e){return e<<5|e>>>27}function $R(e){return e<<30|e>>>2}function LR(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}Fo.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,a=this._d|0,s=this._e|0,o=0;o<16;++o)t[o]=e.readInt32BE(o*4);for(;o<80;++o)t[o]=IR(t[o-3]^t[o-8]^t[o-14]^t[o-16]);for(var c=0;c<80;++c){var l=~~(c/20),u=FR(r)+LR(l,n,i,a)+s+t[c]+MR[l]|0;s=a,a=i,i=$R(n),n=r,r=u}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=s+this._e|0};Fo.prototype._hash=function(){var e=RR.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};_1.exports=Fo});var E1=I(mh=>{g();var S1;(function(e){typeof DO_NOT_EXPORT_CRC=="undefined"?typeof mh=="object"?e(mh):typeof define=="function"&&define.amd?define(function(){var t={};return e(t),t}):e(S1={}):e(S1={})})(function(e){e.version="1.2.2";function t(){for(var w=0,A=new Array(256),S=0;S!=256;++S)w=S,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,A[S]=w;return typeof Int32Array!="undefined"?new Int32Array(A):A}var r=t();function n(w){var A=0,S=0,T=0,P=typeof Int32Array!="undefined"?new Int32Array(4096):new Array(4096);for(T=0;T!=256;++T)P[T]=w[T];for(T=0;T!=256;++T)for(S=w[T],A=256+T;A<4096;A+=256)S=P[A]=S>>>8^w[S&255];var O=[];for(T=1;T!=16;++T)O[T-1]=typeof Int32Array!="undefined"?P.subarray(T*256,T*256+256):P.slice(T*256,T*256+256);return O}var i=n(r),a=i[0],s=i[1],o=i[2],c=i[3],l=i[4],u=i[5],f=i[6],d=i[7],h=i[8],p=i[9],m=i[10],v=i[11],y=i[12],b=i[13],x=i[14];function E(w,A){for(var S=A^-1,T=0,P=w.length;T>>8^r[(S^w.charCodeAt(T++))&255];return~S}function _(w,A){for(var S=A^-1,T=w.length-15,P=0;P>8&255]^y[w[P++]^S>>16&255]^v[w[P++]^S>>>24]^m[w[P++]]^p[w[P++]]^h[w[P++]]^d[w[P++]]^f[w[P++]]^u[w[P++]]^l[w[P++]]^c[w[P++]]^o[w[P++]]^s[w[P++]]^a[w[P++]]^r[w[P++]];for(T+=15;P>>8^r[(S^w[P++])&255];return~S}function k(w,A){for(var S=A^-1,T=0,P=w.length,O=0,j=0;T>>8^r[(S^O)&255]:O<2048?(S=S>>>8^r[(S^(192|O>>6&31))&255],S=S>>>8^r[(S^(128|O&63))&255]):O>=55296&&O<57344?(O=(O&1023)+64,j=w.charCodeAt(T++)&1023,S=S>>>8^r[(S^(240|O>>8&7))&255],S=S>>>8^r[(S^(128|O>>2&63))&255],S=S>>>8^r[(S^(128|j>>6&15|(O&3)<<4))&255],S=S>>>8^r[(S^(128|j&63))&255]):(S=S>>>8^r[(S^(224|O>>12&15))&255],S=S>>>8^r[(S^(128|O>>6&63))&255],S=S>>>8^r[(S^(128|O&63))&255]);return~S}e.table=r,e.bstr=E,e.buf=_,e.str=k})});var Dn=I(Ht=>{"use strict";g();var DR=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function NR(e,t){return Object.prototype.hasOwnProperty.call(e,t)}Ht.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(var n in r)NR(r,n)&&(e[n]=r[n])}}return e};Ht.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var jR={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray){e.set(t.subarray(r,r+n),i);return}for(var a=0;a{"use strict";g();var HR=Dn(),UR=4,A1=0,k1=1,GR=2;function Qa(e){for(var t=e.length;--t>=0;)e[t]=0}var zR=0,O1=1,VR=2,WR=3,qR=258,xh=29,Bo=256,Lo=Bo+1+xh,Ja=30,Sh=19,I1=2*Lo+1,Ji=15,gh=16,YR=7,Eh=256,F1=16,$1=17,L1=18,bh=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Dc=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],XR=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],D1=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ZR=512,Nn=new Array((Lo+2)*2);Qa(Nn);var $o=new Array(Ja*2);Qa($o);var Do=new Array(ZR);Qa(Do);var No=new Array(qR-WR+1);Qa(No);var Ah=new Array(xh);Qa(Ah);var Nc=new Array(Ja);Qa(Nc);function vh(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}var N1,j1,B1;function yh(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function H1(e){return e<256?Do[e]:Do[256+(e>>>7)]}function jo(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Jt(e,t,r){e.bi_valid>gh-r?(e.bi_buf|=t<>gh-e.bi_valid,e.bi_valid+=r-gh):(e.bi_buf|=t<>>=1,r<<=1;while(--t>0);return r>>>1}function KR(e){e.bi_valid===16?(jo(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function JR(e,t){var r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,u,f,d,h,p,m=0;for(d=0;d<=Ji;d++)e.bl_count[d]=0;for(r[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;lc&&(d=c,m++),r[u*2+1]=d,!(u>n)&&(e.bl_count[d]++,h=0,u>=o&&(h=s[u-o]),p=r[u*2],e.opt_len+=p*(d+h),a&&(e.static_len+=p*(i[u*2+1]+h)));if(m!==0){do{for(d=c-1;e.bl_count[d]===0;)d--;e.bl_count[d]--,e.bl_count[d+1]+=2,e.bl_count[c]--,m-=2}while(m>0);for(d=c;d!==0;d--)for(u=e.bl_count[d];u!==0;)f=e.heap[--l],!(f>n)&&(r[f*2+1]!==d&&(e.opt_len+=(d-r[f*2+1])*r[f*2],r[f*2+1]=d),u--)}}function G1(e,t,r){var n=new Array(Ji+1),i=0,a,s;for(a=1;a<=Ji;a++)n[a]=i=i+r[a-1]<<1;for(s=0;s<=t;s++){var o=e[s*2+1];o!==0&&(e[s*2]=U1(n[o]++,o))}}function QR(){var e,t,r,n,i,a=new Array(Ji+1);for(r=0,n=0;n>=7;n8?jo(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function e5(e,t,r,n){V1(e),n&&(jo(e,r),jo(e,~r)),HR.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}function T1(e,t,r,n){var i=t*2,a=r*2;return e[i]>1;s>=1;s--)wh(e,r,s);l=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],wh(e,r,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,r[l*2]=r[s*2]+r[o*2],e.depth[l]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,r[s*2+1]=r[o*2+1]=l,e.heap[1]=l++,wh(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],JR(e,t),G1(r,c,e.bl_count)}function P1(e,t,r){var n,i=-1,a,s=t[0*2+1],o=0,c=7,l=4;for(s===0&&(c=138,l=3),t[(r+1)*2+1]=65535,n=0;n<=r;n++)a=s,s=t[(n+1)*2+1],!(++o=3&&e.bl_tree[D1[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function r5(e,t,r,n){var i;for(Jt(e,t-257,5),Jt(e,r-1,5),Jt(e,n-4,4),i=0;i>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return A1;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return k1;for(r=32;r0?(e.strm.data_type===GR&&(e.strm.data_type=n5(e)),_h(e,e.l_desc),_h(e,e.d_desc),s=t5(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&t!==-1?W1(e,t,r,n):e.strategy===UR||a===i?(Jt(e,(O1<<1)+(n?1:0),3),C1(e,Nn,$o)):(Jt(e,(VR<<1)+(n?1:0),3),r5(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),C1(e,e.dyn_ltree,e.dyn_dtree)),z1(e),n&&V1(e)}function o5(e,t,r){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=r&255,e.last_lit++,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(No[r]+Bo+1)*2]++,e.dyn_dtree[H1(t)*2]++),e.last_lit===e.lit_bufsize-1}es._tr_init=i5;es._tr_stored_block=W1;es._tr_flush_block=s5;es._tr_tally=o5;es._tr_align=a5});var kh=I((dU,Y1)=>{"use strict";g();function l5(e,t,r,n){for(var i=e&65535|0,a=e>>>16&65535|0,s=0;r!==0;){s=r>2e3?2e3:r,r-=s;do i=i+t[n++]|0,a=a+i|0;while(--s);i%=65521,a%=65521}return i|a<<16|0}Y1.exports=l5});var Th=I((pU,X1)=>{"use strict";g();function c5(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t}var u5=c5();function f5(e,t,r,n){var i=u5,a=n+r;e^=-1;for(var s=n;s>>8^i[(e^t[s])&255];return e^-1}X1.exports=f5});var jc=I((gU,Z1)=>{"use strict";g();Z1.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var ay=I(vn=>{"use strict";g();var Ut=Dn(),Pr=q1(),ey=kh(),fi=Th(),d5=jc(),ra=0,h5=1,p5=3,gi=4,K1=5,gn=0,J1=1,Rr=-2,m5=-3,Ch=-5,g5=-1,v5=1,Bc=2,y5=3,w5=4,b5=0,_5=2,zc=8,x5=9,S5=15,E5=8,A5=29,k5=256,Rh=k5+1+A5,T5=30,C5=19,P5=2*Rh+1,R5=15,we=3,pi=258,Xr=pi+we+1,M5=32,Vc=42,Mh=69,Hc=73,Uc=91,Gc=103,Qi=113,Uo=666,pt=1,Go=2,ea=3,ns=4,O5=3;function mi(e,t){return e.msg=d5[t],t}function Q1(e){return(e<<1)-(e>4?9:0)}function hi(e){for(var t=e.length;--t>=0;)e[t]=0}function di(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(Ut.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))}function xt(e,t){Pr._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,di(e.strm)}function Ae(e,t){e.pending_buf[e.pending++]=t}function Ho(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function I5(e,t,r,n){var i=e.avail_in;return i>n&&(i=n),i===0?0:(e.avail_in-=i,Ut.arraySet(t,e.input,e.next_in,i,r),e.state.wrap===1?e.adler=ey(e.adler,t,i,r):e.state.wrap===2&&(e.adler=fi(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)}function ty(e,t){var r=e.max_chain_length,n=e.strstart,i,a,s=e.prev_length,o=e.nice_match,c=e.strstart>e.w_size-Xr?e.strstart-(e.w_size-Xr):0,l=e.window,u=e.w_mask,f=e.prev,d=e.strstart+pi,h=l[n+s-1],p=l[n+s];e.prev_length>=e.good_match&&(r>>=2),o>e.lookahead&&(o=e.lookahead);do if(i=t,!(l[i+s]!==p||l[i+s-1]!==h||l[i]!==l[n]||l[++i]!==l[n+1])){n+=2,i++;do;while(l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&ns){if(e.match_start=t,s=a,a>=o)break;h=l[n+s-1],p=l[n+s]}}while((t=f[t&u])>c&&--r!==0);return s<=e.lookahead?s:e.lookahead}function ta(e){var t=e.w_size,r,n,i,a,s;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Xr)){Ut.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,r=n;do i=e.head[--r],e.head[r]=i>=t?i-t:0;while(--n);n=t,r=n;do i=e.prev[--r],e.prev[r]=i>=t?i-t:0;while(--n);a+=t}if(e.strm.avail_in===0)break;if(n=I5(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=we)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(ta(e),e.lookahead===0&&t===ra)return pt;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,xt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Xr&&(xt(e,!1),e.strm.avail_out===0))return pt}return e.insert=0,t===gi?(xt(e,!0),e.strm.avail_out===0?ea:ns):(e.strstart>e.block_start&&(xt(e,!1),e.strm.avail_out===0),pt)}function Ph(e,t){for(var r,n;;){if(e.lookahead=we&&(e.ins_h=(e.ins_h<=we)if(n=Pr._tr_tally(e,e.strstart-e.match_start,e.match_length-we),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=we){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<=we&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=we-1)),e.prev_length>=we&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-we,n=Pr._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-we),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<=we&&e.strstart>0&&(i=e.strstart-1,n=s[i],n===s[++i]&&n===s[++i]&&n===s[++i])){a=e.strstart+pi;do;while(n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=we?(r=Pr._tr_tally(e,1,e.match_length-we),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Pr._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(xt(e,!1),e.strm.avail_out===0))return pt}return e.insert=0,t===gi?(xt(e,!0),e.strm.avail_out===0?ea:ns):e.last_lit&&(xt(e,!1),e.strm.avail_out===0)?pt:Go}function L5(e,t){for(var r;;){if(e.lookahead===0&&(ta(e),e.lookahead===0)){if(t===ra)return pt;break}if(e.match_length=0,r=Pr._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(xt(e,!1),e.strm.avail_out===0))return pt}return e.insert=0,t===gi?(xt(e,!0),e.strm.avail_out===0?ea:ns):e.last_lit&&(xt(e,!1),e.strm.avail_out===0)?pt:Go}function mn(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}var rs;rs=[new mn(0,0,0,0,F5),new mn(4,4,8,4,Ph),new mn(4,5,16,8,Ph),new mn(4,6,32,32,Ph),new mn(4,4,16,16,ts),new mn(8,16,32,32,ts),new mn(8,16,128,128,ts),new mn(8,32,128,256,ts),new mn(32,128,258,1024,ts),new mn(32,258,258,4096,ts)];function D5(e){e.window_size=2*e.w_size,hi(e.head),e.max_lazy_match=rs[e.level].max_lazy,e.good_match=rs[e.level].good_length,e.nice_match=rs[e.level].nice_length,e.max_chain_length=rs[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=we-1,e.match_available=0,e.ins_h=0}function N5(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=zc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Ut.Buf16(P5*2),this.dyn_dtree=new Ut.Buf16((2*T5+1)*2),this.bl_tree=new Ut.Buf16((2*C5+1)*2),hi(this.dyn_ltree),hi(this.dyn_dtree),hi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Ut.Buf16(R5+1),this.heap=new Ut.Buf16(2*Rh+1),hi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Ut.Buf16(2*Rh+1),hi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function ry(e){var t;return!e||!e.state?mi(e,Rr):(e.total_in=e.total_out=0,e.data_type=_5,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Vc:Qi,e.adler=t.wrap===2?0:1,t.last_flush=ra,Pr._tr_init(t),gn)}function ny(e){var t=ry(e);return t===gn&&D5(e.state),t}function j5(e,t){return!e||!e.state||e.state.wrap!==2?Rr:(e.state.gzhead=t,gn)}function iy(e,t,r,n,i,a){if(!e)return Rr;var s=1;if(t===g5&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),i<1||i>x5||r!==zc||n<8||n>15||t<0||t>9||a<0||a>w5)return mi(e,Rr);n===8&&(n=9);var o=new N5;return e.state=o,o.strm=e,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<K1||t<0)return e?mi(e,Rr):Rr;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Uo&&t!==gi)return mi(e,e.avail_out===0?Ch:Rr);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===Vc)if(n.wrap===2)e.adler=0,Ae(n,31),Ae(n,139),Ae(n,8),n.gzhead?(Ae(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Ae(n,n.gzhead.time&255),Ae(n,n.gzhead.time>>8&255),Ae(n,n.gzhead.time>>16&255),Ae(n,n.gzhead.time>>24&255),Ae(n,n.level===9?2:n.strategy>=Bc||n.level<2?4:0),Ae(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ae(n,n.gzhead.extra.length&255),Ae(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=fi(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Mh):(Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,n.level===9?2:n.strategy>=Bc||n.level<2?4:0),Ae(n,O5),n.status=Qi);else{var s=zc+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=Bc||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=M5),s+=31-s%31,n.status=Qi,Ho(n,s),n.strstart!==0&&(Ho(n,e.adler>>>16),Ho(n,e.adler&65535)),e.adler=1}if(n.status===Mh)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),di(e),i=n.pending,n.pending===n.pending_buf_size));)Ae(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=Hc)}else n.status=Hc;if(n.status===Hc)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),di(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindexi&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.gzindex=0,n.status=Uc)}else n.status=Uc;if(n.status===Uc)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),di(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindexi&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.status=Gc)}else n.status=Gc;if(n.status===Gc&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&di(e),n.pending+2<=n.pending_buf_size&&(Ae(n,e.adler&255),Ae(n,e.adler>>8&255),e.adler=0,n.status=Qi)):n.status=Qi),n.pending!==0){if(di(e),e.avail_out===0)return n.last_flush=-1,gn}else if(e.avail_in===0&&Q1(t)<=Q1(r)&&t!==gi)return mi(e,Ch);if(n.status===Uo&&e.avail_in!==0)return mi(e,Ch);if(e.avail_in!==0||n.lookahead!==0||t!==ra&&n.status!==Uo){var c=n.strategy===Bc?L5(n,t):n.strategy===y5?$5(n,t):rs[n.level].func(n,t);if((c===ea||c===ns)&&(n.status=Uo),c===pt||c===ea)return e.avail_out===0&&(n.last_flush=-1),gn;if(c===Go&&(t===h5?Pr._tr_align(n):t!==K1&&(Pr._tr_stored_block(n,0,0,!1),t===p5&&(hi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),di(e),e.avail_out===0))return n.last_flush=-1,gn}return t!==gi?gn:n.wrap<=0?J1:(n.wrap===2?(Ae(n,e.adler&255),Ae(n,e.adler>>8&255),Ae(n,e.adler>>16&255),Ae(n,e.adler>>24&255),Ae(n,e.total_in&255),Ae(n,e.total_in>>8&255),Ae(n,e.total_in>>16&255),Ae(n,e.total_in>>24&255)):(Ho(n,e.adler>>>16),Ho(n,e.adler&65535)),di(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?gn:J1)}function U5(e){var t;return!e||!e.state?Rr:(t=e.state.status,t!==Vc&&t!==Mh&&t!==Hc&&t!==Uc&&t!==Gc&&t!==Qi&&t!==Uo?mi(e,Rr):(e.state=null,t===Qi?mi(e,m5):gn))}function G5(e,t){var r=t.length,n,i,a,s,o,c,l,u;if(!e||!e.state||(n=e.state,s=n.wrap,s===2||s===1&&n.status!==Vc||n.lookahead))return Rr;for(s===1&&(e.adler=ey(e.adler,t,r,0)),n.wrap=0,r>=n.w_size&&(s===0&&(hi(n.head),n.strstart=0,n.block_start=0,n.insert=0),u=new Ut.Buf8(n.w_size),Ut.arraySet(u,t,r-n.w_size,n.w_size,0),t=u,r=n.w_size),o=e.avail_in,c=e.next_in,l=e.input,e.avail_in=r,e.next_in=0,e.input=t,ta(n);n.lookahead>=we;){i=n.strstart,a=n.lookahead-(we-1);do n.ins_h=(n.ins_h<{"use strict";g();var Wc=Dn(),sy=!0,oy=!0;try{String.fromCharCode.apply(null,[0])}catch(e){sy=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){oy=!1}var zo=new Wc.Buf8(256);for(jn=0;jn<256;jn++)zo[jn]=jn>=252?6:jn>=248?5:jn>=240?4:jn>=224?3:jn>=192?2:1;var jn;zo[254]=zo[254]=1;is.string2buf=function(e){var t,r,n,i,a,s=e.length,o=0;for(i=0;i>>6,t[a++]=128|r&63):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|r&63):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|r&63);return t};function ly(e,t){if(t<65534&&(e.subarray&&oy||!e.subarray&&sy))return String.fromCharCode.apply(null,Wc.shrinkBuf(e,t));for(var r="",n=0;n4){o[n++]=65533,r+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&r1){o[n++]=65533;continue}i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|i&1023)}return ly(o,n)};is.utf8border=function(e,t){var r;for(t=t||e.length,t>e.length&&(t=e.length),r=t-1;r>=0&&(e[r]&192)===128;)r--;return r<0||r===0?t:r+zo[e[r]]>t?r:t}});var Ih=I((xU,cy)=>{"use strict";g();function z5(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}cy.exports=z5});var hy=I(qo=>{"use strict";g();var Vo=ay(),Wo=Dn(),$h=Oh(),Lh=jc(),V5=Ih(),dy=Object.prototype.toString,W5=0,Fh=4,as=0,uy=1,fy=2,q5=-1,Y5=0,X5=8;function na(e){if(!(this instanceof na))return new na(e);this.options=Wo.assign({level:q5,method:X5,chunkSize:16384,windowBits:15,memLevel:8,strategy:Y5,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new V5,this.strm.avail_out=0;var r=Vo.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==as)throw new Error(Lh[r]);if(t.header&&Vo.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(typeof t.dictionary=="string"?n=$h.string2buf(t.dictionary):dy.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,r=Vo.deflateSetDictionary(this.strm,n),r!==as)throw new Error(Lh[r]);this._dict_set=!0}}na.prototype.push=function(e,t){var r=this.strm,n=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Fh:W5,typeof e=="string"?r.input=$h.string2buf(e):dy.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Wo.Buf8(n),r.next_out=0,r.avail_out=n),i=Vo.deflate(r,a),i!==uy&&i!==as)return this.onEnd(i),this.ended=!0,!1;(r.avail_out===0||r.avail_in===0&&(a===Fh||a===fy))&&(this.options.to==="string"?this.onData($h.buf2binstring(Wo.shrinkBuf(r.output,r.next_out))):this.onData(Wo.shrinkBuf(r.output,r.next_out)))}while((r.avail_in>0||r.avail_out===0)&&i!==uy);return a===Fh?(i=Vo.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===as):(a===fy&&(this.onEnd(as),r.avail_out=0),!0)};na.prototype.onData=function(e){this.chunks.push(e)};na.prototype.onEnd=function(e){e===as&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Wo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Dh(e,t){var r=new na(t);if(r.push(e,!0),r.err)throw r.msg||Lh[r.err];return r.result}function Z5(e,t){return t=t||{},t.raw=!0,Dh(e,t)}function K5(e,t){return t=t||{},t.gzip=!0,Dh(e,t)}qo.Deflate=na;qo.deflate=Dh;qo.deflateRaw=Z5;qo.gzip=K5});var my=I((kU,py)=>{"use strict";g();var qc=30,J5=12;py.exports=function(t,r){var n,i,a,s,o,c,l,u,f,d,h,p,m,v,y,b,x,E,_,k,w,A,S,T,P;n=t.state,i=t.next_in,T=t.input,a=i+(t.avail_in-5),s=t.next_out,P=t.output,o=s-(r-t.avail_out),c=s+(t.avail_out-257),l=n.dmax,u=n.wsize,f=n.whave,d=n.wnext,h=n.window,p=n.hold,m=n.bits,v=n.lencode,y=n.distcode,b=(1<>>24,p>>>=_,m-=_,_=E>>>16&255,_===0)P[s++]=E&65535;else if(_&16){k=E&65535,_&=15,_&&(m<_&&(p+=T[i++]<>>=_,m-=_),m<15&&(p+=T[i++]<>>24,p>>>=_,m-=_,_=E>>>16&255,_&16){if(w=E&65535,_&=15,m<_&&(p+=T[i++]<l){t.msg="invalid distance too far back",n.mode=qc;break e}if(p>>>=_,m-=_,_=s-o,w>_){if(_=w-_,_>f&&n.sane){t.msg="invalid distance too far back",n.mode=qc;break e}if(A=0,S=h,d===0){if(A+=u-_,_2;)P[s++]=S[A++],P[s++]=S[A++],P[s++]=S[A++],k-=3;k&&(P[s++]=S[A++],k>1&&(P[s++]=S[A++]))}else{A=s-w;do P[s++]=P[A++],P[s++]=P[A++],P[s++]=P[A++],k-=3;while(k>2);k&&(P[s++]=P[A++],k>1&&(P[s++]=P[A++]))}}else if(_&64){t.msg="invalid distance code",n.mode=qc;break e}else{E=y[(E&65535)+(p&(1<<_)-1)];continue r}break}}else if(_&64)if(_&32){n.mode=J5;break e}else{t.msg="invalid literal/length code",n.mode=qc;break e}else{E=v[(E&65535)+(p&(1<<_)-1)];continue t}break}}while(i>3,i-=k,m-=k<<3,p&=(1<{"use strict";g();var gy=Dn(),ss=15,vy=852,yy=592,wy=0,Nh=1,by=2,Q5=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],e6=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],t6=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],r6=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];_y.exports=function(t,r,n,i,a,s,o,c){var l=c.bits,u=0,f=0,d=0,h=0,p=0,m=0,v=0,y=0,b=0,x=0,E,_,k,w,A,S=null,T=0,P,O=new gy.Buf16(ss+1),j=new gy.Buf16(ss+1),D=null,Q=0,de,ee,J;for(u=0;u<=ss;u++)O[u]=0;for(f=0;f=1&&O[h]===0;h--);if(p>h&&(p=h),h===0)return a[s++]=1<<24|64<<16|0,a[s++]=1<<24|64<<16|0,c.bits=1,0;for(d=1;d0&&(t===wy||h!==1))return-1;for(j[1]=0,u=1;uvy||t===by&&b>yy)return 1;for(;;){de=u-v,o[f]P?(ee=D[Q+o[f]],J=S[T+o[f]]):(ee=96,J=0),E=1<>v)+_]=de<<24|ee<<16|J|0;while(_!==0);for(E=1<>=1;if(E!==0?(x&=E-1,x+=E):x=0,f++,--O[u]===0){if(u===h)break;u=r[n+o[f]]}if(u>p&&(x&w)!==k){for(v===0&&(v=p),A+=d,m=u-v,y=1<vy||t===by&&b>yy)return 1;k=x&w,a[k]=p<<24|m<<16|A-s|0}}return x!==0&&(a[A+x]=u-v<<24|64<<16|0),c.bits=p,0}});var nw=I(Zr=>{"use strict";g();var dr=Dn(),zh=kh(),yn=Th(),n6=my(),Yo=xy(),i6=0,Yy=1,Xy=2,Sy=4,a6=5,Yc=6,ia=0,s6=1,o6=2,Mr=-2,Zy=-3,Vh=-4,l6=-5,Ey=8,Ky=1,Ay=2,ky=3,Ty=4,Cy=5,Py=6,Ry=7,My=8,Oy=9,Iy=10,Kc=11,Bn=12,jh=13,Fy=14,Bh=15,$y=16,Ly=17,Dy=18,Ny=19,Xc=20,Zc=21,jy=22,By=23,Hy=24,Uy=25,Gy=26,Hh=27,zy=28,Vy=29,je=30,Wh=31,c6=32,u6=852,f6=592,d6=15,h6=d6;function Wy(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function p6(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new dr.Buf16(320),this.work=new dr.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Jy(e){var t;return!e||!e.state?Mr:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Ky,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new dr.Buf32(u6),t.distcode=t.distdyn=new dr.Buf32(f6),t.sane=1,t.back=-1,ia)}function Qy(e){var t;return!e||!e.state?Mr:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Jy(e))}function ew(e,t){var r,n;return!e||!e.state||(n=e.state,t<0?(r=0,t=-t):(r=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Mr:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,Qy(e))}function tw(e,t){var r,n;return e?(n=new p6,e.state=n,n.window=null,r=ew(e,t),r!==ia&&(e.state=null),r):Mr}function m6(e){return tw(e,h6)}var qy=!0,Uh,Gh;function g6(e){if(qy){var t;for(Uh=new dr.Buf32(512),Gh=new dr.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Yo(Yy,e.lens,0,288,Uh,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Yo(Xy,e.lens,0,32,Gh,0,e.work,{bits:5}),qy=!1}e.lencode=Uh,e.lenbits=9,e.distcode=Gh,e.distbits=5}function rw(e,t,r,n){var i,a=e.state;return a.window===null&&(a.wsize=1<=a.wsize?(dr.arraySet(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),dr.arraySet(a.window,t,r-n,i,a.wnext),n-=i,n?(dr.arraySet(a.window,t,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=yn(r.check,S,2,0),l=0,u=0,r.mode=Ay;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=je;break}if((l&15)!==Ey){e.msg="unknown compression method",r.mode=je;break}if(l>>>=4,u-=4,w=(l&15)+8,r.wbits===0)r.wbits=w;else if(w>r.wbits){e.msg="invalid window size",r.mode=je;break}r.dmax=1<>8&1),r.flags&512&&(S[0]=l&255,S[1]=l>>>8&255,r.check=yn(r.check,S,2,0)),l=0,u=0,r.mode=ky;case ky:for(;u<32;){if(o===0)break e;o--,l+=n[a++]<>>8&255,S[2]=l>>>16&255,S[3]=l>>>24&255,r.check=yn(r.check,S,4,0)),l=0,u=0,r.mode=Ty;case Ty:for(;u<16;){if(o===0)break e;o--,l+=n[a++]<>8),r.flags&512&&(S[0]=l&255,S[1]=l>>>8&255,r.check=yn(r.check,S,2,0)),l=0,u=0,r.mode=Cy;case Cy:if(r.flags&1024){for(;u<16;){if(o===0)break e;o--,l+=n[a++]<>>8&255,r.check=yn(r.check,S,2,0)),l=0,u=0}else r.head&&(r.head.extra=null);r.mode=Py;case Py:if(r.flags&1024&&(h=r.length,h>o&&(h=o),h&&(r.head&&(w=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),dr.arraySet(r.head.extra,n,a,h,w)),r.flags&512&&(r.check=yn(r.check,n,h,a)),o-=h,a+=h,r.length-=h),r.length))break e;r.length=0,r.mode=Ry;case Ry:if(r.flags&2048){if(o===0)break e;h=0;do w=n[a+h++],r.head&&w&&r.length<65536&&(r.head.name+=String.fromCharCode(w));while(w&&h>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Bn;break;case Iy:for(;u<32;){if(o===0)break e;o--,l+=n[a++]<>>=u&7,u-=u&7,r.mode=Hh;break}for(;u<3;){if(o===0)break e;o--,l+=n[a++]<>>=1,u-=1,l&3){case 0:r.mode=Fy;break;case 1:if(g6(r),r.mode=Xc,t===Yc){l>>>=2,u-=2;break e}break;case 2:r.mode=Ly;break;case 3:e.msg="invalid block type",r.mode=je}l>>>=2,u-=2;break;case Fy:for(l>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,l+=n[a++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=je;break}if(r.length=l&65535,l=0,u=0,r.mode=Bh,t===Yc)break e;case Bh:r.mode=$y;case $y:if(h=r.length,h){if(h>o&&(h=o),h>c&&(h=c),h===0)break e;dr.arraySet(i,n,a,h,s),o-=h,a+=h,c-=h,s+=h,r.length-=h;break}r.mode=Bn;break;case Ly:for(;u<14;){if(o===0)break e;o--,l+=n[a++]<>>=5,u-=5,r.ndist=(l&31)+1,l>>>=5,u-=5,r.ncode=(l&15)+4,l>>>=4,u-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=je;break}r.have=0,r.mode=Dy;case Dy:for(;r.have>>=3,u-=3}for(;r.have<19;)r.lens[O[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,T={bits:r.lenbits},A=Yo(i6,r.lens,0,19,r.lencode,0,r.work,T),r.lenbits=T.bits,A){e.msg="invalid code lengths set",r.mode=je;break}r.have=0,r.mode=Ny;case Ny:for(;r.have>>24,b=v>>>16&255,x=v&65535,!(y<=u);){if(o===0)break e;o--,l+=n[a++]<>>=y,u-=y,r.lens[r.have++]=x;else{if(x===16){for(P=y+2;u>>=y,u-=y,r.have===0){e.msg="invalid bit length repeat",r.mode=je;break}w=r.lens[r.have-1],h=3+(l&3),l>>>=2,u-=2}else if(x===17){for(P=y+3;u>>=y,u-=y,w=0,h=3+(l&7),l>>>=3,u-=3}else{for(P=y+7;u>>=y,u-=y,w=0,h=11+(l&127),l>>>=7,u-=7}if(r.have+h>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=je;break}for(;h--;)r.lens[r.have++]=w}}if(r.mode===je)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=je;break}if(r.lenbits=9,T={bits:r.lenbits},A=Yo(Yy,r.lens,0,r.nlen,r.lencode,0,r.work,T),r.lenbits=T.bits,A){e.msg="invalid literal/lengths set",r.mode=je;break}if(r.distbits=6,r.distcode=r.distdyn,T={bits:r.distbits},A=Yo(Xy,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,T),r.distbits=T.bits,A){e.msg="invalid distances set",r.mode=je;break}if(r.mode=Xc,t===Yc)break e;case Xc:r.mode=Zc;case Zc:if(o>=6&&c>=258){e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,r.hold=l,r.bits=u,n6(e,d),s=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,l=r.hold,u=r.bits,r.mode===Bn&&(r.back=-1);break}for(r.back=0;v=r.lencode[l&(1<>>24,b=v>>>16&255,x=v&65535,!(y<=u);){if(o===0)break e;o--,l+=n[a++]<>E)],y=v>>>24,b=v>>>16&255,x=v&65535,!(E+y<=u);){if(o===0)break e;o--,l+=n[a++]<>>=E,u-=E,r.back+=E}if(l>>>=y,u-=y,r.back+=y,r.length=x,b===0){r.mode=Gy;break}if(b&32){r.back=-1,r.mode=Bn;break}if(b&64){e.msg="invalid literal/length code",r.mode=je;break}r.extra=b&15,r.mode=jy;case jy:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=By;case By:for(;v=r.distcode[l&(1<>>24,b=v>>>16&255,x=v&65535,!(y<=u);){if(o===0)break e;o--,l+=n[a++]<>E)],y=v>>>24,b=v>>>16&255,x=v&65535,!(E+y<=u);){if(o===0)break e;o--,l+=n[a++]<>>=E,u-=E,r.back+=E}if(l>>>=y,u-=y,r.back+=y,b&64){e.msg="invalid distance code",r.mode=je;break}r.offset=x,r.extra=b&15,r.mode=Hy;case Hy:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=je;break}r.mode=Uy;case Uy:if(c===0)break e;if(h=d-c,r.offset>h){if(h=r.offset-h,h>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=je;break}h>r.wnext?(h-=r.wnext,p=r.wsize-h):p=r.wnext-h,h>r.length&&(h=r.length),m=r.window}else m=i,p=s-r.offset,h=r.length;h>c&&(h=c),c-=h,r.length-=h;do i[s++]=m[p++];while(--h);r.length===0&&(r.mode=Zc);break;case Gy:if(c===0)break e;i[s++]=r.length,c--,r.mode=Zc;break;case Hh:if(r.wrap){for(;u<32;){if(o===0)break e;o--,l|=n[a++]<{"use strict";g();iw.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var sw=I((FU,aw)=>{"use strict";g();function _6(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}aw.exports=_6});var lw=I(Zo=>{"use strict";g();var os=nw(),Xo=Dn(),Jc=Oh(),et=qh(),Yh=jc(),x6=Ih(),S6=sw(),ow=Object.prototype.toString;function aa(e){if(!(this instanceof aa))return new aa(e);this.options=Xo.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new x6,this.strm.avail_out=0;var r=os.inflateInit2(this.strm,t.windowBits);if(r!==et.Z_OK)throw new Error(Yh[r]);if(this.header=new S6,os.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Jc.string2buf(t.dictionary):ow.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=os.inflateSetDictionary(this.strm,t.dictionary),r!==et.Z_OK)))throw new Error(Yh[r])}aa.prototype.push=function(e,t){var r=this.strm,n=this.options.chunkSize,i=this.options.dictionary,a,s,o,c,l,u=!1;if(this.ended)return!1;s=t===~~t?t:t===!0?et.Z_FINISH:et.Z_NO_FLUSH,typeof e=="string"?r.input=Jc.binstring2buf(e):ow.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Xo.Buf8(n),r.next_out=0,r.avail_out=n),a=os.inflate(r,et.Z_NO_FLUSH),a===et.Z_NEED_DICT&&i&&(a=os.inflateSetDictionary(this.strm,i)),a===et.Z_BUF_ERROR&&u===!0&&(a=et.Z_OK,u=!1),a!==et.Z_STREAM_END&&a!==et.Z_OK)return this.onEnd(a),this.ended=!0,!1;r.next_out&&(r.avail_out===0||a===et.Z_STREAM_END||r.avail_in===0&&(s===et.Z_FINISH||s===et.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=Jc.utf8border(r.output,r.next_out),c=r.next_out-o,l=Jc.buf2string(r.output,o),r.next_out=c,r.avail_out=n-c,c&&Xo.arraySet(r.output,r.output,o,c,0),this.onData(l)):this.onData(Xo.shrinkBuf(r.output,r.next_out))),r.avail_in===0&&r.avail_out===0&&(u=!0)}while((r.avail_in>0||r.avail_out===0)&&a!==et.Z_STREAM_END);return a===et.Z_STREAM_END&&(s=et.Z_FINISH),s===et.Z_FINISH?(a=os.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===et.Z_OK):(s===et.Z_SYNC_FLUSH&&(this.onEnd(et.Z_OK),r.avail_out=0),!0)};aa.prototype.onData=function(e){this.chunks.push(e)};aa.prototype.onEnd=function(e){e===et.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Xo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Xh(e,t){var r=new aa(t);if(r.push(e,!0),r.err)throw r.msg||Yh[r.err];return r.result}function E6(e,t){return t=t||{},t.raw=!0,Xh(e,t)}Zo.Inflate=aa;Zo.inflate=Xh;Zo.inflateRaw=E6;Zo.ungzip=Xh});var fw=I((NU,uw)=>{"use strict";g();var A6=Dn().assign,k6=hy(),T6=lw(),C6=qh(),cw={};A6(cw,k6,T6,C6);uw.exports=cw});var pw=I((BU,hw)=>{"use strict";g();var dw=(e,t)=>function(...r){let n=t.promiseModule;return new n((i,a)=>{t.multiArgs?r.push((...s)=>{t.errorFirst?s[0]?a(s):(s.shift(),i(s)):i(s)}):t.errorFirst?r.push((s,o)=>{s?a(s):i(o)}):r.push(i),e.apply(this,r)})};hw.exports=(e,t)=>{t=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},t);let r=typeof e;if(!(e!==null&&(r==="object"||r==="function")))throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${e===null?"null":r}\``);let n=a=>{let s=o=>typeof o=="string"?a===o:o.test(a);return t.include?t.include.some(s):!t.exclude.some(s)},i;r==="function"?i=function(...a){return t.excludeMain?e(...a):dw(e,t).apply(this,a)}:i=Object.create(Object.getPrototypeOf(e));for(let a in e){let s=e[a];i[a]=typeof s=="function"&&n(a)?dw(s,t):s}return i}});var Sw=I((UU,xw)=>{g();function mw(e){return Array.isArray(e)?e:[e]}var Jh="",gw=" ",Zh="\\",P6=/^\s+$/,R6=/(?:[^\\]|^)\\$/,M6=/^\\!/,O6=/^\\#/,I6=/\r?\n/g,F6=/^\.*\/|^\.+$/,Kh="/",ww="node-ignore";typeof Symbol!="undefined"&&(ww=Symbol.for("node-ignore"));var vw=ww,$6=(e,t,r)=>Object.defineProperty(e,t,{value:r}),L6=/([0-z])-([0-z])/g,bw=()=>!1,D6=e=>e.replace(L6,(t,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?t:Jh),N6=e=>{let{length:t}=e;return e.slice(0,t-t%2)},j6=[[/^\uFEFF/,()=>Jh],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,r)=>t+(r.indexOf("\\")===0?gw:Jh)],[/(\\+?)\s/g,(e,t)=>{let{length:r}=t;return t.slice(0,r-r%2)+gw}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6{let n=r.replace(/\\\*/g,"[^\\/]*");return t+n}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Zh],[/\\\\/g,()=>Zh],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,n,i)=>t===Zh?`\\[${r}${N6(n)}${i}`:i==="]"&&n.length%2===0?`[${D6(r)}${n}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],yw=Object.create(null),B6=(e,t)=>{let r=yw[e];return r||(r=j6.reduce((n,[i,a])=>n.replace(i,a.bind(e)),e),yw[e]=r),t?new RegExp(r,"i"):new RegExp(r)},tp=e=>typeof e=="string",H6=e=>e&&tp(e)&&!P6.test(e)&&!R6.test(e)&&e.indexOf("#")!==0,U6=e=>e.split(I6),Qh=class{constructor(t,r,n,i){this.origin=t,this.pattern=r,this.negative=n,this.regex=i}},G6=(e,t)=>{let r=e,n=!1;e.indexOf("!")===0&&(n=!0,e=e.substr(1)),e=e.replace(M6,"!").replace(O6,"#");let i=B6(e,t);return new Qh(r,e,n,i)},z6=(e,t)=>{throw new t(e)},Hn=(e,t,r)=>tp(e)?e?Hn.isNotRelative(e)?r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),_w=e=>F6.test(e);Hn.isNotRelative=_w;Hn.convert=e=>e;var ep=class{constructor({ignorecase:t=!0,ignoreCase:r=t,allowRelativePaths:n=!1}={}){$6(this,vw,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[vw]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(H6(t)){let r=G6(t,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(t){return this._added=!1,mw(tp(t)?U6(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,r){let n=!1,i=!1;return this._rules.forEach(a=>{let{negative:s}=a;if(i===s&&n!==i||s&&!n&&!i&&!r)return;a.regex.test(t)&&(n=!s,i=s)}),{ignored:n,unignored:i}}_test(t,r,n,i){let a=t&&Hn.convert(t);return Hn(a,t,this._allowRelativePaths?bw:z6),this._t(a,r,n,i)}_t(t,r,n,i){if(t in r)return r[t];if(i||(i=t.split(Kh)),i.pop(),!i.length)return r[t]=this._testOne(t,n);let a=this._t(i.join(Kh)+Kh,r,n,i);return r[t]=a.ignored?a:this._testOne(t,n)}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return mw(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},Qc=e=>new ep(e),V6=e=>Hn(e&&Hn.convert(e),e,bw);Qc.isPathValid=V6;Qc.default=Qc;xw.exports=Qc;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");Hn.convert=e;let t=/^[a-z]:\//i;Hn.isNotRelative=r=>t.test(r)||_w(r)}});var Aw=I((zU,Ew)=>{"use strict";g();function W6(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wn(e,t,r){return t=t instanceof RegExp?t:new RegExp(W6(t),"g"),e.replace(t,r)}var q6={clean:function(t){if(typeof t!="string")throw new Error("Expected a string, received: "+t);return t=wn(t,"./","/"),t=wn(t,"..","."),t=wn(t," ","-"),t=wn(t,/^[~^:?*\\\-]/g,""),t=wn(t,/[~^:?*\\]/g,"-"),t=wn(t,/[~^:?*\\\-]$/g,""),t=wn(t,"@{","-"),t=wn(t,/\.$/g,""),t=wn(t,/\/$/g,""),t=wn(t,/\.lock$/g,""),t}};Ew.exports=q6});var Tw=I((WU,kw)=>{g();kw.exports=function(e,t){var r=e,n=t,i=r.length,a=n.length,s=!1,o=null,c=i+1,l=[],u=[],f=[],d="",h=-1,p=0,m=1,v,y,b=function(){i>=a&&(v=r,y=i,r=n,n=v,i=a,a=y,s=!0,c=i+1)},x=function(w,A,S){return{x:w,y:A,k:S}},E=function(w,A){return{elem:w,t:A}},_=function(w,A,S){var T,P,O;for(A>S?T=l[w-1+c]:T=l[w+1+c],O=Math.max(A,S),P=O-w;P=0;--O)for(;TP-T?(s?f[f.length]=new E(n[P],h):f[f.length]=new E(n[P],m),++S,++P):w[O].y-w[O].x=w+1;--D)S[D+c]=_(D,S[D-1+c]+1,S[D+1+c]);S[w+c]=_(w,S[w-1+c]+1,S[w+1+c])}while(S[w+c]!==a);for(o=w+2*T,P=l[w+c],O=[];P!==-1;)O[O.length]=new x(u[P].x,u[P].y,null),P=u[P].k;k(O)}}}});var Rw=I((YU,Pw)=>{g();var Y6=Tw();function X6(e,t){var r=new Y6(e,t);r.compose();for(var n=r.getses(),i,a,s=e.length-1,o=t.length-1,c=n.length-1;c>=0;--c)n[c].t===r.SES_COMMON?(a?(a.chain={file1index:s,file2index:o,chain:null},a=a.chain):(i={file1index:s,file2index:o,chain:null},a=i),s--,o--):n[c].t===r.SES_DELETE?s--:n[c].t===r.SES_ADD&&o--;var l={file1index:-1,file2index:-1,chain:null};return a?(a.chain=l,i):l}function Cw(e,t){for(var r=[],n=e.length,i=t.length,a=X6(e,t);a!==null;a=a.chain){var s=n-a.file1index-1,o=i-a.file2index-1;n=a.file1index,i=a.file2index,(s||o)&&r.push({file1:[n+1,s],file2:[i+1,o]})}return r.reverse(),r}function Z6(e,t,r){var n,i=Cw(t,e),a=Cw(t,r),s=[];function o(j,D){s.push([j.file1[0],D,j.file1[1],j.file2[0],j.file2[1]])}for(n=0;nl&&(c.push([1,l,j-l]),l=j)}for(var f=0;fm)break;m=Math.max(m,y+v[2]),f++}if(u(p),d==f)h[4]>0&&c.push([h[1],h[3],h[4]]);else{var b={0:[e.length,-1,t.length,-1],2:[r.length,-1,t.length,-1]};for(n=d;n<=f;n++){h=s[n];var x=h[1],E=b[x],_=h[0],k=_+h[2],w=h[3],A=w+h[4];E[0]=Math.min(w,E[0]),E[1]=Math.max(A,E[1]),E[2]=Math.min(_,E[2]),E[3]=Math.max(k,E[3])}var S=b[0][0]+(p-b[0][2]),T=b[0][1]+(m-b[0][3]),P=b[2][0]+(p-b[2][2]),O=b[2][1]+(m-b[2][3]);c.push([-1,S,T-S,p,m-p,P,O-P])}l=m}return u(t.length),c}function K6(e,t,r){var n=[],i=[e,t,r],a=Z6(e,t,r),s=[];function o(){s.length&&n.push({ok:s}),s=[]}function c(h){for(var p=0;p{g();var As=1e3,ks=As*60,Ts=ks*60,da=Ts*24,e8=da*7,t8=da*365.25;I2.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return r8(e);if(r==="number"&&isFinite(e))return t.long?i8(e):n8(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function r8(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*t8;case"weeks":case"week":case"w":return r*e8;case"days":case"day":case"d":return r*da;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ts;case"minutes":case"minute":case"mins":case"min":case"m":return r*ks;case"seconds":case"second":case"secs":case"sec":case"s":return r*As;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function n8(e){var t=Math.abs(e);return t>=da?Math.round(e/da)+"d":t>=Ts?Math.round(e/Ts)+"h":t>=ks?Math.round(e/ks)+"m":t>=As?Math.round(e/As)+"s":e+"ms"}function i8(e){var t=Math.abs(e);return t>=da?bu(e,t,da,"day"):t>=Ts?bu(e,t,Ts,"hour"):t>=ks?bu(e,t,ks,"minute"):t>=As?bu(e,t,As,"second"):e+" ms"}function bu(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var L2=I((nG,$2)=>{g();function a8(e){r.debug=r,r.default=r,r.coerce=c,r.disable=a,r.enable=i,r.enabled=s,r.humanize=F2(),r.destroy=l,Object.keys(e).forEach(u=>{r[u]=e[u]}),r.names=[],r.skips=[],r.formatters={};function t(u){let f=0;for(let d=0;d{if(k==="%%")return"%";E++;let A=r.formatters[w];if(typeof A=="function"){let S=v[E];k=A.call(y,S),v.splice(E,1),E--}return k}),r.formatArgs.call(y,v),(y.log||r.log).apply(y,v)}return m.namespace=u,m.useColors=r.useColors(),m.color=r.selectColor(u),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==r.namespaces&&(h=r.namespaces,p=r.enabled(u)),p),set:v=>{d=v}}),typeof r.init=="function"&&r.init(m),m}function n(u,f){let d=r(this.namespace+(typeof f=="undefined"?":":f)+u);return d.log=this.log,d}function i(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f,d=(typeof u=="string"?u:"").split(/[\s,]+/),h=d.length;for(f=0;f"-"+f)].join(",");return r.enable(""),u}function s(u){if(u[u.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f{g();mr.formatArgs=o8;mr.save=l8;mr.load=c8;mr.useColors=s8;mr.storage=u8();mr.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();mr.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function s8(){if(typeof window!="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function o8(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+_u.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}mr.log=console.debug||console.log||(()=>{});function l8(e){try{e?mr.storage.setItem("debug",e):mr.storage.removeItem("debug")}catch(t){}}function c8(){let e;try{e=mr.storage.getItem("debug")}catch(t){}return!e&&typeof process!="undefined"&&"env"in process&&(e=process.env.DEBUG),e}function u8(){try{return localStorage}catch(e){}}_u.exports=L2()(mr);var{formatters:f8}=_u.exports;f8.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var D2=I(gr=>{"use strict";g();var d8=gr&&gr.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(gr,"__esModule",{value:!0});var h8=require("fs"),p8=d8(xu()),Cs=p8.default("@kwsites/file-exists");function m8(e,t,r){Cs("checking %s",e);try{let n=h8.statSync(e);return n.isFile()&&t?(Cs("[OK] path represents a file"),!0):n.isDirectory()&&r?(Cs("[OK] path represents a directory"),!0):(Cs("[FAIL] path represents something other than a file or directory"),!1)}catch(n){if(n.code==="ENOENT")return Cs("[FAIL] path is not accessible: %o",n),!1;throw Cs("[FATAL] %o",n),n}}function g8(e,t=gr.READABLE){return m8(e,(t&gr.FILE)>0,(t&gr.FOLDER)>0)}gr.exists=g8;gr.FILE=1;gr.FOLDER=2;gr.READABLE=gr.FILE+gr.FOLDER});var N2=I(Su=>{"use strict";g();function v8(e){for(var t in e)Su.hasOwnProperty(t)||(Su[t]=e[t])}Object.defineProperty(Su,"__esModule",{value:!0});v8(D2())});var Mp=I(ha=>{"use strict";g();Object.defineProperty(ha,"__esModule",{value:!0});ha.createDeferred=ha.deferred=void 0;function Rp(){let e,t,r="pending";return{promise:new Promise((i,a)=>{e=i,t=a}),done(i){r==="pending"&&(r="resolved",e(i))},fail(i){r==="pending"&&(r="rejected",t(i))},get fulfilled(){return r!=="pending"},get status(){return r}}}ha.deferred=Rp;ha.createDeferred=Rp;ha.default=Rp});var Tx=I((XG,kx)=>{"use strict";g();kx.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Px=I((KG,Cx)=>{g();var Sm={px:{px:1,cm:37.79527559055118,mm:3.7795275590551185,in:96,pt:1.3333333333333333,pc:16},cm:{px:.026458333333333334,cm:1,mm:.1,in:2.54,pt:.035277777777777776,pc:.42333333333333334},mm:{px:.26458333333333334,cm:10,mm:1,in:25.4,pt:.35277777777777775,pc:4.233333333333333},in:{px:.010416666666666666,cm:.39370078740157477,mm:.03937007874015748,in:1,pt:.013888888888888888,pc:.16666666666666666},pt:{px:.75,cm:28.346456692913385,mm:2.834645669291339,in:72,pt:1,pc:12},pc:{px:.0625,cm:2.3622047244094486,mm:.2362204724409449,in:6,pt:.08333333333333333,pc:1},deg:{deg:1,grad:.9,rad:180/Math.PI,turn:360},grad:{deg:1.1111111111111112,grad:1,rad:200/Math.PI,turn:400},rad:{deg:Math.PI/180,grad:Math.PI/200,rad:1,turn:Math.PI*2},turn:{deg:.002777777777777778,grad:.0025,rad:.5/Math.PI,turn:1},s:{s:1,ms:.001},ms:{s:1e3,ms:1},Hz:{Hz:1,kHz:1e3},kHz:{Hz:.001,kHz:1},dpi:{dpi:1,dpcm:.39370078740157477,dppx:.010416666666666666},dpcm:{dpi:2.54,dpcm:1,dppx:.026458333333333334},dppx:{dpi:96,dpcm:37.79527559055118,dppx:1}};Cx.exports=function(e,t,r,n){if(!Sm.hasOwnProperty(r))throw new Error("Cannot convert to "+r);if(!Sm[r].hasOwnProperty(t))throw new Error("Cannot convert from "+t+" to "+r);var i=Sm[r][t]*e;return n!==!1?(n=Math.pow(10,parseInt(n)||5),Math.round(i*n)/n):i}});var Gx=I(Wn=>{"use strict";g();Object.defineProperty(Wn,"__esModule",{value:!0});Wn.fromRgba=$s;Wn.fromRgb=Em;Wn.fromHsla=Yu;Wn.fromHsl=Hx;Wn.fromString=Ux;Wn.default=void 0;var Rx=Ix(Tx()),P$=Ix(Px());function Ix(e){return e&&e.__esModule?e:{default:e}}function R$(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Mx(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r-1}function L$(e,t,r){var n=e/255,i=t/255,a=r/255,s=Math.max(n,i,a),o=Math.min(n,i,a),c=s-o,l=(s+o)/2;if(c===0)return[0,0,l*100];var u=c/(1-Math.abs(2*l-1)),f=function(){switch(s){case n:return(i-a)/c%6;case i:return(a-n)/c+2;default:return(n-i)/c+4}}();return[f*60,u*100,l*100]}function D$(e,t,r){var n=e/60,i=t/100,a=r/100,s=(1-Math.abs(2*a-1))*i,o=s*(1-Math.abs(n%2-1)),c=a-s/2,l=function(){return n<1?[s,o,0]:n<2?[o,s,0]:n<3?[0,s,o]:n<4?[0,o,s]:n<5?[o,0,s]:[s,0,o]}(),u=Wt(l,3),f=u[0],d=u[1],h=u[2];return[(f+c)*255,(d+c)*255,(h+c)*255]}var N$=function(){function e(t){var r=Wt(t,4),n=r[0],i=r[1],a=r[2],s=r[3];R$(this,e),this.values=[Math.max(Math.min(parseInt(n,10),255),0),Math.max(Math.min(parseInt(i,10),255),0),Math.max(Math.min(parseInt(a,10),255),0),s==null?1:Math.max(Math.min(parseFloat(s),255),0)]}return M$(e,[{key:"toRgbString",value:function(){var r=Wt(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3];return s===1?"rgb(".concat(n,", ").concat(i,", ").concat(a,")"):"rgba(".concat(n,", ").concat(i,", ").concat(a,", ").concat(s,")")}},{key:"toHslString",value:function(){var r=this.toHslaArray(),n=Wt(r,4),i=n[0],a=n[1],s=n[2],o=n[3];return o===1?"hsl(".concat(i,", ").concat(a,"%, ").concat(s,"%)"):"hsla(".concat(i,", ").concat(a,"%, ").concat(s,"%, ").concat(o,")")}},{key:"toHexString",value:function(){var r=Wt(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3];return n=Number(n).toString(16).padStart(2,"0"),i=Number(i).toString(16).padStart(2,"0"),a=Number(a).toString(16).padStart(2,"0"),s=s<1?parseInt(s*255,10).toString(16).padStart(2,"0"):"","#".concat(n).concat(i).concat(a).concat(s)}},{key:"toRgbaArray",value:function(){return this.values}},{key:"toHslaArray",value:function(){var r=Wt(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3],o=L$(n,i,a),c=Wt(o,3),l=c[0],u=c[1],f=c[2];return[l,u,f,s]}}]),e}();function $s(e){var t=Wt(e,4),r=t[0],n=t[1],i=t[2],a=t[3];return new N$([r,n,i,a])}function Em(e){var t=Wt(e,3),r=t[0],n=t[1],i=t[2];return $s([r,n,i,1])}function Yu(e){var t=Wt(e,4),r=t[0],n=t[1],i=t[2],a=t[3],s=D$(r,n,i),o=Wt(s,3),c=o[0],l=o[1],u=o[2];return $s([c,l,u,a])}function Hx(e){var t=Wt(e,3),r=t[0],n=t[1],i=t[2];return Yu([r,n,i,1])}function j$(e){var t=Fx.exec(e)||$x.exec(e),r=Wt(t,5),n=r[1],i=r[2],a=r[3],s=r[4];return n=parseInt(n.length<2?n.repeat(2):n,16),i=parseInt(i.length<2?i.repeat(2):i,16),a=parseInt(a.length<2?a.repeat(2):a,16),s=s&&(parseInt(s.length<2?s.repeat(2):s,16)/255).toPrecision(1)||1,$s([n,i,a,s])}function B$(e){var t=Lx.exec(e)||Nx.exec(e)||Dx.exec(e)||jx.exec(e),r=Wt(t,5),n=r[1],i=r[2],a=r[3],s=r[4];return n=Ol(n,"%")?parseInt(n,10)*255/100:parseInt(n,10),i=Ol(i,"%")?parseInt(i,10)*255/100:parseInt(i,10),a=Ol(a,"%")>0?parseInt(a,10)*255/100:parseInt(a,10),s=s===void 0?1:parseFloat(s)/(Ol(s,"%")?100:1),$s([n,i,a,s])}function H$(e){var t=Bx.exec(e),r=Wt(t,6),n=r[1],i=r[2],a=r[3],s=r[4],o=r[5];return i=i||"deg",n=(0,P$.default)(parseFloat(n),i,"deg"),a=parseFloat(a),s=parseFloat(s),o=o===void 0?1:parseFloat(o)/(Ol(o,"%")?100:1),Yu([n,a,s,o])}function Ux(e){return Rx.default[e]?Em(Rx.default[e]):Fx.test(e)||$x.test(e)?j$(e):Lx.test(e)||Nx.test(e)||Dx.test(e)||jx.test(e)?B$(e):Bx.test(e)?H$(e):null}var U$={fromString:Ux,fromRgb:Em,fromRgba:$s,fromHsl:Hx,fromHsla:Yu};Wn.default=U$});var Am=I((tz,Vx)=>{"use strict";g();var zx=Object.prototype.toString;Vx.exports=function(t){var r=zx.call(t),n=r==="[object Arguments]";return n||(n=r!=="[object Array]"&&t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&zx.call(t.callee)==="[object Function]"),n}});var eS=I((nz,Qx)=>{"use strict";g();var Jx;Object.keys||(Il=Object.prototype.hasOwnProperty,km=Object.prototype.toString,Wx=Am(),Tm=Object.prototype.propertyIsEnumerable,qx=!Tm.call({toString:null},"toString"),Yx=Tm.call(function(){},"prototype"),Fl=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Xu=function(e){var t=e.constructor;return t&&t.prototype===e},Xx={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},Zx=function(){if(typeof window=="undefined")return!1;for(var e in window)try{if(!Xx["$"+e]&&Il.call(window,e)&&window[e]!==null&&typeof window[e]=="object")try{Xu(window[e])}catch(t){return!0}}catch(t){return!0}return!1}(),Kx=function(e){if(typeof window=="undefined"||!Zx)return Xu(e);try{return Xu(e)}catch(t){return!1}},Jx=function(t){var r=t!==null&&typeof t=="object",n=km.call(t)==="[object Function]",i=Wx(t),a=r&&km.call(t)==="[object String]",s=[];if(!r&&!n&&!i)throw new TypeError("Object.keys called on a non-object");var o=Yx&&n;if(a&&t.length>0&&!Il.call(t,0))for(var c=0;c0)for(var l=0;l{"use strict";g();var G$=Array.prototype.slice,z$=Am(),tS=Object.keys,Zu=tS?function(t){return tS(t)}:eS(),rS=Object.keys;Zu.shim=function(){if(Object.keys){var t=function(){var r=Object.keys(arguments);return r&&r.length===arguments.length}(1,2);t||(Object.keys=function(n){return z$(n)?rS(G$.call(n)):rS(n)})}else Object.keys=Zu;return Object.keys||Zu};nS.exports=Zu});var aS=I((oz,iS)=>{"use strict";g();iS.exports=Error});var oS=I((cz,sS)=>{"use strict";g();sS.exports=EvalError});var cS=I((fz,lS)=>{"use strict";g();lS.exports=RangeError});var fS=I((hz,uS)=>{"use strict";g();uS.exports=ReferenceError});var Cm=I((mz,dS)=>{"use strict";g();dS.exports=SyntaxError});var qn=I((vz,hS)=>{"use strict";g();hS.exports=TypeError});var mS=I((wz,pS)=>{"use strict";g();pS.exports=URIError});var $l=I((_z,gS)=>{"use strict";g();gS.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;t[r]=i;for(r in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var a=Object.getOwnPropertySymbols(t);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(t,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}});var Ju=I((Sz,yS)=>{"use strict";g();var vS=typeof Symbol!="undefined"&&Symbol,V$=$l();yS.exports=function(){return typeof vS!="function"||typeof Symbol!="function"||typeof vS("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:V$()}});var bS=I((Az,wS)=>{"use strict";g();var Pm={__proto__:null,foo:{}},W$=Object;wS.exports=function(){return{__proto__:Pm}.foo===Pm.foo&&!(Pm instanceof W$)}});var SS=I((Tz,xS)=>{"use strict";g();var q$="Function.prototype.bind called on incompatible ",Y$=Object.prototype.toString,X$=Math.max,Z$="[object Function]",_S=function(t,r){for(var n=[],i=0;i{"use strict";g();var Q$=SS();ES.exports=Function.prototype.bind||Q$});var Rm=I((Mz,AS)=>{"use strict";g();var eL=Function.prototype.call,tL=Object.prototype.hasOwnProperty,rL=Qu();AS.exports=rL.call(eL,tL)});var Qr=I((Iz,RS)=>{"use strict";g();var ve,nL=aS(),iL=oS(),aL=cS(),sL=fS(),js=Cm(),Ns=qn(),oL=mS(),PS=Function,Mm=function(e){try{return PS('"use strict"; return ('+e+").constructor;")()}catch(t){}},va=Object.getOwnPropertyDescriptor;if(va)try{va({},"")}catch(e){va=null}var Om=function(){throw new Ns},lL=va?function(){try{return arguments.callee,Om}catch(e){try{return va(arguments,"callee").get}catch(t){return Om}}}():Om,Ls=Ju()(),cL=bS()(),wt=Object.getPrototypeOf||(cL?function(e){return e.__proto__}:null),Ds={},uL=typeof Uint8Array=="undefined"||!wt?ve:wt(Uint8Array),ya={__proto__:null,"%AggregateError%":typeof AggregateError=="undefined"?ve:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?ve:ArrayBuffer,"%ArrayIteratorPrototype%":Ls&&wt?wt([][Symbol.iterator]()):ve,"%AsyncFromSyncIteratorPrototype%":ve,"%AsyncFunction%":Ds,"%AsyncGenerator%":Ds,"%AsyncGeneratorFunction%":Ds,"%AsyncIteratorPrototype%":Ds,"%Atomics%":typeof Atomics=="undefined"?ve:Atomics,"%BigInt%":typeof BigInt=="undefined"?ve:BigInt,"%BigInt64Array%":typeof BigInt64Array=="undefined"?ve:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array=="undefined"?ve:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?ve:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":nL,"%eval%":eval,"%EvalError%":iL,"%Float32Array%":typeof Float32Array=="undefined"?ve:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?ve:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?ve:FinalizationRegistry,"%Function%":PS,"%GeneratorFunction%":Ds,"%Int8Array%":typeof Int8Array=="undefined"?ve:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?ve:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?ve:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Ls&&wt?wt(wt([][Symbol.iterator]())):ve,"%JSON%":typeof JSON=="object"?JSON:ve,"%Map%":typeof Map=="undefined"?ve:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!Ls||!wt?ve:wt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?ve:Promise,"%Proxy%":typeof Proxy=="undefined"?ve:Proxy,"%RangeError%":aL,"%ReferenceError%":sL,"%Reflect%":typeof Reflect=="undefined"?ve:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?ve:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!Ls||!wt?ve:wt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?ve:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Ls&&wt?wt(""[Symbol.iterator]()):ve,"%Symbol%":Ls?Symbol:ve,"%SyntaxError%":js,"%ThrowTypeError%":lL,"%TypedArray%":uL,"%TypeError%":Ns,"%Uint8Array%":typeof Uint8Array=="undefined"?ve:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?ve:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?ve:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?ve:Uint32Array,"%URIError%":oL,"%WeakMap%":typeof WeakMap=="undefined"?ve:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?ve:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?ve:WeakSet};if(wt)try{null.error}catch(e){kS=wt(wt(e)),ya["%Error.prototype%"]=kS}var kS,fL=function e(t){var r;if(t==="%AsyncFunction%")r=Mm("async function () {}");else if(t==="%GeneratorFunction%")r=Mm("function* () {}");else if(t==="%AsyncGeneratorFunction%")r=Mm("async function* () {}");else if(t==="%AsyncGenerator%"){var n=e("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(t==="%AsyncIteratorPrototype%"){var i=e("%AsyncGenerator%");i&&wt&&(r=wt(i.prototype))}return ya[t]=r,r},TS={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Ll=Qu(),ef=Rm(),dL=Ll.call(Function.call,Array.prototype.concat),hL=Ll.call(Function.apply,Array.prototype.splice),CS=Ll.call(Function.call,String.prototype.replace),tf=Ll.call(Function.call,String.prototype.slice),pL=Ll.call(Function.call,RegExp.prototype.exec),mL=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,gL=/\\(\\)?/g,vL=function(t){var r=tf(t,0,1),n=tf(t,-1);if(r==="%"&&n!=="%")throw new js("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new js("invalid intrinsic syntax, expected opening `%`");var i=[];return CS(t,mL,function(a,s,o,c){i[i.length]=o?CS(c,gL,"$1"):s||a}),i},yL=function(t,r){var n=t,i;if(ef(TS,n)&&(i=TS[n],n="%"+i[0]+"%"),ef(ya,n)){var a=ya[n];if(a===Ds&&(a=fL(n)),typeof a=="undefined"&&!r)throw new Ns("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:a}}throw new js("intrinsic "+t+" does not exist!")};RS.exports=function(t,r){if(typeof t!="string"||t.length===0)throw new Ns("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Ns('"allowMissing" argument must be a boolean');if(pL(/^%?[^%]*%?$/,t)===null)throw new js("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=vL(t),i=n.length>0?n[0]:"",a=yL("%"+i+"%",r),s=a.name,o=a.value,c=!1,l=a.alias;l&&(i=l[0],hL(n,dL([0,1],l)));for(var u=1,f=!0;u=n.length){var m=va(o,d);f=!!m,f&&"get"in m&&!("originalValue"in m.get)?o=m.get:o=o[d]}else f=ef(o,d),o=o[d];f&&!c&&(ya[s]=o)}}return o}});var nf=I(($z,MS)=>{"use strict";g();var wL=Qr(),rf=wL("%Object.defineProperty%",!0)||!1;if(rf)try{rf({},"a",{value:1})}catch(e){rf=!1}MS.exports=rf});var sf=I((Dz,OS)=>{"use strict";g();var bL=Qr(),af=bL("%Object.getOwnPropertyDescriptor%",!0);if(af)try{af([],"length")}catch(e){af=null}OS.exports=af});var of=I((jz,$S)=>{"use strict";g();var IS=nf(),_L=Cm(),Bs=qn(),FS=sf();$S.exports=function(t,r,n){if(!t||typeof t!="object"&&typeof t!="function")throw new Bs("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new Bs("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Bs("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Bs("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Bs("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Bs("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,s=arguments.length>5?arguments[5]:null,o=arguments.length>6?arguments[6]:!1,c=!!FS&&FS(t,r);if(IS)IS(t,r,{configurable:s===null&&c?c.configurable:!s,enumerable:i===null&&c?c.enumerable:!i,value:n,writable:a===null&&c?c.writable:!a});else if(o||!i&&!a&&!s)t[r]=n;else throw new _L("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var lf=I((Hz,DS)=>{"use strict";g();var Im=nf(),LS=function(){return!!Im};LS.hasArrayLengthDefineBug=function(){if(!Im)return null;try{return Im([],"length",{value:1}).length!==1}catch(t){return!0}};DS.exports=LS});var Ti=I((Gz,HS)=>{"use strict";g();var xL=Ku(),SL=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",EL=Object.prototype.toString,AL=Array.prototype.concat,NS=of(),kL=function(e){return typeof e=="function"&&EL.call(e)==="[object Function]"},jS=lf()(),TL=function(e,t,r,n){if(t in e){if(n===!0){if(e[t]===r)return}else if(!kL(n)||!n())return}jS?NS(e,t,r,!0):NS(e,t,r)},BS=function(e,t){var r=arguments.length>2?arguments[2]:{},n=xL(t);SL&&(n=AL.call(n,Object.getOwnPropertySymbols(t)));for(var i=0;i{"use strict";g();var CL=Qr(),US=of(),PL=lf()(),GS=sf(),zS=qn(),RL=CL("%Math.floor%");VS.exports=function(t,r){if(typeof t!="function")throw new zS("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||RL(r)!==r)throw new zS("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,a=!0;if("length"in t&&GS){var s=GS(t,"length");s&&!s.configurable&&(i=!1),s&&!s.writable&&(a=!1)}return(i||a||!n)&&(PL?US(t,"length",r,!0,!0):US(t,"length",r)),t}});var wa=I((qz,cf)=>{"use strict";g();var Fm=Qu(),uf=Qr(),ML=WS(),OL=qn(),XS=uf("%Function.prototype.apply%"),ZS=uf("%Function.prototype.call%"),KS=uf("%Reflect.apply%",!0)||Fm.call(ZS,XS),qS=nf(),IL=uf("%Math.max%");cf.exports=function(t){if(typeof t!="function")throw new OL("a function is required");var r=KS(Fm,ZS,arguments);return ML(r,1+IL(0,t.length-(arguments.length-1)),!0)};var YS=function(){return KS(Fm,XS,arguments)};qS?qS(cf.exports,"apply",{value:YS}):cf.exports.apply=YS});var wr=I((Xz,eE)=>{"use strict";g();var JS=Qr(),QS=wa(),FL=QS(JS("String.prototype.indexOf"));eE.exports=function(t,r){var n=JS(t,!!r);return typeof n=="function"&&FL(t,".prototype.")>-1?QS(n):n}});var $m=I((Kz,aE)=>{"use strict";g();var $L=Ku(),nE=$l()(),iE=wr(),tE=Object,LL=iE("Array.prototype.push"),rE=iE("Object.prototype.propertyIsEnumerable"),DL=nE?Object.getOwnPropertySymbols:null;aE.exports=function(t,r){if(t==null)throw new TypeError("target must be an object");var n=tE(t);if(arguments.length===1)return n;for(var i=1;i{"use strict";g();var Lm=$m(),NL=function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),r={},n=0;n{"use strict";g();var BL=Ti(),HL=Dm();oE.exports=function(){var t=HL();return BL(Object,{assign:t},{assign:function(){return Object.assign!==t}}),t}});var dE=I((nV,fE)=>{"use strict";g();var UL=Ti(),GL=wa(),zL=$m(),cE=Dm(),VL=lE(),WL=GL.apply(cE()),uE=function(t,r){return WL(Object,arguments)};UL(uE,{getPolyfill:cE,implementation:zL,shim:VL});fE.exports=uE});var pE=I((aV,hE)=>{"use strict";g();var Nl=function(){return typeof function(){}.name=="string"},Dl=Object.getOwnPropertyDescriptor;if(Dl)try{Dl([],"length")}catch(e){Dl=null}Nl.functionsHaveConfigurableNames=function(){if(!Nl()||!Dl)return!1;var t=Dl(function(){},"name");return!!t&&!!t.configurable};var qL=Function.prototype.bind;Nl.boundFunctionsHaveNames=function(){return Nl()&&typeof qL=="function"&&function(){}.bind().name!==""};hE.exports=Nl});var vE=I((oV,gE)=>{"use strict";g();var mE=of(),YL=lf()(),XL=pE().functionsHaveConfigurableNames(),ZL=qn();gE.exports=function(t,r){if(typeof t!="function")throw new ZL("`fn` is not a function");var n=arguments.length>2&&!!arguments[2];return(!n||XL)&&(YL?mE(t,"name",r,!0,!0):mE(t,"name",r)),t}});var Nm=I((cV,yE)=>{"use strict";g();var KL=vE(),JL=qn(),QL=Object;yE.exports=KL(function(){if(this==null||this!==QL(this))throw new JL("RegExp.prototype.flags getter called on non-object");var t="";return this.hasIndices&&(t+="d"),this.global&&(t+="g"),this.ignoreCase&&(t+="i"),this.multiline&&(t+="m"),this.dotAll&&(t+="s"),this.unicode&&(t+="u"),this.unicodeSets&&(t+="v"),this.sticky&&(t+="y"),t},"get flags",!0)});var jm=I((fV,wE)=>{"use strict";g();var eD=Nm(),tD=Ti().supportsDescriptors,rD=Object.getOwnPropertyDescriptor;wE.exports=function(){if(tD&&/a/mig.flags==="gim"){var t=rD(RegExp.prototype,"flags");if(t&&typeof t.get=="function"&&"dotAll"in RegExp.prototype&&"hasIndices"in RegExp.prototype){var r="",n={};if(Object.defineProperty(n,"hasIndices",{get:function(){r+="d"}}),Object.defineProperty(n,"sticky",{get:function(){r+="y"}}),t.get.call(n),r==="dy")return t.get}}return eD}});var xE=I((hV,_E)=>{"use strict";g();var nD=Ti().supportsDescriptors,iD=jm(),aD=Object.getOwnPropertyDescriptor,sD=Object.defineProperty,oD=TypeError,bE=Object.getPrototypeOf,lD=/a/;_E.exports=function(){if(!nD||!bE)throw new oD("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var t=iD(),r=bE(lD),n=aD(r,"flags");return(!n||n.get!==t)&&sD(r,"flags",{configurable:!0,enumerable:!1,get:t}),t}});var kE=I((mV,AE)=>{"use strict";g();var cD=Ti(),uD=wa(),fD=Nm(),SE=jm(),dD=xE(),EE=uD(SE());cD(EE,{getPolyfill:SE,implementation:fD,shim:dD});AE.exports=EE});var Ci=I((vV,TE)=>{"use strict";g();var hD=$l();TE.exports=function(){return hD()&&!!Symbol.toStringTag}});var Hm=I((wV,PE)=>{"use strict";g();var pD=Ci()(),mD=wr(),Bm=mD("Object.prototype.toString"),ff=function(t){return pD&&t&&typeof t=="object"&&Symbol.toStringTag in t?!1:Bm(t)==="[object Arguments]"},CE=function(t){return ff(t)?!0:t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&Bm(t)!=="[object Array]"&&Bm(t.callee)==="[object Function]"},gD=function(){return ff(arguments)}();ff.isLegacyArguments=CE;PE.exports=gD?ff:CE});var RE=I(()=>{g()});var ZE=I((EV,XE)=>{g();var Km=typeof Map=="function"&&Map.prototype,Um=Object.getOwnPropertyDescriptor&&Km?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,hf=Km&&Um&&typeof Um.get=="function"?Um.get:null,ME=Km&&Map.prototype.forEach,Jm=typeof Set=="function"&&Set.prototype,Gm=Object.getOwnPropertyDescriptor&&Jm?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,pf=Jm&&Gm&&typeof Gm.get=="function"?Gm.get:null,OE=Jm&&Set.prototype.forEach,vD=typeof WeakMap=="function"&&WeakMap.prototype,Bl=vD?WeakMap.prototype.has:null,yD=typeof WeakSet=="function"&&WeakSet.prototype,Hl=yD?WeakSet.prototype.has:null,wD=typeof WeakRef=="function"&&WeakRef.prototype,IE=wD?WeakRef.prototype.deref:null,bD=Boolean.prototype.valueOf,_D=Object.prototype.toString,xD=Function.prototype.toString,SD=String.prototype.match,Qm=String.prototype.slice,Ri=String.prototype.replace,ED=String.prototype.toUpperCase,FE=String.prototype.toLowerCase,GE=RegExp.prototype.test,$E=Array.prototype.concat,En=Array.prototype.join,AD=Array.prototype.slice,LE=Math.floor,Wm=typeof BigInt=="function"?BigInt.prototype.valueOf:null,zm=Object.getOwnPropertySymbols,qm=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Hs=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Rt=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Hs||!0)?Symbol.toStringTag:null,zE=Object.prototype.propertyIsEnumerable,DE=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function NE(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||GE.call(/e/,t))return t;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof e=="number"){var n=e<0?-LE(-e):LE(e);if(n!==e){var i=String(n),a=Qm.call(t,i.length+1);return Ri.call(i,r,"$&_")+"."+Ri.call(Ri.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Ri.call(t,r,"$&_")}var Ym=RE(),jE=Ym.custom,BE=WE(jE)?jE:null;XE.exports=function e(t,r,n,i){var a=r||{};if(Pi(a,"quoteStyle")&&a.quoteStyle!=="single"&&a.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Pi(a,"maxStringLength")&&(typeof a.maxStringLength=="number"?a.maxStringLength<0&&a.maxStringLength!==1/0:a.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var s=Pi(a,"customInspect")?a.customInspect:!0;if(typeof s!="boolean"&&s!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Pi(a,"indent")&&a.indent!==null&&a.indent!==" "&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Pi(a,"numericSeparator")&&typeof a.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=a.numericSeparator;if(typeof t=="undefined")return"undefined";if(t===null)return"null";if(typeof t=="boolean")return t?"true":"false";if(typeof t=="string")return YE(t,a);if(typeof t=="number"){if(t===0)return 1/0/t>0?"0":"-0";var c=String(t);return o?NE(t,c):c}if(typeof t=="bigint"){var l=String(t)+"n";return o?NE(t,l):l}var u=typeof a.depth=="undefined"?5:a.depth;if(typeof n=="undefined"&&(n=0),n>=u&&u>0&&typeof t=="object")return Xm(t)?"[Array]":"[Object]";var f=GD(a,n);if(typeof i=="undefined")i=[];else if(qE(i,t)>=0)return"[Circular]";function d(j,D,Q){if(D&&(i=AD.call(i),i.push(D)),Q){var de={depth:a.depth};return Pi(a,"quoteStyle")&&(de.quoteStyle=a.quoteStyle),e(j,de,n+1,i)}return e(j,a,n+1,i)}if(typeof t=="function"&&!HE(t)){var h=FD(t),p=df(t,d);return"[Function"+(h?": "+h:" (anonymous)")+"]"+(p.length>0?" { "+En.call(p,", ")+" }":"")}if(WE(t)){var m=Hs?Ri.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):qm.call(t);return typeof t=="object"&&!Hs?jl(m):m}if(BD(t)){for(var v="<"+FE.call(String(t.nodeName)),y=t.attributes||[],b=0;b",v}if(Xm(t)){if(t.length===0)return"[]";var x=df(t,d);return f&&!UD(x)?"["+Zm(x,f)+"]":"[ "+En.call(x,", ")+" ]"}if(CD(t)){var E=df(t,d);return!("cause"in Error.prototype)&&"cause"in t&&!zE.call(t,"cause")?"{ ["+String(t)+"] "+En.call($E.call("[cause]: "+d(t.cause),E),", ")+" }":E.length===0?"["+String(t)+"]":"{ ["+String(t)+"] "+En.call(E,", ")+" }"}if(typeof t=="object"&&s){if(BE&&typeof t[BE]=="function"&&Ym)return Ym(t,{depth:u-n});if(s!=="symbol"&&typeof t.inspect=="function")return t.inspect()}if($D(t)){var _=[];return ME&&ME.call(t,function(j,D){_.push(d(D,t,!0)+" => "+d(j,t))}),UE("Map",hf.call(t),_,f)}if(ND(t)){var k=[];return OE&&OE.call(t,function(j){k.push(d(j,t))}),UE("Set",pf.call(t),k,f)}if(LD(t))return Vm("WeakMap");if(jD(t))return Vm("WeakSet");if(DD(t))return Vm("WeakRef");if(RD(t))return jl(d(Number(t)));if(OD(t))return jl(d(Wm.call(t)));if(MD(t))return jl(bD.call(t));if(PD(t))return jl(d(String(t)));if(typeof window!="undefined"&&t===window)return"{ [object Window] }";if(typeof globalThis!="undefined"&&t===globalThis||typeof global!="undefined"&&t===global)return"{ [object globalThis] }";if(!TD(t)&&!HE(t)){var w=df(t,d),A=DE?DE(t)===Object.prototype:t instanceof Object||t.constructor===Object,S=t instanceof Object?"":"null prototype",T=!A&&Rt&&Object(t)===t&&Rt in t?Qm.call(Mi(t),8,-1):S?"Object":"",P=A||typeof t.constructor!="function"?"":t.constructor.name?t.constructor.name+" ":"",O=P+(T||S?"["+En.call($E.call([],T||[],S||[]),": ")+"] ":"");return w.length===0?O+"{}":f?O+"{"+Zm(w,f)+"}":O+"{ "+En.call(w,", ")+" }"}return String(t)};function VE(e,t,r){var n=(r.quoteStyle||t)==="double"?'"':"'";return n+e+n}function kD(e){return Ri.call(String(e),/"/g,""")}function Xm(e){return Mi(e)==="[object Array]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function TD(e){return Mi(e)==="[object Date]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function HE(e){return Mi(e)==="[object RegExp]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function CD(e){return Mi(e)==="[object Error]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function PD(e){return Mi(e)==="[object String]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function RD(e){return Mi(e)==="[object Number]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function MD(e){return Mi(e)==="[object Boolean]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function WE(e){if(Hs)return e&&typeof e=="object"&&e instanceof Symbol;if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||!qm)return!1;try{return qm.call(e),!0}catch(t){}return!1}function OD(e){if(!e||typeof e!="object"||!Wm)return!1;try{return Wm.call(e),!0}catch(t){}return!1}var ID=Object.prototype.hasOwnProperty||function(e){return e in this};function Pi(e,t){return ID.call(e,t)}function Mi(e){return _D.call(e)}function FD(e){if(e.name)return e.name;var t=SD.call(xD.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function qE(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return YE(Qm.call(e,0,t.maxStringLength),t)+n}var i=Ri.call(Ri.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,HD);return VE(i,"single",t)}function HD(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+ED.call(t.toString(16))}function jl(e){return"Object("+e+")"}function Vm(e){return e+" { ? }"}function UE(e,t,r,n){var i=n?Zm(r,n):En.call(r,", ");return e+" ("+t+") {"+i+"}"}function UD(e){for(var t=0;t=0)return!1;return!0}function GD(e,t){var r;if(e.indent===" ")r=" ";else if(typeof e.indent=="number"&&e.indent>0)r=En.call(Array(e.indent+1)," ");else return null;return{base:r,prev:En.call(Array(t+1),r)}}function Zm(e,t){if(e.length===0)return"";var r=` +var UP=Object.create;var Oo=Object.defineProperty;var GP=Object.getOwnPropertyDescriptor;var zP=Object.getOwnPropertyNames;var VP=Object.getPrototypeOf,WP=Object.prototype.hasOwnProperty;var jv=e=>{throw TypeError(e)};var qP=(e,t,r)=>t in e?Oo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var YP=(e,t)=>()=>(e&&(t=e(e=0)),t);var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),XP=(e,t)=>{for(var r in t)Oo(e,r,{get:t[r],enumerable:!0})},Bv=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of zP(t))!WP.call(e,i)&&i!==r&&Oo(e,i,{get:()=>t[i],enumerable:!(n=GP(t,i))||n.enumerable});return e};var ze=(e,t,r)=>(r=e!=null?UP(VP(e)):{},Bv(t||!e||!e.__esModule?Oo(r,"default",{value:e,enumerable:!0}):r,e)),ZP=e=>Bv(Oo({},"__esModule",{value:!0}),e);var Cr=(e,t,r)=>qP(e,typeof t!="symbol"?t+"":t,r),Hv=(e,t,r)=>t.has(e)||jv("Cannot "+r);var Bt=(e,t,r)=>(Hv(e,t,"read from private field"),r?r.call(e):t.get(e)),Pc=(e,t,r)=>t.has(e)?jv("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Rc=(e,t,r,n)=>(Hv(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var zv=I(Mc=>{"use strict";g();Mc.byteLength=JP;Mc.toByteArray=eR;Mc.fromByteArray=nR;var dn=[],Pr=[],KP=typeof Uint8Array!="undefined"?Uint8Array:Array,Qd="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Xi=0,Uv=Qd.length;Xi0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var n=r===t?0:4-r%4;return[r,n]}function JP(e){var t=Gv(e),r=t[0],n=t[1];return(r+n)*3/4-n}function QP(e,t,r){return(t+r)*3/4-r}function eR(e){var t,r=Gv(e),n=r[0],i=r[1],a=new KP(QP(e,n,i)),s=0,o=i>0?n-4:n,c;for(c=0;c>16&255,a[s++]=t>>8&255,a[s++]=t&255;return i===2&&(t=Pr[e.charCodeAt(c)]<<2|Pr[e.charCodeAt(c+1)]>>4,a[s++]=t&255),i===1&&(t=Pr[e.charCodeAt(c)]<<10|Pr[e.charCodeAt(c+1)]<<4|Pr[e.charCodeAt(c+2)]>>2,a[s++]=t>>8&255,a[s++]=t&255),a}function tR(e){return dn[e>>18&63]+dn[e>>12&63]+dn[e>>6&63]+dn[e&63]}function rR(e,t,r){for(var n,i=[],a=t;ao?o:s+a));return n===1?(t=e[r-1],i.push(dn[t>>2]+dn[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],i.push(dn[t>>10]+dn[t>>4&63]+dn[t<<2&63]+"=")),i.join("")}});var Vv=I(eh=>{g();eh.read=function(e,t,r,n,i){var a,s,o=i*8-n-1,c=(1<>1,u=-7,f=r?i-1:0,d=r?-1:1,h=e[t+f];for(f+=d,a=h&(1<<-u)-1,h>>=-u,u+=o;u>0;a=a*256+e[t+f],f+=d,u-=8);for(s=a&(1<<-u)-1,a>>=-u,u+=n;u>0;s=s*256+e[t+f],f+=d,u-=8);if(a===0)a=1-l;else{if(a===c)return s?NaN:(h?-1:1)*(1/0);s=s+Math.pow(2,n),a=a-l}return(h?-1:1)*s*Math.pow(2,a-n)};eh.write=function(e,t,r,n,i,a){var s,o,c,l=a*8-i-1,u=(1<>1,d=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,p=n?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,s=u):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),s+f>=1?t+=d/c:t+=d*Math.pow(2,1-f),t*c>=2&&(s++,c/=2),s+f>=u?(o=0,s=u):s+f>=1?(o=(t*c-1)*Math.pow(2,i),s=s+f):(o=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[r+h]=o&255,h+=p,o/=256,i-=8);for(s=s<0;e[r+h]=s&255,h+=p,s/=256,l-=8);e[r+h-p]|=m*128}});var ch=I(Za=>{"use strict";g();var th=zv(),Ya=Vv(),Wv=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Za.Buffer=M;Za.SlowBuffer=cR;Za.INSPECT_MAX_BYTES=50;var Oc=2147483647;Za.kMaxLength=Oc;M.TYPED_ARRAY_SUPPORT=iR();!M.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function iR(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch(e){return!1}}Object.defineProperty(M.prototype,"parent",{enumerable:!0,get:function(){if(M.isBuffer(this))return this.buffer}});Object.defineProperty(M.prototype,"offset",{enumerable:!0,get:function(){if(M.isBuffer(this))return this.byteOffset}});function Ln(e){if(e>Oc)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,M.prototype),t}function M(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return ah(e)}return Zv(e,t,r)}M.poolSize=8192;function Zv(e,t,r){if(typeof e=="string")return sR(e,t);if(ArrayBuffer.isView(e))return oR(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(hn(e,ArrayBuffer)||e&&hn(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(hn(e,SharedArrayBuffer)||e&&hn(e.buffer,SharedArrayBuffer)))return nh(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return M.from(n,t,r);let i=lR(e);if(i)return i;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return M.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}M.from=function(e,t,r){return Zv(e,t,r)};Object.setPrototypeOf(M.prototype,Uint8Array.prototype);Object.setPrototypeOf(M,Uint8Array);function Kv(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function aR(e,t,r){return Kv(e),e<=0?Ln(e):t!==void 0?typeof r=="string"?Ln(e).fill(t,r):Ln(e).fill(t):Ln(e)}M.alloc=function(e,t,r){return aR(e,t,r)};function ah(e){return Kv(e),Ln(e<0?0:sh(e)|0)}M.allocUnsafe=function(e){return ah(e)};M.allocUnsafeSlow=function(e){return ah(e)};function sR(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!M.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=Jv(e,t)|0,n=Ln(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function rh(e){let t=e.length<0?0:sh(e.length)|0,r=Ln(t);for(let n=0;n=Oc)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Oc.toString(16)+" bytes");return e|0}function cR(e){return+e!=e&&(e=0),M.alloc(+e)}M.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==M.prototype};M.compare=function(t,r){if(hn(t,Uint8Array)&&(t=M.from(t,t.offset,t.byteLength)),hn(r,Uint8Array)&&(r=M.from(r,r.offset,r.byteLength)),!M.isBuffer(t)||!M.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===r)return 0;let n=t.length,i=r.length;for(let a=0,s=Math.min(n,i);ai.length?(M.isBuffer(s)||(s=M.from(s)),s.copy(i,a)):Uint8Array.prototype.set.call(i,s,a);else if(M.isBuffer(s))s.copy(i,a);else throw new TypeError('"list" argument must be an Array of Buffers');a+=s.length}return i};function Jv(e,t){if(M.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||hn(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return ih(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return o1(e).length;default:if(i)return n?-1:ih(e).length;t=(""+t).toLowerCase(),i=!0}}M.byteLength=Jv;function uR(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return bR(this,t,r);case"utf8":case"utf-8":return e1(this,t,r);case"ascii":return yR(this,t,r);case"latin1":case"binary":return wR(this,t,r);case"base64":return gR(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _R(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}M.prototype._isBuffer=!0;function Zi(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}M.prototype.swap16=function(){let t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let r=0;rr&&(t+=" ... "),""};Wv&&(M.prototype[Wv]=M.prototype.inspect);M.prototype.compare=function(t,r,n,i,a){if(hn(t,Uint8Array)&&(t=M.from(t,t.offset,t.byteLength)),!M.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;let s=a-i,o=n-r,c=Math.min(s,o),l=this.slice(i,a),u=t.slice(r,n);for(let f=0;f2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,lh(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=M.from(t,n)),M.isBuffer(t))return t.length===0?-1:qv(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):qv(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function qv(e,t,r,n,i){let a=1,s=e.length,o=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,s/=2,o/=2,r/=2}function c(u,f){return a===1?u[f]:u.readUInt16BE(f*a)}let l;if(i){let u=-1;for(l=r;ls&&(r=s-o),l=r;l>=0;l--){let u=!0;for(let f=0;fi&&(n=i)):n=i;let a=t.length;n>a/2&&(n=a/2);let s;for(s=0;s>>0,isFinite(n)?(n=n>>>0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let a=this.length-r;if((n===void 0||n>a)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let s=!1;for(;;)switch(i){case"hex":return fR(this,t,r,n);case"utf8":case"utf-8":return dR(this,t,r,n);case"ascii":case"latin1":case"binary":return hR(this,t,r,n);case"base64":return pR(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return mR(this,t,r,n);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}};M.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function gR(e,t,r){return t===0&&r===e.length?th.fromByteArray(e):th.fromByteArray(e.slice(t,r))}function e1(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:a>223?3:a>191?2:1;if(i+o<=r){let c,l,u,f;switch(o){case 1:a<128&&(s=a);break;case 2:c=e[i+1],(c&192)===128&&(f=(a&31)<<6|c&63,f>127&&(s=f));break;case 3:c=e[i+1],l=e[i+2],(c&192)===128&&(l&192)===128&&(f=(a&15)<<12|(c&63)<<6|l&63,f>2047&&(f<55296||f>57343)&&(s=f));break;case 4:c=e[i+1],l=e[i+2],u=e[i+3],(c&192)===128&&(l&192)===128&&(u&192)===128&&(f=(a&15)<<18|(c&63)<<12|(l&63)<<6|u&63,f>65535&&f<1114112&&(s=f))}}s===null?(s=65533,o=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=o}return vR(n)}var Yv=4096;function vR(e){let t=e.length;if(t<=Yv)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let a=t;an&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),rr)throw new RangeError("Trying to access beyond buffer length")}M.prototype.readUintLE=M.prototype.readUIntLE=function(t,r,n){t=t>>>0,r=r>>>0,n||yt(t,r,this.length);let i=this[t],a=1,s=0;for(;++s>>0,r=r>>>0,n||yt(t,r,this.length);let i=this[t+--r],a=1;for(;r>0&&(a*=256);)i+=this[t+--r]*a;return i};M.prototype.readUint8=M.prototype.readUInt8=function(t,r){return t=t>>>0,r||yt(t,1,this.length),this[t]};M.prototype.readUint16LE=M.prototype.readUInt16LE=function(t,r){return t=t>>>0,r||yt(t,2,this.length),this[t]|this[t+1]<<8};M.prototype.readUint16BE=M.prototype.readUInt16BE=function(t,r){return t=t>>>0,r||yt(t,2,this.length),this[t]<<8|this[t+1]};M.prototype.readUint32LE=M.prototype.readUInt32LE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};M.prototype.readUint32BE=M.prototype.readUInt32BE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};M.prototype.readBigUInt64LE=ui(function(t){t=t>>>0,Xa(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&Io(t,this.length-8);let i=r+this[++t]*2**8+this[++t]*2**16+this[++t]*2**24,a=this[++t]+this[++t]*2**8+this[++t]*2**16+n*2**24;return BigInt(i)+(BigInt(a)<>>0,Xa(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&Io(t,this.length-8);let i=r*2**24+this[++t]*2**16+this[++t]*2**8+this[++t],a=this[++t]*2**24+this[++t]*2**16+this[++t]*2**8+n;return(BigInt(i)<>>0,r=r>>>0,n||yt(t,r,this.length);let i=this[t],a=1,s=0;for(;++s=a&&(i-=Math.pow(2,8*r)),i};M.prototype.readIntBE=function(t,r,n){t=t>>>0,r=r>>>0,n||yt(t,r,this.length);let i=r,a=1,s=this[t+--i];for(;i>0&&(a*=256);)s+=this[t+--i]*a;return a*=128,s>=a&&(s-=Math.pow(2,8*r)),s};M.prototype.readInt8=function(t,r){return t=t>>>0,r||yt(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]};M.prototype.readInt16LE=function(t,r){t=t>>>0,r||yt(t,2,this.length);let n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n};M.prototype.readInt16BE=function(t,r){t=t>>>0,r||yt(t,2,this.length);let n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n};M.prototype.readInt32LE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};M.prototype.readInt32BE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};M.prototype.readBigInt64LE=ui(function(t){t=t>>>0,Xa(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&Io(t,this.length-8);let i=this[t+4]+this[t+5]*2**8+this[t+6]*2**16+(n<<24);return(BigInt(i)<>>0,Xa(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&Io(t,this.length-8);let i=(r<<24)+this[++t]*2**16+this[++t]*2**8+this[++t];return(BigInt(i)<>>0,r||yt(t,4,this.length),Ya.read(this,t,!0,23,4)};M.prototype.readFloatBE=function(t,r){return t=t>>>0,r||yt(t,4,this.length),Ya.read(this,t,!1,23,4)};M.prototype.readDoubleLE=function(t,r){return t=t>>>0,r||yt(t,8,this.length),Ya.read(this,t,!0,52,8)};M.prototype.readDoubleBE=function(t,r){return t=t>>>0,r||yt(t,8,this.length),Ya.read(this,t,!1,52,8)};function Kt(e,t,r,n,i,a){if(!M.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}M.prototype.writeUintLE=M.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r>>>0,n=n>>>0,!i){let o=Math.pow(2,8*n)-1;Kt(this,t,r,n,o,0)}let a=1,s=0;for(this[r]=t&255;++s>>0,n=n>>>0,!i){let o=Math.pow(2,8*n)-1;Kt(this,t,r,n,o,0)}let a=n-1,s=1;for(this[r+a]=t&255;--a>=0&&(s*=256);)this[r+a]=t/s&255;return r+n};M.prototype.writeUint8=M.prototype.writeUInt8=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,1,255,0),this[r]=t&255,r+1};M.prototype.writeUint16LE=M.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,2,65535,0),this[r]=t&255,this[r+1]=t>>>8,r+2};M.prototype.writeUint16BE=M.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,2,65535,0),this[r]=t>>>8,this[r+1]=t&255,r+2};M.prototype.writeUint32LE=M.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,4,4294967295,0),this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255,r+4};M.prototype.writeUint32BE=M.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,4,4294967295,0),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255,r+4};function t1(e,t,r,n,i){s1(t,n,i,e,r,7);let a=Number(t&BigInt(4294967295));e[r++]=a,a=a>>8,e[r++]=a,a=a>>8,e[r++]=a,a=a>>8,e[r++]=a;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function r1(e,t,r,n,i){s1(t,n,i,e,r,7);let a=Number(t&BigInt(4294967295));e[r+7]=a,a=a>>8,e[r+6]=a,a=a>>8,e[r+5]=a,a=a>>8,e[r+4]=a;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}M.prototype.writeBigUInt64LE=ui(function(t,r=0){return t1(this,t,r,BigInt(0),BigInt("0xffffffffffffffff"))});M.prototype.writeBigUInt64BE=ui(function(t,r=0){return r1(this,t,r,BigInt(0),BigInt("0xffffffffffffffff"))});M.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r>>>0,!i){let c=Math.pow(2,8*n-1);Kt(this,t,r,n,c-1,-c)}let a=0,s=1,o=0;for(this[r]=t&255;++a>0)-o&255;return r+n};M.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r>>>0,!i){let c=Math.pow(2,8*n-1);Kt(this,t,r,n,c-1,-c)}let a=n-1,s=1,o=0;for(this[r+a]=t&255;--a>=0&&(s*=256);)t<0&&o===0&&this[r+a+1]!==0&&(o=1),this[r+a]=(t/s>>0)-o&255;return r+n};M.prototype.writeInt8=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,1,127,-128),t<0&&(t=255+t+1),this[r]=t&255,r+1};M.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,2,32767,-32768),this[r]=t&255,this[r+1]=t>>>8,r+2};M.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,2,32767,-32768),this[r]=t>>>8,this[r+1]=t&255,r+2};M.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,4,2147483647,-2147483648),this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24,r+4};M.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r>>>0,n||Kt(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255,r+4};M.prototype.writeBigInt64LE=ui(function(t,r=0){return t1(this,t,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});M.prototype.writeBigInt64BE=ui(function(t,r=0){return r1(this,t,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function n1(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function i1(e,t,r,n,i){return t=+t,r=r>>>0,i||n1(e,t,r,4,34028234663852886e22,-34028234663852886e22),Ya.write(e,t,r,n,23,4),r+4}M.prototype.writeFloatLE=function(t,r,n){return i1(this,t,r,!0,n)};M.prototype.writeFloatBE=function(t,r,n){return i1(this,t,r,!1,n)};function a1(e,t,r,n,i){return t=+t,r=r>>>0,i||n1(e,t,r,8,17976931348623157e292,-17976931348623157e292),Ya.write(e,t,r,n,52,8),r+8}M.prototype.writeDoubleLE=function(t,r,n){return a1(this,t,r,!0,n)};M.prototype.writeDoubleBE=function(t,r,n){return a1(this,t,r,!1,n)};M.prototype.copy=function(t,r,n,i){if(!M.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r>>0,n=n===void 0?this.length:n>>>0,t||(t=0);let a;if(typeof t=="number")for(a=r;a2**32?i=Xv(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=Xv(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function Xv(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function xR(e,t,r){Xa(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&Io(t,e.length-(r+1))}function s1(e,t,r,n,i,a){if(e>r||e3?t===0||t===BigInt(0)?o=`>= 0${s} and < 2${s} ** ${(a+1)*8}${s}`:o=`>= -(2${s} ** ${(a+1)*8-1}${s}) and < 2 ** ${(a+1)*8-1}${s}`:o=`>= ${t}${s} and <= ${r}${s}`,new qa.ERR_OUT_OF_RANGE("value",o,e)}xR(n,i,a)}function Xa(e,t){if(typeof e!="number")throw new qa.ERR_INVALID_ARG_TYPE(t,"number",e)}function Io(e,t,r){throw Math.floor(e)!==e?(Xa(e,r),new qa.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new qa.ERR_BUFFER_OUT_OF_BOUNDS:new qa.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var SR=/[^+/0-9A-Za-z-_]/g;function ER(e){if(e=e.split("=")[0],e=e.trim().replace(SR,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function ih(e,t){t=t||1/0;let r,n=e.length,i=null,a=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function AR(e){let t=[];for(let r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function o1(e){return th.toByteArray(ER(e))}function Ic(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function hn(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function lh(e){return e!==e}var TR=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function ui(e){return typeof BigInt=="undefined"?CR:e}function CR(){throw new Error("BigInt not supported")}});var l1,uh,Buffer,g=YP(()=>{l1=require("obsidian");l1.Platform.isMobileApp?uh=ch().Buffer:uh=global.Buffer;Buffer=uh});var u1=I((XH,c1)=>{"use strict";g();var dr=function(e){if(e=e||{},this.Promise=e.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=e.domainReentrant||!1,this.domainReentrant){if(typeof process=="undefined"||typeof process.domain=="undefined")throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");this.domains=Object.create(null)}this.timeout=e.timeout||dr.DEFAULT_TIMEOUT,this.maxOccupationTime=e.maxOccupationTime||dr.DEFAULT_MAX_OCCUPATION_TIME,this.maxExecutionTime=e.maxExecutionTime||dr.DEFAULT_MAX_EXECUTION_TIME,e.maxPending===1/0||Number.isInteger(e.maxPending)&&e.maxPending>=0?this.maxPending=e.maxPending:this.maxPending=dr.DEFAULT_MAX_PENDING};dr.DEFAULT_TIMEOUT=0;dr.DEFAULT_MAX_OCCUPATION_TIME=0;dr.DEFAULT_MAX_EXECUTION_TIME=0;dr.DEFAULT_MAX_PENDING=1e3;dr.prototype.acquire=function(e,t,r,n){if(Array.isArray(e))return this._acquireBatch(e,t,r,n);if(typeof t!="function")throw new Error("You must pass a function to execute");var i=null,a=null,s=null;typeof r!="function"&&(n=r,r=null,s=new this.Promise(function(b,x){i=b,a=x})),n=n||{};var o=!1,c=null,l=null,u=null,f=this,d=function(b,x,E){l&&(clearTimeout(l),l=null),u&&(clearTimeout(u),u=null),b&&(f.queues[e]&&f.queues[e].length===0&&delete f.queues[e],f.domainReentrant&&delete f.domains[e]),o||(s?x?a(x):i(E):typeof r=="function"&&r(x,E),o=!0),b&&f.queues[e]&&f.queues[e].length>0&&f.queues[e].shift()()},h=function(b){if(o)return d(b);c&&(clearTimeout(c),c=null),f.domainReentrant&&b&&(f.domains[e]=process.domain);var x=n.maxExecutionTime||f.maxExecutionTime;if(x&&(u=setTimeout(function(){f.queues[e]&&d(b,new Error("Maximum execution time is exceeded "+e))},x)),t.length===1){var E=!1;try{t(function(_,k){E||(E=!0,d(b,_,k))})}catch(_){E||(E=!0,d(b,_))}}else f._promiseTry(function(){return t()}).then(function(_){d(b,void 0,_)},function(_){d(b,_)})};f.domainReentrant&&process.domain&&(h=process.domain.bind(h));var p=n.maxPending||f.maxPending;if(!f.queues[e])f.queues[e]=[],h(!0);else if(f.domainReentrant&&process.domain&&process.domain===f.domains[e])h(!1);else if(f.queues[e].length>=p)d(!1,new Error("Too many pending tasks in queue "+e));else{var m=function(){h(!0)};n.skipQueue?f.queues[e].unshift(m):f.queues[e].push(m);var v=n.timeout||f.timeout;v&&(c=setTimeout(function(){c=null,d(!1,new Error("async-lock timed out in queue "+e))},v))}var y=n.maxOccupationTime||f.maxOccupationTime;if(y&&(l=setTimeout(function(){f.queues[e]&&d(!1,new Error("Maximum occupation time is exceeded in queue "+e))},y)),s)return s};dr.prototype._acquireBatch=function(e,t,r,n){typeof r!="function"&&(n=r,r=null);var i=this,a=function(o,c){return function(l){i.acquire(o,c,l,n)}},s=e.reduceRight(function(o,c){return a(c,o)},t);if(typeof r=="function")s(r);else return new this.Promise(function(o,c){s.length===1?s(function(l,u){l?c(l):o(u)}):o(s())})};dr.prototype.isBusy=function(e){return e?!!this.queues[e]:Object.keys(this.queues).length>0};dr.prototype._promiseTry=function(e){try{return this.Promise.resolve(e())}catch(t){return this.Promise.reject(t)}};c1.exports=dr});var d1=I((KH,f1)=>{"use strict";g();f1.exports=u1()});var h1=I((QH,fh)=>{g();typeof Object.create=="function"?fh.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:fh.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var hh=I((dh,m1)=>{g();var Fc=ch(),pn=Fc.Buffer;function p1(e,t){for(var r in e)t[r]=e[r]}pn.from&&pn.alloc&&pn.allocUnsafe&&pn.allocUnsafeSlow?m1.exports=Fc:(p1(Fc,dh),dh.Buffer=Ki);function Ki(e,t,r){return pn(e,t,r)}Ki.prototype=Object.create(pn.prototype);p1(pn,Ki);Ki.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return pn(e,t,r)};Ki.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=pn(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};Ki.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return pn(e)};Ki.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Fc.SlowBuffer(e)}});var y1=I((rU,v1)=>{g();var g1=hh().Buffer;function $c(e,t){this._block=g1.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}$c.prototype.update=function(e,t){typeof e=="string"&&(t=t||"utf8",e=g1.from(e,t));for(var r=this._block,n=this._blockSize,i=e.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a};$c.prototype._update=function(){throw new Error("_update must be implemented by subclass")};v1.exports=$c});var _1=I((iU,b1)=>{g();var PR=h1(),w1=y1(),RR=hh().Buffer,MR=[1518500249,1859775393,-1894007588,-899497514],OR=new Array(80);function Fo(){this.init(),this._w=OR,w1.call(this,64,56)}PR(Fo,w1);Fo.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function IR(e){return e<<1|e>>>31}function FR(e){return e<<5|e>>>27}function $R(e){return e<<30|e>>>2}function LR(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}Fo.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,a=this._d|0,s=this._e|0,o=0;o<16;++o)t[o]=e.readInt32BE(o*4);for(;o<80;++o)t[o]=IR(t[o-3]^t[o-8]^t[o-14]^t[o-16]);for(var c=0;c<80;++c){var l=~~(c/20),u=FR(r)+LR(l,n,i,a)+s+t[c]+MR[l]|0;s=a,a=i,i=$R(n),n=r,r=u}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=s+this._e|0};Fo.prototype._hash=function(){var e=RR.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};b1.exports=Fo});var S1=I(ph=>{g();var x1;(function(e){typeof DO_NOT_EXPORT_CRC=="undefined"?typeof ph=="object"?e(ph):typeof define=="function"&&define.amd?define(function(){var t={};return e(t),t}):e(x1={}):e(x1={})})(function(e){e.version="1.2.2";function t(){for(var w=0,A=new Array(256),S=0;S!=256;++S)w=S,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,A[S]=w;return typeof Int32Array!="undefined"?new Int32Array(A):A}var r=t();function n(w){var A=0,S=0,T=0,P=typeof Int32Array!="undefined"?new Int32Array(4096):new Array(4096);for(T=0;T!=256;++T)P[T]=w[T];for(T=0;T!=256;++T)for(S=w[T],A=256+T;A<4096;A+=256)S=P[A]=S>>>8^w[S&255];var O=[];for(T=1;T!=16;++T)O[T-1]=typeof Int32Array!="undefined"?P.subarray(T*256,T*256+256):P.slice(T*256,T*256+256);return O}var i=n(r),a=i[0],s=i[1],o=i[2],c=i[3],l=i[4],u=i[5],f=i[6],d=i[7],h=i[8],p=i[9],m=i[10],v=i[11],y=i[12],b=i[13],x=i[14];function E(w,A){for(var S=A^-1,T=0,P=w.length;T>>8^r[(S^w.charCodeAt(T++))&255];return~S}function _(w,A){for(var S=A^-1,T=w.length-15,P=0;P>8&255]^y[w[P++]^S>>16&255]^v[w[P++]^S>>>24]^m[w[P++]]^p[w[P++]]^h[w[P++]]^d[w[P++]]^f[w[P++]]^u[w[P++]]^l[w[P++]]^c[w[P++]]^o[w[P++]]^s[w[P++]]^a[w[P++]]^r[w[P++]];for(T+=15;P>>8^r[(S^w[P++])&255];return~S}function k(w,A){for(var S=A^-1,T=0,P=w.length,O=0,j=0;T>>8^r[(S^O)&255]:O<2048?(S=S>>>8^r[(S^(192|O>>6&31))&255],S=S>>>8^r[(S^(128|O&63))&255]):O>=55296&&O<57344?(O=(O&1023)+64,j=w.charCodeAt(T++)&1023,S=S>>>8^r[(S^(240|O>>8&7))&255],S=S>>>8^r[(S^(128|O>>2&63))&255],S=S>>>8^r[(S^(128|j>>6&15|(O&3)<<4))&255],S=S>>>8^r[(S^(128|j&63))&255]):(S=S>>>8^r[(S^(224|O>>12&15))&255],S=S>>>8^r[(S^(128|O>>6&63))&255],S=S>>>8^r[(S^(128|O&63))&255]);return~S}e.table=r,e.bstr=E,e.buf=_,e.str=k})});var Dn=I(Ht=>{"use strict";g();var DR=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function NR(e,t){return Object.prototype.hasOwnProperty.call(e,t)}Ht.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(var n in r)NR(r,n)&&(e[n]=r[n])}}return e};Ht.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var jR={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray){e.set(t.subarray(r,r+n),i);return}for(var a=0;a{"use strict";g();var HR=Dn(),UR=4,E1=0,A1=1,GR=2;function Ja(e){for(var t=e.length;--t>=0;)e[t]=0}var zR=0,M1=1,VR=2,WR=3,qR=258,_h=29,Bo=256,Lo=Bo+1+_h,Ka=30,xh=19,O1=2*Lo+1,Ji=15,mh=16,YR=7,Sh=256,I1=16,F1=17,$1=18,wh=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Lc=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],XR=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],L1=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ZR=512,Nn=new Array((Lo+2)*2);Ja(Nn);var $o=new Array(Ka*2);Ja($o);var Do=new Array(ZR);Ja(Do);var No=new Array(qR-WR+1);Ja(No);var Eh=new Array(_h);Ja(Eh);var Dc=new Array(Ka);Ja(Dc);function gh(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}var D1,N1,j1;function vh(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function B1(e){return e<256?Do[e]:Do[256+(e>>>7)]}function jo(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Jt(e,t,r){e.bi_valid>mh-r?(e.bi_buf|=t<>mh-e.bi_valid,e.bi_valid+=r-mh):(e.bi_buf|=t<>>=1,r<<=1;while(--t>0);return r>>>1}function KR(e){e.bi_valid===16?(jo(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function JR(e,t){var r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,u,f,d,h,p,m=0;for(d=0;d<=Ji;d++)e.bl_count[d]=0;for(r[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;lc&&(d=c,m++),r[u*2+1]=d,!(u>n)&&(e.bl_count[d]++,h=0,u>=o&&(h=s[u-o]),p=r[u*2],e.opt_len+=p*(d+h),a&&(e.static_len+=p*(i[u*2+1]+h)));if(m!==0){do{for(d=c-1;e.bl_count[d]===0;)d--;e.bl_count[d]--,e.bl_count[d+1]+=2,e.bl_count[c]--,m-=2}while(m>0);for(d=c;d!==0;d--)for(u=e.bl_count[d];u!==0;)f=e.heap[--l],!(f>n)&&(r[f*2+1]!==d&&(e.opt_len+=(d-r[f*2+1])*r[f*2],r[f*2+1]=d),u--)}}function U1(e,t,r){var n=new Array(Ji+1),i=0,a,s;for(a=1;a<=Ji;a++)n[a]=i=i+r[a-1]<<1;for(s=0;s<=t;s++){var o=e[s*2+1];o!==0&&(e[s*2]=H1(n[o]++,o))}}function QR(){var e,t,r,n,i,a=new Array(Ji+1);for(r=0,n=0;n<_h-1;n++)for(Eh[n]=r,e=0;e<1<>=7;n8?jo(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function e5(e,t,r,n){z1(e),n&&(jo(e,r),jo(e,~r)),HR.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}function k1(e,t,r,n){var i=t*2,a=r*2;return e[i]>1;s>=1;s--)yh(e,r,s);l=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],yh(e,r,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,r[l*2]=r[s*2]+r[o*2],e.depth[l]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,r[s*2+1]=r[o*2+1]=l,e.heap[1]=l++,yh(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],JR(e,t),U1(r,c,e.bl_count)}function C1(e,t,r){var n,i=-1,a,s=t[0*2+1],o=0,c=7,l=4;for(s===0&&(c=138,l=3),t[(r+1)*2+1]=65535,n=0;n<=r;n++)a=s,s=t[(n+1)*2+1],!(++o=3&&e.bl_tree[L1[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function r5(e,t,r,n){var i;for(Jt(e,t-257,5),Jt(e,r-1,5),Jt(e,n-4,4),i=0;i>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return E1;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return A1;for(r=32;r0?(e.strm.data_type===GR&&(e.strm.data_type=n5(e)),bh(e,e.l_desc),bh(e,e.d_desc),s=t5(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&t!==-1?V1(e,t,r,n):e.strategy===UR||a===i?(Jt(e,(M1<<1)+(n?1:0),3),T1(e,Nn,$o)):(Jt(e,(VR<<1)+(n?1:0),3),r5(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),T1(e,e.dyn_ltree,e.dyn_dtree)),G1(e),n&&z1(e)}function o5(e,t,r){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=r&255,e.last_lit++,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(No[r]+Bo+1)*2]++,e.dyn_dtree[B1(t)*2]++),e.last_lit===e.lit_bufsize-1}Qa._tr_init=i5;Qa._tr_stored_block=V1;Qa._tr_flush_block=s5;Qa._tr_tally=o5;Qa._tr_align=a5});var Ah=I((dU,q1)=>{"use strict";g();function l5(e,t,r,n){for(var i=e&65535|0,a=e>>>16&65535|0,s=0;r!==0;){s=r>2e3?2e3:r,r-=s;do i=i+t[n++]|0,a=a+i|0;while(--s);i%=65521,a%=65521}return i|a<<16|0}q1.exports=l5});var kh=I((pU,Y1)=>{"use strict";g();function c5(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t}var u5=c5();function f5(e,t,r,n){var i=u5,a=n+r;e^=-1;for(var s=n;s>>8^i[(e^t[s])&255];return e^-1}Y1.exports=f5});var Nc=I((gU,X1)=>{"use strict";g();X1.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var iy=I(yn=>{"use strict";g();var Ut=Dn(),Rr=W1(),Q1=Ah(),fi=kh(),d5=Nc(),ra=0,h5=1,p5=3,gi=4,Z1=5,vn=0,K1=1,Mr=-2,m5=-3,Th=-5,g5=-1,v5=1,jc=2,y5=3,w5=4,b5=0,_5=2,Gc=8,x5=9,S5=15,E5=8,A5=29,k5=256,Ph=k5+1+A5,T5=30,C5=19,P5=2*Ph+1,R5=15,we=3,pi=258,Zr=pi+we+1,M5=32,zc=42,Rh=69,Bc=73,Hc=91,Uc=103,Qi=113,Uo=666,pt=1,Go=2,ea=3,rs=4,O5=3;function mi(e,t){return e.msg=d5[t],t}function J1(e){return(e<<1)-(e>4?9:0)}function hi(e){for(var t=e.length;--t>=0;)e[t]=0}function di(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(Ut.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))}function xt(e,t){Rr._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,di(e.strm)}function Ae(e,t){e.pending_buf[e.pending++]=t}function Ho(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function I5(e,t,r,n){var i=e.avail_in;return i>n&&(i=n),i===0?0:(e.avail_in-=i,Ut.arraySet(t,e.input,e.next_in,i,r),e.state.wrap===1?e.adler=Q1(e.adler,t,i,r):e.state.wrap===2&&(e.adler=fi(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)}function ey(e,t){var r=e.max_chain_length,n=e.strstart,i,a,s=e.prev_length,o=e.nice_match,c=e.strstart>e.w_size-Zr?e.strstart-(e.w_size-Zr):0,l=e.window,u=e.w_mask,f=e.prev,d=e.strstart+pi,h=l[n+s-1],p=l[n+s];e.prev_length>=e.good_match&&(r>>=2),o>e.lookahead&&(o=e.lookahead);do if(i=t,!(l[i+s]!==p||l[i+s-1]!==h||l[i]!==l[n]||l[++i]!==l[n+1])){n+=2,i++;do;while(l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&ns){if(e.match_start=t,s=a,a>=o)break;h=l[n+s-1],p=l[n+s]}}while((t=f[t&u])>c&&--r!==0);return s<=e.lookahead?s:e.lookahead}function ta(e){var t=e.w_size,r,n,i,a,s;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Zr)){Ut.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,r=n;do i=e.head[--r],e.head[r]=i>=t?i-t:0;while(--n);n=t,r=n;do i=e.prev[--r],e.prev[r]=i>=t?i-t:0;while(--n);a+=t}if(e.strm.avail_in===0)break;if(n=I5(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=we)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(ta(e),e.lookahead===0&&t===ra)return pt;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,xt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Zr&&(xt(e,!1),e.strm.avail_out===0))return pt}return e.insert=0,t===gi?(xt(e,!0),e.strm.avail_out===0?ea:rs):(e.strstart>e.block_start&&(xt(e,!1),e.strm.avail_out===0),pt)}function Ch(e,t){for(var r,n;;){if(e.lookahead=we&&(e.ins_h=(e.ins_h<=we)if(n=Rr._tr_tally(e,e.strstart-e.match_start,e.match_length-we),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=we){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<=we&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=we-1)),e.prev_length>=we&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-we,n=Rr._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-we),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<=we&&e.strstart>0&&(i=e.strstart-1,n=s[i],n===s[++i]&&n===s[++i]&&n===s[++i])){a=e.strstart+pi;do;while(n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=we?(r=Rr._tr_tally(e,1,e.match_length-we),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Rr._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(xt(e,!1),e.strm.avail_out===0))return pt}return e.insert=0,t===gi?(xt(e,!0),e.strm.avail_out===0?ea:rs):e.last_lit&&(xt(e,!1),e.strm.avail_out===0)?pt:Go}function L5(e,t){for(var r;;){if(e.lookahead===0&&(ta(e),e.lookahead===0)){if(t===ra)return pt;break}if(e.match_length=0,r=Rr._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(xt(e,!1),e.strm.avail_out===0))return pt}return e.insert=0,t===gi?(xt(e,!0),e.strm.avail_out===0?ea:rs):e.last_lit&&(xt(e,!1),e.strm.avail_out===0)?pt:Go}function gn(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}var ts;ts=[new gn(0,0,0,0,F5),new gn(4,4,8,4,Ch),new gn(4,5,16,8,Ch),new gn(4,6,32,32,Ch),new gn(4,4,16,16,es),new gn(8,16,32,32,es),new gn(8,16,128,128,es),new gn(8,32,128,256,es),new gn(32,128,258,1024,es),new gn(32,258,258,4096,es)];function D5(e){e.window_size=2*e.w_size,hi(e.head),e.max_lazy_match=ts[e.level].max_lazy,e.good_match=ts[e.level].good_length,e.nice_match=ts[e.level].nice_length,e.max_chain_length=ts[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=we-1,e.match_available=0,e.ins_h=0}function N5(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Gc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Ut.Buf16(P5*2),this.dyn_dtree=new Ut.Buf16((2*T5+1)*2),this.bl_tree=new Ut.Buf16((2*C5+1)*2),hi(this.dyn_ltree),hi(this.dyn_dtree),hi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Ut.Buf16(R5+1),this.heap=new Ut.Buf16(2*Ph+1),hi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Ut.Buf16(2*Ph+1),hi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function ty(e){var t;return!e||!e.state?mi(e,Mr):(e.total_in=e.total_out=0,e.data_type=_5,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?zc:Qi,e.adler=t.wrap===2?0:1,t.last_flush=ra,Rr._tr_init(t),vn)}function ry(e){var t=ty(e);return t===vn&&D5(e.state),t}function j5(e,t){return!e||!e.state||e.state.wrap!==2?Mr:(e.state.gzhead=t,vn)}function ny(e,t,r,n,i,a){if(!e)return Mr;var s=1;if(t===g5&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),i<1||i>x5||r!==Gc||n<8||n>15||t<0||t>9||a<0||a>w5)return mi(e,Mr);n===8&&(n=9);var o=new N5;return e.state=o,o.strm=e,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<Z1||t<0)return e?mi(e,Mr):Mr;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Uo&&t!==gi)return mi(e,e.avail_out===0?Th:Mr);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===zc)if(n.wrap===2)e.adler=0,Ae(n,31),Ae(n,139),Ae(n,8),n.gzhead?(Ae(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Ae(n,n.gzhead.time&255),Ae(n,n.gzhead.time>>8&255),Ae(n,n.gzhead.time>>16&255),Ae(n,n.gzhead.time>>24&255),Ae(n,n.level===9?2:n.strategy>=jc||n.level<2?4:0),Ae(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ae(n,n.gzhead.extra.length&255),Ae(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=fi(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Rh):(Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,0),Ae(n,n.level===9?2:n.strategy>=jc||n.level<2?4:0),Ae(n,O5),n.status=Qi);else{var s=Gc+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=jc||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=M5),s+=31-s%31,n.status=Qi,Ho(n,s),n.strstart!==0&&(Ho(n,e.adler>>>16),Ho(n,e.adler&65535)),e.adler=1}if(n.status===Rh)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),di(e),i=n.pending,n.pending===n.pending_buf_size));)Ae(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=Bc)}else n.status=Bc;if(n.status===Bc)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),di(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindexi&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.gzindex=0,n.status=Hc)}else n.status=Hc;if(n.status===Hc)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),di(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindexi&&(e.adler=fi(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.status=Uc)}else n.status=Uc;if(n.status===Uc&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&di(e),n.pending+2<=n.pending_buf_size&&(Ae(n,e.adler&255),Ae(n,e.adler>>8&255),e.adler=0,n.status=Qi)):n.status=Qi),n.pending!==0){if(di(e),e.avail_out===0)return n.last_flush=-1,vn}else if(e.avail_in===0&&J1(t)<=J1(r)&&t!==gi)return mi(e,Th);if(n.status===Uo&&e.avail_in!==0)return mi(e,Th);if(e.avail_in!==0||n.lookahead!==0||t!==ra&&n.status!==Uo){var c=n.strategy===jc?L5(n,t):n.strategy===y5?$5(n,t):ts[n.level].func(n,t);if((c===ea||c===rs)&&(n.status=Uo),c===pt||c===ea)return e.avail_out===0&&(n.last_flush=-1),vn;if(c===Go&&(t===h5?Rr._tr_align(n):t!==Z1&&(Rr._tr_stored_block(n,0,0,!1),t===p5&&(hi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),di(e),e.avail_out===0))return n.last_flush=-1,vn}return t!==gi?vn:n.wrap<=0?K1:(n.wrap===2?(Ae(n,e.adler&255),Ae(n,e.adler>>8&255),Ae(n,e.adler>>16&255),Ae(n,e.adler>>24&255),Ae(n,e.total_in&255),Ae(n,e.total_in>>8&255),Ae(n,e.total_in>>16&255),Ae(n,e.total_in>>24&255)):(Ho(n,e.adler>>>16),Ho(n,e.adler&65535)),di(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?vn:K1)}function U5(e){var t;return!e||!e.state?Mr:(t=e.state.status,t!==zc&&t!==Rh&&t!==Bc&&t!==Hc&&t!==Uc&&t!==Qi&&t!==Uo?mi(e,Mr):(e.state=null,t===Qi?mi(e,m5):vn))}function G5(e,t){var r=t.length,n,i,a,s,o,c,l,u;if(!e||!e.state||(n=e.state,s=n.wrap,s===2||s===1&&n.status!==zc||n.lookahead))return Mr;for(s===1&&(e.adler=Q1(e.adler,t,r,0)),n.wrap=0,r>=n.w_size&&(s===0&&(hi(n.head),n.strstart=0,n.block_start=0,n.insert=0),u=new Ut.Buf8(n.w_size),Ut.arraySet(u,t,r-n.w_size,n.w_size,0),t=u,r=n.w_size),o=e.avail_in,c=e.next_in,l=e.input,e.avail_in=r,e.next_in=0,e.input=t,ta(n);n.lookahead>=we;){i=n.strstart,a=n.lookahead-(we-1);do n.ins_h=(n.ins_h<{"use strict";g();var Vc=Dn(),ay=!0,sy=!0;try{String.fromCharCode.apply(null,[0])}catch(e){ay=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){sy=!1}var zo=new Vc.Buf8(256);for(jn=0;jn<256;jn++)zo[jn]=jn>=252?6:jn>=248?5:jn>=240?4:jn>=224?3:jn>=192?2:1;var jn;zo[254]=zo[254]=1;ns.string2buf=function(e){var t,r,n,i,a,s=e.length,o=0;for(i=0;i>>6,t[a++]=128|r&63):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|r&63):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|r&63);return t};function oy(e,t){if(t<65534&&(e.subarray&&sy||!e.subarray&&ay))return String.fromCharCode.apply(null,Vc.shrinkBuf(e,t));for(var r="",n=0;n4){o[n++]=65533,r+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&r1){o[n++]=65533;continue}i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|i&1023)}return oy(o,n)};ns.utf8border=function(e,t){var r;for(t=t||e.length,t>e.length&&(t=e.length),r=t-1;r>=0&&(e[r]&192)===128;)r--;return r<0||r===0?t:r+zo[e[r]]>t?r:t}});var Oh=I((xU,ly)=>{"use strict";g();function z5(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}ly.exports=z5});var dy=I(qo=>{"use strict";g();var Vo=iy(),Wo=Dn(),Fh=Mh(),$h=Nc(),V5=Oh(),fy=Object.prototype.toString,W5=0,Ih=4,is=0,cy=1,uy=2,q5=-1,Y5=0,X5=8;function na(e){if(!(this instanceof na))return new na(e);this.options=Wo.assign({level:q5,method:X5,chunkSize:16384,windowBits:15,memLevel:8,strategy:Y5,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new V5,this.strm.avail_out=0;var r=Vo.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==is)throw new Error($h[r]);if(t.header&&Vo.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(typeof t.dictionary=="string"?n=Fh.string2buf(t.dictionary):fy.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,r=Vo.deflateSetDictionary(this.strm,n),r!==is)throw new Error($h[r]);this._dict_set=!0}}na.prototype.push=function(e,t){var r=this.strm,n=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Ih:W5,typeof e=="string"?r.input=Fh.string2buf(e):fy.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Wo.Buf8(n),r.next_out=0,r.avail_out=n),i=Vo.deflate(r,a),i!==cy&&i!==is)return this.onEnd(i),this.ended=!0,!1;(r.avail_out===0||r.avail_in===0&&(a===Ih||a===uy))&&(this.options.to==="string"?this.onData(Fh.buf2binstring(Wo.shrinkBuf(r.output,r.next_out))):this.onData(Wo.shrinkBuf(r.output,r.next_out)))}while((r.avail_in>0||r.avail_out===0)&&i!==cy);return a===Ih?(i=Vo.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===is):(a===uy&&(this.onEnd(is),r.avail_out=0),!0)};na.prototype.onData=function(e){this.chunks.push(e)};na.prototype.onEnd=function(e){e===is&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Wo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Lh(e,t){var r=new na(t);if(r.push(e,!0),r.err)throw r.msg||$h[r.err];return r.result}function Z5(e,t){return t=t||{},t.raw=!0,Lh(e,t)}function K5(e,t){return t=t||{},t.gzip=!0,Lh(e,t)}qo.Deflate=na;qo.deflate=Lh;qo.deflateRaw=Z5;qo.gzip=K5});var py=I((kU,hy)=>{"use strict";g();var Wc=30,J5=12;hy.exports=function(t,r){var n,i,a,s,o,c,l,u,f,d,h,p,m,v,y,b,x,E,_,k,w,A,S,T,P;n=t.state,i=t.next_in,T=t.input,a=i+(t.avail_in-5),s=t.next_out,P=t.output,o=s-(r-t.avail_out),c=s+(t.avail_out-257),l=n.dmax,u=n.wsize,f=n.whave,d=n.wnext,h=n.window,p=n.hold,m=n.bits,v=n.lencode,y=n.distcode,b=(1<>>24,p>>>=_,m-=_,_=E>>>16&255,_===0)P[s++]=E&65535;else if(_&16){k=E&65535,_&=15,_&&(m<_&&(p+=T[i++]<>>=_,m-=_),m<15&&(p+=T[i++]<>>24,p>>>=_,m-=_,_=E>>>16&255,_&16){if(w=E&65535,_&=15,m<_&&(p+=T[i++]<l){t.msg="invalid distance too far back",n.mode=Wc;break e}if(p>>>=_,m-=_,_=s-o,w>_){if(_=w-_,_>f&&n.sane){t.msg="invalid distance too far back",n.mode=Wc;break e}if(A=0,S=h,d===0){if(A+=u-_,_2;)P[s++]=S[A++],P[s++]=S[A++],P[s++]=S[A++],k-=3;k&&(P[s++]=S[A++],k>1&&(P[s++]=S[A++]))}else{A=s-w;do P[s++]=P[A++],P[s++]=P[A++],P[s++]=P[A++],k-=3;while(k>2);k&&(P[s++]=P[A++],k>1&&(P[s++]=P[A++]))}}else if(_&64){t.msg="invalid distance code",n.mode=Wc;break e}else{E=y[(E&65535)+(p&(1<<_)-1)];continue r}break}}else if(_&64)if(_&32){n.mode=J5;break e}else{t.msg="invalid literal/length code",n.mode=Wc;break e}else{E=v[(E&65535)+(p&(1<<_)-1)];continue t}break}}while(i>3,i-=k,m-=k<<3,p&=(1<{"use strict";g();var my=Dn(),as=15,gy=852,vy=592,yy=0,Dh=1,wy=2,Q5=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],e6=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],t6=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],r6=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];by.exports=function(t,r,n,i,a,s,o,c){var l=c.bits,u=0,f=0,d=0,h=0,p=0,m=0,v=0,y=0,b=0,x=0,E,_,k,w,A,S=null,T=0,P,O=new my.Buf16(as+1),j=new my.Buf16(as+1),D=null,Q=0,de,ee,J;for(u=0;u<=as;u++)O[u]=0;for(f=0;f=1&&O[h]===0;h--);if(p>h&&(p=h),h===0)return a[s++]=1<<24|64<<16|0,a[s++]=1<<24|64<<16|0,c.bits=1,0;for(d=1;d0&&(t===yy||h!==1))return-1;for(j[1]=0,u=1;ugy||t===wy&&b>vy)return 1;for(;;){de=u-v,o[f]P?(ee=D[Q+o[f]],J=S[T+o[f]]):(ee=96,J=0),E=1<>v)+_]=de<<24|ee<<16|J|0;while(_!==0);for(E=1<>=1;if(E!==0?(x&=E-1,x+=E):x=0,f++,--O[u]===0){if(u===h)break;u=r[n+o[f]]}if(u>p&&(x&w)!==k){for(v===0&&(v=p),A+=d,m=u-v,y=1<gy||t===wy&&b>vy)return 1;k=x&w,a[k]=p<<24|m<<16|A-s|0}}return x!==0&&(a[A+x]=u-v<<24|64<<16|0),c.bits=p,0}});var rw=I(Kr=>{"use strict";g();var hr=Dn(),Gh=Ah(),wn=kh(),n6=py(),Yo=_y(),i6=0,qy=1,Yy=2,xy=4,a6=5,qc=6,ia=0,s6=1,o6=2,Or=-2,Xy=-3,zh=-4,l6=-5,Sy=8,Zy=1,Ey=2,Ay=3,ky=4,Ty=5,Cy=6,Py=7,Ry=8,My=9,Oy=10,Zc=11,Bn=12,Nh=13,Iy=14,jh=15,Fy=16,$y=17,Ly=18,Dy=19,Yc=20,Xc=21,Ny=22,jy=23,By=24,Hy=25,Uy=26,Bh=27,Gy=28,zy=29,je=30,Vh=31,c6=32,u6=852,f6=592,d6=15,h6=d6;function Vy(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function p6(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new hr.Buf16(320),this.work=new hr.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ky(e){var t;return!e||!e.state?Or:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Zy,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new hr.Buf32(u6),t.distcode=t.distdyn=new hr.Buf32(f6),t.sane=1,t.back=-1,ia)}function Jy(e){var t;return!e||!e.state?Or:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Ky(e))}function Qy(e,t){var r,n;return!e||!e.state||(n=e.state,t<0?(r=0,t=-t):(r=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Or:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,Jy(e))}function ew(e,t){var r,n;return e?(n=new p6,e.state=n,n.window=null,r=Qy(e,t),r!==ia&&(e.state=null),r):Or}function m6(e){return ew(e,h6)}var Wy=!0,Hh,Uh;function g6(e){if(Wy){var t;for(Hh=new hr.Buf32(512),Uh=new hr.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Yo(qy,e.lens,0,288,Hh,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Yo(Yy,e.lens,0,32,Uh,0,e.work,{bits:5}),Wy=!1}e.lencode=Hh,e.lenbits=9,e.distcode=Uh,e.distbits=5}function tw(e,t,r,n){var i,a=e.state;return a.window===null&&(a.wsize=1<=a.wsize?(hr.arraySet(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),hr.arraySet(a.window,t,r-n,i,a.wnext),n-=i,n?(hr.arraySet(a.window,t,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=wn(r.check,S,2,0),l=0,u=0,r.mode=Ey;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=je;break}if((l&15)!==Sy){e.msg="unknown compression method",r.mode=je;break}if(l>>>=4,u-=4,w=(l&15)+8,r.wbits===0)r.wbits=w;else if(w>r.wbits){e.msg="invalid window size",r.mode=je;break}r.dmax=1<>8&1),r.flags&512&&(S[0]=l&255,S[1]=l>>>8&255,r.check=wn(r.check,S,2,0)),l=0,u=0,r.mode=Ay;case Ay:for(;u<32;){if(o===0)break e;o--,l+=n[a++]<>>8&255,S[2]=l>>>16&255,S[3]=l>>>24&255,r.check=wn(r.check,S,4,0)),l=0,u=0,r.mode=ky;case ky:for(;u<16;){if(o===0)break e;o--,l+=n[a++]<>8),r.flags&512&&(S[0]=l&255,S[1]=l>>>8&255,r.check=wn(r.check,S,2,0)),l=0,u=0,r.mode=Ty;case Ty:if(r.flags&1024){for(;u<16;){if(o===0)break e;o--,l+=n[a++]<>>8&255,r.check=wn(r.check,S,2,0)),l=0,u=0}else r.head&&(r.head.extra=null);r.mode=Cy;case Cy:if(r.flags&1024&&(h=r.length,h>o&&(h=o),h&&(r.head&&(w=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),hr.arraySet(r.head.extra,n,a,h,w)),r.flags&512&&(r.check=wn(r.check,n,h,a)),o-=h,a+=h,r.length-=h),r.length))break e;r.length=0,r.mode=Py;case Py:if(r.flags&2048){if(o===0)break e;h=0;do w=n[a+h++],r.head&&w&&r.length<65536&&(r.head.name+=String.fromCharCode(w));while(w&&h>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Bn;break;case Oy:for(;u<32;){if(o===0)break e;o--,l+=n[a++]<>>=u&7,u-=u&7,r.mode=Bh;break}for(;u<3;){if(o===0)break e;o--,l+=n[a++]<>>=1,u-=1,l&3){case 0:r.mode=Iy;break;case 1:if(g6(r),r.mode=Yc,t===qc){l>>>=2,u-=2;break e}break;case 2:r.mode=$y;break;case 3:e.msg="invalid block type",r.mode=je}l>>>=2,u-=2;break;case Iy:for(l>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,l+=n[a++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=je;break}if(r.length=l&65535,l=0,u=0,r.mode=jh,t===qc)break e;case jh:r.mode=Fy;case Fy:if(h=r.length,h){if(h>o&&(h=o),h>c&&(h=c),h===0)break e;hr.arraySet(i,n,a,h,s),o-=h,a+=h,c-=h,s+=h,r.length-=h;break}r.mode=Bn;break;case $y:for(;u<14;){if(o===0)break e;o--,l+=n[a++]<>>=5,u-=5,r.ndist=(l&31)+1,l>>>=5,u-=5,r.ncode=(l&15)+4,l>>>=4,u-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=je;break}r.have=0,r.mode=Ly;case Ly:for(;r.have>>=3,u-=3}for(;r.have<19;)r.lens[O[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,T={bits:r.lenbits},A=Yo(i6,r.lens,0,19,r.lencode,0,r.work,T),r.lenbits=T.bits,A){e.msg="invalid code lengths set",r.mode=je;break}r.have=0,r.mode=Dy;case Dy:for(;r.have>>24,b=v>>>16&255,x=v&65535,!(y<=u);){if(o===0)break e;o--,l+=n[a++]<>>=y,u-=y,r.lens[r.have++]=x;else{if(x===16){for(P=y+2;u>>=y,u-=y,r.have===0){e.msg="invalid bit length repeat",r.mode=je;break}w=r.lens[r.have-1],h=3+(l&3),l>>>=2,u-=2}else if(x===17){for(P=y+3;u>>=y,u-=y,w=0,h=3+(l&7),l>>>=3,u-=3}else{for(P=y+7;u>>=y,u-=y,w=0,h=11+(l&127),l>>>=7,u-=7}if(r.have+h>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=je;break}for(;h--;)r.lens[r.have++]=w}}if(r.mode===je)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=je;break}if(r.lenbits=9,T={bits:r.lenbits},A=Yo(qy,r.lens,0,r.nlen,r.lencode,0,r.work,T),r.lenbits=T.bits,A){e.msg="invalid literal/lengths set",r.mode=je;break}if(r.distbits=6,r.distcode=r.distdyn,T={bits:r.distbits},A=Yo(Yy,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,T),r.distbits=T.bits,A){e.msg="invalid distances set",r.mode=je;break}if(r.mode=Yc,t===qc)break e;case Yc:r.mode=Xc;case Xc:if(o>=6&&c>=258){e.next_out=s,e.avail_out=c,e.next_in=a,e.avail_in=o,r.hold=l,r.bits=u,n6(e,d),s=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,l=r.hold,u=r.bits,r.mode===Bn&&(r.back=-1);break}for(r.back=0;v=r.lencode[l&(1<>>24,b=v>>>16&255,x=v&65535,!(y<=u);){if(o===0)break e;o--,l+=n[a++]<>E)],y=v>>>24,b=v>>>16&255,x=v&65535,!(E+y<=u);){if(o===0)break e;o--,l+=n[a++]<>>=E,u-=E,r.back+=E}if(l>>>=y,u-=y,r.back+=y,r.length=x,b===0){r.mode=Uy;break}if(b&32){r.back=-1,r.mode=Bn;break}if(b&64){e.msg="invalid literal/length code",r.mode=je;break}r.extra=b&15,r.mode=Ny;case Ny:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=jy;case jy:for(;v=r.distcode[l&(1<>>24,b=v>>>16&255,x=v&65535,!(y<=u);){if(o===0)break e;o--,l+=n[a++]<>E)],y=v>>>24,b=v>>>16&255,x=v&65535,!(E+y<=u);){if(o===0)break e;o--,l+=n[a++]<>>=E,u-=E,r.back+=E}if(l>>>=y,u-=y,r.back+=y,b&64){e.msg="invalid distance code",r.mode=je;break}r.offset=x,r.extra=b&15,r.mode=By;case By:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=je;break}r.mode=Hy;case Hy:if(c===0)break e;if(h=d-c,r.offset>h){if(h=r.offset-h,h>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=je;break}h>r.wnext?(h-=r.wnext,p=r.wsize-h):p=r.wnext-h,h>r.length&&(h=r.length),m=r.window}else m=i,p=s-r.offset,h=r.length;h>c&&(h=c),c-=h,r.length-=h;do i[s++]=m[p++];while(--h);r.length===0&&(r.mode=Xc);break;case Uy:if(c===0)break e;i[s++]=r.length,c--,r.mode=Xc;break;case Bh:if(r.wrap){for(;u<32;){if(o===0)break e;o--,l|=n[a++]<{"use strict";g();nw.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var aw=I((FU,iw)=>{"use strict";g();function _6(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}iw.exports=_6});var ow=I(Zo=>{"use strict";g();var ss=rw(),Xo=Dn(),Kc=Mh(),et=Wh(),qh=Nc(),x6=Oh(),S6=aw(),sw=Object.prototype.toString;function aa(e){if(!(this instanceof aa))return new aa(e);this.options=Xo.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new x6,this.strm.avail_out=0;var r=ss.inflateInit2(this.strm,t.windowBits);if(r!==et.Z_OK)throw new Error(qh[r]);if(this.header=new S6,ss.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Kc.string2buf(t.dictionary):sw.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=ss.inflateSetDictionary(this.strm,t.dictionary),r!==et.Z_OK)))throw new Error(qh[r])}aa.prototype.push=function(e,t){var r=this.strm,n=this.options.chunkSize,i=this.options.dictionary,a,s,o,c,l,u=!1;if(this.ended)return!1;s=t===~~t?t:t===!0?et.Z_FINISH:et.Z_NO_FLUSH,typeof e=="string"?r.input=Kc.binstring2buf(e):sw.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Xo.Buf8(n),r.next_out=0,r.avail_out=n),a=ss.inflate(r,et.Z_NO_FLUSH),a===et.Z_NEED_DICT&&i&&(a=ss.inflateSetDictionary(this.strm,i)),a===et.Z_BUF_ERROR&&u===!0&&(a=et.Z_OK,u=!1),a!==et.Z_STREAM_END&&a!==et.Z_OK)return this.onEnd(a),this.ended=!0,!1;r.next_out&&(r.avail_out===0||a===et.Z_STREAM_END||r.avail_in===0&&(s===et.Z_FINISH||s===et.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=Kc.utf8border(r.output,r.next_out),c=r.next_out-o,l=Kc.buf2string(r.output,o),r.next_out=c,r.avail_out=n-c,c&&Xo.arraySet(r.output,r.output,o,c,0),this.onData(l)):this.onData(Xo.shrinkBuf(r.output,r.next_out))),r.avail_in===0&&r.avail_out===0&&(u=!0)}while((r.avail_in>0||r.avail_out===0)&&a!==et.Z_STREAM_END);return a===et.Z_STREAM_END&&(s=et.Z_FINISH),s===et.Z_FINISH?(a=ss.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===et.Z_OK):(s===et.Z_SYNC_FLUSH&&(this.onEnd(et.Z_OK),r.avail_out=0),!0)};aa.prototype.onData=function(e){this.chunks.push(e)};aa.prototype.onEnd=function(e){e===et.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Xo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Yh(e,t){var r=new aa(t);if(r.push(e,!0),r.err)throw r.msg||qh[r.err];return r.result}function E6(e,t){return t=t||{},t.raw=!0,Yh(e,t)}Zo.Inflate=aa;Zo.inflate=Yh;Zo.inflateRaw=E6;Zo.ungzip=Yh});var uw=I((NU,cw)=>{"use strict";g();var A6=Dn().assign,k6=dy(),T6=ow(),C6=Wh(),lw={};A6(lw,k6,T6,C6);cw.exports=lw});var hw=I((BU,dw)=>{"use strict";g();var fw=(e,t)=>function(...r){let n=t.promiseModule;return new n((i,a)=>{t.multiArgs?r.push((...s)=>{t.errorFirst?s[0]?a(s):(s.shift(),i(s)):i(s)}):t.errorFirst?r.push((s,o)=>{s?a(s):i(o)}):r.push(i),e.apply(this,r)})};dw.exports=(e,t)=>{t=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},t);let r=typeof e;if(!(e!==null&&(r==="object"||r==="function")))throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${e===null?"null":r}\``);let n=a=>{let s=o=>typeof o=="string"?a===o:o.test(a);return t.include?t.include.some(s):!t.exclude.some(s)},i;r==="function"?i=function(...a){return t.excludeMain?e(...a):fw(e,t).apply(this,a)}:i=Object.create(Object.getPrototypeOf(e));for(let a in e){let s=e[a];i[a]=typeof s=="function"&&n(a)?fw(s,t):s}return i}});var xw=I((UU,_w)=>{g();function pw(e){return Array.isArray(e)?e:[e]}var Kh="",mw=" ",Xh="\\",P6=/^\s+$/,R6=/(?:[^\\]|^)\\$/,M6=/^\\!/,O6=/^\\#/,I6=/\r?\n/g,F6=/^\.*\/|^\.+$/,Zh="/",yw="node-ignore";typeof Symbol!="undefined"&&(yw=Symbol.for("node-ignore"));var gw=yw,$6=(e,t,r)=>Object.defineProperty(e,t,{value:r}),L6=/([0-z])-([0-z])/g,ww=()=>!1,D6=e=>e.replace(L6,(t,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?t:Kh),N6=e=>{let{length:t}=e;return e.slice(0,t-t%2)},j6=[[/^\uFEFF/,()=>Kh],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,r)=>t+(r.indexOf("\\")===0?mw:Kh)],[/(\\+?)\s/g,(e,t)=>{let{length:r}=t;return t.slice(0,r-r%2)+mw}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6{let n=r.replace(/\\\*/g,"[^\\/]*");return t+n}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Xh],[/\\\\/g,()=>Xh],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,n,i)=>t===Xh?`\\[${r}${N6(n)}${i}`:i==="]"&&n.length%2===0?`[${D6(r)}${n}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],vw=Object.create(null),B6=(e,t)=>{let r=vw[e];return r||(r=j6.reduce((n,[i,a])=>n.replace(i,a.bind(e)),e),vw[e]=r),t?new RegExp(r,"i"):new RegExp(r)},ep=e=>typeof e=="string",H6=e=>e&&ep(e)&&!P6.test(e)&&!R6.test(e)&&e.indexOf("#")!==0,U6=e=>e.split(I6),Jh=class{constructor(t,r,n,i){this.origin=t,this.pattern=r,this.negative=n,this.regex=i}},G6=(e,t)=>{let r=e,n=!1;e.indexOf("!")===0&&(n=!0,e=e.substr(1)),e=e.replace(M6,"!").replace(O6,"#");let i=B6(e,t);return new Jh(r,e,n,i)},z6=(e,t)=>{throw new t(e)},Hn=(e,t,r)=>ep(e)?e?Hn.isNotRelative(e)?r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),bw=e=>F6.test(e);Hn.isNotRelative=bw;Hn.convert=e=>e;var Qh=class{constructor({ignorecase:t=!0,ignoreCase:r=t,allowRelativePaths:n=!1}={}){$6(this,gw,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[gw]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(H6(t)){let r=G6(t,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(t){return this._added=!1,pw(ep(t)?U6(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,r){let n=!1,i=!1;return this._rules.forEach(a=>{let{negative:s}=a;if(i===s&&n!==i||s&&!n&&!i&&!r)return;a.regex.test(t)&&(n=!s,i=s)}),{ignored:n,unignored:i}}_test(t,r,n,i){let a=t&&Hn.convert(t);return Hn(a,t,this._allowRelativePaths?ww:z6),this._t(a,r,n,i)}_t(t,r,n,i){if(t in r)return r[t];if(i||(i=t.split(Zh)),i.pop(),!i.length)return r[t]=this._testOne(t,n);let a=this._t(i.join(Zh)+Zh,r,n,i);return r[t]=a.ignored?a:this._testOne(t,n)}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return pw(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},Jc=e=>new Qh(e),V6=e=>Hn(e&&Hn.convert(e),e,ww);Jc.isPathValid=V6;Jc.default=Jc;_w.exports=Jc;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");Hn.convert=e;let t=/^[a-z]:\//i;Hn.isNotRelative=r=>t.test(r)||bw(r)}});var Ew=I((zU,Sw)=>{"use strict";g();function W6(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function bn(e,t,r){return t=t instanceof RegExp?t:new RegExp(W6(t),"g"),e.replace(t,r)}var q6={clean:function(t){if(typeof t!="string")throw new Error("Expected a string, received: "+t);return t=bn(t,"./","/"),t=bn(t,"..","."),t=bn(t," ","-"),t=bn(t,/^[~^:?*\\\-]/g,""),t=bn(t,/[~^:?*\\]/g,"-"),t=bn(t,/[~^:?*\\\-]$/g,""),t=bn(t,"@{","-"),t=bn(t,/\.$/g,""),t=bn(t,/\/$/g,""),t=bn(t,/\.lock$/g,""),t}};Sw.exports=q6});var kw=I((WU,Aw)=>{g();Aw.exports=function(e,t){var r=e,n=t,i=r.length,a=n.length,s=!1,o=null,c=i+1,l=[],u=[],f=[],d="",h=-1,p=0,m=1,v,y,b=function(){i>=a&&(v=r,y=i,r=n,n=v,i=a,a=y,s=!0,c=i+1)},x=function(w,A,S){return{x:w,y:A,k:S}},E=function(w,A){return{elem:w,t:A}},_=function(w,A,S){var T,P,O;for(A>S?T=l[w-1+c]:T=l[w+1+c],O=Math.max(A,S),P=O-w;P=0;--O)for(;TP-T?(s?f[f.length]=new E(n[P],h):f[f.length]=new E(n[P],m),++S,++P):w[O].y-w[O].x=w+1;--D)S[D+c]=_(D,S[D-1+c]+1,S[D+1+c]);S[w+c]=_(w,S[w-1+c]+1,S[w+1+c])}while(S[w+c]!==a);for(o=w+2*T,P=l[w+c],O=[];P!==-1;)O[O.length]=new x(u[P].x,u[P].y,null),P=u[P].k;k(O)}}}});var Pw=I((YU,Cw)=>{g();var Y6=kw();function X6(e,t){var r=new Y6(e,t);r.compose();for(var n=r.getses(),i,a,s=e.length-1,o=t.length-1,c=n.length-1;c>=0;--c)n[c].t===r.SES_COMMON?(a?(a.chain={file1index:s,file2index:o,chain:null},a=a.chain):(i={file1index:s,file2index:o,chain:null},a=i),s--,o--):n[c].t===r.SES_DELETE?s--:n[c].t===r.SES_ADD&&o--;var l={file1index:-1,file2index:-1,chain:null};return a?(a.chain=l,i):l}function Tw(e,t){for(var r=[],n=e.length,i=t.length,a=X6(e,t);a!==null;a=a.chain){var s=n-a.file1index-1,o=i-a.file2index-1;n=a.file1index,i=a.file2index,(s||o)&&r.push({file1:[n+1,s],file2:[i+1,o]})}return r.reverse(),r}function Z6(e,t,r){var n,i=Tw(t,e),a=Tw(t,r),s=[];function o(j,D){s.push([j.file1[0],D,j.file1[1],j.file2[0],j.file2[1]])}for(n=0;nl&&(c.push([1,l,j-l]),l=j)}for(var f=0;fm)break;m=Math.max(m,y+v[2]),f++}if(u(p),d==f)h[4]>0&&c.push([h[1],h[3],h[4]]);else{var b={0:[e.length,-1,t.length,-1],2:[r.length,-1,t.length,-1]};for(n=d;n<=f;n++){h=s[n];var x=h[1],E=b[x],_=h[0],k=_+h[2],w=h[3],A=w+h[4];E[0]=Math.min(w,E[0]),E[1]=Math.max(A,E[1]),E[2]=Math.min(_,E[2]),E[3]=Math.max(k,E[3])}var S=b[0][0]+(p-b[0][2]),T=b[0][1]+(m-b[0][3]),P=b[2][0]+(p-b[2][2]),O=b[2][1]+(m-b[2][3]);c.push([-1,S,T-S,p,m-p,P,O-P])}l=m}return u(t.length),c}function K6(e,t,r){var n=[],i=[e,t,r],a=Z6(e,t,r),s=[];function o(){s.length&&n.push({ok:s}),s=[]}function c(h){for(var p=0;p{g();var Es=1e3,As=Es*60,ks=As*60,da=ks*24,eI=da*7,tI=da*365.25;O2.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return rI(e);if(r==="number"&&isFinite(e))return t.long?iI(e):nI(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function rI(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*tI;case"weeks":case"week":case"w":return r*eI;case"days":case"day":case"d":return r*da;case"hours":case"hour":case"hrs":case"hr":case"h":return r*ks;case"minutes":case"minute":case"mins":case"min":case"m":return r*As;case"seconds":case"second":case"secs":case"sec":case"s":return r*Es;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function nI(e){var t=Math.abs(e);return t>=da?Math.round(e/da)+"d":t>=ks?Math.round(e/ks)+"h":t>=As?Math.round(e/As)+"m":t>=Es?Math.round(e/Es)+"s":e+"ms"}function iI(e){var t=Math.abs(e);return t>=da?wu(e,t,da,"day"):t>=ks?wu(e,t,ks,"hour"):t>=As?wu(e,t,As,"minute"):t>=Es?wu(e,t,Es,"second"):e+" ms"}function wu(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var $2=I((nG,F2)=>{g();function aI(e){r.debug=r,r.default=r,r.coerce=c,r.disable=a,r.enable=i,r.enabled=s,r.humanize=I2(),r.destroy=l,Object.keys(e).forEach(u=>{r[u]=e[u]}),r.names=[],r.skips=[],r.formatters={};function t(u){let f=0;for(let d=0;d{if(k==="%%")return"%";E++;let A=r.formatters[w];if(typeof A=="function"){let S=v[E];k=A.call(y,S),v.splice(E,1),E--}return k}),r.formatArgs.call(y,v),(y.log||r.log).apply(y,v)}return m.namespace=u,m.useColors=r.useColors(),m.color=r.selectColor(u),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==r.namespaces&&(h=r.namespaces,p=r.enabled(u)),p),set:v=>{d=v}}),typeof r.init=="function"&&r.init(m),m}function n(u,f){let d=r(this.namespace+(typeof f=="undefined"?":":f)+u);return d.log=this.log,d}function i(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f,d=(typeof u=="string"?u:"").split(/[\s,]+/),h=d.length;for(f=0;f"-"+f)].join(",");return r.enable(""),u}function s(u){if(u[u.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f{g();gr.formatArgs=oI;gr.save=lI;gr.load=cI;gr.useColors=sI;gr.storage=uI();gr.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();gr.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function sI(){if(typeof window!="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function oI(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+bu.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}gr.log=console.debug||console.log||(()=>{});function lI(e){try{e?gr.storage.setItem("debug",e):gr.storage.removeItem("debug")}catch(t){}}function cI(){let e;try{e=gr.storage.getItem("debug")}catch(t){}return!e&&typeof process!="undefined"&&"env"in process&&(e=process.env.DEBUG),e}function uI(){try{return localStorage}catch(e){}}bu.exports=$2()(gr);var{formatters:fI}=bu.exports;fI.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var L2=I(vr=>{"use strict";g();var dI=vr&&vr.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vr,"__esModule",{value:!0});var hI=require("fs"),pI=dI(_u()),Ts=pI.default("@kwsites/file-exists");function mI(e,t,r){Ts("checking %s",e);try{let n=hI.statSync(e);return n.isFile()&&t?(Ts("[OK] path represents a file"),!0):n.isDirectory()&&r?(Ts("[OK] path represents a directory"),!0):(Ts("[FAIL] path represents something other than a file or directory"),!1)}catch(n){if(n.code==="ENOENT")return Ts("[FAIL] path is not accessible: %o",n),!1;throw Ts("[FATAL] %o",n),n}}function gI(e,t=vr.READABLE){return mI(e,(t&vr.FILE)>0,(t&vr.FOLDER)>0)}vr.exists=gI;vr.FILE=1;vr.FOLDER=2;vr.READABLE=vr.FILE+vr.FOLDER});var D2=I(xu=>{"use strict";g();function vI(e){for(var t in e)xu.hasOwnProperty(t)||(xu[t]=e[t])}Object.defineProperty(xu,"__esModule",{value:!0});vI(L2())});var Rp=I(ha=>{"use strict";g();Object.defineProperty(ha,"__esModule",{value:!0});ha.createDeferred=ha.deferred=void 0;function Pp(){let e,t,r="pending";return{promise:new Promise((i,a)=>{e=i,t=a}),done(i){r==="pending"&&(r="resolved",e(i))},fail(i){r==="pending"&&(r="rejected",t(i))},get fulfilled(){return r!=="pending"},get status(){return r}}}ha.deferred=Pp;ha.createDeferred=Pp;ha.default=Pp});var kx=I((XG,Ax)=>{"use strict";g();Ax.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Cx=I((KG,Tx)=>{g();var xm={px:{px:1,cm:37.79527559055118,mm:3.7795275590551185,in:96,pt:1.3333333333333333,pc:16},cm:{px:.026458333333333334,cm:1,mm:.1,in:2.54,pt:.035277777777777776,pc:.42333333333333334},mm:{px:.26458333333333334,cm:10,mm:1,in:25.4,pt:.35277777777777775,pc:4.233333333333333},in:{px:.010416666666666666,cm:.39370078740157477,mm:.03937007874015748,in:1,pt:.013888888888888888,pc:.16666666666666666},pt:{px:.75,cm:28.346456692913385,mm:2.834645669291339,in:72,pt:1,pc:12},pc:{px:.0625,cm:2.3622047244094486,mm:.2362204724409449,in:6,pt:.08333333333333333,pc:1},deg:{deg:1,grad:.9,rad:180/Math.PI,turn:360},grad:{deg:1.1111111111111112,grad:1,rad:200/Math.PI,turn:400},rad:{deg:Math.PI/180,grad:Math.PI/200,rad:1,turn:Math.PI*2},turn:{deg:.002777777777777778,grad:.0025,rad:.5/Math.PI,turn:1},s:{s:1,ms:.001},ms:{s:1e3,ms:1},Hz:{Hz:1,kHz:1e3},kHz:{Hz:.001,kHz:1},dpi:{dpi:1,dpcm:.39370078740157477,dppx:.010416666666666666},dpcm:{dpi:2.54,dpcm:1,dppx:.026458333333333334},dppx:{dpi:96,dpcm:37.79527559055118,dppx:1}};Tx.exports=function(e,t,r,n){if(!xm.hasOwnProperty(r))throw new Error("Cannot convert to "+r);if(!xm[r].hasOwnProperty(t))throw new Error("Cannot convert from "+t+" to "+r);var i=xm[r][t]*e;return n!==!1?(n=Math.pow(10,parseInt(n)||5),Math.round(i*n)/n):i}});var Ux=I(Wn=>{"use strict";g();Object.defineProperty(Wn,"__esModule",{value:!0});Wn.fromRgba=Fs;Wn.fromRgb=Sm;Wn.fromHsla=qu;Wn.fromHsl=Bx;Wn.fromString=Hx;Wn.default=void 0;var Px=Ox(kx()),P$=Ox(Cx());function Ox(e){return e&&e.__esModule?e:{default:e}}function R$(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Rx(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r-1}function L$(e,t,r){var n=e/255,i=t/255,a=r/255,s=Math.max(n,i,a),o=Math.min(n,i,a),c=s-o,l=(s+o)/2;if(c===0)return[0,0,l*100];var u=c/(1-Math.abs(2*l-1)),f=function(){switch(s){case n:return(i-a)/c%6;case i:return(a-n)/c+2;default:return(n-i)/c+4}}();return[f*60,u*100,l*100]}function D$(e,t,r){var n=e/60,i=t/100,a=r/100,s=(1-Math.abs(2*a-1))*i,o=s*(1-Math.abs(n%2-1)),c=a-s/2,l=function(){return n<1?[s,o,0]:n<2?[o,s,0]:n<3?[0,s,o]:n<4?[0,o,s]:n<5?[o,0,s]:[s,0,o]}(),u=Wt(l,3),f=u[0],d=u[1],h=u[2];return[(f+c)*255,(d+c)*255,(h+c)*255]}var N$=function(){function e(t){var r=Wt(t,4),n=r[0],i=r[1],a=r[2],s=r[3];R$(this,e),this.values=[Math.max(Math.min(parseInt(n,10),255),0),Math.max(Math.min(parseInt(i,10),255),0),Math.max(Math.min(parseInt(a,10),255),0),s==null?1:Math.max(Math.min(parseFloat(s),255),0)]}return M$(e,[{key:"toRgbString",value:function(){var r=Wt(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3];return s===1?"rgb(".concat(n,", ").concat(i,", ").concat(a,")"):"rgba(".concat(n,", ").concat(i,", ").concat(a,", ").concat(s,")")}},{key:"toHslString",value:function(){var r=this.toHslaArray(),n=Wt(r,4),i=n[0],a=n[1],s=n[2],o=n[3];return o===1?"hsl(".concat(i,", ").concat(a,"%, ").concat(s,"%)"):"hsla(".concat(i,", ").concat(a,"%, ").concat(s,"%, ").concat(o,")")}},{key:"toHexString",value:function(){var r=Wt(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3];return n=Number(n).toString(16).padStart(2,"0"),i=Number(i).toString(16).padStart(2,"0"),a=Number(a).toString(16).padStart(2,"0"),s=s<1?parseInt(s*255,10).toString(16).padStart(2,"0"):"","#".concat(n).concat(i).concat(a).concat(s)}},{key:"toRgbaArray",value:function(){return this.values}},{key:"toHslaArray",value:function(){var r=Wt(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3],o=L$(n,i,a),c=Wt(o,3),l=c[0],u=c[1],f=c[2];return[l,u,f,s]}}]),e}();function Fs(e){var t=Wt(e,4),r=t[0],n=t[1],i=t[2],a=t[3];return new N$([r,n,i,a])}function Sm(e){var t=Wt(e,3),r=t[0],n=t[1],i=t[2];return Fs([r,n,i,1])}function qu(e){var t=Wt(e,4),r=t[0],n=t[1],i=t[2],a=t[3],s=D$(r,n,i),o=Wt(s,3),c=o[0],l=o[1],u=o[2];return Fs([c,l,u,a])}function Bx(e){var t=Wt(e,3),r=t[0],n=t[1],i=t[2];return qu([r,n,i,1])}function j$(e){var t=Ix.exec(e)||Fx.exec(e),r=Wt(t,5),n=r[1],i=r[2],a=r[3],s=r[4];return n=parseInt(n.length<2?n.repeat(2):n,16),i=parseInt(i.length<2?i.repeat(2):i,16),a=parseInt(a.length<2?a.repeat(2):a,16),s=s&&(parseInt(s.length<2?s.repeat(2):s,16)/255).toPrecision(1)||1,Fs([n,i,a,s])}function B$(e){var t=$x.exec(e)||Dx.exec(e)||Lx.exec(e)||Nx.exec(e),r=Wt(t,5),n=r[1],i=r[2],a=r[3],s=r[4];return n=Ol(n,"%")?parseInt(n,10)*255/100:parseInt(n,10),i=Ol(i,"%")?parseInt(i,10)*255/100:parseInt(i,10),a=Ol(a,"%")>0?parseInt(a,10)*255/100:parseInt(a,10),s=s===void 0?1:parseFloat(s)/(Ol(s,"%")?100:1),Fs([n,i,a,s])}function H$(e){var t=jx.exec(e),r=Wt(t,6),n=r[1],i=r[2],a=r[3],s=r[4],o=r[5];return i=i||"deg",n=(0,P$.default)(parseFloat(n),i,"deg"),a=parseFloat(a),s=parseFloat(s),o=o===void 0?1:parseFloat(o)/(Ol(o,"%")?100:1),qu([n,a,s,o])}function Hx(e){return Px.default[e]?Sm(Px.default[e]):Ix.test(e)||Fx.test(e)?j$(e):$x.test(e)||Dx.test(e)||Lx.test(e)||Nx.test(e)?B$(e):jx.test(e)?H$(e):null}var U$={fromString:Hx,fromRgb:Sm,fromRgba:Fs,fromHsl:Bx,fromHsla:qu};Wn.default=U$});var Em=I((tz,zx)=>{"use strict";g();var Gx=Object.prototype.toString;zx.exports=function(t){var r=Gx.call(t),n=r==="[object Arguments]";return n||(n=r!=="[object Array]"&&t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&Gx.call(t.callee)==="[object Function]"),n}});var Qx=I((nz,Jx)=>{"use strict";g();var Kx;Object.keys||(Il=Object.prototype.hasOwnProperty,Am=Object.prototype.toString,Vx=Em(),km=Object.prototype.propertyIsEnumerable,Wx=!km.call({toString:null},"toString"),qx=km.call(function(){},"prototype"),Fl=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Yu=function(e){var t=e.constructor;return t&&t.prototype===e},Yx={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},Xx=function(){if(typeof window=="undefined")return!1;for(var e in window)try{if(!Yx["$"+e]&&Il.call(window,e)&&window[e]!==null&&typeof window[e]=="object")try{Yu(window[e])}catch(t){return!0}}catch(t){return!0}return!1}(),Zx=function(e){if(typeof window=="undefined"||!Xx)return Yu(e);try{return Yu(e)}catch(t){return!1}},Kx=function(t){var r=t!==null&&typeof t=="object",n=Am.call(t)==="[object Function]",i=Vx(t),a=r&&Am.call(t)==="[object String]",s=[];if(!r&&!n&&!i)throw new TypeError("Object.keys called on a non-object");var o=qx&&n;if(a&&t.length>0&&!Il.call(t,0))for(var c=0;c0)for(var l=0;l{"use strict";g();var G$=Array.prototype.slice,z$=Em(),eS=Object.keys,Xu=eS?function(t){return eS(t)}:Qx(),tS=Object.keys;Xu.shim=function(){if(Object.keys){var t=function(){var r=Object.keys(arguments);return r&&r.length===arguments.length}(1,2);t||(Object.keys=function(n){return z$(n)?tS(G$.call(n)):tS(n)})}else Object.keys=Xu;return Object.keys||Xu};rS.exports=Xu});var iS=I((oz,nS)=>{"use strict";g();nS.exports=Error});var sS=I((cz,aS)=>{"use strict";g();aS.exports=EvalError});var lS=I((fz,oS)=>{"use strict";g();oS.exports=RangeError});var uS=I((hz,cS)=>{"use strict";g();cS.exports=ReferenceError});var Tm=I((mz,fS)=>{"use strict";g();fS.exports=SyntaxError});var qn=I((vz,dS)=>{"use strict";g();dS.exports=TypeError});var pS=I((wz,hS)=>{"use strict";g();hS.exports=URIError});var $l=I((_z,mS)=>{"use strict";g();mS.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;t[r]=i;for(r in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var a=Object.getOwnPropertySymbols(t);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(t,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}});var Ku=I((Sz,vS)=>{"use strict";g();var gS=typeof Symbol!="undefined"&&Symbol,V$=$l();vS.exports=function(){return typeof gS!="function"||typeof Symbol!="function"||typeof gS("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:V$()}});var wS=I((Az,yS)=>{"use strict";g();var Cm={__proto__:null,foo:{}},W$=Object;yS.exports=function(){return{__proto__:Cm}.foo===Cm.foo&&!(Cm instanceof W$)}});var xS=I((Tz,_S)=>{"use strict";g();var q$="Function.prototype.bind called on incompatible ",Y$=Object.prototype.toString,X$=Math.max,Z$="[object Function]",bS=function(t,r){for(var n=[],i=0;i{"use strict";g();var Q$=xS();SS.exports=Function.prototype.bind||Q$});var Pm=I((Mz,ES)=>{"use strict";g();var eL=Function.prototype.call,tL=Object.prototype.hasOwnProperty,rL=Ju();ES.exports=rL.call(eL,tL)});var en=I((Iz,PS)=>{"use strict";g();var ve,nL=iS(),iL=sS(),aL=lS(),sL=uS(),Ns=Tm(),Ds=qn(),oL=pS(),CS=Function,Rm=function(e){try{return CS('"use strict"; return ('+e+").constructor;")()}catch(t){}},va=Object.getOwnPropertyDescriptor;if(va)try{va({},"")}catch(e){va=null}var Mm=function(){throw new Ds},lL=va?function(){try{return arguments.callee,Mm}catch(e){try{return va(arguments,"callee").get}catch(t){return Mm}}}():Mm,$s=Ku()(),cL=wS()(),wt=Object.getPrototypeOf||(cL?function(e){return e.__proto__}:null),Ls={},uL=typeof Uint8Array=="undefined"||!wt?ve:wt(Uint8Array),ya={__proto__:null,"%AggregateError%":typeof AggregateError=="undefined"?ve:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?ve:ArrayBuffer,"%ArrayIteratorPrototype%":$s&&wt?wt([][Symbol.iterator]()):ve,"%AsyncFromSyncIteratorPrototype%":ve,"%AsyncFunction%":Ls,"%AsyncGenerator%":Ls,"%AsyncGeneratorFunction%":Ls,"%AsyncIteratorPrototype%":Ls,"%Atomics%":typeof Atomics=="undefined"?ve:Atomics,"%BigInt%":typeof BigInt=="undefined"?ve:BigInt,"%BigInt64Array%":typeof BigInt64Array=="undefined"?ve:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array=="undefined"?ve:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?ve:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":nL,"%eval%":eval,"%EvalError%":iL,"%Float32Array%":typeof Float32Array=="undefined"?ve:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?ve:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?ve:FinalizationRegistry,"%Function%":CS,"%GeneratorFunction%":Ls,"%Int8Array%":typeof Int8Array=="undefined"?ve:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?ve:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?ve:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":$s&&wt?wt(wt([][Symbol.iterator]())):ve,"%JSON%":typeof JSON=="object"?JSON:ve,"%Map%":typeof Map=="undefined"?ve:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!$s||!wt?ve:wt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?ve:Promise,"%Proxy%":typeof Proxy=="undefined"?ve:Proxy,"%RangeError%":aL,"%ReferenceError%":sL,"%Reflect%":typeof Reflect=="undefined"?ve:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?ve:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!$s||!wt?ve:wt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?ve:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":$s&&wt?wt(""[Symbol.iterator]()):ve,"%Symbol%":$s?Symbol:ve,"%SyntaxError%":Ns,"%ThrowTypeError%":lL,"%TypedArray%":uL,"%TypeError%":Ds,"%Uint8Array%":typeof Uint8Array=="undefined"?ve:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?ve:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?ve:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?ve:Uint32Array,"%URIError%":oL,"%WeakMap%":typeof WeakMap=="undefined"?ve:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?ve:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?ve:WeakSet};if(wt)try{null.error}catch(e){AS=wt(wt(e)),ya["%Error.prototype%"]=AS}var AS,fL=function e(t){var r;if(t==="%AsyncFunction%")r=Rm("async function () {}");else if(t==="%GeneratorFunction%")r=Rm("function* () {}");else if(t==="%AsyncGeneratorFunction%")r=Rm("async function* () {}");else if(t==="%AsyncGenerator%"){var n=e("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(t==="%AsyncIteratorPrototype%"){var i=e("%AsyncGenerator%");i&&wt&&(r=wt(i.prototype))}return ya[t]=r,r},kS={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Ll=Ju(),Qu=Pm(),dL=Ll.call(Function.call,Array.prototype.concat),hL=Ll.call(Function.apply,Array.prototype.splice),TS=Ll.call(Function.call,String.prototype.replace),ef=Ll.call(Function.call,String.prototype.slice),pL=Ll.call(Function.call,RegExp.prototype.exec),mL=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,gL=/\\(\\)?/g,vL=function(t){var r=ef(t,0,1),n=ef(t,-1);if(r==="%"&&n!=="%")throw new Ns("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Ns("invalid intrinsic syntax, expected opening `%`");var i=[];return TS(t,mL,function(a,s,o,c){i[i.length]=o?TS(c,gL,"$1"):s||a}),i},yL=function(t,r){var n=t,i;if(Qu(kS,n)&&(i=kS[n],n="%"+i[0]+"%"),Qu(ya,n)){var a=ya[n];if(a===Ls&&(a=fL(n)),typeof a=="undefined"&&!r)throw new Ds("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:a}}throw new Ns("intrinsic "+t+" does not exist!")};PS.exports=function(t,r){if(typeof t!="string"||t.length===0)throw new Ds("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Ds('"allowMissing" argument must be a boolean');if(pL(/^%?[^%]*%?$/,t)===null)throw new Ns("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=vL(t),i=n.length>0?n[0]:"",a=yL("%"+i+"%",r),s=a.name,o=a.value,c=!1,l=a.alias;l&&(i=l[0],hL(n,dL([0,1],l)));for(var u=1,f=!0;u=n.length){var m=va(o,d);f=!!m,f&&"get"in m&&!("originalValue"in m.get)?o=m.get:o=o[d]}else f=Qu(o,d),o=o[d];f&&!c&&(ya[s]=o)}}return o}});var rf=I(($z,RS)=>{"use strict";g();var wL=en(),tf=wL("%Object.defineProperty%",!0)||!1;if(tf)try{tf({},"a",{value:1})}catch(e){tf=!1}RS.exports=tf});var af=I((Dz,MS)=>{"use strict";g();var bL=en(),nf=bL("%Object.getOwnPropertyDescriptor%",!0);if(nf)try{nf([],"length")}catch(e){nf=null}MS.exports=nf});var sf=I((jz,FS)=>{"use strict";g();var OS=rf(),_L=Tm(),js=qn(),IS=af();FS.exports=function(t,r,n){if(!t||typeof t!="object"&&typeof t!="function")throw new js("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new js("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new js("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new js("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new js("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new js("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,s=arguments.length>5?arguments[5]:null,o=arguments.length>6?arguments[6]:!1,c=!!IS&&IS(t,r);if(OS)OS(t,r,{configurable:s===null&&c?c.configurable:!s,enumerable:i===null&&c?c.enumerable:!i,value:n,writable:a===null&&c?c.writable:!a});else if(o||!i&&!a&&!s)t[r]=n;else throw new _L("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var of=I((Hz,LS)=>{"use strict";g();var Om=rf(),$S=function(){return!!Om};$S.hasArrayLengthDefineBug=function(){if(!Om)return null;try{return Om([],"length",{value:1}).length!==1}catch(t){return!0}};LS.exports=$S});var Ti=I((Gz,BS)=>{"use strict";g();var xL=Zu(),SL=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",EL=Object.prototype.toString,AL=Array.prototype.concat,DS=sf(),kL=function(e){return typeof e=="function"&&EL.call(e)==="[object Function]"},NS=of()(),TL=function(e,t,r,n){if(t in e){if(n===!0){if(e[t]===r)return}else if(!kL(n)||!n())return}NS?DS(e,t,r,!0):DS(e,t,r)},jS=function(e,t){var r=arguments.length>2?arguments[2]:{},n=xL(t);SL&&(n=AL.call(n,Object.getOwnPropertySymbols(t)));for(var i=0;i{"use strict";g();var CL=en(),HS=sf(),PL=of()(),US=af(),GS=qn(),RL=CL("%Math.floor%");zS.exports=function(t,r){if(typeof t!="function")throw new GS("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||RL(r)!==r)throw new GS("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,a=!0;if("length"in t&&US){var s=US(t,"length");s&&!s.configurable&&(i=!1),s&&!s.writable&&(a=!1)}return(i||a||!n)&&(PL?HS(t,"length",r,!0,!0):HS(t,"length",r)),t}});var wa=I((qz,lf)=>{"use strict";g();var Im=Ju(),cf=en(),ML=VS(),OL=qn(),YS=cf("%Function.prototype.apply%"),XS=cf("%Function.prototype.call%"),ZS=cf("%Reflect.apply%",!0)||Im.call(XS,YS),WS=rf(),IL=cf("%Math.max%");lf.exports=function(t){if(typeof t!="function")throw new OL("a function is required");var r=ZS(Im,XS,arguments);return ML(r,1+IL(0,t.length-(arguments.length-1)),!0)};var qS=function(){return ZS(Im,YS,arguments)};WS?WS(lf.exports,"apply",{value:qS}):lf.exports.apply=qS});var br=I((Xz,QS)=>{"use strict";g();var KS=en(),JS=wa(),FL=JS(KS("String.prototype.indexOf"));QS.exports=function(t,r){var n=KS(t,!!r);return typeof n=="function"&&FL(t,".prototype.")>-1?JS(n):n}});var Fm=I((Kz,iE)=>{"use strict";g();var $L=Zu(),rE=$l()(),nE=br(),eE=Object,LL=nE("Array.prototype.push"),tE=nE("Object.prototype.propertyIsEnumerable"),DL=rE?Object.getOwnPropertySymbols:null;iE.exports=function(t,r){if(t==null)throw new TypeError("target must be an object");var n=eE(t);if(arguments.length===1)return n;for(var i=1;i{"use strict";g();var $m=Fm(),NL=function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),r={},n=0;n{"use strict";g();var BL=Ti(),HL=Lm();sE.exports=function(){var t=HL();return BL(Object,{assign:t},{assign:function(){return Object.assign!==t}}),t}});var fE=I((nV,uE)=>{"use strict";g();var UL=Ti(),GL=wa(),zL=Fm(),lE=Lm(),VL=oE(),WL=GL.apply(lE()),cE=function(t,r){return WL(Object,arguments)};UL(cE,{getPolyfill:lE,implementation:zL,shim:VL});uE.exports=cE});var hE=I((aV,dE)=>{"use strict";g();var Nl=function(){return typeof function(){}.name=="string"},Dl=Object.getOwnPropertyDescriptor;if(Dl)try{Dl([],"length")}catch(e){Dl=null}Nl.functionsHaveConfigurableNames=function(){if(!Nl()||!Dl)return!1;var t=Dl(function(){},"name");return!!t&&!!t.configurable};var qL=Function.prototype.bind;Nl.boundFunctionsHaveNames=function(){return Nl()&&typeof qL=="function"&&function(){}.bind().name!==""};dE.exports=Nl});var gE=I((oV,mE)=>{"use strict";g();var pE=sf(),YL=of()(),XL=hE().functionsHaveConfigurableNames(),ZL=qn();mE.exports=function(t,r){if(typeof t!="function")throw new ZL("`fn` is not a function");var n=arguments.length>2&&!!arguments[2];return(!n||XL)&&(YL?pE(t,"name",r,!0,!0):pE(t,"name",r)),t}});var Dm=I((cV,vE)=>{"use strict";g();var KL=gE(),JL=qn(),QL=Object;vE.exports=KL(function(){if(this==null||this!==QL(this))throw new JL("RegExp.prototype.flags getter called on non-object");var t="";return this.hasIndices&&(t+="d"),this.global&&(t+="g"),this.ignoreCase&&(t+="i"),this.multiline&&(t+="m"),this.dotAll&&(t+="s"),this.unicode&&(t+="u"),this.unicodeSets&&(t+="v"),this.sticky&&(t+="y"),t},"get flags",!0)});var Nm=I((fV,yE)=>{"use strict";g();var eD=Dm(),tD=Ti().supportsDescriptors,rD=Object.getOwnPropertyDescriptor;yE.exports=function(){if(tD&&/a/mig.flags==="gim"){var t=rD(RegExp.prototype,"flags");if(t&&typeof t.get=="function"&&"dotAll"in RegExp.prototype&&"hasIndices"in RegExp.prototype){var r="",n={};if(Object.defineProperty(n,"hasIndices",{get:function(){r+="d"}}),Object.defineProperty(n,"sticky",{get:function(){r+="y"}}),t.get.call(n),r==="dy")return t.get}}return eD}});var _E=I((hV,bE)=>{"use strict";g();var nD=Ti().supportsDescriptors,iD=Nm(),aD=Object.getOwnPropertyDescriptor,sD=Object.defineProperty,oD=TypeError,wE=Object.getPrototypeOf,lD=/a/;bE.exports=function(){if(!nD||!wE)throw new oD("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var t=iD(),r=wE(lD),n=aD(r,"flags");return(!n||n.get!==t)&&sD(r,"flags",{configurable:!0,enumerable:!1,get:t}),t}});var AE=I((mV,EE)=>{"use strict";g();var cD=Ti(),uD=wa(),fD=Dm(),xE=Nm(),dD=_E(),SE=uD(xE());cD(SE,{getPolyfill:xE,implementation:fD,shim:dD});EE.exports=SE});var Ci=I((vV,kE)=>{"use strict";g();var hD=$l();kE.exports=function(){return hD()&&!!Symbol.toStringTag}});var Bm=I((wV,CE)=>{"use strict";g();var pD=Ci()(),mD=br(),jm=mD("Object.prototype.toString"),uf=function(t){return pD&&t&&typeof t=="object"&&Symbol.toStringTag in t?!1:jm(t)==="[object Arguments]"},TE=function(t){return uf(t)?!0:t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&jm(t)!=="[object Array]"&&jm(t.callee)==="[object Function]"},gD=function(){return uf(arguments)}();uf.isLegacyArguments=TE;CE.exports=gD?uf:TE});var PE=I(()=>{g()});var XE=I((EV,YE)=>{g();var Zm=typeof Map=="function"&&Map.prototype,Hm=Object.getOwnPropertyDescriptor&&Zm?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,df=Zm&&Hm&&typeof Hm.get=="function"?Hm.get:null,RE=Zm&&Map.prototype.forEach,Km=typeof Set=="function"&&Set.prototype,Um=Object.getOwnPropertyDescriptor&&Km?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,hf=Km&&Um&&typeof Um.get=="function"?Um.get:null,ME=Km&&Set.prototype.forEach,vD=typeof WeakMap=="function"&&WeakMap.prototype,Bl=vD?WeakMap.prototype.has:null,yD=typeof WeakSet=="function"&&WeakSet.prototype,Hl=yD?WeakSet.prototype.has:null,wD=typeof WeakRef=="function"&&WeakRef.prototype,OE=wD?WeakRef.prototype.deref:null,bD=Boolean.prototype.valueOf,_D=Object.prototype.toString,xD=Function.prototype.toString,SD=String.prototype.match,Jm=String.prototype.slice,Ri=String.prototype.replace,ED=String.prototype.toUpperCase,IE=String.prototype.toLowerCase,UE=RegExp.prototype.test,FE=Array.prototype.concat,En=Array.prototype.join,AD=Array.prototype.slice,$E=Math.floor,Vm=typeof BigInt=="function"?BigInt.prototype.valueOf:null,Gm=Object.getOwnPropertySymbols,Wm=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Bs=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Rt=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Bs||!0)?Symbol.toStringTag:null,GE=Object.prototype.propertyIsEnumerable,LE=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function DE(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||UE.call(/e/,t))return t;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof e=="number"){var n=e<0?-$E(-e):$E(e);if(n!==e){var i=String(n),a=Jm.call(t,i.length+1);return Ri.call(i,r,"$&_")+"."+Ri.call(Ri.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Ri.call(t,r,"$&_")}var qm=PE(),NE=qm.custom,jE=VE(NE)?NE:null;YE.exports=function e(t,r,n,i){var a=r||{};if(Pi(a,"quoteStyle")&&a.quoteStyle!=="single"&&a.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Pi(a,"maxStringLength")&&(typeof a.maxStringLength=="number"?a.maxStringLength<0&&a.maxStringLength!==1/0:a.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var s=Pi(a,"customInspect")?a.customInspect:!0;if(typeof s!="boolean"&&s!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Pi(a,"indent")&&a.indent!==null&&a.indent!==" "&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Pi(a,"numericSeparator")&&typeof a.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=a.numericSeparator;if(typeof t=="undefined")return"undefined";if(t===null)return"null";if(typeof t=="boolean")return t?"true":"false";if(typeof t=="string")return qE(t,a);if(typeof t=="number"){if(t===0)return 1/0/t>0?"0":"-0";var c=String(t);return o?DE(t,c):c}if(typeof t=="bigint"){var l=String(t)+"n";return o?DE(t,l):l}var u=typeof a.depth=="undefined"?5:a.depth;if(typeof n=="undefined"&&(n=0),n>=u&&u>0&&typeof t=="object")return Ym(t)?"[Array]":"[Object]";var f=GD(a,n);if(typeof i=="undefined")i=[];else if(WE(i,t)>=0)return"[Circular]";function d(j,D,Q){if(D&&(i=AD.call(i),i.push(D)),Q){var de={depth:a.depth};return Pi(a,"quoteStyle")&&(de.quoteStyle=a.quoteStyle),e(j,de,n+1,i)}return e(j,a,n+1,i)}if(typeof t=="function"&&!BE(t)){var h=FD(t),p=ff(t,d);return"[Function"+(h?": "+h:" (anonymous)")+"]"+(p.length>0?" { "+En.call(p,", ")+" }":"")}if(VE(t)){var m=Bs?Ri.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):Wm.call(t);return typeof t=="object"&&!Bs?jl(m):m}if(BD(t)){for(var v="<"+IE.call(String(t.nodeName)),y=t.attributes||[],b=0;b",v}if(Ym(t)){if(t.length===0)return"[]";var x=ff(t,d);return f&&!UD(x)?"["+Xm(x,f)+"]":"[ "+En.call(x,", ")+" ]"}if(CD(t)){var E=ff(t,d);return!("cause"in Error.prototype)&&"cause"in t&&!GE.call(t,"cause")?"{ ["+String(t)+"] "+En.call(FE.call("[cause]: "+d(t.cause),E),", ")+" }":E.length===0?"["+String(t)+"]":"{ ["+String(t)+"] "+En.call(E,", ")+" }"}if(typeof t=="object"&&s){if(jE&&typeof t[jE]=="function"&&qm)return qm(t,{depth:u-n});if(s!=="symbol"&&typeof t.inspect=="function")return t.inspect()}if($D(t)){var _=[];return RE&&RE.call(t,function(j,D){_.push(d(D,t,!0)+" => "+d(j,t))}),HE("Map",df.call(t),_,f)}if(ND(t)){var k=[];return ME&&ME.call(t,function(j){k.push(d(j,t))}),HE("Set",hf.call(t),k,f)}if(LD(t))return zm("WeakMap");if(jD(t))return zm("WeakSet");if(DD(t))return zm("WeakRef");if(RD(t))return jl(d(Number(t)));if(OD(t))return jl(d(Vm.call(t)));if(MD(t))return jl(bD.call(t));if(PD(t))return jl(d(String(t)));if(typeof window!="undefined"&&t===window)return"{ [object Window] }";if(typeof globalThis!="undefined"&&t===globalThis||typeof global!="undefined"&&t===global)return"{ [object globalThis] }";if(!TD(t)&&!BE(t)){var w=ff(t,d),A=LE?LE(t)===Object.prototype:t instanceof Object||t.constructor===Object,S=t instanceof Object?"":"null prototype",T=!A&&Rt&&Object(t)===t&&Rt in t?Jm.call(Mi(t),8,-1):S?"Object":"",P=A||typeof t.constructor!="function"?"":t.constructor.name?t.constructor.name+" ":"",O=P+(T||S?"["+En.call(FE.call([],T||[],S||[]),": ")+"] ":"");return w.length===0?O+"{}":f?O+"{"+Xm(w,f)+"}":O+"{ "+En.call(w,", ")+" }"}return String(t)};function zE(e,t,r){var n=(r.quoteStyle||t)==="double"?'"':"'";return n+e+n}function kD(e){return Ri.call(String(e),/"/g,""")}function Ym(e){return Mi(e)==="[object Array]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function TD(e){return Mi(e)==="[object Date]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function BE(e){return Mi(e)==="[object RegExp]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function CD(e){return Mi(e)==="[object Error]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function PD(e){return Mi(e)==="[object String]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function RD(e){return Mi(e)==="[object Number]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function MD(e){return Mi(e)==="[object Boolean]"&&(!Rt||!(typeof e=="object"&&Rt in e))}function VE(e){if(Bs)return e&&typeof e=="object"&&e instanceof Symbol;if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||!Wm)return!1;try{return Wm.call(e),!0}catch(t){}return!1}function OD(e){if(!e||typeof e!="object"||!Vm)return!1;try{return Vm.call(e),!0}catch(t){}return!1}var ID=Object.prototype.hasOwnProperty||function(e){return e in this};function Pi(e,t){return ID.call(e,t)}function Mi(e){return _D.call(e)}function FD(e){if(e.name)return e.name;var t=SD.call(xD.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function WE(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return qE(Jm.call(e,0,t.maxStringLength),t)+n}var i=Ri.call(Ri.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,HD);return zE(i,"single",t)}function HD(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+ED.call(t.toString(16))}function jl(e){return"Object("+e+")"}function zm(e){return e+" { ? }"}function HE(e,t,r,n){var i=n?Xm(r,n):En.call(r,", ");return e+" ("+t+") {"+i+"}"}function UD(e){for(var t=0;t=0)return!1;return!0}function GD(e,t){var r;if(e.indent===" ")r=" ";else if(typeof e.indent=="number"&&e.indent>0)r=En.call(Array(e.indent+1)," ");else return null;return{base:r,prev:En.call(Array(t+1),r)}}function Xm(e,t){if(e.length===0)return"";var r=` `+t.prev+t.base;return r+En.call(e,","+r)+` -`+t.prev}function df(e,t){var r=Xm(e),n=[];if(r){n.length=e.length;for(var i=0;i{"use strict";g();var KE=Qr(),Us=wr(),zD=ZE(),VD=qn(),mf=KE("%WeakMap%",!0),gf=KE("%Map%",!0),WD=Us("WeakMap.prototype.get",!0),qD=Us("WeakMap.prototype.set",!0),YD=Us("WeakMap.prototype.has",!0),XD=Us("Map.prototype.get",!0),ZD=Us("Map.prototype.set",!0),KD=Us("Map.prototype.has",!0),eg=function(e,t){for(var r=e,n;(n=r.next)!==null;r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n},JD=function(e,t){var r=eg(e,t);return r&&r.value},QD=function(e,t,r){var n=eg(e,t);n?n.value=r:e.next={key:t,next:e.next,value:r}},eN=function(e,t){return!!eg(e,t)};JE.exports=function(){var t,r,n,i={assert:function(a){if(!i.has(a))throw new VD("Side channel does not contain "+zD(a))},get:function(a){if(mf&&a&&(typeof a=="object"||typeof a=="function")){if(t)return WD(t,a)}else if(gf){if(r)return XD(r,a)}else if(n)return JD(n,a)},has:function(a){if(mf&&a&&(typeof a=="object"||typeof a=="function")){if(t)return YD(t,a)}else if(gf){if(r)return KD(r,a)}else if(n)return eN(n,a);return!1},set:function(a,s){mf&&a&&(typeof a=="object"||typeof a=="function")?(t||(t=new mf),qD(t,a,s)):gf?(r||(r=new gf),ZD(r,a,s)):(n||(n={key:{},next:null}),QD(n,a,s))}};return i}});var eA=I((CV,QE)=>{"use strict";g();var tN=Rm(),Ul=tg()(),Yn=qn(),rg={assert:function(e,t){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`O` is not an object");if(typeof t!="string")throw new Yn("`slot` must be a string");if(Ul.assert(e),!rg.has(e,t))throw new Yn("`"+t+"` is not present on `O`")},get:function(e,t){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`O` is not an object");if(typeof t!="string")throw new Yn("`slot` must be a string");var r=Ul.get(e);return r&&r["$"+t]},has:function(e,t){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`O` is not an object");if(typeof t!="string")throw new Yn("`slot` must be a string");var r=Ul.get(e);return!!r&&tN(r,"$"+t)},set:function(e,t,r){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`O` is not an object");if(typeof t!="string")throw new Yn("`slot` must be a string");var n=Ul.get(e);n||(n={},Ul.set(e,n)),n["$"+t]=r}};Object.freeze&&Object.freeze(rg);QE.exports=rg});var nA=I((RV,rA)=>{"use strict";g();var Gl=eA(),rN=SyntaxError,tA=typeof StopIteration=="object"?StopIteration:null;rA.exports=function(t){if(!tA)throw new rN("this environment lacks StopIteration");Gl.set(t,"[[Done]]",!1);var r={next:function(){var i=Gl.get(this,"[[Iterator]]"),a=Gl.get(i,"[[Done]]");try{return{done:a,value:a?void 0:i.next()}}catch(s){if(Gl.set(i,"[[Done]]",!0),s!==tA)throw s;return{done:!0,value:void 0}}}};return Gl.set(r,"[[Iterator]]",t),r}});var ng=I((OV,iA)=>{g();var nN={}.toString;iA.exports=Array.isArray||function(e){return nN.call(e)=="[object Array]"}});var ig=I((FV,aA)=>{"use strict";g();var iN=String.prototype.valueOf,aN=function(t){try{return iN.call(t),!0}catch(r){return!1}},sN=Object.prototype.toString,oN="[object String]",lN=Ci()();aA.exports=function(t){return typeof t=="string"?!0:typeof t!="object"?!1:lN?aN(t):sN.call(t)===oN}});var sg=I((LV,lA)=>{"use strict";g();var ag=typeof Map=="function"&&Map.prototype?Map:null,cN=typeof Set=="function"&&Set.prototype?Set:null,vf;ag||(vf=function(t){return!1});var oA=ag?Map.prototype.has:null,sA=cN?Set.prototype.has:null;!vf&&!oA&&(vf=function(t){return!1});lA.exports=vf||function(t){if(!t||typeof t!="object")return!1;try{if(oA.call(t),sA)try{sA.call(t)}catch(r){return!0}return t instanceof ag}catch(r){}return!1}});var lg=I((NV,fA)=>{"use strict";g();var uN=typeof Map=="function"&&Map.prototype?Map:null,og=typeof Set=="function"&&Set.prototype?Set:null,yf;og||(yf=function(t){return!1});var cA=uN?Map.prototype.has:null,uA=og?Set.prototype.has:null;!yf&&!uA&&(yf=function(t){return!1});fA.exports=yf||function(t){if(!t||typeof t!="object")return!1;try{if(uA.call(t),cA)try{cA.call(t)}catch(r){return!0}return t instanceof og}catch(r){}return!1}});var SA=I((BV,_f)=>{"use strict";g();var dA=Hm(),hA=nA();Ju()()||$l()()?(wf=Symbol.iterator,_f.exports=function(t){if(t!=null&&typeof t[wf]!="undefined")return t[wf]();if(dA(t))return Array.prototype[wf].call(t)}):(pA=ng(),mA=ig(),cg=Qr(),gA=cg("%Map%",!0),vA=cg("%Set%",!0),$r=wr(),ug=$r("Array.prototype.push"),fg=$r("String.prototype.charCodeAt"),yA=$r("String.prototype.slice"),wA=function(t,r){var n=t.length;if(r+1>=n)return r+1;var i=fg(t,r);if(i<55296||i>56319)return r+1;var a=fg(t,r+1);return a<56320||a>57343?r+1:r+2},bf=function(t){var r=0;return{next:function(){var i=r>=t.length,a;return i||(a=t[r],r+=1),{done:i,value:a}}}},dg=function(t,r){if(pA(t)||dA(t))return bf(t);if(mA(t)){var n=0;return{next:function(){var a=wA(t,n),s=yA(t,n,a);return n=a,{done:a>t.length,value:s}}}}if(r&&typeof t["_es6-shim iterator_"]!="undefined")return t["_es6-shim iterator_"]()},!gA&&!vA?_f.exports=function(t){if(t!=null)return dg(t,!0)}:(bA=sg(),_A=lg(),hg=$r("Map.prototype.forEach",!0),pg=$r("Set.prototype.forEach",!0),(typeof process=="undefined"||!process.versions||!process.versions.node)&&(mg=$r("Map.prototype.iterator",!0),gg=$r("Set.prototype.iterator",!0)),vg=$r("Map.prototype.@@iterator",!0)||$r("Map.prototype._es6-shim iterator_",!0),yg=$r("Set.prototype.@@iterator",!0)||$r("Set.prototype._es6-shim iterator_",!0),xA=function(t){if(bA(t)){if(mg)return hA(mg(t));if(vg)return vg(t);if(hg){var r=[];return hg(t,function(i,a){ug(r,[a,i])}),bf(r)}}if(_A(t)){if(gg)return hA(gg(t));if(yg)return yg(t);if(pg){var n=[];return pg(t,function(i){ug(n,i)}),bf(n)}}},_f.exports=function(t){return xA(t)||dg(t)}));var wf,pA,mA,cg,gA,vA,$r,ug,fg,yA,wA,bf,dg,bA,_A,hg,pg,mg,gg,vg,yg,xA});var wg=I((UV,AA)=>{"use strict";g();var EA=function(e){return e!==e};AA.exports=function(t,r){return t===0&&r===0?1/t===1/r:!!(t===r||EA(t)&&EA(r))}});var bg=I((zV,kA)=>{"use strict";g();var fN=wg();kA.exports=function(){return typeof Object.is=="function"?Object.is:fN}});var CA=I((WV,TA)=>{"use strict";g();var dN=bg(),hN=Ti();TA.exports=function(){var t=dN();return hN(Object,{is:t},{is:function(){return Object.is!==t}}),t}});var OA=I((YV,MA)=>{"use strict";g();var pN=Ti(),mN=wa(),gN=wg(),PA=bg(),vN=CA(),RA=mN(PA(),Object);pN(RA,{getPolyfill:PA,implementation:gN,shim:vN});MA.exports=RA});var xg=I((ZV,LA)=>{"use strict";g();var yN=wa(),$A=wr(),wN=Qr(),_g=wN("%ArrayBuffer%",!0),xf=$A("ArrayBuffer.prototype.byteLength",!0),bN=$A("Object.prototype.toString"),IA=!!_g&&!xf&&new _g(0).slice,FA=!!IA&&yN(IA);LA.exports=xf||FA?function(t){if(!t||typeof t!="object")return!1;try{return xf?xf(t):FA(t,0),!0}catch(r){return!1}}:_g?function(t){return bN(t)==="[object ArrayBuffer]"}:function(t){return!1}});var NA=I((JV,DA)=>{"use strict";g();var _N=Date.prototype.getDay,xN=function(t){try{return _N.call(t),!0}catch(r){return!1}},SN=Object.prototype.toString,EN="[object Date]",AN=Ci()();DA.exports=function(t){return typeof t!="object"||t===null?!1:AN?xN(t):SN.call(t)===EN}});var GA=I((eW,UA)=>{"use strict";g();var Sg=wr(),jA=Ci()(),BA,HA,Eg,Ag;jA&&(BA=Sg("Object.prototype.hasOwnProperty"),HA=Sg("RegExp.prototype.exec"),Eg={},Sf=function(){throw Eg},Ag={toString:Sf,valueOf:Sf},typeof Symbol.toPrimitive=="symbol"&&(Ag[Symbol.toPrimitive]=Sf));var Sf,kN=Sg("Object.prototype.toString"),TN=Object.getOwnPropertyDescriptor,CN="[object RegExp]";UA.exports=jA?function(t){if(!t||typeof t!="object")return!1;var r=TN(t,"lastIndex"),n=r&&BA(r,"value");if(!n)return!1;try{HA(t,Ag)}catch(i){return i===Eg}}:function(t){return!t||typeof t!="object"&&typeof t!="function"?!1:kN(t)===CN}});var WA=I((rW,VA)=>{"use strict";g();var PN=wr(),zA=PN("SharedArrayBuffer.prototype.byteLength",!0);VA.exports=zA?function(t){if(!t||typeof t!="object")return!1;try{return zA(t),!0}catch(r){return!1}}:function(t){return!1}});var YA=I((iW,qA)=>{"use strict";g();var RN=Number.prototype.toString,MN=function(t){try{return RN.call(t),!0}catch(r){return!1}},ON=Object.prototype.toString,IN="[object Number]",FN=Ci()();qA.exports=function(t){return typeof t=="number"?!0:typeof t!="object"?!1:FN?MN(t):ON.call(t)===IN}});var KA=I((sW,ZA)=>{"use strict";g();var XA=wr(),$N=XA("Boolean.prototype.toString"),LN=XA("Object.prototype.toString"),DN=function(t){try{return $N(t),!0}catch(r){return!1}},NN="[object Boolean]",jN=Ci()();ZA.exports=function(t){return typeof t=="boolean"?!0:t===null||typeof t!="object"?!1:jN&&Symbol.toStringTag in t?DN(t):LN(t)===NN}});var tk=I((lW,kg)=>{"use strict";g();var BN=Object.prototype.toString,HN=Ju()();HN?(JA=Symbol.prototype.toString,QA=/^Symbol\(.*\)$/,ek=function(t){return typeof t.valueOf()!="symbol"?!1:QA.test(JA.call(t))},kg.exports=function(t){if(typeof t=="symbol")return!0;if(BN.call(t)!=="[object Symbol]")return!1;try{return ek(t)}catch(r){return!1}}):kg.exports=function(t){return!1};var JA,QA,ek});var ik=I((uW,nk)=>{"use strict";g();var rk=typeof BigInt!="undefined"&&BigInt;nk.exports=function(){return typeof rk=="function"&&typeof BigInt=="function"&&typeof rk(42)=="bigint"&&typeof BigInt(42)=="bigint"}});var ok=I((dW,Tg)=>{"use strict";g();var UN=ik()();UN?(ak=BigInt.prototype.valueOf,sk=function(t){try{return ak.call(t),!0}catch(r){}return!1},Tg.exports=function(t){return t===null||typeof t=="undefined"||typeof t=="boolean"||typeof t=="string"||typeof t=="number"||typeof t=="symbol"||typeof t=="function"?!1:typeof t=="bigint"?!0:sk(t)}):Tg.exports=function(t){return!1};var ak,sk});var ck=I((pW,lk)=>{"use strict";g();var GN=ig(),zN=YA(),VN=KA(),WN=tk(),qN=ok();lk.exports=function(t){if(t==null||typeof t!="object"&&typeof t!="function")return null;if(GN(t))return"String";if(zN(t))return"Number";if(VN(t))return"Boolean";if(WN(t))return"Symbol";if(qN(t))return"BigInt"}});var dk=I((gW,fk)=>{"use strict";g();var Ef=typeof WeakMap=="function"&&WeakMap.prototype?WeakMap:null,uk=typeof WeakSet=="function"&&WeakSet.prototype?WeakSet:null,Af;Ef||(Af=function(t){return!1});var Pg=Ef?Ef.prototype.has:null,Cg=uk?uk.prototype.has:null;!Af&&!Pg&&(Af=function(t){return!1});fk.exports=Af||function(t){if(!t||typeof t!="object")return!1;try{if(Pg.call(t,Pg),Cg)try{Cg.call(t,Cg)}catch(r){return!0}return t instanceof Ef}catch(r){}return!1}});var pk=I((yW,Mg)=>{"use strict";g();var YN=Qr(),hk=wr(),XN=YN("%WeakSet%",!0),Rg=hk("WeakSet.prototype.has",!0);Rg?(kf=hk("WeakMap.prototype.has",!0),Mg.exports=function(t){if(!t||typeof t!="object")return!1;try{if(Rg(t,Rg),kf)try{kf(t,kf)}catch(r){return!0}return t instanceof XN}catch(r){}return!1}):Mg.exports=function(t){return!1};var kf});var gk=I((bW,mk)=>{"use strict";g();var ZN=sg(),KN=lg(),JN=dk(),QN=pk();mk.exports=function(t){if(t&&typeof t=="object"){if(ZN(t))return"Map";if(KN(t))return"Set";if(JN(t))return"WeakMap";if(QN(t))return"WeakSet"}return!1}});var bk=I((xW,wk)=>{"use strict";g();var yk=Function.prototype.toString,Gs=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,Ig,Tf;if(typeof Gs=="function"&&typeof Object.defineProperty=="function")try{Ig=Object.defineProperty({},"length",{get:function(){throw Tf}}),Tf={},Gs(function(){throw 42},null,Ig)}catch(e){e!==Tf&&(Gs=null)}else Gs=null;var ej=/^\s*class\b/,Fg=function(t){try{var r=yk.call(t);return ej.test(r)}catch(n){return!1}},Og=function(t){try{return Fg(t)?!1:(yk.call(t),!0)}catch(r){return!1}},Cf=Object.prototype.toString,tj="[object Object]",rj="[object Function]",nj="[object GeneratorFunction]",ij="[object HTMLAllCollection]",aj="[object HTML document.all class]",sj="[object HTMLCollection]",oj=typeof Symbol=="function"&&!!Symbol.toStringTag,lj=!(0 in[,]),$g=function(){return!1};typeof document=="object"&&(vk=document.all,Cf.call(vk)===Cf.call(document.all)&&($g=function(t){if((lj||!t)&&(typeof t=="undefined"||typeof t=="object"))try{var r=Cf.call(t);return(r===ij||r===aj||r===sj||r===tj)&&t("")==null}catch(n){}return!1}));var vk;wk.exports=Gs?function(t){if($g(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;try{Gs(t,null,Ig)}catch(r){if(r!==Tf)return!1}return!Fg(t)&&Og(t)}:function(t){if($g(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;if(oj)return Og(t);if(Fg(t))return!1;var r=Cf.call(t);return r!==rj&&r!==nj&&!/^\[object HTML/.test(r)?!1:Og(t)}});var Sk=I((EW,xk)=>{"use strict";g();var cj=bk(),uj=Object.prototype.toString,_k=Object.prototype.hasOwnProperty,fj=function(t,r,n){for(var i=0,a=t.length;i=3&&(i=n),uj.call(t)==="[object Array]"?fj(t,r,i):typeof t=="string"?dj(t,r,i):hj(t,r,i)};xk.exports=pj});var Ak=I((kW,Ek)=>{"use strict";g();Ek.exports=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]});var Tk=I((CW,kk)=>{"use strict";g();var Lg=Ak(),mj=typeof globalThis=="undefined"?global:globalThis;kk.exports=function(){for(var t=[],r=0;r{"use strict";g();var Rf=Sk(),gj=Tk(),Ck=wa(),jg=wr(),Pf=sf(),vj=jg("Object.prototype.toString"),Rk=Ci()(),Pk=typeof globalThis=="undefined"?global:globalThis,Ng=gj(),Bg=jg("String.prototype.slice"),Dg=Object.getPrototypeOf,yj=jg("Array.prototype.indexOf",!0)||function(t,r){for(var n=0;n-1?r:r!=="Object"?!1:bj(t)}return Pf?wj(t):null}});var $k=I((OW,Fk)=>{"use strict";g();var _j=wr(),Ik=_j("ArrayBuffer.prototype.byteLength",!0),xj=xg();Fk.exports=function(t){return xj(t)?Ik?Ik(t):t.byteLength:NaN}});var sT=I((FW,aT)=>{"use strict";g();var rT=dE(),An=wr(),Lk=kE(),Sj=Qr(),zs=SA(),Ej=tg(),Dk=OA(),Nk=Hm(),jk=ng(),Bk=xg(),Hk=NA(),Uk=GA(),Gk=WA(),zk=Ku(),Vk=ck(),Wk=gk(),qk=Ok(),Yk=$k(),Xk=An("SharedArrayBuffer.prototype.byteLength",!0),Zk=An("Date.prototype.getTime"),Hg=Object.getPrototypeOf,Kk=An("Object.prototype.toString"),If=Sj("%Set%",!0),Ug=An("Map.prototype.has",!0),Ff=An("Map.prototype.get",!0),Jk=An("Map.prototype.size",!0),$f=An("Set.prototype.add",!0),nT=An("Set.prototype.delete",!0),Lf=An("Set.prototype.has",!0),Of=An("Set.prototype.size",!0);function Qk(e,t,r,n){for(var i=zs(e),a;(a=i.next())&&!a.done;)if(en(t,a.value,r,n))return nT(e,a.value),!0;return!1}function iT(e){if(typeof e=="undefined")return null;if(typeof e!="object")return typeof e=="symbol"?!1:typeof e=="string"||typeof e=="number"?+e==+e:!0}function Aj(e,t,r,n,i,a){var s=iT(r);if(s!=null)return s;var o=Ff(t,s),c=rT({},i,{strict:!1});return typeof o=="undefined"&&!Ug(t,s)||!en(n,o,c,a)?!1:!Ug(e,s)&&en(n,o,c,a)}function kj(e,t,r){var n=iT(r);return n!=null?n:Lf(t,n)&&!Lf(e,n)}function eT(e,t,r,n,i,a){for(var s=zs(e),o,c;(o=s.next())&&!o.done;)if(c=o.value,en(r,c,i,a)&&en(n,Ff(t,c),i,a))return nT(e,c),!0;return!1}function en(e,t,r,n){var i=r||{};if(i.strict?Dk(e,t):e===t)return!0;var a=Vk(e),s=Vk(t);if(a!==s)return!1;if(!e||!t||typeof e!="object"&&typeof t!="object")return i.strict?Dk(e,t):e==t;var o=n.has(e),c=n.has(t),l;if(o&&c){if(n.get(e)===n.get(t))return!0}else l={};return o||n.set(e,l),c||n.set(t,l),Pj(e,t,i,n)}function tT(e){return!e||typeof e!="object"||typeof e.length!="number"||typeof e.copy!="function"||typeof e.slice!="function"||e.length>0&&typeof e[0]!="number"?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function Tj(e,t,r,n){if(Of(e)!==Of(t))return!1;for(var i=zs(e),a=zs(t),s,o,c;(s=i.next())&&!s.done;)if(s.value&&typeof s.value=="object")c||(c=new If),$f(c,s.value);else if(!Lf(t,s.value)){if(r.strict||!kj(e,t,s.value))return!1;c||(c=new If),$f(c,s.value)}if(c){for(;(o=a.next())&&!o.done;)if(o.value&&typeof o.value=="object"){if(!Qk(c,o.value,r.strict,n))return!1}else if(!r.strict&&!Lf(e,o.value)&&!Qk(c,o.value,r.strict,n))return!1;return Of(c)===0}return!0}function Cj(e,t,r,n){if(Jk(e)!==Jk(t))return!1;for(var i=zs(e),a=zs(t),s,o,c,l,u,f;(s=i.next())&&!s.done;)if(l=s.value[0],u=s.value[1],l&&typeof l=="object")c||(c=new If),$f(c,l);else if(f=Ff(t,l),typeof f=="undefined"&&!Ug(t,l)||!en(u,f,r,n)){if(r.strict||!Aj(e,t,l,u,r,n))return!1;c||(c=new If),$f(c,l)}if(c){for(;(o=a.next())&&!o.done;)if(l=o.value[0],f=o.value[1],l&&typeof l=="object"){if(!eT(c,e,l,f,r,n))return!1}else if(!r.strict&&(!e.has(l)||!en(Ff(e,l),f,r,n))&&!eT(c,e,l,f,rT({},r,{strict:!1}),n))return!1;return Of(c)===0}return!0}function Pj(e,t,r,n){var i,a;if(typeof e!=typeof t||e==null||t==null||Kk(e)!==Kk(t)||Nk(e)!==Nk(t))return!1;var s=jk(e),o=jk(t);if(s!==o)return!1;var c=e instanceof Error,l=t instanceof Error;if(c!==l||(c||l)&&(e.name!==t.name||e.message!==t.message))return!1;var u=Uk(e),f=Uk(t);if(u!==f||(u||f)&&(e.source!==t.source||Lk(e)!==Lk(t)))return!1;var d=Hk(e),h=Hk(t);if(d!==h||(d||h)&&Zk(e)!==Zk(t)||r.strict&&Hg&&Hg(e)!==Hg(t))return!1;var p=qk(e),m=qk(t);if(p!==m)return!1;if(p||m){if(e.length!==t.length)return!1;for(i=0;i=0;i--)if(k[i]!=w[i])return!1;for(i=k.length-1;i>=0;i--)if(a=k[i],!en(e[a],t[a],r,n))return!1;var A=Wk(e),S=Wk(t);return A!==S?!1:A==="Set"||S==="Set"?Tj(e,t,r,n):A==="Map"?Cj(e,t,r,n):!0}aT.exports=function(t,r,n){return en(t,r,n,Ej())}});var Zg=I((exports,module)=>{g();(function(){"use strict";var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&typeof module=="object"&&module.exports,AMD=typeof define=="function"&&define.amd,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer!="undefined",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return typeof e=="object"&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e,t){return function(r){return new Sha256(t,!0).update(r)[e]()}},createMethod=function(e){var t=createOutputMethod("hex",e);NODE_JS&&(t=nodeWrap(t,e)),t.create=function(){return new Sha256(e)},t.update=function(i){return t.create().update(i)};for(var r=0;r>2]|=e[i]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|n&63)<=57344?(o[a>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|n&63)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|n&63)<=64?(this.block=o[16],this.start=a-64,this.hash(),this.hashed=!0):this.start=a}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=EXTRA[t&3],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var e=this.h0,t=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,c=this.blocks,l,u,f,d,h,p,m,v,y,b,x;for(l=16;l<64;++l)h=c[l-15],u=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,h=c[l-2],f=(h>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,c[l]=c[l-16]+u+c[l-7]+f<<0;for(x=t&r,l=0;l<64;l+=4)this.first?(this.is224?(v=300032,h=c[0]-1413257819,o=h-150054599<<0,n=h+24177077<<0):(v=704751109,h=c[0]-210244248,o=h-1521486534<<0,n=h+143694565<<0),this.first=!1):(u=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),f=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),v=e&t,d=v^e&r^x,m=i&a^~i&s,h=o+f+m+K[l]+c[l],p=u+d,o=n+h<<0,n=h+p<<0),u=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),f=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),y=n&e,d=y^n&t^v,m=o&i^~o&a,h=s+f+m+K[l+1]+c[l+1],p=u+d,s=r+h<<0,r=h+p<<0,u=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),f=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),b=r&n,d=b^r&e^y,m=s&o^~s&i,h=a+f+m+K[l+2]+c[l+2],p=u+d,a=t+h<<0,t=h+p<<0,u=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),f=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),x=t&r,d=x^t&n^b,m=a&s^~a&o,h=i+f+m+K[l+3]+c[l+3],p=u+d,i=e+h<<0,e=h+p<<0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+r<<0,this.h3=this.h3+n<<0,this.h4=this.h4+i<<0,this.h5=this.h5+a<<0,this.h6=this.h6+s<<0,this.h7=this.h7+o<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,c=HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[i&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15];return this.is224||(c+=HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]),c},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,c=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,r>>24&255,r>>16&255,r>>8&255,r&255,n>>24&255,n>>16&255,n>>8&255,n&255,i>>24&255,i>>16&255,i>>8&255,i&255,a>>24&255,a>>16&255,a>>8&255,a&255,s>>24&255,s>>16&255,s>>8&255,s&255];return this.is224||c.push(o>>24&255,o>>16&255,o>>8&255,o&255),c},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};function HmacSha256(e,t,r){var n,i=typeof e;if(i==="string"){var a=[],s=e.length,o=0,c;for(n=0;n>6,a[o++]=128|c&63):c<55296||c>=57344?(a[o++]=224|c>>12,a[o++]=128|c>>6&63,a[o++]=128|c&63):(c=65536+((c&1023)<<10|e.charCodeAt(++n)&1023),a[o++]=240|c>>18,a[o++]=128|c>>12&63,a[o++]=128|c>>6&63,a[o++]=128|c&63);e=a}else if(i==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);e.length>64&&(e=new Sha256(t,!0).update(e).array());var l=[],u=[];for(n=0;n<64;++n){var f=e[n]||0;l[n]=92^f,u[n]=54^f}Sha256.call(this,t,r),this.update(u),this.oKeyPad=l,this.inner=!0,this.sharedMemory=r}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224,AMD&&define(function(){return exports}))})()});var kC=I(A0=>{g();(function(e){var t=/\S/,r=/\"/g,n=/\n/g,i=/\r/g,a=/\\/g,s=/\u2028/,o=/\u2029/;e.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(A,S){var T=A.length,P=0,O=1,j=2,D=P,Q=null,de=null,ee="",J=[],Pe=!1,me=0,F=0,z="{{",N="}}";function Me(){ee.length>0&&(J.push({tag:"_t",text:new String(ee)}),ee="")}function Dt(){for(var st=!0,ot=F;ot"&&($e.indent=J[Ct].text.toString()),J.splice(Ct,1));else ot||J.push({tag:` -`});Pe=!1,F=J.length}function Ee(st,ot){var Ct="="+N,$e=st.indexOf(Ct,ot),G=l(st.substring(st.indexOf("=",ot)+1,$e)).split(" ");return z=G[0],N=G[G.length-1],$e+Ct.length-1}for(S&&(S=S.split(" "),z=S[0],N=S[1]),me=0;me0;){if(D=w.shift(),j&&j.tag=="<"&&!(D.tag in f))throw new Error("Illegal content in < super tag.");if(e.tags[D.tag]<=e.tags.$||h(D,T))S.push(D),D.nodes=d(w,D.tag,S,T);else if(D.tag=="/"){if(S.length===0)throw new Error("Closing tag without opener: /"+D.n);if(O=S.pop(),D.n!=O.n&&!p(D.n,O.n,T))throw new Error("Nesting error: "+O.n+" vs. "+D.n);return O.end=D.i,P}else D.tag==` +`+t.prev}function ff(e,t){var r=Ym(e),n=[];if(r){n.length=e.length;for(var i=0;i{"use strict";g();var ZE=en(),Hs=br(),zD=XE(),VD=qn(),pf=ZE("%WeakMap%",!0),mf=ZE("%Map%",!0),WD=Hs("WeakMap.prototype.get",!0),qD=Hs("WeakMap.prototype.set",!0),YD=Hs("WeakMap.prototype.has",!0),XD=Hs("Map.prototype.get",!0),ZD=Hs("Map.prototype.set",!0),KD=Hs("Map.prototype.has",!0),Qm=function(e,t){for(var r=e,n;(n=r.next)!==null;r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n},JD=function(e,t){var r=Qm(e,t);return r&&r.value},QD=function(e,t,r){var n=Qm(e,t);n?n.value=r:e.next={key:t,next:e.next,value:r}},eN=function(e,t){return!!Qm(e,t)};KE.exports=function(){var t,r,n,i={assert:function(a){if(!i.has(a))throw new VD("Side channel does not contain "+zD(a))},get:function(a){if(pf&&a&&(typeof a=="object"||typeof a=="function")){if(t)return WD(t,a)}else if(mf){if(r)return XD(r,a)}else if(n)return JD(n,a)},has:function(a){if(pf&&a&&(typeof a=="object"||typeof a=="function")){if(t)return YD(t,a)}else if(mf){if(r)return KD(r,a)}else if(n)return eN(n,a);return!1},set:function(a,s){pf&&a&&(typeof a=="object"||typeof a=="function")?(t||(t=new pf),qD(t,a,s)):mf?(r||(r=new mf),ZD(r,a,s)):(n||(n={key:{},next:null}),QD(n,a,s))}};return i}});var QE=I((CV,JE)=>{"use strict";g();var tN=Pm(),Ul=eg()(),Yn=qn(),tg={assert:function(e,t){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`O` is not an object");if(typeof t!="string")throw new Yn("`slot` must be a string");if(Ul.assert(e),!tg.has(e,t))throw new Yn("`"+t+"` is not present on `O`")},get:function(e,t){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`O` is not an object");if(typeof t!="string")throw new Yn("`slot` must be a string");var r=Ul.get(e);return r&&r["$"+t]},has:function(e,t){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`O` is not an object");if(typeof t!="string")throw new Yn("`slot` must be a string");var r=Ul.get(e);return!!r&&tN(r,"$"+t)},set:function(e,t,r){if(!e||typeof e!="object"&&typeof e!="function")throw new Yn("`O` is not an object");if(typeof t!="string")throw new Yn("`slot` must be a string");var n=Ul.get(e);n||(n={},Ul.set(e,n)),n["$"+t]=r}};Object.freeze&&Object.freeze(tg);JE.exports=tg});var rA=I((RV,tA)=>{"use strict";g();var Gl=QE(),rN=SyntaxError,eA=typeof StopIteration=="object"?StopIteration:null;tA.exports=function(t){if(!eA)throw new rN("this environment lacks StopIteration");Gl.set(t,"[[Done]]",!1);var r={next:function(){var i=Gl.get(this,"[[Iterator]]"),a=Gl.get(i,"[[Done]]");try{return{done:a,value:a?void 0:i.next()}}catch(s){if(Gl.set(i,"[[Done]]",!0),s!==eA)throw s;return{done:!0,value:void 0}}}};return Gl.set(r,"[[Iterator]]",t),r}});var rg=I((OV,nA)=>{g();var nN={}.toString;nA.exports=Array.isArray||function(e){return nN.call(e)=="[object Array]"}});var ng=I((FV,iA)=>{"use strict";g();var iN=String.prototype.valueOf,aN=function(t){try{return iN.call(t),!0}catch(r){return!1}},sN=Object.prototype.toString,oN="[object String]",lN=Ci()();iA.exports=function(t){return typeof t=="string"?!0:typeof t!="object"?!1:lN?aN(t):sN.call(t)===oN}});var ag=I((LV,oA)=>{"use strict";g();var ig=typeof Map=="function"&&Map.prototype?Map:null,cN=typeof Set=="function"&&Set.prototype?Set:null,gf;ig||(gf=function(t){return!1});var sA=ig?Map.prototype.has:null,aA=cN?Set.prototype.has:null;!gf&&!sA&&(gf=function(t){return!1});oA.exports=gf||function(t){if(!t||typeof t!="object")return!1;try{if(sA.call(t),aA)try{aA.call(t)}catch(r){return!0}return t instanceof ig}catch(r){}return!1}});var og=I((NV,uA)=>{"use strict";g();var uN=typeof Map=="function"&&Map.prototype?Map:null,sg=typeof Set=="function"&&Set.prototype?Set:null,vf;sg||(vf=function(t){return!1});var lA=uN?Map.prototype.has:null,cA=sg?Set.prototype.has:null;!vf&&!cA&&(vf=function(t){return!1});uA.exports=vf||function(t){if(!t||typeof t!="object")return!1;try{if(cA.call(t),lA)try{lA.call(t)}catch(r){return!0}return t instanceof sg}catch(r){}return!1}});var xA=I((BV,bf)=>{"use strict";g();var fA=Bm(),dA=rA();Ku()()||$l()()?(yf=Symbol.iterator,bf.exports=function(t){if(t!=null&&typeof t[yf]!="undefined")return t[yf]();if(fA(t))return Array.prototype[yf].call(t)}):(hA=rg(),pA=ng(),lg=en(),mA=lg("%Map%",!0),gA=lg("%Set%",!0),Lr=br(),cg=Lr("Array.prototype.push"),ug=Lr("String.prototype.charCodeAt"),vA=Lr("String.prototype.slice"),yA=function(t,r){var n=t.length;if(r+1>=n)return r+1;var i=ug(t,r);if(i<55296||i>56319)return r+1;var a=ug(t,r+1);return a<56320||a>57343?r+1:r+2},wf=function(t){var r=0;return{next:function(){var i=r>=t.length,a;return i||(a=t[r],r+=1),{done:i,value:a}}}},fg=function(t,r){if(hA(t)||fA(t))return wf(t);if(pA(t)){var n=0;return{next:function(){var a=yA(t,n),s=vA(t,n,a);return n=a,{done:a>t.length,value:s}}}}if(r&&typeof t["_es6-shim iterator_"]!="undefined")return t["_es6-shim iterator_"]()},!mA&&!gA?bf.exports=function(t){if(t!=null)return fg(t,!0)}:(wA=ag(),bA=og(),dg=Lr("Map.prototype.forEach",!0),hg=Lr("Set.prototype.forEach",!0),(typeof process=="undefined"||!process.versions||!process.versions.node)&&(pg=Lr("Map.prototype.iterator",!0),mg=Lr("Set.prototype.iterator",!0)),gg=Lr("Map.prototype.@@iterator",!0)||Lr("Map.prototype._es6-shim iterator_",!0),vg=Lr("Set.prototype.@@iterator",!0)||Lr("Set.prototype._es6-shim iterator_",!0),_A=function(t){if(wA(t)){if(pg)return dA(pg(t));if(gg)return gg(t);if(dg){var r=[];return dg(t,function(i,a){cg(r,[a,i])}),wf(r)}}if(bA(t)){if(mg)return dA(mg(t));if(vg)return vg(t);if(hg){var n=[];return hg(t,function(i){cg(n,i)}),wf(n)}}},bf.exports=function(t){return _A(t)||fg(t)}));var yf,hA,pA,lg,mA,gA,Lr,cg,ug,vA,yA,wf,fg,wA,bA,dg,hg,pg,mg,gg,vg,_A});var yg=I((UV,EA)=>{"use strict";g();var SA=function(e){return e!==e};EA.exports=function(t,r){return t===0&&r===0?1/t===1/r:!!(t===r||SA(t)&&SA(r))}});var wg=I((zV,AA)=>{"use strict";g();var fN=yg();AA.exports=function(){return typeof Object.is=="function"?Object.is:fN}});var TA=I((WV,kA)=>{"use strict";g();var dN=wg(),hN=Ti();kA.exports=function(){var t=dN();return hN(Object,{is:t},{is:function(){return Object.is!==t}}),t}});var MA=I((YV,RA)=>{"use strict";g();var pN=Ti(),mN=wa(),gN=yg(),CA=wg(),vN=TA(),PA=mN(CA(),Object);pN(PA,{getPolyfill:CA,implementation:gN,shim:vN});RA.exports=PA});var _g=I((ZV,$A)=>{"use strict";g();var yN=wa(),FA=br(),wN=en(),bg=wN("%ArrayBuffer%",!0),_f=FA("ArrayBuffer.prototype.byteLength",!0),bN=FA("Object.prototype.toString"),OA=!!bg&&!_f&&new bg(0).slice,IA=!!OA&&yN(OA);$A.exports=_f||IA?function(t){if(!t||typeof t!="object")return!1;try{return _f?_f(t):IA(t,0),!0}catch(r){return!1}}:bg?function(t){return bN(t)==="[object ArrayBuffer]"}:function(t){return!1}});var DA=I((JV,LA)=>{"use strict";g();var _N=Date.prototype.getDay,xN=function(t){try{return _N.call(t),!0}catch(r){return!1}},SN=Object.prototype.toString,EN="[object Date]",AN=Ci()();LA.exports=function(t){return typeof t!="object"||t===null?!1:AN?xN(t):SN.call(t)===EN}});var UA=I((eW,HA)=>{"use strict";g();var xg=br(),NA=Ci()(),jA,BA,Sg,Eg;NA&&(jA=xg("Object.prototype.hasOwnProperty"),BA=xg("RegExp.prototype.exec"),Sg={},xf=function(){throw Sg},Eg={toString:xf,valueOf:xf},typeof Symbol.toPrimitive=="symbol"&&(Eg[Symbol.toPrimitive]=xf));var xf,kN=xg("Object.prototype.toString"),TN=Object.getOwnPropertyDescriptor,CN="[object RegExp]";HA.exports=NA?function(t){if(!t||typeof t!="object")return!1;var r=TN(t,"lastIndex"),n=r&&jA(r,"value");if(!n)return!1;try{BA(t,Eg)}catch(i){return i===Sg}}:function(t){return!t||typeof t!="object"&&typeof t!="function"?!1:kN(t)===CN}});var VA=I((rW,zA)=>{"use strict";g();var PN=br(),GA=PN("SharedArrayBuffer.prototype.byteLength",!0);zA.exports=GA?function(t){if(!t||typeof t!="object")return!1;try{return GA(t),!0}catch(r){return!1}}:function(t){return!1}});var qA=I((iW,WA)=>{"use strict";g();var RN=Number.prototype.toString,MN=function(t){try{return RN.call(t),!0}catch(r){return!1}},ON=Object.prototype.toString,IN="[object Number]",FN=Ci()();WA.exports=function(t){return typeof t=="number"?!0:typeof t!="object"?!1:FN?MN(t):ON.call(t)===IN}});var ZA=I((sW,XA)=>{"use strict";g();var YA=br(),$N=YA("Boolean.prototype.toString"),LN=YA("Object.prototype.toString"),DN=function(t){try{return $N(t),!0}catch(r){return!1}},NN="[object Boolean]",jN=Ci()();XA.exports=function(t){return typeof t=="boolean"?!0:t===null||typeof t!="object"?!1:jN&&Symbol.toStringTag in t?DN(t):LN(t)===NN}});var ek=I((lW,Ag)=>{"use strict";g();var BN=Object.prototype.toString,HN=Ku()();HN?(KA=Symbol.prototype.toString,JA=/^Symbol\(.*\)$/,QA=function(t){return typeof t.valueOf()!="symbol"?!1:JA.test(KA.call(t))},Ag.exports=function(t){if(typeof t=="symbol")return!0;if(BN.call(t)!=="[object Symbol]")return!1;try{return QA(t)}catch(r){return!1}}):Ag.exports=function(t){return!1};var KA,JA,QA});var nk=I((uW,rk)=>{"use strict";g();var tk=typeof BigInt!="undefined"&&BigInt;rk.exports=function(){return typeof tk=="function"&&typeof BigInt=="function"&&typeof tk(42)=="bigint"&&typeof BigInt(42)=="bigint"}});var sk=I((dW,kg)=>{"use strict";g();var UN=nk()();UN?(ik=BigInt.prototype.valueOf,ak=function(t){try{return ik.call(t),!0}catch(r){}return!1},kg.exports=function(t){return t===null||typeof t=="undefined"||typeof t=="boolean"||typeof t=="string"||typeof t=="number"||typeof t=="symbol"||typeof t=="function"?!1:typeof t=="bigint"?!0:ak(t)}):kg.exports=function(t){return!1};var ik,ak});var lk=I((pW,ok)=>{"use strict";g();var GN=ng(),zN=qA(),VN=ZA(),WN=ek(),qN=sk();ok.exports=function(t){if(t==null||typeof t!="object"&&typeof t!="function")return null;if(GN(t))return"String";if(zN(t))return"Number";if(VN(t))return"Boolean";if(WN(t))return"Symbol";if(qN(t))return"BigInt"}});var fk=I((gW,uk)=>{"use strict";g();var Sf=typeof WeakMap=="function"&&WeakMap.prototype?WeakMap:null,ck=typeof WeakSet=="function"&&WeakSet.prototype?WeakSet:null,Ef;Sf||(Ef=function(t){return!1});var Cg=Sf?Sf.prototype.has:null,Tg=ck?ck.prototype.has:null;!Ef&&!Cg&&(Ef=function(t){return!1});uk.exports=Ef||function(t){if(!t||typeof t!="object")return!1;try{if(Cg.call(t,Cg),Tg)try{Tg.call(t,Tg)}catch(r){return!0}return t instanceof Sf}catch(r){}return!1}});var hk=I((yW,Rg)=>{"use strict";g();var YN=en(),dk=br(),XN=YN("%WeakSet%",!0),Pg=dk("WeakSet.prototype.has",!0);Pg?(Af=dk("WeakMap.prototype.has",!0),Rg.exports=function(t){if(!t||typeof t!="object")return!1;try{if(Pg(t,Pg),Af)try{Af(t,Af)}catch(r){return!0}return t instanceof XN}catch(r){}return!1}):Rg.exports=function(t){return!1};var Af});var mk=I((bW,pk)=>{"use strict";g();var ZN=ag(),KN=og(),JN=fk(),QN=hk();pk.exports=function(t){if(t&&typeof t=="object"){if(ZN(t))return"Map";if(KN(t))return"Set";if(JN(t))return"WeakMap";if(QN(t))return"WeakSet"}return!1}});var wk=I((xW,yk)=>{"use strict";g();var vk=Function.prototype.toString,Us=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,Og,kf;if(typeof Us=="function"&&typeof Object.defineProperty=="function")try{Og=Object.defineProperty({},"length",{get:function(){throw kf}}),kf={},Us(function(){throw 42},null,Og)}catch(e){e!==kf&&(Us=null)}else Us=null;var ej=/^\s*class\b/,Ig=function(t){try{var r=vk.call(t);return ej.test(r)}catch(n){return!1}},Mg=function(t){try{return Ig(t)?!1:(vk.call(t),!0)}catch(r){return!1}},Tf=Object.prototype.toString,tj="[object Object]",rj="[object Function]",nj="[object GeneratorFunction]",ij="[object HTMLAllCollection]",aj="[object HTML document.all class]",sj="[object HTMLCollection]",oj=typeof Symbol=="function"&&!!Symbol.toStringTag,lj=!(0 in[,]),Fg=function(){return!1};typeof document=="object"&&(gk=document.all,Tf.call(gk)===Tf.call(document.all)&&(Fg=function(t){if((lj||!t)&&(typeof t=="undefined"||typeof t=="object"))try{var r=Tf.call(t);return(r===ij||r===aj||r===sj||r===tj)&&t("")==null}catch(n){}return!1}));var gk;yk.exports=Us?function(t){if(Fg(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;try{Us(t,null,Og)}catch(r){if(r!==kf)return!1}return!Ig(t)&&Mg(t)}:function(t){if(Fg(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;if(oj)return Mg(t);if(Ig(t))return!1;var r=Tf.call(t);return r!==rj&&r!==nj&&!/^\[object HTML/.test(r)?!1:Mg(t)}});var xk=I((EW,_k)=>{"use strict";g();var cj=wk(),uj=Object.prototype.toString,bk=Object.prototype.hasOwnProperty,fj=function(t,r,n){for(var i=0,a=t.length;i=3&&(i=n),uj.call(t)==="[object Array]"?fj(t,r,i):typeof t=="string"?dj(t,r,i):hj(t,r,i)};_k.exports=pj});var Ek=I((kW,Sk)=>{"use strict";g();Sk.exports=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]});var kk=I((CW,Ak)=>{"use strict";g();var $g=Ek(),mj=typeof globalThis=="undefined"?global:globalThis;Ak.exports=function(){for(var t=[],r=0;r<$g.length;r++)typeof mj[$g[r]]=="function"&&(t[t.length]=$g[r]);return t}});var Mk=I((RW,Rk)=>{"use strict";g();var Pf=xk(),gj=kk(),Tk=wa(),Ng=br(),Cf=af(),vj=Ng("Object.prototype.toString"),Pk=Ci()(),Ck=typeof globalThis=="undefined"?global:globalThis,Dg=gj(),jg=Ng("String.prototype.slice"),Lg=Object.getPrototypeOf,yj=Ng("Array.prototype.indexOf",!0)||function(t,r){for(var n=0;n-1?r:r!=="Object"?!1:bj(t)}return Cf?wj(t):null}});var Fk=I((OW,Ik)=>{"use strict";g();var _j=br(),Ok=_j("ArrayBuffer.prototype.byteLength",!0),xj=_g();Ik.exports=function(t){return xj(t)?Ok?Ok(t):t.byteLength:NaN}});var aT=I((FW,iT)=>{"use strict";g();var tT=fE(),An=br(),$k=AE(),Sj=en(),Gs=xA(),Ej=eg(),Lk=MA(),Dk=Bm(),Nk=rg(),jk=_g(),Bk=DA(),Hk=UA(),Uk=VA(),Gk=Zu(),zk=lk(),Vk=mk(),Wk=Mk(),qk=Fk(),Yk=An("SharedArrayBuffer.prototype.byteLength",!0),Xk=An("Date.prototype.getTime"),Bg=Object.getPrototypeOf,Zk=An("Object.prototype.toString"),Of=Sj("%Set%",!0),Hg=An("Map.prototype.has",!0),If=An("Map.prototype.get",!0),Kk=An("Map.prototype.size",!0),Ff=An("Set.prototype.add",!0),rT=An("Set.prototype.delete",!0),$f=An("Set.prototype.has",!0),Mf=An("Set.prototype.size",!0);function Jk(e,t,r,n){for(var i=Gs(e),a;(a=i.next())&&!a.done;)if(tn(t,a.value,r,n))return rT(e,a.value),!0;return!1}function nT(e){if(typeof e=="undefined")return null;if(typeof e!="object")return typeof e=="symbol"?!1:typeof e=="string"||typeof e=="number"?+e==+e:!0}function Aj(e,t,r,n,i,a){var s=nT(r);if(s!=null)return s;var o=If(t,s),c=tT({},i,{strict:!1});return typeof o=="undefined"&&!Hg(t,s)||!tn(n,o,c,a)?!1:!Hg(e,s)&&tn(n,o,c,a)}function kj(e,t,r){var n=nT(r);return n!=null?n:$f(t,n)&&!$f(e,n)}function Qk(e,t,r,n,i,a){for(var s=Gs(e),o,c;(o=s.next())&&!o.done;)if(c=o.value,tn(r,c,i,a)&&tn(n,If(t,c),i,a))return rT(e,c),!0;return!1}function tn(e,t,r,n){var i=r||{};if(i.strict?Lk(e,t):e===t)return!0;var a=zk(e),s=zk(t);if(a!==s)return!1;if(!e||!t||typeof e!="object"&&typeof t!="object")return i.strict?Lk(e,t):e==t;var o=n.has(e),c=n.has(t),l;if(o&&c){if(n.get(e)===n.get(t))return!0}else l={};return o||n.set(e,l),c||n.set(t,l),Pj(e,t,i,n)}function eT(e){return!e||typeof e!="object"||typeof e.length!="number"||typeof e.copy!="function"||typeof e.slice!="function"||e.length>0&&typeof e[0]!="number"?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function Tj(e,t,r,n){if(Mf(e)!==Mf(t))return!1;for(var i=Gs(e),a=Gs(t),s,o,c;(s=i.next())&&!s.done;)if(s.value&&typeof s.value=="object")c||(c=new Of),Ff(c,s.value);else if(!$f(t,s.value)){if(r.strict||!kj(e,t,s.value))return!1;c||(c=new Of),Ff(c,s.value)}if(c){for(;(o=a.next())&&!o.done;)if(o.value&&typeof o.value=="object"){if(!Jk(c,o.value,r.strict,n))return!1}else if(!r.strict&&!$f(e,o.value)&&!Jk(c,o.value,r.strict,n))return!1;return Mf(c)===0}return!0}function Cj(e,t,r,n){if(Kk(e)!==Kk(t))return!1;for(var i=Gs(e),a=Gs(t),s,o,c,l,u,f;(s=i.next())&&!s.done;)if(l=s.value[0],u=s.value[1],l&&typeof l=="object")c||(c=new Of),Ff(c,l);else if(f=If(t,l),typeof f=="undefined"&&!Hg(t,l)||!tn(u,f,r,n)){if(r.strict||!Aj(e,t,l,u,r,n))return!1;c||(c=new Of),Ff(c,l)}if(c){for(;(o=a.next())&&!o.done;)if(l=o.value[0],f=o.value[1],l&&typeof l=="object"){if(!Qk(c,e,l,f,r,n))return!1}else if(!r.strict&&(!e.has(l)||!tn(If(e,l),f,r,n))&&!Qk(c,e,l,f,tT({},r,{strict:!1}),n))return!1;return Mf(c)===0}return!0}function Pj(e,t,r,n){var i,a;if(typeof e!=typeof t||e==null||t==null||Zk(e)!==Zk(t)||Dk(e)!==Dk(t))return!1;var s=Nk(e),o=Nk(t);if(s!==o)return!1;var c=e instanceof Error,l=t instanceof Error;if(c!==l||(c||l)&&(e.name!==t.name||e.message!==t.message))return!1;var u=Hk(e),f=Hk(t);if(u!==f||(u||f)&&(e.source!==t.source||$k(e)!==$k(t)))return!1;var d=Bk(e),h=Bk(t);if(d!==h||(d||h)&&Xk(e)!==Xk(t)||r.strict&&Bg&&Bg(e)!==Bg(t))return!1;var p=Wk(e),m=Wk(t);if(p!==m)return!1;if(p||m){if(e.length!==t.length)return!1;for(i=0;i=0;i--)if(k[i]!=w[i])return!1;for(i=k.length-1;i>=0;i--)if(a=k[i],!tn(e[a],t[a],r,n))return!1;var A=Vk(e),S=Vk(t);return A!==S?!1:A==="Set"||S==="Set"?Tj(e,t,r,n):A==="Map"?Cj(e,t,r,n):!0}iT.exports=function(t,r,n){return tn(t,r,n,Ej())}});var Xg=I((exports,module)=>{g();(function(){"use strict";var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&typeof module=="object"&&module.exports,AMD=typeof define=="function"&&define.amd,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer!="undefined",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return typeof e=="object"&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e,t){return function(r){return new Sha256(t,!0).update(r)[e]()}},createMethod=function(e){var t=createOutputMethod("hex",e);NODE_JS&&(t=nodeWrap(t,e)),t.create=function(){return new Sha256(e)},t.update=function(i){return t.create().update(i)};for(var r=0;r>2]|=e[i]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|n&63)<=57344?(o[a>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|n&63)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|n&63)<=64?(this.block=o[16],this.start=a-64,this.hash(),this.hashed=!0):this.start=a}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=EXTRA[t&3],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var e=this.h0,t=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,c=this.blocks,l,u,f,d,h,p,m,v,y,b,x;for(l=16;l<64;++l)h=c[l-15],u=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,h=c[l-2],f=(h>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,c[l]=c[l-16]+u+c[l-7]+f<<0;for(x=t&r,l=0;l<64;l+=4)this.first?(this.is224?(v=300032,h=c[0]-1413257819,o=h-150054599<<0,n=h+24177077<<0):(v=704751109,h=c[0]-210244248,o=h-1521486534<<0,n=h+143694565<<0),this.first=!1):(u=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),f=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),v=e&t,d=v^e&r^x,m=i&a^~i&s,h=o+f+m+K[l]+c[l],p=u+d,o=n+h<<0,n=h+p<<0),u=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),f=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),y=n&e,d=y^n&t^v,m=o&i^~o&a,h=s+f+m+K[l+1]+c[l+1],p=u+d,s=r+h<<0,r=h+p<<0,u=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),f=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),b=r&n,d=b^r&e^y,m=s&o^~s&i,h=a+f+m+K[l+2]+c[l+2],p=u+d,a=t+h<<0,t=h+p<<0,u=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),f=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),x=t&r,d=x^t&n^b,m=a&s^~a&o,h=i+f+m+K[l+3]+c[l+3],p=u+d,i=e+h<<0,e=h+p<<0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+r<<0,this.h3=this.h3+n<<0,this.h4=this.h4+i<<0,this.h5=this.h5+a<<0,this.h6=this.h6+s<<0,this.h7=this.h7+o<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,c=HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[i&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15];return this.is224||(c+=HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]),c},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,c=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,r>>24&255,r>>16&255,r>>8&255,r&255,n>>24&255,n>>16&255,n>>8&255,n&255,i>>24&255,i>>16&255,i>>8&255,i&255,a>>24&255,a>>16&255,a>>8&255,a&255,s>>24&255,s>>16&255,s>>8&255,s&255];return this.is224||c.push(o>>24&255,o>>16&255,o>>8&255,o&255),c},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};function HmacSha256(e,t,r){var n,i=typeof e;if(i==="string"){var a=[],s=e.length,o=0,c;for(n=0;n>6,a[o++]=128|c&63):c<55296||c>=57344?(a[o++]=224|c>>12,a[o++]=128|c>>6&63,a[o++]=128|c&63):(c=65536+((c&1023)<<10|e.charCodeAt(++n)&1023),a[o++]=240|c>>18,a[o++]=128|c>>12&63,a[o++]=128|c>>6&63,a[o++]=128|c&63);e=a}else if(i==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);e.length>64&&(e=new Sha256(t,!0).update(e).array());var l=[],u=[];for(n=0;n<64;++n){var f=e[n]||0;l[n]=92^f,u[n]=54^f}Sha256.call(this,t,r),this.update(u),this.oKeyPad=l,this.inner=!0,this.sharedMemory=r}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224,AMD&&define(function(){return exports}))})()});var kC=I(E0=>{g();(function(e){var t=/\S/,r=/\"/g,n=/\n/g,i=/\r/g,a=/\\/g,s=/\u2028/,o=/\u2029/;e.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(A,S){var T=A.length,P=0,O=1,j=2,D=P,Q=null,de=null,ee="",J=[],Pe=!1,me=0,F=0,G="{{",N="}}";function Me(){ee.length>0&&(J.push({tag:"_t",text:new String(ee)}),ee="")}function Dt(){for(var st=!0,ot=F;ot"&&($e.indent=J[Ct].text.toString()),J.splice(Ct,1));else ot||J.push({tag:` +`});Pe=!1,F=J.length}function Ee(st,ot){var Ct="="+N,$e=st.indexOf(Ct,ot),U=l(st.substring(st.indexOf("=",ot)+1,$e)).split(" ");return G=U[0],N=U[U.length-1],$e+Ct.length-1}for(S&&(S=S.split(" "),G=S[0],N=S[1]),me=0;me0;){if(D=w.shift(),j&&j.tag=="<"&&!(D.tag in f))throw new Error("Illegal content in < super tag.");if(e.tags[D.tag]<=e.tags.$||h(D,T))S.push(D),D.nodes=d(w,D.tag,S,T);else if(D.tag=="/"){if(S.length===0)throw new Error("Closing tag without opener: /"+D.n);if(O=S.pop(),D.n!=O.n&&!p(D.n,O.n,T))throw new Error("Nesting error: "+O.n+" vs. "+D.n);return O.end=D.i,P}else D.tag==` `&&(D.last=w.length==0||w[0].tag==` -`);P.push(D)}if(S.length>0)throw new Error("missing closing tag: "+S.pop().n);return P}function h(w,A){for(var S=0,T=A.length;S":E,"<":function(w,A){var S={partials:{},code:"",subs:{},inPartial:!0};e.walk(w.nodes,S);var T=A.partials[E(w,A)];T.subs=S.subs,T.partials=S.partials},$:function(w,A){var S={subs:{},code:"",partials:A.partials,prefix:w.n};e.walk(w.nodes,S),A.subs[w.n]=S.code,A.inPartial||(A.code+='t.sub("'+b(w.n)+'",c,p,i);')},"\n":function(w,A){A.code+=k('"\\n"'+(w.last?"":" + i"))},_v:function(w,A){A.code+="t.b(t.v(t."+x(w.n)+'("'+b(w.n)+'",c,p,0)));'},_t:function(w,A){A.code+=k('"'+b(w.text)+'"')},"{":_,"&":_};function _(w,A){A.code+="t.b(t.t(t."+x(w.n)+'("'+b(w.n)+'",c,p,0)));'}function k(w){return"t.b("+w+");"}e.walk=function(w,A){for(var S,T=0,P=w.length;T{g();var UB={};(function(e){e.Template=function(d,h,p,m){d=d||{},this.r=d.code||this.r,this.c=p,this.options=m||{},this.text=h||"",this.partials=d.partials||{},this.subs=d.subs||{},this.buf=""},e.Template.prototype={r:function(d,h,p){return""},v:u,t:l,render:function(h,p,m){return this.ri([h],p||{},m)},ri:function(d,h,p){return this.r(d,h,p)},ep:function(d,h){var p=this.partials[d],m=h[p.name];if(p.instance&&p.base==m)return p.instance;if(typeof m=="string"){if(!this.c)throw new Error("No compiler available.");m=this.c.compile(m,this.options)}if(!m)return null;if(this.partials[d].base=m,p.subs){h.stackText||(h.stackText={});for(key in p.subs)h.stackText[key]||(h.stackText[key]=this.activeSub!==void 0&&h.stackText[this.activeSub]?h.stackText[this.activeSub]:this.text);m=r(m,p.subs,p.partials,this.stackSubs,this.stackPartials,h.stackText)}return this.partials[d].instance=m,m},rp:function(d,h,p,m){var v=this.ep(d,p);return v?v.ri(h,p,m):""},rs:function(d,h,p){var m=d[d.length-1];if(!f(m)){p(d,h,this);return}for(var v=0;v=0;E--)if(y=h[E],v=t(d,y,x),v!==void 0){b=!0;break}return b?(!m&&typeof v=="function"&&(v=this.mv(v,h,p)),v):m?!1:""},ls:function(d,h,p,m,v){var y=this.options.delimiters;return this.options.delimiters=v,this.b(this.ct(l(d.call(h,m)),h,p)),this.options.delimiters=y,!1},ct:function(d,h,p){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(d,this.options).render(h,p)},b:function(d){this.buf+=d},fl:function(){var d=this.buf;return this.buf="",d},ms:function(d,h,p,m,v,y,b){var x,E=h[h.length-1],_=d.call(E);return typeof _=="function"?m?!0:(x=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(_,E,p,x.substring(v,y),b)):_},mv:function(d,h,p){var m=h[h.length-1],v=d.call(m);return typeof v=="function"?this.ct(l(v.call(m)),m,p):v},sub:function(d,h,p,m){var v=this.subs[d];v&&(this.activeSub=d,v(h,p,this,m),this.activeSub=!1)}};function t(d,h,p){var m;return h&&typeof h=="object"&&(h[d]!==void 0?m=h[d]:p&&h.get&&typeof h.get=="function"&&(m=h.get(d))),m}function r(d,h,p,m,v,y){function b(){}b.prototype=d;function x(){}x.prototype=d.subs;var E,_=new b;_.subs=new x,_.subsText={},_.buf="",m=m||{},_.stackSubs=m,_.subsText=y;for(E in h)m[E]||(m[E]=h[E]);for(E in m)_.subs[E]=m[E];v=v||{},_.stackPartials=v;for(E in p)v[E]||(v[E]=p[E]);for(E in v)_.partials[E]=v[E];return _}var n=/&/g,i=//g,s=/\'/g,o=/\"/g,c=/[&<>\"\']/;function l(d){return String(d==null?"":d)}function u(d){return d=l(d),c.test(d)?d.replace(n,"&").replace(i,"<").replace(a,">").replace(s,"'").replace(o,"""):d}var f=Array.isArray||function(d){return Object.prototype.toString.call(d)==="[object Array]"}})(typeof k0!="undefined"?k0:UB)});var T0=I((LX,CC)=>{g();var gd=kC();gd.Template=TC().Template;gd.template=gd.Template;CC.exports=gd});var X3=I((wc,Ev)=>{g();(function(t,r){typeof wc=="object"&&typeof Ev=="object"?Ev.exports=r():typeof define=="function"&&define.amd?define([],r):typeof wc=="object"?wc.feather=r():t.feather=r()})(typeof self!="undefined"?self:wc,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.r=function(n){Object.defineProperty(n,"__esModule",{value:!0})},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=0)}({"./dist/icons.json":function(e){e.exports={activity:'',airplay:'',"alert-circle":'',"alert-octagon":'',"alert-triangle":'',"align-center":'',"align-justify":'',"align-left":'',"align-right":'',anchor:'',aperture:'',archive:'',"arrow-down-circle":'',"arrow-down-left":'',"arrow-down-right":'',"arrow-down":'',"arrow-left-circle":'',"arrow-left":'',"arrow-right-circle":'',"arrow-right":'',"arrow-up-circle":'',"arrow-up-left":'',"arrow-up-right":'',"arrow-up":'',"at-sign":'',award:'',"bar-chart-2":'',"bar-chart":'',"battery-charging":'',battery:'',"bell-off":'',bell:'',bluetooth:'',bold:'',"book-open":'',book:'',bookmark:'',box:'',briefcase:'',calendar:'',"camera-off":'',camera:'',cast:'',"check-circle":'',"check-square":'',check:'',"chevron-down":'',"chevron-left":'',"chevron-right":'',"chevron-up":'',"chevrons-down":'',"chevrons-left":'',"chevrons-right":'',"chevrons-up":'',chrome:'',circle:'',clipboard:'',clock:'',"cloud-drizzle":'',"cloud-lightning":'',"cloud-off":'',"cloud-rain":'',"cloud-snow":'',cloud:'',code:'',codepen:'',codesandbox:'',coffee:'',columns:'',command:'',compass:'',copy:'',"corner-down-left":'',"corner-down-right":'',"corner-left-down":'',"corner-left-up":'',"corner-right-down":'',"corner-right-up":'',"corner-up-left":'',"corner-up-right":'',cpu:'',"credit-card":'',crop:'',crosshair:'',database:'',delete:'',disc:'',"divide-circle":'',"divide-square":'',divide:'',"dollar-sign":'',"download-cloud":'',download:'',dribbble:'',droplet:'',"edit-2":'',"edit-3":'',edit:'',"external-link":'',"eye-off":'',eye:'',facebook:'',"fast-forward":'',feather:'',figma:'',"file-minus":'',"file-plus":'',"file-text":'',file:'',film:'',filter:'',flag:'',"folder-minus":'',"folder-plus":'',folder:'',framer:'',frown:'',gift:'',"git-branch":'',"git-commit":'',"git-merge":'',"git-pull-request":'',github:'',gitlab:'',globe:'',grid:'',"hard-drive":'',hash:'',headphones:'',heart:'',"help-circle":'',hexagon:'',home:'',image:'',inbox:'',info:'',instagram:'',italic:'',key:'',layers:'',layout:'',"life-buoy":'',"link-2":'',link:'',linkedin:'',list:'',loader:'',lock:'',"log-in":'',"log-out":'',mail:'',"map-pin":'',map:'',"maximize-2":'',maximize:'',meh:'',menu:'',"message-circle":'',"message-square":'',"mic-off":'',mic:'',"minimize-2":'',minimize:'',"minus-circle":'',"minus-square":'',minus:'',monitor:'',moon:'',"more-horizontal":'',"more-vertical":'',"mouse-pointer":'',move:'',music:'',"navigation-2":'',navigation:'',octagon:'',package:'',paperclip:'',"pause-circle":'',pause:'',"pen-tool":'',percent:'',"phone-call":'',"phone-forwarded":'',"phone-incoming":'',"phone-missed":'',"phone-off":'',"phone-outgoing":'',phone:'',"pie-chart":'',"play-circle":'',play:'',"plus-circle":'',"plus-square":'',plus:'',pocket:'',power:'',printer:'',radio:'',"refresh-ccw":'',"refresh-cw":'',repeat:'',rewind:'',"rotate-ccw":'',"rotate-cw":'',rss:'',save:'',scissors:'',search:'',send:'',server:'',settings:'',"share-2":'',share:'',"shield-off":'',shield:'',"shopping-bag":'',"shopping-cart":'',shuffle:'',sidebar:'',"skip-back":'',"skip-forward":'',slack:'',slash:'',sliders:'',smartphone:'',smile:'',speaker:'',square:'',star:'',"stop-circle":'',sun:'',sunrise:'',sunset:'',table:'',tablet:'',tag:'',target:'',terminal:'',thermometer:'',"thumbs-down":'',"thumbs-up":'',"toggle-left":'',"toggle-right":'',tool:'',"trash-2":'',trash:'',trello:'',"trending-down":'',"trending-up":'',triangle:'',truck:'',tv:'',twitch:'',twitter:'',type:'',umbrella:'',underline:'',unlock:'',"upload-cloud":'',upload:'',"user-check":'',"user-minus":'',"user-plus":'',"user-x":'',user:'',users:'',"video-off":'',video:'',voicemail:'',"volume-1":'',"volume-2":'',"volume-x":'',volume:'',watch:'',"wifi-off":'',wifi:'',wind:'',"x-circle":'',"x-octagon":'',"x-square":'',x:'',youtube:'',"zap-off":'',zap:'',"zoom-in":'',"zoom-out":''}},"./node_modules/classnames/dedupe.js":function(e,t,r){var n,i;(function(){"use strict";var a=function(){function s(){}s.prototype=Object.create(null);function o(m,v){for(var y=v.length,b=0;b1?arguments[1]:void 0,v=m!==void 0,y=0,b=l(d),x,E,_,k;if(v&&(m=n(m,p>2?arguments[2]:void 0,2)),b!=null&&!(h==Array&&s(b)))for(k=b.call(d),E=new h;!(_=k.next()).done;y++)c(E,y,v?a(k,m,[_.value,y],!0):_.value);else for(x=o(d.length),E=new h(x);x>y;y++)c(E,y,v?m(d[y],y):d[y]);return E.length=y,E}},"./node_modules/core-js/internals/array-includes.js":function(e,t,r){var n=r("./node_modules/core-js/internals/to-indexed-object.js"),i=r("./node_modules/core-js/internals/to-length.js"),a=r("./node_modules/core-js/internals/to-absolute-index.js");e.exports=function(s){return function(o,c,l){var u=n(o),f=i(u.length),d=a(l,f),h;if(s&&c!=c){for(;f>d;)if(h=u[d++],h!=h)return!0}else for(;f>d;d++)if((s||d in u)&&u[d]===c)return s||d||0;return!s&&-1}}},"./node_modules/core-js/internals/bind-context.js":function(e,t,r){var n=r("./node_modules/core-js/internals/a-function.js");e.exports=function(i,a,s){if(n(i),a===void 0)return i;switch(s){case 0:return function(){return i.call(a)};case 1:return function(o){return i.call(a,o)};case 2:return function(o,c){return i.call(a,o,c)};case 3:return function(o,c,l){return i.call(a,o,c,l)}}return function(){return i.apply(a,arguments)}}},"./node_modules/core-js/internals/call-with-safe-iteration-closing.js":function(e,t,r){var n=r("./node_modules/core-js/internals/an-object.js");e.exports=function(i,a,s,o){try{return o?a(n(s)[0],s[1]):a(s)}catch(l){var c=i.return;throw c!==void 0&&n(c.call(i)),l}}},"./node_modules/core-js/internals/check-correctness-of-iteration.js":function(e,t,r){var n=r("./node_modules/core-js/internals/well-known-symbol.js"),i=n("iterator"),a=!1;try{var s=0,o={next:function(){return{done:!!s++}},return:function(){a=!0}};o[i]=function(){return this},Array.from(o,function(){throw 2})}catch(c){}e.exports=function(c,l){if(!l&&!a)return!1;var u=!1;try{var f={};f[i]=function(){return{next:function(){return{done:u=!0}}}},c(f)}catch(d){}return u}},"./node_modules/core-js/internals/classof-raw.js":function(e,t){var r={}.toString;e.exports=function(n){return r.call(n).slice(8,-1)}},"./node_modules/core-js/internals/classof.js":function(e,t,r){var n=r("./node_modules/core-js/internals/classof-raw.js"),i=r("./node_modules/core-js/internals/well-known-symbol.js"),a=i("toStringTag"),s=n(function(){return arguments}())=="Arguments",o=function(c,l){try{return c[l]}catch(u){}};e.exports=function(c){var l,u,f;return c===void 0?"Undefined":c===null?"Null":typeof(u=o(l=Object(c),a))=="string"?u:s?n(l):(f=n(l))=="Object"&&typeof l.callee=="function"?"Arguments":f}},"./node_modules/core-js/internals/copy-constructor-properties.js":function(e,t,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/own-keys.js"),a=r("./node_modules/core-js/internals/object-get-own-property-descriptor.js"),s=r("./node_modules/core-js/internals/object-define-property.js");e.exports=function(o,c){for(var l=i(c),u=s.f,f=a.f,d=0;d",x="java"+y+":",E;for(p.style.display="none",o.appendChild(p),p.src=String(x),E=p.contentWindow.document,E.open(),E.write(v+y+b+"document.F=Object"+v+"/"+y+b),E.close(),h=E.F;m--;)delete h[f][a[m]];return h()};e.exports=Object.create||function(m,v){var y;return m!==null?(d[f]=n(m),y=new d,d[f]=null,y[u]=m):y=h(),v===void 0?y:i(y,v)},s[u]=!0},"./node_modules/core-js/internals/object-define-properties.js":function(e,t,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/object-define-property.js"),a=r("./node_modules/core-js/internals/an-object.js"),s=r("./node_modules/core-js/internals/object-keys.js");e.exports=n?Object.defineProperties:function(c,l){a(c);for(var u=s(l),f=u.length,d=0,h;f>d;)i.f(c,h=u[d++],l[h]);return c}},"./node_modules/core-js/internals/object-define-property.js":function(e,t,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/ie8-dom-define.js"),a=r("./node_modules/core-js/internals/an-object.js"),s=r("./node_modules/core-js/internals/to-primitive.js"),o=Object.defineProperty;t.f=n?o:function(l,u,f){if(a(l),u=s(u,!0),a(f),i)try{return o(l,u,f)}catch(d){}if("get"in f||"set"in f)throw TypeError("Accessors not supported");return"value"in f&&(l[u]=f.value),l}},"./node_modules/core-js/internals/object-get-own-property-descriptor.js":function(e,t,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/object-property-is-enumerable.js"),a=r("./node_modules/core-js/internals/create-property-descriptor.js"),s=r("./node_modules/core-js/internals/to-indexed-object.js"),o=r("./node_modules/core-js/internals/to-primitive.js"),c=r("./node_modules/core-js/internals/has.js"),l=r("./node_modules/core-js/internals/ie8-dom-define.js"),u=Object.getOwnPropertyDescriptor;t.f=n?u:function(d,h){if(d=s(d),h=o(h,!0),l)try{return u(d,h)}catch(p){}if(c(d,h))return a(!i.f.call(d,h),d[h])}},"./node_modules/core-js/internals/object-get-own-property-names.js":function(e,t,r){var n=r("./node_modules/core-js/internals/object-keys-internal.js"),i=r("./node_modules/core-js/internals/enum-bug-keys.js"),a=i.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(o){return n(o,a)}},"./node_modules/core-js/internals/object-get-own-property-symbols.js":function(e,t){t.f=Object.getOwnPropertySymbols},"./node_modules/core-js/internals/object-get-prototype-of.js":function(e,t,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/to-object.js"),a=r("./node_modules/core-js/internals/shared-key.js"),s=r("./node_modules/core-js/internals/correct-prototype-getter.js"),o=a("IE_PROTO"),c=Object.prototype;e.exports=s?Object.getPrototypeOf:function(l){return l=i(l),n(l,o)?l[o]:typeof l.constructor=="function"&&l instanceof l.constructor?l.constructor.prototype:l instanceof Object?c:null}},"./node_modules/core-js/internals/object-keys-internal.js":function(e,t,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/to-indexed-object.js"),a=r("./node_modules/core-js/internals/array-includes.js"),s=r("./node_modules/core-js/internals/hidden-keys.js"),o=a(!1);e.exports=function(c,l){var u=i(c),f=0,d=[],h;for(h in u)!n(s,h)&&n(u,h)&&d.push(h);for(;l.length>f;)n(u,h=l[f++])&&(~o(d,h)||d.push(h));return d}},"./node_modules/core-js/internals/object-keys.js":function(e,t,r){var n=r("./node_modules/core-js/internals/object-keys-internal.js"),i=r("./node_modules/core-js/internals/enum-bug-keys.js");e.exports=Object.keys||function(s){return n(s,i)}},"./node_modules/core-js/internals/object-property-is-enumerable.js":function(e,t,r){"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,a=i&&!n.call({1:2},1);t.f=a?function(o){var c=i(this,o);return!!c&&c.enumerable}:n},"./node_modules/core-js/internals/object-set-prototype-of.js":function(e,t,r){var n=r("./node_modules/core-js/internals/validate-set-prototype-of-arguments.js");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var i=!1,a={},s;try{s=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,s.call(a,[]),i=a instanceof Array}catch(o){}return function(c,l){return n(c,l),i?s.call(c,l):c.__proto__=l,c}}():void 0)},"./node_modules/core-js/internals/own-keys.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/object-get-own-property-names.js"),a=r("./node_modules/core-js/internals/object-get-own-property-symbols.js"),s=r("./node_modules/core-js/internals/an-object.js"),o=n.Reflect;e.exports=o&&o.ownKeys||function(l){var u=i.f(s(l)),f=a.f;return f?u.concat(f(l)):u}},"./node_modules/core-js/internals/path.js":function(e,t,r){e.exports=r("./node_modules/core-js/internals/global.js")},"./node_modules/core-js/internals/redefine.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/shared.js"),a=r("./node_modules/core-js/internals/hide.js"),s=r("./node_modules/core-js/internals/has.js"),o=r("./node_modules/core-js/internals/set-global.js"),c=r("./node_modules/core-js/internals/function-to-string.js"),l=r("./node_modules/core-js/internals/internal-state.js"),u=l.get,f=l.enforce,d=String(c).split("toString");i("inspectSource",function(h){return c.call(h)}),(e.exports=function(h,p,m,v){var y=v?!!v.unsafe:!1,b=v?!!v.enumerable:!1,x=v?!!v.noTargetGet:!1;if(typeof m=="function"&&(typeof p=="string"&&!s(m,"name")&&a(m,"name",p),f(m).source=d.join(typeof p=="string"?p:"")),h===n){b?h[p]=m:o(p,m);return}else y?!x&&h[p]&&(b=!0):delete h[p];b?h[p]=m:a(h,p,m)})(Function.prototype,"toString",function(){return typeof this=="function"&&u(this).source||c.call(this)})},"./node_modules/core-js/internals/require-object-coercible.js":function(e,t){e.exports=function(r){if(r==null)throw TypeError("Can't call method on "+r);return r}},"./node_modules/core-js/internals/set-global.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/hide.js");e.exports=function(a,s){try{i(n,a,s)}catch(o){n[a]=s}return s}},"./node_modules/core-js/internals/set-to-string-tag.js":function(e,t,r){var n=r("./node_modules/core-js/internals/object-define-property.js").f,i=r("./node_modules/core-js/internals/has.js"),a=r("./node_modules/core-js/internals/well-known-symbol.js"),s=a("toStringTag");e.exports=function(o,c,l){o&&!i(o=l?o:o.prototype,s)&&n(o,s,{configurable:!0,value:c})}},"./node_modules/core-js/internals/shared-key.js":function(e,t,r){var n=r("./node_modules/core-js/internals/shared.js"),i=r("./node_modules/core-js/internals/uid.js"),a=n("keys");e.exports=function(s){return a[s]||(a[s]=i(s))}},"./node_modules/core-js/internals/shared.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/set-global.js"),a=r("./node_modules/core-js/internals/is-pure.js"),s="__core-js_shared__",o=n[s]||i(s,{});(e.exports=function(c,l){return o[c]||(o[c]=l!==void 0?l:{})})("versions",[]).push({version:"3.1.3",mode:a?"pure":"global",copyright:"\xA9 2019 Denis Pushkarev (zloirock.ru)"})},"./node_modules/core-js/internals/string-at.js":function(e,t,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=r("./node_modules/core-js/internals/require-object-coercible.js");e.exports=function(a,s,o){var c=String(i(a)),l=n(s),u=c.length,f,d;return l<0||l>=u?o?"":void 0:(f=c.charCodeAt(l),f<55296||f>56319||l+1===u||(d=c.charCodeAt(l+1))<56320||d>57343?o?c.charAt(l):f:o?c.slice(l,l+2):(f-55296<<10)+(d-56320)+65536)}},"./node_modules/core-js/internals/to-absolute-index.js":function(e,t,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=Math.max,a=Math.min;e.exports=function(s,o){var c=n(s);return c<0?i(c+o,0):a(c,o)}},"./node_modules/core-js/internals/to-indexed-object.js":function(e,t,r){var n=r("./node_modules/core-js/internals/indexed-object.js"),i=r("./node_modules/core-js/internals/require-object-coercible.js");e.exports=function(a){return n(i(a))}},"./node_modules/core-js/internals/to-integer.js":function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(i){return isNaN(i=+i)?0:(i>0?n:r)(i)}},"./node_modules/core-js/internals/to-length.js":function(e,t,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=Math.min;e.exports=function(a){return a>0?i(n(a),9007199254740991):0}},"./node_modules/core-js/internals/to-object.js":function(e,t,r){var n=r("./node_modules/core-js/internals/require-object-coercible.js");e.exports=function(i){return Object(n(i))}},"./node_modules/core-js/internals/to-primitive.js":function(e,t,r){var n=r("./node_modules/core-js/internals/is-object.js");e.exports=function(i,a){if(!n(i))return i;var s,o;if(a&&typeof(s=i.toString)=="function"&&!n(o=s.call(i))||typeof(s=i.valueOf)=="function"&&!n(o=s.call(i))||!a&&typeof(s=i.toString)=="function"&&!n(o=s.call(i)))return o;throw TypeError("Can't convert object to primitive value")}},"./node_modules/core-js/internals/uid.js":function(e,t){var r=0,n=Math.random();e.exports=function(i){return"Symbol(".concat(i===void 0?"":i,")_",(++r+n).toString(36))}},"./node_modules/core-js/internals/validate-set-prototype-of-arguments.js":function(e,t,r){var n=r("./node_modules/core-js/internals/is-object.js"),i=r("./node_modules/core-js/internals/an-object.js");e.exports=function(a,s){if(i(a),!n(s)&&s!==null)throw TypeError("Can't set "+String(s)+" as a prototype")}},"./node_modules/core-js/internals/well-known-symbol.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/shared.js"),a=r("./node_modules/core-js/internals/uid.js"),s=r("./node_modules/core-js/internals/native-symbol.js"),o=n.Symbol,c=i("wks");e.exports=function(l){return c[l]||(c[l]=s&&o[l]||(s?o:a)("Symbol."+l))}},"./node_modules/core-js/modules/es.array.from.js":function(e,t,r){var n=r("./node_modules/core-js/internals/export.js"),i=r("./node_modules/core-js/internals/array-from.js"),a=r("./node_modules/core-js/internals/check-correctness-of-iteration.js"),s=!a(function(o){Array.from(o)});n({target:"Array",stat:!0,forced:s},{from:i})},"./node_modules/core-js/modules/es.string.iterator.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js/internals/string-at.js"),i=r("./node_modules/core-js/internals/internal-state.js"),a=r("./node_modules/core-js/internals/define-iterator.js"),s="String Iterator",o=i.set,c=i.getterFor(s);a(String,"String",function(l){o(this,{type:s,string:String(l),index:0})},function(){var u=c(this),f=u.string,d=u.index,h;return d>=f.length?{value:void 0,done:!0}:(h=n(f,d,!0),u.index+=h.length,{value:h,done:!1})})},"./node_modules/webpack/buildin/global.js":function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(n){typeof window=="object"&&(r=window)}e.exports=r},"./src/default-attrs.json":function(e){e.exports={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"}},"./src/icon.js":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(h){for(var p=1;p2&&arguments[2]!==void 0?arguments[2]:[];u(this,h),this.name=p,this.contents=m,this.tags=v,this.attrs=n({},c.default,{class:"feather feather-"+p})}return i(h,[{key:"toSvg",value:function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},v=n({},this.attrs,m,{class:(0,s.default)(this.attrs.class,m.class)});return""+this.contents+""}},{key:"toString",value:function(){return this.contents}}]),h}();function d(h){return Object.keys(h).map(function(p){return p+'="'+h[p]+'"'}).join(" ")}t.default=f},"./src/icons.js":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r("./src/icon.js"),i=l(n),a=r("./dist/icons.json"),s=l(a),o=r("./src/tags.json"),c=l(o);function l(u){return u&&u.__esModule?u:{default:u}}t.default=Object.keys(s.default).map(function(u){return new i.default(u,s.default[u],c.default[u])}).reduce(function(u,f){return u[f.name]=f,u},{})},"./src/index.js":function(e,t,r){"use strict";var n=r("./src/icons.js"),i=l(n),a=r("./src/to-svg.js"),s=l(a),o=r("./src/replace.js"),c=l(o);function l(u){return u&&u.__esModule?u:{default:u}}e.exports={icons:i.default,toSvg:s.default,replace:c.default}},"./src/replace.js":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(d){for(var h=1;h0&&arguments[0]!==void 0?arguments[0]:{};if(typeof document=="undefined")throw new Error("`feather.replace()` only works in a browser environment.");var h=document.querySelectorAll("[data-feather]");Array.from(h).forEach(function(p){return u(p,d)})}function u(d){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},p=f(d),m=p["data-feather"];if(delete p["data-feather"],o.default[m]===void 0){console.warn("feather: '"+m+"' is not a valid icon");return}var v=o.default[m].toSvg(n({},h,p,{class:(0,a.default)(h.class,p.class)})),y=new DOMParser().parseFromString(v,"image/svg+xml"),b=y.querySelector("svg");d.parentNode.replaceChild(b,d)}function f(d){return Array.from(d.attributes).reduce(function(h,p){return h[p.name]=p.value,h},{})}t.default=l},"./src/tags.json":function(e){e.exports={activity:["pulse","health","action","motion"],airplay:["stream","cast","mirroring"],"alert-circle":["warning","alert","danger"],"alert-octagon":["warning","alert","danger"],"alert-triangle":["warning","alert","danger"],"align-center":["text alignment","center"],"align-justify":["text alignment","justified"],"align-left":["text alignment","left"],"align-right":["text alignment","right"],anchor:[],archive:["index","box"],"at-sign":["mention","at","email","message"],award:["achievement","badge"],aperture:["camera","photo"],"bar-chart":["statistics","diagram","graph"],"bar-chart-2":["statistics","diagram","graph"],battery:["power","electricity"],"battery-charging":["power","electricity"],bell:["alarm","notification","sound"],"bell-off":["alarm","notification","silent"],bluetooth:["wireless"],"book-open":["read","library"],book:["read","dictionary","booklet","magazine","library"],bookmark:["read","clip","marker","tag"],box:["cube"],briefcase:["work","bag","baggage","folder"],calendar:["date"],camera:["photo"],cast:["chromecast","airplay"],"chevron-down":["expand"],"chevron-up":["collapse"],circle:["off","zero","record"],clipboard:["copy"],clock:["time","watch","alarm"],"cloud-drizzle":["weather","shower"],"cloud-lightning":["weather","bolt"],"cloud-rain":["weather"],"cloud-snow":["weather","blizzard"],cloud:["weather"],codepen:["logo"],codesandbox:["logo"],code:["source","programming"],coffee:["drink","cup","mug","tea","cafe","hot","beverage"],columns:["layout"],command:["keyboard","cmd","terminal","prompt"],compass:["navigation","safari","travel","direction"],copy:["clone","duplicate"],"corner-down-left":["arrow","return"],"corner-down-right":["arrow"],"corner-left-down":["arrow"],"corner-left-up":["arrow"],"corner-right-down":["arrow"],"corner-right-up":["arrow"],"corner-up-left":["arrow"],"corner-up-right":["arrow"],cpu:["processor","technology"],"credit-card":["purchase","payment","cc"],crop:["photo","image"],crosshair:["aim","target"],database:["storage","memory"],delete:["remove"],disc:["album","cd","dvd","music"],"dollar-sign":["currency","money","payment"],droplet:["water"],edit:["pencil","change"],"edit-2":["pencil","change"],"edit-3":["pencil","change"],eye:["view","watch"],"eye-off":["view","watch","hide","hidden"],"external-link":["outbound"],facebook:["logo","social"],"fast-forward":["music"],figma:["logo","design","tool"],"file-minus":["delete","remove","erase"],"file-plus":["add","create","new"],"file-text":["data","txt","pdf"],film:["movie","video"],filter:["funnel","hopper"],flag:["report"],"folder-minus":["directory"],"folder-plus":["directory"],folder:["directory"],framer:["logo","design","tool"],frown:["emoji","face","bad","sad","emotion"],gift:["present","box","birthday","party"],"git-branch":["code","version control"],"git-commit":["code","version control"],"git-merge":["code","version control"],"git-pull-request":["code","version control"],github:["logo","version control"],gitlab:["logo","version control"],globe:["world","browser","language","translate"],"hard-drive":["computer","server","memory","data"],hash:["hashtag","number","pound"],headphones:["music","audio","sound"],heart:["like","love","emotion"],"help-circle":["question mark"],hexagon:["shape","node.js","logo"],home:["house","living"],image:["picture"],inbox:["email"],instagram:["logo","camera"],key:["password","login","authentication","secure"],layers:["stack"],layout:["window","webpage"],"life-buoy":["help","life ring","support"],link:["chain","url"],"link-2":["chain","url"],linkedin:["logo","social media"],list:["options"],lock:["security","password","secure"],"log-in":["sign in","arrow","enter"],"log-out":["sign out","arrow","exit"],mail:["email","message"],"map-pin":["location","navigation","travel","marker"],map:["location","navigation","travel"],maximize:["fullscreen"],"maximize-2":["fullscreen","arrows","expand"],meh:["emoji","face","neutral","emotion"],menu:["bars","navigation","hamburger"],"message-circle":["comment","chat"],"message-square":["comment","chat"],"mic-off":["record","sound","mute"],mic:["record","sound","listen"],minimize:["exit fullscreen","close"],"minimize-2":["exit fullscreen","arrows","close"],minus:["subtract"],monitor:["tv","screen","display"],moon:["dark","night"],"more-horizontal":["ellipsis"],"more-vertical":["ellipsis"],"mouse-pointer":["arrow","cursor"],move:["arrows"],music:["note"],navigation:["location","travel"],"navigation-2":["location","travel"],octagon:["stop"],package:["box","container"],paperclip:["attachment"],pause:["music","stop"],"pause-circle":["music","audio","stop"],"pen-tool":["vector","drawing"],percent:["discount"],"phone-call":["ring"],"phone-forwarded":["call"],"phone-incoming":["call"],"phone-missed":["call"],"phone-off":["call","mute"],"phone-outgoing":["call"],phone:["call"],play:["music","start"],"pie-chart":["statistics","diagram"],"play-circle":["music","start"],plus:["add","new"],"plus-circle":["add","new"],"plus-square":["add","new"],pocket:["logo","save"],power:["on","off"],printer:["fax","office","device"],radio:["signal"],"refresh-cw":["synchronise","arrows"],"refresh-ccw":["arrows"],repeat:["loop","arrows"],rewind:["music"],"rotate-ccw":["arrow"],"rotate-cw":["arrow"],rss:["feed","subscribe"],save:["floppy disk"],scissors:["cut"],search:["find","magnifier","magnifying glass"],send:["message","mail","email","paper airplane","paper aeroplane"],settings:["cog","edit","gear","preferences"],"share-2":["network","connections"],shield:["security","secure"],"shield-off":["security","insecure"],"shopping-bag":["ecommerce","cart","purchase","store"],"shopping-cart":["ecommerce","cart","purchase","store"],shuffle:["music"],"skip-back":["music"],"skip-forward":["music"],slack:["logo"],slash:["ban","no"],sliders:["settings","controls"],smartphone:["cellphone","device"],smile:["emoji","face","happy","good","emotion"],speaker:["audio","music"],star:["bookmark","favorite","like"],"stop-circle":["media","music"],sun:["brightness","weather","light"],sunrise:["weather","time","morning","day"],sunset:["weather","time","evening","night"],tablet:["device"],tag:["label"],target:["logo","bullseye"],terminal:["code","command line","prompt"],thermometer:["temperature","celsius","fahrenheit","weather"],"thumbs-down":["dislike","bad","emotion"],"thumbs-up":["like","good","emotion"],"toggle-left":["on","off","switch"],"toggle-right":["on","off","switch"],tool:["settings","spanner"],trash:["garbage","delete","remove","bin"],"trash-2":["garbage","delete","remove","bin"],triangle:["delta"],truck:["delivery","van","shipping","transport","lorry"],tv:["television","stream"],twitch:["logo"],twitter:["logo","social"],type:["text"],umbrella:["rain","weather"],unlock:["security"],"user-check":["followed","subscribed"],"user-minus":["delete","remove","unfollow","unsubscribe"],"user-plus":["new","add","create","follow","subscribe"],"user-x":["delete","remove","unfollow","unsubscribe","unavailable"],user:["person","account"],users:["group"],"video-off":["camera","movie","film"],video:["camera","movie","film"],voicemail:["phone"],volume:["music","sound","mute"],"volume-1":["music","sound"],"volume-2":["music","sound"],"volume-x":["music","sound","mute"],watch:["clock","time"],"wifi-off":["disabled"],wifi:["connection","signal","wireless"],wind:["weather","air"],"x-circle":["cancel","close","delete","remove","times","clear"],"x-octagon":["delete","stop","alert","warning","times","clear"],"x-square":["cancel","close","delete","remove","times","clear"],x:["cancel","close","delete","remove","times","clear"],youtube:["logo","video","play"],"zap-off":["flash","camera","lightning"],zap:["flash","camera","lightning"],"zoom-in":["magnifying glass"],"zoom-out":["magnifying glass"]}},"./src/to-svg.js":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r("./src/icons.js"),i=a(n);function a(o){return o&&o.__esModule?o:{default:o}}function s(o){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead."),!o)throw new Error("The required `key` (icon name) parameter is missing.");if(!i.default[o])throw new Error("No icon matching '"+o+"'. See the complete list of icons at https://feathericons.com");return i.default[o].toSvg(c)}t.default=s},0:function(e,t,r){r("./node_modules/core-js/es/array/from.js"),e.exports=r("./src/index.js")}})})});var jH={};XP(jH,{default:()=>Qd});module.exports=ZP(jH);g();g();var Jo=ze(h1(),1),Ep=ze(x1(),1),Qw=ze(E1(),1),hu=ze(fw(),1),ru=ze(pw(),1),e2=ze(Sw(),1),Kr=ze(Aw(),1),t2=ze(Rw(),1),_e=class e extends Error{constructor(t){super(t),this.caller=""}toJSON(){return{code:this.code,data:this.data,caller:this.caller,message:this.message,stack:this.stack}}fromJSON(t){let r=new e(t.message);return r.code=t.code,r.data=t.data,r.caller=t.caller,r.stack=t.stack,r}get isIsomorphicGitError(){return!0}},Qo=class e extends _e{constructor(t){super(`Modifying the index is not possible because you have unmerged files: ${t.toString}. Fix them up in the work tree, and then use 'git add/rm as appropriate to mark resolution and make a commit.`),this.code=this.name=e.code,this.data={filepaths:t}}};Qo.code="UnmergedPathsError";var le=class e extends _e{constructor(t){super(`An internal error caused this command to fail. Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${t}`),this.code=this.name=e.code,this.data={message:t}}};le.code="InternalError";var us=class e extends _e{constructor(t){super(`The filepath "${t}" contains unsafe character sequences`),this.code=this.name=e.code,this.data={filepath:t}}};us.code="UnsafeFilepathError";var Or=class{constructor(t){this.buffer=t,this._start=0}eof(){return this._start>=this.buffer.length}tell(){return this._start}seek(t){this._start=t}slice(t){let r=this.buffer.slice(this._start,this._start+t);return this._start+=t,r}toString(t,r){let n=this.buffer.toString(t,this._start,this._start+r);return this._start+=r,n}write(t,r,n){let i=this.buffer.write(t,this._start,r,n);return this._start+=r,i}copy(t,r,n){let i=t.copy(this.buffer,this._start,r,n);return this._start+=i,i}readUInt8(){let t=this.buffer.readUInt8(this._start);return this._start+=1,t}writeUInt8(t){let r=this.buffer.writeUInt8(t,this._start);return this._start+=1,r}readUInt16BE(){let t=this.buffer.readUInt16BE(this._start);return this._start+=2,t}writeUInt16BE(t){let r=this.buffer.writeUInt16BE(t,this._start);return this._start+=2,r}readUInt32BE(){let t=this.buffer.readUInt32BE(this._start);return this._start+=4,t}writeUInt32BE(t){let r=this.buffer.writeUInt32BE(t,this._start);return this._start+=4,r}};function pu(e,t){return-(et)}function r2(e,t){return pu(e.path,t.path)}function n2(e){let t=e>0?e>>12:0;t!==4&&t!==8&&t!==10&&t!==14&&(t=8);let r=e&511;return r&73?r=493:r=420,t!==8&&(r=0),(t<<12)+r}var bn=2**32;function Mw(e,t,r,n){if(e!==void 0&&t!==void 0)return[e,t];r===void 0&&(r=n.valueOf());let i=Math.floor(r/1e3),a=(r-i*1e3)*1e6;return[i,a]}function fs(e){let[t,r]=Mw(e.ctimeSeconds,e.ctimeNanoseconds,e.ctimeMs,e.ctime),[n,i]=Mw(e.mtimeSeconds,e.mtimeNanoseconds,e.mtimeMs,e.mtime);return{ctimeSeconds:t%bn,ctimeNanoseconds:r%bn,mtimeSeconds:n%bn,mtimeNanoseconds:i%bn,dev:e.dev%bn,ino:e.ino%bn,mode:n2(e.mode%bn),uid:e.uid%bn,gid:e.gid%bn,size:e.size>-1?e.size%bn:0}}function J6(e){let t="";for(let r of new Uint8Array(e))r<16&&(t+="0"),t+=r.toString(16);return t}var rp=null;async function Gn(e){return rp===null&&(rp=await eM()),rp?i2(e):Q6(e)}function Q6(e){return new Ep.default().update(e).digest("hex")}async function i2(e){let t=await crypto.subtle.digest("SHA-1",e);return J6(t)}async function eM(){try{if(await i2(new Uint8Array([]))==="da39a3ee5e6b4b0d3255bfef95601890afd80709")return!0}catch(e){}return!1}function tM(e){return{assumeValid:!!(e&32768),extended:!!(e&16384),stage:(e&12288)>>12,nameLength:e&4095}}function rM(e){let t=e.flags;return t.extended=!1,t.nameLength=Math.min(Buffer.from(e.path).length,4095),(t.assumeValid?32768:0)+(t.extended?16384:0)+((t.stage&3)<<12)+(t.nameLength&4095)}var dp=class e{constructor(t,r){this._dirty=!1,this._unmergedPaths=r||new Set,this._entries=t||new Map}_addEntry(t){if(t.flags.stage===0)t.stages=[t],this._entries.set(t.path,t),this._unmergedPaths.delete(t.path);else{let r=this._entries.get(t.path);r||(this._entries.set(t.path,t),r=t),r.stages[t.flags.stage]=t,this._unmergedPaths.add(t.path)}}static async from(t){if(Buffer.isBuffer(t))return e.fromBuffer(t);if(t===null)return new e(null);throw new le("invalid type passed to GitIndex.from")}static async fromBuffer(t){if(t.length===0)throw new le("Index file is empty (.git/index)");let r=new e,n=new Or(t),i=n.toString("utf8",4);if(i!=="DIRC")throw new le(`Invalid dircache magic file number: ${i}`);let a=await Gn(t.slice(0,-20)),s=t.slice(-20).toString("hex");if(s!==a)throw new le(`Invalid checksum in GitIndex buffer: expected ${s} but saw ${a}`);let o=n.readUInt32BE();if(o!==2)throw new le(`Unsupported dircache version: ${o}`);let c=n.readUInt32BE(),l=0;for(;!n.eof()&&lt.stages.length>1?t.stages.filter(r=>r):t)}*[Symbol.iterator](){for(let t of this.entries)yield t}insert({filepath:t,stats:r,oid:n,stage:i=0}){r||(r={ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,mode:0,uid:0,gid:0,size:0}),r=fs(r);let a=Buffer.from(t),s={ctimeSeconds:r.ctimeSeconds,ctimeNanoseconds:r.ctimeNanoseconds,mtimeSeconds:r.mtimeSeconds,mtimeNanoseconds:r.mtimeNanoseconds,dev:r.dev,ino:r.ino,mode:r.mode||33188,uid:r.uid,gid:r.gid,size:r.size,path:t,oid:n,flags:{assumeValid:!1,extended:!1,stage:i,nameLength:a.length<4095?a.length:4095},stages:[]};this._addEntry(s),this._dirty=!0}delete({filepath:t}){if(this._entries.has(t))this._entries.delete(t);else for(let r of this._entries.keys())r.startsWith(t+"/")&&this._entries.delete(r);this._unmergedPaths.has(t)&&this._unmergedPaths.delete(t),this._dirty=!0}clear(){this._entries.clear(),this._dirty=!0}has({filepath:t}){return this._entries.has(t)}render(){return this.entries.map(t=>`${t.mode.toString(8)} ${t.oid} ${t.path}`).join(` -`)}static async _entryToBuffer(t){let r=Buffer.from(t.path),n=Math.ceil((62+r.length+1)/8)*8,i=Buffer.alloc(n),a=new Or(i),s=fs(t);return a.writeUInt32BE(s.ctimeSeconds),a.writeUInt32BE(s.ctimeNanoseconds),a.writeUInt32BE(s.mtimeSeconds),a.writeUInt32BE(s.mtimeNanoseconds),a.writeUInt32BE(s.dev),a.writeUInt32BE(s.ino),a.writeUInt32BE(s.mode),a.writeUInt32BE(s.uid),a.writeUInt32BE(s.gid),a.writeUInt32BE(s.size),a.write(t.oid,20,"hex"),a.writeUInt16BE(rM(t)),a.write(t.path,r.length,"utf8"),i}async toObject(){let t=Buffer.alloc(12),r=new Or(t);r.write("DIRC",4,"utf8"),r.writeUInt32BE(2),r.writeUInt32BE(this.entriesFlat.length);let n=[];for(let o of this.entries)if(n.push(e._entryToBuffer(o)),o.stages.length>1)for(let c of o.stages)c&&c!==o&&n.push(e._entryToBuffer(c));n=await Promise.all(n);let i=Buffer.concat(n),a=Buffer.concat([t,i]),s=await Gn(a);return Buffer.concat([a,Buffer.from(s,"hex")])}};function nu(e,t,r=!0,n=!0){let i=fs(e),a=fs(t);return r&&i.mode!==a.mode||i.mtimeSeconds!==a.mtimeSeconds||i.ctimeSeconds!==a.ctimeSeconds||i.uid!==a.uid||i.gid!==a.gid||n&&i.ino!==a.ino||i.size!==a.size}var np=null,ls=Symbol("IndexCache");function nM(){return{map:new Map,stats:new Map}}async function iM(e,t,r){let n=await e.lstat(t),i=await e.read(t),a=await dp.from(i);r.map.set(t,a),r.stats.set(t,n)}async function aM(e,t,r){let n=r.stats.get(t);if(n===void 0)return!0;let i=await e.lstat(t);return n===null||i===null?!1:nu(n,i)}var mt=class{static async acquire({fs:t,gitdir:r,cache:n,allowUnmerged:i=!0},a){n[ls]||(n[ls]=nM());let s=`${r}/index`;np===null&&(np=new Jo.default({maxPending:1/0}));let o,c=[];return await np.acquire(s,async()=>{await aM(t,s,n[ls])&&await iM(t,s,n[ls]);let l=n[ls].map.get(s);if(c=l.unmergedPaths,c.length&&!i)throw new Qo(c);if(o=await a(l),l._dirty){let u=await l.toObject();await t.write(s,u),n[ls].stats.set(s,await t.lstat(s)),l._dirty=!1}}),o}};function iu(e){let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t>-1&&(e=e.slice(t+1)),e}function ds(e){let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t===-1?".":t===0?"/":e.slice(0,t)}function a2(e){let t=new Map,r=function(i){if(!t.has(i)){let a={type:"tree",fullpath:i,basename:iu(i),metadata:{},children:[]};t.set(i,a),a.parent=r(ds(i)),a.parent&&a.parent!==a&&a.parent.children.push(a)}return t.get(i)},n=function(i,a){if(!t.has(i)){let s={type:"blob",fullpath:i,basename:iu(i),metadata:a,parent:r(ds(i)),children:[]};s.parent&&s.parent.children.push(s),t.set(i,s)}return t.get(i)};r(".");for(let i of e)n(i.path,i);return t}function sM(e){switch(e){case 16384:return"tree";case 33188:return"blob";case 33261:return"blob";case 40960:return"blob";case 57344:return"commit"}throw new le(`Unexpected GitTree entry mode: ${e.toString(8)}`)}var hp=class{constructor({fs:t,gitdir:r,cache:n}){this.treePromise=mt.acquire({fs:t,gitdir:r,cache:n},async function(a){return a2(a.entries)});let i=this;this.ConstructEntry=class{constructor(s){this._fullpath=s,this._type=!1,this._mode=!1,this._stat=!1,this._oid=!1}async type(){return i.type(this)}async mode(){return i.mode(this)}async stat(){return i.stat(this)}async content(){return i.content(this)}async oid(){return i.oid(this)}}}async readdir(t){let r=t._fullpath,i=(await this.treePromise).get(r);if(!i||i.type==="blob")return null;if(i.type!=="tree")throw new Error(`ENOTDIR: not a directory, scandir '${r}'`);let a=i.children.map(s=>s.fullpath);return a.sort(pu),a}async type(t){return t._type===!1&&await t.stat(),t._type}async mode(t){return t._mode===!1&&await t.stat(),t._mode}async stat(t){if(t._stat===!1){let n=(await this.treePromise).get(t._fullpath);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${t._fullpath}'`);let i=n.type==="tree"?{}:fs(n.metadata);t._type=n.type==="tree"?"tree":sM(i.mode),t._mode=i.mode,n.type==="tree"?t._stat=void 0:t._stat=i}return t._stat}async content(t){}async oid(t){if(t._oid===!1){let n=(await this.treePromise).get(t._fullpath);t._oid=n.metadata.oid}return t._oid}},mu=Symbol("GitWalkSymbol");function gu(){let e=Object.create(null);return Object.defineProperty(e,mu,{value:function({fs:t,gitdir:r,cache:n}){return new hp({fs:t,gitdir:r,cache:n})}}),Object.freeze(e),e}var Ne=class e extends _e{constructor(t){super(`Could not find ${t}.`),this.code=this.name=e.code,this.data={what:t}}};Ne.code="NotFoundError";var Gt=class e extends _e{constructor(t,r,n,i){super(`Object ${t} ${i?`at ${i}`:""}was anticipated to be a ${n} but it is a ${r}.`),this.code=this.name=e.code,this.data={oid:t,actual:r,expected:n,filepath:i}}};Gt.code="ObjectTypeError";var bi=class e extends _e{constructor(t){super(`Expected a 40-char hex object id but saw "${t}".`),this.code=this.name=e.code,this.data={value:t}}};bi.code="InvalidOidError";var el=class e extends _e{constructor(t){super(`Could not find a fetch refspec for remote "${t}". Make sure the config file has an entry like the following: +`);P.push(D)}if(S.length>0)throw new Error("missing closing tag: "+S.pop().n);return P}function h(w,A){for(var S=0,T=A.length;S":E,"<":function(w,A){var S={partials:{},code:"",subs:{},inPartial:!0};e.walk(w.nodes,S);var T=A.partials[E(w,A)];T.subs=S.subs,T.partials=S.partials},$:function(w,A){var S={subs:{},code:"",partials:A.partials,prefix:w.n};e.walk(w.nodes,S),A.subs[w.n]=S.code,A.inPartial||(A.code+='t.sub("'+b(w.n)+'",c,p,i);')},"\n":function(w,A){A.code+=k('"\\n"'+(w.last?"":" + i"))},_v:function(w,A){A.code+="t.b(t.v(t."+x(w.n)+'("'+b(w.n)+'",c,p,0)));'},_t:function(w,A){A.code+=k('"'+b(w.text)+'"')},"{":_,"&":_};function _(w,A){A.code+="t.b(t.t(t."+x(w.n)+'("'+b(w.n)+'",c,p,0)));'}function k(w){return"t.b("+w+");"}e.walk=function(w,A){for(var S,T=0,P=w.length;T{g();var UB={};(function(e){e.Template=function(d,h,p,m){d=d||{},this.r=d.code||this.r,this.c=p,this.options=m||{},this.text=h||"",this.partials=d.partials||{},this.subs=d.subs||{},this.buf=""},e.Template.prototype={r:function(d,h,p){return""},v:u,t:l,render:function(h,p,m){return this.ri([h],p||{},m)},ri:function(d,h,p){return this.r(d,h,p)},ep:function(d,h){var p=this.partials[d],m=h[p.name];if(p.instance&&p.base==m)return p.instance;if(typeof m=="string"){if(!this.c)throw new Error("No compiler available.");m=this.c.compile(m,this.options)}if(!m)return null;if(this.partials[d].base=m,p.subs){h.stackText||(h.stackText={});for(key in p.subs)h.stackText[key]||(h.stackText[key]=this.activeSub!==void 0&&h.stackText[this.activeSub]?h.stackText[this.activeSub]:this.text);m=r(m,p.subs,p.partials,this.stackSubs,this.stackPartials,h.stackText)}return this.partials[d].instance=m,m},rp:function(d,h,p,m){var v=this.ep(d,p);return v?v.ri(h,p,m):""},rs:function(d,h,p){var m=d[d.length-1];if(!f(m)){p(d,h,this);return}for(var v=0;v=0;E--)if(y=h[E],v=t(d,y,x),v!==void 0){b=!0;break}return b?(!m&&typeof v=="function"&&(v=this.mv(v,h,p)),v):m?!1:""},ls:function(d,h,p,m,v){var y=this.options.delimiters;return this.options.delimiters=v,this.b(this.ct(l(d.call(h,m)),h,p)),this.options.delimiters=y,!1},ct:function(d,h,p){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(d,this.options).render(h,p)},b:function(d){this.buf+=d},fl:function(){var d=this.buf;return this.buf="",d},ms:function(d,h,p,m,v,y,b){var x,E=h[h.length-1],_=d.call(E);return typeof _=="function"?m?!0:(x=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(_,E,p,x.substring(v,y),b)):_},mv:function(d,h,p){var m=h[h.length-1],v=d.call(m);return typeof v=="function"?this.ct(l(v.call(m)),m,p):v},sub:function(d,h,p,m){var v=this.subs[d];v&&(this.activeSub=d,v(h,p,this,m),this.activeSub=!1)}};function t(d,h,p){var m;return h&&typeof h=="object"&&(h[d]!==void 0?m=h[d]:p&&h.get&&typeof h.get=="function"&&(m=h.get(d))),m}function r(d,h,p,m,v,y){function b(){}b.prototype=d;function x(){}x.prototype=d.subs;var E,_=new b;_.subs=new x,_.subsText={},_.buf="",m=m||{},_.stackSubs=m,_.subsText=y;for(E in h)m[E]||(m[E]=h[E]);for(E in m)_.subs[E]=m[E];v=v||{},_.stackPartials=v;for(E in p)v[E]||(v[E]=p[E]);for(E in v)_.partials[E]=v[E];return _}var n=/&/g,i=//g,s=/\'/g,o=/\"/g,c=/[&<>\"\']/;function l(d){return String(d==null?"":d)}function u(d){return d=l(d),c.test(d)?d.replace(n,"&").replace(i,"<").replace(a,">").replace(s,"'").replace(o,"""):d}var f=Array.isArray||function(d){return Object.prototype.toString.call(d)==="[object Array]"}})(typeof A0!="undefined"?A0:UB)});var k0=I((LX,CC)=>{g();var md=kC();md.Template=TC().Template;md.template=md.Template;CC.exports=md});var X3=I((yc,Sv)=>{g();(function(t,r){typeof yc=="object"&&typeof Sv=="object"?Sv.exports=r():typeof define=="function"&&define.amd?define([],r):typeof yc=="object"?yc.feather=r():t.feather=r()})(typeof self!="undefined"?self:yc,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.r=function(n){Object.defineProperty(n,"__esModule",{value:!0})},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=0)}({"./dist/icons.json":function(e){e.exports={activity:'',airplay:'',"alert-circle":'',"alert-octagon":'',"alert-triangle":'',"align-center":'',"align-justify":'',"align-left":'',"align-right":'',anchor:'',aperture:'',archive:'',"arrow-down-circle":'',"arrow-down-left":'',"arrow-down-right":'',"arrow-down":'',"arrow-left-circle":'',"arrow-left":'',"arrow-right-circle":'',"arrow-right":'',"arrow-up-circle":'',"arrow-up-left":'',"arrow-up-right":'',"arrow-up":'',"at-sign":'',award:'',"bar-chart-2":'',"bar-chart":'',"battery-charging":'',battery:'',"bell-off":'',bell:'',bluetooth:'',bold:'',"book-open":'',book:'',bookmark:'',box:'',briefcase:'',calendar:'',"camera-off":'',camera:'',cast:'',"check-circle":'',"check-square":'',check:'',"chevron-down":'',"chevron-left":'',"chevron-right":'',"chevron-up":'',"chevrons-down":'',"chevrons-left":'',"chevrons-right":'',"chevrons-up":'',chrome:'',circle:'',clipboard:'',clock:'',"cloud-drizzle":'',"cloud-lightning":'',"cloud-off":'',"cloud-rain":'',"cloud-snow":'',cloud:'',code:'',codepen:'',codesandbox:'',coffee:'',columns:'',command:'',compass:'',copy:'',"corner-down-left":'',"corner-down-right":'',"corner-left-down":'',"corner-left-up":'',"corner-right-down":'',"corner-right-up":'',"corner-up-left":'',"corner-up-right":'',cpu:'',"credit-card":'',crop:'',crosshair:'',database:'',delete:'',disc:'',"divide-circle":'',"divide-square":'',divide:'',"dollar-sign":'',"download-cloud":'',download:'',dribbble:'',droplet:'',"edit-2":'',"edit-3":'',edit:'',"external-link":'',"eye-off":'',eye:'',facebook:'',"fast-forward":'',feather:'',figma:'',"file-minus":'',"file-plus":'',"file-text":'',file:'',film:'',filter:'',flag:'',"folder-minus":'',"folder-plus":'',folder:'',framer:'',frown:'',gift:'',"git-branch":'',"git-commit":'',"git-merge":'',"git-pull-request":'',github:'',gitlab:'',globe:'',grid:'',"hard-drive":'',hash:'',headphones:'',heart:'',"help-circle":'',hexagon:'',home:'',image:'',inbox:'',info:'',instagram:'',italic:'',key:'',layers:'',layout:'',"life-buoy":'',"link-2":'',link:'',linkedin:'',list:'',loader:'',lock:'',"log-in":'',"log-out":'',mail:'',"map-pin":'',map:'',"maximize-2":'',maximize:'',meh:'',menu:'',"message-circle":'',"message-square":'',"mic-off":'',mic:'',"minimize-2":'',minimize:'',"minus-circle":'',"minus-square":'',minus:'',monitor:'',moon:'',"more-horizontal":'',"more-vertical":'',"mouse-pointer":'',move:'',music:'',"navigation-2":'',navigation:'',octagon:'',package:'',paperclip:'',"pause-circle":'',pause:'',"pen-tool":'',percent:'',"phone-call":'',"phone-forwarded":'',"phone-incoming":'',"phone-missed":'',"phone-off":'',"phone-outgoing":'',phone:'',"pie-chart":'',"play-circle":'',play:'',"plus-circle":'',"plus-square":'',plus:'',pocket:'',power:'',printer:'',radio:'',"refresh-ccw":'',"refresh-cw":'',repeat:'',rewind:'',"rotate-ccw":'',"rotate-cw":'',rss:'',save:'',scissors:'',search:'',send:'',server:'',settings:'',"share-2":'',share:'',"shield-off":'',shield:'',"shopping-bag":'',"shopping-cart":'',shuffle:'',sidebar:'',"skip-back":'',"skip-forward":'',slack:'',slash:'',sliders:'',smartphone:'',smile:'',speaker:'',square:'',star:'',"stop-circle":'',sun:'',sunrise:'',sunset:'',table:'',tablet:'',tag:'',target:'',terminal:'',thermometer:'',"thumbs-down":'',"thumbs-up":'',"toggle-left":'',"toggle-right":'',tool:'',"trash-2":'',trash:'',trello:'',"trending-down":'',"trending-up":'',triangle:'',truck:'',tv:'',twitch:'',twitter:'',type:'',umbrella:'',underline:'',unlock:'',"upload-cloud":'',upload:'',"user-check":'',"user-minus":'',"user-plus":'',"user-x":'',user:'',users:'',"video-off":'',video:'',voicemail:'',"volume-1":'',"volume-2":'',"volume-x":'',volume:'',watch:'',"wifi-off":'',wifi:'',wind:'',"x-circle":'',"x-octagon":'',"x-square":'',x:'',youtube:'',"zap-off":'',zap:'',"zoom-in":'',"zoom-out":''}},"./node_modules/classnames/dedupe.js":function(e,t,r){var n,i;(function(){"use strict";var a=function(){function s(){}s.prototype=Object.create(null);function o(m,v){for(var y=v.length,b=0;b1?arguments[1]:void 0,v=m!==void 0,y=0,b=l(d),x,E,_,k;if(v&&(m=n(m,p>2?arguments[2]:void 0,2)),b!=null&&!(h==Array&&s(b)))for(k=b.call(d),E=new h;!(_=k.next()).done;y++)c(E,y,v?a(k,m,[_.value,y],!0):_.value);else for(x=o(d.length),E=new h(x);x>y;y++)c(E,y,v?m(d[y],y):d[y]);return E.length=y,E}},"./node_modules/core-js/internals/array-includes.js":function(e,t,r){var n=r("./node_modules/core-js/internals/to-indexed-object.js"),i=r("./node_modules/core-js/internals/to-length.js"),a=r("./node_modules/core-js/internals/to-absolute-index.js");e.exports=function(s){return function(o,c,l){var u=n(o),f=i(u.length),d=a(l,f),h;if(s&&c!=c){for(;f>d;)if(h=u[d++],h!=h)return!0}else for(;f>d;d++)if((s||d in u)&&u[d]===c)return s||d||0;return!s&&-1}}},"./node_modules/core-js/internals/bind-context.js":function(e,t,r){var n=r("./node_modules/core-js/internals/a-function.js");e.exports=function(i,a,s){if(n(i),a===void 0)return i;switch(s){case 0:return function(){return i.call(a)};case 1:return function(o){return i.call(a,o)};case 2:return function(o,c){return i.call(a,o,c)};case 3:return function(o,c,l){return i.call(a,o,c,l)}}return function(){return i.apply(a,arguments)}}},"./node_modules/core-js/internals/call-with-safe-iteration-closing.js":function(e,t,r){var n=r("./node_modules/core-js/internals/an-object.js");e.exports=function(i,a,s,o){try{return o?a(n(s)[0],s[1]):a(s)}catch(l){var c=i.return;throw c!==void 0&&n(c.call(i)),l}}},"./node_modules/core-js/internals/check-correctness-of-iteration.js":function(e,t,r){var n=r("./node_modules/core-js/internals/well-known-symbol.js"),i=n("iterator"),a=!1;try{var s=0,o={next:function(){return{done:!!s++}},return:function(){a=!0}};o[i]=function(){return this},Array.from(o,function(){throw 2})}catch(c){}e.exports=function(c,l){if(!l&&!a)return!1;var u=!1;try{var f={};f[i]=function(){return{next:function(){return{done:u=!0}}}},c(f)}catch(d){}return u}},"./node_modules/core-js/internals/classof-raw.js":function(e,t){var r={}.toString;e.exports=function(n){return r.call(n).slice(8,-1)}},"./node_modules/core-js/internals/classof.js":function(e,t,r){var n=r("./node_modules/core-js/internals/classof-raw.js"),i=r("./node_modules/core-js/internals/well-known-symbol.js"),a=i("toStringTag"),s=n(function(){return arguments}())=="Arguments",o=function(c,l){try{return c[l]}catch(u){}};e.exports=function(c){var l,u,f;return c===void 0?"Undefined":c===null?"Null":typeof(u=o(l=Object(c),a))=="string"?u:s?n(l):(f=n(l))=="Object"&&typeof l.callee=="function"?"Arguments":f}},"./node_modules/core-js/internals/copy-constructor-properties.js":function(e,t,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/own-keys.js"),a=r("./node_modules/core-js/internals/object-get-own-property-descriptor.js"),s=r("./node_modules/core-js/internals/object-define-property.js");e.exports=function(o,c){for(var l=i(c),u=s.f,f=a.f,d=0;d",x="java"+y+":",E;for(p.style.display="none",o.appendChild(p),p.src=String(x),E=p.contentWindow.document,E.open(),E.write(v+y+b+"document.F=Object"+v+"/"+y+b),E.close(),h=E.F;m--;)delete h[f][a[m]];return h()};e.exports=Object.create||function(m,v){var y;return m!==null?(d[f]=n(m),y=new d,d[f]=null,y[u]=m):y=h(),v===void 0?y:i(y,v)},s[u]=!0},"./node_modules/core-js/internals/object-define-properties.js":function(e,t,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/object-define-property.js"),a=r("./node_modules/core-js/internals/an-object.js"),s=r("./node_modules/core-js/internals/object-keys.js");e.exports=n?Object.defineProperties:function(c,l){a(c);for(var u=s(l),f=u.length,d=0,h;f>d;)i.f(c,h=u[d++],l[h]);return c}},"./node_modules/core-js/internals/object-define-property.js":function(e,t,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/ie8-dom-define.js"),a=r("./node_modules/core-js/internals/an-object.js"),s=r("./node_modules/core-js/internals/to-primitive.js"),o=Object.defineProperty;t.f=n?o:function(l,u,f){if(a(l),u=s(u,!0),a(f),i)try{return o(l,u,f)}catch(d){}if("get"in f||"set"in f)throw TypeError("Accessors not supported");return"value"in f&&(l[u]=f.value),l}},"./node_modules/core-js/internals/object-get-own-property-descriptor.js":function(e,t,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/object-property-is-enumerable.js"),a=r("./node_modules/core-js/internals/create-property-descriptor.js"),s=r("./node_modules/core-js/internals/to-indexed-object.js"),o=r("./node_modules/core-js/internals/to-primitive.js"),c=r("./node_modules/core-js/internals/has.js"),l=r("./node_modules/core-js/internals/ie8-dom-define.js"),u=Object.getOwnPropertyDescriptor;t.f=n?u:function(d,h){if(d=s(d),h=o(h,!0),l)try{return u(d,h)}catch(p){}if(c(d,h))return a(!i.f.call(d,h),d[h])}},"./node_modules/core-js/internals/object-get-own-property-names.js":function(e,t,r){var n=r("./node_modules/core-js/internals/object-keys-internal.js"),i=r("./node_modules/core-js/internals/enum-bug-keys.js"),a=i.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(o){return n(o,a)}},"./node_modules/core-js/internals/object-get-own-property-symbols.js":function(e,t){t.f=Object.getOwnPropertySymbols},"./node_modules/core-js/internals/object-get-prototype-of.js":function(e,t,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/to-object.js"),a=r("./node_modules/core-js/internals/shared-key.js"),s=r("./node_modules/core-js/internals/correct-prototype-getter.js"),o=a("IE_PROTO"),c=Object.prototype;e.exports=s?Object.getPrototypeOf:function(l){return l=i(l),n(l,o)?l[o]:typeof l.constructor=="function"&&l instanceof l.constructor?l.constructor.prototype:l instanceof Object?c:null}},"./node_modules/core-js/internals/object-keys-internal.js":function(e,t,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/to-indexed-object.js"),a=r("./node_modules/core-js/internals/array-includes.js"),s=r("./node_modules/core-js/internals/hidden-keys.js"),o=a(!1);e.exports=function(c,l){var u=i(c),f=0,d=[],h;for(h in u)!n(s,h)&&n(u,h)&&d.push(h);for(;l.length>f;)n(u,h=l[f++])&&(~o(d,h)||d.push(h));return d}},"./node_modules/core-js/internals/object-keys.js":function(e,t,r){var n=r("./node_modules/core-js/internals/object-keys-internal.js"),i=r("./node_modules/core-js/internals/enum-bug-keys.js");e.exports=Object.keys||function(s){return n(s,i)}},"./node_modules/core-js/internals/object-property-is-enumerable.js":function(e,t,r){"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,a=i&&!n.call({1:2},1);t.f=a?function(o){var c=i(this,o);return!!c&&c.enumerable}:n},"./node_modules/core-js/internals/object-set-prototype-of.js":function(e,t,r){var n=r("./node_modules/core-js/internals/validate-set-prototype-of-arguments.js");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var i=!1,a={},s;try{s=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,s.call(a,[]),i=a instanceof Array}catch(o){}return function(c,l){return n(c,l),i?s.call(c,l):c.__proto__=l,c}}():void 0)},"./node_modules/core-js/internals/own-keys.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/object-get-own-property-names.js"),a=r("./node_modules/core-js/internals/object-get-own-property-symbols.js"),s=r("./node_modules/core-js/internals/an-object.js"),o=n.Reflect;e.exports=o&&o.ownKeys||function(l){var u=i.f(s(l)),f=a.f;return f?u.concat(f(l)):u}},"./node_modules/core-js/internals/path.js":function(e,t,r){e.exports=r("./node_modules/core-js/internals/global.js")},"./node_modules/core-js/internals/redefine.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/shared.js"),a=r("./node_modules/core-js/internals/hide.js"),s=r("./node_modules/core-js/internals/has.js"),o=r("./node_modules/core-js/internals/set-global.js"),c=r("./node_modules/core-js/internals/function-to-string.js"),l=r("./node_modules/core-js/internals/internal-state.js"),u=l.get,f=l.enforce,d=String(c).split("toString");i("inspectSource",function(h){return c.call(h)}),(e.exports=function(h,p,m,v){var y=v?!!v.unsafe:!1,b=v?!!v.enumerable:!1,x=v?!!v.noTargetGet:!1;if(typeof m=="function"&&(typeof p=="string"&&!s(m,"name")&&a(m,"name",p),f(m).source=d.join(typeof p=="string"?p:"")),h===n){b?h[p]=m:o(p,m);return}else y?!x&&h[p]&&(b=!0):delete h[p];b?h[p]=m:a(h,p,m)})(Function.prototype,"toString",function(){return typeof this=="function"&&u(this).source||c.call(this)})},"./node_modules/core-js/internals/require-object-coercible.js":function(e,t){e.exports=function(r){if(r==null)throw TypeError("Can't call method on "+r);return r}},"./node_modules/core-js/internals/set-global.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/hide.js");e.exports=function(a,s){try{i(n,a,s)}catch(o){n[a]=s}return s}},"./node_modules/core-js/internals/set-to-string-tag.js":function(e,t,r){var n=r("./node_modules/core-js/internals/object-define-property.js").f,i=r("./node_modules/core-js/internals/has.js"),a=r("./node_modules/core-js/internals/well-known-symbol.js"),s=a("toStringTag");e.exports=function(o,c,l){o&&!i(o=l?o:o.prototype,s)&&n(o,s,{configurable:!0,value:c})}},"./node_modules/core-js/internals/shared-key.js":function(e,t,r){var n=r("./node_modules/core-js/internals/shared.js"),i=r("./node_modules/core-js/internals/uid.js"),a=n("keys");e.exports=function(s){return a[s]||(a[s]=i(s))}},"./node_modules/core-js/internals/shared.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/set-global.js"),a=r("./node_modules/core-js/internals/is-pure.js"),s="__core-js_shared__",o=n[s]||i(s,{});(e.exports=function(c,l){return o[c]||(o[c]=l!==void 0?l:{})})("versions",[]).push({version:"3.1.3",mode:a?"pure":"global",copyright:"\xA9 2019 Denis Pushkarev (zloirock.ru)"})},"./node_modules/core-js/internals/string-at.js":function(e,t,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=r("./node_modules/core-js/internals/require-object-coercible.js");e.exports=function(a,s,o){var c=String(i(a)),l=n(s),u=c.length,f,d;return l<0||l>=u?o?"":void 0:(f=c.charCodeAt(l),f<55296||f>56319||l+1===u||(d=c.charCodeAt(l+1))<56320||d>57343?o?c.charAt(l):f:o?c.slice(l,l+2):(f-55296<<10)+(d-56320)+65536)}},"./node_modules/core-js/internals/to-absolute-index.js":function(e,t,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=Math.max,a=Math.min;e.exports=function(s,o){var c=n(s);return c<0?i(c+o,0):a(c,o)}},"./node_modules/core-js/internals/to-indexed-object.js":function(e,t,r){var n=r("./node_modules/core-js/internals/indexed-object.js"),i=r("./node_modules/core-js/internals/require-object-coercible.js");e.exports=function(a){return n(i(a))}},"./node_modules/core-js/internals/to-integer.js":function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(i){return isNaN(i=+i)?0:(i>0?n:r)(i)}},"./node_modules/core-js/internals/to-length.js":function(e,t,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=Math.min;e.exports=function(a){return a>0?i(n(a),9007199254740991):0}},"./node_modules/core-js/internals/to-object.js":function(e,t,r){var n=r("./node_modules/core-js/internals/require-object-coercible.js");e.exports=function(i){return Object(n(i))}},"./node_modules/core-js/internals/to-primitive.js":function(e,t,r){var n=r("./node_modules/core-js/internals/is-object.js");e.exports=function(i,a){if(!n(i))return i;var s,o;if(a&&typeof(s=i.toString)=="function"&&!n(o=s.call(i))||typeof(s=i.valueOf)=="function"&&!n(o=s.call(i))||!a&&typeof(s=i.toString)=="function"&&!n(o=s.call(i)))return o;throw TypeError("Can't convert object to primitive value")}},"./node_modules/core-js/internals/uid.js":function(e,t){var r=0,n=Math.random();e.exports=function(i){return"Symbol(".concat(i===void 0?"":i,")_",(++r+n).toString(36))}},"./node_modules/core-js/internals/validate-set-prototype-of-arguments.js":function(e,t,r){var n=r("./node_modules/core-js/internals/is-object.js"),i=r("./node_modules/core-js/internals/an-object.js");e.exports=function(a,s){if(i(a),!n(s)&&s!==null)throw TypeError("Can't set "+String(s)+" as a prototype")}},"./node_modules/core-js/internals/well-known-symbol.js":function(e,t,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/shared.js"),a=r("./node_modules/core-js/internals/uid.js"),s=r("./node_modules/core-js/internals/native-symbol.js"),o=n.Symbol,c=i("wks");e.exports=function(l){return c[l]||(c[l]=s&&o[l]||(s?o:a)("Symbol."+l))}},"./node_modules/core-js/modules/es.array.from.js":function(e,t,r){var n=r("./node_modules/core-js/internals/export.js"),i=r("./node_modules/core-js/internals/array-from.js"),a=r("./node_modules/core-js/internals/check-correctness-of-iteration.js"),s=!a(function(o){Array.from(o)});n({target:"Array",stat:!0,forced:s},{from:i})},"./node_modules/core-js/modules/es.string.iterator.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js/internals/string-at.js"),i=r("./node_modules/core-js/internals/internal-state.js"),a=r("./node_modules/core-js/internals/define-iterator.js"),s="String Iterator",o=i.set,c=i.getterFor(s);a(String,"String",function(l){o(this,{type:s,string:String(l),index:0})},function(){var u=c(this),f=u.string,d=u.index,h;return d>=f.length?{value:void 0,done:!0}:(h=n(f,d,!0),u.index+=h.length,{value:h,done:!1})})},"./node_modules/webpack/buildin/global.js":function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(n){typeof window=="object"&&(r=window)}e.exports=r},"./src/default-attrs.json":function(e){e.exports={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"}},"./src/icon.js":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(h){for(var p=1;p2&&arguments[2]!==void 0?arguments[2]:[];u(this,h),this.name=p,this.contents=m,this.tags=v,this.attrs=n({},c.default,{class:"feather feather-"+p})}return i(h,[{key:"toSvg",value:function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},v=n({},this.attrs,m,{class:(0,s.default)(this.attrs.class,m.class)});return""+this.contents+""}},{key:"toString",value:function(){return this.contents}}]),h}();function d(h){return Object.keys(h).map(function(p){return p+'="'+h[p]+'"'}).join(" ")}t.default=f},"./src/icons.js":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r("./src/icon.js"),i=l(n),a=r("./dist/icons.json"),s=l(a),o=r("./src/tags.json"),c=l(o);function l(u){return u&&u.__esModule?u:{default:u}}t.default=Object.keys(s.default).map(function(u){return new i.default(u,s.default[u],c.default[u])}).reduce(function(u,f){return u[f.name]=f,u},{})},"./src/index.js":function(e,t,r){"use strict";var n=r("./src/icons.js"),i=l(n),a=r("./src/to-svg.js"),s=l(a),o=r("./src/replace.js"),c=l(o);function l(u){return u&&u.__esModule?u:{default:u}}e.exports={icons:i.default,toSvg:s.default,replace:c.default}},"./src/replace.js":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(d){for(var h=1;h0&&arguments[0]!==void 0?arguments[0]:{};if(typeof document=="undefined")throw new Error("`feather.replace()` only works in a browser environment.");var h=document.querySelectorAll("[data-feather]");Array.from(h).forEach(function(p){return u(p,d)})}function u(d){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},p=f(d),m=p["data-feather"];if(delete p["data-feather"],o.default[m]===void 0){console.warn("feather: '"+m+"' is not a valid icon");return}var v=o.default[m].toSvg(n({},h,p,{class:(0,a.default)(h.class,p.class)})),y=new DOMParser().parseFromString(v,"image/svg+xml"),b=y.querySelector("svg");d.parentNode.replaceChild(b,d)}function f(d){return Array.from(d.attributes).reduce(function(h,p){return h[p.name]=p.value,h},{})}t.default=l},"./src/tags.json":function(e){e.exports={activity:["pulse","health","action","motion"],airplay:["stream","cast","mirroring"],"alert-circle":["warning","alert","danger"],"alert-octagon":["warning","alert","danger"],"alert-triangle":["warning","alert","danger"],"align-center":["text alignment","center"],"align-justify":["text alignment","justified"],"align-left":["text alignment","left"],"align-right":["text alignment","right"],anchor:[],archive:["index","box"],"at-sign":["mention","at","email","message"],award:["achievement","badge"],aperture:["camera","photo"],"bar-chart":["statistics","diagram","graph"],"bar-chart-2":["statistics","diagram","graph"],battery:["power","electricity"],"battery-charging":["power","electricity"],bell:["alarm","notification","sound"],"bell-off":["alarm","notification","silent"],bluetooth:["wireless"],"book-open":["read","library"],book:["read","dictionary","booklet","magazine","library"],bookmark:["read","clip","marker","tag"],box:["cube"],briefcase:["work","bag","baggage","folder"],calendar:["date"],camera:["photo"],cast:["chromecast","airplay"],"chevron-down":["expand"],"chevron-up":["collapse"],circle:["off","zero","record"],clipboard:["copy"],clock:["time","watch","alarm"],"cloud-drizzle":["weather","shower"],"cloud-lightning":["weather","bolt"],"cloud-rain":["weather"],"cloud-snow":["weather","blizzard"],cloud:["weather"],codepen:["logo"],codesandbox:["logo"],code:["source","programming"],coffee:["drink","cup","mug","tea","cafe","hot","beverage"],columns:["layout"],command:["keyboard","cmd","terminal","prompt"],compass:["navigation","safari","travel","direction"],copy:["clone","duplicate"],"corner-down-left":["arrow","return"],"corner-down-right":["arrow"],"corner-left-down":["arrow"],"corner-left-up":["arrow"],"corner-right-down":["arrow"],"corner-right-up":["arrow"],"corner-up-left":["arrow"],"corner-up-right":["arrow"],cpu:["processor","technology"],"credit-card":["purchase","payment","cc"],crop:["photo","image"],crosshair:["aim","target"],database:["storage","memory"],delete:["remove"],disc:["album","cd","dvd","music"],"dollar-sign":["currency","money","payment"],droplet:["water"],edit:["pencil","change"],"edit-2":["pencil","change"],"edit-3":["pencil","change"],eye:["view","watch"],"eye-off":["view","watch","hide","hidden"],"external-link":["outbound"],facebook:["logo","social"],"fast-forward":["music"],figma:["logo","design","tool"],"file-minus":["delete","remove","erase"],"file-plus":["add","create","new"],"file-text":["data","txt","pdf"],film:["movie","video"],filter:["funnel","hopper"],flag:["report"],"folder-minus":["directory"],"folder-plus":["directory"],folder:["directory"],framer:["logo","design","tool"],frown:["emoji","face","bad","sad","emotion"],gift:["present","box","birthday","party"],"git-branch":["code","version control"],"git-commit":["code","version control"],"git-merge":["code","version control"],"git-pull-request":["code","version control"],github:["logo","version control"],gitlab:["logo","version control"],globe:["world","browser","language","translate"],"hard-drive":["computer","server","memory","data"],hash:["hashtag","number","pound"],headphones:["music","audio","sound"],heart:["like","love","emotion"],"help-circle":["question mark"],hexagon:["shape","node.js","logo"],home:["house","living"],image:["picture"],inbox:["email"],instagram:["logo","camera"],key:["password","login","authentication","secure"],layers:["stack"],layout:["window","webpage"],"life-buoy":["help","life ring","support"],link:["chain","url"],"link-2":["chain","url"],linkedin:["logo","social media"],list:["options"],lock:["security","password","secure"],"log-in":["sign in","arrow","enter"],"log-out":["sign out","arrow","exit"],mail:["email","message"],"map-pin":["location","navigation","travel","marker"],map:["location","navigation","travel"],maximize:["fullscreen"],"maximize-2":["fullscreen","arrows","expand"],meh:["emoji","face","neutral","emotion"],menu:["bars","navigation","hamburger"],"message-circle":["comment","chat"],"message-square":["comment","chat"],"mic-off":["record","sound","mute"],mic:["record","sound","listen"],minimize:["exit fullscreen","close"],"minimize-2":["exit fullscreen","arrows","close"],minus:["subtract"],monitor:["tv","screen","display"],moon:["dark","night"],"more-horizontal":["ellipsis"],"more-vertical":["ellipsis"],"mouse-pointer":["arrow","cursor"],move:["arrows"],music:["note"],navigation:["location","travel"],"navigation-2":["location","travel"],octagon:["stop"],package:["box","container"],paperclip:["attachment"],pause:["music","stop"],"pause-circle":["music","audio","stop"],"pen-tool":["vector","drawing"],percent:["discount"],"phone-call":["ring"],"phone-forwarded":["call"],"phone-incoming":["call"],"phone-missed":["call"],"phone-off":["call","mute"],"phone-outgoing":["call"],phone:["call"],play:["music","start"],"pie-chart":["statistics","diagram"],"play-circle":["music","start"],plus:["add","new"],"plus-circle":["add","new"],"plus-square":["add","new"],pocket:["logo","save"],power:["on","off"],printer:["fax","office","device"],radio:["signal"],"refresh-cw":["synchronise","arrows"],"refresh-ccw":["arrows"],repeat:["loop","arrows"],rewind:["music"],"rotate-ccw":["arrow"],"rotate-cw":["arrow"],rss:["feed","subscribe"],save:["floppy disk"],scissors:["cut"],search:["find","magnifier","magnifying glass"],send:["message","mail","email","paper airplane","paper aeroplane"],settings:["cog","edit","gear","preferences"],"share-2":["network","connections"],shield:["security","secure"],"shield-off":["security","insecure"],"shopping-bag":["ecommerce","cart","purchase","store"],"shopping-cart":["ecommerce","cart","purchase","store"],shuffle:["music"],"skip-back":["music"],"skip-forward":["music"],slack:["logo"],slash:["ban","no"],sliders:["settings","controls"],smartphone:["cellphone","device"],smile:["emoji","face","happy","good","emotion"],speaker:["audio","music"],star:["bookmark","favorite","like"],"stop-circle":["media","music"],sun:["brightness","weather","light"],sunrise:["weather","time","morning","day"],sunset:["weather","time","evening","night"],tablet:["device"],tag:["label"],target:["logo","bullseye"],terminal:["code","command line","prompt"],thermometer:["temperature","celsius","fahrenheit","weather"],"thumbs-down":["dislike","bad","emotion"],"thumbs-up":["like","good","emotion"],"toggle-left":["on","off","switch"],"toggle-right":["on","off","switch"],tool:["settings","spanner"],trash:["garbage","delete","remove","bin"],"trash-2":["garbage","delete","remove","bin"],triangle:["delta"],truck:["delivery","van","shipping","transport","lorry"],tv:["television","stream"],twitch:["logo"],twitter:["logo","social"],type:["text"],umbrella:["rain","weather"],unlock:["security"],"user-check":["followed","subscribed"],"user-minus":["delete","remove","unfollow","unsubscribe"],"user-plus":["new","add","create","follow","subscribe"],"user-x":["delete","remove","unfollow","unsubscribe","unavailable"],user:["person","account"],users:["group"],"video-off":["camera","movie","film"],video:["camera","movie","film"],voicemail:["phone"],volume:["music","sound","mute"],"volume-1":["music","sound"],"volume-2":["music","sound"],"volume-x":["music","sound","mute"],watch:["clock","time"],"wifi-off":["disabled"],wifi:["connection","signal","wireless"],wind:["weather","air"],"x-circle":["cancel","close","delete","remove","times","clear"],"x-octagon":["delete","stop","alert","warning","times","clear"],"x-square":["cancel","close","delete","remove","times","clear"],x:["cancel","close","delete","remove","times","clear"],youtube:["logo","video","play"],"zap-off":["flash","camera","lightning"],zap:["flash","camera","lightning"],"zoom-in":["magnifying glass"],"zoom-out":["magnifying glass"]}},"./src/to-svg.js":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r("./src/icons.js"),i=a(n);function a(o){return o&&o.__esModule?o:{default:o}}function s(o){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead."),!o)throw new Error("The required `key` (icon name) parameter is missing.");if(!i.default[o])throw new Error("No icon matching '"+o+"'. See the complete list of icons at https://feathericons.com");return i.default[o].toSvg(c)}t.default=s},0:function(e,t,r){r("./node_modules/core-js/es/array/from.js"),e.exports=r("./src/index.js")}})})});var jH={};XP(jH,{default:()=>Jd});module.exports=ZP(jH);g();g();var Jo=ze(d1(),1),Sp=ze(_1(),1),Jw=ze(S1(),1),du=ze(uw(),1),tu=ze(hw(),1),Qw=ze(xw(),1),Jr=ze(Ew(),1),e2=ze(Pw(),1),_e=class e extends Error{constructor(t){super(t),this.caller=""}toJSON(){return{code:this.code,data:this.data,caller:this.caller,message:this.message,stack:this.stack}}fromJSON(t){let r=new e(t.message);return r.code=t.code,r.data=t.data,r.caller=t.caller,r.stack=t.stack,r}get isIsomorphicGitError(){return!0}},Qo=class e extends _e{constructor(t){super(`Modifying the index is not possible because you have unmerged files: ${t.toString}. Fix them up in the work tree, and then use 'git add/rm as appropriate to mark resolution and make a commit.`),this.code=this.name=e.code,this.data={filepaths:t}}};Qo.code="UnmergedPathsError";var le=class e extends _e{constructor(t){super(`An internal error caused this command to fail. Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${t}`),this.code=this.name=e.code,this.data={message:t}}};le.code="InternalError";var cs=class e extends _e{constructor(t){super(`The filepath "${t}" contains unsafe character sequences`),this.code=this.name=e.code,this.data={filepath:t}}};cs.code="UnsafeFilepathError";var Ir=class{constructor(t){this.buffer=t,this._start=0}eof(){return this._start>=this.buffer.length}tell(){return this._start}seek(t){this._start=t}slice(t){let r=this.buffer.slice(this._start,this._start+t);return this._start+=t,r}toString(t,r){let n=this.buffer.toString(t,this._start,this._start+r);return this._start+=r,n}write(t,r,n){let i=this.buffer.write(t,this._start,r,n);return this._start+=r,i}copy(t,r,n){let i=t.copy(this.buffer,this._start,r,n);return this._start+=i,i}readUInt8(){let t=this.buffer.readUInt8(this._start);return this._start+=1,t}writeUInt8(t){let r=this.buffer.writeUInt8(t,this._start);return this._start+=1,r}readUInt16BE(){let t=this.buffer.readUInt16BE(this._start);return this._start+=2,t}writeUInt16BE(t){let r=this.buffer.writeUInt16BE(t,this._start);return this._start+=2,r}readUInt32BE(){let t=this.buffer.readUInt32BE(this._start);return this._start+=4,t}writeUInt32BE(t){let r=this.buffer.writeUInt32BE(t,this._start);return this._start+=4,r}};function hu(e,t){return-(et)}function t2(e,t){return hu(e.path,t.path)}function r2(e){let t=e>0?e>>12:0;t!==4&&t!==8&&t!==10&&t!==14&&(t=8);let r=e&511;return r&73?r=493:r=420,t!==8&&(r=0),(t<<12)+r}var _n=2**32;function Rw(e,t,r,n){if(e!==void 0&&t!==void 0)return[e,t];r===void 0&&(r=n.valueOf());let i=Math.floor(r/1e3),a=(r-i*1e3)*1e6;return[i,a]}function us(e){let[t,r]=Rw(e.ctimeSeconds,e.ctimeNanoseconds,e.ctimeMs,e.ctime),[n,i]=Rw(e.mtimeSeconds,e.mtimeNanoseconds,e.mtimeMs,e.mtime);return{ctimeSeconds:t%_n,ctimeNanoseconds:r%_n,mtimeSeconds:n%_n,mtimeNanoseconds:i%_n,dev:e.dev%_n,ino:e.ino%_n,mode:r2(e.mode%_n),uid:e.uid%_n,gid:e.gid%_n,size:e.size>-1?e.size%_n:0}}function J6(e){let t="";for(let r of new Uint8Array(e))r<16&&(t+="0"),t+=r.toString(16);return t}var tp=null;async function Gn(e){return tp===null&&(tp=await eM()),tp?n2(e):Q6(e)}function Q6(e){return new Sp.default().update(e).digest("hex")}async function n2(e){let t=await crypto.subtle.digest("SHA-1",e);return J6(t)}async function eM(){try{if(await n2(new Uint8Array([]))==="da39a3ee5e6b4b0d3255bfef95601890afd80709")return!0}catch(e){}return!1}function tM(e){return{assumeValid:!!(e&32768),extended:!!(e&16384),stage:(e&12288)>>12,nameLength:e&4095}}function rM(e){let t=e.flags;return t.extended=!1,t.nameLength=Math.min(Buffer.from(e.path).length,4095),(t.assumeValid?32768:0)+(t.extended?16384:0)+((t.stage&3)<<12)+(t.nameLength&4095)}var fp=class e{constructor(t,r){this._dirty=!1,this._unmergedPaths=r||new Set,this._entries=t||new Map}_addEntry(t){if(t.flags.stage===0)t.stages=[t],this._entries.set(t.path,t),this._unmergedPaths.delete(t.path);else{let r=this._entries.get(t.path);r||(this._entries.set(t.path,t),r=t),r.stages[t.flags.stage]=t,this._unmergedPaths.add(t.path)}}static async from(t){if(Buffer.isBuffer(t))return e.fromBuffer(t);if(t===null)return new e(null);throw new le("invalid type passed to GitIndex.from")}static async fromBuffer(t){if(t.length===0)throw new le("Index file is empty (.git/index)");let r=new e,n=new Ir(t),i=n.toString("utf8",4);if(i!=="DIRC")throw new le(`Invalid dircache magic file number: ${i}`);let a=await Gn(t.slice(0,-20)),s=t.slice(-20).toString("hex");if(s!==a)throw new le(`Invalid checksum in GitIndex buffer: expected ${s} but saw ${a}`);let o=n.readUInt32BE();if(o!==2)throw new le(`Unsupported dircache version: ${o}`);let c=n.readUInt32BE(),l=0;for(;!n.eof()&&lt.stages.length>1?t.stages.filter(r=>r):t)}*[Symbol.iterator](){for(let t of this.entries)yield t}insert({filepath:t,stats:r,oid:n,stage:i=0}){r||(r={ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,mode:0,uid:0,gid:0,size:0}),r=us(r);let a=Buffer.from(t),s={ctimeSeconds:r.ctimeSeconds,ctimeNanoseconds:r.ctimeNanoseconds,mtimeSeconds:r.mtimeSeconds,mtimeNanoseconds:r.mtimeNanoseconds,dev:r.dev,ino:r.ino,mode:r.mode||33188,uid:r.uid,gid:r.gid,size:r.size,path:t,oid:n,flags:{assumeValid:!1,extended:!1,stage:i,nameLength:a.length<4095?a.length:4095},stages:[]};this._addEntry(s),this._dirty=!0}delete({filepath:t}){if(this._entries.has(t))this._entries.delete(t);else for(let r of this._entries.keys())r.startsWith(t+"/")&&this._entries.delete(r);this._unmergedPaths.has(t)&&this._unmergedPaths.delete(t),this._dirty=!0}clear(){this._entries.clear(),this._dirty=!0}has({filepath:t}){return this._entries.has(t)}render(){return this.entries.map(t=>`${t.mode.toString(8)} ${t.oid} ${t.path}`).join(` +`)}static async _entryToBuffer(t){let r=Buffer.from(t.path),n=Math.ceil((62+r.length+1)/8)*8,i=Buffer.alloc(n),a=new Ir(i),s=us(t);return a.writeUInt32BE(s.ctimeSeconds),a.writeUInt32BE(s.ctimeNanoseconds),a.writeUInt32BE(s.mtimeSeconds),a.writeUInt32BE(s.mtimeNanoseconds),a.writeUInt32BE(s.dev),a.writeUInt32BE(s.ino),a.writeUInt32BE(s.mode),a.writeUInt32BE(s.uid),a.writeUInt32BE(s.gid),a.writeUInt32BE(s.size),a.write(t.oid,20,"hex"),a.writeUInt16BE(rM(t)),a.write(t.path,r.length,"utf8"),i}async toObject(){let t=Buffer.alloc(12),r=new Ir(t);r.write("DIRC",4,"utf8"),r.writeUInt32BE(2),r.writeUInt32BE(this.entriesFlat.length);let n=[];for(let o of this.entries)if(n.push(e._entryToBuffer(o)),o.stages.length>1)for(let c of o.stages)c&&c!==o&&n.push(e._entryToBuffer(c));n=await Promise.all(n);let i=Buffer.concat(n),a=Buffer.concat([t,i]),s=await Gn(a);return Buffer.concat([a,Buffer.from(s,"hex")])}};function ru(e,t,r=!0,n=!0){let i=us(e),a=us(t);return r&&i.mode!==a.mode||i.mtimeSeconds!==a.mtimeSeconds||i.ctimeSeconds!==a.ctimeSeconds||i.uid!==a.uid||i.gid!==a.gid||n&&i.ino!==a.ino||i.size!==a.size}var rp=null,os=Symbol("IndexCache");function nM(){return{map:new Map,stats:new Map}}async function iM(e,t,r){let n=await e.lstat(t),i=await e.read(t),a=await fp.from(i);r.map.set(t,a),r.stats.set(t,n)}async function aM(e,t,r){let n=r.stats.get(t);if(n===void 0)return!0;let i=await e.lstat(t);return n===null||i===null?!1:ru(n,i)}var mt=class{static async acquire({fs:t,gitdir:r,cache:n,allowUnmerged:i=!0},a){n[os]||(n[os]=nM());let s=`${r}/index`;rp===null&&(rp=new Jo.default({maxPending:1/0}));let o,c=[];return await rp.acquire(s,async()=>{await aM(t,s,n[os])&&await iM(t,s,n[os]);let l=n[os].map.get(s);if(c=l.unmergedPaths,c.length&&!i)throw new Qo(c);if(o=await a(l),l._dirty){let u=await l.toObject();await t.write(s,u),n[os].stats.set(s,await t.lstat(s)),l._dirty=!1}}),o}};function nu(e){let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t>-1&&(e=e.slice(t+1)),e}function fs(e){let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t===-1?".":t===0?"/":e.slice(0,t)}function i2(e){let t=new Map,r=function(i){if(!t.has(i)){let a={type:"tree",fullpath:i,basename:nu(i),metadata:{},children:[]};t.set(i,a),a.parent=r(fs(i)),a.parent&&a.parent!==a&&a.parent.children.push(a)}return t.get(i)},n=function(i,a){if(!t.has(i)){let s={type:"blob",fullpath:i,basename:nu(i),metadata:a,parent:r(fs(i)),children:[]};s.parent&&s.parent.children.push(s),t.set(i,s)}return t.get(i)};r(".");for(let i of e)n(i.path,i);return t}function sM(e){switch(e){case 16384:return"tree";case 33188:return"blob";case 33261:return"blob";case 40960:return"blob";case 57344:return"commit"}throw new le(`Unexpected GitTree entry mode: ${e.toString(8)}`)}var dp=class{constructor({fs:t,gitdir:r,cache:n}){this.treePromise=mt.acquire({fs:t,gitdir:r,cache:n},async function(a){return i2(a.entries)});let i=this;this.ConstructEntry=class{constructor(s){this._fullpath=s,this._type=!1,this._mode=!1,this._stat=!1,this._oid=!1}async type(){return i.type(this)}async mode(){return i.mode(this)}async stat(){return i.stat(this)}async content(){return i.content(this)}async oid(){return i.oid(this)}}}async readdir(t){let r=t._fullpath,i=(await this.treePromise).get(r);if(!i||i.type==="blob")return null;if(i.type!=="tree")throw new Error(`ENOTDIR: not a directory, scandir '${r}'`);let a=i.children.map(s=>s.fullpath);return a.sort(hu),a}async type(t){return t._type===!1&&await t.stat(),t._type}async mode(t){return t._mode===!1&&await t.stat(),t._mode}async stat(t){if(t._stat===!1){let n=(await this.treePromise).get(t._fullpath);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${t._fullpath}'`);let i=n.type==="tree"?{}:us(n.metadata);t._type=n.type==="tree"?"tree":sM(i.mode),t._mode=i.mode,n.type==="tree"?t._stat=void 0:t._stat=i}return t._stat}async content(t){}async oid(t){if(t._oid===!1){let n=(await this.treePromise).get(t._fullpath);t._oid=n.metadata.oid}return t._oid}},pu=Symbol("GitWalkSymbol");function mu(){let e=Object.create(null);return Object.defineProperty(e,pu,{value:function({fs:t,gitdir:r,cache:n}){return new dp({fs:t,gitdir:r,cache:n})}}),Object.freeze(e),e}var Ne=class e extends _e{constructor(t){super(`Could not find ${t}.`),this.code=this.name=e.code,this.data={what:t}}};Ne.code="NotFoundError";var Gt=class e extends _e{constructor(t,r,n,i){super(`Object ${t} ${i?`at ${i}`:""}was anticipated to be a ${n} but it is a ${r}.`),this.code=this.name=e.code,this.data={oid:t,actual:r,expected:n,filepath:i}}};Gt.code="ObjectTypeError";var bi=class e extends _e{constructor(t){super(`Expected a 40-char hex object id but saw "${t}".`),this.code=this.name=e.code,this.data={value:t}}};bi.code="InvalidOidError";var el=class e extends _e{constructor(t){super(`Could not find a fetch refspec for remote "${t}". Make sure the config file has an entry like the following: [remote "${t}"] fetch = +refs/heads/*:refs/remotes/origin/* -`),this.code=this.name=e.code,this.data={remote:t}}};el.code="NoRefspecError";var au=class e{constructor(t){if(this.refs=new Map,this.parsedConfig=[],t){let r=null;this.parsedConfig=t.trim().split(` +`),this.code=this.name=e.code,this.data={remote:t}}};el.code="NoRefspecError";var iu=class e{constructor(t){if(this.refs=new Map,this.parsedConfig=[],t){let r=null;this.parsedConfig=t.trim().split(` `).map(n=>{if(/^\s*#/.test(n))return{line:n,comment:!0};let i=n.indexOf(" ");if(n.startsWith("^")){let a=n.slice(1);return this.refs.set(r+"^{}",a),{line:n,ref:r,peeled:a}}else{let a=n.slice(0,i);return r=n.slice(i+1),this.refs.set(r,a),{line:n,ref:r,oid:a}}})}return this}static from(t){return new e(t)}delete(t){this.parsedConfig=this.parsedConfig.filter(r=>r.ref!==t),this.refs.delete(t)}toString(){return this.parsedConfig.map(({line:t})=>t).join(` `)+` -`}},su=class e{constructor({remotePath:t,localPath:r,force:n,matchPrefix:i}){Object.assign(this,{remotePath:t,localPath:r,force:n,matchPrefix:i})}static from(t){let[r,n,i,a,s]=t.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1),o=r==="+",c=i==="*";if(c!==(s==="*"))throw new le("Invalid refspec");return new e({remotePath:n,localPath:a,force:o,matchPrefix:c})}translate(t){if(this.matchPrefix){if(t.startsWith(this.remotePath))return this.localPath+t.replace(this.remotePath,"")}else if(t===this.remotePath)return this.localPath;return null}reverseTranslate(t){if(this.matchPrefix){if(t.startsWith(this.localPath))return this.remotePath+t.replace(this.localPath,"")}else if(t===this.localPath)return this.remotePath;return null}},pp=class e{constructor(t=[]){this.rules=t}static from(t){let r=[];for(let n of t)r.push(su.from(n));return new e(r)}add(t){let r=su.from(t);this.rules.push(r)}translate(t){let r=[];for(let n of this.rules)for(let i of t){let a=n.translate(i);a&&r.push([i,a])}return r}translateOne(t){let r=null;for(let n of this.rules){let i=n.translate(t);i&&(r=i)}return r}localNamespaces(){return this.rules.filter(t=>t.matchPrefix).map(t=>t.localPath.replace(/\/$/,""))}};function oM(e,t){let r=e.replace(/\^\{\}$/,""),n=t.replace(/\^\{\}$/,""),i=-(rn);return i===0?e.endsWith("^{}")?1:-1:i}var Ow=new Map;function Iw(e){let t=Ow.get(e);return t||(t=lM(e),Ow.set(e,t)),t}function lM(e){return e=e.split("/./").join("/").replace(/\/{2,}/g,"/"),e==="/."?"/":e==="./"||(e.startsWith("./")&&(e=e.slice(2)),e.endsWith("/.")&&(e=e.slice(0,-2)),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e==="")?".":e}function $(...e){return Iw(e.map(Iw).join("/"))}var cM=e=>{e=e.toLowerCase();let t=parseInt(e);return e.endsWith("k")&&(t*=1024),e.endsWith("m")&&(t*=1024*1024),e.endsWith("g")&&(t*=1024*1024*1024),t},Ko=e=>{if(e=e.trim().toLowerCase(),e==="true"||e==="yes"||e==="on")return!0;if(e==="false"||e==="no"||e==="off")return!1;throw Error(`Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${e}`)},Fw={core:{filemode:Ko,bare:Ko,logallrefupdates:Ko,symlinks:Ko,ignorecase:Ko,bigFileThreshold:cM}},uM=/^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/,fM=/^[A-Za-z0-9-.]+$/,dM=/^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/,hM=/^[A-Za-z][A-Za-z-]*$/,pM=/^(.*?)( *[#;].*)$/,mM=e=>{let t=uM.exec(e);if(t!=null){let[r,n]=t.slice(1);return[r,n]}return null},gM=e=>{let t=dM.exec(e);if(t!=null){let[r,n="true"]=t.slice(1),i=vM(n),a=yM(i);return[r,a]}return null},vM=e=>{let t=pM.exec(e);if(t==null)return e;let[r,n]=t.slice(1);return $w(r)&&$w(n)?`${r}${n}`:r},$w=e=>(e.match(/(?:^|[^\\])"/g)||[]).length%2!==0,yM=e=>e.split("").reduce((t,r,n,i)=>{let a=r==='"'&&i[n-1]!=="\\",s=r==="\\"&&i[n+1]==='"';return a||s?t:t+r},""),Lw=e=>e!=null?e.toLowerCase():null,mp=(e,t,r)=>[Lw(e),t,Lw(r)].filter(n=>n!=null).join("."),Dw=e=>{let t=e.split("."),r=t.shift(),n=t.pop(),i=t.length?t.join("."):void 0;return{section:r,subsection:i,name:n,path:mp(r,i,n),sectionPath:mp(r,i,null)}},wM=(e,t)=>e.reduce((r,n,i)=>t(n)?i:r,-1),gp=class e{constructor(t){let r=null,n=null;this.parsedConfig=t?t.split(` -`).map(i=>{let a=null,s=null,o=i.trim(),c=mM(o),l=c!=null;if(l)[r,n]=c;else{let f=gM(o);f!=null&&([a,s]=f)}let u=mp(r,n,a);return{line:i,isSection:l,section:r,subsection:n,name:a,value:s,path:u}}):[]}static from(t){return new e(t)}async get(t,r=!1){let n=Dw(t).path,i=this.parsedConfig.filter(a=>a.path===n).map(({section:a,name:s,value:o})=>{let c=Fw[a]&&Fw[a][s];return c?c(o):o});return r?i:i.pop()}async getall(t){return this.get(t,!0)}async getSubsections(t){return this.parsedConfig.filter(r=>r.section===t&&r.isSection).map(r=>r.subsection)}async deleteSection(t,r){this.parsedConfig=this.parsedConfig.filter(n=>!(n.section===t&&n.subsection===r))}async append(t,r){return this.set(t,r,!0)}async set(t,r,n=!1){let{section:i,subsection:a,name:s,path:o,sectionPath:c}=Dw(t),l=wM(this.parsedConfig,u=>u.path===o);if(r==null)l!==-1&&this.parsedConfig.splice(l,1);else if(l!==-1){let u=this.parsedConfig[l],f=Object.assign({},u,{name:s,value:r,modified:!0});n?this.parsedConfig.splice(l+1,0,f):this.parsedConfig[l]=f}else{let u=this.parsedConfig.findIndex(d=>d.path===c),f={section:i,subsection:a,name:s,value:r,modified:!0,path:o};if(fM.test(i)&&hM.test(s))if(u>=0)this.parsedConfig.splice(u+1,0,f);else{let d={section:i,subsection:a,modified:!0,path:c};this.parsedConfig.push(d,f)}}}toString(){return this.parsedConfig.map(({line:t,section:r,subsection:n,name:i,value:a,modified:s=!1})=>s?i!=null&&a!=null?typeof a=="string"&&/[#;]/.test(a)?` ${i} = "${a}"`:` ${i} = ${a}`:n!=null?`[${r} "${n}"]`:`[${r}]`:t).join(` -`)}},We=class{static async get({fs:t,gitdir:r}){let n=await t.read(`${r}/config`,{encoding:"utf8"});return gp.from(n)}static async save({fs:t,gitdir:r,config:n}){await t.write(`${r}/config`,n.toString(),{encoding:"utf8"})}},eu=e=>[`${e}`,`refs/${e}`,`refs/tags/${e}`,`refs/heads/${e}`,`refs/remotes/${e}`,`refs/remotes/${e}/HEAD`],bM=["config","description","index","shallow","commondir"],ip;async function vi(e,t){return ip===void 0&&(ip=new Jo.default),ip.acquire(e,t)}var q=class e{static async updateRemoteRefs({fs:t,gitdir:r,remote:n,refs:i,symrefs:a,tags:s,refspecs:o=void 0,prune:c=!1,pruneTags:l=!1}){for(let v of i.values())if(!v.match(/[0-9a-f]{40}/))throw new bi(v);let u=await We.get({fs:t,gitdir:r});if(!o){if(o=await u.getall(`remote.${n}.fetch`),o.length===0)throw new el(n);o.unshift(`+HEAD:refs/remotes/${n}/HEAD`)}let f=pp.from(o),d=new Map;if(l){let v=await e.listRefs({fs:t,gitdir:r,filepath:"refs/tags"});await e.deleteRefs({fs:t,gitdir:r,refs:v.map(y=>`refs/tags/${y}`)})}if(s){for(let v of i.keys())if(v.startsWith("refs/tags")&&!v.endsWith("^{}")&&!await e.exists({fs:t,gitdir:r,ref:v})){let y=i.get(v);d.set(v,y)}}let h=f.translate([...i.keys()]);for(let[v,y]of h){let b=i.get(v);d.set(y,b)}let p=f.translate([...a.keys()]);for(let[v,y]of p){let b=a.get(v),x=f.translateOne(b);x&&d.set(y,`ref: ${x}`)}let m=[];if(c){for(let v of f.localNamespaces()){let y=(await e.listRefs({fs:t,gitdir:r,filepath:v})).map(b=>`${v}/${b}`);for(let b of y)d.has(b)||m.push(b)}m.length>0&&await e.deleteRefs({fs:t,gitdir:r,refs:m})}for(let[v,y]of d)await vi(v,async()=>t.write($(r,v),`${y.trim()} +`}},au=class e{constructor({remotePath:t,localPath:r,force:n,matchPrefix:i}){Object.assign(this,{remotePath:t,localPath:r,force:n,matchPrefix:i})}static from(t){let[r,n,i,a,s]=t.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1),o=r==="+",c=i==="*";if(c!==(s==="*"))throw new le("Invalid refspec");return new e({remotePath:n,localPath:a,force:o,matchPrefix:c})}translate(t){if(this.matchPrefix){if(t.startsWith(this.remotePath))return this.localPath+t.replace(this.remotePath,"")}else if(t===this.remotePath)return this.localPath;return null}reverseTranslate(t){if(this.matchPrefix){if(t.startsWith(this.localPath))return this.remotePath+t.replace(this.localPath,"")}else if(t===this.localPath)return this.remotePath;return null}},hp=class e{constructor(t=[]){this.rules=t}static from(t){let r=[];for(let n of t)r.push(au.from(n));return new e(r)}add(t){let r=au.from(t);this.rules.push(r)}translate(t){let r=[];for(let n of this.rules)for(let i of t){let a=n.translate(i);a&&r.push([i,a])}return r}translateOne(t){let r=null;for(let n of this.rules){let i=n.translate(t);i&&(r=i)}return r}localNamespaces(){return this.rules.filter(t=>t.matchPrefix).map(t=>t.localPath.replace(/\/$/,""))}};function oM(e,t){let r=e.replace(/\^\{\}$/,""),n=t.replace(/\^\{\}$/,""),i=-(rn);return i===0?e.endsWith("^{}")?1:-1:i}var Mw=new Map;function Ow(e){let t=Mw.get(e);return t||(t=lM(e),Mw.set(e,t)),t}function lM(e){return e=e.split("/./").join("/").replace(/\/{2,}/g,"/"),e==="/."?"/":e==="./"||(e.startsWith("./")&&(e=e.slice(2)),e.endsWith("/.")&&(e=e.slice(0,-2)),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e==="")?".":e}function $(...e){return Ow(e.map(Ow).join("/"))}var cM=e=>{e=e.toLowerCase();let t=parseInt(e);return e.endsWith("k")&&(t*=1024),e.endsWith("m")&&(t*=1024*1024),e.endsWith("g")&&(t*=1024*1024*1024),t},Ko=e=>{if(e=e.trim().toLowerCase(),e==="true"||e==="yes"||e==="on")return!0;if(e==="false"||e==="no"||e==="off")return!1;throw Error(`Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${e}`)},Iw={core:{filemode:Ko,bare:Ko,logallrefupdates:Ko,symlinks:Ko,ignorecase:Ko,bigFileThreshold:cM}},uM=/^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/,fM=/^[A-Za-z0-9-.]+$/,dM=/^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/,hM=/^[A-Za-z][A-Za-z-]*$/,pM=/^(.*?)( *[#;].*)$/,mM=e=>{let t=uM.exec(e);if(t!=null){let[r,n]=t.slice(1);return[r,n]}return null},gM=e=>{let t=dM.exec(e);if(t!=null){let[r,n="true"]=t.slice(1),i=vM(n),a=yM(i);return[r,a]}return null},vM=e=>{let t=pM.exec(e);if(t==null)return e;let[r,n]=t.slice(1);return Fw(r)&&Fw(n)?`${r}${n}`:r},Fw=e=>(e.match(/(?:^|[^\\])"/g)||[]).length%2!==0,yM=e=>e.split("").reduce((t,r,n,i)=>{let a=r==='"'&&i[n-1]!=="\\",s=r==="\\"&&i[n+1]==='"';return a||s?t:t+r},""),$w=e=>e!=null?e.toLowerCase():null,pp=(e,t,r)=>[$w(e),t,$w(r)].filter(n=>n!=null).join("."),Lw=e=>{let t=e.split("."),r=t.shift(),n=t.pop(),i=t.length?t.join("."):void 0;return{section:r,subsection:i,name:n,path:pp(r,i,n),sectionPath:pp(r,i,null)}},wM=(e,t)=>e.reduce((r,n,i)=>t(n)?i:r,-1),mp=class e{constructor(t){let r=null,n=null;this.parsedConfig=t?t.split(` +`).map(i=>{let a=null,s=null,o=i.trim(),c=mM(o),l=c!=null;if(l)[r,n]=c;else{let f=gM(o);f!=null&&([a,s]=f)}let u=pp(r,n,a);return{line:i,isSection:l,section:r,subsection:n,name:a,value:s,path:u}}):[]}static from(t){return new e(t)}async get(t,r=!1){let n=Lw(t).path,i=this.parsedConfig.filter(a=>a.path===n).map(({section:a,name:s,value:o})=>{let c=Iw[a]&&Iw[a][s];return c?c(o):o});return r?i:i.pop()}async getall(t){return this.get(t,!0)}async getSubsections(t){return this.parsedConfig.filter(r=>r.section===t&&r.isSection).map(r=>r.subsection)}async deleteSection(t,r){this.parsedConfig=this.parsedConfig.filter(n=>!(n.section===t&&n.subsection===r))}async append(t,r){return this.set(t,r,!0)}async set(t,r,n=!1){let{section:i,subsection:a,name:s,path:o,sectionPath:c}=Lw(t),l=wM(this.parsedConfig,u=>u.path===o);if(r==null)l!==-1&&this.parsedConfig.splice(l,1);else if(l!==-1){let u=this.parsedConfig[l],f=Object.assign({},u,{name:s,value:r,modified:!0});n?this.parsedConfig.splice(l+1,0,f):this.parsedConfig[l]=f}else{let u=this.parsedConfig.findIndex(d=>d.path===c),f={section:i,subsection:a,name:s,value:r,modified:!0,path:o};if(fM.test(i)&&hM.test(s))if(u>=0)this.parsedConfig.splice(u+1,0,f);else{let d={section:i,subsection:a,modified:!0,path:c};this.parsedConfig.push(d,f)}}}toString(){return this.parsedConfig.map(({line:t,section:r,subsection:n,name:i,value:a,modified:s=!1})=>s?i!=null&&a!=null?typeof a=="string"&&/[#;]/.test(a)?` ${i} = "${a}"`:` ${i} = ${a}`:n!=null?`[${r} "${n}"]`:`[${r}]`:t).join(` +`)}},We=class{static async get({fs:t,gitdir:r}){let n=await t.read(`${r}/config`,{encoding:"utf8"});return mp.from(n)}static async save({fs:t,gitdir:r,config:n}){await t.write(`${r}/config`,n.toString(),{encoding:"utf8"})}},Qc=e=>[`${e}`,`refs/${e}`,`refs/tags/${e}`,`refs/heads/${e}`,`refs/remotes/${e}`,`refs/remotes/${e}/HEAD`],bM=["config","description","index","shallow","commondir"],np;async function vi(e,t){return np===void 0&&(np=new Jo.default),np.acquire(e,t)}var q=class e{static async updateRemoteRefs({fs:t,gitdir:r,remote:n,refs:i,symrefs:a,tags:s,refspecs:o=void 0,prune:c=!1,pruneTags:l=!1}){for(let v of i.values())if(!v.match(/[0-9a-f]{40}/))throw new bi(v);let u=await We.get({fs:t,gitdir:r});if(!o){if(o=await u.getall(`remote.${n}.fetch`),o.length===0)throw new el(n);o.unshift(`+HEAD:refs/remotes/${n}/HEAD`)}let f=hp.from(o),d=new Map;if(l){let v=await e.listRefs({fs:t,gitdir:r,filepath:"refs/tags"});await e.deleteRefs({fs:t,gitdir:r,refs:v.map(y=>`refs/tags/${y}`)})}if(s){for(let v of i.keys())if(v.startsWith("refs/tags")&&!v.endsWith("^{}")&&!await e.exists({fs:t,gitdir:r,ref:v})){let y=i.get(v);d.set(v,y)}}let h=f.translate([...i.keys()]);for(let[v,y]of h){let b=i.get(v);d.set(y,b)}let p=f.translate([...a.keys()]);for(let[v,y]of p){let b=a.get(v),x=f.translateOne(b);x&&d.set(y,`ref: ${x}`)}let m=[];if(c){for(let v of f.localNamespaces()){let y=(await e.listRefs({fs:t,gitdir:r,filepath:v})).map(b=>`${v}/${b}`);for(let b of y)d.has(b)||m.push(b)}m.length>0&&await e.deleteRefs({fs:t,gitdir:r,refs:m})}for(let[v,y]of d)await vi(v,async()=>t.write($(r,v),`${y.trim()} `,"utf8"));return{pruned:m}}static async writeRef({fs:t,gitdir:r,ref:n,value:i}){if(!i.match(/[0-9a-f]{40}/))throw new bi(i);await vi(n,async()=>t.write($(r,n),`${i.trim()} `,"utf8"))}static async writeSymbolicRef({fs:t,gitdir:r,ref:n,value:i}){await vi(n,async()=>t.write($(r,n),`ref: ${i.trim()} -`,"utf8"))}static async deleteRef({fs:t,gitdir:r,ref:n}){return e.deleteRefs({fs:t,gitdir:r,refs:[n]})}static async deleteRefs({fs:t,gitdir:r,refs:n}){await Promise.all(n.map(o=>t.rm($(r,o))));let i=await vi("packed-refs",async()=>t.read(`${r}/packed-refs`,{encoding:"utf8"})),a=au.from(i),s=a.refs.size;for(let o of n)a.refs.has(o)&&a.delete(o);a.refs.sizet.write(`${r}/packed-refs`,i,{encoding:"utf8"})))}static async resolve({fs:t,gitdir:r,ref:n,depth:i=void 0}){if(i!==void 0&&(i--,i===-1))return n;if(n.startsWith("ref: "))return n=n.slice(5),e.resolve({fs:t,gitdir:r,ref:n,depth:i});if(n.length===40&&/[0-9a-f]{40}/.test(n))return n;let a=await e.packedRefs({fs:t,gitdir:r}),s=eu(n).filter(o=>!bM.includes(o));for(let o of s){let c=await vi(o,async()=>await t.read(`${r}/${o}`,{encoding:"utf8"})||a.get(o));if(c)return e.resolve({fs:t,gitdir:r,ref:c.trim(),depth:i})}throw new Ne(n)}static async exists({fs:t,gitdir:r,ref:n}){try{return await e.expand({fs:t,gitdir:r,ref:n}),!0}catch(i){return!1}}static async expand({fs:t,gitdir:r,ref:n}){if(n.length===40&&/[0-9a-f]{40}/.test(n))return n;let i=await e.packedRefs({fs:t,gitdir:r}),a=eu(n);for(let s of a)if(await vi(s,async()=>t.exists(`${r}/${s}`))||i.has(s))return s;throw new Ne(n)}static async expandAgainstMap({ref:t,map:r}){let n=eu(t);for(let i of n)if(await r.has(i))return i;throw new Ne(t)}static resolveAgainstMap({ref:t,fullref:r=t,depth:n=void 0,map:i}){if(n!==void 0&&(n--,n===-1))return{fullref:r,oid:t};if(t.startsWith("ref: "))return t=t.slice(5),e.resolveAgainstMap({ref:t,fullref:r,depth:n,map:i});if(t.length===40&&/[0-9a-f]{40}/.test(t))return{fullref:r,oid:t};let a=eu(t);for(let s of a){let o=i.get(s);if(o)return e.resolveAgainstMap({ref:o.trim(),fullref:s,depth:n,map:i})}throw new Ne(t)}static async packedRefs({fs:t,gitdir:r}){let n=await vi("packed-refs",async()=>t.read(`${r}/packed-refs`,{encoding:"utf8"}));return au.from(n).refs}static async listRefs({fs:t,gitdir:r,filepath:n}){let i=e.packedRefs({fs:t,gitdir:r}),a=null;try{a=await t.readdirDeep(`${r}/${n}`),a=a.map(s=>s.replace(`${r}/${n}/`,""))}catch(s){a=[]}for(let s of(await i).keys())s.startsWith(n)&&(s=s.replace(n+"/",""),a.includes(s)||a.push(s));return a.sort(oM),a}static async listBranches({fs:t,gitdir:r,remote:n}){return n?e.listRefs({fs:t,gitdir:r,filepath:`refs/remotes/${n}`}):e.listRefs({fs:t,gitdir:r,filepath:"refs/heads"})}static async listTags({fs:t,gitdir:r}){return(await e.listRefs({fs:t,gitdir:r,filepath:"refs/tags"})).filter(i=>!i.endsWith("^{}"))}};function _M(e,t){return pu(Nw(e),Nw(t))}function Nw(e){return e.mode==="040000"?e.path+"/":e.path}function s2(e){switch(e){case"040000":return"tree";case"100644":return"blob";case"100755":return"blob";case"120000":return"blob";case"160000":return"commit"}throw new le(`Unexpected GitTree entry mode: ${e}`)}function xM(e){let t=[],r=0;for(;r`${t.mode} ${t.type} ${t.oid} ${t.path}`).join(` -`)}toObject(){let t=[...this._entries];return t.sort(_M),Buffer.concat(t.map(r=>{let n=Buffer.from(r.mode.replace(/^0/,"")),i=Buffer.from(" "),a=Buffer.from(r.path,"utf8"),s=Buffer.from([0]),o=Buffer.from(r.oid,"hex");return Buffer.concat([n,i,a,s,o])}))}entries(){return this._entries}*[Symbol.iterator](){for(let t of this._entries)yield t}},_i=class{static wrap({type:t,object:r}){return Buffer.concat([Buffer.from(`${t} ${r.byteLength.toString()}\0`),Buffer.from(r)])}static unwrap(t){let r=t.indexOf(32),n=t.indexOf(0),i=t.slice(0,r).toString("utf8"),a=t.slice(r+1,n).toString("utf8"),s=t.length-(n+1);if(parseInt(a)!==s)throw new le(`Length mismatch: expected ${a} bytes but got ${s} instead.`);return{type:i,object:Buffer.from(t.slice(n+1))}}};async function AM({fs:e,gitdir:t,oid:r}){let n=`objects/${r.slice(0,2)}/${r.slice(2)}`,i=await e.read(`${t}/${n}`);return i?{object:i,format:"deflated",source:n}:null}function kM(e,t){let r=new Or(e),n=jw(r);if(n!==t.byteLength)throw new le(`applyDelta expected source buffer to be ${n} bytes but the provided buffer was ${t.length} bytes`);let i=jw(r),a,s=Hw(r,t);if(s.byteLength===i)a=s;else{a=Buffer.alloc(i);let o=new Or(a);for(o.copy(s);!r.eof();)o.copy(Hw(r,t));let c=o.tell();if(i!==c)throw new le(`applyDelta expected target buffer to be ${i} bytes but the resulting buffer was ${c} bytes`)}return a}function jw(e){let t=0,r=0,n=null;do n=e.readUInt8(),t|=(n&127)<>=1,i+=8;return n}function Hw(e,t){let r=e.readUInt8(),n=128,i=15,a=112;if(r&n){let s=Bw(e,r&i,4),o=Bw(e,(r&a)>>4,3);return o===0&&(o=65536),t.slice(s,s+o)}else return e.slice(r)}function TM(e){let t=[e];return{next(){return Promise.resolve({done:t.length===0,value:t.pop()})},return(){return t=[],{}},[Symbol.asyncIterator](){return this}}}function o2(e){return e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]?e[Symbol.iterator]():e.next?e:TM(e)}var ou=class{constructor(t){if(typeof Buffer=="undefined")throw new Error("Missing Buffer dependency");this.stream=o2(t),this.buffer=null,this.cursor=0,this.undoCursor=0,this.started=!1,this._ended=!1,this._discardedBytes=0}eof(){return this._ended&&this.cursor===this.buffer.length}tell(){return this._discardedBytes+this.cursor}async byte(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(1),this.buffer[this.undoCursor]}async chunk(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(this.buffer.length),this.buffer.slice(this.undoCursor,this.cursor)}async read(t){if(!this.eof())return this.started||await this._init(),this.cursor+t>this.buffer.length&&(this._trim(),await this._accumulate(t)),this._moveCursor(t),this.buffer.slice(this.undoCursor,this.cursor)}async skip(t){this.eof()||(this.started||await this._init(),this.cursor+t>this.buffer.length&&(this._trim(),await this._accumulate(t)),this._moveCursor(t))}async undo(){this.cursor=this.undoCursor}async _next(){this.started=!0;let{done:t,value:r}=await this.stream.next();return t&&(this._ended=!0,!r)?Buffer.alloc(0):(r&&(r=Buffer.from(r)),r)}_trim(){this.buffer=this.buffer.slice(this.undoCursor),this.cursor-=this.undoCursor,this._discardedBytes+=this.undoCursor,this.undoCursor=0}_moveCursor(t){this.undoCursor=this.cursor,this.cursor+=t,this.cursor>this.buffer.length&&(this.cursor=this.buffer.length)}async _accumulate(t){if(this._ended)return;let r=[this.buffer];for(;this.cursor+t>CM(r);){let n=await this._next();if(this._ended)break;r.push(n)}this.buffer=Buffer.concat(r)}async _loadnext(){this._discardedBytes+=this.buffer.length,this.undoCursor=0,this.cursor=0,this.buffer=await this._next()}async _init(){this.buffer=await this._next()}};function CM(e){return e.reduce((t,r)=>t+r.length,0)}async function PM(e,t){let r=new ou(e),n=await r.read(4);if(n=n.toString("utf8"),n!=="PACK")throw new le(`Invalid PACK header '${n}'`);let i=await r.read(4);if(i=i.readUInt32BE(0),i!==2)throw new le(`Invalid packfile version: ${i}`);let a=await r.read(4);if(a=a.readUInt32BE(0),!(a<1))for(;!r.eof()&&a--;){let s=r.tell(),{type:o,length:c,ofs:l,reference:u}=await RM(r),f=new hu.default.Inflate;for(;!f.result;){let d=await r.chunk();if(!d)break;if(f.push(d,!1),f.err)throw new le(`Pako error: ${f.msg}`);if(f.result){if(f.result.length!==c)throw new le("Inflated object size is different from that stated in packfile.");await r.undo(),await r.read(d.length-f.strm.avail_in);let h=r.tell();await t({data:f.result,type:o,num:a,offset:s,end:h,reference:u,ofs:l})}}}}async function RM(e){let t=await e.byte(),r=t>>4&7,n=t&15;if(t&128){let s=4;do t=await e.byte(),n|=(t&127)<i+1<<7|a,-1)}function FM(e,t){let r=t,n=4,i=null;do i=e.readUInt8(),r|=(i&127)<2048*1024*1024)throw new le("To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.");n.seek(n.tell()+4*255);let s=n.readUInt32BE(),o=[];for(let u=0;u{u===null&&(u=E);let _=Math.floor((u-E)*100/u);_!==f&&n&&await n({phase:"Receiving objects",loaded:u-E,total:u}),f=_,y=i[y],["commit","tree","blob","tag"].includes(y)?a[x]={type:y,offset:x}:y==="ofs-delta"?a[x]={type:y,offset:x}:y==="ref-delta"&&(a[x]={type:y,offset:x})});let d=Object.keys(a).map(Number);for(let[v,y]of d.entries()){let b=v+1===d.length?t.byteLength-20:d[v+1],x=a[y],E=Qw.default.buf(t.slice(y,b))>>>0;x.end=b,x.crc=E}let h=new e({pack:Promise.resolve(t),packfileSha:s,crcs:c,hashes:o,offsets:l,getExternalRefDelta:r});f=null;let p=0,m=[0,0,0,0,0,0,0,0,0,0,0,0];for(let v in a){v=Number(v);let y=Math.floor(p*100/u);y!==f&&n&&await n({phase:"Resolving deltas",loaded:p,total:u}),p++,f=y;let b=a[v];if(!b.oid)try{h.readDepth=0,h.externalReadDepth=0;let{type:x,object:E}=await h.readSlice({start:v});m[h.readDepth]+=1;let _=await Gn(_i.wrap({type:x,object:E}));b.oid=_,o.push(_),l.set(_,v),c[_]=b.crc}catch(x){continue}}return o.sort(),h}async toBuffer(){let t=[],r=(l,u)=>{t.push(Buffer.from(l,u))};r("ff744f63","hex"),r("00000002","hex");let n=new Or(Buffer.alloc(256*4));for(let l=0;l<256;l++){let u=0;for(let f of this.hashes)parseInt(f.slice(0,2),16)<=l&&u++;n.writeUInt32BE(u)}t.push(n.buffer);for(let l of this.hashes)r(l,"hex");let i=new Or(Buffer.alloc(this.hashes.length*4));for(let l of this.hashes)i.writeUInt32BE(this.crcs[l]);t.push(i.buffer);let a=new Or(Buffer.alloc(this.hashes.length*4));for(let l of this.hashes)a.writeUInt32BE(this.offsets.get(l));t.push(a.buffer),r(this.packfileSha,"hex");let s=Buffer.concat(t),o=await Gn(s),c=Buffer.alloc(20);return c.write(o,"hex"),Buffer.concat([s,c])}async load({pack:t}){this.pack=t}async unload(){this.pack=null}async read({oid:t}){if(!this.offsets.get(t)){if(this.getExternalRefDelta)return this.externalReadDepth++,this.getExternalRefDelta(t);throw new le(`Could not read object ${t} from packfile`)}let r=this.offsets.get(t);return this.readSlice({start:r})}async readSlice({start:t}){if(this.offsetCache[t])return Object.assign({},this.offsetCache[t]);this.readDepth++;let r={16:"commit",32:"tree",48:"blob",64:"tag",96:"ofs_delta",112:"ref_delta"};if(!this.pack)throw new le("Tried to read from a GitPackIndex with no packfile loaded into memory");let n=(await this.pack).slice(t),i=new Or(n),a=i.readUInt8(),s=a&112,o=r[s];if(o===void 0)throw new le("Unrecognized type: 0b"+s.toString(2));let c=a&15,l=c;a&128&&(l=FM(i,c));let f=null,d=null;if(o==="ofs_delta"){let p=IM(i),m=t-p;({object:f,type:o}=await this.readSlice({start:m}))}if(o==="ref_delta"){let p=i.slice(20).toString("hex");({object:f,type:o}=await this.read({oid:p}))}let h=n.slice(i.tell());if(d=Buffer.from(await l2(h)),d.byteLength!==l)throw new le(`Packfile told us object would have length ${l} but it had length ${d.byteLength}`);return f&&(d=Buffer.from(kM(d,f))),this.readDepth>3&&(this.offsetCache[t]={type:o,object:d}),{type:o,format:"content",object:d}}},tu=Symbol("PackfileCache");async function $M({fs:e,filename:t,getExternalRefDelta:r,emitter:n,emitterPrefix:i}){let a=await e.read(t);return tl.fromIdx({idx:a,getExternalRefDelta:r})}function Ap({fs:e,cache:t,filename:r,getExternalRefDelta:n,emitter:i,emitterPrefix:a}){t[tu]||(t[tu]=new Map);let s=t[tu].get(r);return s||(s=$M({fs:e,filename:r,getExternalRefDelta:n,emitter:i,emitterPrefix:a}),t[tu].set(r,s)),s}async function LM({fs:e,cache:t,gitdir:r,oid:n,format:i="content",getExternalRefDelta:a}){let s=await e.readdir($(r,"objects/pack"));s=s.filter(o=>o.endsWith(".idx"));for(let o of s){let c=`${r}/objects/pack/${o}`,l=await Ap({fs:e,cache:t,filename:c,getExternalRefDelta:a});if(l.error)throw new le(l.error);if(l.offsets.has(n)){if(!l.pack){let f=c.replace(/idx$/,"pack");l.pack=e.read(f)}let u=await l.read({oid:n,getExternalRefDelta:a});return u.format="content",u.source=`objects/pack/${o.replace(/idx$/,"pack")}`,u}}return null}async function qe({fs:e,cache:t,gitdir:r,oid:n,format:i="content"}){let a=u=>qe({fs:e,cache:t,gitdir:r,oid:u}),s;if(n==="4b825dc642cb6eb9a060e54bf8d69288fbee4904"&&(s={format:"wrapped",object:Buffer.from("tree 0\0")}),s||(s=await AM({fs:e,gitdir:r,oid:n})),!s){if(s=await LM({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:a}),!s)throw new Ne(n);return s}if(i==="deflated"||(s.format==="deflated"&&(s.object=Buffer.from(await l2(s.object)),s.format="wrapped"),i==="wrapped"))return s;let o=await Gn(s.object);if(o!==n)throw new le(`SHA check failed! Expected ${n}, computed ${o}`);let{object:c,type:l}=_i.unwrap(s.object);if(s.type=l,s.object=c,s.format="content",i==="content")return s;throw new le(`invalid requested format "${i}"`)}var Jr=class e extends _e{constructor(t,r,n=!0){super(`Failed to create ${t} at ${r} because it already exists.${n?` (Hint: use 'force: true' parameter to overwrite existing ${t}.)`:""}`),this.code=this.name=e.code,this.data={noun:t,where:r,canForce:n}}};Jr.code="AlreadyExistsError";var rl=class e extends _e{constructor(t,r,n){super(`Found multiple ${t} matching "${r}" (${n.join(", ")}). Use a longer abbreviation length to disambiguate them.`),this.code=this.name=e.code,this.data={nouns:t,short:r,matches:n}}};rl.code="AmbiguousError";var nl=class e extends _e{constructor(t){super(`Your local changes to the following files would be overwritten by checkout: ${t.join(", ")}`),this.code=this.name=e.code,this.data={filepaths:t}}};nl.code="CheckoutConflictError";var il=class e extends _e{constructor(t,r){super(`Failed to checkout "${t}" because commit ${r} is not available locally. Do a git fetch to make the branch available locally.`),this.code=this.name=e.code,this.data={ref:t,oid:r}}};il.code="CommitNotFetchedError";var al=class e extends _e{constructor(){super("Empty response from git server."),this.code=this.name=e.code,this.data={}}};al.code="EmptyServerResponseError";var sl=class e extends _e{constructor(){super("A simple fast-forward merge was not possible."),this.code=this.name=e.code,this.data={}}};sl.code="FastForwardError";var ol=class e extends _e{constructor(t,r){super(`One or more branches were not updated: ${t}`),this.code=this.name=e.code,this.data={prettyDetails:t,result:r}}};ol.code="GitPushError";var hs=class e extends _e{constructor(t,r,n){super(`HTTP Error: ${t} ${r}`),this.code=this.name=e.code,this.data={statusCode:t,statusMessage:r,response:n}}};hs.code="HttpError";var xi=class e extends _e{constructor(t){let r="invalid filepath";t==="leading-slash"||t==="trailing-slash"?r='"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.':t==="directory"&&(r='"filepath" should not be a directory.'),super(r),this.code=this.name=e.code,this.data={reason:t}}};xi.code="InvalidFilepathError";var zn=class e extends _e{constructor(t,r){super(`"${t}" would be an invalid git reference. (Hint: a valid alternative would be "${r}".)`),this.code=this.name=e.code,this.data={ref:t,suggestion:r}}};zn.code="InvalidRefNameError";var ll=class e extends _e{constructor(t){super(`Maximum search depth of ${t} exceeded.`),this.code=this.name=e.code,this.data={depth:t}}};ll.code="MaxDepthError";var ps=class e extends _e{constructor(){super("Merges with conflicts are not supported yet."),this.code=this.name=e.code,this.data={}}};ps.code="MergeNotSupportedError";var ms=class e extends _e{constructor(t,r,n,i){super(`Automatic merge failed with one or more merge conflicts in the following files: ${t.toString()}. Fix conflicts then commit the result.`),this.code=this.name=e.code,this.data={filepaths:t,bothModified:r,deleteByUs:n,deleteByTheirs:i}}};ms.code="MergeConflictError";var zt=class e extends _e{constructor(t){super(`No name was provided for ${t} in the argument or in the .git/config file.`),this.code=this.name=e.code,this.data={role:t}}};zt.code="MissingNameError";var Qt=class e extends _e{constructor(t){super(`The function requires a "${t}" parameter but none was provided.`),this.code=this.name=e.code,this.data={parameter:t}}};Qt.code="MissingParameterError";var cl=class e extends _e{constructor(t){super('There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more'),this.code=this.name=e.code,this.data={errors:t},this.errors=t}};cl.code="MultipleGitError";var la=class e extends _e{constructor(t,r){super(`Expected "${t}" but received "${r}".`),this.code=this.name=e.code,this.data={expected:t,actual:r}}};la.code="ParseError";var gs=class e extends _e{constructor(t){let r="";t==="not-fast-forward"?r=" because it was not a simple fast-forward":t==="tag-exists"&&(r=" because tag already exists"),super(`Push rejected${r}. Use "force: true" to override.`),this.code=this.name=e.code,this.data={reason:t}}};gs.code="PushRejectedError";var yi=class e extends _e{constructor(t,r){super(`Remote does not support the "${t}" so the "${r}" parameter cannot be used.`),this.code=this.name=e.code,this.data={capability:t,parameter:r}}};yi.code="RemoteCapabilityError";var ul=class e extends _e{constructor(t,r){super(`Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${t}`),this.code=this.name=e.code,this.data={preview:t,response:r}}};ul.code="SmartHttpError";var fl=class e extends _e{constructor(t,r,n){super(`Git remote "${t}" uses an unrecognized transport protocol: "${r}"`),this.code=this.name=e.code,this.data={url:t,transport:r,suggestion:n}}};fl.code="UnknownTransportError";var dl=class e extends _e{constructor(t){super(`Cannot parse remote URL: "${t}"`),this.code=this.name=e.code,this.data={url:t}}};dl.code="UrlParseError";var vs=class e extends _e{constructor(){super("The operation was canceled."),this.code=this.name=e.code,this.data={}}};vs.code="UserCanceledError";var hl=class e extends _e{constructor(t){super(`Could not merge index: Entry for '${t}' is not up to date. Either reset the index entry to HEAD, or stage your unstaged changes.`),this.code=this.name=e.code,this.data={filepath:t}}};hl.code="IndexResetError";var pl=class e extends _e{constructor(t){super(`"${t}" does not point to any commit. You're maybe working on a repository with no commits yet. `),this.code=this.name=e.code,this.data={ref:t}}};pl.code="NoCommitError";var gl=Object.freeze({__proto__:null,AlreadyExistsError:Jr,AmbiguousError:rl,CheckoutConflictError:nl,CommitNotFetchedError:il,EmptyServerResponseError:al,FastForwardError:sl,GitPushError:ol,HttpError:hs,InternalError:le,InvalidFilepathError:xi,InvalidOidError:bi,InvalidRefNameError:zn,MaxDepthError:ll,MergeNotSupportedError:ps,MergeConflictError:ms,MissingNameError:zt,MissingParameterError:Qt,MultipleGitError:cl,NoRefspecError:el,NotFoundError:Ne,ObjectTypeError:Gt,ParseError:la,PushRejectedError:gs,RemoteCapabilityError:yi,SmartHttpError:ul,UnknownTransportError:fl,UnsafeFilepathError:us,UrlParseError:dl,UserCanceledError:vs,UnmergedPathsError:Qo,IndexResetError:hl,NoCommitError:pl});function vp({name:e,email:t,timestamp:r,timezoneOffset:n}){return n=DM(n),`${e} <${t}> ${r} ${n}`}function DM(e){let t=NM(jM(e));e=Math.abs(e);let r=Math.floor(e/60);e-=r*60;let n=String(r),i=String(e);return n.length<2&&(n="0"+n),i.length<2&&(i="0"+i),(t===-1?"-":"+")+n+i}function NM(e){return Math.sign(e)||(Object.is(e,-0)?-1:1)}function jM(e){return e===0?e:-e}function Un(e){return e=e.replace(/\r/g,""),e=e.replace(/^\n+/,""),e=e.replace(/\n+$/,"")+` -`,e}function lu(e){let[,t,r,n,i]=e.match(/^(.*) <(.*)> (.*) (.*)$/);return{name:t,email:r,timestamp:Number(n),timezoneOffset:BM(i)}}function BM(e){let[,t,r,n]=e.match(/(\+|-)(\d\d)(\d\d)/);return n=(t==="+"?1:-1)*(Number(r)*60+Number(n)),HM(n)}function HM(e){return e===0?e:-e}var hr=class e{constructor(t){if(typeof t=="string")this._tag=t;else if(Buffer.isBuffer(t))this._tag=t.toString("utf8");else if(typeof t=="object")this._tag=e.render(t);else throw new le("invalid type passed to GitAnnotatedTag constructor")}static from(t){return new e(t)}static render(t){return`object ${t.object} +`,"utf8"))}static async deleteRef({fs:t,gitdir:r,ref:n}){return e.deleteRefs({fs:t,gitdir:r,refs:[n]})}static async deleteRefs({fs:t,gitdir:r,refs:n}){await Promise.all(n.map(o=>t.rm($(r,o))));let i=await vi("packed-refs",async()=>t.read(`${r}/packed-refs`,{encoding:"utf8"})),a=iu.from(i),s=a.refs.size;for(let o of n)a.refs.has(o)&&a.delete(o);a.refs.sizet.write(`${r}/packed-refs`,i,{encoding:"utf8"})))}static async resolve({fs:t,gitdir:r,ref:n,depth:i=void 0}){if(i!==void 0&&(i--,i===-1))return n;if(n.startsWith("ref: "))return n=n.slice(5),e.resolve({fs:t,gitdir:r,ref:n,depth:i});if(n.length===40&&/[0-9a-f]{40}/.test(n))return n;let a=await e.packedRefs({fs:t,gitdir:r}),s=Qc(n).filter(o=>!bM.includes(o));for(let o of s){let c=await vi(o,async()=>await t.read(`${r}/${o}`,{encoding:"utf8"})||a.get(o));if(c)return e.resolve({fs:t,gitdir:r,ref:c.trim(),depth:i})}throw new Ne(n)}static async exists({fs:t,gitdir:r,ref:n}){try{return await e.expand({fs:t,gitdir:r,ref:n}),!0}catch(i){return!1}}static async expand({fs:t,gitdir:r,ref:n}){if(n.length===40&&/[0-9a-f]{40}/.test(n))return n;let i=await e.packedRefs({fs:t,gitdir:r}),a=Qc(n);for(let s of a)if(await vi(s,async()=>t.exists(`${r}/${s}`))||i.has(s))return s;throw new Ne(n)}static async expandAgainstMap({ref:t,map:r}){let n=Qc(t);for(let i of n)if(await r.has(i))return i;throw new Ne(t)}static resolveAgainstMap({ref:t,fullref:r=t,depth:n=void 0,map:i}){if(n!==void 0&&(n--,n===-1))return{fullref:r,oid:t};if(t.startsWith("ref: "))return t=t.slice(5),e.resolveAgainstMap({ref:t,fullref:r,depth:n,map:i});if(t.length===40&&/[0-9a-f]{40}/.test(t))return{fullref:r,oid:t};let a=Qc(t);for(let s of a){let o=i.get(s);if(o)return e.resolveAgainstMap({ref:o.trim(),fullref:s,depth:n,map:i})}throw new Ne(t)}static async packedRefs({fs:t,gitdir:r}){let n=await vi("packed-refs",async()=>t.read(`${r}/packed-refs`,{encoding:"utf8"}));return iu.from(n).refs}static async listRefs({fs:t,gitdir:r,filepath:n}){let i=e.packedRefs({fs:t,gitdir:r}),a=null;try{a=await t.readdirDeep(`${r}/${n}`),a=a.map(s=>s.replace(`${r}/${n}/`,""))}catch(s){a=[]}for(let s of(await i).keys())s.startsWith(n)&&(s=s.replace(n+"/",""),a.includes(s)||a.push(s));return a.sort(oM),a}static async listBranches({fs:t,gitdir:r,remote:n}){return n?e.listRefs({fs:t,gitdir:r,filepath:`refs/remotes/${n}`}):e.listRefs({fs:t,gitdir:r,filepath:"refs/heads"})}static async listTags({fs:t,gitdir:r}){return(await e.listRefs({fs:t,gitdir:r,filepath:"refs/tags"})).filter(i=>!i.endsWith("^{}"))}};function _M(e,t){return hu(Dw(e),Dw(t))}function Dw(e){return e.mode==="040000"?e.path+"/":e.path}function a2(e){switch(e){case"040000":return"tree";case"100644":return"blob";case"100755":return"blob";case"120000":return"blob";case"160000":return"commit"}throw new le(`Unexpected GitTree entry mode: ${e}`)}function xM(e){let t=[],r=0;for(;r`${t.mode} ${t.type} ${t.oid} ${t.path}`).join(` +`)}toObject(){let t=[...this._entries];return t.sort(_M),Buffer.concat(t.map(r=>{let n=Buffer.from(r.mode.replace(/^0/,"")),i=Buffer.from(" "),a=Buffer.from(r.path,"utf8"),s=Buffer.from([0]),o=Buffer.from(r.oid,"hex");return Buffer.concat([n,i,a,s,o])}))}entries(){return this._entries}*[Symbol.iterator](){for(let t of this._entries)yield t}},_i=class{static wrap({type:t,object:r}){return Buffer.concat([Buffer.from(`${t} ${r.byteLength.toString()}\0`),Buffer.from(r)])}static unwrap(t){let r=t.indexOf(32),n=t.indexOf(0),i=t.slice(0,r).toString("utf8"),a=t.slice(r+1,n).toString("utf8"),s=t.length-(n+1);if(parseInt(a)!==s)throw new le(`Length mismatch: expected ${a} bytes but got ${s} instead.`);return{type:i,object:Buffer.from(t.slice(n+1))}}};async function AM({fs:e,gitdir:t,oid:r}){let n=`objects/${r.slice(0,2)}/${r.slice(2)}`,i=await e.read(`${t}/${n}`);return i?{object:i,format:"deflated",source:n}:null}function kM(e,t){let r=new Ir(e),n=Nw(r);if(n!==t.byteLength)throw new le(`applyDelta expected source buffer to be ${n} bytes but the provided buffer was ${t.length} bytes`);let i=Nw(r),a,s=Bw(r,t);if(s.byteLength===i)a=s;else{a=Buffer.alloc(i);let o=new Ir(a);for(o.copy(s);!r.eof();)o.copy(Bw(r,t));let c=o.tell();if(i!==c)throw new le(`applyDelta expected target buffer to be ${i} bytes but the resulting buffer was ${c} bytes`)}return a}function Nw(e){let t=0,r=0,n=null;do n=e.readUInt8(),t|=(n&127)<>=1,i+=8;return n}function Bw(e,t){let r=e.readUInt8(),n=128,i=15,a=112;if(r&n){let s=jw(e,r&i,4),o=jw(e,(r&a)>>4,3);return o===0&&(o=65536),t.slice(s,s+o)}else return e.slice(r)}function TM(e){let t=[e];return{next(){return Promise.resolve({done:t.length===0,value:t.pop()})},return(){return t=[],{}},[Symbol.asyncIterator](){return this}}}function s2(e){return e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]?e[Symbol.iterator]():e.next?e:TM(e)}var su=class{constructor(t){if(typeof Buffer=="undefined")throw new Error("Missing Buffer dependency");this.stream=s2(t),this.buffer=null,this.cursor=0,this.undoCursor=0,this.started=!1,this._ended=!1,this._discardedBytes=0}eof(){return this._ended&&this.cursor===this.buffer.length}tell(){return this._discardedBytes+this.cursor}async byte(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(1),this.buffer[this.undoCursor]}async chunk(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(this.buffer.length),this.buffer.slice(this.undoCursor,this.cursor)}async read(t){if(!this.eof())return this.started||await this._init(),this.cursor+t>this.buffer.length&&(this._trim(),await this._accumulate(t)),this._moveCursor(t),this.buffer.slice(this.undoCursor,this.cursor)}async skip(t){this.eof()||(this.started||await this._init(),this.cursor+t>this.buffer.length&&(this._trim(),await this._accumulate(t)),this._moveCursor(t))}async undo(){this.cursor=this.undoCursor}async _next(){this.started=!0;let{done:t,value:r}=await this.stream.next();return t&&(this._ended=!0,!r)?Buffer.alloc(0):(r&&(r=Buffer.from(r)),r)}_trim(){this.buffer=this.buffer.slice(this.undoCursor),this.cursor-=this.undoCursor,this._discardedBytes+=this.undoCursor,this.undoCursor=0}_moveCursor(t){this.undoCursor=this.cursor,this.cursor+=t,this.cursor>this.buffer.length&&(this.cursor=this.buffer.length)}async _accumulate(t){if(this._ended)return;let r=[this.buffer];for(;this.cursor+t>CM(r);){let n=await this._next();if(this._ended)break;r.push(n)}this.buffer=Buffer.concat(r)}async _loadnext(){this._discardedBytes+=this.buffer.length,this.undoCursor=0,this.cursor=0,this.buffer=await this._next()}async _init(){this.buffer=await this._next()}};function CM(e){return e.reduce((t,r)=>t+r.length,0)}async function PM(e,t){let r=new su(e),n=await r.read(4);if(n=n.toString("utf8"),n!=="PACK")throw new le(`Invalid PACK header '${n}'`);let i=await r.read(4);if(i=i.readUInt32BE(0),i!==2)throw new le(`Invalid packfile version: ${i}`);let a=await r.read(4);if(a=a.readUInt32BE(0),!(a<1))for(;!r.eof()&&a--;){let s=r.tell(),{type:o,length:c,ofs:l,reference:u}=await RM(r),f=new du.default.Inflate;for(;!f.result;){let d=await r.chunk();if(!d)break;if(f.push(d,!1),f.err)throw new le(`Pako error: ${f.msg}`);if(f.result){if(f.result.length!==c)throw new le("Inflated object size is different from that stated in packfile.");await r.undo(),await r.read(d.length-f.strm.avail_in);let h=r.tell();await t({data:f.result,type:o,num:a,offset:s,end:h,reference:u,ofs:l})}}}}async function RM(e){let t=await e.byte(),r=t>>4&7,n=t&15;if(t&128){let s=4;do t=await e.byte(),n|=(t&127)<i+1<<7|a,-1)}function FM(e,t){let r=t,n=4,i=null;do i=e.readUInt8(),r|=(i&127)<2048*1024*1024)throw new le("To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.");n.seek(n.tell()+4*255);let s=n.readUInt32BE(),o=[];for(let u=0;u{u===null&&(u=E);let _=Math.floor((u-E)*100/u);_!==f&&n&&await n({phase:"Receiving objects",loaded:u-E,total:u}),f=_,y=i[y],["commit","tree","blob","tag"].includes(y)?a[x]={type:y,offset:x}:y==="ofs-delta"?a[x]={type:y,offset:x}:y==="ref-delta"&&(a[x]={type:y,offset:x})});let d=Object.keys(a).map(Number);for(let[v,y]of d.entries()){let b=v+1===d.length?t.byteLength-20:d[v+1],x=a[y],E=Jw.default.buf(t.slice(y,b))>>>0;x.end=b,x.crc=E}let h=new e({pack:Promise.resolve(t),packfileSha:s,crcs:c,hashes:o,offsets:l,getExternalRefDelta:r});f=null;let p=0,m=[0,0,0,0,0,0,0,0,0,0,0,0];for(let v in a){v=Number(v);let y=Math.floor(p*100/u);y!==f&&n&&await n({phase:"Resolving deltas",loaded:p,total:u}),p++,f=y;let b=a[v];if(!b.oid)try{h.readDepth=0,h.externalReadDepth=0;let{type:x,object:E}=await h.readSlice({start:v});m[h.readDepth]+=1;let _=await Gn(_i.wrap({type:x,object:E}));b.oid=_,o.push(_),l.set(_,v),c[_]=b.crc}catch(x){continue}}return o.sort(),h}async toBuffer(){let t=[],r=(l,u)=>{t.push(Buffer.from(l,u))};r("ff744f63","hex"),r("00000002","hex");let n=new Ir(Buffer.alloc(256*4));for(let l=0;l<256;l++){let u=0;for(let f of this.hashes)parseInt(f.slice(0,2),16)<=l&&u++;n.writeUInt32BE(u)}t.push(n.buffer);for(let l of this.hashes)r(l,"hex");let i=new Ir(Buffer.alloc(this.hashes.length*4));for(let l of this.hashes)i.writeUInt32BE(this.crcs[l]);t.push(i.buffer);let a=new Ir(Buffer.alloc(this.hashes.length*4));for(let l of this.hashes)a.writeUInt32BE(this.offsets.get(l));t.push(a.buffer),r(this.packfileSha,"hex");let s=Buffer.concat(t),o=await Gn(s),c=Buffer.alloc(20);return c.write(o,"hex"),Buffer.concat([s,c])}async load({pack:t}){this.pack=t}async unload(){this.pack=null}async read({oid:t}){if(!this.offsets.get(t)){if(this.getExternalRefDelta)return this.externalReadDepth++,this.getExternalRefDelta(t);throw new le(`Could not read object ${t} from packfile`)}let r=this.offsets.get(t);return this.readSlice({start:r})}async readSlice({start:t}){if(this.offsetCache[t])return Object.assign({},this.offsetCache[t]);this.readDepth++;let r={16:"commit",32:"tree",48:"blob",64:"tag",96:"ofs_delta",112:"ref_delta"};if(!this.pack)throw new le("Tried to read from a GitPackIndex with no packfile loaded into memory");let n=(await this.pack).slice(t),i=new Ir(n),a=i.readUInt8(),s=a&112,o=r[s];if(o===void 0)throw new le("Unrecognized type: 0b"+s.toString(2));let c=a&15,l=c;a&128&&(l=FM(i,c));let f=null,d=null;if(o==="ofs_delta"){let p=IM(i),m=t-p;({object:f,type:o}=await this.readSlice({start:m}))}if(o==="ref_delta"){let p=i.slice(20).toString("hex");({object:f,type:o}=await this.read({oid:p}))}let h=n.slice(i.tell());if(d=Buffer.from(await o2(h)),d.byteLength!==l)throw new le(`Packfile told us object would have length ${l} but it had length ${d.byteLength}`);return f&&(d=Buffer.from(kM(d,f))),this.readDepth>3&&(this.offsetCache[t]={type:o,object:d}),{type:o,format:"content",object:d}}},eu=Symbol("PackfileCache");async function $M({fs:e,filename:t,getExternalRefDelta:r,emitter:n,emitterPrefix:i}){let a=await e.read(t);return tl.fromIdx({idx:a,getExternalRefDelta:r})}function Ep({fs:e,cache:t,filename:r,getExternalRefDelta:n,emitter:i,emitterPrefix:a}){t[eu]||(t[eu]=new Map);let s=t[eu].get(r);return s||(s=$M({fs:e,filename:r,getExternalRefDelta:n,emitter:i,emitterPrefix:a}),t[eu].set(r,s)),s}async function LM({fs:e,cache:t,gitdir:r,oid:n,format:i="content",getExternalRefDelta:a}){let s=await e.readdir($(r,"objects/pack"));s=s.filter(o=>o.endsWith(".idx"));for(let o of s){let c=`${r}/objects/pack/${o}`,l=await Ep({fs:e,cache:t,filename:c,getExternalRefDelta:a});if(l.error)throw new le(l.error);if(l.offsets.has(n)){if(!l.pack){let f=c.replace(/idx$/,"pack");l.pack=e.read(f)}let u=await l.read({oid:n,getExternalRefDelta:a});return u.format="content",u.source=`objects/pack/${o.replace(/idx$/,"pack")}`,u}}return null}async function qe({fs:e,cache:t,gitdir:r,oid:n,format:i="content"}){let a=u=>qe({fs:e,cache:t,gitdir:r,oid:u}),s;if(n==="4b825dc642cb6eb9a060e54bf8d69288fbee4904"&&(s={format:"wrapped",object:Buffer.from("tree 0\0")}),s||(s=await AM({fs:e,gitdir:r,oid:n})),!s){if(s=await LM({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:a}),!s)throw new Ne(n);return s}if(i==="deflated"||(s.format==="deflated"&&(s.object=Buffer.from(await o2(s.object)),s.format="wrapped"),i==="wrapped"))return s;let o=await Gn(s.object);if(o!==n)throw new le(`SHA check failed! Expected ${n}, computed ${o}`);let{object:c,type:l}=_i.unwrap(s.object);if(s.type=l,s.object=c,s.format="content",i==="content")return s;throw new le(`invalid requested format "${i}"`)}var Qr=class e extends _e{constructor(t,r,n=!0){super(`Failed to create ${t} at ${r} because it already exists.${n?` (Hint: use 'force: true' parameter to overwrite existing ${t}.)`:""}`),this.code=this.name=e.code,this.data={noun:t,where:r,canForce:n}}};Qr.code="AlreadyExistsError";var rl=class e extends _e{constructor(t,r,n){super(`Found multiple ${t} matching "${r}" (${n.join(", ")}). Use a longer abbreviation length to disambiguate them.`),this.code=this.name=e.code,this.data={nouns:t,short:r,matches:n}}};rl.code="AmbiguousError";var nl=class e extends _e{constructor(t){super(`Your local changes to the following files would be overwritten by checkout: ${t.join(", ")}`),this.code=this.name=e.code,this.data={filepaths:t}}};nl.code="CheckoutConflictError";var il=class e extends _e{constructor(t,r){super(`Failed to checkout "${t}" because commit ${r} is not available locally. Do a git fetch to make the branch available locally.`),this.code=this.name=e.code,this.data={ref:t,oid:r}}};il.code="CommitNotFetchedError";var al=class e extends _e{constructor(){super("Empty response from git server."),this.code=this.name=e.code,this.data={}}};al.code="EmptyServerResponseError";var sl=class e extends _e{constructor(){super("A simple fast-forward merge was not possible."),this.code=this.name=e.code,this.data={}}};sl.code="FastForwardError";var ol=class e extends _e{constructor(t,r){super(`One or more branches were not updated: ${t}`),this.code=this.name=e.code,this.data={prettyDetails:t,result:r}}};ol.code="GitPushError";var ds=class e extends _e{constructor(t,r,n){super(`HTTP Error: ${t} ${r}`),this.code=this.name=e.code,this.data={statusCode:t,statusMessage:r,response:n}}};ds.code="HttpError";var xi=class e extends _e{constructor(t){let r="invalid filepath";t==="leading-slash"||t==="trailing-slash"?r='"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.':t==="directory"&&(r='"filepath" should not be a directory.'),super(r),this.code=this.name=e.code,this.data={reason:t}}};xi.code="InvalidFilepathError";var zn=class e extends _e{constructor(t,r){super(`"${t}" would be an invalid git reference. (Hint: a valid alternative would be "${r}".)`),this.code=this.name=e.code,this.data={ref:t,suggestion:r}}};zn.code="InvalidRefNameError";var ll=class e extends _e{constructor(t){super(`Maximum search depth of ${t} exceeded.`),this.code=this.name=e.code,this.data={depth:t}}};ll.code="MaxDepthError";var hs=class e extends _e{constructor(){super("Merges with conflicts are not supported yet."),this.code=this.name=e.code,this.data={}}};hs.code="MergeNotSupportedError";var ps=class e extends _e{constructor(t,r,n,i){super(`Automatic merge failed with one or more merge conflicts in the following files: ${t.toString()}. Fix conflicts then commit the result.`),this.code=this.name=e.code,this.data={filepaths:t,bothModified:r,deleteByUs:n,deleteByTheirs:i}}};ps.code="MergeConflictError";var zt=class e extends _e{constructor(t){super(`No name was provided for ${t} in the argument or in the .git/config file.`),this.code=this.name=e.code,this.data={role:t}}};zt.code="MissingNameError";var Qt=class e extends _e{constructor(t){super(`The function requires a "${t}" parameter but none was provided.`),this.code=this.name=e.code,this.data={parameter:t}}};Qt.code="MissingParameterError";var cl=class e extends _e{constructor(t){super('There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more'),this.code=this.name=e.code,this.data={errors:t},this.errors=t}};cl.code="MultipleGitError";var la=class e extends _e{constructor(t,r){super(`Expected "${t}" but received "${r}".`),this.code=this.name=e.code,this.data={expected:t,actual:r}}};la.code="ParseError";var ms=class e extends _e{constructor(t){let r="";t==="not-fast-forward"?r=" because it was not a simple fast-forward":t==="tag-exists"&&(r=" because tag already exists"),super(`Push rejected${r}. Use "force: true" to override.`),this.code=this.name=e.code,this.data={reason:t}}};ms.code="PushRejectedError";var yi=class e extends _e{constructor(t,r){super(`Remote does not support the "${t}" so the "${r}" parameter cannot be used.`),this.code=this.name=e.code,this.data={capability:t,parameter:r}}};yi.code="RemoteCapabilityError";var ul=class e extends _e{constructor(t,r){super(`Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${t}`),this.code=this.name=e.code,this.data={preview:t,response:r}}};ul.code="SmartHttpError";var fl=class e extends _e{constructor(t,r,n){super(`Git remote "${t}" uses an unrecognized transport protocol: "${r}"`),this.code=this.name=e.code,this.data={url:t,transport:r,suggestion:n}}};fl.code="UnknownTransportError";var dl=class e extends _e{constructor(t){super(`Cannot parse remote URL: "${t}"`),this.code=this.name=e.code,this.data={url:t}}};dl.code="UrlParseError";var gs=class e extends _e{constructor(){super("The operation was canceled."),this.code=this.name=e.code,this.data={}}};gs.code="UserCanceledError";var hl=class e extends _e{constructor(t){super(`Could not merge index: Entry for '${t}' is not up to date. Either reset the index entry to HEAD, or stage your unstaged changes.`),this.code=this.name=e.code,this.data={filepath:t}}};hl.code="IndexResetError";var pl=class e extends _e{constructor(t){super(`"${t}" does not point to any commit. You're maybe working on a repository with no commits yet. `),this.code=this.name=e.code,this.data={ref:t}}};pl.code="NoCommitError";var gl=Object.freeze({__proto__:null,AlreadyExistsError:Qr,AmbiguousError:rl,CheckoutConflictError:nl,CommitNotFetchedError:il,EmptyServerResponseError:al,FastForwardError:sl,GitPushError:ol,HttpError:ds,InternalError:le,InvalidFilepathError:xi,InvalidOidError:bi,InvalidRefNameError:zn,MaxDepthError:ll,MergeNotSupportedError:hs,MergeConflictError:ps,MissingNameError:zt,MissingParameterError:Qt,MultipleGitError:cl,NoRefspecError:el,NotFoundError:Ne,ObjectTypeError:Gt,ParseError:la,PushRejectedError:ms,RemoteCapabilityError:yi,SmartHttpError:ul,UnknownTransportError:fl,UnsafeFilepathError:cs,UrlParseError:dl,UserCanceledError:gs,UnmergedPathsError:Qo,IndexResetError:hl,NoCommitError:pl});function gp({name:e,email:t,timestamp:r,timezoneOffset:n}){return n=DM(n),`${e} <${t}> ${r} ${n}`}function DM(e){let t=NM(jM(e));e=Math.abs(e);let r=Math.floor(e/60);e-=r*60;let n=String(r),i=String(e);return n.length<2&&(n="0"+n),i.length<2&&(i="0"+i),(t===-1?"-":"+")+n+i}function NM(e){return Math.sign(e)||(Object.is(e,-0)?-1:1)}function jM(e){return e===0?e:-e}function Un(e){return e=e.replace(/\r/g,""),e=e.replace(/^\n+/,""),e=e.replace(/\n+$/,"")+` +`,e}function ou(e){let[,t,r,n,i]=e.match(/^(.*) <(.*)> (.*) (.*)$/);return{name:t,email:r,timestamp:Number(n),timezoneOffset:BM(i)}}function BM(e){let[,t,r,n]=e.match(/(\+|-)(\d\d)(\d\d)/);return n=(t==="+"?1:-1)*(Number(r)*60+Number(n)),HM(n)}function HM(e){return e===0?e:-e}var pr=class e{constructor(t){if(typeof t=="string")this._tag=t;else if(Buffer.isBuffer(t))this._tag=t.toString("utf8");else if(typeof t=="object")this._tag=e.render(t);else throw new le("invalid type passed to GitAnnotatedTag constructor")}static from(t){return new e(t)}static render(t){return`object ${t.object} type ${t.type} tag ${t.tag} -tagger ${vp(t.tagger)} +tagger ${gp(t.tagger)} ${t.message} ${t.gpgsig?t.gpgsig:""}`}justHeaders(){return this._tag.slice(0,this._tag.indexOf(` @@ -37,49 +37,49 @@ ${t.gpgsig?t.gpgsig:""}`}justHeaders(){return this._tag.slice(0,this._tag.indexO `)+2)}parse(){return Object.assign(this.headers(),{message:this.message(),gpgsig:this.gpgsig()})}render(){return this._tag}headers(){let t=this.justHeaders().split(` `),r=[];for(let i of t)i[0]===" "?r[r.length-1]+=` -`+i.slice(1):r.push(i);let n={};for(let i of r){let a=i.slice(0,i.indexOf(" ")),s=i.slice(i.indexOf(" ")+1);Array.isArray(n[a])?n[a].push(s):n[a]=s}return n.tagger&&(n.tagger=lu(n.tagger)),n.committer&&(n.committer=lu(n.committer)),n}withoutSignature(){let t=Un(this._tag);return t.indexOf(` +`+i.slice(1):r.push(i);let n={};for(let i of r){let a=i.slice(0,i.indexOf(" ")),s=i.slice(i.indexOf(" ")+1);Array.isArray(n[a])?n[a].push(s):n[a]=s}return n.tagger&&(n.tagger=ou(n.tagger)),n.committer&&(n.committer=ou(n.committer)),n}withoutSignature(){let t=Un(this._tag);return t.indexOf(` -----BEGIN PGP SIGNATURE-----`)===-1?t:t.slice(0,t.lastIndexOf(` -----BEGIN PGP SIGNATURE-----`))}gpgsig(){if(this._tag.indexOf(` -----BEGIN PGP SIGNATURE-----`)===-1)return;let t=this._tag.slice(this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"),this._tag.indexOf("-----END PGP SIGNATURE-----")+27);return Un(t)}payload(){return this.withoutSignature()+` -`}toObject(){return Buffer.from(this._tag,"utf8")}static async sign(t,r,n){let i=t.payload(),{signature:a}=await r({payload:i,secretKey:n});a=Un(a);let s=i+a;return e.from(s)}};function sp(e){return e.trim().split(` +`}toObject(){return Buffer.from(this._tag,"utf8")}static async sign(t,r,n){let i=t.payload(),{signature:a}=await r({payload:i,secretKey:n});a=Un(a);let s=i+a;return e.from(s)}};function ap(e){return e.trim().split(` `).map(t=>" "+t).join(` `)+` `}function UM(e){return e.split(` `).map(t=>t.replace(/^ /,"")).join(` `)}var tr=class e{constructor(t){if(typeof t=="string")this._commit=t;else if(Buffer.isBuffer(t))this._commit=t.toString("utf8");else if(typeof t=="object")this._commit=e.render(t);else throw new le("invalid type passed to GitCommit constructor")}static fromPayloadSignature({payload:t,signature:r}){let n=e.justHeaders(t),i=e.justMessage(t),a=Un(n+` -gpgsig`+sp(r)+` +gpgsig`+ap(r)+` `+i);return new e(a)}static from(t){return new e(t)}toObject(){return Buffer.from(this._commit,"utf8")}headers(){return this.parseHeaders()}message(){return e.justMessage(this._commit)}parse(){return Object.assign({message:this.message()},this.headers())}static justMessage(t){return Un(t.slice(t.indexOf(` `)+2))}static justHeaders(t){return t.slice(0,t.indexOf(` `))}parseHeaders(){let t=e.justHeaders(this._commit).split(` `),r=[];for(let i of t)i[0]===" "?r[r.length-1]+=` -`+i.slice(1):r.push(i);let n={parent:[]};for(let i of r){let a=i.slice(0,i.indexOf(" ")),s=i.slice(i.indexOf(" ")+1);Array.isArray(n[a])?n[a].push(s):n[a]=s}return n.author&&(n.author=lu(n.author)),n.committer&&(n.committer=lu(n.committer)),n}static renderHeaders(t){let r="";if(t.tree?r+=`tree ${t.tree} +`+i.slice(1):r.push(i);let n={parent:[]};for(let i of r){let a=i.slice(0,i.indexOf(" ")),s=i.slice(i.indexOf(" ")+1);Array.isArray(n[a])?n[a].push(s):n[a]=s}return n.author&&(n.author=ou(n.author)),n.committer&&(n.committer=ou(n.committer)),n}static renderHeaders(t){let r="";if(t.tree?r+=`tree ${t.tree} `:r+=`tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 `,t.parent){if(t.parent.length===void 0)throw new le("commit 'parent' property should be an array");for(let a of t.parent)r+=`parent ${a} -`}let n=t.author;r+=`author ${vp(n)} -`;let i=t.committer||t.author;return r+=`committer ${vp(i)} -`,t.gpgsig&&(r+="gpgsig"+sp(t.gpgsig)),r}static render(t){return e.renderHeaders(t)+` +`}let n=t.author;r+=`author ${gp(n)} +`;let i=t.committer||t.author;return r+=`committer ${gp(i)} +`,t.gpgsig&&(r+="gpgsig"+ap(t.gpgsig)),r}static render(t){return e.renderHeaders(t)+` `+Un(t.message)}render(){return this._commit}withoutSignature(){let t=Un(this._commit);if(t.indexOf(` gpgsig`)===-1)return t;let r=t.slice(0,t.indexOf(` gpgsig`)),n=t.slice(t.indexOf(`-----END PGP SIGNATURE----- `)+28);return Un(r+` `+n)}isolateSignature(){let t=this._commit.slice(this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"),this._commit.indexOf("-----END PGP SIGNATURE-----")+27);return UM(t)}static async sign(t,r,n){let i=t.withoutSignature(),a=e.justMessage(t._commit),{signature:s}=await r({payload:i,secretKey:n});s=Un(s);let c=e.justHeaders(t._commit)+` -gpgsig`+sp(s)+` -`+a;return e.from(c)}};async function ys({fs:e,cache:t,gitdir:r,oid:n}){if(n==="4b825dc642cb6eb9a060e54bf8d69288fbee4904")return{tree:er.from([]),oid:n};let{type:i,object:a}=await qe({fs:e,cache:t,gitdir:r,oid:n});if(i==="tag")return n=hr.from(a).parse().object,ys({fs:e,cache:t,gitdir:r,oid:n});if(i==="commit")return n=tr.from(a).parse().tree,ys({fs:e,cache:t,gitdir:r,oid:n});if(i!=="tree")throw new Gt(n,i,"tree");return{tree:er.from(a),oid:n}}var yp=class{constructor({fs:t,gitdir:r,ref:n,cache:i}){this.fs=t,this.cache=i,this.gitdir=r,this.mapPromise=(async()=>{let s=new Map,o;try{o=await q.resolve({fs:t,gitdir:r,ref:n})}catch(l){l instanceof Ne&&(o="4b825dc642cb6eb9a060e54bf8d69288fbee4904")}let c=await ys({fs:t,cache:this.cache,gitdir:r,oid:o});return c.type="tree",c.mode="40000",s.set(".",c),s})();let a=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(t){let r=t._fullpath,{fs:n,cache:i,gitdir:a}=this,s=await this.mapPromise,o=s.get(r);if(!o)throw new Error(`No obj for ${r}`);let c=o.oid;if(!c)throw new Error(`No oid for obj ${JSON.stringify(o)}`);if(o.type!=="tree")return null;let{type:l,object:u}=await qe({fs:n,cache:i,gitdir:a,oid:c});if(l!==o.type)throw new Gt(c,l,o.type);let f=er.from(u);for(let d of f)s.set($(r,d.path),d);return f.entries().map(d=>$(r,d.path))}async type(t){if(t._type===!1){let r=await this.mapPromise,{type:n}=r.get(t._fullpath);t._type=n}return t._type}async mode(t){if(t._mode===!1){let r=await this.mapPromise,{mode:n}=r.get(t._fullpath);t._mode=n2(parseInt(n,8))}return t._mode}async stat(t){}async content(t){if(t._content===!1){let r=await this.mapPromise,{fs:n,cache:i,gitdir:a}=this,o=r.get(t._fullpath).oid,{type:c,object:l}=await qe({fs:n,cache:i,gitdir:a,oid:o});c!=="blob"?t._content=void 0:t._content=new Uint8Array(l)}return t._content}async oid(t){if(t._oid===!1){let n=(await this.mapPromise).get(t._fullpath);t._oid=n.oid}return t._oid}};function wi({ref:e="HEAD"}={}){let t=Object.create(null);return Object.defineProperty(t,mu,{value:function({fs:r,gitdir:n,cache:i}){return new yp({fs:r,gitdir:n,ref:e,cache:i})}}),Object.freeze(t),t}var wp=class{constructor({fs:t,dir:r,gitdir:n,cache:i}){this.fs=t,this.cache=i,this.dir=r,this.gitdir=n;let a=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(t){let r=t._fullpath,{fs:n,dir:i}=this,a=await n.readdir($(i,r));return a===null?null:a.map(s=>$(r,s))}async type(t){return t._type===!1&&await t.stat(),t._type}async mode(t){return t._mode===!1&&await t.stat(),t._mode}async stat(t){if(t._stat===!1){let{fs:r,dir:n}=this,i=await r.lstat(`${n}/${t._fullpath}`);if(!i)throw new Error(`ENOENT: no such file or directory, lstat '${t._fullpath}'`);let a=i.isDirectory()?"tree":"blob";a==="blob"&&!i.isFile()&&!i.isSymbolicLink()&&(a="special"),t._type=a,i=fs(i),t._mode=i.mode,i.size===-1&&t._actualSize&&(i.size=t._actualSize),t._stat=i}return t._stat}async content(t){if(t._content===!1){let{fs:r,dir:n,gitdir:i}=this;if(await t.type()==="tree")t._content=void 0;else{let s=await(await We.get({fs:r,gitdir:i})).get("core.autocrlf"),o=await r.read(`${n}/${t._fullpath}`,{autocrlf:s});t._actualSize=o.length,t._stat&&t._stat.size===-1&&(t._stat.size=t._actualSize),t._content=new Uint8Array(o)}}return t._content}async oid(t){if(t._oid===!1){let{fs:r,gitdir:n,cache:i}=this,a;await mt.acquire({fs:r,gitdir:n,cache:i},async function(s){let o=s.entriesMap.get(t._fullpath),c=await t.stat(),u=await(await We.get({fs:r,gitdir:n})).get("core.filemode"),f=typeof process!="undefined"?process.platform!=="win32":!0;!o||nu(c,o,u,f)?await t.content()===void 0?a=void 0:(a=await Gn(_i.wrap({type:"blob",object:await t.content()})),o&&a===o.oid&&(!u||c.mode===o.mode)&&nu(c,o,u,f)&&s.insert({filepath:t._fullpath,stats:c,oid:a})):a=o.oid}),t._oid=a}return t._oid}};function vu(){let e=Object.create(null);return Object.defineProperty(e,mu,{value:function({fs:t,dir:r,gitdir:n,cache:i}){return new wp({fs:t,dir:r,gitdir:n,cache:i})}}),Object.freeze(e),e}function GM(e,t){let r=t-e;return Array.from({length:r},(n,i)=>e+i)}var c2=typeof Array.prototype.flat=="undefined"?e=>e.reduce((t,r)=>t.concat(r),[]):e=>e.flat(),bp=class{constructor(){this.value=null}consider(t){t!=null&&(this.value===null?this.value=t:tl,reduce:s=async(c,l)=>{let u=c2(l);return c!==void 0&&u.unshift(c),u},iterate:o=(c,l)=>Promise.all([...l].map(c))}){let c=i.map(h=>h[mu]({fs:e,dir:r,gitdir:n,cache:t})),l=new Array(c.length).fill("."),u=GM(0,c.length),f=async h=>{u.map(v=>{h[v]=h[v]&&new c[v].ConstructEntry(h[v])});let m=(await Promise.all(u.map(v=>h[v]?c[v].readdir(h[v]):[]))).map(v=>v===null?[]:v).map(v=>v[Symbol.iterator]());return{entries:h,children:zM(m)}},d=async h=>{let{entries:p,children:m}=await f(h),v=p.find(b=>b&&b._fullpath)._fullpath,y=await a(v,p);if(y!==null){let b=await o(d,m);return b=b.filter(x=>x!==void 0),s(y,b)}};return d(l)}async function _p(e,t){let r=await e.readdir(t);r==null?await e.rm(t):r.length?await Promise.all(r.map(n=>{let i=$(t,n);return e.lstat(i).then(a=>{if(a)return a.isDirectory()?_p(e,i):e.rm(i)})})).then(()=>e.rmdir(t)):await e.rmdir(t)}function VM(e){return WM(e)&&Uw(e.then)&&Uw(e.catch)}function WM(e){return e&&typeof e=="object"}function Uw(e){return typeof e=="function"}function Gw(e){return VM((r=>{try{return r.readFile().catch(n=>n)}catch(n){return n}})(e))}var zw=["readFile","writeFile","mkdir","rmdir","unlink","stat","lstat","readdir","readlink","symlink"];function Vw(e,t){if(Gw(t))for(let r of zw)e[`_${r}`]=t[r].bind(t);else for(let r of zw)e[`_${r}`]=(0,ru.default)(t[r].bind(t));Gw(t)?t.rm?e._rm=t.rm.bind(t):t.rmdir.length>1?e._rm=t.rmdir.bind(t):e._rm=_p.bind(null,e):t.rm?e._rm=(0,ru.default)(t.rm.bind(t)):t.rmdir.length>2?e._rm=(0,ru.default)(t.rmdir.bind(t)):e._rm=_p.bind(null,e)}var X=class{constructor(t){if(typeof t._original_unwrapped_fs!="undefined")return t;let r=Object.getOwnPropertyDescriptor(t,"promises");r&&r.enumerable?Vw(this,t.promises):Vw(this,t),this._original_unwrapped_fs=t}async exists(t,r={}){try{return await this._stat(t),!0}catch(n){if(n.code==="ENOENT"||n.code==="ENOTDIR")return!1;throw console.log('Unhandled error in "FileSystem.exists()" function',n),n}}async read(t,r={}){try{let n=await this._readFile(t,r);if(r.autocrlf==="true")try{n=new TextDecoder("utf8",{fatal:!0}).decode(n),n=n.replace(/\r\n/g,` -`),n=new TextEncoder().encode(n)}catch(i){}return typeof n!="string"&&(n=Buffer.from(n)),n}catch(n){return null}}async write(t,r,n={}){try{await this._writeFile(t,r,n);return}catch(i){await this.mkdir(ds(t)),await this._writeFile(t,r,n)}}async mkdir(t,r=!1){try{await this._mkdir(t);return}catch(n){if(n===null||n.code==="EEXIST")return;if(r)throw n;if(n.code==="ENOENT"){let i=ds(t);if(i==="."||i==="/"||i===t)throw n;await this.mkdir(i),await this.mkdir(t,!0)}}}async rm(t){try{await this._unlink(t)}catch(r){if(r.code!=="ENOENT")throw r}}async rmdir(t,r){try{r&&r.recursive?await this._rm(t,r):await this._rmdir(t)}catch(n){if(n.code!=="ENOENT")throw n}}async readdir(t){try{let r=await this._readdir(t);return r.sort(pu),r}catch(r){return r.code==="ENOTDIR"?null:[]}}async readdirDeep(t){let r=await this._readdir(t);return(await Promise.all(r.map(async i=>{let a=t+"/"+i;return(await this._stat(a)).isDirectory()?this.readdirDeep(a):a}))).reduce((i,a)=>i.concat(a),[])}async lstat(t){try{return await this._lstat(t)}catch(r){if(r.code==="ENOENT")return null;throw r}}async readlink(t,r={encoding:"buffer"}){try{let n=await this._readlink(t,r);return Buffer.isBuffer(n)?n:Buffer.from(n)}catch(n){if(n.code==="ENOENT")return null;throw n}}async writelink(t,r){return this._symlink(r.toString("utf8"),t)}};function C(e,t){if(t===void 0)throw new Qt(e)}async function cu(e,t){return!e&&!t?!1:e&&!t||!e&&t?!0:!(await e.type()==="tree"&&await t.type()==="tree"||await e.type()===await t.type()&&await e.mode()===await t.mode()&&await e.oid()===await t.oid())}async function qM({fs:e,dir:t,gitdir:r=$(t,".git"),commit:n="HEAD",cache:i={}}){try{C("fs",e),C("dir",t),C("gitdir",r);let a=new X(e),s=[wi({ref:n}),vu(),gu()],o=[];await mt.acquire({fs:a,gitdir:r,cache:i},async function(l){o=l.unmergedPaths});let c=await ws({fs:a,cache:i,dir:t,gitdir:r,trees:s,map:async function(l,[u,f,d]){let h=!await cu(f,d),p=o.includes(l),m=!await cu(d,u);if(h||p)return u?{path:l,mode:await u.mode(),oid:await u.oid(),type:await u.type(),content:await u.content()}:void 0;if(m)return!1;throw new hl(l)}});await mt.acquire({fs:a,gitdir:r,cache:i},async function(l){for(let u of c)if(u!==!1){if(!u){await a.rmdir(`${t}/${u.path}`,{recursive:!0}),l.delete({filepath:u.path});continue}if(u.type==="blob"){let f=new TextDecoder().decode(u.content);await a.write(`${t}/${u.path}`,f,{mode:u.mode}),l.insert({filepath:u.path,oid:u.oid,stage:0})}}})}catch(a){throw a.caller="git.abortMerge",a}}var bs=class{static async isIgnored({fs:t,dir:r,gitdir:n=$(r,".git"),filepath:i}){if(iu(i)===".git")return!0;if(i===".")return!1;let a="",s=$(n,"info","exclude");await t.exists(s)&&(a=await t.read(s,"utf8"));let o=[{gitignore:$(r,".gitignore"),filepath:i}],c=i.split("/").filter(Boolean);for(let u=1;uxp({dir:t,gitdir:r,fs:o,filepath:n,index:c,force:a,parallel:s}))}catch(o){throw o.caller="git.add",o}}async function xp({dir:e,gitdir:t,fs:r,filepath:n,index:i,force:a,parallel:s}){n=Array.isArray(n)?n:[n];let o=n.map(async f=>{if(!a&&await bs.isIgnored({fs:r,dir:e,gitdir:t,filepath:f}))return;let d=await r.lstat($(e,f));if(!d)throw new Ne(f);if(d.isDirectory()){let h=await r.readdir($(e,f));if(s){let p=h.map(m=>xp({dir:e,gitdir:t,fs:r,filepath:[$(f,m)],index:i,force:a,parallel:s}));await Promise.all(p)}else for(let p of h)await xp({dir:e,gitdir:t,fs:r,filepath:[$(f,p)],index:i,force:a,parallel:s})}else{let p=await(await We.get({fs:r,gitdir:t})).get("core.autocrlf"),m=d.isSymbolicLink()?await r.readlink($(e,f)).then(KM):await r.read($(e,f),{autocrlf:p});if(m===null)throw new Ne(f);let v=await pr({fs:r,gitdir:t,type:"blob",object:m});i.insert({filepath:f,stats:d,oid:v})}}),c=await Promise.allSettled(o),l=c.filter(f=>f.status==="rejected").map(f=>f.reason);if(l.length>1)throw new cl(l);if(l.length===1)throw l[0];return c.filter(f=>f.status==="fulfilled"&&f.value).map(f=>f.value)}async function ml({fs:e,gitdir:t,path:r}){return(await We.get({fs:e,gitdir:t})).get(r)}function f2(e,...t){for(let r of t)if(r)for(let n of Object.keys(r)){let i=r[n];i!==void 0&&(e[n]=i)}return e}async function ca({fs:e,gitdir:t,author:r,commit:n}){let i=Math.floor(Date.now()/1e3),a={name:await ml({fs:e,gitdir:t,path:"user.name"}),email:await ml({fs:e,gitdir:t,path:"user.email"})||"",timestamp:i,timezoneOffset:new Date(i*1e3).getTimezoneOffset()},s=f2({},a,n?n.author:void 0,r);if(s.name!==void 0)return s}async function _s({fs:e,gitdir:t,author:r,committer:n,commit:i}){let a=Math.floor(Date.now()/1e3),s={name:await ml({fs:e,gitdir:t,path:"user.name"}),email:await ml({fs:e,gitdir:t,path:"user.email"})||"",timestamp:a,timezoneOffset:new Date(a*1e3).getTimezoneOffset()},o=f2({},s,i?i.committer:void 0,r,n);if(o.name!==void 0)return o}async function d2({fs:e,cache:t,gitdir:r,oid:n}){let{type:i,object:a}=await qe({fs:e,cache:t,gitdir:r,oid:n});if(i==="tag")return n=hr.from(a).parse().object,d2({fs:e,cache:t,gitdir:r,oid:n});if(i!=="commit")throw new Gt(n,i,"commit");return{commit:tr.from(a),oid:n}}async function uu({fs:e,cache:t,gitdir:r,oid:n}){let{commit:i,oid:a}=await d2({fs:e,cache:t,gitdir:r,oid:n});return{oid:a,commit:i.parse(),payload:i.withoutSignature()}}async function yu({fs:e,cache:t,onSign:r,gitdir:n,message:i,author:a,committer:s,signingKey:o,amend:c=!1,dryRun:l=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h}){let p=!1;f||(f=await q.resolve({fs:e,gitdir:n,ref:"HEAD",depth:2}));let m,v;try{m=await q.resolve({fs:e,gitdir:n,ref:f}),v=await uu({fs:e,gitdir:n,oid:m,cache:{}})}catch(x){p=!0}if(c&&p)throw new pl(f);let y=c?await ca({fs:e,gitdir:n,author:a,commit:v.commit}):await ca({fs:e,gitdir:n,author:a});if(!y)throw new zt("author");let b=c?await _s({fs:e,gitdir:n,author:y,committer:s,commit:v.commit}):await _s({fs:e,gitdir:n,author:y,committer:s});if(!b)throw new zt("committer");return mt.acquire({fs:e,gitdir:n,cache:t,allowUnmerged:!1},async function(x){let _=a2(x.entries).get(".");if(h||(h=await h2({fs:e,gitdir:n,inode:_,dryRun:l})),d?d=await Promise.all(d.map(A=>q.resolve({fs:e,gitdir:n,ref:A}))):c?d=v.commit.parent:d=m?[m]:[],!i)if(c)i=v.commit.message;else throw new Qt("message");let k=tr.from({tree:h,parent:d,author:y,committer:b,message:i});o&&(k=await tr.sign(k,r,o));let w=await pr({fs:e,gitdir:n,type:"commit",object:k.toObject(),dryRun:l});return!u&&!l&&await q.writeRef({fs:e,gitdir:n,ref:f,value:w}),w})}async function h2({fs:e,gitdir:t,inode:r,dryRun:n}){let i=r.children;for(let c of i)c.type==="tree"&&(c.metadata.mode="040000",c.metadata.oid=await h2({fs:e,gitdir:t,inode:c,dryRun:n}));let a=i.map(c=>({mode:c.metadata.mode,path:c.basename,oid:c.metadata.oid,type:c.type})),s=er.from(a);return await pr({fs:e,gitdir:t,type:"tree",object:s.toObject(),dryRun:n})}async function vl({fs:e,cache:t,gitdir:r,oid:n,filepath:i}){if(i.startsWith("/"))throw new xi("leading-slash");if(i.endsWith("/"))throw new xi("trailing-slash");let a=n,s=await ys({fs:e,cache:t,gitdir:r,oid:n}),o=s.tree;if(i==="")n=s.oid;else{let c=i.split("/");n=await p2({fs:e,cache:t,gitdir:r,tree:o,pathArray:c,oid:a,filepath:i})}return n}async function p2({fs:e,cache:t,gitdir:r,tree:n,pathArray:i,oid:a,filepath:s}){let o=i.shift();for(let c of n)if(c.path===o){if(i.length===0)return c.oid;{let{type:l,object:u}=await qe({fs:e,cache:t,gitdir:r,oid:c.oid});if(l!=="tree")throw new Gt(a,l,"tree",s);return n=er.from(u),p2({fs:e,cache:t,gitdir:r,tree:n,pathArray:i,oid:a,filepath:s})}}throw new Ne(`file or directory found at "${a}:${s}"`)}async function Es({fs:e,cache:t,gitdir:r,oid:n,filepath:i=void 0}){i!==void 0&&(n=await vl({fs:e,cache:t,gitdir:r,oid:n,filepath:i}));let{tree:a,oid:s}=await ys({fs:e,cache:t,gitdir:r,oid:n});return{oid:s,tree:a.entries()}}async function kp({fs:e,gitdir:t,tree:r}){let n=er.from(r).toObject();return await pr({fs:e,gitdir:t,type:"tree",object:n,format:"content"})}async function QM({fs:e,cache:t,onSign:r,gitdir:n,ref:i,oid:a,note:s,force:o,author:c,committer:l,signingKey:u}){let f;try{f=await q.resolve({gitdir:n,fs:e,ref:i})}catch(y){if(!(y instanceof Ne))throw y}let h=(await Es({fs:e,cache:t,gitdir:n,oid:f||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;if(o)h=h.filter(y=>y.path!==a);else for(let y of h)if(y.path===a)throw new Jr("note",a);typeof s=="string"&&(s=Buffer.from(s,"utf8"));let p=await pr({fs:e,gitdir:n,type:"blob",object:s,format:"content"});h.push({mode:"100644",path:a,oid:p,type:"blob"});let m=await kp({fs:e,gitdir:n,tree:h});return await yu({fs:e,cache:t,onSign:r,gitdir:n,ref:i,tree:m,parent:f&&[f],message:`Note added by 'isomorphic-git addNote' -`,author:c,committer:l,signingKey:u})}async function eO({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),ref:i="refs/notes/commits",oid:a,note:s,force:o,author:c,committer:l,signingKey:u,cache:f={}}){try{C("fs",e),C("gitdir",n),C("oid",a),C("note",s),u&&C("onSign",t);let d=new X(e),h=await ca({fs:d,gitdir:n,author:c});if(!h)throw new zt("author");let p=await _s({fs:d,gitdir:n,author:h,committer:l});if(!p)throw new zt("committer");return await QM({fs:new X(d),cache:f,onSign:t,gitdir:n,ref:i,oid:a,note:s,force:o,author:h,committer:p,signingKey:u})}catch(d){throw d.caller="git.addNote",d}}async function m2({fs:e,gitdir:t,remote:r,url:n,force:i}){if(r!==Kr.default.clean(r))throw new zn(r,Kr.default.clean(r));let a=await We.get({fs:e,gitdir:t});if(!i&&(await a.getSubsections("remote")).includes(r)&&n!==await a.get(`remote.${r}.url`))throw new Jr("remote",r);await a.set(`remote.${r}.url`,n),await a.set(`remote.${r}.fetch`,`+refs/heads/*:refs/remotes/${r}/*`),await We.save({fs:e,gitdir:t,config:a})}async function tO({fs:e,dir:t,gitdir:r=$(t,".git"),remote:n,url:i,force:a=!1}){try{return C("fs",e),C("gitdir",r),C("remote",n),C("url",i),await m2({fs:new X(e),gitdir:r,remote:n,url:i,force:a})}catch(s){throw s.caller="git.addRemote",s}}async function rO({fs:e,cache:t,onSign:r,gitdir:n,ref:i,tagger:a,message:s=i,gpgsig:o,object:c,signingKey:l,force:u=!1}){if(i=i.startsWith("refs/tags/")?i:`refs/tags/${i}`,!u&&await q.exists({fs:e,gitdir:n,ref:i}))throw new Jr("tag",i);let f=await q.resolve({fs:e,gitdir:n,ref:c||"HEAD"}),{type:d}=await qe({fs:e,cache:t,gitdir:n,oid:f}),h=hr.from({object:f,type:d,tag:i.replace("refs/tags/",""),tagger:a,message:s,gpgsig:o});l&&(h=await hr.sign(h,r,l));let p=await pr({fs:e,gitdir:n,type:"tag",object:h.toObject()});await q.writeRef({fs:e,gitdir:n,ref:i,value:p})}async function nO({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),ref:i,tagger:a,message:s=i,gpgsig:o,object:c,signingKey:l,force:u=!1,cache:f={}}){try{C("fs",e),C("gitdir",n),C("ref",i),l&&C("onSign",t);let d=new X(e),h=await ca({fs:d,gitdir:n,author:a});if(!h)throw new zt("tagger");return await rO({fs:d,cache:f,onSign:t,gitdir:n,ref:i,tagger:h,message:s,gpgsig:o,object:c,signingKey:l,force:u})}catch(d){throw d.caller="git.annotatedTag",d}}async function iO({fs:e,gitdir:t,ref:r,object:n,checkout:i=!1,force:a=!1}){if(r!==Kr.default.clean(r))throw new zn(r,Kr.default.clean(r));let s=`refs/heads/${r}`;if(!a&&await q.exists({fs:e,gitdir:t,ref:s}))throw new Jr("branch",r,!1);let o;try{o=await q.resolve({fs:e,gitdir:t,ref:n||"HEAD"})}catch(c){}o&&await q.writeRef({fs:e,gitdir:t,ref:s,value:o}),i&&await q.writeSymbolicRef({fs:e,gitdir:t,ref:"HEAD",value:s})}async function aO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,object:i,checkout:a=!1,force:s=!1}){try{return C("fs",e),C("gitdir",r),C("ref",n),await iO({fs:new X(e),gitdir:r,ref:n,object:i,checkout:a,force:s})}catch(o){throw o.caller="git.branch",o}}var g2=(e,t)=>e==="."||t==null||t.length===0||t==="."?!0:t.length>=e.length?t.startsWith(e):e.startsWith(t);async function Tp({fs:e,cache:t,onProgress:r,onPostCheckout:n,dir:i,gitdir:a,remote:s,ref:o,filepaths:c,noCheckout:l,noUpdateHead:u,dryRun:f,force:d,track:h=!0}){let p;if(n)try{p=await q.resolve({fs:e,gitdir:a,ref:"HEAD"})}catch(v){p="0000000000000000000000000000000000000000"}let m;try{m=await q.resolve({fs:e,gitdir:a,ref:o})}catch(v){if(o==="HEAD")throw v;let y=`${s}/${o}`;if(m=await q.resolve({fs:e,gitdir:a,ref:y}),h){let b=await We.get({fs:e,gitdir:a});await b.set(`branch.${o}.remote`,s),await b.set(`branch.${o}.merge`,`refs/heads/${o}`),await We.save({fs:e,gitdir:a,config:b})}await q.writeRef({fs:e,gitdir:a,ref:`refs/heads/${o}`,value:m})}if(!l){let v;try{v=await sO({fs:e,cache:t,onProgress:r,dir:i,gitdir:a,ref:o,force:d,filepaths:c})}catch(_){throw _ instanceof Ne&&_.data.what===m?new il(o,m):_}let y=v.filter(([_])=>_==="conflict").map(([_,k])=>k);if(y.length>0)throw new nl(y);let b=v.filter(([_])=>_==="error").map(([_,k])=>k);if(b.length>0)throw new le(b.join(", "));if(f){n&&await n({previousHead:p,newHead:m,type:c!=null&&c.length>0?"file":"branch"});return}let x=0,E=v.length;await mt.acquire({fs:e,gitdir:a,cache:t},async function(_){await Promise.all(v.filter(([k])=>k==="delete"||k==="delete-index").map(async function([k,w]){let A=`${i}/${w}`;k==="delete"&&await e.rm(A),_.delete({filepath:w}),r&&await r({phase:"Updating workdir",loaded:++x,total:E})}))}),await mt.acquire({fs:e,gitdir:a,cache:t},async function(_){for(let[k,w]of v)if(k==="rmdir"||k==="rmdir-index"){let A=`${i}/${w}`;try{k==="rmdir-index"&&_.delete({filepath:w}),await e.rmdir(A),r&&await r({phase:"Updating workdir",loaded:++x,total:E})}catch(S){if(S.code==="ENOTEMPTY")console.log(`Did not delete ${w} because directory is not empty`);else throw S}}}),await Promise.all(v.filter(([_])=>_==="mkdir"||_==="mkdir-index").map(async function([_,k]){let w=`${i}/${k}`;await e.mkdir(w),r&&await r({phase:"Updating workdir",loaded:++x,total:E})})),await mt.acquire({fs:e,gitdir:a,cache:t},async function(_){await Promise.all(v.filter(([k])=>k==="create"||k==="create-index"||k==="update"||k==="mkdir-index").map(async function([k,w,A,S,T]){let P=`${i}/${w}`;try{if(k!=="create-index"&&k!=="mkdir-index"){let{object:j}=await qe({fs:e,cache:t,gitdir:a,oid:A});if(T&&await e.rm(P),S===33188)await e.write(P,j);else if(S===33261)await e.write(P,j,{mode:511});else if(S===40960)await e.writelink(P,j);else throw new le(`Invalid mode 0o${S.toString(8)} detected in blob ${A}`)}let O=await e.lstat(P);S===33261&&(O.mode=493),k==="mkdir-index"&&(O.mode=57344),_.insert({filepath:w,stats:O,oid:A}),r&&await r({phase:"Updating workdir",loaded:++x,total:E})}catch(O){console.log(O)}}))}),n&&await n({previousHead:p,newHead:m,type:c!=null&&c.length>0?"file":"branch"})}if(!u){let v=await q.expand({fs:e,gitdir:a,ref:o});v.startsWith("refs/heads")?await q.writeSymbolicRef({fs:e,gitdir:a,ref:"HEAD",value:v}):await q.writeRef({fs:e,gitdir:a,ref:"HEAD",value:m})}}async function sO({fs:e,cache:t,onProgress:r,dir:n,gitdir:i,ref:a,force:s,filepaths:o}){let c=0;return ws({fs:e,cache:t,dir:n,gitdir:i,trees:[wi({ref:a}),vu(),gu()],map:async function(l,[u,f,d]){if(l===".")return;if(o&&!o.some(p=>g2(l,p)))return null;switch(r&&await r({phase:"Analyzing workdir",loaded:++c}),[!!d,!!u,!!f].map(Number).join("")){case"000":return;case"001":return s&&o&&o.includes(l)?["delete",l]:void 0;case"010":switch(await u.type()){case"tree":return["mkdir",l];case"blob":return["create",l,await u.oid(),await u.mode()];case"commit":return["mkdir-index",l,await u.oid(),await u.mode()];default:return["error",`new entry Unhandled type ${await u.type()}`]}case"011":switch(`${await u.type()}-${await f.type()}`){case"tree-tree":return;case"tree-blob":case"blob-tree":return["conflict",l];case"blob-blob":return await u.oid()!==await f.oid()?s?["update",l,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",l]:await u.mode()!==await f.mode()?s?["update",l,await u.oid(),await u.mode(),!0]:["conflict",l]:["create-index",l,await u.oid(),await u.mode()];case"commit-tree":return;case"commit-blob":return["conflict",l];default:return["error",`new entry Unhandled type ${u.type}`]}case"100":return["delete-index",l];case"101":switch(await d.type()){case"tree":return["rmdir",l];case"blob":return await d.oid()!==await f.oid()?s?["delete",l]:["conflict",l]:["delete",l];case"commit":return["rmdir-index",l];default:return["error",`delete entry Unhandled type ${await d.type()}`]}case"110":case"111":switch(`${await d.type()}-${await u.type()}`){case"tree-tree":return;case"blob-blob":{if(await d.oid()===await u.oid()&&await d.mode()===await u.mode()&&!s)return;if(f){if(await f.oid()!==await d.oid()&&await f.oid()!==await u.oid())return s?["update",l,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",l]}else if(s)return["update",l,await u.oid(),await u.mode(),await u.mode()!==await d.mode()];return await u.mode()!==await d.mode()?["update",l,await u.oid(),await u.mode(),!0]:await u.oid()!==await d.oid()?["update",l,await u.oid(),await u.mode(),!1]:void 0}case"tree-blob":return["update-dir-to-blob",l,await u.oid()];case"blob-tree":return["update-blob-to-tree",l];case"commit-commit":return["mkdir-index",l,await u.oid(),await u.mode()];default:return["error",`update entry Unhandled type ${await d.type()}-${await u.type()}`]}}},reduce:async function(l,u){return u=c2(u),l?l&&l[0]==="rmdir"?(u.push(l),u):(u.unshift(l),u):u}})}async function oO({fs:e,onProgress:t,onPostCheckout:r,dir:n,gitdir:i=$(n,".git"),remote:a="origin",ref:s,filepaths:o,noCheckout:c=!1,noUpdateHead:l=s===void 0,dryRun:u=!1,force:f=!1,track:d=!0,cache:h={}}){try{C("fs",e),C("dir",n),C("gitdir",i);let p=s||"HEAD";return await Tp({fs:new X(e),cache:h,onProgress:t,onPostCheckout:r,dir:n,gitdir:i,remote:a,ref:p,filepaths:o,noCheckout:c,noUpdateHead:l,dryRun:u,force:f,track:d})}catch(p){throw p.caller="git.checkout",p}}var lO=new RegExp("^refs/(heads/|tags/|remotes/)?(.*)");function oa(e){let t=lO.exec(e);return t?t[1]==="remotes/"&&e.endsWith("/HEAD")?t[2].slice(0,-5):t[2]:e}async function fa({fs:e,gitdir:t,fullname:r=!1,test:n=!1}){let i=await q.resolve({fs:e,gitdir:t,ref:"HEAD",depth:2});if(n)try{await q.resolve({fs:e,gitdir:t,ref:i})}catch(a){return}if(i.startsWith("refs/"))return r?i:oa(i)}function cO(e){return e=e.replace(/^git@([^:]+):/,"https://$1/"),e=e.replace(/^ssh:\/\//,"https://"),e}function v2({username:e="",password:t=""}){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}async function yl(e,t){let r=o2(e);for(;;){let{value:n,done:i}=await r.next();if(n&&await t(n),i)break}r.return&&r.return()}async function fu(e){let t=0,r=[];await yl(e,a=>{r.push(a),t+=a.byteLength});let n=new Uint8Array(t),i=0;for(let a of r)n.set(a,i),i+=a.byteLength;return n}function Ww(e){let t=e.match(/^https?:\/\/([^/]+)@/);if(t==null)return{url:e,auth:{}};t=t[1];let[r,n]=t.split(":");return e=e.replace(`${t}@`,""),{url:e,auth:{username:r,password:n}}}function Sp(e,t){let r=t.toString(16);return"0".repeat(e-r.length)+r}var Ve=class{static flush(){return Buffer.from("0000","utf8")}static delim(){return Buffer.from("0001","utf8")}static encode(t){typeof t=="string"&&(t=Buffer.from(t));let r=t.length+4,n=Sp(4,r);return Buffer.concat([Buffer.from(n,"utf8"),t])}static streamReader(t){let r=new ou(t);return async function(){try{let i=await r.read(4);if(i==null)return!0;if(i=parseInt(i.toString("utf8"),16),i===0||i===1)return null;let a=await r.read(i-4);return a==null?!0:a}catch(i){return t.error=i,!0}}}};async function qw(e){let t={},r;for(;r=await e(),r!==!0;){if(r===null)continue;r=r.toString("utf8").replace(/\n$/,"");let n=r.indexOf("=");if(n>-1){let i=r.slice(0,n),a=r.slice(n+1);t[i]=a}else t[r]=!0}return{protocolVersion:2,capabilities2:t}}async function Yw(e,{service:t}){let r=new Set,n=new Map,i=new Map,a=Ve.streamReader(e),s=await a();for(;s===null;)s=await a();if(s===!0)throw new al;if(s.includes("version 2"))return qw(a);if(s.toString("utf8").replace(/\n$/,"")!==`# service=${t}`)throw new la(`# service=${t}\\n`,s.toString("utf8"));let o=await a();for(;o===null;)o=await a();if(o===!0)return{capabilities:r,refs:n,symrefs:i};if(o=o.toString("utf8"),o.includes("version 2"))return qw(a);let[c,l]=lp(o,"\0","\\x00");if(l.split(" ").map(u=>r.add(u)),c!=="0000000000000000000000000000000000000000 capabilities^{}"){let[u,f]=lp(c," "," ");for(n.set(f,u);;){let d=await a();if(d===!0)break;if(d!==null){let[h,p]=lp(d.toString("utf8")," "," ");n.set(p,h)}}}for(let u of r)if(u.startsWith("symref=")){let f=u.match(/symref=([^:]+):(.*)/);f.length===3&&i.set(f[1],f[2])}return{protocolVersion:1,capabilities:r,refs:n,symrefs:i}}function lp(e,t,r){let n=e.trim().split(t);if(n.length!==2)throw new la(`Two strings separated by '${r}'`,e.toString("utf8"));return n}var Xw=(e,t)=>e.endsWith("?")?`${e}${t}`:`${e}/${t.replace(/^https?:\/\//,"")}`,Zw=(e,t)=>{(t.username||t.password)&&(e.Authorization=v2(t)),t.headers&&Object.assign(e,t.headers)},cp=async e=>{try{let t=Buffer.from(await fu(e.body)),r=t.toString("utf8");return{preview:r.length<256?r:r.slice(0,256)+"...",response:r,data:t}}catch(t){return{}}},xs=class{static async capabilities(){return["discover","connect"]}static async discover({http:t,onProgress:r,onAuth:n,onAuthSuccess:i,onAuthFailure:a,corsProxy:s,service:o,url:c,headers:l,protocolVersion:u}){let{url:f,auth:d}=Ww(c),h=s?Xw(s,f):f;(d.username||d.password)&&(l.Authorization=v2(d)),u===2&&(l["Git-Protocol"]="version=2");let p,m,v=!1;do if(p=await t.request({onProgress:r,method:"GET",url:`${h}/info/refs?service=${o}`,headers:l}),m=!1,p.statusCode===401||p.statusCode===203){let y=v?a:n;if(y){if(d=await y(f,{...d,headers:{...l}}),d&&d.cancel)throw new vs;d&&(Zw(l,d),v=!0,m=!0)}}else p.statusCode===200&&v&&i&&await i(f,d);while(m);if(p.statusCode!==200){let{response:y}=await cp(p);throw new hs(p.statusCode,p.statusMessage,y)}if(p.headers["content-type"]===`application/x-${o}-advertisement`){let y=await Yw(p.body,{service:o});return y.auth=d,y}else{let{preview:y,response:b,data:x}=await cp(p);try{let E=await Yw([x],{service:o});return E.auth=d,E}catch(E){throw new ul(y,b)}}}static async connect({http:t,onProgress:r,corsProxy:n,service:i,url:a,auth:s,body:o,headers:c}){let l=Ww(a);l&&(a=l.url),n&&(a=Xw(n,a)),c["content-type"]=`application/x-${i}-request`,c.accept=`application/x-${i}-result`,Zw(c,s);let u=await t.request({onProgress:r,method:"POST",url:`${a}/${i}`,body:o,headers:c});if(u.statusCode!==200){let{response:f}=cp(u);throw new hs(u.statusCode,u.statusMessage,f)}return u}};function uO({url:e}){if(e.startsWith("git@"))return{transport:"ssh",address:e};let t=e.match(/(\w+)(:\/\/|::)(.*)/);if(t!==null){if(t[2]==="://")return{transport:t[1],address:t[0]};if(t[2]==="::")return{transport:t[1],address:t[3]}}}var Ss=class{static getRemoteHelperFor({url:t}){let r=new Map;r.set("http",xs),r.set("https",xs);let n=uO({url:t});if(!n)throw new dl(t);if(r.has(n.transport))return r.get(n.transport);throw new fl(t,n.transport,n.transport==="ssh"?cO(t):void 0)}},sa=null,ua=class{static async read({fs:t,gitdir:r}){sa===null&&(sa=new Jo.default);let n=$(r,"shallow"),i=new Set;return await sa.acquire(n,async function(){let a=await t.read(n,{encoding:"utf8"});if(a===null||a.trim()==="")return i;a.trim().split(` +gpgsig`+ap(s)+` +`+a;return e.from(c)}};async function vs({fs:e,cache:t,gitdir:r,oid:n}){if(n==="4b825dc642cb6eb9a060e54bf8d69288fbee4904")return{tree:er.from([]),oid:n};let{type:i,object:a}=await qe({fs:e,cache:t,gitdir:r,oid:n});if(i==="tag")return n=pr.from(a).parse().object,vs({fs:e,cache:t,gitdir:r,oid:n});if(i==="commit")return n=tr.from(a).parse().tree,vs({fs:e,cache:t,gitdir:r,oid:n});if(i!=="tree")throw new Gt(n,i,"tree");return{tree:er.from(a),oid:n}}var vp=class{constructor({fs:t,gitdir:r,ref:n,cache:i}){this.fs=t,this.cache=i,this.gitdir=r,this.mapPromise=(async()=>{let s=new Map,o;try{o=await q.resolve({fs:t,gitdir:r,ref:n})}catch(l){l instanceof Ne&&(o="4b825dc642cb6eb9a060e54bf8d69288fbee4904")}let c=await vs({fs:t,cache:this.cache,gitdir:r,oid:o});return c.type="tree",c.mode="40000",s.set(".",c),s})();let a=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(t){let r=t._fullpath,{fs:n,cache:i,gitdir:a}=this,s=await this.mapPromise,o=s.get(r);if(!o)throw new Error(`No obj for ${r}`);let c=o.oid;if(!c)throw new Error(`No oid for obj ${JSON.stringify(o)}`);if(o.type!=="tree")return null;let{type:l,object:u}=await qe({fs:n,cache:i,gitdir:a,oid:c});if(l!==o.type)throw new Gt(c,l,o.type);let f=er.from(u);for(let d of f)s.set($(r,d.path),d);return f.entries().map(d=>$(r,d.path))}async type(t){if(t._type===!1){let r=await this.mapPromise,{type:n}=r.get(t._fullpath);t._type=n}return t._type}async mode(t){if(t._mode===!1){let r=await this.mapPromise,{mode:n}=r.get(t._fullpath);t._mode=r2(parseInt(n,8))}return t._mode}async stat(t){}async content(t){if(t._content===!1){let r=await this.mapPromise,{fs:n,cache:i,gitdir:a}=this,o=r.get(t._fullpath).oid,{type:c,object:l}=await qe({fs:n,cache:i,gitdir:a,oid:o});c!=="blob"?t._content=void 0:t._content=new Uint8Array(l)}return t._content}async oid(t){if(t._oid===!1){let n=(await this.mapPromise).get(t._fullpath);t._oid=n.oid}return t._oid}};function wi({ref:e="HEAD"}={}){let t=Object.create(null);return Object.defineProperty(t,pu,{value:function({fs:r,gitdir:n,cache:i}){return new vp({fs:r,gitdir:n,ref:e,cache:i})}}),Object.freeze(t),t}var yp=class{constructor({fs:t,dir:r,gitdir:n,cache:i}){this.fs=t,this.cache=i,this.dir=r,this.gitdir=n;let a=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(t){let r=t._fullpath,{fs:n,dir:i}=this,a=await n.readdir($(i,r));return a===null?null:a.map(s=>$(r,s))}async type(t){return t._type===!1&&await t.stat(),t._type}async mode(t){return t._mode===!1&&await t.stat(),t._mode}async stat(t){if(t._stat===!1){let{fs:r,dir:n}=this,i=await r.lstat(`${n}/${t._fullpath}`);if(!i)throw new Error(`ENOENT: no such file or directory, lstat '${t._fullpath}'`);let a=i.isDirectory()?"tree":"blob";a==="blob"&&!i.isFile()&&!i.isSymbolicLink()&&(a="special"),t._type=a,i=us(i),t._mode=i.mode,i.size===-1&&t._actualSize&&(i.size=t._actualSize),t._stat=i}return t._stat}async content(t){if(t._content===!1){let{fs:r,dir:n,gitdir:i}=this;if(await t.type()==="tree")t._content=void 0;else{let s=await(await We.get({fs:r,gitdir:i})).get("core.autocrlf"),o=await r.read(`${n}/${t._fullpath}`,{autocrlf:s});t._actualSize=o.length,t._stat&&t._stat.size===-1&&(t._stat.size=t._actualSize),t._content=new Uint8Array(o)}}return t._content}async oid(t){if(t._oid===!1){let{fs:r,gitdir:n,cache:i}=this,a;await mt.acquire({fs:r,gitdir:n,cache:i},async function(s){let o=s.entriesMap.get(t._fullpath),c=await t.stat(),u=await(await We.get({fs:r,gitdir:n})).get("core.filemode"),f=typeof process!="undefined"?process.platform!=="win32":!0;!o||ru(c,o,u,f)?await t.content()===void 0?a=void 0:(a=await Gn(_i.wrap({type:"blob",object:await t.content()})),o&&a===o.oid&&(!u||c.mode===o.mode)&&ru(c,o,u,f)&&s.insert({filepath:t._fullpath,stats:c,oid:a})):a=o.oid}),t._oid=a}return t._oid}};function gu(){let e=Object.create(null);return Object.defineProperty(e,pu,{value:function({fs:t,dir:r,gitdir:n,cache:i}){return new yp({fs:t,dir:r,gitdir:n,cache:i})}}),Object.freeze(e),e}function GM(e,t){let r=t-e;return Array.from({length:r},(n,i)=>e+i)}var l2=typeof Array.prototype.flat=="undefined"?e=>e.reduce((t,r)=>t.concat(r),[]):e=>e.flat(),wp=class{constructor(){this.value=null}consider(t){t!=null&&(this.value===null?this.value=t:tl,reduce:s=async(c,l)=>{let u=l2(l);return c!==void 0&&u.unshift(c),u},iterate:o=(c,l)=>Promise.all([...l].map(c))}){let c=i.map(h=>h[pu]({fs:e,dir:r,gitdir:n,cache:t})),l=new Array(c.length).fill("."),u=GM(0,c.length),f=async h=>{u.map(v=>{h[v]=h[v]&&new c[v].ConstructEntry(h[v])});let m=(await Promise.all(u.map(v=>h[v]?c[v].readdir(h[v]):[]))).map(v=>v===null?[]:v).map(v=>v[Symbol.iterator]());return{entries:h,children:zM(m)}},d=async h=>{let{entries:p,children:m}=await f(h),v=p.find(b=>b&&b._fullpath)._fullpath,y=await a(v,p);if(y!==null){let b=await o(d,m);return b=b.filter(x=>x!==void 0),s(y,b)}};return d(l)}async function bp(e,t){let r=await e.readdir(t);r==null?await e.rm(t):r.length?await Promise.all(r.map(n=>{let i=$(t,n);return e.lstat(i).then(a=>{if(a)return a.isDirectory()?bp(e,i):e.rm(i)})})).then(()=>e.rmdir(t)):await e.rmdir(t)}function VM(e){return WM(e)&&Hw(e.then)&&Hw(e.catch)}function WM(e){return e&&typeof e=="object"}function Hw(e){return typeof e=="function"}function Uw(e){return VM((r=>{try{return r.readFile().catch(n=>n)}catch(n){return n}})(e))}var Gw=["readFile","writeFile","mkdir","rmdir","unlink","stat","lstat","readdir","readlink","symlink"];function zw(e,t){if(Uw(t))for(let r of Gw)e[`_${r}`]=t[r].bind(t);else for(let r of Gw)e[`_${r}`]=(0,tu.default)(t[r].bind(t));Uw(t)?t.rm?e._rm=t.rm.bind(t):t.rmdir.length>1?e._rm=t.rmdir.bind(t):e._rm=bp.bind(null,e):t.rm?e._rm=(0,tu.default)(t.rm.bind(t)):t.rmdir.length>2?e._rm=(0,tu.default)(t.rmdir.bind(t)):e._rm=bp.bind(null,e)}var X=class{constructor(t){if(typeof t._original_unwrapped_fs!="undefined")return t;let r=Object.getOwnPropertyDescriptor(t,"promises");r&&r.enumerable?zw(this,t.promises):zw(this,t),this._original_unwrapped_fs=t}async exists(t,r={}){try{return await this._stat(t),!0}catch(n){if(n.code==="ENOENT"||n.code==="ENOTDIR")return!1;throw console.log('Unhandled error in "FileSystem.exists()" function',n),n}}async read(t,r={}){try{let n=await this._readFile(t,r);if(r.autocrlf==="true")try{n=new TextDecoder("utf8",{fatal:!0}).decode(n),n=n.replace(/\r\n/g,` +`),n=new TextEncoder().encode(n)}catch(i){}return typeof n!="string"&&(n=Buffer.from(n)),n}catch(n){return null}}async write(t,r,n={}){try{await this._writeFile(t,r,n);return}catch(i){await this.mkdir(fs(t)),await this._writeFile(t,r,n)}}async mkdir(t,r=!1){try{await this._mkdir(t);return}catch(n){if(n===null||n.code==="EEXIST")return;if(r)throw n;if(n.code==="ENOENT"){let i=fs(t);if(i==="."||i==="/"||i===t)throw n;await this.mkdir(i),await this.mkdir(t,!0)}}}async rm(t){try{await this._unlink(t)}catch(r){if(r.code!=="ENOENT")throw r}}async rmdir(t,r){try{r&&r.recursive?await this._rm(t,r):await this._rmdir(t)}catch(n){if(n.code!=="ENOENT")throw n}}async readdir(t){try{let r=await this._readdir(t);return r.sort(hu),r}catch(r){return r.code==="ENOTDIR"?null:[]}}async readdirDeep(t){let r=await this._readdir(t);return(await Promise.all(r.map(async i=>{let a=t+"/"+i;return(await this._stat(a)).isDirectory()?this.readdirDeep(a):a}))).reduce((i,a)=>i.concat(a),[])}async lstat(t){try{return await this._lstat(t)}catch(r){if(r.code==="ENOENT")return null;throw r}}async readlink(t,r={encoding:"buffer"}){try{let n=await this._readlink(t,r);return Buffer.isBuffer(n)?n:Buffer.from(n)}catch(n){if(n.code==="ENOENT")return null;throw n}}async writelink(t,r){return this._symlink(r.toString("utf8"),t)}};function C(e,t){if(t===void 0)throw new Qt(e)}async function lu(e,t){return!e&&!t?!1:e&&!t||!e&&t?!0:!(await e.type()==="tree"&&await t.type()==="tree"||await e.type()===await t.type()&&await e.mode()===await t.mode()&&await e.oid()===await t.oid())}async function qM({fs:e,dir:t,gitdir:r=$(t,".git"),commit:n="HEAD",cache:i={}}){try{C("fs",e),C("dir",t),C("gitdir",r);let a=new X(e),s=[wi({ref:n}),gu(),mu()],o=[];await mt.acquire({fs:a,gitdir:r,cache:i},async function(l){o=l.unmergedPaths});let c=await ys({fs:a,cache:i,dir:t,gitdir:r,trees:s,map:async function(l,[u,f,d]){let h=!await lu(f,d),p=o.includes(l),m=!await lu(d,u);if(h||p)return u?{path:l,mode:await u.mode(),oid:await u.oid(),type:await u.type(),content:await u.content()}:void 0;if(m)return!1;throw new hl(l)}});await mt.acquire({fs:a,gitdir:r,cache:i},async function(l){for(let u of c)if(u!==!1){if(!u){await a.rmdir(`${t}/${u.path}`,{recursive:!0}),l.delete({filepath:u.path});continue}if(u.type==="blob"){let f=new TextDecoder().decode(u.content);await a.write(`${t}/${u.path}`,f,{mode:u.mode}),l.insert({filepath:u.path,oid:u.oid,stage:0})}}})}catch(a){throw a.caller="git.abortMerge",a}}var ws=class{static async isIgnored({fs:t,dir:r,gitdir:n=$(r,".git"),filepath:i}){if(nu(i)===".git")return!0;if(i===".")return!1;let a="",s=$(n,"info","exclude");await t.exists(s)&&(a=await t.read(s,"utf8"));let o=[{gitignore:$(r,".gitignore"),filepath:i}],c=i.split("/").filter(Boolean);for(let u=1;u_p({dir:t,gitdir:r,fs:o,filepath:n,index:c,force:a,parallel:s}))}catch(o){throw o.caller="git.add",o}}async function _p({dir:e,gitdir:t,fs:r,filepath:n,index:i,force:a,parallel:s}){n=Array.isArray(n)?n:[n];let o=n.map(async f=>{if(!a&&await ws.isIgnored({fs:r,dir:e,gitdir:t,filepath:f}))return;let d=await r.lstat($(e,f));if(!d)throw new Ne(f);if(d.isDirectory()){let h=await r.readdir($(e,f));if(s){let p=h.map(m=>_p({dir:e,gitdir:t,fs:r,filepath:[$(f,m)],index:i,force:a,parallel:s}));await Promise.all(p)}else for(let p of h)await _p({dir:e,gitdir:t,fs:r,filepath:[$(f,p)],index:i,force:a,parallel:s})}else{let p=await(await We.get({fs:r,gitdir:t})).get("core.autocrlf"),m=d.isSymbolicLink()?await r.readlink($(e,f)).then(KM):await r.read($(e,f),{autocrlf:p});if(m===null)throw new Ne(f);let v=await mr({fs:r,gitdir:t,type:"blob",object:m});i.insert({filepath:f,stats:d,oid:v})}}),c=await Promise.allSettled(o),l=c.filter(f=>f.status==="rejected").map(f=>f.reason);if(l.length>1)throw new cl(l);if(l.length===1)throw l[0];return c.filter(f=>f.status==="fulfilled"&&f.value).map(f=>f.value)}async function ml({fs:e,gitdir:t,path:r}){return(await We.get({fs:e,gitdir:t})).get(r)}function u2(e,...t){for(let r of t)if(r)for(let n of Object.keys(r)){let i=r[n];i!==void 0&&(e[n]=i)}return e}async function ca({fs:e,gitdir:t,author:r,commit:n}){let i=Math.floor(Date.now()/1e3),a={name:await ml({fs:e,gitdir:t,path:"user.name"}),email:await ml({fs:e,gitdir:t,path:"user.email"})||"",timestamp:i,timezoneOffset:new Date(i*1e3).getTimezoneOffset()},s=u2({},a,n?n.author:void 0,r);if(s.name!==void 0)return s}async function bs({fs:e,gitdir:t,author:r,committer:n,commit:i}){let a=Math.floor(Date.now()/1e3),s={name:await ml({fs:e,gitdir:t,path:"user.name"}),email:await ml({fs:e,gitdir:t,path:"user.email"})||"",timestamp:a,timezoneOffset:new Date(a*1e3).getTimezoneOffset()},o=u2({},s,i?i.committer:void 0,r,n);if(o.name!==void 0)return o}async function f2({fs:e,cache:t,gitdir:r,oid:n}){let{type:i,object:a}=await qe({fs:e,cache:t,gitdir:r,oid:n});if(i==="tag")return n=pr.from(a).parse().object,f2({fs:e,cache:t,gitdir:r,oid:n});if(i!=="commit")throw new Gt(n,i,"commit");return{commit:tr.from(a),oid:n}}async function cu({fs:e,cache:t,gitdir:r,oid:n}){let{commit:i,oid:a}=await f2({fs:e,cache:t,gitdir:r,oid:n});return{oid:a,commit:i.parse(),payload:i.withoutSignature()}}async function vu({fs:e,cache:t,onSign:r,gitdir:n,message:i,author:a,committer:s,signingKey:o,amend:c=!1,dryRun:l=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h}){let p=!1;f||(f=await q.resolve({fs:e,gitdir:n,ref:"HEAD",depth:2}));let m,v;try{m=await q.resolve({fs:e,gitdir:n,ref:f}),v=await cu({fs:e,gitdir:n,oid:m,cache:{}})}catch(x){p=!0}if(c&&p)throw new pl(f);let y=c?await ca({fs:e,gitdir:n,author:a,commit:v.commit}):await ca({fs:e,gitdir:n,author:a});if(!y)throw new zt("author");let b=c?await bs({fs:e,gitdir:n,author:y,committer:s,commit:v.commit}):await bs({fs:e,gitdir:n,author:y,committer:s});if(!b)throw new zt("committer");return mt.acquire({fs:e,gitdir:n,cache:t,allowUnmerged:!1},async function(x){let _=i2(x.entries).get(".");if(h||(h=await d2({fs:e,gitdir:n,inode:_,dryRun:l})),d?d=await Promise.all(d.map(A=>q.resolve({fs:e,gitdir:n,ref:A}))):c?d=v.commit.parent:d=m?[m]:[],!i)if(c)i=v.commit.message;else throw new Qt("message");let k=tr.from({tree:h,parent:d,author:y,committer:b,message:i});o&&(k=await tr.sign(k,r,o));let w=await mr({fs:e,gitdir:n,type:"commit",object:k.toObject(),dryRun:l});return!u&&!l&&await q.writeRef({fs:e,gitdir:n,ref:f,value:w}),w})}async function d2({fs:e,gitdir:t,inode:r,dryRun:n}){let i=r.children;for(let c of i)c.type==="tree"&&(c.metadata.mode="040000",c.metadata.oid=await d2({fs:e,gitdir:t,inode:c,dryRun:n}));let a=i.map(c=>({mode:c.metadata.mode,path:c.basename,oid:c.metadata.oid,type:c.type})),s=er.from(a);return await mr({fs:e,gitdir:t,type:"tree",object:s.toObject(),dryRun:n})}async function vl({fs:e,cache:t,gitdir:r,oid:n,filepath:i}){if(i.startsWith("/"))throw new xi("leading-slash");if(i.endsWith("/"))throw new xi("trailing-slash");let a=n,s=await vs({fs:e,cache:t,gitdir:r,oid:n}),o=s.tree;if(i==="")n=s.oid;else{let c=i.split("/");n=await h2({fs:e,cache:t,gitdir:r,tree:o,pathArray:c,oid:a,filepath:i})}return n}async function h2({fs:e,cache:t,gitdir:r,tree:n,pathArray:i,oid:a,filepath:s}){let o=i.shift();for(let c of n)if(c.path===o){if(i.length===0)return c.oid;{let{type:l,object:u}=await qe({fs:e,cache:t,gitdir:r,oid:c.oid});if(l!=="tree")throw new Gt(a,l,"tree",s);return n=er.from(u),h2({fs:e,cache:t,gitdir:r,tree:n,pathArray:i,oid:a,filepath:s})}}throw new Ne(`file or directory found at "${a}:${s}"`)}async function Ss({fs:e,cache:t,gitdir:r,oid:n,filepath:i=void 0}){i!==void 0&&(n=await vl({fs:e,cache:t,gitdir:r,oid:n,filepath:i}));let{tree:a,oid:s}=await vs({fs:e,cache:t,gitdir:r,oid:n});return{oid:s,tree:a.entries()}}async function Ap({fs:e,gitdir:t,tree:r}){let n=er.from(r).toObject();return await mr({fs:e,gitdir:t,type:"tree",object:n,format:"content"})}async function QM({fs:e,cache:t,onSign:r,gitdir:n,ref:i,oid:a,note:s,force:o,author:c,committer:l,signingKey:u}){let f;try{f=await q.resolve({gitdir:n,fs:e,ref:i})}catch(y){if(!(y instanceof Ne))throw y}let h=(await Ss({fs:e,cache:t,gitdir:n,oid:f||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;if(o)h=h.filter(y=>y.path!==a);else for(let y of h)if(y.path===a)throw new Qr("note",a);typeof s=="string"&&(s=Buffer.from(s,"utf8"));let p=await mr({fs:e,gitdir:n,type:"blob",object:s,format:"content"});h.push({mode:"100644",path:a,oid:p,type:"blob"});let m=await Ap({fs:e,gitdir:n,tree:h});return await vu({fs:e,cache:t,onSign:r,gitdir:n,ref:i,tree:m,parent:f&&[f],message:`Note added by 'isomorphic-git addNote' +`,author:c,committer:l,signingKey:u})}async function eO({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),ref:i="refs/notes/commits",oid:a,note:s,force:o,author:c,committer:l,signingKey:u,cache:f={}}){try{C("fs",e),C("gitdir",n),C("oid",a),C("note",s),u&&C("onSign",t);let d=new X(e),h=await ca({fs:d,gitdir:n,author:c});if(!h)throw new zt("author");let p=await bs({fs:d,gitdir:n,author:h,committer:l});if(!p)throw new zt("committer");return await QM({fs:new X(d),cache:f,onSign:t,gitdir:n,ref:i,oid:a,note:s,force:o,author:h,committer:p,signingKey:u})}catch(d){throw d.caller="git.addNote",d}}async function p2({fs:e,gitdir:t,remote:r,url:n,force:i}){if(r!==Jr.default.clean(r))throw new zn(r,Jr.default.clean(r));let a=await We.get({fs:e,gitdir:t});if(!i&&(await a.getSubsections("remote")).includes(r)&&n!==await a.get(`remote.${r}.url`))throw new Qr("remote",r);await a.set(`remote.${r}.url`,n),await a.set(`remote.${r}.fetch`,`+refs/heads/*:refs/remotes/${r}/*`),await We.save({fs:e,gitdir:t,config:a})}async function tO({fs:e,dir:t,gitdir:r=$(t,".git"),remote:n,url:i,force:a=!1}){try{return C("fs",e),C("gitdir",r),C("remote",n),C("url",i),await p2({fs:new X(e),gitdir:r,remote:n,url:i,force:a})}catch(s){throw s.caller="git.addRemote",s}}async function rO({fs:e,cache:t,onSign:r,gitdir:n,ref:i,tagger:a,message:s=i,gpgsig:o,object:c,signingKey:l,force:u=!1}){if(i=i.startsWith("refs/tags/")?i:`refs/tags/${i}`,!u&&await q.exists({fs:e,gitdir:n,ref:i}))throw new Qr("tag",i);let f=await q.resolve({fs:e,gitdir:n,ref:c||"HEAD"}),{type:d}=await qe({fs:e,cache:t,gitdir:n,oid:f}),h=pr.from({object:f,type:d,tag:i.replace("refs/tags/",""),tagger:a,message:s,gpgsig:o});l&&(h=await pr.sign(h,r,l));let p=await mr({fs:e,gitdir:n,type:"tag",object:h.toObject()});await q.writeRef({fs:e,gitdir:n,ref:i,value:p})}async function nO({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),ref:i,tagger:a,message:s=i,gpgsig:o,object:c,signingKey:l,force:u=!1,cache:f={}}){try{C("fs",e),C("gitdir",n),C("ref",i),l&&C("onSign",t);let d=new X(e),h=await ca({fs:d,gitdir:n,author:a});if(!h)throw new zt("tagger");return await rO({fs:d,cache:f,onSign:t,gitdir:n,ref:i,tagger:h,message:s,gpgsig:o,object:c,signingKey:l,force:u})}catch(d){throw d.caller="git.annotatedTag",d}}async function iO({fs:e,gitdir:t,ref:r,object:n,checkout:i=!1,force:a=!1}){if(r!==Jr.default.clean(r))throw new zn(r,Jr.default.clean(r));let s=`refs/heads/${r}`;if(!a&&await q.exists({fs:e,gitdir:t,ref:s}))throw new Qr("branch",r,!1);let o;try{o=await q.resolve({fs:e,gitdir:t,ref:n||"HEAD"})}catch(c){}o&&await q.writeRef({fs:e,gitdir:t,ref:s,value:o}),i&&await q.writeSymbolicRef({fs:e,gitdir:t,ref:"HEAD",value:s})}async function aO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,object:i,checkout:a=!1,force:s=!1}){try{return C("fs",e),C("gitdir",r),C("ref",n),await iO({fs:new X(e),gitdir:r,ref:n,object:i,checkout:a,force:s})}catch(o){throw o.caller="git.branch",o}}var m2=(e,t)=>e==="."||t==null||t.length===0||t==="."?!0:t.length>=e.length?t.startsWith(e):e.startsWith(t);async function kp({fs:e,cache:t,onProgress:r,onPostCheckout:n,dir:i,gitdir:a,remote:s,ref:o,filepaths:c,noCheckout:l,noUpdateHead:u,dryRun:f,force:d,track:h=!0}){let p;if(n)try{p=await q.resolve({fs:e,gitdir:a,ref:"HEAD"})}catch(v){p="0000000000000000000000000000000000000000"}let m;try{m=await q.resolve({fs:e,gitdir:a,ref:o})}catch(v){if(o==="HEAD")throw v;let y=`${s}/${o}`;if(m=await q.resolve({fs:e,gitdir:a,ref:y}),h){let b=await We.get({fs:e,gitdir:a});await b.set(`branch.${o}.remote`,s),await b.set(`branch.${o}.merge`,`refs/heads/${o}`),await We.save({fs:e,gitdir:a,config:b})}await q.writeRef({fs:e,gitdir:a,ref:`refs/heads/${o}`,value:m})}if(!l){let v;try{v=await sO({fs:e,cache:t,onProgress:r,dir:i,gitdir:a,ref:o,force:d,filepaths:c})}catch(_){throw _ instanceof Ne&&_.data.what===m?new il(o,m):_}let y=v.filter(([_])=>_==="conflict").map(([_,k])=>k);if(y.length>0)throw new nl(y);let b=v.filter(([_])=>_==="error").map(([_,k])=>k);if(b.length>0)throw new le(b.join(", "));if(f){n&&await n({previousHead:p,newHead:m,type:c!=null&&c.length>0?"file":"branch"});return}let x=0,E=v.length;await mt.acquire({fs:e,gitdir:a,cache:t},async function(_){await Promise.all(v.filter(([k])=>k==="delete"||k==="delete-index").map(async function([k,w]){let A=`${i}/${w}`;k==="delete"&&await e.rm(A),_.delete({filepath:w}),r&&await r({phase:"Updating workdir",loaded:++x,total:E})}))}),await mt.acquire({fs:e,gitdir:a,cache:t},async function(_){for(let[k,w]of v)if(k==="rmdir"||k==="rmdir-index"){let A=`${i}/${w}`;try{k==="rmdir-index"&&_.delete({filepath:w}),await e.rmdir(A),r&&await r({phase:"Updating workdir",loaded:++x,total:E})}catch(S){if(S.code==="ENOTEMPTY")console.log(`Did not delete ${w} because directory is not empty`);else throw S}}}),await Promise.all(v.filter(([_])=>_==="mkdir"||_==="mkdir-index").map(async function([_,k]){let w=`${i}/${k}`;await e.mkdir(w),r&&await r({phase:"Updating workdir",loaded:++x,total:E})})),await mt.acquire({fs:e,gitdir:a,cache:t},async function(_){await Promise.all(v.filter(([k])=>k==="create"||k==="create-index"||k==="update"||k==="mkdir-index").map(async function([k,w,A,S,T]){let P=`${i}/${w}`;try{if(k!=="create-index"&&k!=="mkdir-index"){let{object:j}=await qe({fs:e,cache:t,gitdir:a,oid:A});if(T&&await e.rm(P),S===33188)await e.write(P,j);else if(S===33261)await e.write(P,j,{mode:511});else if(S===40960)await e.writelink(P,j);else throw new le(`Invalid mode 0o${S.toString(8)} detected in blob ${A}`)}let O=await e.lstat(P);S===33261&&(O.mode=493),k==="mkdir-index"&&(O.mode=57344),_.insert({filepath:w,stats:O,oid:A}),r&&await r({phase:"Updating workdir",loaded:++x,total:E})}catch(O){console.log(O)}}))}),n&&await n({previousHead:p,newHead:m,type:c!=null&&c.length>0?"file":"branch"})}if(!u){let v=await q.expand({fs:e,gitdir:a,ref:o});v.startsWith("refs/heads")?await q.writeSymbolicRef({fs:e,gitdir:a,ref:"HEAD",value:v}):await q.writeRef({fs:e,gitdir:a,ref:"HEAD",value:m})}}async function sO({fs:e,cache:t,onProgress:r,dir:n,gitdir:i,ref:a,force:s,filepaths:o}){let c=0;return ys({fs:e,cache:t,dir:n,gitdir:i,trees:[wi({ref:a}),gu(),mu()],map:async function(l,[u,f,d]){if(l===".")return;if(o&&!o.some(p=>m2(l,p)))return null;switch(r&&await r({phase:"Analyzing workdir",loaded:++c}),[!!d,!!u,!!f].map(Number).join("")){case"000":return;case"001":return s&&o&&o.includes(l)?["delete",l]:void 0;case"010":switch(await u.type()){case"tree":return["mkdir",l];case"blob":return["create",l,await u.oid(),await u.mode()];case"commit":return["mkdir-index",l,await u.oid(),await u.mode()];default:return["error",`new entry Unhandled type ${await u.type()}`]}case"011":switch(`${await u.type()}-${await f.type()}`){case"tree-tree":return;case"tree-blob":case"blob-tree":return["conflict",l];case"blob-blob":return await u.oid()!==await f.oid()?s?["update",l,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",l]:await u.mode()!==await f.mode()?s?["update",l,await u.oid(),await u.mode(),!0]:["conflict",l]:["create-index",l,await u.oid(),await u.mode()];case"commit-tree":return;case"commit-blob":return["conflict",l];default:return["error",`new entry Unhandled type ${u.type}`]}case"100":return["delete-index",l];case"101":switch(await d.type()){case"tree":return["rmdir",l];case"blob":return await d.oid()!==await f.oid()?s?["delete",l]:["conflict",l]:["delete",l];case"commit":return["rmdir-index",l];default:return["error",`delete entry Unhandled type ${await d.type()}`]}case"110":case"111":switch(`${await d.type()}-${await u.type()}`){case"tree-tree":return;case"blob-blob":{if(await d.oid()===await u.oid()&&await d.mode()===await u.mode()&&!s)return;if(f){if(await f.oid()!==await d.oid()&&await f.oid()!==await u.oid())return s?["update",l,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",l]}else if(s)return["update",l,await u.oid(),await u.mode(),await u.mode()!==await d.mode()];return await u.mode()!==await d.mode()?["update",l,await u.oid(),await u.mode(),!0]:await u.oid()!==await d.oid()?["update",l,await u.oid(),await u.mode(),!1]:void 0}case"tree-blob":return["update-dir-to-blob",l,await u.oid()];case"blob-tree":return["update-blob-to-tree",l];case"commit-commit":return["mkdir-index",l,await u.oid(),await u.mode()];default:return["error",`update entry Unhandled type ${await d.type()}-${await u.type()}`]}}},reduce:async function(l,u){return u=l2(u),l?l&&l[0]==="rmdir"?(u.push(l),u):(u.unshift(l),u):u}})}async function oO({fs:e,onProgress:t,onPostCheckout:r,dir:n,gitdir:i=$(n,".git"),remote:a="origin",ref:s,filepaths:o,noCheckout:c=!1,noUpdateHead:l=s===void 0,dryRun:u=!1,force:f=!1,track:d=!0,cache:h={}}){try{C("fs",e),C("dir",n),C("gitdir",i);let p=s||"HEAD";return await kp({fs:new X(e),cache:h,onProgress:t,onPostCheckout:r,dir:n,gitdir:i,remote:a,ref:p,filepaths:o,noCheckout:c,noUpdateHead:l,dryRun:u,force:f,track:d})}catch(p){throw p.caller="git.checkout",p}}var lO=new RegExp("^refs/(heads/|tags/|remotes/)?(.*)");function oa(e){let t=lO.exec(e);return t?t[1]==="remotes/"&&e.endsWith("/HEAD")?t[2].slice(0,-5):t[2]:e}async function fa({fs:e,gitdir:t,fullname:r=!1,test:n=!1}){let i=await q.resolve({fs:e,gitdir:t,ref:"HEAD",depth:2});if(n)try{await q.resolve({fs:e,gitdir:t,ref:i})}catch(a){return}if(i.startsWith("refs/"))return r?i:oa(i)}function cO(e){return e=e.replace(/^git@([^:]+):/,"https://$1/"),e=e.replace(/^ssh:\/\//,"https://"),e}function g2({username:e="",password:t=""}){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}async function yl(e,t){let r=s2(e);for(;;){let{value:n,done:i}=await r.next();if(n&&await t(n),i)break}r.return&&r.return()}async function uu(e){let t=0,r=[];await yl(e,a=>{r.push(a),t+=a.byteLength});let n=new Uint8Array(t),i=0;for(let a of r)n.set(a,i),i+=a.byteLength;return n}function Vw(e){let t=e.match(/^https?:\/\/([^/]+)@/);if(t==null)return{url:e,auth:{}};t=t[1];let[r,n]=t.split(":");return e=e.replace(`${t}@`,""),{url:e,auth:{username:r,password:n}}}function xp(e,t){let r=t.toString(16);return"0".repeat(e-r.length)+r}var Ve=class{static flush(){return Buffer.from("0000","utf8")}static delim(){return Buffer.from("0001","utf8")}static encode(t){typeof t=="string"&&(t=Buffer.from(t));let r=t.length+4,n=xp(4,r);return Buffer.concat([Buffer.from(n,"utf8"),t])}static streamReader(t){let r=new su(t);return async function(){try{let i=await r.read(4);if(i==null)return!0;if(i=parseInt(i.toString("utf8"),16),i===0||i===1)return null;let a=await r.read(i-4);return a==null?!0:a}catch(i){return t.error=i,!0}}}};async function Ww(e){let t={},r;for(;r=await e(),r!==!0;){if(r===null)continue;r=r.toString("utf8").replace(/\n$/,"");let n=r.indexOf("=");if(n>-1){let i=r.slice(0,n),a=r.slice(n+1);t[i]=a}else t[r]=!0}return{protocolVersion:2,capabilities2:t}}async function qw(e,{service:t}){let r=new Set,n=new Map,i=new Map,a=Ve.streamReader(e),s=await a();for(;s===null;)s=await a();if(s===!0)throw new al;if(s.includes("version 2"))return Ww(a);if(s.toString("utf8").replace(/\n$/,"")!==`# service=${t}`)throw new la(`# service=${t}\\n`,s.toString("utf8"));let o=await a();for(;o===null;)o=await a();if(o===!0)return{capabilities:r,refs:n,symrefs:i};if(o=o.toString("utf8"),o.includes("version 2"))return Ww(a);let[c,l]=op(o,"\0","\\x00");if(l.split(" ").map(u=>r.add(u)),c!=="0000000000000000000000000000000000000000 capabilities^{}"){let[u,f]=op(c," "," ");for(n.set(f,u);;){let d=await a();if(d===!0)break;if(d!==null){let[h,p]=op(d.toString("utf8")," "," ");n.set(p,h)}}}for(let u of r)if(u.startsWith("symref=")){let f=u.match(/symref=([^:]+):(.*)/);f.length===3&&i.set(f[1],f[2])}return{protocolVersion:1,capabilities:r,refs:n,symrefs:i}}function op(e,t,r){let n=e.trim().split(t);if(n.length!==2)throw new la(`Two strings separated by '${r}'`,e.toString("utf8"));return n}var Yw=(e,t)=>e.endsWith("?")?`${e}${t}`:`${e}/${t.replace(/^https?:\/\//,"")}`,Xw=(e,t)=>{(t.username||t.password)&&(e.Authorization=g2(t)),t.headers&&Object.assign(e,t.headers)},lp=async e=>{try{let t=Buffer.from(await uu(e.body)),r=t.toString("utf8");return{preview:r.length<256?r:r.slice(0,256)+"...",response:r,data:t}}catch(t){return{}}},_s=class{static async capabilities(){return["discover","connect"]}static async discover({http:t,onProgress:r,onAuth:n,onAuthSuccess:i,onAuthFailure:a,corsProxy:s,service:o,url:c,headers:l,protocolVersion:u}){let{url:f,auth:d}=Vw(c),h=s?Yw(s,f):f;(d.username||d.password)&&(l.Authorization=g2(d)),u===2&&(l["Git-Protocol"]="version=2");let p,m,v=!1;do if(p=await t.request({onProgress:r,method:"GET",url:`${h}/info/refs?service=${o}`,headers:l}),m=!1,p.statusCode===401||p.statusCode===203){let y=v?a:n;if(y){if(d=await y(f,{...d,headers:{...l}}),d&&d.cancel)throw new gs;d&&(Xw(l,d),v=!0,m=!0)}}else p.statusCode===200&&v&&i&&await i(f,d);while(m);if(p.statusCode!==200){let{response:y}=await lp(p);throw new ds(p.statusCode,p.statusMessage,y)}if(p.headers["content-type"]===`application/x-${o}-advertisement`){let y=await qw(p.body,{service:o});return y.auth=d,y}else{let{preview:y,response:b,data:x}=await lp(p);try{let E=await qw([x],{service:o});return E.auth=d,E}catch(E){throw new ul(y,b)}}}static async connect({http:t,onProgress:r,corsProxy:n,service:i,url:a,auth:s,body:o,headers:c}){let l=Vw(a);l&&(a=l.url),n&&(a=Yw(n,a)),c["content-type"]=`application/x-${i}-request`,c.accept=`application/x-${i}-result`,Xw(c,s);let u=await t.request({onProgress:r,method:"POST",url:`${a}/${i}`,body:o,headers:c});if(u.statusCode!==200){let{response:f}=lp(u);throw new ds(u.statusCode,u.statusMessage,f)}return u}};function uO({url:e}){if(e.startsWith("git@"))return{transport:"ssh",address:e};let t=e.match(/(\w+)(:\/\/|::)(.*)/);if(t!==null){if(t[2]==="://")return{transport:t[1],address:t[0]};if(t[2]==="::")return{transport:t[1],address:t[3]}}}var xs=class{static getRemoteHelperFor({url:t}){let r=new Map;r.set("http",_s),r.set("https",_s);let n=uO({url:t});if(!n)throw new dl(t);if(r.has(n.transport))return r.get(n.transport);throw new fl(t,n.transport,n.transport==="ssh"?cO(t):void 0)}},sa=null,ua=class{static async read({fs:t,gitdir:r}){sa===null&&(sa=new Jo.default);let n=$(r,"shallow"),i=new Set;return await sa.acquire(n,async function(){let a=await t.read(n,{encoding:"utf8"});if(a===null||a.trim()==="")return i;a.trim().split(` `).map(s=>i.add(s))}),i}static async write({fs:t,gitdir:r,oids:n}){sa===null&&(sa=new Jo.default);let i=$(r,"shallow");if(n.size>0){let a=[...n].join(` `)+` -`;await sa.acquire(i,async function(){await t.write(i,a,{encoding:"utf8"})})}else await sa.acquire(i,async function(){await t.rm(i)})}};async function fO({fs:e,gitdir:t,oid:r}){let n=`objects/${r.slice(0,2)}/${r.slice(2)}`;return e.exists(`${t}/${n}`)}async function dO({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:i}){let a=await e.readdir($(r,"objects/pack"));a=a.filter(s=>s.endsWith(".idx"));for(let s of a){let o=`${r}/objects/pack/${s}`,c=await Ap({fs:e,cache:t,filename:o,getExternalRefDelta:i});if(c.error)throw new le(c.error);if(c.offsets.has(n))return!0}return!1}async function Kw({fs:e,cache:t,gitdir:r,oid:n,format:i="content"}){let a=o=>qe({fs:e,cache:t,gitdir:r,oid:o}),s=await fO({fs:e,gitdir:r,oid:n});return s||(s=await dO({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:a})),s}function hO(e){let i="5041434b"+"00000002"+"00000000";return e.slice(0,12).toString("hex")===i}function y2(e,t){let r=e.map(n=>n.split("=",1)[0]);return t.filter(n=>{let i=n.split("=",1)[0];return r.includes(i)})}var wu={name:"isomorphic-git",version:"1.27.1",agent:"git/isomorphic-git@1.27.1"},cs=class{constructor(){this._queue=[]}write(t){if(this._ended)throw Error("You cannot write to a FIFO that has already been ended!");if(this._waiting){let r=this._waiting;this._waiting=null,r({value:t})}else this._queue.push(t)}end(){if(this._ended=!0,this._waiting){let t=this._waiting;this._waiting=null,t({done:!0})}}destroy(t){this.error=t,this.end()}async next(){if(this._queue.length>0)return{value:this._queue.shift()};if(this._ended)return{done:!0};if(this._waiting)throw Error("You cannot call read until the previous call to read has returned!");return new Promise(t=>{this._waiting=t})}};function pO(e){let t=e.indexOf("\r"),r=e.indexOf(` -`);return t===-1&&r===-1?-1:t===-1?r+1:r===-1?t+1:r===t+1?r+1:Math.min(t,r)+1}function w2(e){let t=new cs,r="";return(async()=>(await yl(e,n=>{for(n=n.toString("utf8"),r+=n;;){let i=pO(r);if(i===-1)break;t.write(r.slice(0,i)),r=r.slice(i)}}),r.length>0&&t.write(r),t.end()))(),t}var du=class{static demux(t){let r=Ve.streamReader(t),n=new cs,i=new cs,a=new cs,s=async function(){let o=await r();if(o===null)return s();if(o===!0){n.end(),a.end(),t.error?i.destroy(t.error):i.end();return}switch(o[0]){case 1:{i.write(o.slice(1));break}case 2:{a.write(o.slice(1));break}case 3:{let c=o.slice(1);a.write(c),n.end(),a.end(),i.destroy(new Error(c.toString("utf8")));return}default:n.write(o)}s()};return s(),{packetlines:n,packfile:i,progress:a}}};async function mO(e){let{packetlines:t,packfile:r,progress:n}=du.demux(e),i=[],a=[],s=[],o=!1,c=!1;return new Promise((l,u)=>{yl(t,f=>{let d=f.toString("utf8").trim();if(d.startsWith("shallow")){let h=d.slice(-41).trim();h.length!==40&&u(new bi(h)),i.push(h)}else if(d.startsWith("unshallow")){let h=d.slice(-41).trim();h.length!==40&&u(new bi(h)),a.push(h)}else if(d.startsWith("ACK")){let[,h,p]=d.split(" ");s.push({oid:h,status:p}),p||(c=!0)}else d.startsWith("NAK")?(o=!0,c=!0):(c=!0,o=!0);c&&(e.error?u(e.error):l({shallows:i,unshallows:a,acks:s,nak:o,packfile:r,progress:n}))}).finally(()=>{c||(e.error?u(e.error):l({shallows:i,unshallows:a,acks:s,nak:o,packfile:r,progress:n}))})})}function gO({capabilities:e=[],wants:t=[],haves:r=[],shallows:n=[],depth:i=null,since:a=null,exclude:s=[]}){let o=[];t=[...new Set(t)];let c=` ${e.join(" ")}`;for(let l of t)o.push(Ve.encode(`want ${l}${c} +`;await sa.acquire(i,async function(){await t.write(i,a,{encoding:"utf8"})})}else await sa.acquire(i,async function(){await t.rm(i)})}};async function fO({fs:e,gitdir:t,oid:r}){let n=`objects/${r.slice(0,2)}/${r.slice(2)}`;return e.exists(`${t}/${n}`)}async function dO({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:i}){let a=await e.readdir($(r,"objects/pack"));a=a.filter(s=>s.endsWith(".idx"));for(let s of a){let o=`${r}/objects/pack/${s}`,c=await Ep({fs:e,cache:t,filename:o,getExternalRefDelta:i});if(c.error)throw new le(c.error);if(c.offsets.has(n))return!0}return!1}async function Zw({fs:e,cache:t,gitdir:r,oid:n,format:i="content"}){let a=o=>qe({fs:e,cache:t,gitdir:r,oid:o}),s=await fO({fs:e,gitdir:r,oid:n});return s||(s=await dO({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:a})),s}function hO(e){let i="5041434b"+"00000002"+"00000000";return e.slice(0,12).toString("hex")===i}function v2(e,t){let r=e.map(n=>n.split("=",1)[0]);return t.filter(n=>{let i=n.split("=",1)[0];return r.includes(i)})}var yu={name:"isomorphic-git",version:"1.27.1",agent:"git/isomorphic-git@1.27.1"},ls=class{constructor(){this._queue=[]}write(t){if(this._ended)throw Error("You cannot write to a FIFO that has already been ended!");if(this._waiting){let r=this._waiting;this._waiting=null,r({value:t})}else this._queue.push(t)}end(){if(this._ended=!0,this._waiting){let t=this._waiting;this._waiting=null,t({done:!0})}}destroy(t){this.error=t,this.end()}async next(){if(this._queue.length>0)return{value:this._queue.shift()};if(this._ended)return{done:!0};if(this._waiting)throw Error("You cannot call read until the previous call to read has returned!");return new Promise(t=>{this._waiting=t})}};function pO(e){let t=e.indexOf("\r"),r=e.indexOf(` +`);return t===-1&&r===-1?-1:t===-1?r+1:r===-1?t+1:r===t+1?r+1:Math.min(t,r)+1}function y2(e){let t=new ls,r="";return(async()=>(await yl(e,n=>{for(n=n.toString("utf8"),r+=n;;){let i=pO(r);if(i===-1)break;t.write(r.slice(0,i)),r=r.slice(i)}}),r.length>0&&t.write(r),t.end()))(),t}var fu=class{static demux(t){let r=Ve.streamReader(t),n=new ls,i=new ls,a=new ls,s=async function(){let o=await r();if(o===null)return s();if(o===!0){n.end(),a.end(),t.error?i.destroy(t.error):i.end();return}switch(o[0]){case 1:{i.write(o.slice(1));break}case 2:{a.write(o.slice(1));break}case 3:{let c=o.slice(1);a.write(c),n.end(),a.end(),i.destroy(new Error(c.toString("utf8")));return}default:n.write(o)}s()};return s(),{packetlines:n,packfile:i,progress:a}}};async function mO(e){let{packetlines:t,packfile:r,progress:n}=fu.demux(e),i=[],a=[],s=[],o=!1,c=!1;return new Promise((l,u)=>{yl(t,f=>{let d=f.toString("utf8").trim();if(d.startsWith("shallow")){let h=d.slice(-41).trim();h.length!==40&&u(new bi(h)),i.push(h)}else if(d.startsWith("unshallow")){let h=d.slice(-41).trim();h.length!==40&&u(new bi(h)),a.push(h)}else if(d.startsWith("ACK")){let[,h,p]=d.split(" ");s.push({oid:h,status:p}),p||(c=!0)}else d.startsWith("NAK")?(o=!0,c=!0):(c=!0,o=!0);c&&(e.error?u(e.error):l({shallows:i,unshallows:a,acks:s,nak:o,packfile:r,progress:n}))}).finally(()=>{c||(e.error?u(e.error):l({shallows:i,unshallows:a,acks:s,nak:o,packfile:r,progress:n}))})})}function gO({capabilities:e=[],wants:t=[],haves:r=[],shallows:n=[],depth:i=null,since:a=null,exclude:s=[]}){let o=[];t=[...new Set(t)];let c=` ${e.join(" ")}`;for(let l of t)o.push(Ve.encode(`want ${l}${c} `)),c="";for(let l of n)o.push(Ve.encode(`shallow ${l} `));i!==null&&o.push(Ve.encode(`deepen ${i} `)),a!==null&&o.push(Ve.encode(`deepen-since ${Math.floor(a.valueOf()/1e3)} `));for(let l of s)o.push(Ve.encode(`deepen-not ${l} `));o.push(Ve.flush());for(let l of r)o.push(Ve.encode(`have ${l} `));return o.push(Ve.encode(`done -`)),o}async function Cp({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:c,ref:l,remoteRef:u,remote:f,url:d,corsProxy:h,depth:p=null,since:m=null,exclude:v=[],relative:y=!1,tags:b=!1,singleBranch:x=!1,headers:E={},prune:_=!1,pruneTags:k=!1}){let w=l||await fa({fs:e,gitdir:c,test:!0}),A=await We.get({fs:e,gitdir:c}),S=f||w&&await A.get(`branch.${w}.remote`)||"origin",T=d||await A.get(`remote.${S}.url`);if(typeof T=="undefined")throw new Qt("remote OR url");let P=u||w&&await A.get(`branch.${w}.merge`)||l||"HEAD";h===void 0&&(h=await A.get("http.corsProxy"));let O=Ss.getRemoteHelperFor({url:T}),j=await O.discover({http:r,onAuth:a,onAuthSuccess:s,onAuthFailure:o,corsProxy:h,service:"git-upload-pack",url:T,headers:E,protocolVersion:1}),D=j.auth,Q=j.refs;if(Q.size===0)return{defaultBranch:null,fetchHead:null,fetchHeadDescription:null};if(p!==null&&!j.capabilities.has("shallow"))throw new yi("shallow","depth");if(m!==null&&!j.capabilities.has("deepen-since"))throw new yi("deepen-since","since");if(v.length>0&&!j.capabilities.has("deepen-not"))throw new yi("deepen-not","exclude");if(y===!0&&!j.capabilities.has("deepen-relative"))throw new yi("deepen-relative","relative");let{oid:de,fullref:ee}=q.resolveAgainstMap({ref:P,map:Q});for(let G of Q.keys())G===ee||G==="HEAD"||G.startsWith("refs/heads/")||b&&G.startsWith("refs/tags/")||Q.delete(G);let J=y2([...j.capabilities],["multi_ack_detailed","no-done","side-band-64k","ofs-delta",`agent=${wu.agent}`]);y&&J.push("deepen-relative");let Pe=x?[de]:Q.values(),me=x?[w]:await q.listRefs({fs:e,gitdir:c,filepath:"refs"}),F=[];for(let G of me)try{G=await q.expand({fs:e,gitdir:c,ref:G});let Le=await q.resolve({fs:e,gitdir:c,ref:G});await Kw({fs:e,cache:t,gitdir:c,oid:Le})&&F.push(Le)}catch(Le){}F=[...new Set(F)];let z=await ua.read({fs:e,gitdir:c}),N=j.capabilities.has("shallow")?[...z]:[],Me=gO({capabilities:J,wants:Pe,haves:F,shallows:N,depth:p,since:m,exclude:v}),Dt=Buffer.from(await fu(Me)),_t=await O.connect({http:r,onProgress:n,corsProxy:h,service:"git-upload-pack",url:T,auth:D,body:[Dt],headers:E}),Ee=await mO(_t.body);_t.headers&&(Ee.headers=_t.headers);for(let G of Ee.shallows)if(!z.has(G))try{let{object:Le}=await qe({fs:e,cache:t,gitdir:c,oid:G}),L=new tr(Le),Y=await Promise.all(L.headers().parent.map(De=>Kw({fs:e,cache:t,gitdir:c,oid:De})));Y.length===0||Y.every(De=>De)||z.add(G)}catch(Le){z.add(G)}for(let G of Ee.unshallows)z.delete(G);if(await ua.write({fs:e,gitdir:c,oids:z}),x){let G=new Map([[ee,de]]),Le=new Map,L=10,Y=ee;for(;L--;){let vt=j.symrefs.get(Y);if(vt===void 0)break;Le.set(Y,vt),Y=vt}let ye=Q.get(Y);ye&&G.set(Y,ye);let{pruned:De}=await q.updateRemoteRefs({fs:e,gitdir:c,remote:S,refs:G,symrefs:Le,tags:b,prune:_});_&&(Ee.pruned=De)}else{let{pruned:G}=await q.updateRemoteRefs({fs:e,gitdir:c,remote:S,refs:Q,symrefs:j.symrefs,tags:b,prune:_,pruneTags:k});_&&(Ee.pruned=G)}if(Ee.HEAD=j.symrefs.get("HEAD"),Ee.HEAD===void 0){let{oid:G}=q.resolveAgainstMap({ref:"HEAD",map:Q});for(let[Le,L]of Q.entries())if(Le!=="HEAD"&&L===G){Ee.HEAD=Le;break}}let st=ee.startsWith("refs/tags")?"tag":"branch";if(Ee.FETCH_HEAD={oid:de,description:`${st} '${oa(ee)}' of ${T}`},n||i){let G=w2(Ee.progress);yl(G,async Le=>{if(i&&await i(Le),n){let L=Le.match(/([^:]*).*\((\d+?)\/(\d+?)\)/);L&&await n({phase:L[1].trim(),loaded:parseInt(L[2],10),total:parseInt(L[3],10)})}})}let ot=Buffer.from(await fu(Ee.packfile));if(_t.body.error)throw _t.body.error;let Ct=ot.slice(-20).toString("hex"),$e={defaultBranch:Ee.HEAD,fetchHead:Ee.FETCH_HEAD.oid,fetchHeadDescription:Ee.FETCH_HEAD.description};if(Ee.headers&&($e.headers=Ee.headers),_&&($e.pruned=Ee.pruned),Ct!==""&&!hO(ot)){$e.packfile=`objects/pack/pack-${Ct}.pack`;let G=$(c,$e.packfile);await e.write(G,ot);let Le=Y=>qe({fs:e,cache:t,gitdir:c,oid:Y}),L=await tl.fromPack({pack:ot,getExternalRefDelta:Le,onProgress:n});await e.write(G.replace(/\.pack$/,".idx"),await L.toBuffer())}return $e}async function b2({fs:e,bare:t=!1,dir:r,gitdir:n=t?r:$(r,".git"),defaultBranch:i="master"}){if(await e.exists(n+"/config"))return;let a=["hooks","info","objects/info","objects/pack","refs/heads","refs/tags"];a=a.map(s=>n+"/"+s);for(let s of a)await e.mkdir(s);await e.write(n+"/config",`[core] +`)),o}async function Tp({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:c,ref:l,remoteRef:u,remote:f,url:d,corsProxy:h,depth:p=null,since:m=null,exclude:v=[],relative:y=!1,tags:b=!1,singleBranch:x=!1,headers:E={},prune:_=!1,pruneTags:k=!1}){let w=l||await fa({fs:e,gitdir:c,test:!0}),A=await We.get({fs:e,gitdir:c}),S=f||w&&await A.get(`branch.${w}.remote`)||"origin",T=d||await A.get(`remote.${S}.url`);if(typeof T=="undefined")throw new Qt("remote OR url");let P=u||w&&await A.get(`branch.${w}.merge`)||l||"HEAD";h===void 0&&(h=await A.get("http.corsProxy"));let O=xs.getRemoteHelperFor({url:T}),j=await O.discover({http:r,onAuth:a,onAuthSuccess:s,onAuthFailure:o,corsProxy:h,service:"git-upload-pack",url:T,headers:E,protocolVersion:1}),D=j.auth,Q=j.refs;if(Q.size===0)return{defaultBranch:null,fetchHead:null,fetchHeadDescription:null};if(p!==null&&!j.capabilities.has("shallow"))throw new yi("shallow","depth");if(m!==null&&!j.capabilities.has("deepen-since"))throw new yi("deepen-since","since");if(v.length>0&&!j.capabilities.has("deepen-not"))throw new yi("deepen-not","exclude");if(y===!0&&!j.capabilities.has("deepen-relative"))throw new yi("deepen-relative","relative");let{oid:de,fullref:ee}=q.resolveAgainstMap({ref:P,map:Q});for(let U of Q.keys())U===ee||U==="HEAD"||U.startsWith("refs/heads/")||b&&U.startsWith("refs/tags/")||Q.delete(U);let J=v2([...j.capabilities],["multi_ack_detailed","no-done","side-band-64k","ofs-delta",`agent=${yu.agent}`]);y&&J.push("deepen-relative");let Pe=x?[de]:Q.values(),me=x?[w]:await q.listRefs({fs:e,gitdir:c,filepath:"refs"}),F=[];for(let U of me)try{U=await q.expand({fs:e,gitdir:c,ref:U});let Le=await q.resolve({fs:e,gitdir:c,ref:U});await Zw({fs:e,cache:t,gitdir:c,oid:Le})&&F.push(Le)}catch(Le){}F=[...new Set(F)];let G=await ua.read({fs:e,gitdir:c}),N=j.capabilities.has("shallow")?[...G]:[],Me=gO({capabilities:J,wants:Pe,haves:F,shallows:N,depth:p,since:m,exclude:v}),Dt=Buffer.from(await uu(Me)),_t=await O.connect({http:r,onProgress:n,corsProxy:h,service:"git-upload-pack",url:T,auth:D,body:[Dt],headers:E}),Ee=await mO(_t.body);_t.headers&&(Ee.headers=_t.headers);for(let U of Ee.shallows)if(!G.has(U))try{let{object:Le}=await qe({fs:e,cache:t,gitdir:c,oid:U}),L=new tr(Le),Y=await Promise.all(L.headers().parent.map(De=>Zw({fs:e,cache:t,gitdir:c,oid:De})));Y.length===0||Y.every(De=>De)||G.add(U)}catch(Le){G.add(U)}for(let U of Ee.unshallows)G.delete(U);if(await ua.write({fs:e,gitdir:c,oids:G}),x){let U=new Map([[ee,de]]),Le=new Map,L=10,Y=ee;for(;L--;){let vt=j.symrefs.get(Y);if(vt===void 0)break;Le.set(Y,vt),Y=vt}let ye=Q.get(Y);ye&&U.set(Y,ye);let{pruned:De}=await q.updateRemoteRefs({fs:e,gitdir:c,remote:S,refs:U,symrefs:Le,tags:b,prune:_});_&&(Ee.pruned=De)}else{let{pruned:U}=await q.updateRemoteRefs({fs:e,gitdir:c,remote:S,refs:Q,symrefs:j.symrefs,tags:b,prune:_,pruneTags:k});_&&(Ee.pruned=U)}if(Ee.HEAD=j.symrefs.get("HEAD"),Ee.HEAD===void 0){let{oid:U}=q.resolveAgainstMap({ref:"HEAD",map:Q});for(let[Le,L]of Q.entries())if(Le!=="HEAD"&&L===U){Ee.HEAD=Le;break}}let st=ee.startsWith("refs/tags")?"tag":"branch";if(Ee.FETCH_HEAD={oid:de,description:`${st} '${oa(ee)}' of ${T}`},n||i){let U=y2(Ee.progress);yl(U,async Le=>{if(i&&await i(Le),n){let L=Le.match(/([^:]*).*\((\d+?)\/(\d+?)\)/);L&&await n({phase:L[1].trim(),loaded:parseInt(L[2],10),total:parseInt(L[3],10)})}})}let ot=Buffer.from(await uu(Ee.packfile));if(_t.body.error)throw _t.body.error;let Ct=ot.slice(-20).toString("hex"),$e={defaultBranch:Ee.HEAD,fetchHead:Ee.FETCH_HEAD.oid,fetchHeadDescription:Ee.FETCH_HEAD.description};if(Ee.headers&&($e.headers=Ee.headers),_&&($e.pruned=Ee.pruned),Ct!==""&&!hO(ot)){$e.packfile=`objects/pack/pack-${Ct}.pack`;let U=$(c,$e.packfile);await e.write(U,ot);let Le=Y=>qe({fs:e,cache:t,gitdir:c,oid:Y}),L=await tl.fromPack({pack:ot,getExternalRefDelta:Le,onProgress:n});await e.write(U.replace(/\.pack$/,".idx"),await L.toBuffer())}return $e}async function w2({fs:e,bare:t=!1,dir:r,gitdir:n=t?r:$(r,".git"),defaultBranch:i="master"}){if(await e.exists(n+"/config"))return;let a=["hooks","info","objects/info","objects/pack","refs/heads","refs/tags"];a=a.map(s=>n+"/"+s);for(let s of a)await e.mkdir(s);await e.write(n+"/config",`[core] repositoryformatversion = 0 filemode = false bare = ${t} @@ -87,21 +87,21 @@ gpgsig`+sp(s)+` `)+` symlinks = false ignorecase = true `),await e.write(n+"/HEAD",`ref: refs/heads/${i} -`)}async function vO({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,onPostCheckout:c,dir:l,gitdir:u,url:f,corsProxy:d,ref:h,remote:p,depth:m,since:v,exclude:y,relative:b,singleBranch:x,noCheckout:E,noTags:_,headers:k}){try{if(await b2({fs:e,gitdir:u}),await m2({fs:e,gitdir:u,remote:p,url:f,force:!1}),d){let S=await We.get({fs:e,gitdir:u});await S.set("http.corsProxy",d),await We.save({fs:e,gitdir:u,config:S})}let{defaultBranch:w,fetchHead:A}=await Cp({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:u,ref:h,remote:p,corsProxy:d,depth:m,since:v,exclude:y,relative:b,singleBranch:x,headers:k,tags:!_});if(A===null)return;h=h||w,h=h.replace("refs/heads/",""),await Tp({fs:e,cache:t,onProgress:n,onPostCheckout:c,dir:l,gitdir:u,ref:h,remote:p,noCheckout:E})}catch(w){throw await e.rmdir(u,{recursive:!0,maxRetries:10}).catch(()=>{}),w}}async function yO({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPostCheckout:o,dir:c,gitdir:l=$(c,".git"),url:u,corsProxy:f=void 0,ref:d=void 0,remote:h="origin",depth:p=void 0,since:m=void 0,exclude:v=[],relative:y=!1,singleBranch:b=!1,noCheckout:x=!1,noTags:E=!1,headers:_={},cache:k={}}){try{return C("fs",e),C("http",t),C("gitdir",l),x||C("dir",c),C("url",u),await vO({fs:new X(e),cache:k,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPostCheckout:o,dir:c,gitdir:l,url:u,corsProxy:f,ref:d,remote:h,depth:p,since:m,exclude:v,relative:y,singleBranch:b,noCheckout:x,noTags:E,headers:_})}catch(w){throw w.caller="git.clone",w}}async function wO({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),message:i,author:a,committer:s,signingKey:o,amend:c=!1,dryRun:l=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h,cache:p={}}){try{C("fs",e),c||C("message",i),o&&C("onSign",t);let m=new X(e);return await yu({fs:m,cache:p,onSign:t,gitdir:n,message:i,author:a,committer:s,signingKey:o,amend:c,dryRun:l,noUpdateBranch:u,ref:f,parent:d,tree:h})}catch(m){throw m.caller="git.commit",m}}async function bO({fs:e,dir:t,gitdir:r=$(t,".git"),fullname:n=!1,test:i=!1}){try{return C("fs",e),C("gitdir",r),await fa({fs:new X(e),gitdir:r,fullname:n,test:i})}catch(a){throw a.caller="git.currentBranch",a}}async function _O({fs:e,gitdir:t,ref:r}){if(r=r.startsWith("refs/heads/")?r:`refs/heads/${r}`,!await q.exists({fs:e,gitdir:t,ref:r}))throw new Ne(r);let i=await q.expand({fs:e,gitdir:t,ref:r}),a=await fa({fs:e,gitdir:t,fullname:!0});if(i===a){let c=await q.resolve({fs:e,gitdir:t,ref:i});await q.writeRef({fs:e,gitdir:t,ref:"HEAD",value:c})}await q.deleteRef({fs:e,gitdir:t,ref:i});let s=oa(r),o=await We.get({fs:e,gitdir:t});await o.deleteSection("branch",s),await We.save({fs:e,gitdir:t,config:o})}async function xO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n}){try{return C("fs",e),C("ref",n),await _O({fs:new X(e),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteBranch",i}}async function SO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n}){try{C("fs",e),C("ref",n),await q.deleteRef({fs:new X(e),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteRef",i}}async function EO({fs:e,gitdir:t,remote:r}){let n=await We.get({fs:e,gitdir:t});await n.deleteSection("remote",r),await We.save({fs:e,gitdir:t,config:n})}async function AO({fs:e,dir:t,gitdir:r=$(t,".git"),remote:n}){try{return C("fs",e),C("remote",n),await EO({fs:new X(e),gitdir:r,remote:n})}catch(i){throw i.caller="git.deleteRemote",i}}async function kO({fs:e,gitdir:t,ref:r}){r=r.startsWith("refs/tags/")?r:`refs/tags/${r}`,await q.deleteRef({fs:e,gitdir:t,ref:r})}async function TO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n}){try{return C("fs",e),C("ref",n),await kO({fs:new X(e),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteTag",i}}async function CO({fs:e,gitdir:t,oid:r}){let n=r.slice(0,2);return(await e.readdir(`${t}/objects/${n}`)).map(a=>`${n}${a}`).filter(a=>a.startsWith(r))}async function PO({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:i}){let a=[],s=await e.readdir($(r,"objects/pack"));s=s.filter(o=>o.endsWith(".idx"));for(let o of s){let c=`${r}/objects/pack/${o}`,l=await Ap({fs:e,cache:t,filename:c,getExternalRefDelta:i});if(l.error)throw new le(l.error);for(let u of l.offsets.keys())u.startsWith(n)&&a.push(u)}return a}async function RO({fs:e,cache:t,gitdir:r,oid:n}){let i=o=>qe({fs:e,cache:t,gitdir:r,oid:o}),a=await CO({fs:e,gitdir:r,oid:n}),s=await PO({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:i});for(let o of s)a.indexOf(o)===-1&&a.push(o);if(a.length===1)return a[0];throw a.length>1?new rl("oids",n,a):new Ne(`an object matching "${n}"`)}async function MO({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await RO({fs:new X(e),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.expandOid",a}}async function OO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n}){try{return C("fs",e),C("gitdir",r),C("ref",n),await q.expand({fs:new X(e),gitdir:r,ref:n})}catch(i){throw i.caller="git.expandRef",i}}async function Pp({fs:e,cache:t,gitdir:r,oids:n}){let i={},a=n.length,s=n.map((o,c)=>({index:c,oid:o}));for(;s.length;){let o=new Set;for(let{oid:l,index:u}of s)i[l]||(i[l]=new Set),i[l].add(u),i[l].size===a&&o.add(l);if(o.size>0)return[...o];let c=new Map;for(let{oid:l,index:u}of s)try{let{object:f}=await qe({fs:e,cache:t,gitdir:r,oid:l}),d=tr.from(f),{parent:h}=d.parseHeaders();for(let p of h)(!i[p]||!i[p].has(u))&&c.set(p+":"+u,{oid:p,index:u})}catch(f){}s=Array.from(c.values())}return[]}var up=/^.*(\r?\n|$)/gm;function IO({branches:e,contents:t}){let r=e[1],n=e[2],i=t[0],a=t[1],s=t[2],o=a.match(up),c=i.match(up),l=s.match(up),u=(0,t2.default)(o,c,l),f=7,d="",h=!0;for(let p of u)p.ok&&(d+=p.ok.join("")),p.conflict&&(h=!1,d+=`${"<".repeat(f)} ${r} +`)}async function vO({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,onPostCheckout:c,dir:l,gitdir:u,url:f,corsProxy:d,ref:h,remote:p,depth:m,since:v,exclude:y,relative:b,singleBranch:x,noCheckout:E,noTags:_,headers:k}){try{if(await w2({fs:e,gitdir:u}),await p2({fs:e,gitdir:u,remote:p,url:f,force:!1}),d){let S=await We.get({fs:e,gitdir:u});await S.set("http.corsProxy",d),await We.save({fs:e,gitdir:u,config:S})}let{defaultBranch:w,fetchHead:A}=await Tp({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:u,ref:h,remote:p,corsProxy:d,depth:m,since:v,exclude:y,relative:b,singleBranch:x,headers:k,tags:!_});if(A===null)return;h=h||w,h=h.replace("refs/heads/",""),await kp({fs:e,cache:t,onProgress:n,onPostCheckout:c,dir:l,gitdir:u,ref:h,remote:p,noCheckout:E})}catch(w){throw await e.rmdir(u,{recursive:!0,maxRetries:10}).catch(()=>{}),w}}async function yO({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPostCheckout:o,dir:c,gitdir:l=$(c,".git"),url:u,corsProxy:f=void 0,ref:d=void 0,remote:h="origin",depth:p=void 0,since:m=void 0,exclude:v=[],relative:y=!1,singleBranch:b=!1,noCheckout:x=!1,noTags:E=!1,headers:_={},cache:k={}}){try{return C("fs",e),C("http",t),C("gitdir",l),x||C("dir",c),C("url",u),await vO({fs:new X(e),cache:k,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPostCheckout:o,dir:c,gitdir:l,url:u,corsProxy:f,ref:d,remote:h,depth:p,since:m,exclude:v,relative:y,singleBranch:b,noCheckout:x,noTags:E,headers:_})}catch(w){throw w.caller="git.clone",w}}async function wO({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),message:i,author:a,committer:s,signingKey:o,amend:c=!1,dryRun:l=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h,cache:p={}}){try{C("fs",e),c||C("message",i),o&&C("onSign",t);let m=new X(e);return await vu({fs:m,cache:p,onSign:t,gitdir:n,message:i,author:a,committer:s,signingKey:o,amend:c,dryRun:l,noUpdateBranch:u,ref:f,parent:d,tree:h})}catch(m){throw m.caller="git.commit",m}}async function bO({fs:e,dir:t,gitdir:r=$(t,".git"),fullname:n=!1,test:i=!1}){try{return C("fs",e),C("gitdir",r),await fa({fs:new X(e),gitdir:r,fullname:n,test:i})}catch(a){throw a.caller="git.currentBranch",a}}async function _O({fs:e,gitdir:t,ref:r}){if(r=r.startsWith("refs/heads/")?r:`refs/heads/${r}`,!await q.exists({fs:e,gitdir:t,ref:r}))throw new Ne(r);let i=await q.expand({fs:e,gitdir:t,ref:r}),a=await fa({fs:e,gitdir:t,fullname:!0});if(i===a){let c=await q.resolve({fs:e,gitdir:t,ref:i});await q.writeRef({fs:e,gitdir:t,ref:"HEAD",value:c})}await q.deleteRef({fs:e,gitdir:t,ref:i});let s=oa(r),o=await We.get({fs:e,gitdir:t});await o.deleteSection("branch",s),await We.save({fs:e,gitdir:t,config:o})}async function xO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n}){try{return C("fs",e),C("ref",n),await _O({fs:new X(e),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteBranch",i}}async function SO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n}){try{C("fs",e),C("ref",n),await q.deleteRef({fs:new X(e),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteRef",i}}async function EO({fs:e,gitdir:t,remote:r}){let n=await We.get({fs:e,gitdir:t});await n.deleteSection("remote",r),await We.save({fs:e,gitdir:t,config:n})}async function AO({fs:e,dir:t,gitdir:r=$(t,".git"),remote:n}){try{return C("fs",e),C("remote",n),await EO({fs:new X(e),gitdir:r,remote:n})}catch(i){throw i.caller="git.deleteRemote",i}}async function kO({fs:e,gitdir:t,ref:r}){r=r.startsWith("refs/tags/")?r:`refs/tags/${r}`,await q.deleteRef({fs:e,gitdir:t,ref:r})}async function TO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n}){try{return C("fs",e),C("ref",n),await kO({fs:new X(e),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteTag",i}}async function CO({fs:e,gitdir:t,oid:r}){let n=r.slice(0,2);return(await e.readdir(`${t}/objects/${n}`)).map(a=>`${n}${a}`).filter(a=>a.startsWith(r))}async function PO({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:i}){let a=[],s=await e.readdir($(r,"objects/pack"));s=s.filter(o=>o.endsWith(".idx"));for(let o of s){let c=`${r}/objects/pack/${o}`,l=await Ep({fs:e,cache:t,filename:c,getExternalRefDelta:i});if(l.error)throw new le(l.error);for(let u of l.offsets.keys())u.startsWith(n)&&a.push(u)}return a}async function RO({fs:e,cache:t,gitdir:r,oid:n}){let i=o=>qe({fs:e,cache:t,gitdir:r,oid:o}),a=await CO({fs:e,gitdir:r,oid:n}),s=await PO({fs:e,cache:t,gitdir:r,oid:n,getExternalRefDelta:i});for(let o of s)a.indexOf(o)===-1&&a.push(o);if(a.length===1)return a[0];throw a.length>1?new rl("oids",n,a):new Ne(`an object matching "${n}"`)}async function MO({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await RO({fs:new X(e),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.expandOid",a}}async function OO({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n}){try{return C("fs",e),C("gitdir",r),C("ref",n),await q.expand({fs:new X(e),gitdir:r,ref:n})}catch(i){throw i.caller="git.expandRef",i}}async function Cp({fs:e,cache:t,gitdir:r,oids:n}){let i={},a=n.length,s=n.map((o,c)=>({index:c,oid:o}));for(;s.length;){let o=new Set;for(let{oid:l,index:u}of s)i[l]||(i[l]=new Set),i[l].add(u),i[l].size===a&&o.add(l);if(o.size>0)return[...o];let c=new Map;for(let{oid:l,index:u}of s)try{let{object:f}=await qe({fs:e,cache:t,gitdir:r,oid:l}),d=tr.from(f),{parent:h}=d.parseHeaders();for(let p of h)(!i[p]||!i[p].has(u))&&c.set(p+":"+u,{oid:p,index:u})}catch(f){}s=Array.from(c.values())}return[]}var cp=/^.*(\r?\n|$)/gm;function IO({branches:e,contents:t}){let r=e[1],n=e[2],i=t[0],a=t[1],s=t[2],o=a.match(cp),c=i.match(cp),l=s.match(cp),u=(0,e2.default)(o,c,l),f=7,d="",h=!0;for(let p of u)p.ok&&(d+=p.ok.join("")),p.conflict&&(h=!1,d+=`${"<".repeat(f)} ${r} `,d+=p.conflict.a.join(""),d+=`${"=".repeat(f)} `,d+=p.conflict.b.join(""),d+=`${">".repeat(f)} ${n} -`);return{cleanMerge:h,mergedText:d}}async function FO({fs:e,cache:t,dir:r,gitdir:n=$(r,".git"),index:i,ourOid:a,baseOid:s,theirOid:o,ourName:c="ours",baseName:l="base",theirName:u="theirs",dryRun:f=!1,abortOnConflict:d=!0,mergeDriver:h}){let p=wi({ref:a}),m=wi({ref:s}),v=wi({ref:o}),y=[],b=[],x=[],E=[],_=await ws({fs:e,cache:t,dir:r,gitdir:n,trees:[p,m,v],map:async function(k,[w,A,S]){let T=iu(k),P=await cu(w,A),O=await cu(S,A);switch(`${P}-${O}`){case"false-false":return{mode:await A.mode(),path:T,oid:await A.oid(),type:await A.type()};case"false-true":return S?{mode:await S.mode(),path:T,oid:await S.oid(),type:await S.type()}:void 0;case"true-false":return w?{mode:await w.mode(),path:T,oid:await w.oid(),type:await w.type()}:void 0;case"true-true":{if(w&&A&&S&&await w.type()==="blob"&&await A.type()==="blob"&&await S.type()==="blob")return $O({fs:e,gitdir:n,path:T,ours:w,base:A,theirs:S,ourName:c,baseName:l,theirName:u,mergeDriver:h}).then(async j=>{if(j.cleanMerge)d||i.insert({filepath:k,oid:j.mergeResult.oid,stage:0});else if(y.push(k),b.push(k),!d){let D=await A.oid(),Q=await w.oid(),de=await S.oid();i.delete({filepath:k}),i.insert({filepath:k,oid:D,stage:1}),i.insert({filepath:k,oid:Q,stage:2}),i.insert({filepath:k,oid:de,stage:3})}return j.mergeResult});if(A&&!w&&S&&await A.type()==="blob"&&await S.type()==="blob"){if(y.push(k),x.push(k),!d){let j=await A.oid(),D=await S.oid();i.delete({filepath:k}),i.insert({filepath:k,oid:j,stage:1}),i.insert({filepath:k,oid:D,stage:3})}return{mode:await S.mode(),oid:await S.oid(),type:"blob",path:T}}if(A&&w&&!S&&await A.type()==="blob"&&await w.type()==="blob"){if(y.push(k),E.push(k),!d){let j=await A.oid(),D=await w.oid();i.delete({filepath:k}),i.insert({filepath:k,oid:j,stage:1}),i.insert({filepath:k,oid:D,stage:2})}return{mode:await w.mode(),oid:await w.oid(),type:"blob",path:T}}if(A&&!w&&!S&&await A.type()==="blob")return;throw new ps}}},reduce:y.length!==0&&(!r||d)?void 0:async(k,w)=>{let A=w.filter(Boolean);if(k&&!(k&&k.type==="tree"&&A.length===0)){if(A.length>0){let T=new er(A).toObject(),P=await pr({fs:e,gitdir:n,type:"tree",object:T,dryRun:f});k.oid=P}return k}}});return y.length!==0?(r&&!d&&await ws({fs:e,cache:t,dir:r,gitdir:n,trees:[wi({ref:_.oid})],map:async function(k,[w]){let A=`${r}/${k}`;if(await w.type()==="blob"){let S=await w.mode(),T=new TextDecoder().decode(await w.content());await e.write(A,T,{mode:S})}return!0}}),new ms(y,b,x,E)):_.oid}async function $O({fs:e,gitdir:t,path:r,ours:n,base:i,theirs:a,ourName:s,theirName:o,baseName:c,dryRun:l,mergeDriver:u=IO}){let f="blob",d=await i.mode()===await n.mode()?await a.mode():await n.mode();if(await n.oid()===await a.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:r,oid:await n.oid(),type:f}};if(await n.oid()===await i.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:r,oid:await a.oid(),type:f}};if(await a.oid()===await i.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:r,oid:await n.oid(),type:f}};let h=Buffer.from(await n.content()).toString("utf8"),p=Buffer.from(await i.content()).toString("utf8"),m=Buffer.from(await a.content()).toString("utf8"),{mergedText:v,cleanMerge:y}=await u({branches:[c,s,o],contents:[p,h,m],path:r}),b=await pr({fs:e,gitdir:t,type:"blob",object:Buffer.from(v,"utf8"),dryRun:l});return{cleanMerge:y,mergeResult:{mode:d,path:r,oid:b,type:f}}}async function _2({fs:e,cache:t,dir:r,gitdir:n,ours:i,theirs:a,fastForward:s=!0,fastForwardOnly:o=!1,dryRun:c=!1,noUpdateBranch:l=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:p,onSign:m,mergeDriver:v}){i===void 0&&(i=await fa({fs:e,gitdir:n,fullname:!0})),i=await q.expand({fs:e,gitdir:n,ref:i}),a=await q.expand({fs:e,gitdir:n,ref:a});let y=await q.resolve({fs:e,gitdir:n,ref:i}),b=await q.resolve({fs:e,gitdir:n,ref:a}),x=await Pp({fs:e,cache:t,gitdir:n,oids:[y,b]});if(x.length!==1)throw new ps;let E=x[0];if(E===b)return{oid:y,alreadyMerged:!0};if(s&&E===y)return!c&&!l&&await q.writeRef({fs:e,gitdir:n,ref:i,value:b}),{oid:b,fastForward:!0};{if(o)throw new sl;let _=await mt.acquire({fs:e,gitdir:n,cache:t,allowUnmerged:!1},async w=>FO({fs:e,cache:t,dir:r,gitdir:n,index:w,ourOid:y,theirOid:b,baseOid:E,ourName:oa(i),baseName:"base",theirName:oa(a),dryRun:c,abortOnConflict:u,mergeDriver:v}));if(_ instanceof ms)throw _;return f||(f=`Merge branch '${oa(a)}' into ${oa(i)}`),{oid:await yu({fs:e,cache:t,gitdir:n,message:f,ref:i,tree:_,parent:[y,b],author:d,committer:h,signingKey:p,onSign:m,dryRun:c,noUpdateBranch:l}),tree:_,mergeCommit:!0}}}async function x2({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,dir:c,gitdir:l,ref:u,url:f,remote:d,remoteRef:h,prune:p,pruneTags:m,fastForward:v,fastForwardOnly:y,corsProxy:b,singleBranch:x,headers:E,author:_,committer:k,signingKey:w}){try{if(!u){let T=await fa({fs:e,gitdir:l});if(!T)throw new Qt("ref");u=T}let{fetchHead:A,fetchHeadDescription:S}=await Cp({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:l,corsProxy:b,ref:u,url:f,remote:d,remoteRef:h,singleBranch:x,headers:E,prune:p,pruneTags:m});await _2({fs:e,cache:t,gitdir:l,ours:u,theirs:A,fastForward:v,fastForwardOnly:y,message:`Merge ${S}`,author:_,committer:k,signingKey:w,dryRun:!1,noUpdateBranch:!1}),await Tp({fs:e,cache:t,onProgress:n,dir:c,gitdir:l,ref:u,remote:d,noCheckout:!1})}catch(A){throw A.caller="git.pull",A}}async function LO({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c=$(o,".git"),ref:l,url:u,remote:f,remoteRef:d,corsProxy:h,singleBranch:p,headers:m={},cache:v={}}){try{C("fs",e),C("http",t),C("gitdir",c);let y={name:"",email:"",timestamp:Date.now(),timezoneOffset:0};return await x2({fs:new X(e),cache:v,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c,ref:l,url:u,remote:f,remoteRef:d,fastForwardOnly:!0,corsProxy:h,singleBranch:p,headers:m,author:y,committer:y})}catch(y){throw y.caller="git.fastForward",y}}async function DO({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c=$(o,".git"),ref:l,remote:u,remoteRef:f,url:d,corsProxy:h,depth:p=null,since:m=null,exclude:v=[],relative:y=!1,tags:b=!1,singleBranch:x=!1,headers:E={},prune:_=!1,pruneTags:k=!1,cache:w={}}){try{return C("fs",e),C("http",t),C("gitdir",c),await Cp({fs:new X(e),cache:w,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,gitdir:c,ref:l,remote:u,remoteRef:f,url:d,corsProxy:h,depth:p,since:m,exclude:v,relative:y,tags:b,singleBranch:x,headers:E,prune:_,pruneTags:k})}catch(A){throw A.caller="git.fetch",A}}async function NO({fs:e,dir:t,gitdir:r=$(t,".git"),oids:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),C("oids",n),await Pp({fs:new X(e),cache:i,gitdir:r,oids:n})}catch(a){throw a.caller="git.findMergeBase",a}}async function S2({fs:e,filepath:t}){if(await e.exists($(t,".git")))return t;{let r=ds(t);if(r===t)throw new Ne(`git root for ${t}`);return S2({fs:e,filepath:r})}}async function jO({fs:e,filepath:t}){try{return C("fs",e),C("filepath",t),await S2({fs:new X(e),filepath:t})}catch(r){throw r.caller="git.findRoot",r}}async function BO({fs:e,dir:t,gitdir:r=$(t,".git"),path:n}){try{return C("fs",e),C("gitdir",r),C("path",n),await ml({fs:new X(e),gitdir:r,path:n})}catch(i){throw i.caller="git.getConfig",i}}async function HO({fs:e,gitdir:t,path:r}){return(await We.get({fs:e,gitdir:t})).getall(r)}async function UO({fs:e,dir:t,gitdir:r=$(t,".git"),path:n}){try{return C("fs",e),C("gitdir",r),C("path",n),await HO({fs:new X(e),gitdir:r,path:n})}catch(i){throw i.caller="git.getConfigAll",i}}async function GO({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1}){try{C("http",e),C("url",a);let l=await Ss.getRemoteHelperFor({url:a}).discover({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:1}),u={capabilities:[...l.capabilities]};for(let[f,d]of l.refs){let h=f.split("/"),p=h.pop(),m=u;for(let v of h)m[v]=m[v]||{},m=m[v];m[p]=d}for(let[f,d]of l.symrefs){let h=f.split("/"),p=h.pop(),m=u;for(let v of h)m[v]=m[v]||{},m=m[v];m[p]=d}return u}catch(c){throw c.caller="git.getRemoteInfo",c}}function E2(e,t,r,n){let i=[];for(let[a,s]of e.refs){if(t&&!a.startsWith(t))continue;if(a.endsWith("^{}")){if(n){let c=a.replace("^{}",""),l=i[i.length-1],u=l.ref===c?l:i.find(f=>f.ref===c);if(u===void 0)throw new Error("I did not expect this to happen");u.peeled=s}continue}let o={ref:a,oid:s};r&&e.symrefs.has(a)&&(o.target=e.symrefs.get(a)),i.push(o)}return i}async function zO({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1,protocolVersion:c=2}){try{C("http",e),C("url",a);let u=await Ss.getRemoteHelperFor({url:a}).discover({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:c});if(u.protocolVersion===2)return{protocolVersion:u.protocolVersion,capabilities:u.capabilities2};let f={};for(let d of u.capabilities){let[h,p]=d.split("=");p?f[h]=p:f[h]=!0}return{protocolVersion:1,capabilities:f,refs:E2(u,void 0,!0,!0)}}catch(l){throw l.caller="git.getRemoteInfo2",l}}async function VO({type:e,object:t,format:r="content",oid:n=void 0}){return r!=="deflated"&&(r!=="wrapped"&&(t=_i.wrap({type:e,object:t})),n=await Gn(t)),{oid:n,object:t}}async function WO({object:e}){try{C("object",e),typeof e=="string"?e=Buffer.from(e,"utf8"):e=Buffer.from(e);let t="blob",{oid:r,object:n}=await VO({type:"blob",format:"content",object:e});return{oid:r,type:t,object:new Uint8Array(n),format:"wrapped"}}catch(t){throw t.caller="git.hashBlob",t}}async function qO({fs:e,cache:t,onProgress:r,dir:n,gitdir:i,filepath:a}){try{a=$(n,a);let s=await e.read(a),o=l=>qe({fs:e,cache:t,gitdir:i,oid:l}),c=await tl.fromPack({pack:s,getExternalRefDelta:o,onProgress:r});return await e.write(a.replace(/\.pack$/,".idx"),await c.toBuffer()),{oids:[...c.hashes]}}catch(s){throw s.caller="git.indexPack",s}}async function YO({fs:e,onProgress:t,dir:r,gitdir:n=$(r,".git"),filepath:i,cache:a={}}){try{return C("fs",e),C("dir",r),C("gitdir",r),C("filepath",i),await qO({fs:new X(e),cache:a,onProgress:t,dir:r,gitdir:n,filepath:i})}catch(s){throw s.caller="git.indexPack",s}}async function XO({fs:e,bare:t=!1,dir:r,gitdir:n=t?r:$(r,".git"),defaultBranch:i="master"}){try{return C("fs",e),C("gitdir",n),t||C("dir",r),await b2({fs:new X(e),bare:t,dir:r,gitdir:n,defaultBranch:i})}catch(a){throw a.caller="git.init",a}}async function A2({fs:e,cache:t,gitdir:r,oid:n,ancestor:i,depth:a}){let s=await ua.read({fs:e,gitdir:r});if(!n)throw new Qt("oid");if(!i)throw new Qt("ancestor");if(n===i)return!1;let o=[n],c=new Set,l=0;for(;o.length;){if(l++===a)throw new ll(a);let u=o.shift(),{type:f,object:d}=await qe({fs:e,cache:t,gitdir:r,oid:u});if(f!=="commit")throw new Gt(u,f,"commit");let h=tr.from(d).parse();for(let p of h.parent)if(p===i)return!0;if(!s.has(u))for(let p of h.parent)c.has(p)||(o.push(p),c.add(p))}return!1}async function ZO({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,ancestor:i,depth:a=-1,cache:s={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),C("ancestor",i),await A2({fs:new X(e),cache:s,gitdir:r,oid:n,ancestor:i,depth:a})}catch(o){throw o.caller="git.isDescendent",o}}async function KO({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n}){try{return C("fs",e),C("dir",t),C("gitdir",r),C("filepath",n),bs.isIgnored({fs:new X(e),dir:t,gitdir:r,filepath:n})}catch(i){throw i.caller="git.isIgnored",i}}async function JO({fs:e,dir:t,gitdir:r=$(t,".git"),remote:n}){try{return C("fs",e),C("gitdir",r),q.listBranches({fs:new X(e),gitdir:r,remote:n})}catch(i){throw i.caller="git.listBranches",i}}async function QO({fs:e,gitdir:t,ref:r,cache:n}){if(r){let i=await q.resolve({gitdir:t,fs:e,ref:r}),a=[];return await k2({fs:e,cache:n,gitdir:t,oid:i,filenames:a,prefix:""}),a}else return mt.acquire({fs:e,gitdir:t,cache:n},async function(i){return i.entries.map(a=>a.path)})}async function k2({fs:e,cache:t,gitdir:r,oid:n,filenames:i,prefix:a}){let{tree:s}=await Es({fs:e,cache:t,gitdir:r,oid:n});for(let o of s)o.type==="tree"?await k2({fs:e,cache:t,gitdir:r,oid:o.oid,filenames:i,prefix:$(a,o.path)}):i.push($(a,o.path))}async function eI({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),await QO({fs:new X(e),cache:i,gitdir:r,ref:n})}catch(a){throw a.caller="git.listFiles",a}}async function tI({fs:e,cache:t,gitdir:r,ref:n}){let i;try{i=await q.resolve({gitdir:r,fs:e,ref:n})}catch(o){if(o instanceof Ne)return[]}return(await Es({fs:e,cache:t,gitdir:r,oid:i})).tree.map(o=>({target:o.path,note:o.oid}))}async function rI({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n="refs/notes/commits",cache:i={}}){try{return C("fs",e),C("gitdir",r),C("ref",n),await tI({fs:new X(e),cache:i,gitdir:r,ref:n})}catch(a){throw a.caller="git.listNotes",a}}async function nI({fs:e,gitdir:t}){let r=await We.get({fs:e,gitdir:t}),n=await r.getSubsections("remote");return Promise.all(n.map(async a=>{let s=await r.get(`remote.${a}.url`);return{remote:a,url:s}}))}async function iI({fs:e,dir:t,gitdir:r=$(t,".git")}){try{return C("fs",e),C("gitdir",r),await nI({fs:new X(e),gitdir:r})}catch(n){throw n.caller="git.listRemotes",n}}async function aI(e){let t=Ve.streamReader(e),r=[],n;for(;n=await t(),n!==!0;){if(n===null)continue;n=n.toString("utf8").replace(/\n$/,"");let[i,a,...s]=n.split(" "),o={ref:a,oid:i};for(let c of s){let[l,u]=c.split(":");l==="symref-target"?o.target=u:l==="peeled"&&(o.peeled=u)}r.push(o)}return r}async function sI({prefix:e,symrefs:t,peelTags:r}){let n=[];return n.push(Ve.encode(`command=ls-refs -`)),n.push(Ve.encode(`agent=${wu.agent} -`)),(r||t||e)&&n.push(Ve.delim()),r&&n.push(Ve.encode("peel")),t&&n.push(Ve.encode("symrefs")),e&&n.push(Ve.encode(`ref-prefix ${e}`)),n.push(Ve.flush()),n}async function oI({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1,protocolVersion:c=2,prefix:l,symrefs:u,peelTags:f}){try{C("http",e),C("url",a);let d=await xs.discover({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:c});if(d.protocolVersion===1)return E2(d,l,u,f);let h=await sI({prefix:l,symrefs:u,peelTags:f}),p=await xs.connect({http:e,auth:d.auth,headers:s,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,body:h});return aI(p.body)}catch(d){throw d.caller="git.listServerRefs",d}}async function lI({fs:e,dir:t,gitdir:r=$(t,".git")}){try{return C("fs",e),C("gitdir",r),q.listTags({fs:new X(e),gitdir:r})}catch(n){throw n.caller="git.listTags",n}}function cI(e,t){return e.committer.timestamp-t.committer.timestamp}var uI="e69de29bb2d1d6434b8b29ae775ad8c2e48c5391";async function Jw({fs:e,cache:t,gitdir:r,oid:n,fileId:i}){if(i===uI)return;let a=n,s,o=await ys({fs:e,cache:t,gitdir:r,oid:n}),c=o.tree;return i===o.oid?s=o.path:(s=await T2({fs:e,cache:t,gitdir:r,tree:c,fileId:i,oid:a}),Array.isArray(s)&&(s.length===0?s=void 0:s.length===1&&(s=s[0]))),s}async function T2({fs:e,cache:t,gitdir:r,tree:n,fileId:i,oid:a,filepaths:s=[],parentPath:o=""}){let c=n.entries().map(function(l){let u;return l.oid===i?(u=$(o,l.path),s.push(u)):l.type==="tree"&&(u=qe({fs:e,cache:t,gitdir:r,oid:l.oid}).then(function({object:f}){return T2({fs:e,cache:t,gitdir:r,tree:er.from(f),fileId:i,oid:a,filepaths:s,parentPath:$(o,l.path)})})),u});return await Promise.all(c),s}async function fI({fs:e,cache:t,gitdir:r,filepath:n,ref:i,depth:a,since:s,force:o,follow:c}){let l=typeof s=="undefined"?void 0:Math.floor(s.valueOf()/1e3),u=[],f=await ua.read({fs:e,gitdir:r}),d=await q.resolve({fs:e,gitdir:r,ref:i}),h=[await uu({fs:e,cache:t,gitdir:r,oid:d})],p,m,v;function y(b){v&&n&&u.push(b)}for(;h.length>0;){let b=h.pop();if(l!==void 0&&b.commit.committer.timestamp<=l)break;if(n){let x;try{x=await vl({fs:e,cache:t,gitdir:r,oid:b.commit.tree,filepath:n}),m&&p!==x&&u.push(m),p=x,m=b,v=!0}catch(E){if(E instanceof Ne){let _=c&&p;if(_&&(_=await Jw({fs:e,cache:t,gitdir:r,oid:b.commit.tree,fileId:p}),_))if(Array.isArray(_)){if(m){let k=await Jw({fs:e,cache:t,gitdir:r,oid:m.commit.tree,fileId:p});if(Array.isArray(k))if(_=_.filter(w=>k.indexOf(w)===-1),_.length===1)_=_[0],n=_,m&&u.push(m);else{_=!1,m&&u.push(m);break}}}else n=_,m&&u.push(m);if(!_){if(v&&p&&(u.push(m),!o))break;if(!o&&!c)throw E}m=b,v=!1}else throw E}}else u.push(b);if(a!==void 0&&u.length===a){y(b);break}if(!f.has(b.oid))for(let x of b.commit.parent){let E=await uu({fs:e,cache:t,gitdir:r,oid:x});h.map(_=>_.oid).includes(E.oid)||h.push(E)}h.length===0&&y(b),h.sort((x,E)=>cI(x.commit,E.commit))}return u}async function dI({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n,ref:i="HEAD",depth:a,since:s,force:o,follow:c,cache:l={}}){try{return C("fs",e),C("gitdir",r),C("ref",i),await fI({fs:new X(e),cache:l,gitdir:r,filepath:n,ref:i,depth:a,since:s,force:o,follow:c})}catch(u){throw u.caller="git.log",u}}async function hI({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),ours:i,theirs:a,fastForward:s=!0,fastForwardOnly:o=!1,dryRun:c=!1,noUpdateBranch:l=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:p,cache:m={},mergeDriver:v}){try{C("fs",e),p&&C("onSign",t);let y=new X(e),b=await ca({fs:y,gitdir:n,author:d});if(!b&&(!o||!s))throw new zt("author");let x=await _s({fs:y,gitdir:n,author:b,committer:h});if(!x&&(!o||!s))throw new zt("committer");return await _2({fs:y,cache:m,dir:r,gitdir:n,ours:i,theirs:a,fastForward:s,fastForwardOnly:o,dryRun:c,noUpdateBranch:l,abortOnConflict:u,message:f,author:b,committer:x,signingKey:p,onSign:t,mergeDriver:v})}catch(y){throw y.caller="git.merge",y}}var pI={commit:16,tree:32,blob:48,tag:64,ofs_delta:96,ref_delta:112};async function C2({fs:e,cache:t,dir:r,gitdir:n=$(r,".git"),oids:i}){let a=new Ep.default,s=[];function o(u,f){let d=Buffer.from(u,f);s.push(d),a.update(d)}async function c({stype:u,object:f}){let d=pI[u],h=f.length,p=h>15?128:0,m=h&15;h=h>>>4;let v=(p|d|m).toString(16);for(o(v,"hex");p;)p=h>127?128:0,v=p|h&127,o(Sp(2,v),"hex"),h=h>>>7;o(Buffer.from(await u2(f)))}o("PACK"),o("00000002","hex"),o(Sp(8,i.length),"hex");for(let u of i){let{type:f,object:d}=await qe({fs:e,cache:t,gitdir:n,oid:u});await c({write:o,object:d,stype:f})}let l=a.digest();return s.push(l),s}async function mI({fs:e,cache:t,gitdir:r,oids:n,write:i}){let a=await C2({fs:e,cache:t,gitdir:r,oids:n}),s=Buffer.from(await fu(a)),c=`pack-${s.slice(-20).toString("hex")}.pack`;return i?(await e.write($(r,`objects/pack/${c}`),s),{filename:c}):{filename:c,packfile:new Uint8Array(s)}}async function gI({fs:e,dir:t,gitdir:r=$(t,".git"),oids:n,write:i=!1,cache:a={}}){try{return C("fs",e),C("gitdir",r),C("oids",n),await mI({fs:new X(e),cache:a,gitdir:r,oids:n,write:i})}catch(s){throw s.caller="git.packObjects",s}}async function vI({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c=$(o,".git"),ref:l,url:u,remote:f,remoteRef:d,prune:h=!1,pruneTags:p=!1,fastForward:m=!0,fastForwardOnly:v=!1,corsProxy:y,singleBranch:b,headers:x={},author:E,committer:_,signingKey:k,cache:w={}}){try{C("fs",e),C("gitdir",c);let A=new X(e),S=await ca({fs:A,gitdir:c,author:E});if(!S)throw new zt("author");let T=await _s({fs:A,gitdir:c,author:S,committer:_});if(!T)throw new zt("committer");return await x2({fs:A,cache:w,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c,ref:l,url:u,remote:f,remoteRef:d,fastForward:m,fastForwardOnly:v,corsProxy:y,singleBranch:b,headers:x,author:S,committer:T,signingKey:k,prune:h,pruneTags:p})}catch(A){throw A.caller="git.pull",A}}async function yI({fs:e,cache:t,dir:r,gitdir:n=$(r,".git"),start:i,finish:a}){let s=await ua.read({fs:e,gitdir:n}),o=new Set,c=new Set;for(let f of i)o.add(await q.resolve({fs:e,gitdir:n,ref:f}));for(let f of a)try{let d=await q.resolve({fs:e,gitdir:n,ref:f});c.add(d)}catch(d){}let l=new Set;async function u(f){l.add(f);let{type:d,object:h}=await qe({fs:e,cache:t,gitdir:n,oid:f});if(d==="tag"){let m=hr.from(h).headers().object;return u(m)}if(d!=="commit")throw new Gt(f,d,"commit");if(!s.has(f)){let m=tr.from(h).headers().parent;for(f of m)!c.has(f)&&!l.has(f)&&await u(f)}}for(let f of o)await u(f);return l}async function fp({fs:e,cache:t,dir:r,gitdir:n=$(r,".git"),oids:i}){let a=new Set;async function s(o){if(a.has(o))return;a.add(o);let{type:c,object:l}=await qe({fs:e,cache:t,gitdir:n,oid:o});if(c==="tag"){let f=hr.from(l).headers().object;await s(f)}else if(c==="commit"){let f=tr.from(l).headers().tree;await s(f)}else if(c==="tree"){let u=er.from(l);for(let f of u)f.type==="blob"&&a.add(f.oid),f.type==="tree"&&await s(f.oid)}}for(let o of i)await s(o);return a}async function wI(e){let t={},r="",n=Ve.streamReader(e),i=await n();for(;i!==!0;)i!==null&&(r+=i.toString("utf8")+` +`);return{cleanMerge:h,mergedText:d}}async function FO({fs:e,cache:t,dir:r,gitdir:n=$(r,".git"),index:i,ourOid:a,baseOid:s,theirOid:o,ourName:c="ours",baseName:l="base",theirName:u="theirs",dryRun:f=!1,abortOnConflict:d=!0,mergeDriver:h}){let p=wi({ref:a}),m=wi({ref:s}),v=wi({ref:o}),y=[],b=[],x=[],E=[],_=await ys({fs:e,cache:t,dir:r,gitdir:n,trees:[p,m,v],map:async function(k,[w,A,S]){let T=nu(k),P=await lu(w,A),O=await lu(S,A);switch(`${P}-${O}`){case"false-false":return{mode:await A.mode(),path:T,oid:await A.oid(),type:await A.type()};case"false-true":return S?{mode:await S.mode(),path:T,oid:await S.oid(),type:await S.type()}:void 0;case"true-false":return w?{mode:await w.mode(),path:T,oid:await w.oid(),type:await w.type()}:void 0;case"true-true":{if(w&&A&&S&&await w.type()==="blob"&&await A.type()==="blob"&&await S.type()==="blob")return $O({fs:e,gitdir:n,path:T,ours:w,base:A,theirs:S,ourName:c,baseName:l,theirName:u,mergeDriver:h}).then(async j=>{if(j.cleanMerge)d||i.insert({filepath:k,oid:j.mergeResult.oid,stage:0});else if(y.push(k),b.push(k),!d){let D=await A.oid(),Q=await w.oid(),de=await S.oid();i.delete({filepath:k}),i.insert({filepath:k,oid:D,stage:1}),i.insert({filepath:k,oid:Q,stage:2}),i.insert({filepath:k,oid:de,stage:3})}return j.mergeResult});if(A&&!w&&S&&await A.type()==="blob"&&await S.type()==="blob"){if(y.push(k),x.push(k),!d){let j=await A.oid(),D=await S.oid();i.delete({filepath:k}),i.insert({filepath:k,oid:j,stage:1}),i.insert({filepath:k,oid:D,stage:3})}return{mode:await S.mode(),oid:await S.oid(),type:"blob",path:T}}if(A&&w&&!S&&await A.type()==="blob"&&await w.type()==="blob"){if(y.push(k),E.push(k),!d){let j=await A.oid(),D=await w.oid();i.delete({filepath:k}),i.insert({filepath:k,oid:j,stage:1}),i.insert({filepath:k,oid:D,stage:2})}return{mode:await w.mode(),oid:await w.oid(),type:"blob",path:T}}if(A&&!w&&!S&&await A.type()==="blob")return;throw new hs}}},reduce:y.length!==0&&(!r||d)?void 0:async(k,w)=>{let A=w.filter(Boolean);if(k&&!(k&&k.type==="tree"&&A.length===0)){if(A.length>0){let T=new er(A).toObject(),P=await mr({fs:e,gitdir:n,type:"tree",object:T,dryRun:f});k.oid=P}return k}}});return y.length!==0?(r&&!d&&await ys({fs:e,cache:t,dir:r,gitdir:n,trees:[wi({ref:_.oid})],map:async function(k,[w]){let A=`${r}/${k}`;if(await w.type()==="blob"){let S=await w.mode(),T=new TextDecoder().decode(await w.content());await e.write(A,T,{mode:S})}return!0}}),new ps(y,b,x,E)):_.oid}async function $O({fs:e,gitdir:t,path:r,ours:n,base:i,theirs:a,ourName:s,theirName:o,baseName:c,dryRun:l,mergeDriver:u=IO}){let f="blob",d=await i.mode()===await n.mode()?await a.mode():await n.mode();if(await n.oid()===await a.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:r,oid:await n.oid(),type:f}};if(await n.oid()===await i.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:r,oid:await a.oid(),type:f}};if(await a.oid()===await i.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:r,oid:await n.oid(),type:f}};let h=Buffer.from(await n.content()).toString("utf8"),p=Buffer.from(await i.content()).toString("utf8"),m=Buffer.from(await a.content()).toString("utf8"),{mergedText:v,cleanMerge:y}=await u({branches:[c,s,o],contents:[p,h,m],path:r}),b=await mr({fs:e,gitdir:t,type:"blob",object:Buffer.from(v,"utf8"),dryRun:l});return{cleanMerge:y,mergeResult:{mode:d,path:r,oid:b,type:f}}}async function b2({fs:e,cache:t,dir:r,gitdir:n,ours:i,theirs:a,fastForward:s=!0,fastForwardOnly:o=!1,dryRun:c=!1,noUpdateBranch:l=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:p,onSign:m,mergeDriver:v}){i===void 0&&(i=await fa({fs:e,gitdir:n,fullname:!0})),i=await q.expand({fs:e,gitdir:n,ref:i}),a=await q.expand({fs:e,gitdir:n,ref:a});let y=await q.resolve({fs:e,gitdir:n,ref:i}),b=await q.resolve({fs:e,gitdir:n,ref:a}),x=await Cp({fs:e,cache:t,gitdir:n,oids:[y,b]});if(x.length!==1)throw new hs;let E=x[0];if(E===b)return{oid:y,alreadyMerged:!0};if(s&&E===y)return!c&&!l&&await q.writeRef({fs:e,gitdir:n,ref:i,value:b}),{oid:b,fastForward:!0};{if(o)throw new sl;let _=await mt.acquire({fs:e,gitdir:n,cache:t,allowUnmerged:!1},async w=>FO({fs:e,cache:t,dir:r,gitdir:n,index:w,ourOid:y,theirOid:b,baseOid:E,ourName:oa(i),baseName:"base",theirName:oa(a),dryRun:c,abortOnConflict:u,mergeDriver:v}));if(_ instanceof ps)throw _;return f||(f=`Merge branch '${oa(a)}' into ${oa(i)}`),{oid:await vu({fs:e,cache:t,gitdir:n,message:f,ref:i,tree:_,parent:[y,b],author:d,committer:h,signingKey:p,onSign:m,dryRun:c,noUpdateBranch:l}),tree:_,mergeCommit:!0}}}async function _2({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,dir:c,gitdir:l,ref:u,url:f,remote:d,remoteRef:h,prune:p,pruneTags:m,fastForward:v,fastForwardOnly:y,corsProxy:b,singleBranch:x,headers:E,author:_,committer:k,signingKey:w}){try{if(!u){let T=await fa({fs:e,gitdir:l});if(!T)throw new Qt("ref");u=T}let{fetchHead:A,fetchHeadDescription:S}=await Tp({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:l,corsProxy:b,ref:u,url:f,remote:d,remoteRef:h,singleBranch:x,headers:E,prune:p,pruneTags:m});await b2({fs:e,cache:t,gitdir:l,ours:u,theirs:A,fastForward:v,fastForwardOnly:y,message:`Merge ${S}`,author:_,committer:k,signingKey:w,dryRun:!1,noUpdateBranch:!1}),await kp({fs:e,cache:t,onProgress:n,dir:c,gitdir:l,ref:u,remote:d,noCheckout:!1})}catch(A){throw A.caller="git.pull",A}}async function LO({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c=$(o,".git"),ref:l,url:u,remote:f,remoteRef:d,corsProxy:h,singleBranch:p,headers:m={},cache:v={}}){try{C("fs",e),C("http",t),C("gitdir",c);let y={name:"",email:"",timestamp:Date.now(),timezoneOffset:0};return await _2({fs:new X(e),cache:v,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c,ref:l,url:u,remote:f,remoteRef:d,fastForwardOnly:!0,corsProxy:h,singleBranch:p,headers:m,author:y,committer:y})}catch(y){throw y.caller="git.fastForward",y}}async function DO({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c=$(o,".git"),ref:l,remote:u,remoteRef:f,url:d,corsProxy:h,depth:p=null,since:m=null,exclude:v=[],relative:y=!1,tags:b=!1,singleBranch:x=!1,headers:E={},prune:_=!1,pruneTags:k=!1,cache:w={}}){try{return C("fs",e),C("http",t),C("gitdir",c),await Tp({fs:new X(e),cache:w,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,gitdir:c,ref:l,remote:u,remoteRef:f,url:d,corsProxy:h,depth:p,since:m,exclude:v,relative:y,tags:b,singleBranch:x,headers:E,prune:_,pruneTags:k})}catch(A){throw A.caller="git.fetch",A}}async function NO({fs:e,dir:t,gitdir:r=$(t,".git"),oids:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),C("oids",n),await Cp({fs:new X(e),cache:i,gitdir:r,oids:n})}catch(a){throw a.caller="git.findMergeBase",a}}async function x2({fs:e,filepath:t}){if(await e.exists($(t,".git")))return t;{let r=fs(t);if(r===t)throw new Ne(`git root for ${t}`);return x2({fs:e,filepath:r})}}async function jO({fs:e,filepath:t}){try{return C("fs",e),C("filepath",t),await x2({fs:new X(e),filepath:t})}catch(r){throw r.caller="git.findRoot",r}}async function BO({fs:e,dir:t,gitdir:r=$(t,".git"),path:n}){try{return C("fs",e),C("gitdir",r),C("path",n),await ml({fs:new X(e),gitdir:r,path:n})}catch(i){throw i.caller="git.getConfig",i}}async function HO({fs:e,gitdir:t,path:r}){return(await We.get({fs:e,gitdir:t})).getall(r)}async function UO({fs:e,dir:t,gitdir:r=$(t,".git"),path:n}){try{return C("fs",e),C("gitdir",r),C("path",n),await HO({fs:new X(e),gitdir:r,path:n})}catch(i){throw i.caller="git.getConfigAll",i}}async function GO({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1}){try{C("http",e),C("url",a);let l=await xs.getRemoteHelperFor({url:a}).discover({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:1}),u={capabilities:[...l.capabilities]};for(let[f,d]of l.refs){let h=f.split("/"),p=h.pop(),m=u;for(let v of h)m[v]=m[v]||{},m=m[v];m[p]=d}for(let[f,d]of l.symrefs){let h=f.split("/"),p=h.pop(),m=u;for(let v of h)m[v]=m[v]||{},m=m[v];m[p]=d}return u}catch(c){throw c.caller="git.getRemoteInfo",c}}function S2(e,t,r,n){let i=[];for(let[a,s]of e.refs){if(t&&!a.startsWith(t))continue;if(a.endsWith("^{}")){if(n){let c=a.replace("^{}",""),l=i[i.length-1],u=l.ref===c?l:i.find(f=>f.ref===c);if(u===void 0)throw new Error("I did not expect this to happen");u.peeled=s}continue}let o={ref:a,oid:s};r&&e.symrefs.has(a)&&(o.target=e.symrefs.get(a)),i.push(o)}return i}async function zO({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1,protocolVersion:c=2}){try{C("http",e),C("url",a);let u=await xs.getRemoteHelperFor({url:a}).discover({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:c});if(u.protocolVersion===2)return{protocolVersion:u.protocolVersion,capabilities:u.capabilities2};let f={};for(let d of u.capabilities){let[h,p]=d.split("=");p?f[h]=p:f[h]=!0}return{protocolVersion:1,capabilities:f,refs:S2(u,void 0,!0,!0)}}catch(l){throw l.caller="git.getRemoteInfo2",l}}async function VO({type:e,object:t,format:r="content",oid:n=void 0}){return r!=="deflated"&&(r!=="wrapped"&&(t=_i.wrap({type:e,object:t})),n=await Gn(t)),{oid:n,object:t}}async function WO({object:e}){try{C("object",e),typeof e=="string"?e=Buffer.from(e,"utf8"):e=Buffer.from(e);let t="blob",{oid:r,object:n}=await VO({type:"blob",format:"content",object:e});return{oid:r,type:t,object:new Uint8Array(n),format:"wrapped"}}catch(t){throw t.caller="git.hashBlob",t}}async function qO({fs:e,cache:t,onProgress:r,dir:n,gitdir:i,filepath:a}){try{a=$(n,a);let s=await e.read(a),o=l=>qe({fs:e,cache:t,gitdir:i,oid:l}),c=await tl.fromPack({pack:s,getExternalRefDelta:o,onProgress:r});return await e.write(a.replace(/\.pack$/,".idx"),await c.toBuffer()),{oids:[...c.hashes]}}catch(s){throw s.caller="git.indexPack",s}}async function YO({fs:e,onProgress:t,dir:r,gitdir:n=$(r,".git"),filepath:i,cache:a={}}){try{return C("fs",e),C("dir",r),C("gitdir",r),C("filepath",i),await qO({fs:new X(e),cache:a,onProgress:t,dir:r,gitdir:n,filepath:i})}catch(s){throw s.caller="git.indexPack",s}}async function XO({fs:e,bare:t=!1,dir:r,gitdir:n=t?r:$(r,".git"),defaultBranch:i="master"}){try{return C("fs",e),C("gitdir",n),t||C("dir",r),await w2({fs:new X(e),bare:t,dir:r,gitdir:n,defaultBranch:i})}catch(a){throw a.caller="git.init",a}}async function E2({fs:e,cache:t,gitdir:r,oid:n,ancestor:i,depth:a}){let s=await ua.read({fs:e,gitdir:r});if(!n)throw new Qt("oid");if(!i)throw new Qt("ancestor");if(n===i)return!1;let o=[n],c=new Set,l=0;for(;o.length;){if(l++===a)throw new ll(a);let u=o.shift(),{type:f,object:d}=await qe({fs:e,cache:t,gitdir:r,oid:u});if(f!=="commit")throw new Gt(u,f,"commit");let h=tr.from(d).parse();for(let p of h.parent)if(p===i)return!0;if(!s.has(u))for(let p of h.parent)c.has(p)||(o.push(p),c.add(p))}return!1}async function ZO({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,ancestor:i,depth:a=-1,cache:s={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),C("ancestor",i),await E2({fs:new X(e),cache:s,gitdir:r,oid:n,ancestor:i,depth:a})}catch(o){throw o.caller="git.isDescendent",o}}async function KO({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n}){try{return C("fs",e),C("dir",t),C("gitdir",r),C("filepath",n),ws.isIgnored({fs:new X(e),dir:t,gitdir:r,filepath:n})}catch(i){throw i.caller="git.isIgnored",i}}async function JO({fs:e,dir:t,gitdir:r=$(t,".git"),remote:n}){try{return C("fs",e),C("gitdir",r),q.listBranches({fs:new X(e),gitdir:r,remote:n})}catch(i){throw i.caller="git.listBranches",i}}async function QO({fs:e,gitdir:t,ref:r,cache:n}){if(r){let i=await q.resolve({gitdir:t,fs:e,ref:r}),a=[];return await A2({fs:e,cache:n,gitdir:t,oid:i,filenames:a,prefix:""}),a}else return mt.acquire({fs:e,gitdir:t,cache:n},async function(i){return i.entries.map(a=>a.path)})}async function A2({fs:e,cache:t,gitdir:r,oid:n,filenames:i,prefix:a}){let{tree:s}=await Ss({fs:e,cache:t,gitdir:r,oid:n});for(let o of s)o.type==="tree"?await A2({fs:e,cache:t,gitdir:r,oid:o.oid,filenames:i,prefix:$(a,o.path)}):i.push($(a,o.path))}async function e8({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),await QO({fs:new X(e),cache:i,gitdir:r,ref:n})}catch(a){throw a.caller="git.listFiles",a}}async function t8({fs:e,cache:t,gitdir:r,ref:n}){let i;try{i=await q.resolve({gitdir:r,fs:e,ref:n})}catch(o){if(o instanceof Ne)return[]}return(await Ss({fs:e,cache:t,gitdir:r,oid:i})).tree.map(o=>({target:o.path,note:o.oid}))}async function r8({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n="refs/notes/commits",cache:i={}}){try{return C("fs",e),C("gitdir",r),C("ref",n),await t8({fs:new X(e),cache:i,gitdir:r,ref:n})}catch(a){throw a.caller="git.listNotes",a}}async function n8({fs:e,gitdir:t}){let r=await We.get({fs:e,gitdir:t}),n=await r.getSubsections("remote");return Promise.all(n.map(async a=>{let s=await r.get(`remote.${a}.url`);return{remote:a,url:s}}))}async function i8({fs:e,dir:t,gitdir:r=$(t,".git")}){try{return C("fs",e),C("gitdir",r),await n8({fs:new X(e),gitdir:r})}catch(n){throw n.caller="git.listRemotes",n}}async function a8(e){let t=Ve.streamReader(e),r=[],n;for(;n=await t(),n!==!0;){if(n===null)continue;n=n.toString("utf8").replace(/\n$/,"");let[i,a,...s]=n.split(" "),o={ref:a,oid:i};for(let c of s){let[l,u]=c.split(":");l==="symref-target"?o.target=u:l==="peeled"&&(o.peeled=u)}r.push(o)}return r}async function s8({prefix:e,symrefs:t,peelTags:r}){let n=[];return n.push(Ve.encode(`command=ls-refs +`)),n.push(Ve.encode(`agent=${yu.agent} +`)),(r||t||e)&&n.push(Ve.delim()),r&&n.push(Ve.encode("peel")),t&&n.push(Ve.encode("symrefs")),e&&n.push(Ve.encode(`ref-prefix ${e}`)),n.push(Ve.flush()),n}async function o8({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1,protocolVersion:c=2,prefix:l,symrefs:u,peelTags:f}){try{C("http",e),C("url",a);let d=await _s.discover({http:e,onAuth:t,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:c});if(d.protocolVersion===1)return S2(d,l,u,f);let h=await s8({prefix:l,symrefs:u,peelTags:f}),p=await _s.connect({http:e,auth:d.auth,headers:s,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,body:h});return a8(p.body)}catch(d){throw d.caller="git.listServerRefs",d}}async function l8({fs:e,dir:t,gitdir:r=$(t,".git")}){try{return C("fs",e),C("gitdir",r),q.listTags({fs:new X(e),gitdir:r})}catch(n){throw n.caller="git.listTags",n}}function c8(e,t){return e.committer.timestamp-t.committer.timestamp}var u8="e69de29bb2d1d6434b8b29ae775ad8c2e48c5391";async function Kw({fs:e,cache:t,gitdir:r,oid:n,fileId:i}){if(i===u8)return;let a=n,s,o=await vs({fs:e,cache:t,gitdir:r,oid:n}),c=o.tree;return i===o.oid?s=o.path:(s=await k2({fs:e,cache:t,gitdir:r,tree:c,fileId:i,oid:a}),Array.isArray(s)&&(s.length===0?s=void 0:s.length===1&&(s=s[0]))),s}async function k2({fs:e,cache:t,gitdir:r,tree:n,fileId:i,oid:a,filepaths:s=[],parentPath:o=""}){let c=n.entries().map(function(l){let u;return l.oid===i?(u=$(o,l.path),s.push(u)):l.type==="tree"&&(u=qe({fs:e,cache:t,gitdir:r,oid:l.oid}).then(function({object:f}){return k2({fs:e,cache:t,gitdir:r,tree:er.from(f),fileId:i,oid:a,filepaths:s,parentPath:$(o,l.path)})})),u});return await Promise.all(c),s}async function f8({fs:e,cache:t,gitdir:r,filepath:n,ref:i,depth:a,since:s,force:o,follow:c}){let l=typeof s=="undefined"?void 0:Math.floor(s.valueOf()/1e3),u=[],f=await ua.read({fs:e,gitdir:r}),d=await q.resolve({fs:e,gitdir:r,ref:i}),h=[await cu({fs:e,cache:t,gitdir:r,oid:d})],p,m,v;function y(b){v&&n&&u.push(b)}for(;h.length>0;){let b=h.pop();if(l!==void 0&&b.commit.committer.timestamp<=l)break;if(n){let x;try{x=await vl({fs:e,cache:t,gitdir:r,oid:b.commit.tree,filepath:n}),m&&p!==x&&u.push(m),p=x,m=b,v=!0}catch(E){if(E instanceof Ne){let _=c&&p;if(_&&(_=await Kw({fs:e,cache:t,gitdir:r,oid:b.commit.tree,fileId:p}),_))if(Array.isArray(_)){if(m){let k=await Kw({fs:e,cache:t,gitdir:r,oid:m.commit.tree,fileId:p});if(Array.isArray(k))if(_=_.filter(w=>k.indexOf(w)===-1),_.length===1)_=_[0],n=_,m&&u.push(m);else{_=!1,m&&u.push(m);break}}}else n=_,m&&u.push(m);if(!_){if(v&&p&&(u.push(m),!o))break;if(!o&&!c)throw E}m=b,v=!1}else throw E}}else u.push(b);if(a!==void 0&&u.length===a){y(b);break}if(!f.has(b.oid))for(let x of b.commit.parent){let E=await cu({fs:e,cache:t,gitdir:r,oid:x});h.map(_=>_.oid).includes(E.oid)||h.push(E)}h.length===0&&y(b),h.sort((x,E)=>c8(x.commit,E.commit))}return u}async function d8({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n,ref:i="HEAD",depth:a,since:s,force:o,follow:c,cache:l={}}){try{return C("fs",e),C("gitdir",r),C("ref",i),await f8({fs:new X(e),cache:l,gitdir:r,filepath:n,ref:i,depth:a,since:s,force:o,follow:c})}catch(u){throw u.caller="git.log",u}}async function h8({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),ours:i,theirs:a,fastForward:s=!0,fastForwardOnly:o=!1,dryRun:c=!1,noUpdateBranch:l=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:p,cache:m={},mergeDriver:v}){try{C("fs",e),p&&C("onSign",t);let y=new X(e),b=await ca({fs:y,gitdir:n,author:d});if(!b&&(!o||!s))throw new zt("author");let x=await bs({fs:y,gitdir:n,author:b,committer:h});if(!x&&(!o||!s))throw new zt("committer");return await b2({fs:y,cache:m,dir:r,gitdir:n,ours:i,theirs:a,fastForward:s,fastForwardOnly:o,dryRun:c,noUpdateBranch:l,abortOnConflict:u,message:f,author:b,committer:x,signingKey:p,onSign:t,mergeDriver:v})}catch(y){throw y.caller="git.merge",y}}var p8={commit:16,tree:32,blob:48,tag:64,ofs_delta:96,ref_delta:112};async function T2({fs:e,cache:t,dir:r,gitdir:n=$(r,".git"),oids:i}){let a=new Sp.default,s=[];function o(u,f){let d=Buffer.from(u,f);s.push(d),a.update(d)}async function c({stype:u,object:f}){let d=p8[u],h=f.length,p=h>15?128:0,m=h&15;h=h>>>4;let v=(p|d|m).toString(16);for(o(v,"hex");p;)p=h>127?128:0,v=p|h&127,o(xp(2,v),"hex"),h=h>>>7;o(Buffer.from(await c2(f)))}o("PACK"),o("00000002","hex"),o(xp(8,i.length),"hex");for(let u of i){let{type:f,object:d}=await qe({fs:e,cache:t,gitdir:n,oid:u});await c({write:o,object:d,stype:f})}let l=a.digest();return s.push(l),s}async function m8({fs:e,cache:t,gitdir:r,oids:n,write:i}){let a=await T2({fs:e,cache:t,gitdir:r,oids:n}),s=Buffer.from(await uu(a)),c=`pack-${s.slice(-20).toString("hex")}.pack`;return i?(await e.write($(r,`objects/pack/${c}`),s),{filename:c}):{filename:c,packfile:new Uint8Array(s)}}async function g8({fs:e,dir:t,gitdir:r=$(t,".git"),oids:n,write:i=!1,cache:a={}}){try{return C("fs",e),C("gitdir",r),C("oids",n),await m8({fs:new X(e),cache:a,gitdir:r,oids:n,write:i})}catch(s){throw s.caller="git.packObjects",s}}async function v8({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c=$(o,".git"),ref:l,url:u,remote:f,remoteRef:d,prune:h=!1,pruneTags:p=!1,fastForward:m=!0,fastForwardOnly:v=!1,corsProxy:y,singleBranch:b,headers:x={},author:E,committer:_,signingKey:k,cache:w={}}){try{C("fs",e),C("gitdir",c);let A=new X(e),S=await ca({fs:A,gitdir:c,author:E});if(!S)throw new zt("author");let T=await bs({fs:A,gitdir:c,author:S,committer:_});if(!T)throw new zt("committer");return await _2({fs:A,cache:w,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:c,ref:l,url:u,remote:f,remoteRef:d,fastForward:m,fastForwardOnly:v,corsProxy:y,singleBranch:b,headers:x,author:S,committer:T,signingKey:k,prune:h,pruneTags:p})}catch(A){throw A.caller="git.pull",A}}async function y8({fs:e,cache:t,dir:r,gitdir:n=$(r,".git"),start:i,finish:a}){let s=await ua.read({fs:e,gitdir:n}),o=new Set,c=new Set;for(let f of i)o.add(await q.resolve({fs:e,gitdir:n,ref:f}));for(let f of a)try{let d=await q.resolve({fs:e,gitdir:n,ref:f});c.add(d)}catch(d){}let l=new Set;async function u(f){l.add(f);let{type:d,object:h}=await qe({fs:e,cache:t,gitdir:n,oid:f});if(d==="tag"){let m=pr.from(h).headers().object;return u(m)}if(d!=="commit")throw new Gt(f,d,"commit");if(!s.has(f)){let m=tr.from(h).headers().parent;for(f of m)!c.has(f)&&!l.has(f)&&await u(f)}}for(let f of o)await u(f);return l}async function up({fs:e,cache:t,dir:r,gitdir:n=$(r,".git"),oids:i}){let a=new Set;async function s(o){if(a.has(o))return;a.add(o);let{type:c,object:l}=await qe({fs:e,cache:t,gitdir:n,oid:o});if(c==="tag"){let f=pr.from(l).headers().object;await s(f)}else if(c==="commit"){let f=tr.from(l).headers().tree;await s(f)}else if(c==="tree"){let u=er.from(l);for(let f of u)f.type==="blob"&&a.add(f.oid),f.type==="tree"&&await s(f.oid)}}for(let o of i)await s(o);return a}async function w8(e){let t={},r="",n=Ve.streamReader(e),i=await n();for(;i!==!0;)i!==null&&(r+=i.toString("utf8")+` `),i=await n();let a=r.toString("utf8").split(` -`);if(i=a.shift(),!i.startsWith("unpack "))throw new la('unpack ok" or "unpack [error message]',i);t.ok=i==="unpack ok",t.ok||(t.error=i.slice(7)),t.refs={};for(let s of a){if(s.trim()==="")continue;let o=s.slice(0,2),c=s.slice(3),l=c.indexOf(" ");l===-1&&(l=c.length);let u=c.slice(0,l),f=c.slice(l+1);t.refs[u]={ok:o==="ok",error:f}}return t}async function bI({capabilities:e=[],triplets:t=[]}){let r=[],n=`\0 ${e.join(" ")}`;for(let i of t)r.push(Ve.encode(`${i.oldoid} ${i.oid} ${i.fullRef}${n} -`)),n="";return r.push(Ve.flush()),r}async function _I({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,onPrePush:c,gitdir:l,ref:u,remoteRef:f,remote:d,url:h,force:p=!1,delete:m=!1,corsProxy:v,headers:y={}}){let b=u||await fa({fs:e,gitdir:l});if(typeof b=="undefined")throw new Qt("ref");let x=await We.get({fs:e,gitdir:l});d=d||await x.get(`branch.${b}.pushRemote`)||await x.get("remote.pushDefault")||await x.get(`branch.${b}.remote`)||"origin";let E=h||await x.get(`remote.${d}.pushurl`)||await x.get(`remote.${d}.url`);if(typeof E=="undefined")throw new Qt("remote OR url");let _=f||await x.get(`branch.${b}.merge`);if(typeof E=="undefined")throw new Qt("remoteRef");v===void 0&&(v=await x.get("http.corsProxy"));let k=await q.expand({fs:e,gitdir:l,ref:b}),w=m?"0000000000000000000000000000000000000000":await q.resolve({fs:e,gitdir:l,ref:k}),A=Ss.getRemoteHelperFor({url:E}),S=await A.discover({http:r,onAuth:a,onAuthSuccess:s,onAuthFailure:o,corsProxy:v,service:"git-receive-pack",url:E,headers:y,protocolVersion:1}),T=S.auth,P;if(!_)P=k;else try{P=await q.expandAgainstMap({ref:_,map:S.refs})}catch(z){if(z instanceof Ne)P=_.startsWith("refs/")?_:`refs/heads/${_}`;else throw z}let O=S.refs.get(P)||"0000000000000000000000000000000000000000";if(c&&!await c({remote:d,url:E,localRef:{ref:m?"(delete)":k,oid:w},remoteRef:{ref:P,oid:O}}))throw new vs;let j=!S.capabilities.has("no-thin"),D=new Set;if(!m){let z=[...S.refs.values()],N=new Set;if(O!=="0000000000000000000000000000000000000000"){let Me=await Pp({fs:e,cache:t,gitdir:l,oids:[w,O]});for(let Dt of Me)z.push(Dt);j&&(N=await fp({fs:e,cache:t,gitdir:l,oids:Me}))}if(!z.includes(w)){let Me=await yI({fs:e,cache:t,gitdir:l,start:[w],finish:z});D=await fp({fs:e,cache:t,gitdir:l,oids:Me})}if(j){try{let Me=await q.resolve({fs:e,gitdir:l,ref:`refs/remotes/${d}/HEAD`,depth:2}),{oid:Dt}=await q.resolveAgainstMap({ref:Me.replace(`refs/remotes/${d}/`,""),fullref:Me,map:S.refs}),_t=[Dt];for(let Ee of await fp({fs:e,cache:t,gitdir:l,oids:_t}))N.add(Ee)}catch(Me){}for(let Me of N)D.delete(Me)}if(w===O&&(p=!0),!p){if(k.startsWith("refs/tags")&&O!=="0000000000000000000000000000000000000000")throw new gs("tag-exists");if(w!=="0000000000000000000000000000000000000000"&&O!=="0000000000000000000000000000000000000000"&&!await A2({fs:e,cache:t,gitdir:l,oid:w,ancestor:O,depth:-1}))throw new gs("not-fast-forward")}}let Q=y2([...S.capabilities],["report-status","side-band-64k",`agent=${wu.agent}`]),de=await bI({capabilities:Q,triplets:[{oldoid:O,oid:w,fullRef:P}]}),ee=m?[]:await C2({fs:e,cache:t,gitdir:l,oids:[...D]}),J=await A.connect({http:r,onProgress:n,corsProxy:v,service:"git-receive-pack",url:E,auth:T,headers:y,body:[...de,...ee]}),{packfile:Pe,progress:me}=await du.demux(J.body);if(i){let z=w2(me);yl(z,async N=>{await i(N)})}let F=await wI(Pe);if(J.headers&&(F.headers=J.headers),d&&F.ok&&F.refs[P].ok&&!k.startsWith("refs/tags")){let z=`refs/remotes/${d}/${P.replace("refs/heads","")}`;m?await q.deleteRef({fs:e,gitdir:l,ref:z}):await q.writeRef({fs:e,gitdir:l,ref:z,value:w})}if(F.ok&&Object.values(F.refs).every(z=>z.ok))return F;{let z=Object.entries(F.refs).filter(([N,Me])=>!Me.ok).map(([N,Me])=>` - - ${N}: ${Me.error}`).join("");throw new ol(z,F)}}async function xI({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPrePush:o,dir:c,gitdir:l=$(c,".git"),ref:u,remoteRef:f,remote:d="origin",url:h,force:p=!1,delete:m=!1,corsProxy:v,headers:y={},cache:b={}}){try{return C("fs",e),C("http",t),C("gitdir",l),await _I({fs:new X(e),cache:b,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPrePush:o,gitdir:l,ref:u,remoteRef:f,remote:d,url:h,force:p,delete:m,corsProxy:v,headers:y})}catch(x){throw x.caller="git.push",x}}async function P2({fs:e,cache:t,gitdir:r,oid:n}){let{type:i,object:a}=await qe({fs:e,cache:t,gitdir:r,oid:n});if(i==="tag")return n=hr.from(a).parse().object,P2({fs:e,cache:t,gitdir:r,oid:n});if(i!=="blob")throw new Gt(n,i,"blob");return{oid:n,blob:new Uint8Array(a)}}async function R2({fs:e,cache:t,gitdir:r,oid:n,filepath:i=void 0}){return i!==void 0&&(n=await vl({fs:e,cache:t,gitdir:r,oid:n,filepath:i})),await P2({fs:e,cache:t,gitdir:r,oid:n})}async function wl({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,filepath:i,cache:a={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await R2({fs:new X(e),cache:a,gitdir:r,oid:n,filepath:i})}catch(s){throw s.caller="git.readBlob",s}}async function SI({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await uu({fs:new X(e),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.readCommit",a}}async function EI({fs:e,cache:t,gitdir:r,ref:n="refs/notes/commits",oid:i}){let a=await q.resolve({gitdir:r,fs:e,ref:n}),{blob:s}=await R2({fs:e,cache:t,gitdir:r,oid:a,filepath:i});return s}async function AI({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n="refs/notes/commits",oid:i,cache:a={}}){try{return C("fs",e),C("gitdir",r),C("ref",n),C("oid",i),await EI({fs:new X(e),cache:a,gitdir:r,ref:n,oid:i})}catch(s){throw s.caller="git.readNote",s}}async function kI({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,format:i="parsed",filepath:a=void 0,encoding:s=void 0,cache:o={}}){try{C("fs",e),C("gitdir",r),C("oid",n);let c=new X(e);a!==void 0&&(n=await vl({fs:c,cache:o,gitdir:r,oid:n,filepath:a}));let u=await qe({fs:c,cache:o,gitdir:r,oid:n,format:i==="parsed"?"content":i});if(u.oid=n,i==="parsed")switch(u.format="parsed",u.type){case"commit":u.object=tr.from(u.object).parse();break;case"tree":u.object=er.from(u.object).entries();break;case"blob":s?u.object=u.object.toString(s):(u.object=new Uint8Array(u.object),u.format="content");break;case"tag":u.object=hr.from(u.object).parse();break;default:throw new Gt(u.oid,u.type,"blob|commit|tag|tree")}else(u.format==="deflated"||u.format==="wrapped")&&(u.type=u.format);return u}catch(c){throw c.caller="git.readObject",c}}async function TI({fs:e,cache:t,gitdir:r,oid:n}){let{type:i,object:a}=await qe({fs:e,cache:t,gitdir:r,oid:n,format:"content"});if(i!=="tag")throw new Gt(n,i,"tag");let s=hr.from(a);return{oid:n,tag:s.parse(),payload:s.payload()}}async function CI({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await TI({fs:new X(e),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.readTag",a}}async function PI({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,filepath:i=void 0,cache:a={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await Es({fs:new X(e),cache:a,gitdir:r,oid:n,filepath:i})}catch(s){throw s.caller="git.readTree",s}}async function RI({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n,cache:i={}}){try{C("fs",e),C("gitdir",r),C("filepath",n),await mt.acquire({fs:new X(e),gitdir:r,cache:i},async function(a){a.delete({filepath:n})})}catch(a){throw a.caller="git.remove",a}}async function MI({fs:e,cache:t,onSign:r,gitdir:n,ref:i="refs/notes/commits",oid:a,author:s,committer:o,signingKey:c}){let l;try{l=await q.resolve({gitdir:n,fs:e,ref:i})}catch(p){if(!(p instanceof Ne))throw p}let f=(await Es({fs:e,gitdir:n,oid:l||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;f=f.filter(p=>p.path!==a);let d=await kp({fs:e,gitdir:n,tree:f});return await yu({fs:e,cache:t,onSign:r,gitdir:n,ref:i,tree:d,parent:l&&[l],message:`Note removed by 'isomorphic-git removeNote' -`,author:s,committer:o,signingKey:c})}async function OI({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),ref:i="refs/notes/commits",oid:a,author:s,committer:o,signingKey:c,cache:l={}}){try{C("fs",e),C("gitdir",n),C("oid",a);let u=new X(e),f=await ca({fs:u,gitdir:n,author:s});if(!f)throw new zt("author");let d=await _s({fs:u,gitdir:n,author:f,committer:o});if(!d)throw new zt("committer");return await MI({fs:u,cache:l,onSign:t,gitdir:n,ref:i,oid:a,author:f,committer:d,signingKey:c})}catch(u){throw u.caller="git.removeNote",u}}async function II({fs:e,gitdir:t,oldref:r,ref:n,checkout:i=!1}){if(n!==Kr.default.clean(n))throw new zn(n,Kr.default.clean(n));if(r!==Kr.default.clean(r))throw new zn(r,Kr.default.clean(r));let a=`refs/heads/${r}`,s=`refs/heads/${n}`;if(await q.exists({fs:e,gitdir:t,ref:s}))throw new Jr("branch",n,!1);let c=await q.resolve({fs:e,gitdir:t,ref:a,depth:1});await q.writeRef({fs:e,gitdir:t,ref:s,value:c}),await q.deleteRef({fs:e,gitdir:t,ref:a});let u=await fa({fs:e,gitdir:t,fullname:!0})===a;(i||u)&&await q.writeSymbolicRef({fs:e,gitdir:t,ref:"HEAD",value:s})}async function FI({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,oldref:i,checkout:a=!1}){try{return C("fs",e),C("gitdir",r),C("ref",n),C("oldref",i),await II({fs:new X(e),gitdir:r,ref:n,oldref:i,checkout:a})}catch(s){throw s.caller="git.renameBranch",s}}async function M2({gitdir:e,type:t,object:r}){return Gn(_i.wrap({type:t,object:r}))}async function $I({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n,ref:i,cache:a={}}){try{C("fs",e),C("gitdir",r),C("filepath",n);let s=new X(e),o,c;try{o=await q.resolve({fs:s,gitdir:r,ref:i||"HEAD"})}catch(f){if(i)throw f}if(o)try{o=await vl({fs:s,cache:a,gitdir:r,oid:o,filepath:n})}catch(f){o=null}let l={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:0,uid:0,gid:0,size:0},u=t&&await s.read($(t,n));u&&(c=await M2({gitdir:r,type:"blob",object:u}),o===c&&(l=await s.lstat($(t,n)))),await mt.acquire({fs:s,gitdir:r,cache:a},async function(f){f.delete({filepath:n}),o&&f.insert({filepath:n,stats:l,oid:o})})}catch(s){throw s.caller="git.reset",s}}async function LI({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,depth:i}){try{return C("fs",e),C("gitdir",r),C("ref",n),await q.resolve({fs:new X(e),gitdir:r,ref:n,depth:i})}catch(a){throw a.caller="git.resolveRef",a}}async function DI({fs:e,dir:t,gitdir:r=$(t,".git"),path:n,value:i,append:a=!1}){try{C("fs",e),C("gitdir",r),C("path",n);let s=new X(e),o=await We.get({fs:s,gitdir:r});a?await o.append(n,i):await o.set(n,i),await We.save({fs:s,gitdir:r,config:o})}catch(s){throw s.caller="git.setConfig",s}}async function NI({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n,cache:i={}}){try{C("fs",e),C("gitdir",r),C("filepath",n);let a=new X(e);if(await bs.isIgnored({fs:a,gitdir:r,dir:t,filepath:n}))return"ignored";let o=await jI({fs:a,cache:i,gitdir:r}),c=await O2({fs:a,cache:i,gitdir:r,tree:o,path:n}),l=await mt.acquire({fs:a,gitdir:r,cache:i},async function(m){for(let v of m)if(v.path===n)return v;return null}),u=await a.lstat($(t,n)),f=c!==null,d=l!==null,h=u!==null,p=async()=>{if(d&&!nu(l,u))return l.oid;{let m=await a.read($(t,n)),v=await M2({gitdir:r,type:"blob",object:m});return d&&l.oid===v&&u.size!==-1&&mt.acquire({fs:a,gitdir:r,cache:i},async function(y){y.insert({filepath:n,stats:u,oid:v})}),v}};if(!f&&!h&&!d)return"absent";if(!f&&!h&&d)return"*absent";if(!f&&h&&!d)return"*added";if(!f&&h&&d)return await p()===l.oid?"added":"*added";if(f&&!h&&!d)return"deleted";if(f&&!h&&d)return c===l.oid,"*deleted";if(f&&h&&!d)return await p()===c?"*undeleted":"*undeletemodified";if(f&&h&&d){let m=await p();return m===c?m===l.oid?"unmodified":"*unmodified":m===l.oid?"modified":"*modified"}}catch(a){throw a.caller="git.status",a}}async function O2({fs:e,cache:t,gitdir:r,tree:n,path:i}){typeof i=="string"&&(i=i.split("/"));let a=i.shift();for(let s of n)if(s.path===a){if(i.length===0)return s.oid;let{type:o,object:c}=await qe({fs:e,cache:t,gitdir:r,oid:s.oid});if(o==="tree"){let l=er.from(c);return O2({fs:e,cache:t,gitdir:r,tree:l,path:i})}if(o==="blob")throw new Gt(s.oid,o,"blob",i.join("/"))}return null}async function jI({fs:e,cache:t,gitdir:r}){let n;try{n=await q.resolve({fs:e,gitdir:r,ref:"HEAD"})}catch(a){if(a instanceof Ne)return[]}let{tree:i}=await Es({fs:e,cache:t,gitdir:r,oid:n});return i}async function BI({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n="HEAD",filepaths:i=["."],filter:a,cache:s={},ignored:o=!1}){try{C("fs",e),C("gitdir",r),C("ref",n);let c=new X(e);return await ws({fs:c,cache:s,dir:t,gitdir:r,trees:[wi({ref:n}),vu(),gu()],map:async function(l,[u,f,d]){if(!u&&!d&&f&&!o&&await bs.isIgnored({fs:c,dir:t,filepath:l})||!i.some(k=>g2(l,k)))return null;if(a&&!a(l))return;let[h,p,m]=await Promise.all([u&&u.type(),f&&f.type(),d&&d.type()]),v=[h,p,m].includes("blob");if((h==="tree"||h==="special")&&!v)return;if(h==="commit")return null;if((p==="tree"||p==="special")&&!v)return;if(m==="commit")return null;if((m==="tree"||m==="special")&&!v)return;let y=h==="blob"?await u.oid():void 0,b=m==="blob"?await d.oid():void 0,x;h!=="blob"&&p==="blob"&&m!=="blob"?x="42":p==="blob"&&(x=await f.oid());let E=[void 0,y,x,b],_=E.map(k=>E.indexOf(k));return _.shift(),[l,..._]}})}catch(c){throw c.caller="git.statusMatrix",c}}async function HI({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,object:i,force:a=!1}){try{C("fs",e),C("gitdir",r),C("ref",n);let s=new X(e);if(n===void 0)throw new Qt("ref");n=n.startsWith("refs/tags/")?n:`refs/tags/${n}`;let o=await q.resolve({fs:s,gitdir:r,ref:i||"HEAD"});if(!a&&await q.exists({fs:s,gitdir:r,ref:n}))throw new Jr("tag",n);await q.writeRef({fs:s,gitdir:r,ref:n,value:o})}catch(s){throw s.caller="git.tag",s}}async function UI({fs:e,dir:t,gitdir:r=$(t,".git"),cache:n={},filepath:i,oid:a,mode:s,add:o,remove:c,force:l}){try{C("fs",e),C("gitdir",r),C("filepath",i);let u=new X(e);if(c)return await mt.acquire({fs:u,gitdir:r,cache:n},async function(d){let h;if(!l&&(h=await u.lstat($(t,i)),h)){if(h.isDirectory())throw new xi("directory");return}d.has({filepath:i})&&d.delete({filepath:i})});let f;if(!a){if(f=await u.lstat($(t,i)),!f)throw new Ne(`file at "${i}" on disk and "remove" not set`);if(f.isDirectory())throw new xi("directory")}return await mt.acquire({fs:u,gitdir:r,cache:n},async function(d){if(!o&&!d.has({filepath:i}))throw new Ne(`file at "${i}" in index and "add" not set`);let h={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:s,uid:0,gid:0,size:0};if(!a){h=f;let p=h.isSymbolicLink()?await u.readlink($(t,i)):await u.read($(t,i));a=await pr({fs:u,gitdir:r,type:"blob",format:"content",object:p})}return d.insert({filepath:i,oid:a,stats:h}),a})}catch(u){throw u.caller="git.updateIndex",u}}function GI(){try{return wu.version}catch(e){throw e.caller="git.version",e}}async function zI({fs:e,dir:t,gitdir:r=$(t,".git"),trees:n,map:i,reduce:a,iterate:s,cache:o={}}){try{return C("fs",e),C("gitdir",r),C("trees",n),await ws({fs:new X(e),cache:o,dir:t,gitdir:r,trees:n,map:i,reduce:a,iterate:s})}catch(c){throw c.caller="git.walk",c}}async function VI({fs:e,dir:t,gitdir:r=$(t,".git"),blob:n}){try{return C("fs",e),C("gitdir",r),C("blob",n),await pr({fs:new X(e),gitdir:r,type:"blob",object:n,format:"content"})}catch(i){throw i.caller="git.writeBlob",i}}async function WI({fs:e,gitdir:t,commit:r}){let n=tr.from(r).toObject();return await pr({fs:e,gitdir:t,type:"commit",object:n,format:"content"})}async function qI({fs:e,dir:t,gitdir:r=$(t,".git"),commit:n}){try{return C("fs",e),C("gitdir",r),C("commit",n),await WI({fs:new X(e),gitdir:r,commit:n})}catch(i){throw i.caller="git.writeCommit",i}}async function YI({fs:e,dir:t,gitdir:r=$(t,".git"),type:n,object:i,format:a="parsed",oid:s,encoding:o=void 0}){try{let c=new X(e);if(a==="parsed"){switch(n){case"commit":i=tr.from(i).toObject();break;case"tree":i=er.from(i).toObject();break;case"blob":i=Buffer.from(i,o);break;case"tag":i=hr.from(i).toObject();break;default:throw new Gt(s||"",n,"blob|commit|tag|tree")}a="content"}return s=await pr({fs:c,gitdir:r,type:n,object:i,oid:s,format:a}),s}catch(c){throw c.caller="git.writeObject",c}}async function XI({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,value:i,force:a=!1,symbolic:s=!1}){try{C("fs",e),C("gitdir",r),C("ref",n),C("value",i);let o=new X(e);if(n!==Kr.default.clean(n))throw new zn(n,Kr.default.clean(n));if(!a&&await q.exists({fs:o,gitdir:r,ref:n}))throw new Jr("ref",n);s?await q.writeSymbolicRef({fs:o,gitdir:r,ref:n,value:i}):(i=await q.resolve({fs:o,gitdir:r,ref:i}),await q.writeRef({fs:o,gitdir:r,ref:n,value:i}))}catch(o){throw o.caller="git.writeRef",o}}async function ZI({fs:e,gitdir:t,tag:r}){let n=hr.from(r).toObject();return await pr({fs:e,gitdir:t,type:"tag",object:n,format:"content"})}async function KI({fs:e,dir:t,gitdir:r=$(t,".git"),tag:n}){try{return C("fs",e),C("gitdir",r),C("tag",n),await ZI({fs:new X(e),gitdir:r,tag:n})}catch(i){throw i.caller="git.writeTag",i}}async function JI({fs:e,dir:t,gitdir:r=$(t,".git"),tree:n}){try{return C("fs",e),C("gitdir",r),C("tree",n),await kp({fs:new X(e),gitdir:r,tree:n})}catch(i){throw i.caller="git.writeTree",i}}var QI={Errors:gl,STAGE:gu,TREE:wi,WORKDIR:vu,add:JM,abortMerge:qM,addNote:eO,addRemote:tO,annotatedTag:nO,branch:aO,checkout:oO,clone:yO,commit:wO,getConfig:BO,getConfigAll:UO,setConfig:DI,currentBranch:bO,deleteBranch:xO,deleteRef:SO,deleteRemote:AO,deleteTag:TO,expandOid:MO,expandRef:OO,fastForward:LO,fetch:DO,findMergeBase:NO,findRoot:jO,getRemoteInfo:GO,getRemoteInfo2:zO,hashBlob:WO,indexPack:YO,init:XO,isDescendent:ZO,isIgnored:KO,listBranches:JO,listFiles:eI,listNotes:rI,listRemotes:iI,listServerRefs:oI,listTags:lI,log:dI,merge:hI,packObjects:gI,pull:vI,push:xI,readBlob:wl,readCommit:SI,readNote:AI,readObject:kI,readTag:CI,readTree:PI,remove:RI,removeNote:OI,renameBranch:FI,resetIndex:$I,updateIndex:UI,resolveRef:LI,status:NI,statusMatrix:BI,tag:HI,version:GI,walk:zI,writeBlob:VI,writeCommit:qI,writeObject:YI,writeRef:XI,writeTag:KI,writeTree:JI},ie=QI;var OP=ze(require("path")),Ce=require("obsidian");g();var Sa=require("obsidian");g();var Yg=require("child_process"),yT=ze(xu()),Zn=ze(require("fs/promises")),Xn=require("obsidian"),Be=ze(require("path")),Wl=require("path");g();var Lu=ze(N2(),1),Ou=ze(xu(),1),u_=require("child_process"),q_=ze(Mp(),1),Ps=ze(Mp(),1),wx=require("node:events"),Fu=Object.defineProperty,y8=Object.defineProperties,w8=Object.getOwnPropertyDescriptor,b8=Object.getOwnPropertyDescriptors,Kp=Object.getOwnPropertyNames,j2=Object.getOwnPropertySymbols,yb=Object.prototype.hasOwnProperty,_8=Object.prototype.propertyIsEnumerable,B2=(e,t,r)=>t in e?Fu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ir=(e,t)=>{for(var r in t||(t={}))yb.call(t,r)&&B2(e,r,t[r]);if(j2)for(var r of j2(t))_8.call(t,r)&&B2(e,r,t[r]);return e},xl=(e,t)=>y8(e,b8(t)),W=(e,t)=>function(){return e&&(t=(0,e[Kp(e)[0]])(e=0)),t},x8=(e,t)=>function(){return t||(0,e[Kp(e)[0]])((t={exports:{}}).exports,t),t.exports},rt=(e,t)=>{for(var r in t)Fu(e,r,{get:t[r],enumerable:!0})},S8=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Kp(t))!yb.call(e,i)&&i!==r&&Fu(e,i,{get:()=>t[i],enumerable:!(n=w8(t,i))||n.enumerable});return e},Ke=e=>S8(Fu({},"__esModule",{value:!0}),e),_l=(e,t,r)=>new Promise((n,i)=>{var a=c=>{try{o(r.next(c))}catch(l){i(l)}},s=c=>{try{o(r.throw(c))}catch(l){i(l)}},o=c=>c.done?n(c.value):Promise.resolve(c.value).then(a,s);o((r=r.apply(e,t)).next())});function E8(...e){let t=new String(e);return $u.set(t,e),t}function Ru(e){return e instanceof String&&$u.has(e)}function H2(e){return $u.get(e)||[]}var $u,kl=W({"src/lib/args/pathspec.ts"(){"use strict";$u=new WeakMap}}),yr,Ei=W({"src/lib/errors/git-error.ts"(){"use strict";yr=class extends Error{constructor(e,t){super(t),this.task=e,Object.setPrototypeOf(this,new.target.prototype)}}}}),Tl,Ms=W({"src/lib/errors/git-response-error.ts"(){"use strict";Ei(),Tl=class extends yr{constructor(e,t){super(void 0,t||String(e)),this.git=e}}}}),wb,bb=W({"src/lib/errors/task-configuration-error.ts"(){"use strict";Ei(),wb=class extends yr{constructor(e){super(void 0,e)}}}});function _b(e){return typeof e=="function"?e:ga}function xb(e){return typeof e=="function"&&e!==ga}function Sb(e,t){let r=e.indexOf(t);return r<=0?[e,""]:[e.substr(0,r),e.substr(r+1)]}function Eb(e,t=0){return Ab(e)&&e.length>t?e[t]:void 0}function ma(e,t=0){if(Ab(e)&&e.length>t)return e[e.length-1-t]}function Ab(e){return!!(e&&typeof e.length=="number")}function Cl(e="",t=!0,r=` -`){return e.split(r).reduce((n,i)=>{let a=t?i.trim():i;return a&&n.push(a),n},[])}function Jp(e,t){return Cl(e,!0).map(r=>t(r))}function Qp(e){return(0,Lu.exists)(e,Lu.FOLDER)}function ke(e,t){return Array.isArray(e)?e.includes(t)||e.push(t):e.add(t),t}function kb(e,t){return Array.isArray(e)&&!e.includes(t)&&e.push(t),e}function Du(e,t){if(Array.isArray(e)){let r=e.indexOf(t);r>=0&&e.splice(r,1)}else e.delete(t);return t}function _n(e){return Array.isArray(e)?e:[e]}function Tb(e){return e.replace(/[\s-]+(.)/g,(t,r)=>r.toUpperCase())}function Cb(e){return _n(e).map(String)}function Ie(e,t=0){if(e==null)return t;let r=parseInt(e,10);return isNaN(r)?t:r}function Sl(e,t){let r=[];for(let n=0,i=e.length;nr in e?{[r]:e[r]}:{}))}function Np(e=0){return new Promise(t=>setTimeout(t,e))}function jp(e){if(e!==!1)return e}var Rs,ga,Pl,Nu=W({"src/lib/utils/util.ts"(){"use strict";Rs="\0",ga=()=>{},Pl=Object.prototype.toString.call.bind(Object.prototype.toString)}});function xn(e,t,r){return t(e)?e:arguments.length>2?r:void 0}function em(e,t){let r=Ru(e)?"string":typeof e;return/number|string|boolean/.test(r)&&(!t||!t.includes(r))}function tm(e){return!!e&&Pl(e)==="[object Object]"}function Rb(e){return typeof e=="function"}var Rl,Pt,Mb,Mu,rm,Ob=W({"src/lib/utils/argument-filters.ts"(){"use strict";Nu(),kl(),Rl=e=>Array.isArray(e),Pt=e=>typeof e=="string",Mb=e=>Array.isArray(e)&&e.every(Pt),Mu=e=>Pt(e)||Array.isArray(e)&&e.every(Pt),rm=e=>e==null||"number|boolean|function".includes(typeof e)?!1:Array.isArray(e)||typeof e=="string"||typeof e.length=="number"}}),Bp,A8=W({"src/lib/utils/exit-codes.ts"(){"use strict";Bp=(e=>(e[e.SUCCESS=0]="SUCCESS",e[e.ERROR=1]="ERROR",e[e.NOT_FOUND=-2]="NOT_FOUND",e[e.UNCLEAN=128]="UNCLEAN",e))(Bp||{})}}),Al,k8=W({"src/lib/utils/git-output-streams.ts"(){"use strict";Al=class{constructor(e,t){this.stdOut=e,this.stdErr=t}asStrings(){return new Al(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}}),ce,Si,T8=W({"src/lib/utils/line-parser.ts"(){"use strict";ce=class{constructor(e,t){this.matches=[],this.parse=(r,n)=>(this.resetMatches(),this._regExp.every((i,a)=>this.addMatch(i,a,r(a)))?this.useMatches(n,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(e)?e:[e],t&&(this.useMatches=t)}useMatches(e,t){throw new Error("LineParser:useMatches not implemented")}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(e,t,r){let n=r&&e.exec(r);return n&&this.pushMatch(t,n),!!n}pushMatch(e,t){this.matches.push(...t.slice(1))}},Si=class extends ce{addMatch(e,t,r){return/^remote:\s/.test(String(r))&&super.addMatch(e,t,r)}pushMatch(e,t){(e>0||t.length>1)&&super.pushMatch(e,t)}}}});function Ib(...e){let t=process.cwd(),r=Object.assign(Ir({baseDir:t},Fb),...e.filter(n=>typeof n=="object"&&n));return r.baseDir=r.baseDir||t,r.trimmed=r.trimmed===!0,r}var Fb,C8=W({"src/lib/utils/simple-git-options.ts"(){"use strict";Fb={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function nm(e,t=[]){return tm(e)?Object.keys(e).reduce((r,n)=>{let i=e[n];return Ru(i)?r.push(i):em(i,["boolean"])?r.push(n+"="+i):r.push(n),r},t):t}function rr(e,t=0,r=!1){let n=[];for(let i=0,a=t<0?e.length:t;i{for(let a=Cl(i,n),s=0,o=a.length;s{if(!(s+l>=o))return a[s+l]};t.some(({parse:l})=>l(c,e))}}),e}var M8=W({"src/lib/utils/task-parser.ts"(){"use strict";Nu()}}),$b={};rt($b,{ExitCodes:()=>Bp,GitOutputStreams:()=>Al,LineParser:()=>ce,NOOP:()=>ga,NULL:()=>Rs,RemoteLineParser:()=>Si,append:()=>ke,appendTaskOptions:()=>nm,asArray:()=>_n,asCamelCase:()=>Tb,asFunction:()=>_b,asNumber:()=>Ie,asStringArray:()=>Cb,bufferToString:()=>El,callTaskParser:()=>Hp,createInstanceConfig:()=>Ib,delay:()=>Np,filterArray:()=>Rl,filterFunction:()=>Rb,filterHasLength:()=>rm,filterPlainObject:()=>tm,filterPrimitives:()=>em,filterString:()=>Pt,filterStringArray:()=>Mb,filterStringOrStringArray:()=>Mu,filterType:()=>xn,first:()=>Eb,folderExists:()=>Qp,forEachLineWithContent:()=>Jp,getTrailingOptions:()=>rr,including:()=>kb,isUserFunction:()=>xb,last:()=>ma,objectToString:()=>Pl,orVoid:()=>jp,parseStringResponse:()=>ir,pick:()=>Pb,prefixedArray:()=>Sl,remove:()=>Du,splitOn:()=>Sb,toLinesWithContent:()=>Cl,trailingFunctionArgument:()=>Je,trailingOptionsArgument:()=>im});var oe=W({"src/lib/utils/index.ts"(){"use strict";Ob(),A8(),k8(),T8(),C8(),R8(),M8(),Nu()}}),Lb={};rt(Lb,{CheckRepoActions:()=>Up,checkIsBareRepoTask:()=>Nb,checkIsRepoRootTask:()=>Db,checkIsRepoTask:()=>O8});function O8(e){switch(e){case"bare":return Nb();case"root":return Db()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:ju,parser:am}}function Db(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:ju,parser(t){return/^\.(git)?$/.test(t.trim())}}}function Nb(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:ju,parser:am}}function I8(e){return/(Not a git repository|Kein Git-Repository)/i.test(String(e))}var Up,ju,am,jb=W({"src/lib/tasks/check-is-repo.ts"(){"use strict";oe(),Up=(e=>(e.BARE="bare",e.IN_TREE="tree",e.IS_REPO_ROOT="root",e))(Up||{}),ju=({exitCode:e},t,r,n)=>{if(e===128&&I8(t))return r(Buffer.from("false"));n(t)},am=e=>e.trim()==="true"}});function F8(e,t){let r=new Bb(e),n=e?Ub:Hb;return Cl(t).forEach(i=>{let a=i.replace(n,"");r.paths.push(a),(Gb.test(a)?r.folders:r.files).push(a)}),r}var Bb,Hb,Ub,Gb,$8=W({"src/lib/responses/CleanSummary.ts"(){"use strict";oe(),Bb=class{constructor(e){this.dryRun=e,this.paths=[],this.files=[],this.folders=[]}},Hb=/^[a-z]+\s*/i,Ub=/^[a-z]+\s+[a-z]+\s*/i,Gb=/\/$/}}),Gp={};rt(Gp,{EMPTY_COMMANDS:()=>Bu,adhocExecTask:()=>zb,configurationErrorTask:()=>nr,isBufferTask:()=>Wb,isEmptyTask:()=>qb,straightThroughBufferTask:()=>Vb,straightThroughStringTask:()=>Vt});function zb(e){return{commands:Bu,format:"empty",parser:e}}function nr(e){return{commands:Bu,format:"empty",parser(){throw typeof e=="string"?new wb(e):e}}}function Vt(e,t=!1){return{commands:e,format:"utf-8",parser(r){return t?String(r).trim():r}}}function Vb(e){return{commands:e,format:"buffer",parser(t){return t}}}function Wb(e){return e.format==="buffer"}function qb(e){return e.format==="empty"||!e.commands.length}var Bu,tt=W({"src/lib/tasks/task.ts"(){"use strict";bb(),Bu=[]}}),Yb={};rt(Yb,{CONFIG_ERROR_INTERACTIVE_MODE:()=>sm,CONFIG_ERROR_MODE_REQUIRED:()=>om,CONFIG_ERROR_UNKNOWN_OPTION:()=>lm,CleanOptions:()=>ku,cleanTask:()=>Xb,cleanWithOptionsTask:()=>L8,isCleanOptionsArray:()=>D8});function L8(e,t){let{cleanMode:r,options:n,valid:i}=N8(e);return r?i.options?(n.push(...t),n.some(H8)?nr(sm):Xb(r,n)):nr(lm+JSON.stringify(e)):nr(om)}function Xb(e,t){return{commands:["clean",`-${e}`,...t],format:"utf-8",parser(n){return F8(e==="n",n)}}}function D8(e){return Array.isArray(e)&&e.every(t=>cm.has(t))}function N8(e){let t,r=[],n={cleanMode:!1,options:!0};return e.replace(/[^a-z]i/g,"").split("").forEach(i=>{j8(i)?(t=i,n.cleanMode=!0):n.options=n.options&&B8(r[r.length]=`-${i}`)}),{cleanMode:t,options:r,valid:n}}function j8(e){return e==="f"||e==="n"}function B8(e){return/^-[a-z]$/i.test(e)&&cm.has(e.charAt(1))}function H8(e){return/^-[^\-]/.test(e)?e.indexOf("i")>0:e==="--interactive"}var sm,om,lm,ku,cm,Zb=W({"src/lib/tasks/clean.ts"(){"use strict";$8(),oe(),tt(),sm="Git clean interactive mode is not supported",om='Git clean mode parameter ("n" or "f") is required',lm="Git clean unknown option found in: ",ku=(e=>(e.DRY_RUN="n",e.FORCE="f",e.IGNORED_INCLUDED="x",e.IGNORED_ONLY="X",e.EXCLUDING="e",e.QUIET="q",e.RECURSIVE="d",e))(ku||{}),cm=new Set(["i",...Cb(Object.values(ku))])}});function U8(e){let t=new Jb;for(let r of Kb(e))t.addValue(r.file,String(r.key),r.value);return t}function G8(e,t){let r=null,n=[],i=new Map;for(let a of Kb(e,t))a.key===t&&(n.push(r=a.value),i.has(a.file)||i.set(a.file,[]),i.get(a.file).push(r));return{key:t,paths:Array.from(i.keys()),scopes:i,value:r,values:n}}function z8(e){return e.replace(/^(file):/,"")}function*Kb(e,t=null){let r=e.split("\0");for(let n=0,i=r.length-1;nObject.assign(e,this.values[t]),{})),this._all}addFile(e){if(!(e in this.values)){let t=ma(this.files);this.values[e]=t?Object.create(this.values[t]):{},this.files.push(e)}return this.values[e]}addValue(e,t,r){let n=this.addFile(e);n.hasOwnProperty(t)?Array.isArray(n[t])?n[t].push(r):n[t]=[n[t],r]:n[t]=r,this._all=void 0}}}});function Op(e,t){return typeof e=="string"&&zp.hasOwnProperty(e)?e:t}function W8(e,t,r,n){let i=["config",`--${n}`];return r&&i.push("--add"),i.push(e,t),{commands:i,format:"utf-8",parser(a){return a}}}function q8(e,t){let r=["config","--null","--show-origin","--get-all",e];return t&&r.splice(1,0,`--${t}`),{commands:r,format:"utf-8",parser(n){return G8(n,e)}}}function Y8(e){let t=["config","--list","--show-origin","--null"];return e&&t.push(`--${e}`),{commands:t,format:"utf-8",parser(r){return U8(r)}}}function X8(){return{addConfig(e,t,...r){return this._runTask(W8(e,t,r[0]===!0,Op(r[1],"local")),Je(arguments))},getConfig(e,t){return this._runTask(q8(e,Op(t,void 0)),Je(arguments))},listConfig(...e){return this._runTask(Y8(Op(e[0],void 0)),Je(arguments))}}}var zp,Qb=W({"src/lib/tasks/config.ts"(){"use strict";V8(),oe(),zp=(e=>(e.system="system",e.global="global",e.local="local",e.worktree="worktree",e))(zp||{})}});function Z8(e){return e_.has(e)}var Ip,e_,t_=W({"src/lib/tasks/diff-name-status.ts"(){"use strict";Ip=(e=>(e.ADDED="A",e.COPIED="C",e.DELETED="D",e.MODIFIED="M",e.RENAMED="R",e.CHANGED="T",e.UNMERGED="U",e.UNKNOWN="X",e.BROKEN="B",e))(Ip||{}),e_=new Set(Object.values(Ip))}});function K8(...e){return new n_().param(...e)}function J8(e){let t=new Set,r={};return Jp(e,n=>{let[i,a,s]=n.split(Rs);t.add(i),(r[i]=r[i]||[]).push({line:Ie(a),path:i,preview:s})}),{paths:t,results:r}}function Q8(){return{grep(e){let t=Je(arguments),r=rr(arguments);for(let i of r_)if(r.includes(i))return this._runTask(nr(`git.grep: use of "${i}" is not supported.`),t);typeof e=="string"&&(e=K8().param(e));let n=["grep","--null","-n","--full-name",...r,...e];return this._runTask({commands:n,format:"utf-8",parser(i){return J8(i)}},t)}}}var r_,bl,U2,n_,i_=W({"src/lib/tasks/grep.ts"(){"use strict";oe(),tt(),r_=["-h"],bl=Symbol("grepQuery"),n_=class{constructor(){this[U2]=[]}*[(U2=bl,Symbol.iterator)](){for(let e of this[bl])yield e}and(...e){return e.length&&this[bl].push("--and","(",...Sl(e,"-e"),")"),this}param(...e){return this[bl].push(...Sl(e,"-e")),this}}}}),a_={};rt(a_,{ResetMode:()=>Tu,getResetMode:()=>tF,resetTask:()=>eF});function eF(e,t){let r=["reset"];return s_(e)&&r.push(`--${e}`),r.push(...t),Vt(r)}function tF(e){if(s_(e))return e;switch(typeof e){case"string":case"undefined":return"soft"}}function s_(e){return o_.includes(e)}var Tu,o_,l_=W({"src/lib/tasks/reset.ts"(){"use strict";tt(),Tu=(e=>(e.MIXED="mixed",e.SOFT="soft",e.HARD="hard",e.MERGE="merge",e.KEEP="keep",e))(Tu||{}),o_=Array.from(Object.values(Tu))}});function rF(){return(0,Ou.default)("simple-git")}function G2(e,t,r){return!t||!String(t).replace(/\s*/,"")?r?(n,...i)=>{e(n,...i),r(n,...i)}:e:(n,...i)=>{e(`%s ${n}`,t,...i),r&&r(n,...i)}}function nF(e,t,{namespace:r}){if(typeof e=="string")return e;let n=t&&t.namespace||"";return n.startsWith(r)?n.substr(r.length+1):n||r}function um(e,t,r,n=rF()){let i=e&&`[${e}]`||"",a=[],s=typeof t=="string"?n.extend(t):t,o=nF(xn(t,Pt),s,n);return l(r);function c(u,f){return ke(a,um(e,o.replace(/^[^:]+/,u),f,n))}function l(u){let f=u&&`[${u}]`||"",d=s&&G2(s,f)||ga,h=G2(n,`${i} ${f}`,d);return Object.assign(s?d:h,{label:e,sibling:c,info:h,step:l})}}var c_=W({"src/lib/git-logger.ts"(){"use strict";oe(),Ou.default.formatters.L=e=>String(rm(e)?e.length:"-"),Ou.default.formatters.B=e=>Buffer.isBuffer(e)?e.toString("utf8"):Pl(e)}}),Eu,Vp,iF=W({"src/lib/runners/tasks-pending-queue.ts"(){"use strict";Ei(),c_(),Eu=class{constructor(e="GitExecutor"){this.logLabel=e,this._queue=new Map}withProgress(e){return this._queue.get(e)}createProgress(e){let t=Eu.getName(e.commands[0]),r=um(this.logLabel,t);return{task:e,logger:r,name:t}}push(e){let t=this.createProgress(e);return t.logger("Adding task to the queue, commands = %o",e.commands),this._queue.set(e,t),t}fatal(e){for(let[t,{logger:r}]of Array.from(this._queue.entries()))t===e.task?(r.info("Failed %o",e),r("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):r.info("A fatal exception occurred in a previous task, the queue has been purged: %o",e.message),this.complete(t);if(this._queue.size!==0)throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(e){this.withProgress(e)&&this._queue.delete(e)}attempt(e){let t=this.withProgress(e);if(!t)throw new yr(void 0,"TasksPendingQueue: attempt called for an unknown task");return t.logger("Starting task"),t}static getName(e="empty"){return`task:${e}:${++Eu.counter}`}},Vp=Eu,Vp.counter=0}});function pa(e,t){return{method:Eb(e.commands)||"",commands:t}}function aF(e,t){return r=>{t("[ERROR] child process exception %o",r),e.push(Buffer.from(String(r.stack),"ascii"))}}function z2(e,t,r,n){return i=>{r("%s received %L bytes",t,i),n("%B",i),e.push(i)}}var Wp,sF=W({"src/lib/runners/git-executor-chain.ts"(){"use strict";Ei(),tt(),oe(),iF(),Wp=class{constructor(e,t,r){this._executor=e,this._scheduler=t,this._plugins=r,this._chain=Promise.resolve(),this._queue=new Vp}get cwd(){return this._cwd||this._executor.cwd}set cwd(e){this._cwd=e}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(e){return this._queue.push(e),this._chain=this._chain.then(()=>this.attemptTask(e))}attemptTask(e){return _l(this,null,function*(){let t=yield this._scheduler.next(),r=()=>this._queue.complete(e);try{let{logger:n}=this._queue.attempt(e);return yield qb(e)?this.attemptEmptyTask(e,n):this.attemptRemoteTask(e,n)}catch(n){throw this.onFatalException(e,n)}finally{r(),t()}})}onFatalException(e,t){let r=t instanceof yr?Object.assign(t,{task:e}):new yr(e,t&&String(t));return this._chain=Promise.resolve(),this._queue.fatal(r),r}attemptRemoteTask(e,t){return _l(this,null,function*(){let r=this._plugins.exec("spawn.binary","",pa(e,e.commands)),n=this._plugins.exec("spawn.args",[...e.commands],pa(e,e.commands)),i=yield this.gitResponse(e,r,n,this.outputHandler,t.step("SPAWN")),a=yield this.handleTaskData(e,n,i,t.step("HANDLE"));return t("passing response to task's parser as a %s",e.format),Wb(e)?Hp(e.parser,a):Hp(e.parser,a.asStrings())})}attemptEmptyTask(e,t){return _l(this,null,function*(){return t("empty task bypassing child process to call to task's parser"),e.parser(this)})}handleTaskData(e,t,r,n){let{exitCode:i,rejection:a,stdOut:s,stdErr:o}=r;return new Promise((c,l)=>{n("Preparing to handle process response exitCode=%d stdOut=",i);let{error:u}=this._plugins.exec("task.error",{error:a},Ir(Ir({},pa(e,t)),r));if(u&&e.onError)return n.info("exitCode=%s handling with custom error handler"),e.onError(r,u,f=>{n.info("custom error handler treated as success"),n("custom error returned a %s",Pl(f)),c(new Al(Array.isArray(f)?Buffer.concat(f):f,Buffer.concat(o)))},l);if(u)return n.info("handling as error: exitCode=%s stdErr=%s rejection=%o",i,o.length,a),l(u);n.info("retrieving task output complete"),c(new Al(Buffer.concat(s),Buffer.concat(o)))})}gitResponse(e,t,r,n,i){return _l(this,null,function*(){let a=i.sibling("output"),s=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},pa(e,e.commands));return new Promise(o=>{let c=[],l=[];i.info("%s %o",t,r),i("%O",s);let u=this._beforeSpawn(e,r);if(u)return o({stdOut:c,stdErr:l,exitCode:9901,rejection:u});this._plugins.exec("spawn.before",void 0,xl(Ir({},pa(e,r)),{kill(d){u=d||u}}));let f=(0,u_.spawn)(t,r,s);f.stdout.on("data",z2(c,"stdOut",i,a.step("stdOut"))),f.stderr.on("data",z2(l,"stdErr",i,a.step("stdErr"))),f.on("error",aF(l,i)),n&&(i("Passing child process stdOut/stdErr to custom outputHandler"),n(t,f.stdout,f.stderr,[...r])),this._plugins.exec("spawn.after",void 0,xl(Ir({},pa(e,r)),{spawned:f,close(d,h){o({stdOut:c,stdErr:l,exitCode:d,rejection:u||h})},kill(d){f.killed||(u=d,f.kill("SIGINT"))}}))})})}_beforeSpawn(e,t){let r;return this._plugins.exec("spawn.before",void 0,xl(Ir({},pa(e,t)),{kill(n){r=n||r}})),r}}}}),f_={};rt(f_,{GitExecutor:()=>d_});var d_,oF=W({"src/lib/runners/git-executor.ts"(){"use strict";sF(),d_=class{constructor(e,t,r){this.cwd=e,this._scheduler=t,this._plugins=r,this._chain=new Wp(this,this._scheduler,this._plugins)}chain(){return new Wp(this,this._scheduler,this._plugins)}push(e){return this._chain.push(e)}}}});function lF(e,t,r=ga){let n=a=>{r(null,a)},i=a=>{(a==null?void 0:a.task)===e&&r(a instanceof Tl?cF(a):a,void 0)};t.then(n,i)}function cF(e){let t=n=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${n} should be GitResponseError.git.${n}, this will no longer be available in version 3`),t=ga};return Object.create(e,Object.getOwnPropertyNames(e.git).reduce(r,{}));function r(n,i){return i in e||(n[i]={enumerable:!1,configurable:!1,get(){return t(i),e.git[i]}}),n}}var uF=W({"src/lib/task-callback.ts"(){"use strict";Ms(),oe()}});function V2(e,t){return zb(r=>{if(!Qp(e))throw new Error(`Git.cwd: cannot change to non-directory "${e}"`);return(t||r).cwd=e})}var fF=W({"src/lib/tasks/change-working-directory.ts"(){"use strict";oe(),tt()}});function Fp(e){let t=["checkout",...e];return t[1]==="-b"&&t.includes("-B")&&(t[1]=Du(t,"-B")),Vt(t)}function dF(){return{checkout(){return this._runTask(Fp(rr(arguments,1)),Je(arguments))},checkoutBranch(e,t){return this._runTask(Fp(["-b",e,t,...rr(arguments)]),Je(arguments))},checkoutLocalBranch(e){return this._runTask(Fp(["-b",e,...rr(arguments)]),Je(arguments))}}}var hF=W({"src/lib/tasks/checkout.ts"(){"use strict";oe(),tt()}});function pF(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}function mF(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser(e){return ir(pF(),[h_],e)}})}}}var h_,gF=W({"src/lib/tasks/count-objects.ts"(){"use strict";oe(),h_=new ce(/([a-z-]+): (\d+)$/,(e,[t,r])=>{let n=Tb(t);e.hasOwnProperty(n)&&(e[n]=Ie(r))})}});function vF(e){return ir({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},p_,e)}var p_,yF=W({"src/lib/parsers/parse-commit.ts"(){"use strict";oe(),p_=[new ce(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(e,[t,r,n])=>{e.branch=t,e.commit=n,e.root=!!r}),new ce(/\s*Author:\s(.+)/i,(e,[t])=>{let r=t.split("<"),n=r.pop();!n||!n.includes("@")||(e.author={email:n.substr(0,n.length-1),name:r.join("<").trim()})}),new ce(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(e,[t,r,n])=>{e.summary.changes=parseInt(t,10)||0,e.summary.insertions=parseInt(r,10)||0,e.summary.deletions=parseInt(n,10)||0}),new ce(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(e,[t,r,n])=>{e.summary.changes=parseInt(t,10)||0;let i=parseInt(r,10)||0;n==="-"?e.summary.deletions=i:n==="+"&&(e.summary.insertions=i)})]}});function wF(e,t,r){return{commands:["-c","core.abbrev=40","commit",...Sl(e,"-m"),...t,...r],format:"utf-8",parser:vF}}function bF(){return{commit(t,...r){let n=Je(arguments),i=e(t)||wF(_n(t),_n(xn(r[0],Mu,[])),[...xn(r[1],Rl,[]),...rr(arguments,0,!0)]);return this._runTask(i,n)}};function e(t){return!Mu(t)&&nr("git.commit: requires the commit message to be supplied as a string/string[]")}}var _F=W({"src/lib/tasks/commit.ts"(){"use strict";yF(),oe(),tt()}});function xF(){return{firstCommit(){return this._runTask(Vt(["rev-list","--max-parents=0","HEAD"],!0),Je(arguments))}}}var SF=W({"src/lib/tasks/first-commit.ts"(){"use strict";oe(),tt()}});function EF(e,t){let r=["hash-object",e];return t&&r.push("-w"),Vt(r,!0)}var AF=W({"src/lib/tasks/hash-object.ts"(){"use strict";tt()}});function kF(e,t,r){let n=String(r).trim(),i;if(i=m_.exec(n))return new Cu(e,t,!1,i[1]);if(i=g_.exec(n))return new Cu(e,t,!0,i[1]);let a="",s=n.split(" ");for(;s.length;)if(s.shift()==="in"){a=s.join(" ");break}return new Cu(e,t,/^re/i.test(n),a)}var Cu,m_,g_,TF=W({"src/lib/responses/InitSummary.ts"(){"use strict";Cu=class{constructor(e,t,r,n){this.bare=e,this.path=t,this.existing=r,this.gitDir=n}},m_=/^Init.+ repository in (.+)$/,g_=/^Rein.+ in (.+)$/}});function CF(e){return e.includes(fm)}function PF(e=!1,t,r){let n=["init",...r];return e&&!CF(n)&&n.splice(1,0,fm),{commands:n,format:"utf-8",parser(i){return kF(n.includes("--bare"),t,i)}}}var fm,RF=W({"src/lib/tasks/init.ts"(){"use strict";TF(),fm="--bare"}});function dm(e){for(let t=0;tir(new v_,t,r,!1)}var $p,W2,q2,Y2,w_,b_=W({"src/lib/parsers/parse-diff-summary.ts"(){"use strict";Ml(),OF(),t_(),oe(),$p=[new ce(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(e,[t,r,n=""])=>{e.files.push({file:t.trim(),changes:Ie(r),insertions:n.replace(/[^+]/g,"").length,deletions:n.replace(/[^-]/g,"").length,binary:!1})}),new ce(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(e,[t,r,n])=>{e.files.push({file:t.trim(),before:Ie(r),after:Ie(n),binary:!0})}),new ce(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(e,[t,r])=>{let n=/(\d+) i/.exec(r),i=/(\d+) d/.exec(r);e.changed=Ie(t),e.insertions=Ie(n==null?void 0:n[1]),e.deletions=Ie(i==null?void 0:i[1])})],W2=[new ce(/(\d+)\t(\d+)\t(.+)$/,(e,[t,r,n])=>{let i=Ie(t),a=Ie(r);e.changed++,e.insertions+=i,e.deletions+=a,e.files.push({file:n,changes:i+a,insertions:i,deletions:a,binary:!1})}),new ce(/-\t-\t(.+)$/,(e,[t])=>{e.changed++,e.files.push({file:t,after:0,before:0,binary:!0})})],q2=[new ce(/(.+)$/,(e,[t])=>{e.changed++,e.files.push({file:t,changes:0,insertions:0,deletions:0,binary:!1})})],Y2=[new ce(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(e,[t,r,n,i,a])=>{e.changed++,e.files.push({file:a!=null?a:n,changes:0,insertions:0,deletions:0,binary:!1,status:jp(Z8(t)&&t),from:jp(!!a&&n!==a&&n),similarity:Ie(r)})})],w_={"":$p,"--stat":$p,"--numstat":W2,"--name-status":Y2,"--name-only":q2}}});function IF(e,t){return t.reduce((r,n,i)=>(r[n]=e[i]||"",r),Object.create({diff:null}))}function __(e=gm,t=x_,r=""){let n=y_(r);return function(i){let a=Cl(i.trim(),!1,pm).map(function(s){let o=s.split(mm),c=IF(o[0].split(e),t);return o.length>1&&o[1].trim()&&(c.diff=n(o[1])),c});return{all:a,latest:a.length&&a[0]||null,total:a.length}}}var pm,mm,gm,x_,S_=W({"src/lib/parsers/parse-list-log-summary.ts"(){"use strict";oe(),b_(),Ml(),pm="\xF2\xF2\xF2\xF2\xF2\xF2 ",mm=" \xF2\xF2",gm=" \xF2 ",x_=["hash","date","message","refs","author_name","author_email"]}}),E_={};rt(E_,{diffSummaryTask:()=>FF,validateLogFormatConfig:()=>Hu});function FF(e){let t=dm(e),r=["diff"];return t===""&&(t="--stat",r.push("--stat=4096")),r.push(...e),Hu(r)||{commands:r,format:"utf-8",parser:y_(t)}}function Hu(e){let t=e.filter(MF);if(t.length>1)return nr(`Summary flags are mutually exclusive - pick one of ${t.join(",")}`);if(t.length&&e.includes("-z"))return nr(`Summary flag ${t} parsing is not compatible with null termination option '-z'`)}var vm=W({"src/lib/tasks/diff.ts"(){"use strict";Ml(),b_(),tt()}});function $F(e,t){let r=[],n=[];return Object.keys(e).forEach(i=>{r.push(i),n.push(String(e[i]))}),[r,n.join(t)]}function LF(e){return Object.keys(e).reduce((t,r)=>(r in qp||(t[r]=e[r]),t),{})}function A_(e={},t=[]){let r=xn(e.splitter,Pt,gm),n=!em(e.format)&&e.format?e.format:{hash:"%H",date:e.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:e.multiLine?"%B":"%b",author_name:e.mailMap!==!1?"%aN":"%an",author_email:e.mailMap!==!1?"%aE":"%ae"},[i,a]=$F(n,r),s=[],o=[`--pretty=format:${pm}${a}${mm}`,...t],c=e.n||e["max-count"]||e.maxCount;if(c&&o.push(`--max-count=${c}`),e.from||e.to){let l=e.symmetric!==!1?"...":"..";s.push(`${e.from||""}${l}${e.to||""}`)}return Pt(e.file)&&o.push("--follow",E8(e.file)),nm(LF(e),o),{fields:i,splitter:r,commands:[...o,...s]}}function DF(e,t,r){let n=__(e,t,dm(r));return{commands:["log",...r],format:"utf-8",parser:n}}function NF(){return{log(...r){let n=Je(arguments),i=A_(im(arguments),xn(arguments[0],Rl)),a=t(...r)||Hu(i.commands)||e(i);return this._runTask(a,n)}};function e(r){return DF(r.splitter,r.fields,r.commands)}function t(r,n){return Pt(r)&&Pt(n)&&nr("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}var qp,k_=W({"src/lib/tasks/log.ts"(){"use strict";Ml(),kl(),S_(),oe(),tt(),vm(),qp=(e=>(e[e["--pretty"]=0]="--pretty",e[e["max-count"]=1]="max-count",e[e.maxCount=2]="maxCount",e[e.n=3]="n",e[e.file=4]="file",e[e.format=5]="format",e[e.from=6]="from",e[e.to=7]="to",e[e.splitter=8]="splitter",e[e.symmetric=9]="symmetric",e[e.mailMap=10]="mailMap",e[e.multiLine=11]="multiLine",e[e.strictDate=12]="strictDate",e))(qp||{})}}),Pu,T_,jF=W({"src/lib/responses/MergeSummary.ts"(){"use strict";Pu=class{constructor(e,t=null,r){this.reason=e,this.file=t,this.meta=r}toString(){return`${this.file}:${this.reason}`}},T_=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),Yp,C_,BF=W({"src/lib/responses/PullSummary.ts"(){"use strict";Yp=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},C_=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function Lp(e){return e.objects=e.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function X2(e){let t=/^\s*(\d+)/.exec(e),r=/delta (\d+)/i.exec(e);return{count:Ie(t&&t[1]||"0"),delta:Ie(r&&r[1]||"0")}}var P_,HF=W({"src/lib/parsers/parse-remote-objects.ts"(){"use strict";oe(),P_=[new Si(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(e,[t,r])=>{let n=t.toLowerCase(),i=Lp(e.remoteMessages);Object.assign(i,{[n]:Ie(r)})}),new Si(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(e,[t,r])=>{let n=t.toLowerCase(),i=Lp(e.remoteMessages);Object.assign(i,{[n]:Ie(r)})}),new Si(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(e,[t,r,n])=>{let i=Lp(e.remoteMessages);i.total=X2(t),i.reused=X2(r),i.packReused=Ie(n)})]}});function R_(e,t){return ir({remoteMessages:new O_},M_,t)}var M_,O_,I_=W({"src/lib/parsers/parse-remote-messages.ts"(){"use strict";oe(),HF(),M_=[new Si(/^remote:\s*(.+)$/,(e,[t])=>(e.remoteMessages.all.push(t.trim()),!1)),...P_,new Si([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(e,[t])=>{e.remoteMessages.pullRequestUrl=t}),new Si([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(e,[t,r,n])=>{e.remoteMessages.vulnerabilities={count:Ie(t),summary:r,url:n}})],O_=class{constructor(){this.all=[]}}}});function UF(e,t){let r=ir(new C_,F_,[e,t]);return r.message&&r}var Z2,K2,J2,Q2,F_,eb,ym,$_=W({"src/lib/parsers/parse-pull.ts"(){"use strict";BF(),oe(),I_(),Z2=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,K2=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,J2=/^(create|delete) mode \d+ (.+)/,Q2=[new ce(Z2,(e,[t,r,n])=>{e.files.push(t),r&&(e.insertions[t]=r.length),n&&(e.deletions[t]=n.length)}),new ce(K2,(e,[t,,r,,n])=>r!==void 0||n!==void 0?(e.summary.changes=+t||0,e.summary.insertions=+r||0,e.summary.deletions=+n||0,!0):!1),new ce(J2,(e,[t,r])=>{ke(e.files,r),ke(t==="create"?e.created:e.deleted,r)})],F_=[new ce(/^from\s(.+)$/i,(e,[t])=>void(e.remote=t)),new ce(/^fatal:\s(.+)$/,(e,[t])=>void(e.message=t)),new ce(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(e,[t,r,n,i])=>{e.branch.local=n,e.hash.local=t,e.branch.remote=i,e.hash.remote=r})],eb=(e,t)=>ir(new Yp,Q2,[e,t]),ym=(e,t)=>Object.assign(new Yp,eb(e,t),R_(e,t))}}),tb,L_,rb,GF=W({"src/lib/parsers/parse-merge.ts"(){"use strict";jF(),oe(),$_(),tb=[new ce(/^Auto-merging\s+(.+)$/,(e,[t])=>{e.merges.push(t)}),new ce(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(e,[t,r])=>{e.conflicts.push(new Pu(t,r))}),new ce(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(e,[t,r,n])=>{e.conflicts.push(new Pu(t,r,{deleteRef:n}))}),new ce(/^CONFLICT\s+\((.+)\):/,(e,[t])=>{e.conflicts.push(new Pu(t,null))}),new ce(/^Automatic merge failed;\s+(.+)$/,(e,[t])=>{e.result=t})],L_=(e,t)=>Object.assign(rb(e,t),ym(e,t)),rb=e=>ir(new T_,tb,e)}});function nb(e){return e.length?{commands:["merge",...e],format:"utf-8",parser(t,r){let n=L_(t,r);if(n.failed)throw new Tl(n);return n}}:nr("Git.merge requires at least one option")}var zF=W({"src/lib/tasks/merge.ts"(){"use strict";Ms(),GF(),tt()}});function VF(e,t,r){let n=r.includes("deleted"),i=r.includes("tag")||/^refs\/tags/.test(e),a=!r.includes("new");return{deleted:n,tag:i,branch:!i,new:!a,alreadyUpdated:a,local:e,remote:t}}var ib,D_,ab,WF=W({"src/lib/parsers/parse-push.ts"(){"use strict";oe(),I_(),ib=[new ce(/^Pushing to (.+)$/,(e,[t])=>{e.repo=t}),new ce(/^updating local tracking ref '(.+)'/,(e,[t])=>{e.ref=xl(Ir({},e.ref||{}),{local:t})}),new ce(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(e,[t,r,n])=>{e.pushed.push(VF(t,r,n))}),new ce(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(e,[t,r,n])=>{e.branch=xl(Ir({},e.branch||{}),{local:t,remote:r,remoteName:n})}),new ce(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(e,[t,r,n,i])=>{e.update={head:{local:t,remote:r},hash:{from:n,to:i}}})],D_=(e,t)=>{let r=ab(e,t),n=R_(e,t);return Ir(Ir({},r),n)},ab=(e,t)=>ir({pushed:[]},ib,[e,t])}}),N_={};rt(N_,{pushTagsTask:()=>qF,pushTask:()=>wm});function qF(e={},t){return ke(t,"--tags"),wm(e,t)}function wm(e={},t){let r=["push",...t];return e.branch&&r.splice(1,0,e.branch),e.remote&&r.splice(1,0,e.remote),Du(r,"-v"),ke(r,"--verbose"),ke(r,"--porcelain"),{commands:r,format:"utf-8",parser:D_}}var j_=W({"src/lib/tasks/push.ts"(){"use strict";WF(),oe()}});function YF(){return{showBuffer(){let e=["show",...rr(arguments,1)];return e.includes("--binary")||e.splice(1,0,"--binary"),this._runTask(Vb(e),Je(arguments))},show(){let e=["show",...rr(arguments,1)];return this._runTask(Vt(e),Je(arguments))}}}var XF=W({"src/lib/tasks/show.ts"(){"use strict";oe(),tt()}}),sb,B_,ZF=W({"src/lib/responses/FileStatusSummary.ts"(){"use strict";sb=/^(.+)\0(.+)$/,B_=class{constructor(e,t,r){if(this.path=e,this.index=t,this.working_dir=r,t==="R"||r==="R"){let n=sb.exec(e)||[null,e,e];this.from=n[2]||"",this.path=n[1]||""}}}}});function ob(e){let[t,r]=e.split(Rs);return{from:r||t,to:t}}function vr(e,t,r){return[`${e}${t}`,r]}function Dp(e,...t){return t.map(r=>vr(e,r,(n,i)=>ke(n.conflicted,i)))}function KF(e,t){let r=t.trim();switch(" "){case r.charAt(2):return n(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return n(" ",r.charAt(0),r.substr(2));default:return}function n(i,a,s){let o=`${i}${a}`,c=H_.get(o);c&&c(e,s),o!=="##"&&o!=="!!"&&e.files.push(new B_(s,i,a))}}var lb,H_,U_,JF=W({"src/lib/responses/StatusSummary.ts"(){"use strict";oe(),ZF(),lb=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},H_=new Map([vr(" ","A",(e,t)=>ke(e.created,t)),vr(" ","D",(e,t)=>ke(e.deleted,t)),vr(" ","M",(e,t)=>ke(e.modified,t)),vr("A"," ",(e,t)=>ke(e.created,t)&&ke(e.staged,t)),vr("A","M",(e,t)=>ke(e.created,t)&&ke(e.staged,t)&&ke(e.modified,t)),vr("D"," ",(e,t)=>ke(e.deleted,t)&&ke(e.staged,t)),vr("M"," ",(e,t)=>ke(e.modified,t)&&ke(e.staged,t)),vr("M","M",(e,t)=>ke(e.modified,t)&&ke(e.staged,t)),vr("R"," ",(e,t)=>{ke(e.renamed,ob(t))}),vr("R","M",(e,t)=>{let r=ob(t);ke(e.renamed,r),ke(e.modified,r.to)}),vr("!","!",(e,t)=>{ke(e.ignored=e.ignored||[],t)}),vr("?","?",(e,t)=>ke(e.not_added,t)),...Dp("A","A","U"),...Dp("D","D","U"),...Dp("U","A","D","U"),["##",(e,t)=>{let r=/ahead (\d+)/,n=/behind (\d+)/,i=/^(.+?(?=(?:\.{3}|\s|$)))/,a=/\.{3}(\S*)/,s=/\son\s([\S]+)$/,o;o=r.exec(t),e.ahead=o&&+o[1]||0,o=n.exec(t),e.behind=o&&+o[1]||0,o=i.exec(t),e.current=o&&o[1],o=a.exec(t),e.tracking=o&&o[1],o=s.exec(t),e.current=o&&o[1]||e.current,e.detached=/\(no branch\)/.test(t)}]]),U_=function(e){let t=e.split(Rs),r=new lb;for(let n=0,i=t.length;n!G_.includes(r))],parser(r){return U_(r)}}}var G_,e4=W({"src/lib/tasks/status.ts"(){"use strict";JF(),G_=["--null","-z"]}});function Iu(e=0,t=0,r=0,n="",i=!0){return Object.defineProperty({major:e,minor:t,patch:r,agent:n,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function t4(){return Iu(0,0,0,"",!1)}function r4(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:n4,onError(e,t,r,n){if(e.exitCode===-2)return r(Buffer.from(bm));n(t)}})}}}function n4(e){return e===bm?t4():ir(Iu(0,0,0,e),z_,e)}var bm,z_,i4=W({"src/lib/tasks/version.ts"(){"use strict";oe(),bm="installed=false",z_=[new ce(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(e,[t,r,n,i=""])=>{Object.assign(e,Iu(Ie(t),Ie(r),Ie(n),i))}),new ce(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(e,[t,r,n,i=""])=>{Object.assign(e,Iu(Ie(t),Ie(r),n,i))})]}}),V_={};rt(V_,{SimpleGitApi:()=>Xp});var Xp,a4=W({"src/lib/simple-git-api.ts"(){"use strict";uF(),fF(),hF(),gF(),_F(),Qb(),SF(),i_(),AF(),RF(),k_(),zF(),j_(),XF(),e4(),tt(),i4(),oe(),Xp=class{constructor(e){this._executor=e}_runTask(e,t){let r=this._executor.chain(),n=r.push(e);return t&&lF(e,n,t),Object.create(this,{then:{value:n.then.bind(n)},catch:{value:n.catch.bind(n)},_executor:{value:r}})}add(e){return this._runTask(Vt(["add",..._n(e)]),Je(arguments))}cwd(e){let t=Je(arguments);return typeof e=="string"?this._runTask(V2(e,this._executor),t):typeof(e==null?void 0:e.path)=="string"?this._runTask(V2(e.path,e.root&&this._executor||void 0),t):this._runTask(nr("Git.cwd: workingDirectory must be supplied as a string"),t)}hashObject(e,t){return this._runTask(EF(e,t===!0),Je(arguments))}init(e){return this._runTask(PF(e===!0,this._executor.cwd,rr(arguments)),Je(arguments))}merge(){return this._runTask(nb(rr(arguments)),Je(arguments))}mergeFromTo(e,t){return Pt(e)&&Pt(t)?this._runTask(nb([e,t,...rr(arguments)]),Je(arguments,!1)):this._runTask(nr("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(e){return this._executor.outputHandler=e,this}push(){let e=wm({remote:xn(arguments[0],Pt),branch:xn(arguments[1],Pt)},rr(arguments));return this._runTask(e,Je(arguments))}stash(){return this._runTask(Vt(["stash",...rr(arguments)]),Je(arguments))}status(){return this._runTask(QF(rr(arguments)),Je(arguments))}},Object.assign(Xp.prototype,dF(),bF(),X8(),mF(),xF(),Q8(),NF(),YF(),r4())}}),W_={};rt(W_,{Scheduler:()=>Y_});var cb,Y_,s4=W({"src/lib/runners/scheduler.ts"(){"use strict";oe(),c_(),cb=(()=>{let e=0;return()=>{e++;let{promise:t,done:r}=(0,q_.createDeferred)();return{promise:t,done:r,id:e}}})(),Y_=class{constructor(e=2){this.concurrency=e,this.logger=um("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",e)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let e=ke(this.running,this.pending.shift());this.logger("Attempting id=%s",e.id),e.done(()=>{this.logger("Completing id=",e.id),Du(this.running,e),this.schedule()})}next(){let{promise:e,id:t}=ke(this.pending,cb());return this.logger("Scheduling id=%s",t),this.schedule(),e}}}}),X_={};rt(X_,{applyPatchTask:()=>o4});function o4(e,t){return Vt(["apply",...t,...e])}var l4=W({"src/lib/tasks/apply-patch.ts"(){"use strict";tt()}});function c4(e,t){return{branch:e,hash:t,success:!0}}function u4(e){return{branch:e,hash:null,success:!1}}var Z_,f4=W({"src/lib/responses/BranchDeleteSummary.ts"(){"use strict";Z_=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function K_(e,t){return t===1&&Zp.test(e)}var ub,Zp,fb,Uu,d4=W({"src/lib/parsers/parse-branch-delete.ts"(){"use strict";f4(),oe(),ub=/(\S+)\s+\(\S+\s([^)]+)\)/,Zp=/^error[^']+'([^']+)'/m,fb=[new ce(ub,(e,[t,r])=>{let n=c4(t,r);e.all.push(n),e.branches[t]=n}),new ce(Zp,(e,[t])=>{let r=u4(t);e.errors.push(r),e.all.push(r),e.branches[t]=r})],Uu=(e,t)=>ir(new Z_,fb,[e,t])}}),J_,h4=W({"src/lib/responses/BranchSummary.ts"(){"use strict";J_=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(e,t,r,n,i){e==="*"&&(this.detached=t,this.current=r),this.all.push(r),this.branches[r]={current:e==="*",linkedWorkTree:e==="+",name:r,commit:n,label:i}}}}});function db(e){return e?e.charAt(0):""}function Q_(e){return ir(new J_,ex,e)}var ex,p4=W({"src/lib/parsers/parse-branch.ts"(){"use strict";h4(),oe(),ex=[new ce(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(e,[t,r,n,i])=>{e.push(db(t),!0,r,n,i)}),new ce(new RegExp("^([*+]\\s)?(\\S+)\\s+([a-z0-9]+)\\s?(.*)$","s"),(e,[t,r,n,i])=>{e.push(db(t),!1,r,n,i)})]}}),tx={};rt(tx,{branchLocalTask:()=>g4,branchTask:()=>m4,containsDeleteBranchCommand:()=>rx,deleteBranchTask:()=>y4,deleteBranchesTask:()=>v4});function rx(e){let t=["-d","-D","--delete"];return e.some(r=>t.includes(r))}function m4(e){let t=rx(e),r=["branch",...e];return r.length===1&&r.push("-a"),r.includes("-v")||r.splice(1,0,"-v"),{format:"utf-8",commands:r,parser(n,i){return t?Uu(n,i).all[0]:Q_(n)}}}function g4(){return{format:"utf-8",commands:["branch","-v"],parser:Q_}}function v4(e,t=!1){return{format:"utf-8",commands:["branch","-v",t?"-D":"-d",...e],parser(r,n){return Uu(r,n)},onError({exitCode:r,stdOut:n},i,a,s){if(!K_(String(i),r))return s(i);a(n)}}}function y4(e,t=!1){let r={format:"utf-8",commands:["branch","-v",t?"-D":"-d",e],parser(n,i){return Uu(n,i).branches[e]},onError({exitCode:n,stdErr:i,stdOut:a},s,o,c){if(!K_(String(s),n))return c(s);throw new Tl(r.parser(El(a),El(i)),String(s))}};return r}var w4=W({"src/lib/tasks/branch.ts"(){"use strict";Ms(),d4(),p4(),oe()}}),nx,b4=W({"src/lib/responses/CheckIgnore.ts"(){"use strict";nx=e=>e.split(/\n/g).map(t=>t.trim()).filter(t=>!!t)}}),ix={};rt(ix,{checkIgnoreTask:()=>_4});function _4(e){return{commands:["check-ignore",...e],format:"utf-8",parser:nx}}var x4=W({"src/lib/tasks/check-ignore.ts"(){"use strict";b4()}}),ax={};rt(ax,{cloneMirrorTask:()=>E4,cloneTask:()=>sx});function S4(e){return/^--upload-pack(=|$)/.test(e)}function sx(e,t,r){let n=["clone",...r];return Pt(e)&&n.push(e),Pt(t)&&n.push(t),n.find(S4)?nr("git.fetch: potential exploit argument blocked."):Vt(n)}function E4(e,t,r){return ke(r,"--mirror"),sx(e,t,r)}var A4=W({"src/lib/tasks/clone.ts"(){"use strict";tt(),oe()}});function k4(e,t){return ir({raw:e,remote:null,branches:[],tags:[],updated:[],deleted:[]},ox,[e,t])}var ox,T4=W({"src/lib/parsers/parse-fetch.ts"(){"use strict";oe(),ox=[new ce(/From (.+)$/,(e,[t])=>{e.remote=t}),new ce(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(e,[t,r])=>{e.branches.push({name:t,tracking:r})}),new ce(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(e,[t,r])=>{e.tags.push({name:t,tracking:r})}),new ce(/- \[deleted]\s+\S+\s*-> (.+)$/,(e,[t])=>{e.deleted.push({tracking:t})}),new ce(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(e,[t,r,n,i])=>{e.updated.push({name:n,tracking:i,to:r,from:t})})]}}),lx={};rt(lx,{fetchTask:()=>P4});function C4(e){return/^--upload-pack(=|$)/.test(e)}function P4(e,t,r){let n=["fetch",...r];return e&&t&&n.push(e,t),n.find(C4)?nr("git.fetch: potential exploit argument blocked."):{commands:n,format:"utf-8",parser:k4}}var R4=W({"src/lib/tasks/fetch.ts"(){"use strict";T4(),tt()}});function M4(e){return ir({moves:[]},cx,e)}var cx,O4=W({"src/lib/parsers/parse-move.ts"(){"use strict";oe(),cx=[new ce(/^Renaming (.+) to (.+)$/,(e,[t,r])=>{e.moves.push({from:t,to:r})})]}}),ux={};rt(ux,{moveTask:()=>I4});function I4(e,t){return{commands:["mv","-v",..._n(e),t],format:"utf-8",parser:M4}}var F4=W({"src/lib/tasks/move.ts"(){"use strict";O4(),oe()}}),fx={};rt(fx,{pullTask:()=>$4});function $4(e,t,r){let n=["pull",...r];return e&&t&&n.splice(1,0,e,t),{commands:n,format:"utf-8",parser(i,a){return ym(i,a)},onError(i,a,s,o){let c=UF(El(i.stdOut),El(i.stdErr));if(c)return o(new Tl(c));o(a)}}}var L4=W({"src/lib/tasks/pull.ts"(){"use strict";Ms(),$_(),oe()}});function D4(e){let t={};return dx(e,([r])=>t[r]={name:r}),Object.values(t)}function N4(e){let t={};return dx(e,([r,n,i])=>{t.hasOwnProperty(r)||(t[r]={name:r,refs:{fetch:"",push:""}}),i&&n&&(t[r].refs[i.replace(/[^a-z]/g,"")]=n)}),Object.values(t)}function dx(e,t){Jp(e,r=>t(r.split(/\s+/)))}var j4=W({"src/lib/responses/GetRemoteSummary.ts"(){"use strict";oe()}}),hx={};rt(hx,{addRemoteTask:()=>B4,getRemotesTask:()=>H4,listRemotesTask:()=>U4,remoteTask:()=>G4,removeRemoteTask:()=>z4});function B4(e,t,r){return Vt(["remote","add",...r,e,t])}function H4(e){let t=["remote"];return e&&t.push("-v"),{commands:t,format:"utf-8",parser:e?N4:D4}}function U4(e){let t=[...e];return t[0]!=="ls-remote"&&t.unshift("ls-remote"),Vt(t)}function G4(e){let t=[...e];return t[0]!=="remote"&&t.unshift("remote"),Vt(t)}function z4(e){return Vt(["remote","remove",e])}var V4=W({"src/lib/tasks/remote.ts"(){"use strict";j4(),tt()}}),px={};rt(px,{stashListTask:()=>W4});function W4(e={},t){let r=A_(e),n=["stash","list",...r.commands,...t],i=__(r.splitter,r.fields,dm(n));return Hu(n)||{commands:n,format:"utf-8",parser:i}}var q4=W({"src/lib/tasks/stash-list.ts"(){"use strict";Ml(),S_(),vm(),k_()}}),mx={};rt(mx,{addSubModuleTask:()=>Y4,initSubModuleTask:()=>X4,subModuleTask:()=>Gu,updateSubModuleTask:()=>Z4});function Y4(e,t){return Gu(["add",e,t])}function X4(e){return Gu(["init",...e])}function Gu(e){let t=[...e];return t[0]!=="submodule"&&t.unshift("submodule"),Vt(t)}function Z4(e){return Gu(["update",...e])}var K4=W({"src/lib/tasks/sub-module.ts"(){"use strict";tt()}});function J4(e,t){let r=isNaN(e),n=isNaN(t);return r!==n?r?1:-1:r?gx(e,t):0}function gx(e,t){return e===t?0:e>t?1:-1}function Q4(e){return e.trim()}function Au(e){return typeof e=="string"&&parseInt(e.replace(/^\D+/g,""),10)||0}var hb,vx,e$=W({"src/lib/responses/TagList.ts"(){"use strict";hb=class{constructor(e,t){this.all=e,this.latest=t}},vx=function(e,t=!1){let r=e.split(` -`).map(Q4).filter(Boolean);t||r.sort(function(i,a){let s=i.split("."),o=a.split(".");if(s.length===1||o.length===1)return J4(Au(s[0]),Au(o[0]));for(let c=0,l=Math.max(s.length,o.length);ci.indexOf(".")>=0);return new hb(r,n)}}}),yx={};rt(yx,{addAnnotatedTagTask:()=>n$,addTagTask:()=>r$,tagListTask:()=>t$});function t$(e=[]){let t=e.some(r=>/^--sort=/.test(r));return{format:"utf-8",commands:["tag","-l",...e],parser(r){return vx(r,t)}}}function r$(e){return{format:"utf-8",commands:["tag",e],parser(){return{name:e}}}}function n$(e,t){return{format:"utf-8",commands:["tag","-a","-m",t,e],parser(){return{name:e}}}}var i$=W({"src/lib/tasks/tag.ts"(){"use strict";e$()}}),a$=x8({"src/git.js"(e,t){"use strict";var{GitExecutor:r}=(oF(),Ke(f_)),{SimpleGitApi:n}=(a4(),Ke(V_)),{Scheduler:i}=(s4(),Ke(W_)),{configurationErrorTask:a}=(tt(),Ke(Gp)),{asArray:s,filterArray:o,filterPrimitives:c,filterString:l,filterStringOrStringArray:u,filterType:f,getTrailingOptions:d,trailingFunctionArgument:h,trailingOptionsArgument:p}=(oe(),Ke($b)),{applyPatchTask:m}=(l4(),Ke(X_)),{branchTask:v,branchLocalTask:y,deleteBranchesTask:b,deleteBranchTask:x}=(w4(),Ke(tx)),{checkIgnoreTask:E}=(x4(),Ke(ix)),{checkIsRepoTask:_}=(jb(),Ke(Lb)),{cloneTask:k,cloneMirrorTask:w}=(A4(),Ke(ax)),{cleanWithOptionsTask:A,isCleanOptionsArray:S}=(Zb(),Ke(Yb)),{diffSummaryTask:T}=(vm(),Ke(E_)),{fetchTask:P}=(R4(),Ke(lx)),{moveTask:O}=(F4(),Ke(ux)),{pullTask:j}=(L4(),Ke(fx)),{pushTagsTask:D}=(j_(),Ke(N_)),{addRemoteTask:Q,getRemotesTask:de,listRemotesTask:ee,remoteTask:J,removeRemoteTask:Pe}=(V4(),Ke(hx)),{getResetMode:me,resetTask:F}=(l_(),Ke(a_)),{stashListTask:z}=(q4(),Ke(px)),{addSubModuleTask:N,initSubModuleTask:Me,subModuleTask:Dt,updateSubModuleTask:_t}=(K4(),Ke(mx)),{addAnnotatedTagTask:Ee,addTagTask:st,tagListTask:ot}=(i$(),Ke(yx)),{straightThroughBufferTask:Ct,straightThroughStringTask:$e}=(tt(),Ke(Gp));function G(L,Y){this._plugins=Y,this._executor=new r(L.baseDir,new i(L.maxConcurrentProcesses),Y),this._trimmed=L.trimmed}(G.prototype=Object.create(n.prototype)).constructor=G,G.prototype.customBinary=function(L){return this._plugins.reconfigure("binary",L),this},G.prototype.env=function(L,Y){return arguments.length===1&&typeof L=="object"?this._executor.env=L:(this._executor.env=this._executor.env||{})[L]=Y,this},G.prototype.stashList=function(L){return this._runTask(z(p(arguments)||{},o(L)&&L||[]),h(arguments))};function Le(L,Y,ye,De){return typeof ye!="string"?a(`git.${L}() requires a string 'repoPath'`):Y(ye,f(De,l),d(arguments))}G.prototype.clone=function(){return this._runTask(Le("clone",k,...arguments),h(arguments))},G.prototype.mirror=function(){return this._runTask(Le("mirror",w,...arguments),h(arguments))},G.prototype.mv=function(L,Y){return this._runTask(O(L,Y),h(arguments))},G.prototype.checkoutLatestTag=function(L){var Y=this;return this.pull(function(){Y.tags(function(ye,De){Y.checkout(De.latest,L)})})},G.prototype.pull=function(L,Y,ye,De){return this._runTask(j(f(L,l),f(Y,l),d(arguments)),h(arguments))},G.prototype.fetch=function(L,Y){return this._runTask(P(f(L,l),f(Y,l),d(arguments)),h(arguments))},G.prototype.silent=function(L){return console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"),this},G.prototype.tags=function(L,Y){return this._runTask(ot(d(arguments)),h(arguments))},G.prototype.rebase=function(){return this._runTask($e(["rebase",...d(arguments)]),h(arguments))},G.prototype.reset=function(L){return this._runTask(F(me(L),d(arguments)),h(arguments))},G.prototype.revert=function(L){let Y=h(arguments);return typeof L!="string"?this._runTask(a("Commit must be a string"),Y):this._runTask($e(["revert",...d(arguments,0,!0),L]),Y)},G.prototype.addTag=function(L){let Y=typeof L=="string"?st(L):a("Git.addTag requires a tag name");return this._runTask(Y,h(arguments))},G.prototype.addAnnotatedTag=function(L,Y){return this._runTask(Ee(L,Y),h(arguments))},G.prototype.deleteLocalBranch=function(L,Y,ye){return this._runTask(x(L,typeof Y=="boolean"?Y:!1),h(arguments))},G.prototype.deleteLocalBranches=function(L,Y,ye){return this._runTask(b(L,typeof Y=="boolean"?Y:!1),h(arguments))},G.prototype.branch=function(L,Y){return this._runTask(v(d(arguments)),h(arguments))},G.prototype.branchLocal=function(L){return this._runTask(y(),h(arguments))},G.prototype.raw=function(L){let Y=!Array.isArray(L),ye=[].slice.call(Y?arguments:L,0);for(let vt=0;vte.removeEventListener("abort",a))}}]:void 0}function l$(e){return typeof e=="string"&&e.trim().toLowerCase()==="-c"}function c$(e,t){if(l$(e)&&/^\s*protocol(.[a-z]+)?.allow/.test(t))throw new Vn(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function u$(e,t){if(/^\s*--(upload|receive)-pack/.test(e))throw new Vn(void 0,"unsafe","Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack");if(t==="clone"&&/^\s*-u\b/.test(e))throw new Vn(void 0,"unsafe","Use of clone with option -u is not permitted without enabling allowUnsafePack");if(t==="push"&&/^\s*--exec\b/.test(e))throw new Vn(void 0,"unsafe","Use of push with option --exec is not permitted without enabling allowUnsafePack")}function f$({allowUnsafeProtocolOverride:e=!1,allowUnsafePack:t=!1}={}){return{type:"spawn.args",action(r,n){return r.forEach((i,a)=>{let s=aNp(i))).then(s.done)}return{type:"spawn.after",action(i,a){return _l(this,arguments,function*(s,{spawned:o,close:c}){var l,u;let f=r(),d=!0,h=()=>void(d=!1);(l=o.stdout)==null||l.on("data",h),(u=o.stderr)==null||u.on("data",h),o.on("error",h),o.on("close",p=>f.close(p)),o.on("exit",p=>f.exit(p));try{yield f.result,d&&(yield Np(50)),c(f.exitCode)}catch(p){c(f.exitCode,p)}})}}}oe();var p$="Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings",mb="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function m$(e){return!e||!/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(e)}function gb(e,t){if(e.length<1||e.length>2)throw new Vn(void 0,"binary",p$);if(e.some(m$))if(t)console.warn(mb);else throw new Vn(void 0,"binary",mb);let[n,i]=e;return{binary:n,prefix:i}}function g$(e,t=["git"],r=!1){let n=gb(_n(t),r);e.on("binary",i=>{n=gb(_n(i),r)}),e.append("spawn.binary",()=>n.binary),e.append("spawn.args",i=>n.prefix?[n.prefix,...i]:i)}Ei();function v$(e){return!!(e.exitCode&&e.stdErr.length)}function y$(e){return Buffer.concat([...e.stdOut,...e.stdErr])}function w$(e=!1,t=v$,r=y$){return(n,i)=>!e&&n||!t(i)?n:r(i)}function vb(e){return{type:"task.error",action(t,r){let n=e(t.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});return Buffer.isBuffer(n)?{error:new yr(void 0,n.toString("utf-8"))}:{error:n}}}}oe();var b$=class{constructor(){this.plugins=new Set,this.events=new wx.EventEmitter}on(e,t){this.events.on(e,t)}reconfigure(e,t){this.events.emit(e,t)}append(e,t){let r=ke(this.plugins,{type:e,action:t});return()=>this.plugins.delete(r)}add(e){let t=[];return _n(e).forEach(r=>r&&this.plugins.add(ke(t,r))),()=>{t.forEach(r=>this.plugins.delete(r))}}exec(e,t,r){let n=t,i=Object.freeze(Object.create(r));for(let a of this.plugins)a.type===e&&(n=a.action(n,i));return n}};oe();function _$(e){let t="--progress",r=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action(a,s){return r.includes(s.method)?kb(a,t):a}},{type:"spawn.after",action(a,s){var o;s.commands.includes(t)&&((o=s.spawned.stderr)==null||o.on("data",c=>{let l=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(c.toString("utf8"));l&&e({method:s.method,stage:x$(l[1]),progress:Ie(l[2]),processed:Ie(l[3]),total:Ie(l[4])})}))}}]}function x$(e){return String(e.toLowerCase().split(" ",1))||"unknown"}oe();function S$(e){let t=Pb(e,["uid","gid"]);return{type:"spawn.options",action(r){return Ir(Ir({},t),r)}}}function E$({block:e,stdErr:t=!0,stdOut:r=!0}){if(e>0)return{type:"spawn.after",action(n,i){var a,s;let o;function c(){o&&clearTimeout(o),o=setTimeout(u,e)}function l(){var f,d;(f=i.spawned.stdout)==null||f.off("data",c),(d=i.spawned.stderr)==null||d.off("data",c),i.spawned.off("exit",l),i.spawned.off("close",l),o&&clearTimeout(o)}function u(){l(),i.kill(new Vn(void 0,"timeout","block timeout reached"))}r&&((a=i.spawned.stdout)==null||a.on("data",c)),t&&((s=i.spawned.stderr)==null||s.on("data",c)),i.spawned.on("exit",l),i.spawned.on("close",l),c()}}}kl();function A$(){return{type:"spawn.args",action(e){let t=[],r;function n(i){(r=r||[]).push(...i)}for(let i=0;iRu(s)&&H2(s)||s));break}t.push(a)}return r?[...t,"--",...r.map(String)]:t}}}oe();var k$=a$();function T$(e,t){var r;let n=new b$,i=Ib(e&&(typeof e=="string"?{baseDir:e}:e)||{},t);if(!Qp(i.baseDir))throw new s$(i,"Cannot use simple-git on a directory that does not exist");return Array.isArray(i.config)&&n.add(d$(i.config)),n.add(f$(i.unsafe)),n.add(A$()),n.add(h$(i.completion)),i.abort&&n.add(o$(i.abort)),i.progress&&n.add(_$(i.progress)),i.timeout&&n.add(E$(i.timeout)),i.spawnOptions&&n.add(S$(i.spawnOptions)),n.add(vb(w$(!0))),i.errors&&n.add(vb(i.errors)),g$(n,i.binary,(r=i.unsafe)==null?void 0:r.allowUnsafeCustomBinary),new k$(i,n)}Ms();var bx=T$;g();var _x=require("obsidian"),zu="YYYY-MM-DD",_m=`${zu} HH:mm`,xm=`${zu} HH:mm:ss`,Vu=40,Os="conflict-files-obsidian-git.md",Sn={commitMessage:"vault backup: {{date}}",commitDateFormat:xm,autoSaveInterval:0,autoPushInterval:0,autoPullInterval:0,autoPullOnBoot:!1,disablePush:!1,pullBeforePush:!0,disablePopups:!1,disablePopupsForNoChanges:!1,listChangedFilesInMessageBody:!1,showStatusBar:!0,updateSubmodules:!1,syncMethod:"merge",customMessageOnAutoBackup:!1,autoBackupAfterFileChange:!1,treeStructure:!1,refreshSourceControl:_x.Platform.isDesktopApp,basePath:"",differentIntervalCommitAndPush:!1,changedFilesInStatusBar:!1,showedMobileNotice:!1,refreshSourceControlTimer:7e3,showBranchStatusBar:!0,setLastSaveToLastCommit:!1,submoduleRecurseCheckout:!1,gitDir:"",showFileMenu:!0,authorInHistoryView:"hide",dateInHistoryView:!1,diffStyle:"split",lineAuthor:{show:!1,followMovement:"inactive",authorDisplay:"initials",showCommitHash:!1,dateTimeFormatOptions:"date",dateTimeFormatCustomString:_m,dateTimeTimezone:"viewer-local",coloringMaxAge:"1y",colorNew:{r:255,g:150,b:150},colorOld:{r:120,g:160,b:255},textColorCss:"var(--text-muted)",ignoreWhitespace:!1,gutterSpacingFallbackLength:5}},St={type:"git-view",name:"Source Control",icon:"git-pull-request"},Fr={type:"git-history-view",name:"History",icon:"history"},Ai={type:"split-diff-view",name:"Diff view",icon:"diff"},ki={type:"diff-view",name:"Diff View",icon:"git-pull-request"},Wu="C:\\Program Files\\Git\\cmd\\git.exe",qu="git_credentials_input",Is="obsidian_askpass.sh",xx=`#!/bin/sh +`);if(i=a.shift(),!i.startsWith("unpack "))throw new la('unpack ok" or "unpack [error message]',i);t.ok=i==="unpack ok",t.ok||(t.error=i.slice(7)),t.refs={};for(let s of a){if(s.trim()==="")continue;let o=s.slice(0,2),c=s.slice(3),l=c.indexOf(" ");l===-1&&(l=c.length);let u=c.slice(0,l),f=c.slice(l+1);t.refs[u]={ok:o==="ok",error:f}}return t}async function b8({capabilities:e=[],triplets:t=[]}){let r=[],n=`\0 ${e.join(" ")}`;for(let i of t)r.push(Ve.encode(`${i.oldoid} ${i.oid} ${i.fullRef}${n} +`)),n="";return r.push(Ve.flush()),r}async function _8({fs:e,cache:t,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,onPrePush:c,gitdir:l,ref:u,remoteRef:f,remote:d,url:h,force:p=!1,delete:m=!1,corsProxy:v,headers:y={}}){let b=u||await fa({fs:e,gitdir:l});if(typeof b=="undefined")throw new Qt("ref");let x=await We.get({fs:e,gitdir:l});d=d||await x.get(`branch.${b}.pushRemote`)||await x.get("remote.pushDefault")||await x.get(`branch.${b}.remote`)||"origin";let E=h||await x.get(`remote.${d}.pushurl`)||await x.get(`remote.${d}.url`);if(typeof E=="undefined")throw new Qt("remote OR url");let _=f||await x.get(`branch.${b}.merge`);if(typeof E=="undefined")throw new Qt("remoteRef");v===void 0&&(v=await x.get("http.corsProxy"));let k=await q.expand({fs:e,gitdir:l,ref:b}),w=m?"0000000000000000000000000000000000000000":await q.resolve({fs:e,gitdir:l,ref:k}),A=xs.getRemoteHelperFor({url:E}),S=await A.discover({http:r,onAuth:a,onAuthSuccess:s,onAuthFailure:o,corsProxy:v,service:"git-receive-pack",url:E,headers:y,protocolVersion:1}),T=S.auth,P;if(!_)P=k;else try{P=await q.expandAgainstMap({ref:_,map:S.refs})}catch(G){if(G instanceof Ne)P=_.startsWith("refs/")?_:`refs/heads/${_}`;else throw G}let O=S.refs.get(P)||"0000000000000000000000000000000000000000";if(c&&!await c({remote:d,url:E,localRef:{ref:m?"(delete)":k,oid:w},remoteRef:{ref:P,oid:O}}))throw new gs;let j=!S.capabilities.has("no-thin"),D=new Set;if(!m){let G=[...S.refs.values()],N=new Set;if(O!=="0000000000000000000000000000000000000000"){let Me=await Cp({fs:e,cache:t,gitdir:l,oids:[w,O]});for(let Dt of Me)G.push(Dt);j&&(N=await up({fs:e,cache:t,gitdir:l,oids:Me}))}if(!G.includes(w)){let Me=await y8({fs:e,cache:t,gitdir:l,start:[w],finish:G});D=await up({fs:e,cache:t,gitdir:l,oids:Me})}if(j){try{let Me=await q.resolve({fs:e,gitdir:l,ref:`refs/remotes/${d}/HEAD`,depth:2}),{oid:Dt}=await q.resolveAgainstMap({ref:Me.replace(`refs/remotes/${d}/`,""),fullref:Me,map:S.refs}),_t=[Dt];for(let Ee of await up({fs:e,cache:t,gitdir:l,oids:_t}))N.add(Ee)}catch(Me){}for(let Me of N)D.delete(Me)}if(w===O&&(p=!0),!p){if(k.startsWith("refs/tags")&&O!=="0000000000000000000000000000000000000000")throw new ms("tag-exists");if(w!=="0000000000000000000000000000000000000000"&&O!=="0000000000000000000000000000000000000000"&&!await E2({fs:e,cache:t,gitdir:l,oid:w,ancestor:O,depth:-1}))throw new ms("not-fast-forward")}}let Q=v2([...S.capabilities],["report-status","side-band-64k",`agent=${yu.agent}`]),de=await b8({capabilities:Q,triplets:[{oldoid:O,oid:w,fullRef:P}]}),ee=m?[]:await T2({fs:e,cache:t,gitdir:l,oids:[...D]}),J=await A.connect({http:r,onProgress:n,corsProxy:v,service:"git-receive-pack",url:E,auth:T,headers:y,body:[...de,...ee]}),{packfile:Pe,progress:me}=await fu.demux(J.body);if(i){let G=y2(me);yl(G,async N=>{await i(N)})}let F=await w8(Pe);if(J.headers&&(F.headers=J.headers),d&&F.ok&&F.refs[P].ok&&!k.startsWith("refs/tags")){let G=`refs/remotes/${d}/${P.replace("refs/heads","")}`;m?await q.deleteRef({fs:e,gitdir:l,ref:G}):await q.writeRef({fs:e,gitdir:l,ref:G,value:w})}if(F.ok&&Object.values(F.refs).every(G=>G.ok))return F;{let G=Object.entries(F.refs).filter(([N,Me])=>!Me.ok).map(([N,Me])=>` + - ${N}: ${Me.error}`).join("");throw new ol(G,F)}}async function x8({fs:e,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPrePush:o,dir:c,gitdir:l=$(c,".git"),ref:u,remoteRef:f,remote:d="origin",url:h,force:p=!1,delete:m=!1,corsProxy:v,headers:y={},cache:b={}}){try{return C("fs",e),C("http",t),C("gitdir",l),await _8({fs:new X(e),cache:b,http:t,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPrePush:o,gitdir:l,ref:u,remoteRef:f,remote:d,url:h,force:p,delete:m,corsProxy:v,headers:y})}catch(x){throw x.caller="git.push",x}}async function C2({fs:e,cache:t,gitdir:r,oid:n}){let{type:i,object:a}=await qe({fs:e,cache:t,gitdir:r,oid:n});if(i==="tag")return n=pr.from(a).parse().object,C2({fs:e,cache:t,gitdir:r,oid:n});if(i!=="blob")throw new Gt(n,i,"blob");return{oid:n,blob:new Uint8Array(a)}}async function P2({fs:e,cache:t,gitdir:r,oid:n,filepath:i=void 0}){return i!==void 0&&(n=await vl({fs:e,cache:t,gitdir:r,oid:n,filepath:i})),await C2({fs:e,cache:t,gitdir:r,oid:n})}async function wl({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,filepath:i,cache:a={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await P2({fs:new X(e),cache:a,gitdir:r,oid:n,filepath:i})}catch(s){throw s.caller="git.readBlob",s}}async function S8({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await cu({fs:new X(e),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.readCommit",a}}async function E8({fs:e,cache:t,gitdir:r,ref:n="refs/notes/commits",oid:i}){let a=await q.resolve({gitdir:r,fs:e,ref:n}),{blob:s}=await P2({fs:e,cache:t,gitdir:r,oid:a,filepath:i});return s}async function A8({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n="refs/notes/commits",oid:i,cache:a={}}){try{return C("fs",e),C("gitdir",r),C("ref",n),C("oid",i),await E8({fs:new X(e),cache:a,gitdir:r,ref:n,oid:i})}catch(s){throw s.caller="git.readNote",s}}async function k8({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,format:i="parsed",filepath:a=void 0,encoding:s=void 0,cache:o={}}){try{C("fs",e),C("gitdir",r),C("oid",n);let c=new X(e);a!==void 0&&(n=await vl({fs:c,cache:o,gitdir:r,oid:n,filepath:a}));let u=await qe({fs:c,cache:o,gitdir:r,oid:n,format:i==="parsed"?"content":i});if(u.oid=n,i==="parsed")switch(u.format="parsed",u.type){case"commit":u.object=tr.from(u.object).parse();break;case"tree":u.object=er.from(u.object).entries();break;case"blob":s?u.object=u.object.toString(s):(u.object=new Uint8Array(u.object),u.format="content");break;case"tag":u.object=pr.from(u.object).parse();break;default:throw new Gt(u.oid,u.type,"blob|commit|tag|tree")}else(u.format==="deflated"||u.format==="wrapped")&&(u.type=u.format);return u}catch(c){throw c.caller="git.readObject",c}}async function T8({fs:e,cache:t,gitdir:r,oid:n}){let{type:i,object:a}=await qe({fs:e,cache:t,gitdir:r,oid:n,format:"content"});if(i!=="tag")throw new Gt(n,i,"tag");let s=pr.from(a);return{oid:n,tag:s.parse(),payload:s.payload()}}async function C8({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,cache:i={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await T8({fs:new X(e),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.readTag",a}}async function P8({fs:e,dir:t,gitdir:r=$(t,".git"),oid:n,filepath:i=void 0,cache:a={}}){try{return C("fs",e),C("gitdir",r),C("oid",n),await Ss({fs:new X(e),cache:a,gitdir:r,oid:n,filepath:i})}catch(s){throw s.caller="git.readTree",s}}async function R8({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n,cache:i={}}){try{C("fs",e),C("gitdir",r),C("filepath",n),await mt.acquire({fs:new X(e),gitdir:r,cache:i},async function(a){a.delete({filepath:n})})}catch(a){throw a.caller="git.remove",a}}async function M8({fs:e,cache:t,onSign:r,gitdir:n,ref:i="refs/notes/commits",oid:a,author:s,committer:o,signingKey:c}){let l;try{l=await q.resolve({gitdir:n,fs:e,ref:i})}catch(p){if(!(p instanceof Ne))throw p}let f=(await Ss({fs:e,gitdir:n,oid:l||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;f=f.filter(p=>p.path!==a);let d=await Ap({fs:e,gitdir:n,tree:f});return await vu({fs:e,cache:t,onSign:r,gitdir:n,ref:i,tree:d,parent:l&&[l],message:`Note removed by 'isomorphic-git removeNote' +`,author:s,committer:o,signingKey:c})}async function O8({fs:e,onSign:t,dir:r,gitdir:n=$(r,".git"),ref:i="refs/notes/commits",oid:a,author:s,committer:o,signingKey:c,cache:l={}}){try{C("fs",e),C("gitdir",n),C("oid",a);let u=new X(e),f=await ca({fs:u,gitdir:n,author:s});if(!f)throw new zt("author");let d=await bs({fs:u,gitdir:n,author:f,committer:o});if(!d)throw new zt("committer");return await M8({fs:u,cache:l,onSign:t,gitdir:n,ref:i,oid:a,author:f,committer:d,signingKey:c})}catch(u){throw u.caller="git.removeNote",u}}async function I8({fs:e,gitdir:t,oldref:r,ref:n,checkout:i=!1}){if(n!==Jr.default.clean(n))throw new zn(n,Jr.default.clean(n));if(r!==Jr.default.clean(r))throw new zn(r,Jr.default.clean(r));let a=`refs/heads/${r}`,s=`refs/heads/${n}`;if(await q.exists({fs:e,gitdir:t,ref:s}))throw new Qr("branch",n,!1);let c=await q.resolve({fs:e,gitdir:t,ref:a,depth:1});await q.writeRef({fs:e,gitdir:t,ref:s,value:c}),await q.deleteRef({fs:e,gitdir:t,ref:a});let u=await fa({fs:e,gitdir:t,fullname:!0})===a;(i||u)&&await q.writeSymbolicRef({fs:e,gitdir:t,ref:"HEAD",value:s})}async function F8({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,oldref:i,checkout:a=!1}){try{return C("fs",e),C("gitdir",r),C("ref",n),C("oldref",i),await I8({fs:new X(e),gitdir:r,ref:n,oldref:i,checkout:a})}catch(s){throw s.caller="git.renameBranch",s}}async function R2({gitdir:e,type:t,object:r}){return Gn(_i.wrap({type:t,object:r}))}async function $8({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n,ref:i,cache:a={}}){try{C("fs",e),C("gitdir",r),C("filepath",n);let s=new X(e),o,c;try{o=await q.resolve({fs:s,gitdir:r,ref:i||"HEAD"})}catch(f){if(i)throw f}if(o)try{o=await vl({fs:s,cache:a,gitdir:r,oid:o,filepath:n})}catch(f){o=null}let l={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:0,uid:0,gid:0,size:0},u=t&&await s.read($(t,n));u&&(c=await R2({gitdir:r,type:"blob",object:u}),o===c&&(l=await s.lstat($(t,n)))),await mt.acquire({fs:s,gitdir:r,cache:a},async function(f){f.delete({filepath:n}),o&&f.insert({filepath:n,stats:l,oid:o})})}catch(s){throw s.caller="git.reset",s}}async function L8({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,depth:i}){try{return C("fs",e),C("gitdir",r),C("ref",n),await q.resolve({fs:new X(e),gitdir:r,ref:n,depth:i})}catch(a){throw a.caller="git.resolveRef",a}}async function D8({fs:e,dir:t,gitdir:r=$(t,".git"),path:n,value:i,append:a=!1}){try{C("fs",e),C("gitdir",r),C("path",n);let s=new X(e),o=await We.get({fs:s,gitdir:r});a?await o.append(n,i):await o.set(n,i),await We.save({fs:s,gitdir:r,config:o})}catch(s){throw s.caller="git.setConfig",s}}async function N8({fs:e,dir:t,gitdir:r=$(t,".git"),filepath:n,cache:i={}}){try{C("fs",e),C("gitdir",r),C("filepath",n);let a=new X(e);if(await ws.isIgnored({fs:a,gitdir:r,dir:t,filepath:n}))return"ignored";let o=await j8({fs:a,cache:i,gitdir:r}),c=await M2({fs:a,cache:i,gitdir:r,tree:o,path:n}),l=await mt.acquire({fs:a,gitdir:r,cache:i},async function(m){for(let v of m)if(v.path===n)return v;return null}),u=await a.lstat($(t,n)),f=c!==null,d=l!==null,h=u!==null,p=async()=>{if(d&&!ru(l,u))return l.oid;{let m=await a.read($(t,n)),v=await R2({gitdir:r,type:"blob",object:m});return d&&l.oid===v&&u.size!==-1&&mt.acquire({fs:a,gitdir:r,cache:i},async function(y){y.insert({filepath:n,stats:u,oid:v})}),v}};if(!f&&!h&&!d)return"absent";if(!f&&!h&&d)return"*absent";if(!f&&h&&!d)return"*added";if(!f&&h&&d)return await p()===l.oid?"added":"*added";if(f&&!h&&!d)return"deleted";if(f&&!h&&d)return c===l.oid,"*deleted";if(f&&h&&!d)return await p()===c?"*undeleted":"*undeletemodified";if(f&&h&&d){let m=await p();return m===c?m===l.oid?"unmodified":"*unmodified":m===l.oid?"modified":"*modified"}}catch(a){throw a.caller="git.status",a}}async function M2({fs:e,cache:t,gitdir:r,tree:n,path:i}){typeof i=="string"&&(i=i.split("/"));let a=i.shift();for(let s of n)if(s.path===a){if(i.length===0)return s.oid;let{type:o,object:c}=await qe({fs:e,cache:t,gitdir:r,oid:s.oid});if(o==="tree"){let l=er.from(c);return M2({fs:e,cache:t,gitdir:r,tree:l,path:i})}if(o==="blob")throw new Gt(s.oid,o,"blob",i.join("/"))}return null}async function j8({fs:e,cache:t,gitdir:r}){let n;try{n=await q.resolve({fs:e,gitdir:r,ref:"HEAD"})}catch(a){if(a instanceof Ne)return[]}let{tree:i}=await Ss({fs:e,cache:t,gitdir:r,oid:n});return i}async function B8({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n="HEAD",filepaths:i=["."],filter:a,cache:s={},ignored:o=!1}){try{C("fs",e),C("gitdir",r),C("ref",n);let c=new X(e);return await ys({fs:c,cache:s,dir:t,gitdir:r,trees:[wi({ref:n}),gu(),mu()],map:async function(l,[u,f,d]){if(!u&&!d&&f&&!o&&await ws.isIgnored({fs:c,dir:t,filepath:l})||!i.some(k=>m2(l,k)))return null;if(a&&!a(l))return;let[h,p,m]=await Promise.all([u&&u.type(),f&&f.type(),d&&d.type()]),v=[h,p,m].includes("blob");if((h==="tree"||h==="special")&&!v)return;if(h==="commit")return null;if((p==="tree"||p==="special")&&!v)return;if(m==="commit")return null;if((m==="tree"||m==="special")&&!v)return;let y=h==="blob"?await u.oid():void 0,b=m==="blob"?await d.oid():void 0,x;h!=="blob"&&p==="blob"&&m!=="blob"?x="42":p==="blob"&&(x=await f.oid());let E=[void 0,y,x,b],_=E.map(k=>E.indexOf(k));return _.shift(),[l,..._]}})}catch(c){throw c.caller="git.statusMatrix",c}}async function H8({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,object:i,force:a=!1}){try{C("fs",e),C("gitdir",r),C("ref",n);let s=new X(e);if(n===void 0)throw new Qt("ref");n=n.startsWith("refs/tags/")?n:`refs/tags/${n}`;let o=await q.resolve({fs:s,gitdir:r,ref:i||"HEAD"});if(!a&&await q.exists({fs:s,gitdir:r,ref:n}))throw new Qr("tag",n);await q.writeRef({fs:s,gitdir:r,ref:n,value:o})}catch(s){throw s.caller="git.tag",s}}async function U8({fs:e,dir:t,gitdir:r=$(t,".git"),cache:n={},filepath:i,oid:a,mode:s,add:o,remove:c,force:l}){try{C("fs",e),C("gitdir",r),C("filepath",i);let u=new X(e);if(c)return await mt.acquire({fs:u,gitdir:r,cache:n},async function(d){let h;if(!l&&(h=await u.lstat($(t,i)),h)){if(h.isDirectory())throw new xi("directory");return}d.has({filepath:i})&&d.delete({filepath:i})});let f;if(!a){if(f=await u.lstat($(t,i)),!f)throw new Ne(`file at "${i}" on disk and "remove" not set`);if(f.isDirectory())throw new xi("directory")}return await mt.acquire({fs:u,gitdir:r,cache:n},async function(d){if(!o&&!d.has({filepath:i}))throw new Ne(`file at "${i}" in index and "add" not set`);let h={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:s,uid:0,gid:0,size:0};if(!a){h=f;let p=h.isSymbolicLink()?await u.readlink($(t,i)):await u.read($(t,i));a=await mr({fs:u,gitdir:r,type:"blob",format:"content",object:p})}return d.insert({filepath:i,oid:a,stats:h}),a})}catch(u){throw u.caller="git.updateIndex",u}}function G8(){try{return yu.version}catch(e){throw e.caller="git.version",e}}async function z8({fs:e,dir:t,gitdir:r=$(t,".git"),trees:n,map:i,reduce:a,iterate:s,cache:o={}}){try{return C("fs",e),C("gitdir",r),C("trees",n),await ys({fs:new X(e),cache:o,dir:t,gitdir:r,trees:n,map:i,reduce:a,iterate:s})}catch(c){throw c.caller="git.walk",c}}async function V8({fs:e,dir:t,gitdir:r=$(t,".git"),blob:n}){try{return C("fs",e),C("gitdir",r),C("blob",n),await mr({fs:new X(e),gitdir:r,type:"blob",object:n,format:"content"})}catch(i){throw i.caller="git.writeBlob",i}}async function W8({fs:e,gitdir:t,commit:r}){let n=tr.from(r).toObject();return await mr({fs:e,gitdir:t,type:"commit",object:n,format:"content"})}async function q8({fs:e,dir:t,gitdir:r=$(t,".git"),commit:n}){try{return C("fs",e),C("gitdir",r),C("commit",n),await W8({fs:new X(e),gitdir:r,commit:n})}catch(i){throw i.caller="git.writeCommit",i}}async function Y8({fs:e,dir:t,gitdir:r=$(t,".git"),type:n,object:i,format:a="parsed",oid:s,encoding:o=void 0}){try{let c=new X(e);if(a==="parsed"){switch(n){case"commit":i=tr.from(i).toObject();break;case"tree":i=er.from(i).toObject();break;case"blob":i=Buffer.from(i,o);break;case"tag":i=pr.from(i).toObject();break;default:throw new Gt(s||"",n,"blob|commit|tag|tree")}a="content"}return s=await mr({fs:c,gitdir:r,type:n,object:i,oid:s,format:a}),s}catch(c){throw c.caller="git.writeObject",c}}async function X8({fs:e,dir:t,gitdir:r=$(t,".git"),ref:n,value:i,force:a=!1,symbolic:s=!1}){try{C("fs",e),C("gitdir",r),C("ref",n),C("value",i);let o=new X(e);if(n!==Jr.default.clean(n))throw new zn(n,Jr.default.clean(n));if(!a&&await q.exists({fs:o,gitdir:r,ref:n}))throw new Qr("ref",n);s?await q.writeSymbolicRef({fs:o,gitdir:r,ref:n,value:i}):(i=await q.resolve({fs:o,gitdir:r,ref:i}),await q.writeRef({fs:o,gitdir:r,ref:n,value:i}))}catch(o){throw o.caller="git.writeRef",o}}async function Z8({fs:e,gitdir:t,tag:r}){let n=pr.from(r).toObject();return await mr({fs:e,gitdir:t,type:"tag",object:n,format:"content"})}async function K8({fs:e,dir:t,gitdir:r=$(t,".git"),tag:n}){try{return C("fs",e),C("gitdir",r),C("tag",n),await Z8({fs:new X(e),gitdir:r,tag:n})}catch(i){throw i.caller="git.writeTag",i}}async function J8({fs:e,dir:t,gitdir:r=$(t,".git"),tree:n}){try{return C("fs",e),C("gitdir",r),C("tree",n),await Ap({fs:new X(e),gitdir:r,tree:n})}catch(i){throw i.caller="git.writeTree",i}}var Q8={Errors:gl,STAGE:mu,TREE:wi,WORKDIR:gu,add:JM,abortMerge:qM,addNote:eO,addRemote:tO,annotatedTag:nO,branch:aO,checkout:oO,clone:yO,commit:wO,getConfig:BO,getConfigAll:UO,setConfig:D8,currentBranch:bO,deleteBranch:xO,deleteRef:SO,deleteRemote:AO,deleteTag:TO,expandOid:MO,expandRef:OO,fastForward:LO,fetch:DO,findMergeBase:NO,findRoot:jO,getRemoteInfo:GO,getRemoteInfo2:zO,hashBlob:WO,indexPack:YO,init:XO,isDescendent:ZO,isIgnored:KO,listBranches:JO,listFiles:e8,listNotes:r8,listRemotes:i8,listServerRefs:o8,listTags:l8,log:d8,merge:h8,packObjects:g8,pull:v8,push:x8,readBlob:wl,readCommit:S8,readNote:A8,readObject:k8,readTag:C8,readTree:P8,remove:R8,removeNote:O8,renameBranch:F8,resetIndex:$8,updateIndex:U8,resolveRef:L8,status:N8,statusMatrix:B8,tag:H8,version:G8,walk:z8,writeBlob:V8,writeCommit:q8,writeObject:Y8,writeRef:X8,writeTag:K8,writeTree:J8},ie=Q8;var OP=ze(require("path")),Ce=require("obsidian");g();var Sa=require("obsidian");g();var qg=require("child_process"),yT=ze(_u()),Zn=ze(require("fs/promises")),Xn=require("obsidian"),Be=ze(require("path")),Vl=require("path");g();var $u=ze(D2(),1),Mu=ze(_u(),1),c_=require("child_process"),W_=ze(Rp(),1),Cs=ze(Rp(),1),yx=require("node:events"),Iu=Object.defineProperty,yI=Object.defineProperties,wI=Object.getOwnPropertyDescriptor,bI=Object.getOwnPropertyDescriptors,Zp=Object.getOwnPropertyNames,N2=Object.getOwnPropertySymbols,vb=Object.prototype.hasOwnProperty,_I=Object.prototype.propertyIsEnumerable,j2=(e,t,r)=>t in e?Iu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Fr=(e,t)=>{for(var r in t||(t={}))vb.call(t,r)&&j2(e,r,t[r]);if(N2)for(var r of N2(t))_I.call(t,r)&&j2(e,r,t[r]);return e},xl=(e,t)=>yI(e,bI(t)),W=(e,t)=>function(){return e&&(t=(0,e[Zp(e)[0]])(e=0)),t},xI=(e,t)=>function(){return t||(0,e[Zp(e)[0]])((t={exports:{}}).exports,t),t.exports},rt=(e,t)=>{for(var r in t)Iu(e,r,{get:t[r],enumerable:!0})},SI=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Zp(t))!vb.call(e,i)&&i!==r&&Iu(e,i,{get:()=>t[i],enumerable:!(n=wI(t,i))||n.enumerable});return e},Ke=e=>SI(Iu({},"__esModule",{value:!0}),e),_l=(e,t,r)=>new Promise((n,i)=>{var a=c=>{try{o(r.next(c))}catch(l){i(l)}},s=c=>{try{o(r.throw(c))}catch(l){i(l)}},o=c=>c.done?n(c.value):Promise.resolve(c.value).then(a,s);o((r=r.apply(e,t)).next())});function EI(...e){let t=new String(e);return Fu.set(t,e),t}function Pu(e){return e instanceof String&&Fu.has(e)}function B2(e){return Fu.get(e)||[]}var Fu,kl=W({"src/lib/args/pathspec.ts"(){"use strict";Fu=new WeakMap}}),wr,Ei=W({"src/lib/errors/git-error.ts"(){"use strict";wr=class extends Error{constructor(e,t){super(t),this.task=e,Object.setPrototypeOf(this,new.target.prototype)}}}}),Tl,Rs=W({"src/lib/errors/git-response-error.ts"(){"use strict";Ei(),Tl=class extends wr{constructor(e,t){super(void 0,t||String(e)),this.git=e}}}}),yb,wb=W({"src/lib/errors/task-configuration-error.ts"(){"use strict";Ei(),yb=class extends wr{constructor(e){super(void 0,e)}}}});function bb(e){return typeof e=="function"?e:ga}function _b(e){return typeof e=="function"&&e!==ga}function xb(e,t){let r=e.indexOf(t);return r<=0?[e,""]:[e.substr(0,r),e.substr(r+1)]}function Sb(e,t=0){return Eb(e)&&e.length>t?e[t]:void 0}function ma(e,t=0){if(Eb(e)&&e.length>t)return e[e.length-1-t]}function Eb(e){return!!(e&&typeof e.length=="number")}function Cl(e="",t=!0,r=` +`){return e.split(r).reduce((n,i)=>{let a=t?i.trim():i;return a&&n.push(a),n},[])}function Kp(e,t){return Cl(e,!0).map(r=>t(r))}function Jp(e){return(0,$u.exists)(e,$u.FOLDER)}function ke(e,t){return Array.isArray(e)?e.includes(t)||e.push(t):e.add(t),t}function Ab(e,t){return Array.isArray(e)&&!e.includes(t)&&e.push(t),e}function Lu(e,t){if(Array.isArray(e)){let r=e.indexOf(t);r>=0&&e.splice(r,1)}else e.delete(t);return t}function xn(e){return Array.isArray(e)?e:[e]}function kb(e){return e.replace(/[\s-]+(.)/g,(t,r)=>r.toUpperCase())}function Tb(e){return xn(e).map(String)}function Ie(e,t=0){if(e==null)return t;let r=parseInt(e,10);return isNaN(r)?t:r}function Sl(e,t){let r=[];for(let n=0,i=e.length;nr in e?{[r]:e[r]}:{}))}function Dp(e=0){return new Promise(t=>setTimeout(t,e))}function Np(e){if(e!==!1)return e}var Ps,ga,Pl,Du=W({"src/lib/utils/util.ts"(){"use strict";Ps="\0",ga=()=>{},Pl=Object.prototype.toString.call.bind(Object.prototype.toString)}});function Sn(e,t,r){return t(e)?e:arguments.length>2?r:void 0}function Qp(e,t){let r=Pu(e)?"string":typeof e;return/number|string|boolean/.test(r)&&(!t||!t.includes(r))}function em(e){return!!e&&Pl(e)==="[object Object]"}function Pb(e){return typeof e=="function"}var Rl,Pt,Rb,Ru,tm,Mb=W({"src/lib/utils/argument-filters.ts"(){"use strict";Du(),kl(),Rl=e=>Array.isArray(e),Pt=e=>typeof e=="string",Rb=e=>Array.isArray(e)&&e.every(Pt),Ru=e=>Pt(e)||Array.isArray(e)&&e.every(Pt),tm=e=>e==null||"number|boolean|function".includes(typeof e)?!1:Array.isArray(e)||typeof e=="string"||typeof e.length=="number"}}),jp,AI=W({"src/lib/utils/exit-codes.ts"(){"use strict";jp=(e=>(e[e.SUCCESS=0]="SUCCESS",e[e.ERROR=1]="ERROR",e[e.NOT_FOUND=-2]="NOT_FOUND",e[e.UNCLEAN=128]="UNCLEAN",e))(jp||{})}}),Al,kI=W({"src/lib/utils/git-output-streams.ts"(){"use strict";Al=class{constructor(e,t){this.stdOut=e,this.stdErr=t}asStrings(){return new Al(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}}),ce,Si,TI=W({"src/lib/utils/line-parser.ts"(){"use strict";ce=class{constructor(e,t){this.matches=[],this.parse=(r,n)=>(this.resetMatches(),this._regExp.every((i,a)=>this.addMatch(i,a,r(a)))?this.useMatches(n,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(e)?e:[e],t&&(this.useMatches=t)}useMatches(e,t){throw new Error("LineParser:useMatches not implemented")}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(e,t,r){let n=r&&e.exec(r);return n&&this.pushMatch(t,n),!!n}pushMatch(e,t){this.matches.push(...t.slice(1))}},Si=class extends ce{addMatch(e,t,r){return/^remote:\s/.test(String(r))&&super.addMatch(e,t,r)}pushMatch(e,t){(e>0||t.length>1)&&super.pushMatch(e,t)}}}});function Ob(...e){let t=process.cwd(),r=Object.assign(Fr({baseDir:t},Ib),...e.filter(n=>typeof n=="object"&&n));return r.baseDir=r.baseDir||t,r.trimmed=r.trimmed===!0,r}var Ib,CI=W({"src/lib/utils/simple-git-options.ts"(){"use strict";Ib={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function rm(e,t=[]){return em(e)?Object.keys(e).reduce((r,n)=>{let i=e[n];return Pu(i)?r.push(i):Qp(i,["boolean"])?r.push(n+"="+i):r.push(n),r},t):t}function rr(e,t=0,r=!1){let n=[];for(let i=0,a=t<0?e.length:t;i{for(let a=Cl(i,n),s=0,o=a.length;s{if(!(s+l>=o))return a[s+l]};t.some(({parse:l})=>l(c,e))}}),e}var MI=W({"src/lib/utils/task-parser.ts"(){"use strict";Du()}}),Fb={};rt(Fb,{ExitCodes:()=>jp,GitOutputStreams:()=>Al,LineParser:()=>ce,NOOP:()=>ga,NULL:()=>Ps,RemoteLineParser:()=>Si,append:()=>ke,appendTaskOptions:()=>rm,asArray:()=>xn,asCamelCase:()=>kb,asFunction:()=>bb,asNumber:()=>Ie,asStringArray:()=>Tb,bufferToString:()=>El,callTaskParser:()=>Bp,createInstanceConfig:()=>Ob,delay:()=>Dp,filterArray:()=>Rl,filterFunction:()=>Pb,filterHasLength:()=>tm,filterPlainObject:()=>em,filterPrimitives:()=>Qp,filterString:()=>Pt,filterStringArray:()=>Rb,filterStringOrStringArray:()=>Ru,filterType:()=>Sn,first:()=>Sb,folderExists:()=>Jp,forEachLineWithContent:()=>Kp,getTrailingOptions:()=>rr,including:()=>Ab,isUserFunction:()=>_b,last:()=>ma,objectToString:()=>Pl,orVoid:()=>Np,parseStringResponse:()=>ir,pick:()=>Cb,prefixedArray:()=>Sl,remove:()=>Lu,splitOn:()=>xb,toLinesWithContent:()=>Cl,trailingFunctionArgument:()=>Je,trailingOptionsArgument:()=>nm});var oe=W({"src/lib/utils/index.ts"(){"use strict";Mb(),AI(),kI(),TI(),CI(),RI(),MI(),Du()}}),$b={};rt($b,{CheckRepoActions:()=>Hp,checkIsBareRepoTask:()=>Db,checkIsRepoRootTask:()=>Lb,checkIsRepoTask:()=>OI});function OI(e){switch(e){case"bare":return Db();case"root":return Lb()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:Nu,parser:im}}function Lb(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:Nu,parser(t){return/^\.(git)?$/.test(t.trim())}}}function Db(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:Nu,parser:im}}function II(e){return/(Not a git repository|Kein Git-Repository)/i.test(String(e))}var Hp,Nu,im,Nb=W({"src/lib/tasks/check-is-repo.ts"(){"use strict";oe(),Hp=(e=>(e.BARE="bare",e.IN_TREE="tree",e.IS_REPO_ROOT="root",e))(Hp||{}),Nu=({exitCode:e},t,r,n)=>{if(e===128&&II(t))return r(Buffer.from("false"));n(t)},im=e=>e.trim()==="true"}});function FI(e,t){let r=new jb(e),n=e?Hb:Bb;return Cl(t).forEach(i=>{let a=i.replace(n,"");r.paths.push(a),(Ub.test(a)?r.folders:r.files).push(a)}),r}var jb,Bb,Hb,Ub,$I=W({"src/lib/responses/CleanSummary.ts"(){"use strict";oe(),jb=class{constructor(e){this.dryRun=e,this.paths=[],this.files=[],this.folders=[]}},Bb=/^[a-z]+\s*/i,Hb=/^[a-z]+\s+[a-z]+\s*/i,Ub=/\/$/}}),Up={};rt(Up,{EMPTY_COMMANDS:()=>ju,adhocExecTask:()=>Gb,configurationErrorTask:()=>nr,isBufferTask:()=>Vb,isEmptyTask:()=>Wb,straightThroughBufferTask:()=>zb,straightThroughStringTask:()=>Vt});function Gb(e){return{commands:ju,format:"empty",parser:e}}function nr(e){return{commands:ju,format:"empty",parser(){throw typeof e=="string"?new yb(e):e}}}function Vt(e,t=!1){return{commands:e,format:"utf-8",parser(r){return t?String(r).trim():r}}}function zb(e){return{commands:e,format:"buffer",parser(t){return t}}}function Vb(e){return e.format==="buffer"}function Wb(e){return e.format==="empty"||!e.commands.length}var ju,tt=W({"src/lib/tasks/task.ts"(){"use strict";wb(),ju=[]}}),qb={};rt(qb,{CONFIG_ERROR_INTERACTIVE_MODE:()=>am,CONFIG_ERROR_MODE_REQUIRED:()=>sm,CONFIG_ERROR_UNKNOWN_OPTION:()=>om,CleanOptions:()=>Au,cleanTask:()=>Yb,cleanWithOptionsTask:()=>LI,isCleanOptionsArray:()=>DI});function LI(e,t){let{cleanMode:r,options:n,valid:i}=NI(e);return r?i.options?(n.push(...t),n.some(HI)?nr(am):Yb(r,n)):nr(om+JSON.stringify(e)):nr(sm)}function Yb(e,t){return{commands:["clean",`-${e}`,...t],format:"utf-8",parser(n){return FI(e==="n",n)}}}function DI(e){return Array.isArray(e)&&e.every(t=>lm.has(t))}function NI(e){let t,r=[],n={cleanMode:!1,options:!0};return e.replace(/[^a-z]i/g,"").split("").forEach(i=>{jI(i)?(t=i,n.cleanMode=!0):n.options=n.options&&BI(r[r.length]=`-${i}`)}),{cleanMode:t,options:r,valid:n}}function jI(e){return e==="f"||e==="n"}function BI(e){return/^-[a-z]$/i.test(e)&&lm.has(e.charAt(1))}function HI(e){return/^-[^\-]/.test(e)?e.indexOf("i")>0:e==="--interactive"}var am,sm,om,Au,lm,Xb=W({"src/lib/tasks/clean.ts"(){"use strict";$I(),oe(),tt(),am="Git clean interactive mode is not supported",sm='Git clean mode parameter ("n" or "f") is required',om="Git clean unknown option found in: ",Au=(e=>(e.DRY_RUN="n",e.FORCE="f",e.IGNORED_INCLUDED="x",e.IGNORED_ONLY="X",e.EXCLUDING="e",e.QUIET="q",e.RECURSIVE="d",e))(Au||{}),lm=new Set(["i",...Tb(Object.values(Au))])}});function UI(e){let t=new Kb;for(let r of Zb(e))t.addValue(r.file,String(r.key),r.value);return t}function GI(e,t){let r=null,n=[],i=new Map;for(let a of Zb(e,t))a.key===t&&(n.push(r=a.value),i.has(a.file)||i.set(a.file,[]),i.get(a.file).push(r));return{key:t,paths:Array.from(i.keys()),scopes:i,value:r,values:n}}function zI(e){return e.replace(/^(file):/,"")}function*Zb(e,t=null){let r=e.split("\0");for(let n=0,i=r.length-1;nObject.assign(e,this.values[t]),{})),this._all}addFile(e){if(!(e in this.values)){let t=ma(this.files);this.values[e]=t?Object.create(this.values[t]):{},this.files.push(e)}return this.values[e]}addValue(e,t,r){let n=this.addFile(e);n.hasOwnProperty(t)?Array.isArray(n[t])?n[t].push(r):n[t]=[n[t],r]:n[t]=r,this._all=void 0}}}});function Mp(e,t){return typeof e=="string"&&Gp.hasOwnProperty(e)?e:t}function WI(e,t,r,n){let i=["config",`--${n}`];return r&&i.push("--add"),i.push(e,t),{commands:i,format:"utf-8",parser(a){return a}}}function qI(e,t){let r=["config","--null","--show-origin","--get-all",e];return t&&r.splice(1,0,`--${t}`),{commands:r,format:"utf-8",parser(n){return GI(n,e)}}}function YI(e){let t=["config","--list","--show-origin","--null"];return e&&t.push(`--${e}`),{commands:t,format:"utf-8",parser(r){return UI(r)}}}function XI(){return{addConfig(e,t,...r){return this._runTask(WI(e,t,r[0]===!0,Mp(r[1],"local")),Je(arguments))},getConfig(e,t){return this._runTask(qI(e,Mp(t,void 0)),Je(arguments))},listConfig(...e){return this._runTask(YI(Mp(e[0],void 0)),Je(arguments))}}}var Gp,Jb=W({"src/lib/tasks/config.ts"(){"use strict";VI(),oe(),Gp=(e=>(e.system="system",e.global="global",e.local="local",e.worktree="worktree",e))(Gp||{})}});function ZI(e){return Qb.has(e)}var Op,Qb,e_=W({"src/lib/tasks/diff-name-status.ts"(){"use strict";Op=(e=>(e.ADDED="A",e.COPIED="C",e.DELETED="D",e.MODIFIED="M",e.RENAMED="R",e.CHANGED="T",e.UNMERGED="U",e.UNKNOWN="X",e.BROKEN="B",e))(Op||{}),Qb=new Set(Object.values(Op))}});function KI(...e){return new r_().param(...e)}function JI(e){let t=new Set,r={};return Kp(e,n=>{let[i,a,s]=n.split(Ps);t.add(i),(r[i]=r[i]||[]).push({line:Ie(a),path:i,preview:s})}),{paths:t,results:r}}function QI(){return{grep(e){let t=Je(arguments),r=rr(arguments);for(let i of t_)if(r.includes(i))return this._runTask(nr(`git.grep: use of "${i}" is not supported.`),t);typeof e=="string"&&(e=KI().param(e));let n=["grep","--null","-n","--full-name",...r,...e];return this._runTask({commands:n,format:"utf-8",parser(i){return JI(i)}},t)}}}var t_,bl,H2,r_,n_=W({"src/lib/tasks/grep.ts"(){"use strict";oe(),tt(),t_=["-h"],bl=Symbol("grepQuery"),r_=class{constructor(){this[H2]=[]}*[(H2=bl,Symbol.iterator)](){for(let e of this[bl])yield e}and(...e){return e.length&&this[bl].push("--and","(",...Sl(e,"-e"),")"),this}param(...e){return this[bl].push(...Sl(e,"-e")),this}}}}),i_={};rt(i_,{ResetMode:()=>ku,getResetMode:()=>tF,resetTask:()=>eF});function eF(e,t){let r=["reset"];return a_(e)&&r.push(`--${e}`),r.push(...t),Vt(r)}function tF(e){if(a_(e))return e;switch(typeof e){case"string":case"undefined":return"soft"}}function a_(e){return s_.includes(e)}var ku,s_,o_=W({"src/lib/tasks/reset.ts"(){"use strict";tt(),ku=(e=>(e.MIXED="mixed",e.SOFT="soft",e.HARD="hard",e.MERGE="merge",e.KEEP="keep",e))(ku||{}),s_=Array.from(Object.values(ku))}});function rF(){return(0,Mu.default)("simple-git")}function U2(e,t,r){return!t||!String(t).replace(/\s*/,"")?r?(n,...i)=>{e(n,...i),r(n,...i)}:e:(n,...i)=>{e(`%s ${n}`,t,...i),r&&r(n,...i)}}function nF(e,t,{namespace:r}){if(typeof e=="string")return e;let n=t&&t.namespace||"";return n.startsWith(r)?n.substr(r.length+1):n||r}function cm(e,t,r,n=rF()){let i=e&&`[${e}]`||"",a=[],s=typeof t=="string"?n.extend(t):t,o=nF(Sn(t,Pt),s,n);return l(r);function c(u,f){return ke(a,cm(e,o.replace(/^[^:]+/,u),f,n))}function l(u){let f=u&&`[${u}]`||"",d=s&&U2(s,f)||ga,h=U2(n,`${i} ${f}`,d);return Object.assign(s?d:h,{label:e,sibling:c,info:h,step:l})}}var l_=W({"src/lib/git-logger.ts"(){"use strict";oe(),Mu.default.formatters.L=e=>String(tm(e)?e.length:"-"),Mu.default.formatters.B=e=>Buffer.isBuffer(e)?e.toString("utf8"):Pl(e)}}),Su,zp,iF=W({"src/lib/runners/tasks-pending-queue.ts"(){"use strict";Ei(),l_(),Su=class{constructor(e="GitExecutor"){this.logLabel=e,this._queue=new Map}withProgress(e){return this._queue.get(e)}createProgress(e){let t=Su.getName(e.commands[0]),r=cm(this.logLabel,t);return{task:e,logger:r,name:t}}push(e){let t=this.createProgress(e);return t.logger("Adding task to the queue, commands = %o",e.commands),this._queue.set(e,t),t}fatal(e){for(let[t,{logger:r}]of Array.from(this._queue.entries()))t===e.task?(r.info("Failed %o",e),r("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):r.info("A fatal exception occurred in a previous task, the queue has been purged: %o",e.message),this.complete(t);if(this._queue.size!==0)throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(e){this.withProgress(e)&&this._queue.delete(e)}attempt(e){let t=this.withProgress(e);if(!t)throw new wr(void 0,"TasksPendingQueue: attempt called for an unknown task");return t.logger("Starting task"),t}static getName(e="empty"){return`task:${e}:${++Su.counter}`}},zp=Su,zp.counter=0}});function pa(e,t){return{method:Sb(e.commands)||"",commands:t}}function aF(e,t){return r=>{t("[ERROR] child process exception %o",r),e.push(Buffer.from(String(r.stack),"ascii"))}}function G2(e,t,r,n){return i=>{r("%s received %L bytes",t,i),n("%B",i),e.push(i)}}var Vp,sF=W({"src/lib/runners/git-executor-chain.ts"(){"use strict";Ei(),tt(),oe(),iF(),Vp=class{constructor(e,t,r){this._executor=e,this._scheduler=t,this._plugins=r,this._chain=Promise.resolve(),this._queue=new zp}get cwd(){return this._cwd||this._executor.cwd}set cwd(e){this._cwd=e}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(e){return this._queue.push(e),this._chain=this._chain.then(()=>this.attemptTask(e))}attemptTask(e){return _l(this,null,function*(){let t=yield this._scheduler.next(),r=()=>this._queue.complete(e);try{let{logger:n}=this._queue.attempt(e);return yield Wb(e)?this.attemptEmptyTask(e,n):this.attemptRemoteTask(e,n)}catch(n){throw this.onFatalException(e,n)}finally{r(),t()}})}onFatalException(e,t){let r=t instanceof wr?Object.assign(t,{task:e}):new wr(e,t&&String(t));return this._chain=Promise.resolve(),this._queue.fatal(r),r}attemptRemoteTask(e,t){return _l(this,null,function*(){let r=this._plugins.exec("spawn.binary","",pa(e,e.commands)),n=this._plugins.exec("spawn.args",[...e.commands],pa(e,e.commands)),i=yield this.gitResponse(e,r,n,this.outputHandler,t.step("SPAWN")),a=yield this.handleTaskData(e,n,i,t.step("HANDLE"));return t("passing response to task's parser as a %s",e.format),Vb(e)?Bp(e.parser,a):Bp(e.parser,a.asStrings())})}attemptEmptyTask(e,t){return _l(this,null,function*(){return t("empty task bypassing child process to call to task's parser"),e.parser(this)})}handleTaskData(e,t,r,n){let{exitCode:i,rejection:a,stdOut:s,stdErr:o}=r;return new Promise((c,l)=>{n("Preparing to handle process response exitCode=%d stdOut=",i);let{error:u}=this._plugins.exec("task.error",{error:a},Fr(Fr({},pa(e,t)),r));if(u&&e.onError)return n.info("exitCode=%s handling with custom error handler"),e.onError(r,u,f=>{n.info("custom error handler treated as success"),n("custom error returned a %s",Pl(f)),c(new Al(Array.isArray(f)?Buffer.concat(f):f,Buffer.concat(o)))},l);if(u)return n.info("handling as error: exitCode=%s stdErr=%s rejection=%o",i,o.length,a),l(u);n.info("retrieving task output complete"),c(new Al(Buffer.concat(s),Buffer.concat(o)))})}gitResponse(e,t,r,n,i){return _l(this,null,function*(){let a=i.sibling("output"),s=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},pa(e,e.commands));return new Promise(o=>{let c=[],l=[];i.info("%s %o",t,r),i("%O",s);let u=this._beforeSpawn(e,r);if(u)return o({stdOut:c,stdErr:l,exitCode:9901,rejection:u});this._plugins.exec("spawn.before",void 0,xl(Fr({},pa(e,r)),{kill(d){u=d||u}}));let f=(0,c_.spawn)(t,r,s);f.stdout.on("data",G2(c,"stdOut",i,a.step("stdOut"))),f.stderr.on("data",G2(l,"stdErr",i,a.step("stdErr"))),f.on("error",aF(l,i)),n&&(i("Passing child process stdOut/stdErr to custom outputHandler"),n(t,f.stdout,f.stderr,[...r])),this._plugins.exec("spawn.after",void 0,xl(Fr({},pa(e,r)),{spawned:f,close(d,h){o({stdOut:c,stdErr:l,exitCode:d,rejection:u||h})},kill(d){f.killed||(u=d,f.kill("SIGINT"))}}))})})}_beforeSpawn(e,t){let r;return this._plugins.exec("spawn.before",void 0,xl(Fr({},pa(e,t)),{kill(n){r=n||r}})),r}}}}),u_={};rt(u_,{GitExecutor:()=>f_});var f_,oF=W({"src/lib/runners/git-executor.ts"(){"use strict";sF(),f_=class{constructor(e,t,r){this.cwd=e,this._scheduler=t,this._plugins=r,this._chain=new Vp(this,this._scheduler,this._plugins)}chain(){return new Vp(this,this._scheduler,this._plugins)}push(e){return this._chain.push(e)}}}});function lF(e,t,r=ga){let n=a=>{r(null,a)},i=a=>{(a==null?void 0:a.task)===e&&r(a instanceof Tl?cF(a):a,void 0)};t.then(n,i)}function cF(e){let t=n=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${n} should be GitResponseError.git.${n}, this will no longer be available in version 3`),t=ga};return Object.create(e,Object.getOwnPropertyNames(e.git).reduce(r,{}));function r(n,i){return i in e||(n[i]={enumerable:!1,configurable:!1,get(){return t(i),e.git[i]}}),n}}var uF=W({"src/lib/task-callback.ts"(){"use strict";Rs(),oe()}});function z2(e,t){return Gb(r=>{if(!Jp(e))throw new Error(`Git.cwd: cannot change to non-directory "${e}"`);return(t||r).cwd=e})}var fF=W({"src/lib/tasks/change-working-directory.ts"(){"use strict";oe(),tt()}});function Ip(e){let t=["checkout",...e];return t[1]==="-b"&&t.includes("-B")&&(t[1]=Lu(t,"-B")),Vt(t)}function dF(){return{checkout(){return this._runTask(Ip(rr(arguments,1)),Je(arguments))},checkoutBranch(e,t){return this._runTask(Ip(["-b",e,t,...rr(arguments)]),Je(arguments))},checkoutLocalBranch(e){return this._runTask(Ip(["-b",e,...rr(arguments)]),Je(arguments))}}}var hF=W({"src/lib/tasks/checkout.ts"(){"use strict";oe(),tt()}});function pF(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}function mF(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser(e){return ir(pF(),[d_],e)}})}}}var d_,gF=W({"src/lib/tasks/count-objects.ts"(){"use strict";oe(),d_=new ce(/([a-z-]+): (\d+)$/,(e,[t,r])=>{let n=kb(t);e.hasOwnProperty(n)&&(e[n]=Ie(r))})}});function vF(e){return ir({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},h_,e)}var h_,yF=W({"src/lib/parsers/parse-commit.ts"(){"use strict";oe(),h_=[new ce(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(e,[t,r,n])=>{e.branch=t,e.commit=n,e.root=!!r}),new ce(/\s*Author:\s(.+)/i,(e,[t])=>{let r=t.split("<"),n=r.pop();!n||!n.includes("@")||(e.author={email:n.substr(0,n.length-1),name:r.join("<").trim()})}),new ce(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(e,[t,r,n])=>{e.summary.changes=parseInt(t,10)||0,e.summary.insertions=parseInt(r,10)||0,e.summary.deletions=parseInt(n,10)||0}),new ce(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(e,[t,r,n])=>{e.summary.changes=parseInt(t,10)||0;let i=parseInt(r,10)||0;n==="-"?e.summary.deletions=i:n==="+"&&(e.summary.insertions=i)})]}});function wF(e,t,r){return{commands:["-c","core.abbrev=40","commit",...Sl(e,"-m"),...t,...r],format:"utf-8",parser:vF}}function bF(){return{commit(t,...r){let n=Je(arguments),i=e(t)||wF(xn(t),xn(Sn(r[0],Ru,[])),[...Sn(r[1],Rl,[]),...rr(arguments,0,!0)]);return this._runTask(i,n)}};function e(t){return!Ru(t)&&nr("git.commit: requires the commit message to be supplied as a string/string[]")}}var _F=W({"src/lib/tasks/commit.ts"(){"use strict";yF(),oe(),tt()}});function xF(){return{firstCommit(){return this._runTask(Vt(["rev-list","--max-parents=0","HEAD"],!0),Je(arguments))}}}var SF=W({"src/lib/tasks/first-commit.ts"(){"use strict";oe(),tt()}});function EF(e,t){let r=["hash-object",e];return t&&r.push("-w"),Vt(r,!0)}var AF=W({"src/lib/tasks/hash-object.ts"(){"use strict";tt()}});function kF(e,t,r){let n=String(r).trim(),i;if(i=p_.exec(n))return new Tu(e,t,!1,i[1]);if(i=m_.exec(n))return new Tu(e,t,!0,i[1]);let a="",s=n.split(" ");for(;s.length;)if(s.shift()==="in"){a=s.join(" ");break}return new Tu(e,t,/^re/i.test(n),a)}var Tu,p_,m_,TF=W({"src/lib/responses/InitSummary.ts"(){"use strict";Tu=class{constructor(e,t,r,n){this.bare=e,this.path=t,this.existing=r,this.gitDir=n}},p_=/^Init.+ repository in (.+)$/,m_=/^Rein.+ in (.+)$/}});function CF(e){return e.includes(um)}function PF(e=!1,t,r){let n=["init",...r];return e&&!CF(n)&&n.splice(1,0,um),{commands:n,format:"utf-8",parser(i){return kF(n.includes("--bare"),t,i)}}}var um,RF=W({"src/lib/tasks/init.ts"(){"use strict";TF(),um="--bare"}});function fm(e){for(let t=0;tir(new g_,t,r,!1)}var Fp,V2,W2,q2,y_,w_=W({"src/lib/parsers/parse-diff-summary.ts"(){"use strict";Ml(),OF(),e_(),oe(),Fp=[new ce(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(e,[t,r,n=""])=>{e.files.push({file:t.trim(),changes:Ie(r),insertions:n.replace(/[^+]/g,"").length,deletions:n.replace(/[^-]/g,"").length,binary:!1})}),new ce(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(e,[t,r,n])=>{e.files.push({file:t.trim(),before:Ie(r),after:Ie(n),binary:!0})}),new ce(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(e,[t,r])=>{let n=/(\d+) i/.exec(r),i=/(\d+) d/.exec(r);e.changed=Ie(t),e.insertions=Ie(n==null?void 0:n[1]),e.deletions=Ie(i==null?void 0:i[1])})],V2=[new ce(/(\d+)\t(\d+)\t(.+)$/,(e,[t,r,n])=>{let i=Ie(t),a=Ie(r);e.changed++,e.insertions+=i,e.deletions+=a,e.files.push({file:n,changes:i+a,insertions:i,deletions:a,binary:!1})}),new ce(/-\t-\t(.+)$/,(e,[t])=>{e.changed++,e.files.push({file:t,after:0,before:0,binary:!0})})],W2=[new ce(/(.+)$/,(e,[t])=>{e.changed++,e.files.push({file:t,changes:0,insertions:0,deletions:0,binary:!1})})],q2=[new ce(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(e,[t,r,n,i,a])=>{e.changed++,e.files.push({file:a!=null?a:n,changes:0,insertions:0,deletions:0,binary:!1,status:Np(ZI(t)&&t),from:Np(!!a&&n!==a&&n),similarity:Ie(r)})})],y_={"":Fp,"--stat":Fp,"--numstat":V2,"--name-status":q2,"--name-only":W2}}});function IF(e,t){return t.reduce((r,n,i)=>(r[n]=e[i]||"",r),Object.create({diff:null}))}function b_(e=mm,t=__,r=""){let n=v_(r);return function(i){let a=Cl(i.trim(),!1,hm).map(function(s){let o=s.split(pm),c=IF(o[0].split(e),t);return o.length>1&&o[1].trim()&&(c.diff=n(o[1])),c});return{all:a,latest:a.length&&a[0]||null,total:a.length}}}var hm,pm,mm,__,x_=W({"src/lib/parsers/parse-list-log-summary.ts"(){"use strict";oe(),w_(),Ml(),hm="\xF2\xF2\xF2\xF2\xF2\xF2 ",pm=" \xF2\xF2",mm=" \xF2 ",__=["hash","date","message","refs","author_name","author_email"]}}),S_={};rt(S_,{diffSummaryTask:()=>FF,validateLogFormatConfig:()=>Bu});function FF(e){let t=fm(e),r=["diff"];return t===""&&(t="--stat",r.push("--stat=4096")),r.push(...e),Bu(r)||{commands:r,format:"utf-8",parser:v_(t)}}function Bu(e){let t=e.filter(MF);if(t.length>1)return nr(`Summary flags are mutually exclusive - pick one of ${t.join(",")}`);if(t.length&&e.includes("-z"))return nr(`Summary flag ${t} parsing is not compatible with null termination option '-z'`)}var gm=W({"src/lib/tasks/diff.ts"(){"use strict";Ml(),w_(),tt()}});function $F(e,t){let r=[],n=[];return Object.keys(e).forEach(i=>{r.push(i),n.push(String(e[i]))}),[r,n.join(t)]}function LF(e){return Object.keys(e).reduce((t,r)=>(r in Wp||(t[r]=e[r]),t),{})}function E_(e={},t=[]){let r=Sn(e.splitter,Pt,mm),n=!Qp(e.format)&&e.format?e.format:{hash:"%H",date:e.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:e.multiLine?"%B":"%b",author_name:e.mailMap!==!1?"%aN":"%an",author_email:e.mailMap!==!1?"%aE":"%ae"},[i,a]=$F(n,r),s=[],o=[`--pretty=format:${hm}${a}${pm}`,...t],c=e.n||e["max-count"]||e.maxCount;if(c&&o.push(`--max-count=${c}`),e.from||e.to){let l=e.symmetric!==!1?"...":"..";s.push(`${e.from||""}${l}${e.to||""}`)}return Pt(e.file)&&o.push("--follow",EI(e.file)),rm(LF(e),o),{fields:i,splitter:r,commands:[...o,...s]}}function DF(e,t,r){let n=b_(e,t,fm(r));return{commands:["log",...r],format:"utf-8",parser:n}}function NF(){return{log(...r){let n=Je(arguments),i=E_(nm(arguments),Sn(arguments[0],Rl)),a=t(...r)||Bu(i.commands)||e(i);return this._runTask(a,n)}};function e(r){return DF(r.splitter,r.fields,r.commands)}function t(r,n){return Pt(r)&&Pt(n)&&nr("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}var Wp,A_=W({"src/lib/tasks/log.ts"(){"use strict";Ml(),kl(),x_(),oe(),tt(),gm(),Wp=(e=>(e[e["--pretty"]=0]="--pretty",e[e["max-count"]=1]="max-count",e[e.maxCount=2]="maxCount",e[e.n=3]="n",e[e.file=4]="file",e[e.format=5]="format",e[e.from=6]="from",e[e.to=7]="to",e[e.splitter=8]="splitter",e[e.symmetric=9]="symmetric",e[e.mailMap=10]="mailMap",e[e.multiLine=11]="multiLine",e[e.strictDate=12]="strictDate",e))(Wp||{})}}),Cu,k_,jF=W({"src/lib/responses/MergeSummary.ts"(){"use strict";Cu=class{constructor(e,t=null,r){this.reason=e,this.file=t,this.meta=r}toString(){return`${this.file}:${this.reason}`}},k_=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),qp,T_,BF=W({"src/lib/responses/PullSummary.ts"(){"use strict";qp=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},T_=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function $p(e){return e.objects=e.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function Y2(e){let t=/^\s*(\d+)/.exec(e),r=/delta (\d+)/i.exec(e);return{count:Ie(t&&t[1]||"0"),delta:Ie(r&&r[1]||"0")}}var C_,HF=W({"src/lib/parsers/parse-remote-objects.ts"(){"use strict";oe(),C_=[new Si(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(e,[t,r])=>{let n=t.toLowerCase(),i=$p(e.remoteMessages);Object.assign(i,{[n]:Ie(r)})}),new Si(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(e,[t,r])=>{let n=t.toLowerCase(),i=$p(e.remoteMessages);Object.assign(i,{[n]:Ie(r)})}),new Si(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(e,[t,r,n])=>{let i=$p(e.remoteMessages);i.total=Y2(t),i.reused=Y2(r),i.packReused=Ie(n)})]}});function P_(e,t){return ir({remoteMessages:new M_},R_,t)}var R_,M_,O_=W({"src/lib/parsers/parse-remote-messages.ts"(){"use strict";oe(),HF(),R_=[new Si(/^remote:\s*(.+)$/,(e,[t])=>(e.remoteMessages.all.push(t.trim()),!1)),...C_,new Si([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(e,[t])=>{e.remoteMessages.pullRequestUrl=t}),new Si([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(e,[t,r,n])=>{e.remoteMessages.vulnerabilities={count:Ie(t),summary:r,url:n}})],M_=class{constructor(){this.all=[]}}}});function UF(e,t){let r=ir(new T_,I_,[e,t]);return r.message&&r}var X2,Z2,K2,J2,I_,Q2,vm,F_=W({"src/lib/parsers/parse-pull.ts"(){"use strict";BF(),oe(),O_(),X2=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,Z2=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,K2=/^(create|delete) mode \d+ (.+)/,J2=[new ce(X2,(e,[t,r,n])=>{e.files.push(t),r&&(e.insertions[t]=r.length),n&&(e.deletions[t]=n.length)}),new ce(Z2,(e,[t,,r,,n])=>r!==void 0||n!==void 0?(e.summary.changes=+t||0,e.summary.insertions=+r||0,e.summary.deletions=+n||0,!0):!1),new ce(K2,(e,[t,r])=>{ke(e.files,r),ke(t==="create"?e.created:e.deleted,r)})],I_=[new ce(/^from\s(.+)$/i,(e,[t])=>void(e.remote=t)),new ce(/^fatal:\s(.+)$/,(e,[t])=>void(e.message=t)),new ce(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(e,[t,r,n,i])=>{e.branch.local=n,e.hash.local=t,e.branch.remote=i,e.hash.remote=r})],Q2=(e,t)=>ir(new qp,J2,[e,t]),vm=(e,t)=>Object.assign(new qp,Q2(e,t),P_(e,t))}}),eb,$_,tb,GF=W({"src/lib/parsers/parse-merge.ts"(){"use strict";jF(),oe(),F_(),eb=[new ce(/^Auto-merging\s+(.+)$/,(e,[t])=>{e.merges.push(t)}),new ce(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(e,[t,r])=>{e.conflicts.push(new Cu(t,r))}),new ce(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(e,[t,r,n])=>{e.conflicts.push(new Cu(t,r,{deleteRef:n}))}),new ce(/^CONFLICT\s+\((.+)\):/,(e,[t])=>{e.conflicts.push(new Cu(t,null))}),new ce(/^Automatic merge failed;\s+(.+)$/,(e,[t])=>{e.result=t})],$_=(e,t)=>Object.assign(tb(e,t),vm(e,t)),tb=e=>ir(new k_,eb,e)}});function rb(e){return e.length?{commands:["merge",...e],format:"utf-8",parser(t,r){let n=$_(t,r);if(n.failed)throw new Tl(n);return n}}:nr("Git.merge requires at least one option")}var zF=W({"src/lib/tasks/merge.ts"(){"use strict";Rs(),GF(),tt()}});function VF(e,t,r){let n=r.includes("deleted"),i=r.includes("tag")||/^refs\/tags/.test(e),a=!r.includes("new");return{deleted:n,tag:i,branch:!i,new:!a,alreadyUpdated:a,local:e,remote:t}}var nb,L_,ib,WF=W({"src/lib/parsers/parse-push.ts"(){"use strict";oe(),O_(),nb=[new ce(/^Pushing to (.+)$/,(e,[t])=>{e.repo=t}),new ce(/^updating local tracking ref '(.+)'/,(e,[t])=>{e.ref=xl(Fr({},e.ref||{}),{local:t})}),new ce(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(e,[t,r,n])=>{e.pushed.push(VF(t,r,n))}),new ce(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(e,[t,r,n])=>{e.branch=xl(Fr({},e.branch||{}),{local:t,remote:r,remoteName:n})}),new ce(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(e,[t,r,n,i])=>{e.update={head:{local:t,remote:r},hash:{from:n,to:i}}})],L_=(e,t)=>{let r=ib(e,t),n=P_(e,t);return Fr(Fr({},r),n)},ib=(e,t)=>ir({pushed:[]},nb,[e,t])}}),D_={};rt(D_,{pushTagsTask:()=>qF,pushTask:()=>ym});function qF(e={},t){return ke(t,"--tags"),ym(e,t)}function ym(e={},t){let r=["push",...t];return e.branch&&r.splice(1,0,e.branch),e.remote&&r.splice(1,0,e.remote),Lu(r,"-v"),ke(r,"--verbose"),ke(r,"--porcelain"),{commands:r,format:"utf-8",parser:L_}}var N_=W({"src/lib/tasks/push.ts"(){"use strict";WF(),oe()}});function YF(){return{showBuffer(){let e=["show",...rr(arguments,1)];return e.includes("--binary")||e.splice(1,0,"--binary"),this._runTask(zb(e),Je(arguments))},show(){let e=["show",...rr(arguments,1)];return this._runTask(Vt(e),Je(arguments))}}}var XF=W({"src/lib/tasks/show.ts"(){"use strict";oe(),tt()}}),ab,j_,ZF=W({"src/lib/responses/FileStatusSummary.ts"(){"use strict";ab=/^(.+)\0(.+)$/,j_=class{constructor(e,t,r){if(this.path=e,this.index=t,this.working_dir=r,t==="R"||r==="R"){let n=ab.exec(e)||[null,e,e];this.from=n[2]||"",this.path=n[1]||""}}}}});function sb(e){let[t,r]=e.split(Ps);return{from:r||t,to:t}}function yr(e,t,r){return[`${e}${t}`,r]}function Lp(e,...t){return t.map(r=>yr(e,r,(n,i)=>ke(n.conflicted,i)))}function KF(e,t){let r=t.trim();switch(" "){case r.charAt(2):return n(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return n(" ",r.charAt(0),r.substr(2));default:return}function n(i,a,s){let o=`${i}${a}`,c=B_.get(o);c&&c(e,s),o!=="##"&&o!=="!!"&&e.files.push(new j_(s,i,a))}}var ob,B_,H_,JF=W({"src/lib/responses/StatusSummary.ts"(){"use strict";oe(),ZF(),ob=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},B_=new Map([yr(" ","A",(e,t)=>ke(e.created,t)),yr(" ","D",(e,t)=>ke(e.deleted,t)),yr(" ","M",(e,t)=>ke(e.modified,t)),yr("A"," ",(e,t)=>ke(e.created,t)&&ke(e.staged,t)),yr("A","M",(e,t)=>ke(e.created,t)&&ke(e.staged,t)&&ke(e.modified,t)),yr("D"," ",(e,t)=>ke(e.deleted,t)&&ke(e.staged,t)),yr("M"," ",(e,t)=>ke(e.modified,t)&&ke(e.staged,t)),yr("M","M",(e,t)=>ke(e.modified,t)&&ke(e.staged,t)),yr("R"," ",(e,t)=>{ke(e.renamed,sb(t))}),yr("R","M",(e,t)=>{let r=sb(t);ke(e.renamed,r),ke(e.modified,r.to)}),yr("!","!",(e,t)=>{ke(e.ignored=e.ignored||[],t)}),yr("?","?",(e,t)=>ke(e.not_added,t)),...Lp("A","A","U"),...Lp("D","D","U"),...Lp("U","A","D","U"),["##",(e,t)=>{let r=/ahead (\d+)/,n=/behind (\d+)/,i=/^(.+?(?=(?:\.{3}|\s|$)))/,a=/\.{3}(\S*)/,s=/\son\s([\S]+)$/,o;o=r.exec(t),e.ahead=o&&+o[1]||0,o=n.exec(t),e.behind=o&&+o[1]||0,o=i.exec(t),e.current=o&&o[1],o=a.exec(t),e.tracking=o&&o[1],o=s.exec(t),e.current=o&&o[1]||e.current,e.detached=/\(no branch\)/.test(t)}]]),H_=function(e){let t=e.split(Ps),r=new ob;for(let n=0,i=t.length;n!U_.includes(r))],parser(r){return H_(r)}}}var U_,e4=W({"src/lib/tasks/status.ts"(){"use strict";JF(),U_=["--null","-z"]}});function Ou(e=0,t=0,r=0,n="",i=!0){return Object.defineProperty({major:e,minor:t,patch:r,agent:n,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function t4(){return Ou(0,0,0,"",!1)}function r4(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:n4,onError(e,t,r,n){if(e.exitCode===-2)return r(Buffer.from(wm));n(t)}})}}}function n4(e){return e===wm?t4():ir(Ou(0,0,0,e),G_,e)}var wm,G_,i4=W({"src/lib/tasks/version.ts"(){"use strict";oe(),wm="installed=false",G_=[new ce(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(e,[t,r,n,i=""])=>{Object.assign(e,Ou(Ie(t),Ie(r),Ie(n),i))}),new ce(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(e,[t,r,n,i=""])=>{Object.assign(e,Ou(Ie(t),Ie(r),n,i))})]}}),z_={};rt(z_,{SimpleGitApi:()=>Yp});var Yp,a4=W({"src/lib/simple-git-api.ts"(){"use strict";uF(),fF(),hF(),gF(),_F(),Jb(),SF(),n_(),AF(),RF(),A_(),zF(),N_(),XF(),e4(),tt(),i4(),oe(),Yp=class{constructor(e){this._executor=e}_runTask(e,t){let r=this._executor.chain(),n=r.push(e);return t&&lF(e,n,t),Object.create(this,{then:{value:n.then.bind(n)},catch:{value:n.catch.bind(n)},_executor:{value:r}})}add(e){return this._runTask(Vt(["add",...xn(e)]),Je(arguments))}cwd(e){let t=Je(arguments);return typeof e=="string"?this._runTask(z2(e,this._executor),t):typeof(e==null?void 0:e.path)=="string"?this._runTask(z2(e.path,e.root&&this._executor||void 0),t):this._runTask(nr("Git.cwd: workingDirectory must be supplied as a string"),t)}hashObject(e,t){return this._runTask(EF(e,t===!0),Je(arguments))}init(e){return this._runTask(PF(e===!0,this._executor.cwd,rr(arguments)),Je(arguments))}merge(){return this._runTask(rb(rr(arguments)),Je(arguments))}mergeFromTo(e,t){return Pt(e)&&Pt(t)?this._runTask(rb([e,t,...rr(arguments)]),Je(arguments,!1)):this._runTask(nr("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(e){return this._executor.outputHandler=e,this}push(){let e=ym({remote:Sn(arguments[0],Pt),branch:Sn(arguments[1],Pt)},rr(arguments));return this._runTask(e,Je(arguments))}stash(){return this._runTask(Vt(["stash",...rr(arguments)]),Je(arguments))}status(){return this._runTask(QF(rr(arguments)),Je(arguments))}},Object.assign(Yp.prototype,dF(),bF(),XI(),mF(),xF(),QI(),NF(),YF(),r4())}}),V_={};rt(V_,{Scheduler:()=>q_});var lb,q_,s4=W({"src/lib/runners/scheduler.ts"(){"use strict";oe(),l_(),lb=(()=>{let e=0;return()=>{e++;let{promise:t,done:r}=(0,W_.createDeferred)();return{promise:t,done:r,id:e}}})(),q_=class{constructor(e=2){this.concurrency=e,this.logger=cm("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",e)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let e=ke(this.running,this.pending.shift());this.logger("Attempting id=%s",e.id),e.done(()=>{this.logger("Completing id=",e.id),Lu(this.running,e),this.schedule()})}next(){let{promise:e,id:t}=ke(this.pending,lb());return this.logger("Scheduling id=%s",t),this.schedule(),e}}}}),Y_={};rt(Y_,{applyPatchTask:()=>o4});function o4(e,t){return Vt(["apply",...t,...e])}var l4=W({"src/lib/tasks/apply-patch.ts"(){"use strict";tt()}});function c4(e,t){return{branch:e,hash:t,success:!0}}function u4(e){return{branch:e,hash:null,success:!1}}var X_,f4=W({"src/lib/responses/BranchDeleteSummary.ts"(){"use strict";X_=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function Z_(e,t){return t===1&&Xp.test(e)}var cb,Xp,ub,Hu,d4=W({"src/lib/parsers/parse-branch-delete.ts"(){"use strict";f4(),oe(),cb=/(\S+)\s+\(\S+\s([^)]+)\)/,Xp=/^error[^']+'([^']+)'/m,ub=[new ce(cb,(e,[t,r])=>{let n=c4(t,r);e.all.push(n),e.branches[t]=n}),new ce(Xp,(e,[t])=>{let r=u4(t);e.errors.push(r),e.all.push(r),e.branches[t]=r})],Hu=(e,t)=>ir(new X_,ub,[e,t])}}),K_,h4=W({"src/lib/responses/BranchSummary.ts"(){"use strict";K_=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(e,t,r,n,i){e==="*"&&(this.detached=t,this.current=r),this.all.push(r),this.branches[r]={current:e==="*",linkedWorkTree:e==="+",name:r,commit:n,label:i}}}}});function fb(e){return e?e.charAt(0):""}function J_(e){return ir(new K_,Q_,e)}var Q_,p4=W({"src/lib/parsers/parse-branch.ts"(){"use strict";h4(),oe(),Q_=[new ce(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(e,[t,r,n,i])=>{e.push(fb(t),!0,r,n,i)}),new ce(new RegExp("^([*+]\\s)?(\\S+)\\s+([a-z0-9]+)\\s?(.*)$","s"),(e,[t,r,n,i])=>{e.push(fb(t),!1,r,n,i)})]}}),ex={};rt(ex,{branchLocalTask:()=>g4,branchTask:()=>m4,containsDeleteBranchCommand:()=>tx,deleteBranchTask:()=>y4,deleteBranchesTask:()=>v4});function tx(e){let t=["-d","-D","--delete"];return e.some(r=>t.includes(r))}function m4(e){let t=tx(e),r=["branch",...e];return r.length===1&&r.push("-a"),r.includes("-v")||r.splice(1,0,"-v"),{format:"utf-8",commands:r,parser(n,i){return t?Hu(n,i).all[0]:J_(n)}}}function g4(){return{format:"utf-8",commands:["branch","-v"],parser:J_}}function v4(e,t=!1){return{format:"utf-8",commands:["branch","-v",t?"-D":"-d",...e],parser(r,n){return Hu(r,n)},onError({exitCode:r,stdOut:n},i,a,s){if(!Z_(String(i),r))return s(i);a(n)}}}function y4(e,t=!1){let r={format:"utf-8",commands:["branch","-v",t?"-D":"-d",e],parser(n,i){return Hu(n,i).branches[e]},onError({exitCode:n,stdErr:i,stdOut:a},s,o,c){if(!Z_(String(s),n))return c(s);throw new Tl(r.parser(El(a),El(i)),String(s))}};return r}var w4=W({"src/lib/tasks/branch.ts"(){"use strict";Rs(),d4(),p4(),oe()}}),rx,b4=W({"src/lib/responses/CheckIgnore.ts"(){"use strict";rx=e=>e.split(/\n/g).map(t=>t.trim()).filter(t=>!!t)}}),nx={};rt(nx,{checkIgnoreTask:()=>_4});function _4(e){return{commands:["check-ignore",...e],format:"utf-8",parser:rx}}var x4=W({"src/lib/tasks/check-ignore.ts"(){"use strict";b4()}}),ix={};rt(ix,{cloneMirrorTask:()=>E4,cloneTask:()=>ax});function S4(e){return/^--upload-pack(=|$)/.test(e)}function ax(e,t,r){let n=["clone",...r];return Pt(e)&&n.push(e),Pt(t)&&n.push(t),n.find(S4)?nr("git.fetch: potential exploit argument blocked."):Vt(n)}function E4(e,t,r){return ke(r,"--mirror"),ax(e,t,r)}var A4=W({"src/lib/tasks/clone.ts"(){"use strict";tt(),oe()}});function k4(e,t){return ir({raw:e,remote:null,branches:[],tags:[],updated:[],deleted:[]},sx,[e,t])}var sx,T4=W({"src/lib/parsers/parse-fetch.ts"(){"use strict";oe(),sx=[new ce(/From (.+)$/,(e,[t])=>{e.remote=t}),new ce(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(e,[t,r])=>{e.branches.push({name:t,tracking:r})}),new ce(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(e,[t,r])=>{e.tags.push({name:t,tracking:r})}),new ce(/- \[deleted]\s+\S+\s*-> (.+)$/,(e,[t])=>{e.deleted.push({tracking:t})}),new ce(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(e,[t,r,n,i])=>{e.updated.push({name:n,tracking:i,to:r,from:t})})]}}),ox={};rt(ox,{fetchTask:()=>P4});function C4(e){return/^--upload-pack(=|$)/.test(e)}function P4(e,t,r){let n=["fetch",...r];return e&&t&&n.push(e,t),n.find(C4)?nr("git.fetch: potential exploit argument blocked."):{commands:n,format:"utf-8",parser:k4}}var R4=W({"src/lib/tasks/fetch.ts"(){"use strict";T4(),tt()}});function M4(e){return ir({moves:[]},lx,e)}var lx,O4=W({"src/lib/parsers/parse-move.ts"(){"use strict";oe(),lx=[new ce(/^Renaming (.+) to (.+)$/,(e,[t,r])=>{e.moves.push({from:t,to:r})})]}}),cx={};rt(cx,{moveTask:()=>I4});function I4(e,t){return{commands:["mv","-v",...xn(e),t],format:"utf-8",parser:M4}}var F4=W({"src/lib/tasks/move.ts"(){"use strict";O4(),oe()}}),ux={};rt(ux,{pullTask:()=>$4});function $4(e,t,r){let n=["pull",...r];return e&&t&&n.splice(1,0,e,t),{commands:n,format:"utf-8",parser(i,a){return vm(i,a)},onError(i,a,s,o){let c=UF(El(i.stdOut),El(i.stdErr));if(c)return o(new Tl(c));o(a)}}}var L4=W({"src/lib/tasks/pull.ts"(){"use strict";Rs(),F_(),oe()}});function D4(e){let t={};return fx(e,([r])=>t[r]={name:r}),Object.values(t)}function N4(e){let t={};return fx(e,([r,n,i])=>{t.hasOwnProperty(r)||(t[r]={name:r,refs:{fetch:"",push:""}}),i&&n&&(t[r].refs[i.replace(/[^a-z]/g,"")]=n)}),Object.values(t)}function fx(e,t){Kp(e,r=>t(r.split(/\s+/)))}var j4=W({"src/lib/responses/GetRemoteSummary.ts"(){"use strict";oe()}}),dx={};rt(dx,{addRemoteTask:()=>B4,getRemotesTask:()=>H4,listRemotesTask:()=>U4,remoteTask:()=>G4,removeRemoteTask:()=>z4});function B4(e,t,r){return Vt(["remote","add",...r,e,t])}function H4(e){let t=["remote"];return e&&t.push("-v"),{commands:t,format:"utf-8",parser:e?N4:D4}}function U4(e){let t=[...e];return t[0]!=="ls-remote"&&t.unshift("ls-remote"),Vt(t)}function G4(e){let t=[...e];return t[0]!=="remote"&&t.unshift("remote"),Vt(t)}function z4(e){return Vt(["remote","remove",e])}var V4=W({"src/lib/tasks/remote.ts"(){"use strict";j4(),tt()}}),hx={};rt(hx,{stashListTask:()=>W4});function W4(e={},t){let r=E_(e),n=["stash","list",...r.commands,...t],i=b_(r.splitter,r.fields,fm(n));return Bu(n)||{commands:n,format:"utf-8",parser:i}}var q4=W({"src/lib/tasks/stash-list.ts"(){"use strict";Ml(),x_(),gm(),A_()}}),px={};rt(px,{addSubModuleTask:()=>Y4,initSubModuleTask:()=>X4,subModuleTask:()=>Uu,updateSubModuleTask:()=>Z4});function Y4(e,t){return Uu(["add",e,t])}function X4(e){return Uu(["init",...e])}function Uu(e){let t=[...e];return t[0]!=="submodule"&&t.unshift("submodule"),Vt(t)}function Z4(e){return Uu(["update",...e])}var K4=W({"src/lib/tasks/sub-module.ts"(){"use strict";tt()}});function J4(e,t){let r=isNaN(e),n=isNaN(t);return r!==n?r?1:-1:r?mx(e,t):0}function mx(e,t){return e===t?0:e>t?1:-1}function Q4(e){return e.trim()}function Eu(e){return typeof e=="string"&&parseInt(e.replace(/^\D+/g,""),10)||0}var db,gx,e$=W({"src/lib/responses/TagList.ts"(){"use strict";db=class{constructor(e,t){this.all=e,this.latest=t}},gx=function(e,t=!1){let r=e.split(` +`).map(Q4).filter(Boolean);t||r.sort(function(i,a){let s=i.split("."),o=a.split(".");if(s.length===1||o.length===1)return J4(Eu(s[0]),Eu(o[0]));for(let c=0,l=Math.max(s.length,o.length);ci.indexOf(".")>=0);return new db(r,n)}}}),vx={};rt(vx,{addAnnotatedTagTask:()=>n$,addTagTask:()=>r$,tagListTask:()=>t$});function t$(e=[]){let t=e.some(r=>/^--sort=/.test(r));return{format:"utf-8",commands:["tag","-l",...e],parser(r){return gx(r,t)}}}function r$(e){return{format:"utf-8",commands:["tag",e],parser(){return{name:e}}}}function n$(e,t){return{format:"utf-8",commands:["tag","-a","-m",t,e],parser(){return{name:e}}}}var i$=W({"src/lib/tasks/tag.ts"(){"use strict";e$()}}),a$=xI({"src/git.js"(e,t){"use strict";var{GitExecutor:r}=(oF(),Ke(u_)),{SimpleGitApi:n}=(a4(),Ke(z_)),{Scheduler:i}=(s4(),Ke(V_)),{configurationErrorTask:a}=(tt(),Ke(Up)),{asArray:s,filterArray:o,filterPrimitives:c,filterString:l,filterStringOrStringArray:u,filterType:f,getTrailingOptions:d,trailingFunctionArgument:h,trailingOptionsArgument:p}=(oe(),Ke(Fb)),{applyPatchTask:m}=(l4(),Ke(Y_)),{branchTask:v,branchLocalTask:y,deleteBranchesTask:b,deleteBranchTask:x}=(w4(),Ke(ex)),{checkIgnoreTask:E}=(x4(),Ke(nx)),{checkIsRepoTask:_}=(Nb(),Ke($b)),{cloneTask:k,cloneMirrorTask:w}=(A4(),Ke(ix)),{cleanWithOptionsTask:A,isCleanOptionsArray:S}=(Xb(),Ke(qb)),{diffSummaryTask:T}=(gm(),Ke(S_)),{fetchTask:P}=(R4(),Ke(ox)),{moveTask:O}=(F4(),Ke(cx)),{pullTask:j}=(L4(),Ke(ux)),{pushTagsTask:D}=(N_(),Ke(D_)),{addRemoteTask:Q,getRemotesTask:de,listRemotesTask:ee,remoteTask:J,removeRemoteTask:Pe}=(V4(),Ke(dx)),{getResetMode:me,resetTask:F}=(o_(),Ke(i_)),{stashListTask:G}=(q4(),Ke(hx)),{addSubModuleTask:N,initSubModuleTask:Me,subModuleTask:Dt,updateSubModuleTask:_t}=(K4(),Ke(px)),{addAnnotatedTagTask:Ee,addTagTask:st,tagListTask:ot}=(i$(),Ke(vx)),{straightThroughBufferTask:Ct,straightThroughStringTask:$e}=(tt(),Ke(Up));function U(L,Y){this._plugins=Y,this._executor=new r(L.baseDir,new i(L.maxConcurrentProcesses),Y),this._trimmed=L.trimmed}(U.prototype=Object.create(n.prototype)).constructor=U,U.prototype.customBinary=function(L){return this._plugins.reconfigure("binary",L),this},U.prototype.env=function(L,Y){return arguments.length===1&&typeof L=="object"?this._executor.env=L:(this._executor.env=this._executor.env||{})[L]=Y,this},U.prototype.stashList=function(L){return this._runTask(G(p(arguments)||{},o(L)&&L||[]),h(arguments))};function Le(L,Y,ye,De){return typeof ye!="string"?a(`git.${L}() requires a string 'repoPath'`):Y(ye,f(De,l),d(arguments))}U.prototype.clone=function(){return this._runTask(Le("clone",k,...arguments),h(arguments))},U.prototype.mirror=function(){return this._runTask(Le("mirror",w,...arguments),h(arguments))},U.prototype.mv=function(L,Y){return this._runTask(O(L,Y),h(arguments))},U.prototype.checkoutLatestTag=function(L){var Y=this;return this.pull(function(){Y.tags(function(ye,De){Y.checkout(De.latest,L)})})},U.prototype.pull=function(L,Y,ye,De){return this._runTask(j(f(L,l),f(Y,l),d(arguments)),h(arguments))},U.prototype.fetch=function(L,Y){return this._runTask(P(f(L,l),f(Y,l),d(arguments)),h(arguments))},U.prototype.silent=function(L){return console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"),this},U.prototype.tags=function(L,Y){return this._runTask(ot(d(arguments)),h(arguments))},U.prototype.rebase=function(){return this._runTask($e(["rebase",...d(arguments)]),h(arguments))},U.prototype.reset=function(L){return this._runTask(F(me(L),d(arguments)),h(arguments))},U.prototype.revert=function(L){let Y=h(arguments);return typeof L!="string"?this._runTask(a("Commit must be a string"),Y):this._runTask($e(["revert",...d(arguments,0,!0),L]),Y)},U.prototype.addTag=function(L){let Y=typeof L=="string"?st(L):a("Git.addTag requires a tag name");return this._runTask(Y,h(arguments))},U.prototype.addAnnotatedTag=function(L,Y){return this._runTask(Ee(L,Y),h(arguments))},U.prototype.deleteLocalBranch=function(L,Y,ye){return this._runTask(x(L,typeof Y=="boolean"?Y:!1),h(arguments))},U.prototype.deleteLocalBranches=function(L,Y,ye){return this._runTask(b(L,typeof Y=="boolean"?Y:!1),h(arguments))},U.prototype.branch=function(L,Y){return this._runTask(v(d(arguments)),h(arguments))},U.prototype.branchLocal=function(L){return this._runTask(y(),h(arguments))},U.prototype.raw=function(L){let Y=!Array.isArray(L),ye=[].slice.call(Y?arguments:L,0);for(let vt=0;vte.removeEventListener("abort",a))}}]:void 0}function l$(e){return typeof e=="string"&&e.trim().toLowerCase()==="-c"}function c$(e,t){if(l$(e)&&/^\s*protocol(.[a-z]+)?.allow/.test(t))throw new Vn(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function u$(e,t){if(/^\s*--(upload|receive)-pack/.test(e))throw new Vn(void 0,"unsafe","Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack");if(t==="clone"&&/^\s*-u\b/.test(e))throw new Vn(void 0,"unsafe","Use of clone with option -u is not permitted without enabling allowUnsafePack");if(t==="push"&&/^\s*--exec\b/.test(e))throw new Vn(void 0,"unsafe","Use of push with option --exec is not permitted without enabling allowUnsafePack")}function f$({allowUnsafeProtocolOverride:e=!1,allowUnsafePack:t=!1}={}){return{type:"spawn.args",action(r,n){return r.forEach((i,a)=>{let s=aDp(i))).then(s.done)}return{type:"spawn.after",action(i,a){return _l(this,arguments,function*(s,{spawned:o,close:c}){var l,u;let f=r(),d=!0,h=()=>void(d=!1);(l=o.stdout)==null||l.on("data",h),(u=o.stderr)==null||u.on("data",h),o.on("error",h),o.on("close",p=>f.close(p)),o.on("exit",p=>f.exit(p));try{yield f.result,d&&(yield Dp(50)),c(f.exitCode)}catch(p){c(f.exitCode,p)}})}}}oe();var p$="Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings",pb="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function m$(e){return!e||!/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(e)}function mb(e,t){if(e.length<1||e.length>2)throw new Vn(void 0,"binary",p$);if(e.some(m$))if(t)console.warn(pb);else throw new Vn(void 0,"binary",pb);let[n,i]=e;return{binary:n,prefix:i}}function g$(e,t=["git"],r=!1){let n=mb(xn(t),r);e.on("binary",i=>{n=mb(xn(i),r)}),e.append("spawn.binary",()=>n.binary),e.append("spawn.args",i=>n.prefix?[n.prefix,...i]:i)}Ei();function v$(e){return!!(e.exitCode&&e.stdErr.length)}function y$(e){return Buffer.concat([...e.stdOut,...e.stdErr])}function w$(e=!1,t=v$,r=y$){return(n,i)=>!e&&n||!t(i)?n:r(i)}function gb(e){return{type:"task.error",action(t,r){let n=e(t.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});return Buffer.isBuffer(n)?{error:new wr(void 0,n.toString("utf-8"))}:{error:n}}}}oe();var b$=class{constructor(){this.plugins=new Set,this.events=new yx.EventEmitter}on(e,t){this.events.on(e,t)}reconfigure(e,t){this.events.emit(e,t)}append(e,t){let r=ke(this.plugins,{type:e,action:t});return()=>this.plugins.delete(r)}add(e){let t=[];return xn(e).forEach(r=>r&&this.plugins.add(ke(t,r))),()=>{t.forEach(r=>this.plugins.delete(r))}}exec(e,t,r){let n=t,i=Object.freeze(Object.create(r));for(let a of this.plugins)a.type===e&&(n=a.action(n,i));return n}};oe();function _$(e){let t="--progress",r=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action(a,s){return r.includes(s.method)?Ab(a,t):a}},{type:"spawn.after",action(a,s){var o;s.commands.includes(t)&&((o=s.spawned.stderr)==null||o.on("data",c=>{let l=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(c.toString("utf8"));l&&e({method:s.method,stage:x$(l[1]),progress:Ie(l[2]),processed:Ie(l[3]),total:Ie(l[4])})}))}}]}function x$(e){return String(e.toLowerCase().split(" ",1))||"unknown"}oe();function S$(e){let t=Cb(e,["uid","gid"]);return{type:"spawn.options",action(r){return Fr(Fr({},t),r)}}}function E$({block:e,stdErr:t=!0,stdOut:r=!0}){if(e>0)return{type:"spawn.after",action(n,i){var a,s;let o;function c(){o&&clearTimeout(o),o=setTimeout(u,e)}function l(){var f,d;(f=i.spawned.stdout)==null||f.off("data",c),(d=i.spawned.stderr)==null||d.off("data",c),i.spawned.off("exit",l),i.spawned.off("close",l),o&&clearTimeout(o)}function u(){l(),i.kill(new Vn(void 0,"timeout","block timeout reached"))}r&&((a=i.spawned.stdout)==null||a.on("data",c)),t&&((s=i.spawned.stderr)==null||s.on("data",c)),i.spawned.on("exit",l),i.spawned.on("close",l),c()}}}kl();function A$(){return{type:"spawn.args",action(e){let t=[],r;function n(i){(r=r||[]).push(...i)}for(let i=0;iPu(s)&&B2(s)||s));break}t.push(a)}return r?[...t,"--",...r.map(String)]:t}}}oe();var k$=a$();function T$(e,t){var r;let n=new b$,i=Ob(e&&(typeof e=="string"?{baseDir:e}:e)||{},t);if(!Jp(i.baseDir))throw new s$(i,"Cannot use simple-git on a directory that does not exist");return Array.isArray(i.config)&&n.add(d$(i.config)),n.add(f$(i.unsafe)),n.add(A$()),n.add(h$(i.completion)),i.abort&&n.add(o$(i.abort)),i.progress&&n.add(_$(i.progress)),i.timeout&&n.add(E$(i.timeout)),i.spawnOptions&&n.add(S$(i.spawnOptions)),n.add(gb(w$(!0))),i.errors&&n.add(gb(i.errors)),g$(n,i.binary,(r=i.unsafe)==null?void 0:r.allowUnsafeCustomBinary),new k$(i,n)}Rs();var wx=T$;g();var bx=require("obsidian"),Gu="YYYY-MM-DD",bm=`${Gu} HH:mm`,_m=`${Gu} HH:mm:ss`,zu=40,Ms="conflict-files-obsidian-git.md",ar={commitMessage:"vault backup: {{date}}",commitDateFormat:_m,autoSaveInterval:0,autoPushInterval:0,autoPullInterval:0,autoPullOnBoot:!1,disablePush:!1,pullBeforePush:!0,disablePopups:!1,disablePopupsForNoChanges:!1,listChangedFilesInMessageBody:!1,showStatusBar:!0,updateSubmodules:!1,syncMethod:"merge",customMessageOnAutoBackup:!1,autoBackupAfterFileChange:!1,treeStructure:!1,refreshSourceControl:bx.Platform.isDesktopApp,basePath:"",differentIntervalCommitAndPush:!1,changedFilesInStatusBar:!1,showedMobileNotice:!1,refreshSourceControlTimer:7e3,showBranchStatusBar:!0,setLastSaveToLastCommit:!1,submoduleRecurseCheckout:!1,gitDir:"",showFileMenu:!0,authorInHistoryView:"hide",dateInHistoryView:!1,diffStyle:"split",lineAuthor:{show:!1,followMovement:"inactive",authorDisplay:"initials",showCommitHash:!1,dateTimeFormatOptions:"date",dateTimeFormatCustomString:bm,dateTimeTimezone:"viewer-local",coloringMaxAge:"1y",colorNew:{r:255,g:150,b:150},colorOld:{r:120,g:160,b:255},textColorCss:"var(--text-muted)",ignoreWhitespace:!1,gutterSpacingFallbackLength:5}},St={type:"git-view",name:"Source Control",icon:"git-pull-request"},$r={type:"git-history-view",name:"History",icon:"history"},Ai={type:"split-diff-view",name:"Diff view",icon:"diff"},ki={type:"diff-view",name:"Diff View",icon:"git-pull-request"},Vu="C:\\Program Files\\Git\\cmd\\git.exe",Wu="git_credentials_input",Os="obsidian_askpass.sh",_x=`#!/bin/sh PROMPT="$1" TEMP_FILE="$OBSIDIAN_GIT_CREDENTIALS_INPUT" @@ -124,46 +124,46 @@ done RESPONSE=$(cat "$TEMP_FILE.response") echo "$RESPONSE" -`,Sx=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"];g();var Ex=require("obsidian"),C$={options:[],placeholder:"",allowEmpty:!1,onlySelection:!1,initialValue:void 0},Fe=class extends Ex.SuggestModal{constructor(t,r){super(t.app),this.config={...C$,...r},this.setPlaceholder(this.config.placeholder)}openAndGetResult(){return new Promise(t=>{this.resolve=t,this.open(),this.config.initialValue!=null&&(this.inputEl.value=this.config.initialValue,this.inputEl.dispatchEvent(new Event("input")))})}onClose(){new Promise(t=>setTimeout(t,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(t){return this.config.onlySelection?this.config.options:this.config.allowEmpty?[t.length>0?t:" ",...this.config.options]:[t.length>0?t:"...",...this.config.options]}renderSuggestion(t,r){r.setText(t)}onChooseSuggestion(t,r){if(this.resolve){let n;this.config.allowEmpty&&t===" "?n="":t==="..."?n=void 0:n=t,this.resolve(n)}}};g();function Ax(e,t){let r=Object.assign({},e.lineAuthor,t.lineAuthor);return Object.assign({},e,t,{lineAuthor:r})}var Fs=class extends Error{constructor(r){super("No network connection available");this.originalError=r}};g();var oT=ze(Gx()),lT=ze(sT()),ba=require("obsidian");var Gg=(e,t)=>e==="."||t==null||t.length===0||t==="."?!0:t.length>=e.length?t.startsWith(e):e.startsWith(t);function tn(e,t){let r;if(t){if(t.button===0||t.button===1){let n=ba.Keymap.isModEvent(t);r=e.workspace.getLeaf(n)}}else r=e.workspace.getLeaf(!1);return r}function kn(e,t,r,n,i){if(t.button==2){let a=e.vault.getAbstractFileByPath(r);if(a!=null){let s=new ba.Menu;e.workspace.trigger("file-menu",s,a,i,n),s.showAtPosition({x:t.pageX,y:t.pageY})}else{let s=new ba.Menu;e.workspace.trigger("obsidian-git:menu",s,r,i,n),s.showAtPosition({x:t.pageX,y:t.pageY})}}}function Oi(e){throw new Error("Impossible branch: "+e)}function zg(e){return`rgb(${e.r},${e.g},${e.b})`}function cT(e){var a;let t=(a=oT.fromString(e))==null?void 0:a.toRgbaArray();if(t===void 0)return;let[r,n,i]=t;return{r,g:n,b:i}}function uT(e){return e.diff(ba.moment.unix(0),"seconds")}function fT(e){if(e.length!==0)return e.slice().sort()[Math.floor(e.length/2)]}function dT(e,t){return(0,lT.default)(e,t,{strict:!0})}function zl(e,t){return new Proxy(e,{get(r,n){return n==="length"?Math.min(t,r.length):r[n]}})}function hT(e,t,r){return e.length<=t?new Array(t-e.length).fill(r).join("")+e:e.substring(e.length-t)}function pT(e,t){if(t<=0)return e;let r=new Array(t).fill(" ").join(""),n=e.substring(t,e.length);return r+n}function Vg(e,t,r){return e<=t&&t<=r}function Ii(e){let[t,...r]=e.split("/");return[t,r.length===0?void 0:r.join("/")]}function Tn(e){return e.endsWith("/")?e:e.split("/").last().replace(".md","")}function Vl(e){return e===1?"1 minute":`${e} minutes`}function Rj(e){let t=e.lastIndexOf(".");return e.substring(t+1)}function Vs(e){if(e.endsWith(".md"))return!1;let t=Rj(e);return Sx.includes(t)}function Wg(e){return(e.startsWith("https://github.com/")||e.startsWith("https://gitlab.com/"))&&(e.endsWith(".git")||(e=e+".git")),e}g();var mT=require("obsidian"),Ws=class{constructor(t){this.plugin=t,this.app=t.app}getRelativeVaultPath(t){return this.plugin.settings.basePath?this.plugin.settings.basePath+"/"+t:t}getRelativeRepoPath(t,r=!0){return r&&this.plugin.settings.basePath.length>0?t.substring(this.plugin.settings.basePath.length+1):t}unload(){}_getTreeStructure(t,r=0){let n=[];for(t=[...t];t.length>0;){let i=t.first(),a=i.path.substring(r);if(a.contains("/")){let s=a.substring(0,a.indexOf("/")),o=t.filter(l=>l.path.substring(r).startsWith(s+"/"));o.forEach(l=>t.remove(l));let c=i.path.substring(0,a.indexOf("/")+r);n.push({title:s,path:c,vaultPath:this.getRelativeVaultPath(c),children:this._getTreeStructure(o,(r>0?r+s.length:s.length)+1)})}else n.push({title:a,data:i,path:i.path,vaultPath:this.getRelativeVaultPath(i.path)}),t.remove(i)}return n}simplify(t){var r,n,i,a;for(let s of t){for(;;){let o=((r=s.children)==null?void 0:r.length)==1,c=((i=(n=s.children)==null?void 0:n.first())==null?void 0:i.data)==null;if(!(s.children!=null&&o&&c))break;let l=s.children.first();s.title+="/"+l.title,s.data=l.data,s.path=l.path,s.vaultPath=l.vaultPath,s.children=l.children}s.children!=null&&this.simplify(s.children),(a=s.children)==null||a.sort((o,c)=>{let l=(c.data==null?1:0)-(o.data==null?1:0);return l!=0?l:o.title.localeCompare(c.title)})}return t.sort((s,o)=>{let c=(o.data==null?1:0)-(s.data==null?1:0);return c!=0?c:s.title.localeCompare(o.title)})}getTreeStructure(t){let r=this._getTreeStructure(t);return this.simplify(r)}async formatCommitMessage(t){let r;if(t.includes("{{numFiles}}")){r=await this.status();let n=r.staged.length;t=t.replace("{{numFiles}}",String(n))}if(t.includes("{{hostname}}")){let n=this.plugin.localStorage.getHostname()||"";t=t.replace("{{hostname}}",n)}if(t.includes("{{files}}")){r=r!=null?r:await this.status();let n={},i="";if(r.staged.length<100){r.staged.forEach(s=>{s.index in n?n[s.index].push(s.path):n[s.index]=[s.path]});let a=[];for(let[s,o]of Object.entries(n))a.push(s+" "+o.join(" "));i=a.join(", ")}else i="Too many files to list";t=t.replace("{{files}}",i)}if(t=t.replace("{{date}}",(0,mT.moment)().format(this.plugin.settings.commitDateFormat)),this.plugin.settings.listChangedFilesInMessageBody){let n=r!=null?r:await this.status(),i="";n.staged.length<100?i=n.staged.map(a=>a.path).join(` +`,xx=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"];g();var Sx=require("obsidian"),C$={options:[],placeholder:"",allowEmpty:!1,onlySelection:!1,initialValue:void 0},Fe=class extends Sx.SuggestModal{constructor(t,r){super(t.app),this.config={...C$,...r},this.setPlaceholder(this.config.placeholder)}openAndGetResult(){return new Promise(t=>{this.resolve=t,this.open(),this.config.initialValue!=null&&(this.inputEl.value=this.config.initialValue,this.inputEl.dispatchEvent(new Event("input")))})}onClose(){new Promise(t=>setTimeout(t,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(t){return this.config.onlySelection?this.config.options:this.config.allowEmpty?[t.length>0?t:" ",...this.config.options]:[t.length>0?t:"...",...this.config.options]}renderSuggestion(t,r){r.setText(t)}onChooseSuggestion(t,r){if(this.resolve){let n;this.config.allowEmpty&&t===" "?n="":t==="..."?n=void 0:n=t,this.resolve(n)}}};g();function Ex(e,t){let r=Object.assign({},e.lineAuthor,t.lineAuthor);return Object.assign({},e,t,{lineAuthor:r})}var Is=class extends Error{constructor(r){super("No network connection available");this.originalError=r}};g();var sT=ze(Ux()),oT=ze(aT()),ba=require("obsidian");var Ug=(e,t)=>e==="."||t==null||t.length===0||t==="."?!0:t.length>=e.length?t.startsWith(e):e.startsWith(t);function rn(e,t){let r;if(t){if(t.button===0||t.button===1){let n=ba.Keymap.isModEvent(t);r=e.workspace.getLeaf(n)}}else r=e.workspace.getLeaf(!1);return r}function kn(e,t,r,n,i){if(t.button==2){let a=e.vault.getAbstractFileByPath(r);if(a!=null){let s=new ba.Menu;e.workspace.trigger("file-menu",s,a,i,n),s.showAtPosition({x:t.pageX,y:t.pageY})}else{let s=new ba.Menu;e.workspace.trigger("obsidian-git:menu",s,r,i,n),s.showAtPosition({x:t.pageX,y:t.pageY})}}}function Oi(e){throw new Error("Impossible branch: "+e)}function Gg(e){return`rgb(${e.r},${e.g},${e.b})`}function lT(e){var a;let t=(a=sT.fromString(e))==null?void 0:a.toRgbaArray();if(t===void 0)return;let[r,n,i]=t;return{r,g:n,b:i}}function cT(e){return e.diff(ba.moment.unix(0),"seconds")}function uT(e){if(e.length!==0)return e.slice().sort()[Math.floor(e.length/2)]}function fT(e,t){return(0,oT.default)(e,t,{strict:!0})}function zl(e,t){return new Proxy(e,{get(r,n){return n==="length"?Math.min(t,r.length):r[n]}})}function dT(e,t,r){return e.length<=t?new Array(t-e.length).fill(r).join("")+e:e.substring(e.length-t)}function hT(e,t){if(t<=0)return e;let r=new Array(t).fill(" ").join(""),n=e.substring(t,e.length);return r+n}function zg(e,t,r){return e<=t&&t<=r}function Ii(e){let[t,...r]=e.split("/");return[t,r.length===0?void 0:r.join("/")]}function Tn(e){return e.endsWith("/")?e:e.split("/").last().replace(/\.md$/,"")}function pT(e){return e===1?"1 minute":`${e} minutes`}function Rj(e){let t=e.lastIndexOf(".");return e.substring(t+1)}function zs(e){if(e.endsWith(".md"))return!1;let t=Rj(e);return xx.includes(t)}function Vg(e){return(e.startsWith("https://github.com/")||e.startsWith("https://gitlab.com/"))&&(e.endsWith(".git")||(e=e+".git")),e}g();var mT=require("obsidian"),Vs=class{constructor(t){this.plugin=t,this.app=t.app}getRelativeVaultPath(t){return this.plugin.settings.basePath?this.plugin.settings.basePath+"/"+t:t}getRelativeRepoPath(t,r=!0){return r&&this.plugin.settings.basePath.length>0?t.substring(this.plugin.settings.basePath.length+1):t}unload(){}_getTreeStructure(t,r=0){let n=[];for(t=[...t];t.length>0;){let i=t.first(),a=i.path.substring(r);if(a.contains("/")){let s=a.substring(0,a.indexOf("/")),o=t.filter(l=>l.path.substring(r).startsWith(s+"/"));o.forEach(l=>t.remove(l));let c=i.path.substring(0,a.indexOf("/")+r);n.push({title:s,path:c,vaultPath:this.getRelativeVaultPath(c),children:this._getTreeStructure(o,(r>0?r+s.length:s.length)+1)})}else n.push({title:a,data:i,path:i.path,vaultPath:this.getRelativeVaultPath(i.path)}),t.remove(i)}return n}simplify(t){var r,n,i,a;for(let s of t){for(;;){let o=((r=s.children)==null?void 0:r.length)==1,c=((i=(n=s.children)==null?void 0:n.first())==null?void 0:i.data)==null;if(!(s.children!=null&&o&&c))break;let l=s.children.first();s.title+="/"+l.title,s.data=l.data,s.path=l.path,s.vaultPath=l.vaultPath,s.children=l.children}s.children!=null&&this.simplify(s.children),(a=s.children)==null||a.sort((o,c)=>{let l=(c.data==null?1:0)-(o.data==null?1:0);return l!=0?l:o.title.localeCompare(c.title)})}return t.sort((s,o)=>{let c=(o.data==null?1:0)-(s.data==null?1:0);return c!=0?c:s.title.localeCompare(o.title)})}getTreeStructure(t){let r=this._getTreeStructure(t);return this.simplify(r)}async formatCommitMessage(t){let r;if(t.includes("{{numFiles}}")){r=await this.status();let n=r.staged.length;t=t.replace("{{numFiles}}",String(n))}if(t.includes("{{hostname}}")){let n=this.plugin.localStorage.getHostname()||"";t=t.replace("{{hostname}}",n)}if(t.includes("{{files}}")){r=r!=null?r:await this.status();let n={},i="";if(r.staged.length<100){r.staged.forEach(s=>{s.index in n?n[s.index].push(s.path):n[s.index]=[s.path]});let a=[];for(let[s,o]of Object.entries(n))a.push(s+" "+o.join(" "));i=a.join(", ")}else i="Too many files to list";t=t.replace("{{files}}",i)}if(t=t.replace("{{date}}",(0,mT.moment)().format(this.plugin.settings.commitDateFormat)),this.plugin.settings.listChangedFilesInMessageBody){let n=r!=null?r:await this.status(),i="";n.staged.length<100?i=n.staged.map(a=>a.path).join(` `):i="Too many files to list",t=t+` Affected files: -`+i}return t}};var Te=class extends Ws{constructor(r){super(r);this.useDefaultWindowsGitPath=!1}async setGitInstance(r=!1){if(this.isGitInstalled()){let n=this.app.vault.adapter,i=n.getBasePath(),a=i;this.plugin.settings.basePath&&(await n.exists((0,Xn.normalizePath)(this.plugin.settings.basePath))?a=Be.join(i,this.plugin.settings.basePath):r||new Xn.Notice("ObsidianGit: Base path does not exist")),this.absoluteRepoPath=a,this.git=bx({baseDir:a,binary:this.plugin.localStorage.getGitPath()||(this.useDefaultWindowsGitPath?Wu:void 0),config:["core.quotepath=off"],unsafe:{allowUnsafeCustomBinary:!0}});let s=this.plugin.localStorage.getPATHPaths(),o=this.plugin.localStorage.getEnvVars(),c=this.plugin.settings.gitDir;if(s.length>0){let f=process.env.PATH+":"+s.join(":");process.env.PATH=f}c&&(process.env.GIT_DIR=c);for(let f of o){let[d,h]=f.split("=");process.env[d]=h}if(yT.default.enable("simple-git"),await this.git.checkIsRepo()){let f=await this.git.revparse("--show-cdup"),d=(0,Wl.resolve)(a+Wl.sep+f);this.absoluteRepoPath=d,await this.git.cwd(d)}let l=Be.join(i,this.app.vault.configDir,"plugins","obsidian-git"),u=Be.join(l,Is);process.env.SSH_ASKPASS==null&&(process.env.SSH_ASKPASS=u),process.env.OBSIDIAN_GIT_CREDENTIALS_INPUT=Be.join(l,qu),process.env.SSH_ASKPASS==u&&this.askpass().catch(f=>this.plugin.displayError(f))}}getRelativeVaultPath(r){let i=this.app.vault.adapter.getBasePath(),a=Be.join(this.absoluteRepoPath,r),s=Be.relative(i,a);return Xn.Platform.isWin&&(s=s.replace(/\\/g,"/")),s}getRelativeRepoPath(r,n=!0){if(n){let a=this.plugin.app.vault.adapter.getBasePath(),s=this.absoluteRepoPath,o=Be.join(a,r),c=Be.relative(s,o);return Xn.Platform.isWin&&(c=c.replace(/\\/g,"/")),c}return r}async askpass(){let r=this.app.vault.adapter,n=r.getBasePath(),i=Be.join(n,this.app.vault.configDir,"plugins","obsidian-git"),a=this.app.vault.configDir+"/plugins/obsidian-git/";await Zn.writeFile(Be.join(i,Is),xx),await Zn.chmod(Be.join(i,Is),493),this.watchAbortController=new AbortController;let{signal:s}=this.watchAbortController;try{let o=Zn.watch(i,{signal:s});for await(let c of o){if(c.filename!=qu)continue;let l=a+qu;if(!await r.exists(l))continue;let u=await r.read(l),f;u.length>60&&(f=new Xn.Notice(u,999999));let d=await new Fe(this.plugin,{allowEmpty:!0,placeholder:u.length>60?"Enter a response to the message.":u}).openAndGetResult();f==null||f.hide(),await r.exists(l)&&await r.write(`${l}.response`,d!=null?d:"")}}catch(o){this.plugin.displayError(o),await Zn.rm(Be.join(i,Is),{force:!0}),await Zn.rm(Be.join(i,`${Is}.response`),{force:!0}),await new Promise(c=>setTimeout(c,5e3)),this.plugin.log("Retry watch for ask pass"),await this.askpass()}}unload(){var r;(r=this.watchAbortController)==null||r.abort()}async status(){this.plugin.setPluginState({gitAction:1});let r=await this.git.status();this.plugin.setPluginState({gitAction:0});let n=r.files.map(i=>{let a=this.formatPath(i);return{path:a.path,from:a.from,index:i.index==="?"?"U":i.index,workingDir:i.working_dir==="?"?"U":i.working_dir,vaultPath:this.getRelativeVaultPath(a.path)}});return{all:n,changed:n.filter(i=>i.workingDir!==" "),staged:n.filter(i=>i.index!==" "&&i.index!="U"),conflicted:r.conflicted.map(i=>this.formatPath({path:i}).path)}}async submoduleAwareHeadRevisonInContainingDirectory(r){let n=this.getRelativeRepoPath(r),a=["-C",Be.dirname(n),"rev-parse","HEAD"],s=this.git.raw(a);return s.catch(o=>console.warn("obsidian-git: rev-parse error:",o)),s}async getSubmodulePaths(){return new Promise(r=>{this.git.outputHandler((n,i,a,s)=>{if(!(s.contains("submodule")&&s.contains("foreach")))return;let o="",c=this.app.vault.adapter.getBasePath()+(this.plugin.settings.basePath?"/"+this.plugin.settings.basePath:"");i.on("data",l=>{o+=l.toString("utf8")}),i.on("end",()=>{let u=o.split(` -`).map(f=>{let d=f.match(/'([^']*)'/);if(d!=null)return c+"/"+d[1]+Wl.sep}).filter(f=>!!f);u.reverse(),r(u)})}),this.git.subModule(["foreach","--recursive",""]).then(()=>{this.git.outputHandler(()=>{})},n=>this.plugin.displayError(n))})}formatPath(r,n=!1){function i(a){if(a!=null)return a.startsWith('"')&&a.endsWith('"')?a.substring(1,a.length-1):a}return n?{from:i(r.from),path:i(r.path)}:{path:i(r.path)}}async blame(r,n,i){if(r=this.getRelativeRepoPath(r),!await this.isTracked(r))return"untracked";let a=await this.getSubmoduleOfFile(r),s=a?["-C",a.submodule]:[],o=a?a.relativeFilepath:r;s.push("blame","--porcelain"),i&&s.push("-w");let c=`-C${Vu}`;switch(n){case"inactive":break;case"same-commit":s.push("-C",c);break;case"all-commits":s.push("-C","-C",c);break;default:Oi(n)}s.push("--",o);let l=await this.git.raw(s);return Mj(l)}async isTracked(r){let n=await this.getSubmoduleOfFile(r),i=n?["-C",n.submodule]:[],a=n?n.relativeFilepath:r;return i.push("ls-files","--",a),this.git.raw(i).then(s=>s.trim()!=="")}async commitAll({message:r}){if(this.plugin.settings.updateSubmodules){this.plugin.setPluginState({gitAction:4});let i=await this.getSubmodulePaths();for(let a of i)await this.git.cwd({path:a,root:!1}).add("-A"),await this.git.cwd({path:a,root:!1}).commit(await this.formatCommitMessage(r))}this.plugin.setPluginState({gitAction:3}),await this.git.add("-A"),this.plugin.setPluginState({gitAction:4});let n=await this.git.commit(await this.formatCommitMessage(r));return this.app.workspace.trigger("obsidian-git:head-change"),n.summary.changes}async commit({message:r,amend:n}){this.plugin.setPluginState({gitAction:4});let i=(await this.git.commit(await this.formatCommitMessage(r),n?["--amend"]:[])).summary.changes;return this.app.workspace.trigger("obsidian-git:head-change"),this.plugin.setPluginState({gitAction:0}),i}async stage(r,n){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.git.add(["--",r]),this.plugin.setPluginState({gitAction:0})}async stageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.add(r!=null?r:"-A"),this.plugin.setPluginState({gitAction:0})}async unstageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.reset(r!=null?["--",r]:[]),this.plugin.setPluginState({gitAction:0})}async unstage(r,n){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.git.reset(["--",r]),this.plugin.setPluginState({gitAction:0})}async discard(r){this.plugin.setPluginState({gitAction:3}),await this.isTracked(r)?await this.git.checkout(["--",r]):await this.app.vault.adapter.rmdir(this.getRelativeVaultPath(r),!0),this.plugin.setPluginState({gitAction:0})}async hashObject(r){r=this.getRelativeRepoPath(r);let n=await this.getSubmoduleOfFile(r),i=n?["-C",n.submodule]:[],a=n?n.relativeFilepath:r;return i.push("hash-object","--",a),this.git.raw(i)}async discardAll({dir:r}){return this.discard(r!=null?r:".")}async pull(){this.plugin.setPluginState({gitAction:2});try{this.plugin.settings.updateSubmodules&&await this.git.subModule(["update","--remote","--merge","--recursive"]);let r=await this.branchInfo(),n=await this.git.revparse([r.current]);if(!r.tracking&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring pull of main repo and updating submodules only.");return}await this.git.fetch();let i=await this.git.revparse([r.tracking]);if(n!==i){if(this.plugin.settings.syncMethod==="merge"||this.plugin.settings.syncMethod==="rebase")try{switch(this.plugin.settings.syncMethod){case"merge":await this.git.merge([r.tracking]);break;case"rebase":await this.git.rebase([r.tracking])}}catch(o){this.plugin.displayError(`Pull failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`);return}else if(this.plugin.settings.syncMethod==="reset")try{await this.git.raw(["update-ref",`refs/heads/${r.current}`,i]),await this.unstageAll({})}catch(o){this.plugin.displayError(`Sync failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`)}this.app.workspace.trigger("obsidian-git:head-change");let a=await this.git.revparse([r.current]);return(await this.git.diff([`${n}..${a}`,"--name-only"])).split(/\r\n|\r|\n/).filter(o=>o.length>0).map(o=>({path:o,workingDir:"P",vaultPath:this.getRelativeVaultPath(o)}))}else return[]}catch(r){this.convertErrors(r)}}async push(){this.plugin.setPluginState({gitAction:5});try{if(this.plugin.settings.updateSubmodules){let s=await this.git.env({...process.env,OBSIDIAN_GIT:1}).subModule(["foreach","--recursive",`tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi`]);console.log(s)}let r=await this.git.status(),n=r.tracking,i=r.current;if(!n&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring push of main repo and updating submodules only.");return}let a=(await this.git.diffSummary([i,n,"--"])).changed;return await this.git.env({...process.env,OBSIDIAN_GIT:1}).push(),a}catch(r){this.convertErrors(r)}}async getUnpushedCommits(){let r=await this.git.status(),n=r.tracking,i=r.current;return n==null||i==null?0:(await this.git.diffSummary([i,n,"--"])).changed}async canPush(){if(this.plugin.settings.updateSubmodules===!0)return!0;let r=await this.git.status(),n=r.tracking,i=r.current;return n?(await this.git.diffSummary([i,n,"--"])).changed!==0:!1}async checkRequirements(){return this.isGitInstalled()?await this.git.checkIsRepo()?"valid":"missing-repo":"missing-git"}async branchInfo(){let r=await this.git.status(),n=await this.git.branch(["--no-color"]);return{current:r.current||void 0,tracking:r.tracking||void 0,branches:n.all}}async getRemoteUrl(r){try{return await this.git.remote(["get-url",r])||void 0}catch(n){if(String(n).contains(r))return;throw n}}async log(r,n=!0,i,a){let s;r&&(s=this.getRelativeRepoPath(r,n));let o={file:s,maxCount:i,"--diff-merges":"first-parent","--name-status":null};return a&&(o[a]=null),(await this.git.log(o)).all.map(l=>{var u,f,d,h;return{...l,author:{name:l.author_name,email:l.author_email},refs:l.refs.split(", ").filter(p=>p.length>0),diff:{...l.diff,files:(f=(u=l.diff)==null?void 0:u.files.map(p=>({...p,status:p.status,path:p.file,hash:l.hash,vaultPath:this.getRelativeVaultPath(p.file),fromPath:p.from,fromVaultPath:p.from!=null?this.getRelativeVaultPath(p.from):void 0,binary:p.binary})))!=null?f:[]},fileName:(h=(d=l.diff)==null?void 0:d.files.first())==null?void 0:h.file}})}async show(r,n,i=!0){let a=this.getRelativeRepoPath(n,i);return this.git.show([r+":"+a])}async checkout(r,n){if(n&&(r=`${n}/${r}`),await this.git.checkout(r),this.plugin.settings.submoduleRecurseCheckout){let i=await this.getSubmodulePaths();for(let a of i){let s=await this.git.cwd({path:a,root:!1}).branch();Object.keys(s.branches).includes(r)&&await this.git.cwd({path:a,root:!1}).checkout(r)}}}async createBranch(r){await this.git.checkout(["-b",r])}async deleteBranch(r,n){await this.git.branch([n?"-D":"-d",r])}async branchIsMerged(r){return!(await this.git.branch(["--no-merged"])).all.contains(r)}async init(){await this.git.init(!1)}async clone(r,n,i){await this.git.clone(r,Be.join(this.app.vault.adapter.getBasePath(),n),i?["--depth",`${i}`]:[])}async setConfig(r,n){n==null?await this.git.raw(["config","--local","--unset",r]):await this.git.addConfig(r,n)}async getConfig(r){let i=(await this.git.listConfig("local")).all[r];if(typeof i=="string"||i==null)return i;throw new Error("Config value is not a string")}async fetch(r){await this.git.fetch(r!=null?[r]:[])}async setRemote(r,n){(await this.getRemotes()).includes(r)?await this.git.remote(["set-url",r,n]):await this.git.remote(["add",r,n])}async getRemoteBranches(r){let n=await this.git.branch(["-r","--list",`${r}*`]),i=[];for(let a in n.branches)i.push(n.branches[a].name);return i}async getRemotes(){let r=await this.git.remote([]);return r?r.trim().split(` -`):[]}async removeRemote(r){await this.git.removeRemote(r)}async updateUpstreamBranch(r){try{await this.git.branch(["--set-upstream-to",r])}catch(n){try{await this.git.branch(["--set-upstream",r])}catch(i){await this.git.push(["--set-upstream",...Ii(r)])}}}updateGitPath(r){return this.setGitInstance()}updateBasePath(r){return this.setGitInstance(!0)}async getDiffString(r,n=!1,i){return n?await this.git.diff(["--cached","--",r]):i?await this.git.show([`${i}`,"--",r]):await this.git.diff(["--",r])}async diff(r,n,i){return await this.git.diff([`${n}..${i}`,"--",r])}async rawCommand(r){let n=r.split(" ");return await this.git.raw(n[0],...n.slice(1))}async getSubmoduleOfFile(r){if(!await this.app.vault.adapter.exists(Be.dirname(r)))return;let n=await this.git.raw(["-C",Be.dirname(r),"rev-parse","--show-toplevel"],c=>c&&console.warn("get-submodule-of-file",c==null?void 0:c.message));if(n=n.trim(),(await this.git.raw(["-C",Be.dirname(r),"rev-parse","--show-superproject-working-tree"],c=>c&&console.warn("get-submodule-of-file",c==null?void 0:c.message))).trim()==="")return;let s=this.app.vault.adapter.getFullPath(Be.normalize(r)),o=Be.relative(n,s);return{submodule:n,relativeFilepath:o}}async getLastCommitTime(){let r=await this.git.log({n:1});if(r!=null&&r.latest!=null)return new Date(r.latest.date)}isGitInstalled(){let r=this.plugin.localStorage.getGitPath(),n=(0,Yg.spawnSync)(r||"git",["--version"],{stdio:"ignore"});if(n.error)if(Xn.Platform.isWin&&!r){this.plugin.log(`Git not found in PATH. Checking standard installation path(${Wu}) of Git for Windows.`);let i=(0,Yg.spawnSync)(Wu,["--version"],{stdio:"ignore"});if(i.error)return console.error(i.error),!1;this.useDefaultWindowsGitPath=!0}else return console.error(n.error),!1;else this.useDefaultWindowsGitPath=!1;return!0}convertErrors(r){if(r instanceof yr){let n=String(r.message);if(n.contains("Could not resolve host")||n.contains("Unable to resolve host")||n.match(/ssh: connect to host .*? port .*?: Operation timed out/)!=null||n.match(/ssh: connect to host .*? port .*?: Network is unreachable/)!=null||n.match(/ssh: connect to host .*? port .*?: Undefined error: 0/)!=null)throw new Fs(n)}throw r}async isFileTrackedByLFS(r){try{return(await this.git.raw(["check-attr","filter",r])).includes("filter: lfs")}catch(n){let i=n instanceof Error?n.message:String(n);return this.plugin.displayError(`Error checking LFS status: ${i}`),!1}}},wT={hash:"000000",isZeroCommit:!0,summary:""};function Mj(e){let r=e.replace(`\r +`+i}return t}};var Te=class extends Vs{constructor(r){super(r);this.useDefaultWindowsGitPath=!1}async setGitInstance(r=!1){if(this.isGitInstalled()){let n=this.app.vault.adapter,i=n.getBasePath(),a=i;this.plugin.settings.basePath&&(await n.exists((0,Xn.normalizePath)(this.plugin.settings.basePath))?a=Be.join(i,this.plugin.settings.basePath):r||new Xn.Notice("ObsidianGit: Base path does not exist")),this.absoluteRepoPath=a,this.git=wx({baseDir:a,binary:this.plugin.localStorage.getGitPath()||(this.useDefaultWindowsGitPath?Vu:void 0),config:["core.quotepath=off"],unsafe:{allowUnsafeCustomBinary:!0}});let s=this.plugin.localStorage.getPATHPaths(),o=this.plugin.localStorage.getEnvVars(),c=this.plugin.settings.gitDir;if(s.length>0){let f=process.env.PATH+":"+s.join(":");process.env.PATH=f}c&&(process.env.GIT_DIR=c);for(let f of o){let[d,h]=f.split("=");process.env[d]=h}if(yT.default.enable("simple-git"),await this.git.checkIsRepo()){let f=await this.git.revparse("--show-cdup"),d=(0,Vl.resolve)(a+Vl.sep+f);this.absoluteRepoPath=d,await this.git.cwd(d)}let l=Be.join(i,this.app.vault.configDir,"plugins","obsidian-git"),u=Be.join(l,Os);process.env.SSH_ASKPASS==null&&(process.env.SSH_ASKPASS=u),process.env.OBSIDIAN_GIT_CREDENTIALS_INPUT=Be.join(l,Wu),process.env.SSH_ASKPASS==u&&this.askpass().catch(f=>this.plugin.displayError(f))}}getRelativeVaultPath(r){let i=this.app.vault.adapter.getBasePath(),a=Be.join(this.absoluteRepoPath,r),s=Be.relative(i,a);return Xn.Platform.isWin&&(s=s.replace(/\\/g,"/")),s}getRelativeRepoPath(r,n=!0){if(n){let a=this.plugin.app.vault.adapter.getBasePath(),s=this.absoluteRepoPath,o=Be.join(a,r),c=Be.relative(s,o);return Xn.Platform.isWin&&(c=c.replace(/\\/g,"/")),c}return r}async askpass(){let r=this.app.vault.adapter,n=r.getBasePath(),i=Be.join(n,this.app.vault.configDir,"plugins","obsidian-git"),a=this.app.vault.configDir+"/plugins/obsidian-git/";await Zn.writeFile(Be.join(i,Os),_x),await Zn.chmod(Be.join(i,Os),493),this.watchAbortController=new AbortController;let{signal:s}=this.watchAbortController;try{let o=Zn.watch(i,{signal:s});for await(let c of o){if(c.filename!=Wu)continue;let l=a+Wu;if(!await r.exists(l))continue;let u=await r.read(l),f;u.length>60&&(f=new Xn.Notice(u,999999));let d=await new Fe(this.plugin,{allowEmpty:!0,placeholder:u.length>60?"Enter a response to the message.":u}).openAndGetResult();f==null||f.hide(),await r.exists(l)&&await r.write(`${l}.response`,d!=null?d:"")}}catch(o){this.plugin.displayError(o),await Zn.rm(Be.join(i,Os),{force:!0}),await Zn.rm(Be.join(i,`${Os}.response`),{force:!0}),await new Promise(c=>setTimeout(c,5e3)),this.plugin.log("Retry watch for ask pass"),await this.askpass()}}unload(){var r;(r=this.watchAbortController)==null||r.abort()}async status(){this.plugin.setPluginState({gitAction:1});let r=await this.git.status();this.plugin.setPluginState({gitAction:0});let n=r.files.map(i=>{let a=this.formatPath(i);return{path:a.path,from:a.from,index:i.index==="?"?"U":i.index,workingDir:i.working_dir==="?"?"U":i.working_dir,vaultPath:this.getRelativeVaultPath(a.path)}});return{all:n,changed:n.filter(i=>i.workingDir!==" "),staged:n.filter(i=>i.index!==" "&&i.index!="U"),conflicted:r.conflicted.map(i=>this.formatPath({path:i}).path)}}async submoduleAwareHeadRevisonInContainingDirectory(r){let n=this.getRelativeRepoPath(r),a=["-C",Be.dirname(n),"rev-parse","HEAD"],s=this.git.raw(a);return s.catch(o=>console.warn("obsidian-git: rev-parse error:",o)),s}async getSubmodulePaths(){return new Promise(r=>{this.git.outputHandler((n,i,a,s)=>{if(!(s.contains("submodule")&&s.contains("foreach")))return;let o="",c=this.app.vault.adapter.getBasePath()+(this.plugin.settings.basePath?"/"+this.plugin.settings.basePath:"");i.on("data",l=>{o+=l.toString("utf8")}),i.on("end",()=>{let u=o.split(` +`).map(f=>{let d=f.match(/'([^']*)'/);if(d!=null)return c+"/"+d[1]+Vl.sep}).filter(f=>!!f);u.reverse(),r(u)})}),this.git.subModule(["foreach","--recursive",""]).then(()=>{this.git.outputHandler(()=>{})},n=>this.plugin.displayError(n))})}formatPath(r,n=!1){function i(a){if(a!=null)return a.startsWith('"')&&a.endsWith('"')?a.substring(1,a.length-1):a}return n?{from:i(r.from),path:i(r.path)}:{path:i(r.path)}}async blame(r,n,i){if(r=this.getRelativeRepoPath(r),!await this.isTracked(r))return"untracked";let a=await this.getSubmoduleOfFile(r),s=a?["-C",a.submodule]:[],o=a?a.relativeFilepath:r;s.push("blame","--porcelain"),i&&s.push("-w");let c=`-C${zu}`;switch(n){case"inactive":break;case"same-commit":s.push("-C",c);break;case"all-commits":s.push("-C","-C",c);break;default:Oi(n)}s.push("--",o);let l=await this.git.raw(s);return Mj(l)}async isTracked(r){let n=await this.getSubmoduleOfFile(r),i=n?["-C",n.submodule]:[],a=n?n.relativeFilepath:r;return i.push("ls-files","--",a),this.git.raw(i).then(s=>s.trim()!=="")}async commitAll({message:r}){if(this.plugin.settings.updateSubmodules){this.plugin.setPluginState({gitAction:4});let i=await this.getSubmodulePaths();for(let a of i)await this.git.cwd({path:a,root:!1}).add("-A"),await this.git.cwd({path:a,root:!1}).commit(await this.formatCommitMessage(r))}this.plugin.setPluginState({gitAction:3}),await this.git.add("-A"),this.plugin.setPluginState({gitAction:4});let n=await this.git.commit(await this.formatCommitMessage(r));return this.app.workspace.trigger("obsidian-git:head-change"),n.summary.changes}async commit({message:r,amend:n}){this.plugin.setPluginState({gitAction:4});let i=(await this.git.commit(await this.formatCommitMessage(r),n?["--amend"]:[])).summary.changes;return this.app.workspace.trigger("obsidian-git:head-change"),this.plugin.setPluginState({gitAction:0}),i}async stage(r,n){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.git.add(["--",r]),this.plugin.setPluginState({gitAction:0})}async stageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.add(r!=null?r:"-A"),this.plugin.setPluginState({gitAction:0})}async unstageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.reset(r!=null?["--",r]:[]),this.plugin.setPluginState({gitAction:0})}async unstage(r,n){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.git.reset(["--",r]),this.plugin.setPluginState({gitAction:0})}async discard(r){this.plugin.setPluginState({gitAction:3}),await this.isTracked(r)?await this.git.checkout(["--",r]):await this.app.vault.adapter.rmdir(this.getRelativeVaultPath(r),!0),this.plugin.setPluginState({gitAction:0})}async hashObject(r){r=this.getRelativeRepoPath(r);let n=await this.getSubmoduleOfFile(r),i=n?["-C",n.submodule]:[],a=n?n.relativeFilepath:r;return i.push("hash-object","--",a),this.git.raw(i)}async discardAll({dir:r}){return this.discard(r!=null?r:".")}async pull(){this.plugin.setPluginState({gitAction:2});try{this.plugin.settings.updateSubmodules&&await this.git.subModule(["update","--remote","--merge","--recursive"]);let r=await this.branchInfo(),n=await this.git.revparse([r.current]);if(!r.tracking&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring pull of main repo and updating submodules only.");return}await this.git.fetch();let i=await this.git.revparse([r.tracking]);if(n!==i){if(this.plugin.settings.syncMethod==="merge"||this.plugin.settings.syncMethod==="rebase")try{switch(this.plugin.settings.syncMethod){case"merge":await this.git.merge([r.tracking]);break;case"rebase":await this.git.rebase([r.tracking])}}catch(o){this.plugin.displayError(`Pull failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`);return}else if(this.plugin.settings.syncMethod==="reset")try{await this.git.raw(["update-ref",`refs/heads/${r.current}`,i]),await this.unstageAll({})}catch(o){this.plugin.displayError(`Sync failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`)}this.app.workspace.trigger("obsidian-git:head-change");let a=await this.git.revparse([r.current]);return(await this.git.diff([`${n}..${a}`,"--name-only"])).split(/\r\n|\r|\n/).filter(o=>o.length>0).map(o=>({path:o,workingDir:"P",vaultPath:this.getRelativeVaultPath(o)}))}else return[]}catch(r){this.convertErrors(r)}}async push(){this.plugin.setPluginState({gitAction:5});try{if(this.plugin.settings.updateSubmodules){let s=await this.git.env({...process.env,OBSIDIAN_GIT:1}).subModule(["foreach","--recursive",`tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi`]);console.log(s)}let r=await this.git.status(),n=r.tracking,i=r.current;if(!n&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring push of main repo and updating submodules only.");return}let a=(await this.git.diffSummary([i,n,"--"])).changed;return await this.git.env({...process.env,OBSIDIAN_GIT:1}).push(),a}catch(r){this.convertErrors(r)}}async getUnpushedCommits(){let r=await this.git.status(),n=r.tracking,i=r.current;return n==null||i==null?0:(await this.git.diffSummary([i,n,"--"])).changed}async canPush(){if(this.plugin.settings.updateSubmodules===!0)return!0;let r=await this.git.status(),n=r.tracking,i=r.current;return n?(await this.git.diffSummary([i,n,"--"])).changed!==0:!1}async checkRequirements(){return this.isGitInstalled()?await this.git.checkIsRepo()?"valid":"missing-repo":"missing-git"}async branchInfo(){let r=await this.git.status(),n=await this.git.branch(["--no-color"]);return{current:r.current||void 0,tracking:r.tracking||void 0,branches:n.all}}async getRemoteUrl(r){try{return await this.git.remote(["get-url",r])||void 0}catch(n){if(String(n).contains(r))return;throw n}}async log(r,n=!0,i,a){let s;r&&(s=this.getRelativeRepoPath(r,n));let o={file:s,maxCount:i,"--diff-merges":"first-parent","--name-status":null};return a&&(o[a]=null),(await this.git.log(o)).all.map(l=>{var u,f,d,h;return{...l,author:{name:l.author_name,email:l.author_email},refs:l.refs.split(", ").filter(p=>p.length>0),diff:{...l.diff,files:(f=(u=l.diff)==null?void 0:u.files.map(p=>({...p,status:p.status,path:p.file,hash:l.hash,vaultPath:this.getRelativeVaultPath(p.file),fromPath:p.from,fromVaultPath:p.from!=null?this.getRelativeVaultPath(p.from):void 0,binary:p.binary})))!=null?f:[]},fileName:(h=(d=l.diff)==null?void 0:d.files.first())==null?void 0:h.file}})}async show(r,n,i=!0){let a=this.getRelativeRepoPath(n,i);return this.git.show([r+":"+a])}async checkout(r,n){if(n&&(r=`${n}/${r}`),await this.git.checkout(r),this.plugin.settings.submoduleRecurseCheckout){let i=await this.getSubmodulePaths();for(let a of i){let s=await this.git.cwd({path:a,root:!1}).branch();Object.keys(s.branches).includes(r)&&await this.git.cwd({path:a,root:!1}).checkout(r)}}}async createBranch(r){await this.git.checkout(["-b",r])}async deleteBranch(r,n){await this.git.branch([n?"-D":"-d",r])}async branchIsMerged(r){return!(await this.git.branch(["--no-merged"])).all.contains(r)}async init(){await this.git.init(!1)}async clone(r,n,i){await this.git.clone(r,Be.join(this.app.vault.adapter.getBasePath(),n),i?["--depth",`${i}`]:[])}async setConfig(r,n){n==null?await this.git.raw(["config","--local","--unset",r]):await this.git.addConfig(r,n)}async getConfig(r){let i=(await this.git.listConfig("local")).all[r];if(typeof i=="string"||i==null)return i;throw new Error("Config value is not a string")}async fetch(r){await this.git.fetch(r!=null?[r]:[])}async setRemote(r,n){(await this.getRemotes()).includes(r)?await this.git.remote(["set-url",r,n]):await this.git.remote(["add",r,n])}async getRemoteBranches(r){let n=await this.git.branch(["-r","--list",`${r}*`]),i=[];for(let a in n.branches)i.push(n.branches[a].name);return i}async getRemotes(){let r=await this.git.remote([]);return r?r.trim().split(` +`):[]}async removeRemote(r){await this.git.removeRemote(r)}async updateUpstreamBranch(r){try{await this.git.branch(["--set-upstream-to",r])}catch(n){try{await this.git.branch(["--set-upstream",r])}catch(i){await this.git.push(["--set-upstream",...Ii(r)])}}}updateGitPath(r){return this.setGitInstance()}updateBasePath(r){return this.setGitInstance(!0)}async getDiffString(r,n=!1,i){return n?await this.git.diff(["--cached","--",r]):i?await this.git.show([`${i}`,"--",r]):await this.git.diff(["--",r])}async diff(r,n,i){return await this.git.diff([`${n}..${i}`,"--",r])}async rawCommand(r){let n=r.split(" ");return await this.git.raw(n[0],...n.slice(1))}async getSubmoduleOfFile(r){if(!await this.app.vault.adapter.exists(Be.dirname(r)))return;let n=await this.git.raw(["-C",Be.dirname(r),"rev-parse","--show-toplevel"],c=>c&&console.warn("get-submodule-of-file",c==null?void 0:c.message));if(n=n.trim(),(await this.git.raw(["-C",Be.dirname(r),"rev-parse","--show-superproject-working-tree"],c=>c&&console.warn("get-submodule-of-file",c==null?void 0:c.message))).trim()==="")return;let s=this.app.vault.adapter.getFullPath(Be.normalize(r)),o=Be.relative(n,s);return{submodule:n,relativeFilepath:o}}async getLastCommitTime(){let r=await this.git.log({n:1});if(r!=null&&r.latest!=null)return new Date(r.latest.date)}isGitInstalled(){let r=this.plugin.localStorage.getGitPath(),n=(0,qg.spawnSync)(r||"git",["--version"],{stdio:"ignore"});if(n.error)if(Xn.Platform.isWin&&!r){this.plugin.log(`Git not found in PATH. Checking standard installation path(${Vu}) of Git for Windows.`);let i=(0,qg.spawnSync)(Vu,["--version"],{stdio:"ignore"});if(i.error)return console.error(i.error),!1;this.useDefaultWindowsGitPath=!0}else return console.error(n.error),!1;else this.useDefaultWindowsGitPath=!1;return!0}convertErrors(r){if(r instanceof wr){let n=String(r.message);if(n.contains("Could not resolve host")||n.contains("Unable to resolve host")||n.match(/ssh: connect to host .*? port .*?: Operation timed out/)!=null||n.match(/ssh: connect to host .*? port .*?: Network is unreachable/)!=null||n.match(/ssh: connect to host .*? port .*?: Undefined error: 0/)!=null)throw new Is(n)}throw r}async isFileTrackedByLFS(r){try{return(await this.git.raw(["check-attr","filter",r])).includes("filter: lfs")}catch(n){let i=n instanceof Error?n.message:String(n);return this.plugin.displayError(`Error checking LFS status: ${i}`),!1}}},wT={hash:"000000",isZeroCommit:!0,summary:""};function Mj(e){let r=e.replace(`\r `,` `).split(` -`),n={commits:new Map,hashPerLine:[void 0],originalFileLineNrPerLine:[void 0],finalFileLineNrPerLine:[void 0],groupSizePerStartingLine:new Map},i=1;for(let a=0;a=4&&r.groupSizePerStartingLine.set(t,parseInt(e[3])),parseInt(e[2])!==t)throw Error(`git-blame output is out of order: ${t} vs ${e[2]}`);return n}function Ij(e,t,r){let n=e[0],i=e.slice(1).join(" "),a=t.hashPerLine[r],s=t.commits.get(a)||{hash:a,author:{},committer:{},previous:{}};switch(n){case"summary":s.summary=i;break;case"author":s.author.name=i;break;case"author-mail":s.author.email=vT(i);break;case"author-time":s.author.epochSeconds=parseInt(i);break;case"author-tz":s.author.tz=i;break;case"committer":s.committer.name=i;break;case"committer-mail":s.committer.email=vT(i);break;case"committer-time":s.committer.epochSeconds=parseInt(i);break;case"committer-tz":s.committer.tz=i;break;case"previous":s.previous.commitHash=i;break;case"filename":s.previous.filename=i;break}t.commits.set(a,s)}function Fj(e){if(e.summary===void 0)throw Error(`Summary not provided for commit: ${e.hash}`);qg(e.author)&&(e.author=void 0),qg(e.committer)&&(e.committer=void 0),qg(e.previous)&&(e.previous=void 0),e.isZeroCommit=!!e.hash.match(/^0*$/)}function qg(e){return!e||Object.keys(e).length===0}function gT(e){return e.length>0&&e[0].trim()===e[0]}function vT(e){let t=e.startsWith("<")?e.substring(1):e;return t.endsWith(">")?t.substring(0,t.length-1):t}g();var eC=require("@codemirror/state");g();var IT=require("@codemirror/state"),Zf=require("obsidian");g();var Xg=class{constructor(){this.eventsPerFilepath=new Map;this.startRemoveStalesSubscribersInterval()}ifFilepathDefinedTransformSubscribers(t,r){if(t)return this.ensureInitialized(t),r(this.eventsPerFilepath.get(t))}forEachSubscriber(t){this.eventsPerFilepath.forEach(r=>r.forEach(t))}ensureInitialized(t){this.eventsPerFilepath.get(t)||this.eventsPerFilepath.set(t,new Set)}startRemoveStalesSubscribersInterval(){this.removeStalesSubscribersTimer=window.setInterval(()=>this==null?void 0:this.forEachSubscriber(t=>t==null?void 0:t.removeIfStale()),6e4)}clear(){window.clearInterval(this.removeStalesSubscribersTimer),this.eventsPerFilepath.clear()}},qs=new Xg;g();var qf=require("@codemirror/state"),CT=ze(Zg());g();var B=require("obsidian");g();g();function rn(){}rn.prototype={diff:function(t,r){var n,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=i.callback;typeof i=="function"&&(a=i,i={});var s=this;function o(E){return E=s.postProcess(E,i),a?(setTimeout(function(){a(E)},0),!0):E}t=this.castInput(t,i),r=this.castInput(r,i),t=this.removeEmpty(this.tokenize(t,i)),r=this.removeEmpty(this.tokenize(r,i));var c=r.length,l=t.length,u=1,f=c+l;i.maxEditLength!=null&&(f=Math.min(f,i.maxEditLength));var d=(n=i.timeout)!==null&&n!==void 0?n:1/0,h=Date.now()+d,p=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(p[0],r,t,0,i);if(p[0].oldPos+1>=l&&m+1>=c)return o(bT(s,p[0].lastComponent,r,t,s.useLongestToken));var v=-1/0,y=1/0;function b(){for(var E=Math.max(v,-u);E<=Math.min(y,u);E+=2){var _=void 0,k=p[E-1],w=p[E+1];k&&(p[E-1]=void 0);var A=!1;if(w){var S=w.oldPos-E;A=w&&0<=S&&S=l&&m+1>=c)return o(bT(s,_.lastComponent,r,t,s.useLongestToken));p[E]=_,_.oldPos+1>=l&&(y=Math.min(y,E-1)),m+1>=c&&(v=Math.max(v,E+1))}u++}if(a)(function E(){setTimeout(function(){if(u>f||Date.now()>h)return a();b()||E()},0)})();else for(;u<=f&&Date.now()<=h;){var x=b();if(x)return x}},addToPath:function(t,r,n,i,a){var s=t.lastComponent;return s&&!a.oneChangePerToken&&s.added===r&&s.removed===n?{oldPos:t.oldPos+i,lastComponent:{count:s.count+1,added:r,removed:n,previousComponent:s.previousComponent}}:{oldPos:t.oldPos+i,lastComponent:{count:1,added:r,removed:n,previousComponent:s}}},extractCommon:function(t,r,n,i,a){for(var s=r.length,o=n.length,c=t.oldPos,l=c-i,u=0;l+1h.length?m:h}),f.value=e.join(d)}else f.value=e.join(r.slice(l,l+f.count));l+=f.count,f.added||(u+=f.count)}}return a}var JW=new rn;function _T(e,t){var r;for(r=0;rt.length&&(r=e.length-t.length);var n=t.length;e.length0&&t[s]!=t[a];)a=i[a];t[s]==t[a]&&a++}a=0;for(var o=r;o0&&e[o]!=t[a];)a=i[a];e[o]==t[a]&&a++}return a}var jf="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",Lj=new RegExp("[".concat(jf,"]+|\\s+|[^").concat(jf,"]"),"ug"),Hf=new rn;Hf.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};Hf.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');r=Array.from(t.intlSegmenter.segment(e),function(a){return a.segment})}else r=e.match(Lj)||[];var n=[],i=null;return r.forEach(function(a){/\s/.test(a)?i==null?n.push(a):n.push(n.pop()+a):/\s/.test(i)?n[n.length-1]==i?n.push(n.pop()+a):n.push(i+a):n.push(a),i=a}),n};Hf.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\s+/,"")}).join("")};Hf.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,i=null;return e.forEach(function(a){a.added?n=a:a.removed?i=a:((n||i)&&ET(r,i,n,a),r=a,n=null,i=null)}),(n||i)&&ET(r,i,n,null),e};function ET(e,t,r,n){if(t&&r){var i=t.value.match(/^\s*/)[0],a=t.value.match(/\s*$/)[0],s=r.value.match(/^\s*/)[0],o=r.value.match(/\s*$/)[0];if(e){var c=_T(i,s);e.value=Qg(e.value,s,c),t.value=ql(t.value,c),r.value=ql(r.value,c)}if(n){var l=xT(a,o);n.value=Jg(n.value,o,l),t.value=Nf(t.value,l),r.value=Nf(r.value,l)}}else if(r)e&&(r.value=r.value.replace(/^\s*/,"")),n&&(n.value=n.value.replace(/^\s*/,""));else if(e&&n){var u=n.value.match(/^\s*/)[0],f=t.value.match(/^\s*/)[0],d=t.value.match(/\s*$/)[0],h=_T(u,f);t.value=ql(t.value,h);var p=xT(ql(u,h),d);t.value=Nf(t.value,p),n.value=Jg(n.value,u,p),e.value=Qg(e.value,u,u.slice(0,u.length-p.length))}else if(n){var m=n.value.match(/^\s*/)[0],v=t.value.match(/\s*$/)[0],y=ST(v,m);t.value=Nf(t.value,y)}else if(e){var b=e.value.match(/\s*$/)[0],x=t.value.match(/^\s*/)[0],E=ST(b,x);t.value=ql(t.value,E)}}var Dj=new rn;Dj.tokenize=function(e){var t=new RegExp("(\\r?\\n)|[".concat(jf,"]+|[^\\S\\n\\r]+|[^").concat(jf,"]"),"ug");return e.match(t)||[]};var Uf=new rn;Uf.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,` -`));var r=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var i=0;i=4&&r.groupSizePerStartingLine.set(t,parseInt(e[3])),parseInt(e[2])!==t)throw Error(`git-blame output is out of order: ${t} vs ${e[2]}`);return n}function Ij(e,t,r){let n=e[0],i=e.slice(1).join(" "),a=t.hashPerLine[r],s=t.commits.get(a)||{hash:a,author:{},committer:{},previous:{}};switch(n){case"summary":s.summary=i;break;case"author":s.author.name=i;break;case"author-mail":s.author.email=vT(i);break;case"author-time":s.author.epochSeconds=parseInt(i);break;case"author-tz":s.author.tz=i;break;case"committer":s.committer.name=i;break;case"committer-mail":s.committer.email=vT(i);break;case"committer-time":s.committer.epochSeconds=parseInt(i);break;case"committer-tz":s.committer.tz=i;break;case"previous":s.previous.commitHash=i;break;case"filename":s.previous.filename=i;break}t.commits.set(a,s)}function Fj(e){if(e.summary===void 0)throw Error(`Summary not provided for commit: ${e.hash}`);Wg(e.author)&&(e.author=void 0),Wg(e.committer)&&(e.committer=void 0),Wg(e.previous)&&(e.previous=void 0),e.isZeroCommit=!!e.hash.match(/^0*$/)}function Wg(e){return!e||Object.keys(e).length===0}function gT(e){return e.length>0&&e[0].trim()===e[0]}function vT(e){let t=e.startsWith("<")?e.substring(1):e;return t.endsWith(">")?t.substring(0,t.length-1):t}g();var eC=require("@codemirror/state");g();var IT=require("@codemirror/state"),Xf=require("obsidian");g();var Yg=class{constructor(){this.eventsPerFilepath=new Map;this.startRemoveStalesSubscribersInterval()}ifFilepathDefinedTransformSubscribers(t,r){if(t)return this.ensureInitialized(t),r(this.eventsPerFilepath.get(t))}forEachSubscriber(t){this.eventsPerFilepath.forEach(r=>r.forEach(t))}ensureInitialized(t){this.eventsPerFilepath.get(t)||this.eventsPerFilepath.set(t,new Set)}startRemoveStalesSubscribersInterval(){this.removeStalesSubscribersTimer=window.setInterval(()=>this==null?void 0:this.forEachSubscriber(t=>t==null?void 0:t.removeIfStale()),6e4)}clear(){window.clearInterval(this.removeStalesSubscribersTimer),this.eventsPerFilepath.clear()}},Ws=new Yg;g();var Wf=require("@codemirror/state"),CT=ze(Xg());g();var V=require("obsidian");g();g();function nn(){}nn.prototype={diff:function(t,r){var n,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=i.callback;typeof i=="function"&&(a=i,i={});var s=this;function o(E){return E=s.postProcess(E,i),a?(setTimeout(function(){a(E)},0),!0):E}t=this.castInput(t,i),r=this.castInput(r,i),t=this.removeEmpty(this.tokenize(t,i)),r=this.removeEmpty(this.tokenize(r,i));var c=r.length,l=t.length,u=1,f=c+l;i.maxEditLength!=null&&(f=Math.min(f,i.maxEditLength));var d=(n=i.timeout)!==null&&n!==void 0?n:1/0,h=Date.now()+d,p=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(p[0],r,t,0,i);if(p[0].oldPos+1>=l&&m+1>=c)return o(bT(s,p[0].lastComponent,r,t,s.useLongestToken));var v=-1/0,y=1/0;function b(){for(var E=Math.max(v,-u);E<=Math.min(y,u);E+=2){var _=void 0,k=p[E-1],w=p[E+1];k&&(p[E-1]=void 0);var A=!1;if(w){var S=w.oldPos-E;A=w&&0<=S&&S=l&&m+1>=c)return o(bT(s,_.lastComponent,r,t,s.useLongestToken));p[E]=_,_.oldPos+1>=l&&(y=Math.min(y,E-1)),m+1>=c&&(v=Math.max(v,E+1))}u++}if(a)(function E(){setTimeout(function(){if(u>f||Date.now()>h)return a();b()||E()},0)})();else for(;u<=f&&Date.now()<=h;){var x=b();if(x)return x}},addToPath:function(t,r,n,i,a){var s=t.lastComponent;return s&&!a.oneChangePerToken&&s.added===r&&s.removed===n?{oldPos:t.oldPos+i,lastComponent:{count:s.count+1,added:r,removed:n,previousComponent:s.previousComponent}}:{oldPos:t.oldPos+i,lastComponent:{count:1,added:r,removed:n,previousComponent:s}}},extractCommon:function(t,r,n,i,a){for(var s=r.length,o=n.length,c=t.oldPos,l=c-i,u=0;l+1h.length?m:h}),f.value=e.join(d)}else f.value=e.join(r.slice(l,l+f.count));l+=f.count,f.added||(u+=f.count)}}return a}var JW=new nn;function _T(e,t){var r;for(r=0;rt.length&&(r=e.length-t.length);var n=t.length;e.length0&&t[s]!=t[a];)a=i[a];t[s]==t[a]&&a++}a=0;for(var o=r;o0&&e[o]!=t[a];)a=i[a];e[o]==t[a]&&a++}return a}var Nf="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",Lj=new RegExp("[".concat(Nf,"]+|\\s+|[^").concat(Nf,"]"),"ug"),Bf=new nn;Bf.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};Bf.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');r=Array.from(t.intlSegmenter.segment(e),function(a){return a.segment})}else r=e.match(Lj)||[];var n=[],i=null;return r.forEach(function(a){/\s/.test(a)?i==null?n.push(a):n.push(n.pop()+a):/\s/.test(i)?n[n.length-1]==i?n.push(n.pop()+a):n.push(i+a):n.push(a),i=a}),n};Bf.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\s+/,"")}).join("")};Bf.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,i=null;return e.forEach(function(a){a.added?n=a:a.removed?i=a:((n||i)&&ET(r,i,n,a),r=a,n=null,i=null)}),(n||i)&&ET(r,i,n,null),e};function ET(e,t,r,n){if(t&&r){var i=t.value.match(/^\s*/)[0],a=t.value.match(/\s*$/)[0],s=r.value.match(/^\s*/)[0],o=r.value.match(/\s*$/)[0];if(e){var c=_T(i,s);e.value=Jg(e.value,s,c),t.value=Wl(t.value,c),r.value=Wl(r.value,c)}if(n){var l=xT(a,o);n.value=Kg(n.value,o,l),t.value=Df(t.value,l),r.value=Df(r.value,l)}}else if(r)e&&(r.value=r.value.replace(/^\s*/,"")),n&&(n.value=n.value.replace(/^\s*/,""));else if(e&&n){var u=n.value.match(/^\s*/)[0],f=t.value.match(/^\s*/)[0],d=t.value.match(/\s*$/)[0],h=_T(u,f);t.value=Wl(t.value,h);var p=xT(Wl(u,h),d);t.value=Df(t.value,p),n.value=Kg(n.value,u,p),e.value=Jg(e.value,u,u.slice(0,u.length-p.length))}else if(n){var m=n.value.match(/^\s*/)[0],v=t.value.match(/\s*$/)[0],y=ST(v,m);t.value=Df(t.value,y)}else if(e){var b=e.value.match(/\s*$/)[0],x=t.value.match(/^\s*/)[0],E=ST(b,x);t.value=Wl(t.value,E)}}var Dj=new nn;Dj.tokenize=function(e){var t=new RegExp("(\\r?\\n)|[".concat(Nf,"]+|[^\\S\\n\\r]+|[^").concat(Nf,"]"),"ug");return e.match(t)||[]};var Hf=new nn;Hf.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,` +`));var r=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var i=0;ie.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?f(O.lines.slice(-s.context)):[],h-=m.length,p-=m.length)}(P=m).push.apply(P,Kg(T.map(function(ee){return(S.added?"+":"-")+ee}))),S.added?y+=T.length:v+=T.length}else{if(h)if(T.length<=s.context*2&&xe.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?f(O.lines.slice(-s.context)):[],h-=m.length,p-=m.length)}(P=m).push.apply(P,Zg(T.map(function(ee){return(S.added?"+":"-")+ee}))),S.added?y+=T.length:v+=T.length}else{if(h)if(T.length<=s.context*2&&x(0,Fi.normalizePath)(a.substring(t.length))):i=n,i}async mkdir(t){return this.adapter.mkdir(t)}async rmdir(t,r){var n,i;return this.adapter.rmdir(t,(i=(n=r==null?void 0:r.options)==null?void 0:n.recursive)!=null?i:!1)}async stat(t){if(t.endsWith(this.gitDir+"/index")){if(this.index!==void 0&&this.indexctime!=null&&this.indexmtime!=null)return{isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1,size:this.index.length,type:"file",ctimeMs:this.indexctime,mtimeMs:this.indexmtime};{let n=await this.adapter.stat(t);if(n==null)throw{code:"ENOENT"};return this.indexctime=n.ctime,this.indexmtime=n.mtime,{ctimeMs:n.ctime,mtimeMs:n.mtime,size:n.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}}}t==="."&&(t="/");let r=this.vault.getAbstractFileByPath(t);if(this.maybeLog("Stat: "+t),r instanceof Fi.TFile)return this.maybeLog("Reuse stat"),{ctimeMs:r.stat.ctime,mtimeMs:r.stat.mtime,size:r.stat.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1};{let n=await this.adapter.stat(t);if(n)return{ctimeMs:n.ctime,mtimeMs:n.mtime,size:n.size,type:n.type==="folder"?"directory":n.type,isFile:()=>n.type==="file",isDirectory:()=>n.type==="folder",isSymbolicLink:()=>!1};throw{code:"ENOENT"}}}async unlink(t){return this.adapter.remove(t)}async lstat(t){return this.stat(t)}async readlink(t){throw new Error(`readlink of (${t}) is not implemented.`)}async symlink(t){throw new Error(`symlink of (${t}) is not implemented.`)}async saveAndClear(){this.index!==void 0&&await this.adapter.writeBinary(this.plugin.gitManager.getRelativeVaultPath(this.gitDir+"/index"),this.index,{ctime:this.indexctime,mtime:this.indexmtime}),this.clearIndex()}clearIndex(){this.index=void 0,this.indexctime=void 0,this.indexmtime=void 0}get gitDir(){return this.plugin.settings.gitDir||".git"}maybeLog(t){}};var nn=class extends Ws{constructor(r){super(r);this.FILE=0;this.HEAD=1;this.WORKDIR=2;this.STAGE=3;this.status_mapping={"000":" ","003":"AD","020":"??","022":"A ","023":"AM",100:"D ",101:" D",103:"MD",110:"DA",111:" ",113:"MM",120:"DA",121:" M",122:"M ",123:"MM"};this.noticeLength=999999;this.fs=new zf(this.app.vault,this.plugin)}getRepo(){return{fs:this.fs,dir:this.plugin.settings.basePath,gitdir:this.plugin.settings.gitDir||void 0,onAuth:()=>{var r,n;return{username:(r=this.plugin.localStorage.getUsername())!=null?r:void 0,password:(n=this.plugin.localStorage.getPassword())!=null?n:void 0}},onAuthFailure:async()=>{new _a.Notice("Authentication failed. Please try with different credentials");let r=await new Fe(this.plugin,{placeholder:"Specify your username"}).openAndGetResult();if(r){let n=await new Fe(this.plugin,{placeholder:"Specify your password/personal access token"}).openAndGetResult();if(n)return this.plugin.localStorage.setUsername(r),this.plugin.localStorage.setPassword(n),{username:r,password:n}}return{cancel:!0}},http:{async request({url:r,method:n,headers:i,body:a}){let s;a&&(s=(await Jj(a)).buffer);let o=await(0,_a.requestUrl)({url:r,method:n,headers:i,body:s,throw:!1});return{url:r,method:n,headers:o.headers,body:[new Uint8Array(o.arrayBuffer)],statusCode:o.status,statusMessage:o.status.toString()}}}}}async wrapFS(r){try{let n=await r;return await this.fs.saveAndClear(),n}catch(n){throw await this.fs.saveAndClear(),n}}async status(){let r,n=window.setTimeout(()=>{r=new _a.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{this.plugin.setPluginState({gitAction:1});let i=(await this.wrapFS(ie.statusMatrix({...this.getRepo()}))).map(c=>this.getFileStatusResult(c)),a=i.filter(c=>c.workingDir!==" "),s=i.filter(c=>c.index!==" "&&c.index!=="U"),o=[];return window.clearTimeout(n),r==null||r.hide(),{all:i,changed:a,staged:s,conflicted:o}}catch(i){throw window.clearTimeout(n),r==null||r.hide(),this.plugin.displayError(i),i}}async commitAll({message:r,status:n,unstagedFiles:i}){try{return await this.checkAuthorInfo(),await this.stageAll({status:n,unstagedFiles:i}),this.commit({message:r})}catch(a){throw this.plugin.displayError(a),a}}async commit({message:r}){try{await this.checkAuthorInfo(),this.plugin.setPluginState({gitAction:4});let n=await this.formatCommitMessage(r),i=this.plugin.localStorage.getConflict(),a;if(i){let s=await this.branchInfo();a=[s.current,s.tracking]}await this.wrapFS(ie.commit({...this.getRepo(),message:n,parent:a})),this.plugin.localStorage.setConflict(!1);return}catch(n){throw this.plugin.displayError(n),n}}async stage(r,n){let i=this.getRelativeRepoPath(r,n),a;n?a=r:a=this.getRelativeVaultPath(r);try{this.plugin.setPluginState({gitAction:3}),await this.app.vault.adapter.exists(a)?await this.wrapFS(ie.add({...this.getRepo(),filepath:i})):await this.wrapFS(ie.remove({...this.getRepo(),filepath:i}))}catch(s){throw this.plugin.displayError(s),s}}async stageAll({dir:r,status:n,unstagedFiles:i}){try{if(n)await Promise.all(n.changed.map(a=>a.workingDir!=="D"?this.wrapFS(ie.add({...this.getRepo(),filepath:a.path})):ie.remove({...this.getRepo(),filepath:a.path})));else{let a=i!=null?i:await this.getUnstagedFiles(r!=null?r:".");await Promise.all(a.map(({path:s,deleted:o})=>o?ie.remove({...this.getRepo(),filepath:s}):this.wrapFS(ie.add({...this.getRepo(),filepath:s}))))}}catch(a){throw this.plugin.displayError(a),a}}async unstage(r,n){try{this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.wrapFS(ie.resetIndex({...this.getRepo(),filepath:r}))}catch(i){throw this.plugin.displayError(i),i}}async unstageAll({dir:r,status:n}){try{let i;n?i=n.staged.map(a=>a.path):i=(await this.getStagedFiles(r!=null?r:".")).map(({path:s})=>s),await this.wrapFS(Promise.all(i.map(a=>ie.resetIndex({...this.getRepo(),filepath:a}))))}catch(i){throw this.plugin.displayError(i),i}}async discard(r){try{this.plugin.setPluginState({gitAction:3}),await this.wrapFS(ie.checkout({...this.getRepo(),filepaths:[r],force:!0}))}catch(n){throw this.plugin.displayError(n),n}}async discardAll({dir:r,status:n}){let i=[];n?r!=null?i=n.changed.filter(a=>a.path.startsWith(r)).map(a=>a.path):i=n.changed.map(a=>a.path):i=(await this.getUnstagedFiles(r)).map(({path:a})=>a);try{await this.wrapFS(ie.checkout({...this.getRepo(),filepaths:i,force:!0}))}catch(a){throw this.plugin.displayError(a),a}}getProgressText(r,n){let i=`${r} progress:`;return n.phase&&(i=`${i} ${n.phase}:`),n.loaded&&(i=`${i} ${n.loaded}`,n.total&&(i=`${i} of ${n.total}`)),i}resolveRef(r){return this.wrapFS(ie.resolveRef({...this.getRepo(),ref:r}))}async pull(){let r=this.showNotice("Initializing pull");try{this.plugin.setPluginState({gitAction:2});let n=await this.resolveRef("HEAD");await this.fetch();let i=await this.branchInfo();await this.checkAuthorInfo(),(await this.wrapFS(ie.merge({...this.getRepo(),ours:i.current,theirs:i.tracking,abortOnConflict:!1}))).alreadyMerged||await this.wrapFS(ie.checkout({...this.getRepo(),ref:i.current,onProgress:c=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Checkout",c))},remote:i.remote})),r==null||r.hide();let s=await this.resolveRef("HEAD"),o=await this.getFileChangesCount(n,s);return this.showNotice("Finished pull",!1),o.map(c=>({path:c.path,workingDir:"P",index:"P",vaultPath:this.getRelativeVaultPath(c.path)}))}catch(n){throw r==null||r.hide(),n instanceof gl.MergeConflictError&&await this.plugin.handleConflict(n.data.filepaths.map(i=>this.getRelativeVaultPath(i))),this.plugin.displayError(n),n}}async push(){if(!await this.canPush())return 0;let r=this.showNotice("Initializing push");try{this.plugin.setPluginState({gitAction:1});let n=await this.branchInfo(),i=n.tracking,a=n.current,s=(await this.getFileChangesCount(a,i)).length;return this.plugin.setPluginState({gitAction:5}),await this.wrapFS(ie.push({...this.getRepo(),onProgress:o=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Pushing",o))}})),r==null||r.hide(),s}catch(n){throw r==null||r.hide(),this.plugin.displayError(n),n}}async getUnpushedCommits(){let r=await this.branchInfo(),n=r.tracking,i=r.current;if(n==null||i==null)return 0;let a=await this.resolveRef(i),s=await this.resolveRef(n);return(await this.getFileChangesCount(a,s)).length}async canPush(){let r=await this.branchInfo(),n=r.tracking,i=r.current,a=await this.resolveRef(i),s=await this.resolveRef(n);return a!=s}async checkRequirements(){return await this.plugin.app.vault.adapter.exists(`${this.getRepo().dir}/.git/HEAD`)?"valid":"missing-repo"}async branchInfo(){var r,n;try{let i=await ie.currentBranch(this.getRepo())||"",a=await ie.listBranches(this.getRepo()),s=(r=await this.getConfig(`branch.${i}.remote`))!=null?r:"origin",o=(n=await this.getConfig(`branch.${i}.merge`))==null?void 0:n.split("refs/heads")[1],c=o?s+o:void 0;return{current:i,tracking:c,branches:a,remote:s}}catch(i){throw this.plugin.displayError(i),i}}async getCurrentRemote(){var i;let r=await ie.currentBranch(this.getRepo())||"";return(i=await this.getConfig(`branch.${r}.remote`))!=null?i:"origin"}async checkout(r,n){try{return this.wrapFS(ie.checkout({...this.getRepo(),ref:r,force:!!n,remote:n}))}catch(i){throw this.plugin.displayError(i),i}}async createBranch(r){try{await this.wrapFS(ie.branch({...this.getRepo(),ref:r,checkout:!0}))}catch(n){throw this.plugin.displayError(n),n}}async deleteBranch(r){try{await this.wrapFS(ie.deleteBranch({...this.getRepo(),ref:r}))}catch(n){throw this.plugin.displayError(n),n}}branchIsMerged(r){return Promise.resolve(!0)}async init(){try{await this.wrapFS(ie.init(this.getRepo()))}catch(r){throw this.plugin.displayError(r),r}}async clone(r,n,i){let a=this.showNotice("Initializing clone");try{await this.wrapFS(ie.clone({...this.getRepo(),dir:n,url:r,depth:i,onProgress:s=>{a!==void 0&&(a.noticeEl.innerText=this.getProgressText("Cloning",s))}})),a==null||a.hide()}catch(s){throw a==null||a.hide(),this.plugin.displayError(s),s}}async setConfig(r,n){try{return this.wrapFS(ie.setConfig({...this.getRepo(),path:r,value:n}))}catch(i){throw this.plugin.displayError(i),i}}async getConfig(r){try{return this.wrapFS(ie.getConfig({...this.getRepo(),path:r}))}catch(n){throw this.plugin.displayError(n),n}}async fetch(r){let n=this.showNotice("Initializing fetch");try{let i={...this.getRepo(),onProgress:a=>{n!==void 0&&(n.noticeEl.innerText=this.getProgressText("Fetching",a))},remote:r!=null?r:await this.getCurrentRemote()};await this.wrapFS(ie.fetch(i)),n==null||n.hide()}catch(i){throw this.plugin.displayError(i),n==null||n.hide(),i}}async setRemote(r,n){try{await this.wrapFS(ie.addRemote({...this.getRepo(),remote:r,url:n,force:!0}))}catch(i){throw this.plugin.displayError(i),i}}async getRemoteBranches(r){let n=[];return n.push(...await this.wrapFS(ie.listBranches({...this.getRepo(),remote:r}))),n.remove("HEAD"),n=n.map(i=>`${r}/${i}`),n}async getRemotes(){return(await this.wrapFS(ie.listRemotes({...this.getRepo()}))).map(r=>r.remote)}async removeRemote(r){await this.wrapFS(ie.deleteRemote({...this.getRepo(),remote:r}))}async getRemoteUrl(r){var n;return(n=(await this.wrapFS(ie.listRemotes({...this.getRepo()}))).filter(i=>i.remote==r)[0])==null?void 0:n.url}async log(r,n=!0,i,a){let s=await this.wrapFS(ie.log({...this.getRepo(),depth:i,ref:a}));return Promise.all(s.map(async o=>{let c=o.commit.message.split(` +`});return t?r.pop():r.push(r.pop().slice(0,-1)),r}var _a=require("obsidian");g();var Fi=require("obsidian"),Gf=class{constructor(t,r){this.plugin=r;this.promises={};this.adapter=t.adapter,this.vault=t,this.lastBasePath=this.plugin.settings.basePath,this.promises.readFile=this.readFile.bind(this),this.promises.writeFile=this.writeFile.bind(this),this.promises.readdir=this.readdir.bind(this),this.promises.mkdir=this.mkdir.bind(this),this.promises.rmdir=this.rmdir.bind(this),this.promises.stat=this.stat.bind(this),this.promises.unlink=this.unlink.bind(this),this.promises.lstat=this.lstat.bind(this),this.promises.readlink=this.readlink.bind(this),this.promises.symlink=this.symlink.bind(this)}async readFile(t,r){var n;if(this.maybeLog("Read: "+t+JSON.stringify(r)),r=="utf8"||r.encoding=="utf8"){let i=this.vault.getAbstractFileByPath(t);return i instanceof Fi.TFile?(this.maybeLog("Reuse"),this.vault.read(i)):this.adapter.read(t)}else{if(t.endsWith(this.gitDir+"/index"))return this.plugin.settings.basePath!=this.lastBasePath?(this.clearIndex(),this.lastBasePath=this.plugin.settings.basePath,this.adapter.readBinary(t)):(n=this.index)!=null?n:this.adapter.readBinary(t);let i=this.vault.getAbstractFileByPath(t);return i instanceof Fi.TFile?(this.maybeLog("Reuse"),this.vault.readBinary(i)):this.adapter.readBinary(t)}}async writeFile(t,r){if(this.maybeLog("Write: "+t),typeof r=="string"){let n=this.vault.getAbstractFileByPath(t);return n instanceof Fi.TFile?this.vault.modify(n,r):this.adapter.write(t,r)}else if(t.endsWith(this.gitDir+"/index"))this.index=r,this.indexmtime=Date.now();else{let n=this.vault.getAbstractFileByPath(t);return n instanceof Fi.TFile?this.vault.modifyBinary(n,r):this.adapter.writeBinary(t,r)}}async readdir(t){t==="."&&(t="/");let r=await this.adapter.list(t),n=[...r.files,...r.folders],i;return t!=="/"?i=n.map(a=>(0,Fi.normalizePath)(a.substring(t.length))):i=n,i}async mkdir(t){return this.adapter.mkdir(t)}async rmdir(t,r){var n,i;return this.adapter.rmdir(t,(i=(n=r==null?void 0:r.options)==null?void 0:n.recursive)!=null?i:!1)}async stat(t){if(t.endsWith(this.gitDir+"/index")){if(this.index!==void 0&&this.indexctime!=null&&this.indexmtime!=null)return{isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1,size:this.index.length,type:"file",ctimeMs:this.indexctime,mtimeMs:this.indexmtime};{let n=await this.adapter.stat(t);if(n==null)throw{code:"ENOENT"};return this.indexctime=n.ctime,this.indexmtime=n.mtime,{ctimeMs:n.ctime,mtimeMs:n.mtime,size:n.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}}}t==="."&&(t="/");let r=this.vault.getAbstractFileByPath(t);if(this.maybeLog("Stat: "+t),r instanceof Fi.TFile)return this.maybeLog("Reuse stat"),{ctimeMs:r.stat.ctime,mtimeMs:r.stat.mtime,size:r.stat.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1};{let n=await this.adapter.stat(t);if(n)return{ctimeMs:n.ctime,mtimeMs:n.mtime,size:n.size,type:n.type==="folder"?"directory":n.type,isFile:()=>n.type==="file",isDirectory:()=>n.type==="folder",isSymbolicLink:()=>!1};throw{code:"ENOENT"}}}async unlink(t){return this.adapter.remove(t)}async lstat(t){return this.stat(t)}async readlink(t){throw new Error(`readlink of (${t}) is not implemented.`)}async symlink(t){throw new Error(`symlink of (${t}) is not implemented.`)}async saveAndClear(){this.index!==void 0&&await this.adapter.writeBinary(this.plugin.gitManager.getRelativeVaultPath(this.gitDir+"/index"),this.index,{ctime:this.indexctime,mtime:this.indexmtime}),this.clearIndex()}clearIndex(){this.index=void 0,this.indexctime=void 0,this.indexmtime=void 0}get gitDir(){return this.plugin.settings.gitDir||".git"}maybeLog(t){}};var an=class extends Vs{constructor(r){super(r);this.FILE=0;this.HEAD=1;this.WORKDIR=2;this.STAGE=3;this.status_mapping={"000":" ","003":"AD","020":"??","022":"A ","023":"AM",100:"D ",101:" D",103:"MD",110:"DA",111:" ",113:"MM",120:"DA",121:" M",122:"M ",123:"MM"};this.noticeLength=999999;this.fs=new Gf(this.app.vault,this.plugin)}getRepo(){return{fs:this.fs,dir:this.plugin.settings.basePath,gitdir:this.plugin.settings.gitDir||void 0,onAuth:()=>{var r,n;return{username:(r=this.plugin.localStorage.getUsername())!=null?r:void 0,password:(n=this.plugin.localStorage.getPassword())!=null?n:void 0}},onAuthFailure:async()=>{new _a.Notice("Authentication failed. Please try with different credentials");let r=await new Fe(this.plugin,{placeholder:"Specify your username"}).openAndGetResult();if(r){let n=await new Fe(this.plugin,{placeholder:"Specify your password/personal access token"}).openAndGetResult();if(n)return this.plugin.localStorage.setUsername(r),this.plugin.localStorage.setPassword(n),{username:r,password:n}}return{cancel:!0}},http:{async request({url:r,method:n,headers:i,body:a}){let s;a&&(s=(await Jj(a)).buffer);let o=await(0,_a.requestUrl)({url:r,method:n,headers:i,body:s,throw:!1});return{url:r,method:n,headers:o.headers,body:[new Uint8Array(o.arrayBuffer)],statusCode:o.status,statusMessage:o.status.toString()}}}}}async wrapFS(r){try{let n=await r;return await this.fs.saveAndClear(),n}catch(n){throw await this.fs.saveAndClear(),n}}async status(){let r,n=window.setTimeout(()=>{r=new _a.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{this.plugin.setPluginState({gitAction:1});let i=(await this.wrapFS(ie.statusMatrix({...this.getRepo()}))).map(c=>this.getFileStatusResult(c)),a=i.filter(c=>c.workingDir!==" "),s=i.filter(c=>c.index!==" "&&c.index!=="U"),o=[];return window.clearTimeout(n),r==null||r.hide(),{all:i,changed:a,staged:s,conflicted:o}}catch(i){throw window.clearTimeout(n),r==null||r.hide(),this.plugin.displayError(i),i}}async commitAll({message:r,status:n,unstagedFiles:i}){try{return await this.checkAuthorInfo(),await this.stageAll({status:n,unstagedFiles:i}),this.commit({message:r})}catch(a){throw this.plugin.displayError(a),a}}async commit({message:r}){try{await this.checkAuthorInfo(),this.plugin.setPluginState({gitAction:4});let n=await this.formatCommitMessage(r),i=this.plugin.localStorage.getConflict(),a;if(i){let s=await this.branchInfo();a=[s.current,s.tracking]}await this.wrapFS(ie.commit({...this.getRepo(),message:n,parent:a})),this.plugin.localStorage.setConflict(!1);return}catch(n){throw this.plugin.displayError(n),n}}async stage(r,n){let i=this.getRelativeRepoPath(r,n),a;n?a=r:a=this.getRelativeVaultPath(r);try{this.plugin.setPluginState({gitAction:3}),await this.app.vault.adapter.exists(a)?await this.wrapFS(ie.add({...this.getRepo(),filepath:i})):await this.wrapFS(ie.remove({...this.getRepo(),filepath:i}))}catch(s){throw this.plugin.displayError(s),s}}async stageAll({dir:r,status:n,unstagedFiles:i}){try{if(n)await Promise.all(n.changed.map(a=>a.workingDir!=="D"?this.wrapFS(ie.add({...this.getRepo(),filepath:a.path})):ie.remove({...this.getRepo(),filepath:a.path})));else{let a=i!=null?i:await this.getUnstagedFiles(r!=null?r:".");await Promise.all(a.map(({path:s,deleted:o})=>o?ie.remove({...this.getRepo(),filepath:s}):this.wrapFS(ie.add({...this.getRepo(),filepath:s}))))}}catch(a){throw this.plugin.displayError(a),a}}async unstage(r,n){try{this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.wrapFS(ie.resetIndex({...this.getRepo(),filepath:r}))}catch(i){throw this.plugin.displayError(i),i}}async unstageAll({dir:r,status:n}){try{let i;n?i=n.staged.map(a=>a.path):i=(await this.getStagedFiles(r!=null?r:".")).map(({path:s})=>s),await this.wrapFS(Promise.all(i.map(a=>ie.resetIndex({...this.getRepo(),filepath:a}))))}catch(i){throw this.plugin.displayError(i),i}}async discard(r){try{this.plugin.setPluginState({gitAction:3}),await this.wrapFS(ie.checkout({...this.getRepo(),filepaths:[r],force:!0}))}catch(n){throw this.plugin.displayError(n),n}}async discardAll({dir:r,status:n}){let i=[];n?r!=null?i=n.changed.filter(a=>a.path.startsWith(r)).map(a=>a.path):i=n.changed.map(a=>a.path):i=(await this.getUnstagedFiles(r)).map(({path:a})=>a);try{await this.wrapFS(ie.checkout({...this.getRepo(),filepaths:i,force:!0}))}catch(a){throw this.plugin.displayError(a),a}}getProgressText(r,n){let i=`${r} progress:`;return n.phase&&(i=`${i} ${n.phase}:`),n.loaded&&(i=`${i} ${n.loaded}`,n.total&&(i=`${i} of ${n.total}`)),i}resolveRef(r){return this.wrapFS(ie.resolveRef({...this.getRepo(),ref:r}))}async pull(){let r=this.showNotice("Initializing pull");try{this.plugin.setPluginState({gitAction:2});let n=await this.resolveRef("HEAD");await this.fetch();let i=await this.branchInfo();await this.checkAuthorInfo(),(await this.wrapFS(ie.merge({...this.getRepo(),ours:i.current,theirs:i.tracking,abortOnConflict:!1}))).alreadyMerged||await this.wrapFS(ie.checkout({...this.getRepo(),ref:i.current,onProgress:c=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Checkout",c))},remote:i.remote})),r==null||r.hide();let s=await this.resolveRef("HEAD"),o=await this.getFileChangesCount(n,s);return this.showNotice("Finished pull",!1),o.map(c=>({path:c.path,workingDir:"P",index:"P",vaultPath:this.getRelativeVaultPath(c.path)}))}catch(n){throw r==null||r.hide(),n instanceof gl.MergeConflictError&&await this.plugin.handleConflict(n.data.filepaths.map(i=>this.getRelativeVaultPath(i))),this.plugin.displayError(n),n}}async push(){if(!await this.canPush())return 0;let r=this.showNotice("Initializing push");try{this.plugin.setPluginState({gitAction:1});let n=await this.branchInfo(),i=n.tracking,a=n.current,s=(await this.getFileChangesCount(a,i)).length;return this.plugin.setPluginState({gitAction:5}),await this.wrapFS(ie.push({...this.getRepo(),onProgress:o=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Pushing",o))}})),r==null||r.hide(),s}catch(n){throw r==null||r.hide(),this.plugin.displayError(n),n}}async getUnpushedCommits(){let r=await this.branchInfo(),n=r.tracking,i=r.current;if(n==null||i==null)return 0;let a=await this.resolveRef(i),s=await this.resolveRef(n);return(await this.getFileChangesCount(a,s)).length}async canPush(){let r=await this.branchInfo(),n=r.tracking,i=r.current,a=await this.resolveRef(i),s=await this.resolveRef(n);return a!=s}async checkRequirements(){return await this.plugin.app.vault.adapter.exists(`${this.getRepo().dir}/.git/HEAD`)?"valid":"missing-repo"}async branchInfo(){var r,n;try{let i=await ie.currentBranch(this.getRepo())||"",a=await ie.listBranches(this.getRepo()),s=(r=await this.getConfig(`branch.${i}.remote`))!=null?r:"origin",o=(n=await this.getConfig(`branch.${i}.merge`))==null?void 0:n.split("refs/heads")[1],c=o?s+o:void 0;return{current:i,tracking:c,branches:a,remote:s}}catch(i){throw this.plugin.displayError(i),i}}async getCurrentRemote(){var i;let r=await ie.currentBranch(this.getRepo())||"";return(i=await this.getConfig(`branch.${r}.remote`))!=null?i:"origin"}async checkout(r,n){try{return this.wrapFS(ie.checkout({...this.getRepo(),ref:r,force:!!n,remote:n}))}catch(i){throw this.plugin.displayError(i),i}}async createBranch(r){try{await this.wrapFS(ie.branch({...this.getRepo(),ref:r,checkout:!0}))}catch(n){throw this.plugin.displayError(n),n}}async deleteBranch(r){try{await this.wrapFS(ie.deleteBranch({...this.getRepo(),ref:r}))}catch(n){throw this.plugin.displayError(n),n}}branchIsMerged(r){return Promise.resolve(!0)}async init(){try{await this.wrapFS(ie.init(this.getRepo()))}catch(r){throw this.plugin.displayError(r),r}}async clone(r,n,i){let a=this.showNotice("Initializing clone");try{await this.wrapFS(ie.clone({...this.getRepo(),dir:n,url:r,depth:i,onProgress:s=>{a!==void 0&&(a.noticeEl.innerText=this.getProgressText("Cloning",s))}})),a==null||a.hide()}catch(s){throw a==null||a.hide(),this.plugin.displayError(s),s}}async setConfig(r,n){try{return this.wrapFS(ie.setConfig({...this.getRepo(),path:r,value:n}))}catch(i){throw this.plugin.displayError(i),i}}async getConfig(r){try{return this.wrapFS(ie.getConfig({...this.getRepo(),path:r}))}catch(n){throw this.plugin.displayError(n),n}}async fetch(r){let n=this.showNotice("Initializing fetch");try{let i={...this.getRepo(),onProgress:a=>{n!==void 0&&(n.noticeEl.innerText=this.getProgressText("Fetching",a))},remote:r!=null?r:await this.getCurrentRemote()};await this.wrapFS(ie.fetch(i)),n==null||n.hide()}catch(i){throw this.plugin.displayError(i),n==null||n.hide(),i}}async setRemote(r,n){try{await this.wrapFS(ie.addRemote({...this.getRepo(),remote:r,url:n,force:!0}))}catch(i){throw this.plugin.displayError(i),i}}async getRemoteBranches(r){let n=[];return n.push(...await this.wrapFS(ie.listBranches({...this.getRepo(),remote:r}))),n.remove("HEAD"),n=n.map(i=>`${r}/${i}`),n}async getRemotes(){return(await this.wrapFS(ie.listRemotes({...this.getRepo()}))).map(r=>r.remote)}async removeRemote(r){await this.wrapFS(ie.deleteRemote({...this.getRepo(),remote:r}))}async getRemoteUrl(r){var n;return(n=(await this.wrapFS(ie.listRemotes({...this.getRepo()}))).filter(i=>i.remote==r)[0])==null?void 0:n.url}async log(r,n=!0,i,a){let s=await this.wrapFS(ie.log({...this.getRepo(),depth:i,ref:a}));return Promise.all(s.map(async o=>{let c=o.commit.message.split(` `);return{message:c[0],author:{name:o.commit.author.name,email:o.commit.author.email},body:c.slice(1).join(` -`),date:new Date(o.commit.committer.timestamp).toDateString(),diff:{changed:0,files:(await this.getFileChangesCount(o.commit.parent.first(),o.oid)).map(l=>({path:l.path,status:l.type,vaultPath:this.getRelativeVaultPath(l.path),hash:o.oid}))},hash:o.oid,refs:[]}}))}updateBasePath(r){return this.getRepo().dir=r,Promise.resolve()}async updateUpstreamBranch(r){let[n,i]=Ii(r),a=await this.branchInfo();await this.wrapFS(ie.push({...this.getRepo(),remote:n,remoteRef:i})),await this.setConfig(`branch.${a.current}.merge`,`refs/heads/${i}`)}updateGitPath(r){return Promise.resolve()}async getFileChangesCount(r,n){return this.walkDifference({walkers:[ie.TREE({ref:r}),ie.TREE({ref:n})]})}async walkDifference({walkers:r,dir:n}){return await this.wrapFS(ie.walk({...this.getRepo(),trees:r,map:async function(a,[s,o]){if(!Gg(a,n))return null;if(await(s==null?void 0:s.type())==="tree"||await(o==null?void 0:o.type())==="tree")return;let c=await(s==null?void 0:s.oid()),l=await(o==null?void 0:o.oid()),u="equal";if(c!==l&&(u="M"),c===void 0&&(u="A"),l===void 0&&(u="D"),c===void 0&&l===void 0&&(console.log("Something weird happened:"),console.log(s),console.log(o)),u!=="equal")return{path:a,type:u}}}))}async getStagedFiles(r="."){return(await this.walkDifference({walkers:[ie.TREE({ref:"HEAD"}),ie.STAGE()],dir:r})).map(i=>({vaultPath:this.getRelativeVaultPath(i.path),path:i.path}))}async getUnstagedFiles(r="."){let n,i=window.setTimeout(()=>{n=new _a.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{let a=this.getRepo(),s=await this.wrapFS(ie.walk({...a,trees:[ie.WORKDIR(),ie.STAGE()],map:async function(o,[c,l]){if(!l&&c&&await ie.isIgnored({...a,filepath:o})||!Gg(o,r))return null;let[u,f]=await Promise.all([c&&c.type(),l&&l.type()]),d=[u,f].includes("blob");if((u==="tree"||u==="special")&&!d)return;if(f==="commit")return null;if((f==="tree"||f==="special")&&!d)return;let h=f==="blob"?await l.oid():void 0,p;return u==="blob"&&f!=="blob"?p="42":u==="blob"&&(p=await c.oid()),p?p!==h?{path:o,deleted:!1}:null:{path:o,deleted:!0}}}));return window.clearTimeout(i),n==null||n.hide(),s}catch(a){throw window.clearTimeout(i),n==null||n.hide(),this.plugin.displayError(a),a}}async getDiffString(r,n=!1,i){let a=this.getRelativeVaultPath(r),s=async(l,[u])=>{if(r==l){let f=await u.oid();return(await ie.readBlob({...this.getRepo(),oid:f})).blob}};if(i){let l=await wl({...this.getRepo(),filepath:r,oid:i}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof ie.Errors.NotFoundError))throw h}),u=await ie.readCommit({...this.getRepo(),oid:i}),f=await wl({...this.getRepo(),filepath:r,oid:u.commit.parent.first()}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof ie.Errors.NotFoundError))throw h});return Gf(a,f!=null?f:"",l!=null?l:"")}let o=(await ie.walk({...this.getRepo(),trees:[ie.STAGE()],map:s})).first(),c=new TextDecoder().decode(o);if(n){let l=await this.resolveRef("HEAD").then(f=>wl({...this.getRepo(),filepath:r,oid:f})).then(f=>new TextDecoder().decode(f.blob)).catch(f=>{if(!(f instanceof ie.Errors.NotFoundError))throw f});return Gf(a,l!=null?l:"",c)}else{let l;return await this.app.vault.adapter.exists(a)?l=await this.app.vault.adapter.read(a):l="",Gf(a,c,l)}}async getLastCommitTime(){let r=this.getRepo(),n=await this.resolveRef("HEAD"),a=(await ie.readCommit({...r,oid:n})).commit.committer.timestamp;return new Date(a*1e3)}getFileStatusResult(r){let n=this.status_mapping[`${r[this.HEAD]}${r[this.WORKDIR]}${r[this.STAGE]}`];return{index:n[0]=="?"?"U":n[0],workingDir:n[1]=="?"?"U":n[1],path:r[this.FILE],vaultPath:this.getRelativeVaultPath(r[this.FILE])}}async checkAuthorInfo(){let r=await this.getConfig("user.name"),n=await this.getConfig("user.email");if(!r||!n)throw Error("Git author name and email are not set. Please set both fields in the settings.")}showNotice(r,n=!0){if(!this.plugin.settings.disablePopups)return new _a.Notice(r,n?this.noticeLength:void 0)}};function Xj(e){let t=[e];return{next(){return Promise.resolve({done:t.length===0,value:t.pop()})},return(){return t=[],{}},[Symbol.asyncIterator](){return this}}}function Zj(e){return e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]?e[Symbol.iterator]():e.next?e:Xj(e)}async function Kj(e,t){let r=Zj(e);for(;;){let{value:n,done:i}=await r.next();if(n&&await t(n),i)break}r.return&&r.return()}async function Jj(e){let t=0,r=[];await Kj(e,a=>{r.push(a),t+=a.byteLength});let n=new Uint8Array(t),i=0;for(let a of r)n.set(a,i),i+=a.byteLength;return n}var Qj="https://momentjs.com/docs/#/parsing/string-format/",eB="https://publish.obsidian.md/git-doc/Line+Authoring",Vf=class extends B.PluginSettingTab{constructor(r,n){super(r,n);this.plugin=n;this.lineAuthorColorSettings=new Map}get settings(){return this.plugin.settings}display(){let{containerEl:r}=this,n=this.plugin,i;n.settings.differentIntervalCommitAndPush?i="commit":i="commit-and-sync";let a=n.gitReady;r.empty(),a||(r.createEl("p",{text:"Git is not ready. When all settings are correct you can configure commit-sync, etc."}),r.createEl("br"));let s;if(a){new B.Setting(r).setName("Automatic").setHeading(),new B.Setting(r).setName("Split timers for automatic commit and sync").setDesc("Enable to use one interval for commit and another for sync.").addToggle(u=>u.setValue(n.settings.differentIntervalCommitAndPush).onChange(async f=>{n.settings.differentIntervalCommitAndPush=f,await n.saveSettings(),n.automaticsManager.reload("commit","push"),this.display()})),new B.Setting(r).setName(`Auto ${i} interval (minutes)`).setDesc(`${n.settings.differentIntervalCommitAndPush?"Commit":"Commit and sync"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)`).addText(u=>u.setValue(String(n.settings.autoSaveInterval)).onChange(async f=>{isNaN(Number(f))?new B.Notice("Please specify a valid number."):(n.settings.autoSaveInterval=Number(f),await n.saveSettings(),n.automaticsManager.reload("commit"),n.settings.autoSaveInterval>0?new B.Notice(`Automatic ${i} enabled! Every ${Vl(n.settings.autoSaveInterval)}.`):n.settings.autoSaveInterval<=0&&new B.Notice(`Automatic ${i} disabled!`))})),s=new B.Setting(r).setName(`Auto ${i} after stopping file edits`).setDesc(`Requires the ${i} interval not to be 0. - If turned on, do auto ${i} every ${Vl(n.settings.autoSaveInterval)} after stopping file edits. - This also prevents auto ${i} while editing a file. If turned off, it's independent from the last file edit.`).addToggle(u=>u.setValue(n.settings.autoBackupAfterFileChange).onChange(async f=>{n.settings.autoBackupAfterFileChange=f,this.display(),await n.saveSettings(),n.automaticsManager.reload("commit")})),this.mayDisableSetting(s,n.settings.setLastSaveToLastCommit),s=new B.Setting(r).setName(`Auto ${i} after latest commit`).setDesc(`If turned on, sets last auto ${i} timestamp to the latest commit timestamp. This reduces the frequency of auto ${i} when doing manual commits.`).addToggle(u=>u.setValue(n.settings.setLastSaveToLastCommit).onChange(async f=>{n.settings.setLastSaveToLastCommit=f,await n.saveSettings(),n.automaticsManager.reload("commit"),this.display()})),this.mayDisableSetting(s,n.settings.autoBackupAfterFileChange),s=new B.Setting(r).setName("Auto push interval (minutes)").setDesc("Push commits every X minutes. Set to 0 (default) to disable.").addText(u=>u.setValue(String(n.settings.autoPushInterval)).onChange(async f=>{isNaN(Number(f))?new B.Notice("Please specify a valid number."):(n.settings.autoPushInterval=Number(f),await n.saveSettings(),n.automaticsManager.reload("push"),n.settings.autoPushInterval>0?new B.Notice(`Automatic push enabled! Every ${Vl(n.settings.autoPushInterval)}.`):n.settings.autoPushInterval<=0&&new B.Notice("Automatic push disabled!"))})),this.mayDisableSetting(s,!n.settings.differentIntervalCommitAndPush),new B.Setting(r).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText(u=>u.setValue(String(n.settings.autoPullInterval)).onChange(async f=>{isNaN(Number(f))?new B.Notice("Please specify a valid number."):(n.settings.autoPullInterval=Number(f),await n.saveSettings(),n.automaticsManager.reload("pull"),n.settings.autoPullInterval>0?new B.Notice(`Automatic pull enabled! Every ${Vl(n.settings.autoPullInterval)}.`):n.settings.autoPullInterval<=0&&new B.Notice("Automatic pull disabled!"))})),new B.Setting(r).setName(`Specify custom commit message on auto ${i}`).setDesc("You will get a pop up to specify your message.").addToggle(u=>u.setValue(n.settings.customMessageOnAutoBackup).onChange(async f=>{n.settings.customMessageOnAutoBackup=f,await n.saveSettings(),this.display()})),s=new B.Setting(r).setName(`Commit message on auto ${i}`).setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(u=>u.setPlaceholder("vault backup: {{date}}").setValue(n.settings.autoCommitMessage).onChange(async f=>{n.settings.autoCommitMessage=f,await n.saveSettings()})),this.mayDisableSetting(s,n.settings.customMessageOnAutoBackup),new B.Setting(r).setName("Commit message").setHeading(),new B.Setting(r).setName("Commit message on manual commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(u=>u.setPlaceholder("vault backup: {{date}}").setValue(n.settings.commitMessage?n.settings.commitMessage:"").onChange(async f=>{n.settings.commitMessage=f,await n.saveSettings()}));let l=new B.Setting(r).setName("{{date}} placeholder format").addMomentFormat(u=>u.setDefaultFormat(n.settings.commitDateFormat).setValue(n.settings.commitDateFormat).onChange(async f=>{n.settings.commitDateFormat=f,await n.saveSettings()}));l.descEl.innerHTML=` - Specify custom date format. E.g. "${xm}. See Moment.js for more formats.`,new B.Setting(r).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText(u=>{var f;return u.setValue((f=n.localStorage.getHostname())!=null?f:"").onChange(d=>{n.localStorage.setHostname(d)})}),new B.Setting(r).setName("Preview commit message").addButton(u=>u.setButtonText("Preview").onClick(async()=>{let f=await n.gitManager.formatCommitMessage(n.settings.commitMessage);new B.Notice(`${f}`)})),new B.Setting(r).setName("List filenames affected by commit in the commit body").addToggle(u=>u.setValue(n.settings.listChangedFilesInMessageBody).onChange(async f=>{n.settings.listChangedFilesInMessageBody=f,await n.saveSettings()})),new B.Setting(r).setName("Pull").setHeading(),n.gitManager instanceof Te&&new B.Setting(r).setName("Merge strategy").setDesc("Decide how to integrate commits from your remote branch into your local branch.").addDropdown(u=>{let f={merge:"Merge",rebase:"Rebase",reset:"Other sync service (Only updates the HEAD without touching the working directory)"};u.addOptions(f),u.setValue(n.settings.syncMethod),u.onChange(async d=>{n.settings.syncMethod=d,await n.saveSettings()})}),new B.Setting(r).setName("Pull on startup").setDesc("Automatically pull commits when Obsidian starts.").addToggle(u=>u.setValue(n.settings.autoPullOnBoot).onChange(async f=>{n.settings.autoPullOnBoot=f,await n.saveSettings()})),new B.Setting(r).setName("Commit-and-sync").setDesc("Commit-and-sync with default settings means staging everything -> committing -> pulling -> pushing. Ideally this is a single action that you do regularly to keep your local and remote repository in sync.").setHeading(),s=new B.Setting(r).setName("Push on commit-and-sync").setDesc(`Most of the time you want to push after committing. Turning this off turns a commit-and-sync action into commit ${n.settings.pullBeforePush?"and pull ":""}only. It will still be called commit-and-sync.`).addToggle(u=>u.setValue(!n.settings.disablePush).onChange(async f=>{n.settings.disablePush=!f,this.display(),await n.saveSettings()})),new B.Setting(r).setName("Pull on commit-and-sync").setDesc(`On commit-and-sync, pull commits as well. Turning this off turns a commit-and-sync action into commit ${n.settings.disablePush?"":"and push "}only.`).addToggle(u=>u.setValue(n.settings.pullBeforePush).onChange(async f=>{n.settings.pullBeforePush=f,this.display(),await n.saveSettings()})),n.gitManager instanceof Te&&(new B.Setting(r).setName("Line author information").setHeading(),this.addLineAuthorInfoSettings())}new B.Setting(r).setName("History view").setHeading(),new B.Setting(r).setName("Show Author").setDesc("Show the author of the commit in the history view.").addDropdown(l=>{let u={hide:"Hide",full:"Full",initials:"Initials"};l.addOptions(u),l.setValue(n.settings.authorInHistoryView),l.onChange(async f=>{n.settings.authorInHistoryView=f,await n.saveSettings(),await n.refresh()})}),new B.Setting(r).setName("Show Date").setDesc("Show the date of the commit in the history view. The {{date}} placeholder format is used to display the date.").addToggle(l=>l.setValue(n.settings.dateInHistoryView).onChange(async u=>{n.settings.dateInHistoryView=u,await n.saveSettings(),await n.refresh()})),new B.Setting(r).setName("Source control view").setHeading(),new B.Setting(r).setName("Automatically refresh source control view on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option.").addToggle(l=>l.setValue(n.settings.refreshSourceControl).onChange(async u=>{n.settings.refreshSourceControl=u,await n.saveSettings()})),new B.Setting(r).setName("Source control view refresh interval").setDesc("Milliseconds to wait after file change before refreshing the Source Control View.").addText(l=>l.setValue(n.settings.refreshSourceControlTimer.toString()).setPlaceholder("7000").onChange(async u=>{n.settings.refreshSourceControlTimer=Math.max(parseInt(u),500),await n.saveSettings(),n.setRefreshDebouncer()})),new B.Setting(r).setName("Miscellaneous").setHeading(),n.gitManager instanceof Te&&new B.Setting(r).setName("Diff view style").setDesc('Set the style for the diff view. Note that the actual diff in "Split" mode is not generated by Git, but the editor itself instead so it may differ from the diff generated by Git. One advantage of this is that you can edit the text in that view.').addDropdown(l=>{let u={split:"Split",git_unified:"Unified"};l.addOptions(u),l.setValue(n.settings.diffStyle),l.onChange(async f=>{n.settings.diffStyle=f,await n.saveSettings()})}),new B.Setting(r).setName("Disable notifications").setDesc("Disable notifications for git operations to minimize distraction (refer to status bar for updates). Errors are still shown as notifications even if you enable this setting.").addToggle(l=>l.setValue(n.settings.disablePopups).onChange(async u=>{n.settings.disablePopups=u,this.display(),await n.saveSettings()})),n.settings.disablePopups||new B.Setting(r).setName("Hide notifications for no changes").setDesc("Don't show notifications when there are no changes to commit or push.").addToggle(l=>l.setValue(n.settings.disablePopupsForNoChanges).onChange(async u=>{n.settings.disablePopupsForNoChanges=u,await n.saveSettings()})),new B.Setting(r).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(l=>l.setValue(n.settings.showStatusBar).onChange(async u=>{n.settings.showStatusBar=u,await n.saveSettings()})),new B.Setting(r).setName("Show stage/unstage button in file menu").addToggle(l=>l.setValue(n.settings.showFileMenu).onChange(async u=>{n.settings.showFileMenu=u,await n.saveSettings()})),new B.Setting(r).setName("Show branch status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(l=>l.setValue(n.settings.showBranchStatusBar).onChange(async u=>{n.settings.showBranchStatusBar=u,await n.saveSettings()})),new B.Setting(r).setName("Show the count of modified files in the status bar").addToggle(l=>l.setValue(n.settings.changedFilesInStatusBar).onChange(async u=>{n.settings.changedFilesInStatusBar=u,await n.saveSettings()})),n.gitManager instanceof nn?new B.Setting(r).setName("Authentication/commit author").setHeading():new B.Setting(r).setName("Commit author").setHeading(),n.gitManager instanceof nn&&new B.Setting(r).setName("Username on your git server. E.g. your username on GitHub").addText(l=>{var u;l.setValue((u=n.localStorage.getUsername())!=null?u:""),l.onChange(f=>{n.localStorage.setUsername(f)})}),n.gitManager instanceof nn&&new B.Setting(r).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText(l=>{l.inputEl.autocapitalize="off",l.inputEl.autocomplete="off",l.inputEl.spellcheck=!1,l.onChange(u=>{n.localStorage.setPassword(u)})}),n.gitReady&&new B.Setting(r).setName("Author name for commit").addText(async l=>{var u;l.setValue((u=await n.gitManager.getConfig("user.name"))!=null?u:""),l.onChange(async f=>{await n.gitManager.setConfig("user.name",f==""?void 0:f)})}),n.gitReady&&new B.Setting(r).setName("Author email for commit").addText(async l=>{var u;l.setValue((u=await n.gitManager.getConfig("user.email"))!=null?u:""),l.onChange(async f=>{await n.gitManager.setConfig("user.email",f==""?void 0:f)})}),new B.Setting(r).setName("Advanced").setDesc("These settings usually don't need to be changed, but may be requried for special setups.").setHeading(),n.gitManager instanceof Te&&(new B.Setting(r).setName("Update submodules").setDesc('"Commit-and-sync" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule.').addToggle(l=>l.setValue(n.settings.updateSubmodules).onChange(async u=>{n.settings.updateSubmodules=u,await n.saveSettings()})),n.settings.updateSubmodules&&new B.Setting(r).setName("Submodule recurse checkout/switch").setDesc("Whenever a checkout happens on the root repository, recurse the checkout on the submodules (if the branches exist).").addToggle(l=>l.setValue(n.settings.submoduleRecurseCheckout).onChange(async u=>{n.settings.submoduleRecurseCheckout=u,await n.saveSettings()}))),n.gitManager instanceof Te&&new B.Setting(r).setName("Custom Git binary path").addText(l=>{var u;l.setValue((u=n.localStorage.getGitPath())!=null?u:""),l.setPlaceholder("git"),l.onChange(f=>{n.localStorage.setGitPath(f),n.gitManager.updateGitPath(f||"git").catch(d=>n.displayError(d))})}),n.gitManager instanceof Te&&new B.Setting(r).setName("Additional environment variables").setDesc("Use each line for a new environment variable in the format KEY=VALUE .").addTextArea(l=>{l.setPlaceholder("GIT_DIR=/path/to/git/dir"),l.setValue(n.localStorage.getEnvVars().join(` +`),date:new Date(o.commit.committer.timestamp).toDateString(),diff:{changed:0,files:(await this.getFileChangesCount(o.commit.parent.first(),o.oid)).map(l=>({path:l.path,status:l.type,vaultPath:this.getRelativeVaultPath(l.path),hash:o.oid}))},hash:o.oid,refs:[]}}))}updateBasePath(r){return this.getRepo().dir=r,Promise.resolve()}async updateUpstreamBranch(r){let[n,i]=Ii(r),a=await this.branchInfo();await this.wrapFS(ie.push({...this.getRepo(),remote:n,remoteRef:i})),await this.setConfig(`branch.${a.current}.merge`,`refs/heads/${i}`)}updateGitPath(r){return Promise.resolve()}async getFileChangesCount(r,n){return this.walkDifference({walkers:[ie.TREE({ref:r}),ie.TREE({ref:n})]})}async walkDifference({walkers:r,dir:n}){return await this.wrapFS(ie.walk({...this.getRepo(),trees:r,map:async function(a,[s,o]){if(!Ug(a,n))return null;if(await(s==null?void 0:s.type())==="tree"||await(o==null?void 0:o.type())==="tree")return;let c=await(s==null?void 0:s.oid()),l=await(o==null?void 0:o.oid()),u="equal";if(c!==l&&(u="M"),c===void 0&&(u="A"),l===void 0&&(u="D"),c===void 0&&l===void 0&&(console.log("Something weird happened:"),console.log(s),console.log(o)),u!=="equal")return{path:a,type:u}}}))}async getStagedFiles(r="."){return(await this.walkDifference({walkers:[ie.TREE({ref:"HEAD"}),ie.STAGE()],dir:r})).map(i=>({vaultPath:this.getRelativeVaultPath(i.path),path:i.path}))}async getUnstagedFiles(r="."){let n,i=window.setTimeout(()=>{n=new _a.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{let a=this.getRepo(),s=await this.wrapFS(ie.walk({...a,trees:[ie.WORKDIR(),ie.STAGE()],map:async function(o,[c,l]){if(!l&&c&&await ie.isIgnored({...a,filepath:o})||!Ug(o,r))return null;let[u,f]=await Promise.all([c&&c.type(),l&&l.type()]),d=[u,f].includes("blob");if((u==="tree"||u==="special")&&!d)return;if(f==="commit")return null;if((f==="tree"||f==="special")&&!d)return;let h=f==="blob"?await l.oid():void 0,p;return u==="blob"&&f!=="blob"?p="42":u==="blob"&&(p=await c.oid()),p?p!==h?{path:o,deleted:!1}:null:{path:o,deleted:!0}}}));return window.clearTimeout(i),n==null||n.hide(),s}catch(a){throw window.clearTimeout(i),n==null||n.hide(),this.plugin.displayError(a),a}}async getDiffString(r,n=!1,i){let a=this.getRelativeVaultPath(r),s=async(l,[u])=>{if(r==l){let f=await u.oid();return(await ie.readBlob({...this.getRepo(),oid:f})).blob}};if(i){let l=await wl({...this.getRepo(),filepath:r,oid:i}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof ie.Errors.NotFoundError))throw h}),u=await ie.readCommit({...this.getRepo(),oid:i}),f=await wl({...this.getRepo(),filepath:r,oid:u.commit.parent.first()}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof ie.Errors.NotFoundError))throw h});return Uf(a,f!=null?f:"",l!=null?l:"")}let o=(await ie.walk({...this.getRepo(),trees:[ie.STAGE()],map:s})).first(),c=new TextDecoder().decode(o);if(n){let l=await this.resolveRef("HEAD").then(f=>wl({...this.getRepo(),filepath:r,oid:f})).then(f=>new TextDecoder().decode(f.blob)).catch(f=>{if(!(f instanceof ie.Errors.NotFoundError))throw f});return Uf(a,l!=null?l:"",c)}else{let l;return await this.app.vault.adapter.exists(a)?l=await this.app.vault.adapter.read(a):l="",Uf(a,c,l)}}async getLastCommitTime(){let r=this.getRepo(),n=await this.resolveRef("HEAD"),a=(await ie.readCommit({...r,oid:n})).commit.committer.timestamp;return new Date(a*1e3)}getFileStatusResult(r){let n=this.status_mapping[`${r[this.HEAD]}${r[this.WORKDIR]}${r[this.STAGE]}`];return{index:n[0]=="?"?"U":n[0],workingDir:n[1]=="?"?"U":n[1],path:r[this.FILE],vaultPath:this.getRelativeVaultPath(r[this.FILE])}}async checkAuthorInfo(){let r=await this.getConfig("user.name"),n=await this.getConfig("user.email");if(!r||!n)throw Error("Git author name and email are not set. Please set both fields in the settings.")}showNotice(r,n=!0){if(!this.plugin.settings.disablePopups)return new _a.Notice(r,n?this.noticeLength:void 0)}};function Xj(e){let t=[e];return{next(){return Promise.resolve({done:t.length===0,value:t.pop()})},return(){return t=[],{}},[Symbol.asyncIterator](){return this}}}function Zj(e){return e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]?e[Symbol.iterator]():e.next?e:Xj(e)}async function Kj(e,t){let r=Zj(e);for(;;){let{value:n,done:i}=await r.next();if(n&&await t(n),i)break}r.return&&r.return()}async function Jj(e){let t=0,r=[];await Kj(e,a=>{r.push(a),t+=a.byteLength});let n=new Uint8Array(t),i=0;for(let a of r)n.set(a,i),i+=a.byteLength;return n}var Qj="https://momentjs.com/docs/#/parsing/string-format/",eB="https://publish.obsidian.md/git-doc/Line+Authoring",zf=class extends V.PluginSettingTab{constructor(r,n){super(r,n);this.plugin=n;this.lineAuthorColorSettings=new Map}get settings(){return this.plugin.settings}display(){let{containerEl:r}=this,n=this.plugin,i;n.settings.differentIntervalCommitAndPush?i="commit":i="commit-and-sync";let a=n.gitReady;r.empty(),a||(r.createEl("p",{text:"Git is not ready. When all settings are correct you can configure commit-sync, etc."}),r.createEl("br"));let s;if(a){new V.Setting(r).setName("Automatic").setHeading(),new V.Setting(r).setName("Split timers for automatic commit and sync").setDesc("Enable to use one interval for commit and another for sync.").addToggle(u=>u.setValue(n.settings.differentIntervalCommitAndPush).onChange(async f=>{n.settings.differentIntervalCommitAndPush=f,await n.saveSettings(),n.automaticsManager.reload("commit","push"),this.display()})),new V.Setting(r).setName(`Auto ${i} interval (minutes)`).setDesc(`${n.settings.differentIntervalCommitAndPush?"Commit":"Commit and sync"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)`).addText(u=>{u.inputEl.type="number",u.setValue(String(n.settings.autoSaveInterval)),u.setPlaceholder(String(ar.autoSaveInterval)),u.onChange(async f=>{n.settings.autoSaveInterval=Number(f),await n.saveSettings(),n.automaticsManager.reload("commit")})}),s=new V.Setting(r).setName(`Auto ${i} after stopping file edits`).setDesc(`Requires the ${i} interval not to be 0. + If turned on, do auto ${i} every ${pT(n.settings.autoSaveInterval)} after stopping file edits. + This also prevents auto ${i} while editing a file. If turned off, it's independent from the last file edit.`).addToggle(u=>u.setValue(n.settings.autoBackupAfterFileChange).onChange(async f=>{n.settings.autoBackupAfterFileChange=f,this.display(),await n.saveSettings(),n.automaticsManager.reload("commit")})),this.mayDisableSetting(s,n.settings.setLastSaveToLastCommit),s=new V.Setting(r).setName(`Auto ${i} after latest commit`).setDesc(`If turned on, sets last auto ${i} timestamp to the latest commit timestamp. This reduces the frequency of auto ${i} when doing manual commits.`).addToggle(u=>u.setValue(n.settings.setLastSaveToLastCommit).onChange(async f=>{n.settings.setLastSaveToLastCommit=f,await n.saveSettings(),n.automaticsManager.reload("commit"),this.display()})),this.mayDisableSetting(s,n.settings.autoBackupAfterFileChange),s=new V.Setting(r).setName("Auto push interval (minutes)").setDesc("Push commits every X minutes. Set to 0 (default) to disable.").addText(u=>{u.inputEl.type="number",u.setValue(String(n.settings.autoPushInterval)),u.setPlaceholder(String(ar.autoPushInterval)),u.onChange(async f=>{n.settings.autoPushInterval=Number(f),await n.saveSettings(),n.automaticsManager.reload("push")})}),this.mayDisableSetting(s,!n.settings.differentIntervalCommitAndPush),new V.Setting(r).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText(u=>{u.inputEl.type="number",u.setValue(String(n.settings.autoPullInterval)),u.setPlaceholder(String(ar.autoPullInterval)),u.onChange(async f=>{n.settings.autoPullInterval=Number(f),await n.saveSettings(),n.automaticsManager.reload("pull")})}),new V.Setting(r).setName(`Specify custom commit message on auto ${i}`).setDesc("You will get a pop up to specify your message.").addToggle(u=>u.setValue(n.settings.customMessageOnAutoBackup).onChange(async f=>{n.settings.customMessageOnAutoBackup=f,await n.saveSettings(),this.display()})),s=new V.Setting(r).setName(`Commit message on auto ${i}`).setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(u=>u.setPlaceholder("vault backup: {{date}}").setValue(n.settings.autoCommitMessage).onChange(async f=>{n.settings.autoCommitMessage=f,await n.saveSettings()})),this.mayDisableSetting(s,n.settings.customMessageOnAutoBackup),new V.Setting(r).setName("Commit message").setHeading(),new V.Setting(r).setName("Commit message on manual commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(u=>u.setPlaceholder("vault backup: {{date}}").setValue(n.settings.commitMessage?n.settings.commitMessage:"").onChange(async f=>{n.settings.commitMessage=f,await n.saveSettings()}));let l=new V.Setting(r).setName("{{date}} placeholder format").addMomentFormat(u=>u.setDefaultFormat(n.settings.commitDateFormat).setValue(n.settings.commitDateFormat).onChange(async f=>{n.settings.commitDateFormat=f,await n.saveSettings()}));l.descEl.innerHTML=` + Specify custom date format. E.g. "${_m}. See Moment.js for more formats.`,new V.Setting(r).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText(u=>{var f;return u.setValue((f=n.localStorage.getHostname())!=null?f:"").onChange(d=>{n.localStorage.setHostname(d)})}),new V.Setting(r).setName("Preview commit message").addButton(u=>u.setButtonText("Preview").onClick(async()=>{let f=await n.gitManager.formatCommitMessage(n.settings.commitMessage);new V.Notice(`${f}`)})),new V.Setting(r).setName("List filenames affected by commit in the commit body").addToggle(u=>u.setValue(n.settings.listChangedFilesInMessageBody).onChange(async f=>{n.settings.listChangedFilesInMessageBody=f,await n.saveSettings()})),new V.Setting(r).setName("Pull").setHeading(),n.gitManager instanceof Te&&new V.Setting(r).setName("Merge strategy").setDesc("Decide how to integrate commits from your remote branch into your local branch.").addDropdown(u=>{let f={merge:"Merge",rebase:"Rebase",reset:"Other sync service (Only updates the HEAD without touching the working directory)"};u.addOptions(f),u.setValue(n.settings.syncMethod),u.onChange(async d=>{n.settings.syncMethod=d,await n.saveSettings()})}),new V.Setting(r).setName("Pull on startup").setDesc("Automatically pull commits when Obsidian starts.").addToggle(u=>u.setValue(n.settings.autoPullOnBoot).onChange(async f=>{n.settings.autoPullOnBoot=f,await n.saveSettings()})),new V.Setting(r).setName("Commit-and-sync").setDesc("Commit-and-sync with default settings means staging everything -> committing -> pulling -> pushing. Ideally this is a single action that you do regularly to keep your local and remote repository in sync.").setHeading(),s=new V.Setting(r).setName("Push on commit-and-sync").setDesc(`Most of the time you want to push after committing. Turning this off turns a commit-and-sync action into commit ${n.settings.pullBeforePush?"and pull ":""}only. It will still be called commit-and-sync.`).addToggle(u=>u.setValue(!n.settings.disablePush).onChange(async f=>{n.settings.disablePush=!f,this.display(),await n.saveSettings()})),new V.Setting(r).setName("Pull on commit-and-sync").setDesc(`On commit-and-sync, pull commits as well. Turning this off turns a commit-and-sync action into commit ${n.settings.disablePush?"":"and push "}only.`).addToggle(u=>u.setValue(n.settings.pullBeforePush).onChange(async f=>{n.settings.pullBeforePush=f,this.display(),await n.saveSettings()})),n.gitManager instanceof Te&&(new V.Setting(r).setName("Line author information").setHeading(),this.addLineAuthorInfoSettings())}new V.Setting(r).setName("History view").setHeading(),new V.Setting(r).setName("Show Author").setDesc("Show the author of the commit in the history view.").addDropdown(l=>{let u={hide:"Hide",full:"Full",initials:"Initials"};l.addOptions(u),l.setValue(n.settings.authorInHistoryView),l.onChange(async f=>{n.settings.authorInHistoryView=f,await n.saveSettings(),await n.refresh()})}),new V.Setting(r).setName("Show Date").setDesc("Show the date of the commit in the history view. The {{date}} placeholder format is used to display the date.").addToggle(l=>l.setValue(n.settings.dateInHistoryView).onChange(async u=>{n.settings.dateInHistoryView=u,await n.saveSettings(),await n.refresh()})),new V.Setting(r).setName("Source control view").setHeading(),new V.Setting(r).setName("Automatically refresh source control view on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option.").addToggle(l=>l.setValue(n.settings.refreshSourceControl).onChange(async u=>{n.settings.refreshSourceControl=u,await n.saveSettings()})),new V.Setting(r).setName("Source control view refresh interval").setDesc("Milliseconds to wait after file change before refreshing the Source Control View.").addText(l=>{l.inputEl.type="number",l.setValue(String(n.settings.refreshSourceControlTimer)),l.setPlaceholder(String(ar.refreshSourceControlTimer)),l.onChange(async u=>{n.settings.refreshSourceControlTimer=Math.max(Number(u),500),await n.saveSettings(),n.setRefreshDebouncer()})}),new V.Setting(r).setName("Miscellaneous").setHeading(),n.gitManager instanceof Te&&new V.Setting(r).setName("Diff view style").setDesc('Set the style for the diff view. Note that the actual diff in "Split" mode is not generated by Git, but the editor itself instead so it may differ from the diff generated by Git. One advantage of this is that you can edit the text in that view.').addDropdown(l=>{let u={split:"Split",git_unified:"Unified"};l.addOptions(u),l.setValue(n.settings.diffStyle),l.onChange(async f=>{n.settings.diffStyle=f,await n.saveSettings()})}),new V.Setting(r).setName("Disable notifications").setDesc("Disable notifications for git operations to minimize distraction (refer to status bar for updates). Errors are still shown as notifications even if you enable this setting.").addToggle(l=>l.setValue(n.settings.disablePopups).onChange(async u=>{n.settings.disablePopups=u,this.display(),await n.saveSettings()})),n.settings.disablePopups||new V.Setting(r).setName("Hide notifications for no changes").setDesc("Don't show notifications when there are no changes to commit or push.").addToggle(l=>l.setValue(n.settings.disablePopupsForNoChanges).onChange(async u=>{n.settings.disablePopupsForNoChanges=u,await n.saveSettings()})),new V.Setting(r).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(l=>l.setValue(n.settings.showStatusBar).onChange(async u=>{n.settings.showStatusBar=u,await n.saveSettings()})),new V.Setting(r).setName("Show stage/unstage button in file menu").addToggle(l=>l.setValue(n.settings.showFileMenu).onChange(async u=>{n.settings.showFileMenu=u,await n.saveSettings()})),new V.Setting(r).setName("Show branch status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(l=>l.setValue(n.settings.showBranchStatusBar).onChange(async u=>{n.settings.showBranchStatusBar=u,await n.saveSettings()})),new V.Setting(r).setName("Show the count of modified files in the status bar").addToggle(l=>l.setValue(n.settings.changedFilesInStatusBar).onChange(async u=>{n.settings.changedFilesInStatusBar=u,await n.saveSettings()})),n.gitManager instanceof an?new V.Setting(r).setName("Authentication/commit author").setHeading():new V.Setting(r).setName("Commit author").setHeading(),n.gitManager instanceof an&&new V.Setting(r).setName("Username on your git server. E.g. your username on GitHub").addText(l=>{var u;l.setValue((u=n.localStorage.getUsername())!=null?u:""),l.onChange(f=>{n.localStorage.setUsername(f)})}),n.gitManager instanceof an&&new V.Setting(r).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText(l=>{l.inputEl.autocapitalize="off",l.inputEl.autocomplete="off",l.inputEl.spellcheck=!1,l.onChange(u=>{n.localStorage.setPassword(u)})}),n.gitReady&&new V.Setting(r).setName("Author name for commit").addText(async l=>{var u;l.setValue((u=await n.gitManager.getConfig("user.name"))!=null?u:""),l.onChange(async f=>{await n.gitManager.setConfig("user.name",f==""?void 0:f)})}),n.gitReady&&new V.Setting(r).setName("Author email for commit").addText(async l=>{var u;l.setValue((u=await n.gitManager.getConfig("user.email"))!=null?u:""),l.onChange(async f=>{await n.gitManager.setConfig("user.email",f==""?void 0:f)})}),new V.Setting(r).setName("Advanced").setDesc("These settings usually don't need to be changed, but may be requried for special setups.").setHeading(),n.gitManager instanceof Te&&(new V.Setting(r).setName("Update submodules").setDesc('"Commit-and-sync" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule.').addToggle(l=>l.setValue(n.settings.updateSubmodules).onChange(async u=>{n.settings.updateSubmodules=u,await n.saveSettings()})),n.settings.updateSubmodules&&new V.Setting(r).setName("Submodule recurse checkout/switch").setDesc("Whenever a checkout happens on the root repository, recurse the checkout on the submodules (if the branches exist).").addToggle(l=>l.setValue(n.settings.submoduleRecurseCheckout).onChange(async u=>{n.settings.submoduleRecurseCheckout=u,await n.saveSettings()}))),n.gitManager instanceof Te&&new V.Setting(r).setName("Custom Git binary path").addText(l=>{var u;l.setValue((u=n.localStorage.getGitPath())!=null?u:""),l.setPlaceholder("git"),l.onChange(f=>{n.localStorage.setGitPath(f),n.gitManager.updateGitPath(f||"git").catch(d=>n.displayError(d))})}),n.gitManager instanceof Te&&new V.Setting(r).setName("Additional environment variables").setDesc("Use each line for a new environment variable in the format KEY=VALUE .").addTextArea(l=>{l.setPlaceholder("GIT_DIR=/path/to/git/dir"),l.setValue(n.localStorage.getEnvVars().join(` `)),l.onChange(u=>{n.localStorage.setEnvVars(u.split(` -`))})}),n.gitManager instanceof Te&&new B.Setting(r).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea(l=>{l.setValue(n.localStorage.getPATHPaths().join(` +`))})}),n.gitManager instanceof Te&&new V.Setting(r).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea(l=>{l.setValue(n.localStorage.getPATHPaths().join(` `)),l.onChange(u=>{n.localStorage.setPATHPaths(u.split(` -`))})}),n.gitManager instanceof Te&&new B.Setting(r).setName("Reload with new environment variables").setDesc("Removing previously added environment variables will not take effect until Obsidian is restarted.").addButton(l=>{l.setButtonText("Reload"),l.setCta(),l.onClick(async()=>{await n.gitManager.setGitInstance()})}),new B.Setting(r).setName("Custom base path (Git repository path)").setDesc(` +`))})}),n.gitManager instanceof Te&&new V.Setting(r).setName("Reload with new environment variables").setDesc("Removing previously added environment variables will not take effect until Obsidian is restarted.").addButton(l=>{l.setButtonText("Reload"),l.setCta(),l.onClick(async()=>{await n.gitManager.setGitInstance()})}),new V.Setting(r).setName("Custom base path (Git repository path)").setDesc(` Sets the relative path to the vault from which the Git binary should be executed. Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows. - `).addText(l=>{l.setValue(n.settings.basePath),l.setPlaceholder("directory/directory-with-git-repo"),l.onChange(async u=>{n.settings.basePath=u,await n.saveSettings(),n.gitManager.updateBasePath(u||"").catch(f=>n.displayError(f))})}),new B.Setting(r).setName("Custom Git directory path (Instead of '.git')").setDesc('Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.').addText(l=>{l.setValue(n.settings.gitDir),l.setPlaceholder(".git"),l.onChange(async u=>{n.settings.gitDir=u,await n.saveSettings()})}),new B.Setting(r).setName("Disable on this device").setDesc("Disables the plugin on this device. This setting is not synced.").addToggle(l=>l.setValue(n.localStorage.getPluginDisabled()).onChange(u=>{n.localStorage.setPluginDisabled(u),u?n.unloadPlugin():n.init({fromReload:!0}).catch(f=>n.displayError(f)),new B.Notice("Obsidian must be restarted for the changes to take affect.")})),new B.Setting(r).setName("Support").setHeading(),new B.Setting(r).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.").addButton(l=>{l.buttonEl.outerHTML="Buy Me a Coffee at ko-fi.com"});let o=r.createDiv();o.setAttr("align","center"),o.setAttr("style","margin: var(--size-4-2)");let c=o.createEl("button");if(c.setText("Copy Debug Information"),c.onclick=async()=>{await window.navigator.clipboard.writeText(JSON.stringify({settings:this.plugin.settings,pluginVersion:this.plugin.manifest.version},null,4)),new B.Notice("Debug information copied to clipboard. May contain sensitive information!")},B.Platform.isDesktopApp){let l=r.createDiv();l.setAttr("align","center"),l.setText(`Debugging and logging: -You can always see the logs of this and every other plugin by opening the console with`);let u=r.createDiv();u.setAttr("align","center"),u.addClass("obsidian-git-shortcuts"),B.Platform.isMacOS===!0?u.createEl("kbd",{text:"CMD (\u2318) + OPTION (\u2325) + I"}):u.createEl("kbd",{text:"CTRL + SHIFT + I"})}}mayDisableSetting(r,n){n&&(r.setDisabled(n),r.setClass("obsidian-git-disabled"))}configureLineAuthorShowStatus(r){this.settings.lineAuthor.show=r,this.plugin.saveSettings(),r?this.plugin.lineAuthoringFeature.activateFeature():this.plugin.lineAuthoringFeature.deactivateFeature()}async lineAuthorSettingHandler(r,n){this.settings.lineAuthor[r]=n,await this.plugin.saveSettings(),this.plugin.lineAuthoringFeature.refreshLineAuthorViews()}beforeSaveSettings(){let r=this.settings.lineAuthor;r.authorDisplay!=="hide"&&(r.lastShownAuthorDisplay=r.authorDisplay),r.dateTimeFormatOptions!=="hide"&&(r.lastShownDateTimeFormatOptions=r.dateTimeFormatOptions)}addLineAuthorInfoSettings(){let r=new B.Setting(this.containerEl).setName("Show commit authoring information next to each line");if(this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform()||r.setDesc("Only available on desktop currently.").setDisabled(!0),r.descEl.innerHTML=` + `).addText(l=>{l.setValue(n.settings.basePath),l.setPlaceholder("directory/directory-with-git-repo"),l.onChange(async u=>{n.settings.basePath=u,await n.saveSettings(),n.gitManager.updateBasePath(u||"").catch(f=>n.displayError(f))})}),new V.Setting(r).setName("Custom Git directory path (Instead of '.git')").setDesc('Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.').addText(l=>{l.setValue(n.settings.gitDir),l.setPlaceholder(".git"),l.onChange(async u=>{n.settings.gitDir=u,await n.saveSettings()})}),new V.Setting(r).setName("Disable on this device").setDesc("Disables the plugin on this device. This setting is not synced.").addToggle(l=>l.setValue(n.localStorage.getPluginDisabled()).onChange(u=>{n.localStorage.setPluginDisabled(u),u?n.unloadPlugin():n.init({fromReload:!0}).catch(f=>n.displayError(f)),new V.Notice("Obsidian must be restarted for the changes to take affect.")})),new V.Setting(r).setName("Support").setHeading(),new V.Setting(r).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.").addButton(l=>{l.buttonEl.outerHTML="Buy Me a Coffee at ko-fi.com"});let o=r.createDiv();o.setAttr("align","center"),o.setAttr("style","margin: var(--size-4-2)");let c=o.createEl("button");if(c.setText("Copy Debug Information"),c.onclick=async()=>{await window.navigator.clipboard.writeText(JSON.stringify({settings:this.plugin.settings,pluginVersion:this.plugin.manifest.version},null,4)),new V.Notice("Debug information copied to clipboard. May contain sensitive information!")},V.Platform.isDesktopApp){let l=r.createDiv();l.setAttr("align","center"),l.setText(`Debugging and logging: +You can always see the logs of this and every other plugin by opening the console with`);let u=r.createDiv();u.setAttr("align","center"),u.addClass("obsidian-git-shortcuts"),V.Platform.isMacOS===!0?u.createEl("kbd",{text:"CMD (\u2318) + OPTION (\u2325) + I"}):u.createEl("kbd",{text:"CTRL + SHIFT + I"})}}mayDisableSetting(r,n){n&&(r.setDisabled(n),r.setClass("obsidian-git-disabled"))}configureLineAuthorShowStatus(r){this.settings.lineAuthor.show=r,this.plugin.saveSettings(),r?this.plugin.lineAuthoringFeature.activateFeature():this.plugin.lineAuthoringFeature.deactivateFeature()}async lineAuthorSettingHandler(r,n){this.settings.lineAuthor[r]=n,await this.plugin.saveSettings(),this.plugin.lineAuthoringFeature.refreshLineAuthorViews()}beforeSaveSettings(){let r=this.settings.lineAuthor;r.authorDisplay!=="hide"&&(r.lastShownAuthorDisplay=r.authorDisplay),r.dateTimeFormatOptions!=="hide"&&(r.lastShownDateTimeFormatOptions=r.dateTimeFormatOptions)}addLineAuthorInfoSettings(){let r=new V.Setting(this.containerEl).setName("Show commit authoring information next to each line");if(this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform()||r.setDesc("Only available on desktop currently.").setDisabled(!0),r.descEl.innerHTML=` Feature guide and quick examples
- The commit hash, author name and authoring date can all be individually toggled.
Hide everything, to only show the age-colored sidebar.`,r.addToggle(n=>n.setValue(this.settings.lineAuthor.show).onChange(i=>{this.configureLineAuthorShowStatus(i),this.display()})),this.settings.lineAuthor.show){let n=new B.Setting(this.containerEl).setName("Follow movement and copies across files and commits").setDesc("").addDropdown(a=>{a.addOptions({inactive:"Do not follow (default)","same-commit":"Follow within same commit","all-commits":"Follow within all commits (maybe slow)"}),a.setValue(this.settings.lineAuthor.followMovement),a.onChange(s=>this.lineAuthorSettingHandler("followMovement",s))});if(n.descEl.innerHTML=` + The commit hash, author name and authoring date can all be individually toggled.
Hide everything, to only show the age-colored sidebar.`,r.addToggle(n=>n.setValue(this.settings.lineAuthor.show).onChange(i=>{this.configureLineAuthorShowStatus(i),this.display()})),this.settings.lineAuthor.show){let n=new V.Setting(this.containerEl).setName("Follow movement and copies across files and commits").setDesc("").addDropdown(a=>{a.addOptions({inactive:"Do not follow (default)","same-commit":"Follow within same commit","all-commits":"Follow within all commits (maybe slow)"}),a.setValue(this.settings.lineAuthor.followMovement),a.onChange(s=>this.lineAuthorSettingHandler("followMovement",s))});if(n.descEl.innerHTML=` By default (deactivated), each line only shows the newest commit where it was changed.
With same commit, cut-copy-paste-ing of text is followed within the same commit and the original commit of authoring will be shown. @@ -171,12 +171,12 @@ You can always see the logs of this and every other plugin by opening the consol With all commits, cut-copy-paste-ing text inbetween multiple commits will be detected.
It uses git-blame and - for matches (at least ${Vu} characters) within the same (or all) commit(s), the originating commit's information is shown.`,new B.Setting(this.containerEl).setName("Show commit hash").addToggle(a=>{a.setValue(this.settings.lineAuthor.showCommitHash),a.onChange(s=>this.lineAuthorSettingHandler("showCommitHash",s))}),new B.Setting(this.containerEl).setName("Author name display").setDesc("If and how the author is displayed").addDropdown(a=>{let s={hide:"Hide",initials:"Initials (default)","first name":"First name","last name":"Last name",full:"Full name"};a.addOptions(s),a.setValue(this.settings.lineAuthor.authorDisplay),a.onChange(async o=>this.lineAuthorSettingHandler("authorDisplay",o))}),new B.Setting(this.containerEl).setName("Authoring date display").setDesc("If and how the date and time of authoring the line is displayed").addDropdown(a=>{let s={hide:"Hide",date:"Date (default)",datetime:"Date and time","natural language":"Natural language",custom:"Custom"};a.addOptions(s),a.setValue(this.settings.lineAuthor.dateTimeFormatOptions),a.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatOptions",o),this.display()})}),this.settings.lineAuthor.dateTimeFormatOptions==="custom"){let a=new B.Setting(this.containerEl);a.setName("Custom authoring date format").addText(s=>{s.setValue(this.settings.lineAuthor.dateTimeFormatCustomString),s.setPlaceholder("YYYY-MM-DD HH:mm"),s.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatCustomString",o),a.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(o)})}),a.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(this.settings.lineAuthor.dateTimeFormatCustomString)}new B.Setting(this.containerEl).setName("Authoring date display timezone").addDropdown(a=>{let s={"viewer-local":"My local (default)","author-local":"Author's local",utc0000:"UTC+0000/Z"};a.addOptions(s),a.setValue(this.settings.lineAuthor.dateTimeTimezone),a.onChange(async o=>this.lineAuthorSettingHandler("dateTimeTimezone",o))}).descEl.innerHTML=` + for matches (at least ${zu} characters) within the same (or all) commit(s), the originating commit's information is shown.`,new V.Setting(this.containerEl).setName("Show commit hash").addToggle(a=>{a.setValue(this.settings.lineAuthor.showCommitHash),a.onChange(s=>this.lineAuthorSettingHandler("showCommitHash",s))}),new V.Setting(this.containerEl).setName("Author name display").setDesc("If and how the author is displayed").addDropdown(a=>{let s={hide:"Hide",initials:"Initials (default)","first name":"First name","last name":"Last name",full:"Full name"};a.addOptions(s),a.setValue(this.settings.lineAuthor.authorDisplay),a.onChange(async o=>this.lineAuthorSettingHandler("authorDisplay",o))}),new V.Setting(this.containerEl).setName("Authoring date display").setDesc("If and how the date and time of authoring the line is displayed").addDropdown(a=>{let s={hide:"Hide",date:"Date (default)",datetime:"Date and time","natural language":"Natural language",custom:"Custom"};a.addOptions(s),a.setValue(this.settings.lineAuthor.dateTimeFormatOptions),a.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatOptions",o),this.display()})}),this.settings.lineAuthor.dateTimeFormatOptions==="custom"){let a=new V.Setting(this.containerEl);a.setName("Custom authoring date format").addText(s=>{s.setValue(this.settings.lineAuthor.dateTimeFormatCustomString),s.setPlaceholder("YYYY-MM-DD HH:mm"),s.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatCustomString",o),a.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(o)})}),a.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(this.settings.lineAuthor.dateTimeFormatCustomString)}new V.Setting(this.containerEl).setName("Authoring date display timezone").addDropdown(a=>{let s={"viewer-local":"My local (default)","author-local":"Author's local",utc0000:"UTC+0000/Z"};a.addOptions(s),a.setValue(this.settings.lineAuthor.dateTimeTimezone),a.onChange(async o=>this.lineAuthorSettingHandler("dateTimeTimezone",o))}).descEl.innerHTML=` The time-zone in which the authoring date should be shown. Either your local time-zone (default), the author's time-zone during commit creation or UTC\xB100:00. - `;let i=new B.Setting(this.containerEl).setName("Oldest age in coloring");i.descEl.innerHTML=this.previewOldestAgeDescriptionHtml(this.settings.lineAuthor.coloringMaxAge)[0],i.addText(a=>{a.setPlaceholder("1y"),a.setValue(this.settings.lineAuthor.coloringMaxAge),a.onChange(async s=>{let[o,c]=this.previewOldestAgeDescriptionHtml(s);i.descEl.innerHTML=o,c&&(await this.lineAuthorSettingHandler("coloringMaxAge",s),this.refreshColorSettingsName("oldest"))})}),this.createColorSetting("newest"),this.createColorSetting("oldest"),new B.Setting(this.containerEl).setName("Text color").addText(a=>{a.setValue(this.settings.lineAuthor.textColorCss),a.onChange(async s=>{await this.lineAuthorSettingHandler("textColorCss",s)})}).descEl.innerHTML=` + `;let i=new V.Setting(this.containerEl).setName("Oldest age in coloring");i.descEl.innerHTML=this.previewOldestAgeDescriptionHtml(this.settings.lineAuthor.coloringMaxAge)[0],i.addText(a=>{a.setPlaceholder("1y"),a.setValue(this.settings.lineAuthor.coloringMaxAge),a.onChange(async s=>{let[o,c]=this.previewOldestAgeDescriptionHtml(s);i.descEl.innerHTML=o,c&&(await this.lineAuthorSettingHandler("coloringMaxAge",s),this.refreshColorSettingsName("oldest"))})}),this.createColorSetting("newest"),this.createColorSetting("oldest"),new V.Setting(this.containerEl).setName("Text color").addText(a=>{a.setValue(this.settings.lineAuthor.textColorCss),a.onChange(async s=>{await this.lineAuthorSettingHandler("textColorCss",s)})}).descEl.innerHTML=` The CSS color of the gutter text.
It is higly recommended to use @@ -190,7 +190,7 @@ You can always see the logs of this and every other plugin by opening the consol See: List of available CSS variables in Obsidian - `,new B.Setting(this.containerEl).setName("Ignore whitespace and newlines in changes").addToggle(a=>{a.setValue(this.settings.lineAuthor.ignoreWhitespace),a.onChange(s=>this.lineAuthorSettingHandler("ignoreWhitespace",s))}).descEl.innerHTML=` + `,new V.Setting(this.containerEl).setName("Ignore whitespace and newlines in changes").addToggle(a=>{a.setValue(this.settings.lineAuthor.ignoreWhitespace),a.onChange(s=>this.lineAuthorSettingHandler("ignoreWhitespace",s))}).descEl.innerHTML=` Whitespace and newlines are interpreted as part of the document and in changes by default (hence not ignored). @@ -201,19 +201,19 @@ You can always see the logs of this and every other plugin by opening the consol If you don't care about purely-whitespace changes (e.g. list nesting / quote indentation changes), then activating this will provide more meaningful change detection. - `}}createColorSetting(r){let n=new B.Setting(this.containerEl).setName("").addText(i=>{let a=a0(r,this.settings.lineAuthor),s=a0(r,Sn.lineAuthor);i.setPlaceholder(zg(s)),i.setValue(zg(a)),i.onChange(async o=>{let c=cT(o);if(c!==void 0){let l=r==="newest"?"colorNew":"colorOld";await this.lineAuthorSettingHandler(l,c)}this.refreshColorSettingsDesc(r,c)})});this.lineAuthorColorSettings.set(r,n),this.refreshColorSettingsName(r),this.refreshColorSettingsDesc(r,a0(r,this.settings.lineAuthor))}refreshColorSettingsName(r){let n=this.lineAuthorColorSettings.get(r);if(n){let i=r==="oldest"?`oldest (${this.settings.lineAuthor.coloringMaxAge} or older)`:"newest";n.nameEl.innerText=`Color for ${i} commits`}}refreshColorSettingsDesc(r,n){let i=this.lineAuthorColorSettings.get(r);i&&(i.descEl.innerHTML=this.colorSettingPreviewDescHtml(r,this.settings.lineAuthor,n!==void 0))}colorSettingPreviewDescHtml(r,n,i){let a=i?s0(r,n):"rgba(127,127,127,0.3)",s=B.moment.unix(B.moment.now()/1e3).format("YYYY-MM-DD"),o=i?`abcdef Author Name ${s}`:"invalid color";return`Supports 'rgb(r,g,b)', 'hsl(h,s,l)', hex (#) and + `}}createColorSetting(r){let n=new V.Setting(this.containerEl).setName("").addText(i=>{let a=i0(r,this.settings.lineAuthor),s=i0(r,ar.lineAuthor);i.setPlaceholder(Gg(s)),i.setValue(Gg(a)),i.onChange(async o=>{let c=lT(o);if(c!==void 0){let l=r==="newest"?"colorNew":"colorOld";await this.lineAuthorSettingHandler(l,c)}this.refreshColorSettingsDesc(r,c)})});this.lineAuthorColorSettings.set(r,n),this.refreshColorSettingsName(r),this.refreshColorSettingsDesc(r,i0(r,this.settings.lineAuthor))}refreshColorSettingsName(r){let n=this.lineAuthorColorSettings.get(r);if(n){let i=r==="oldest"?`oldest (${this.settings.lineAuthor.coloringMaxAge} or older)`:"newest";n.nameEl.innerText=`Color for ${i} commits`}}refreshColorSettingsDesc(r,n){let i=this.lineAuthorColorSettings.get(r);i&&(i.descEl.innerHTML=this.colorSettingPreviewDescHtml(r,this.settings.lineAuthor,n!==void 0))}colorSettingPreviewDescHtml(r,n,i){let a=i?a0(r,n):"rgba(127,127,127,0.3)",s=V.moment.unix(V.moment.now()/1e3).format("YYYY-MM-DD"),o=i?`abcdef Author Name ${s}`:"invalid color";return`Supports 'rgb(r,g,b)', 'hsl(h,s,l)', hex (#) and named colors (e.g. 'black', 'purple'). Color preview: ${`
${o}
`}`}previewCustomDateTimeDescriptionHtml(r){let n=(0,B.moment)().format(r);return`
Format string to display the authoring date.
Currently: ${n}`}previewOldestAgeDescriptionHtml(r){let n=Wf(r);return[`The oldest age in the line author coloring. Everything older will have the same color. -
Smallest valid age is "1d". Currently: ${n!==void 0?`${n.asDays()} days`:"invalid!"}`,n]}};function a0(e,t){return e==="oldest"?t.colorOld:t.colorNew}function Wf(e){let t=B.moment.duration("P"+e.toUpperCase());return t.isValid()&&t.asDays()&&t.asDays()>=1?t:void 0}function PT(e,t,r){if(!(e===void 0||t===void 0||r===void 0))return`head${e}-obj${t}-path${r}`}var RT=qf.Annotation.define();function MT(e,t,r){return r.update({annotations:RT.of({key:e,la:t,lineOffsetsFromUnsavedChanges:new Map})})}function tB(e){return e.annotation(RT)}var Ys=qf.StateField.define({create:e=>{},update:(e,t)=>{var r;return(r=tB(t))!=null?r:rB(t,e)},compare:(e,t)=>(e==null?void 0:e.key)===(t==null?void 0:t.key)});function Yf(e){var a;let t=CT.sha256.create();if(!e)return t;let{la:r,key:n,lineOffsetsFromUnsavedChanges:i}=e;t.update(r==="untracked"?"t":"f"),t.update(n);for(let[s,o]of(a=i.entries())!=null?a:[])t.update([s,o]);return t}var Lr={get:void 0,save:void 0};function OT(e,t){Lr.get=e,Lr.save=t}function Xf(e){var t,r;return(r=(t=Wf(e.coloringMaxAge))==null?void 0:t.asDays())!=null?r:Wf(Sn.lineAuthor.coloringMaxAge).asDays()}function rB(e,t){if(t)return e.changes.empty||e.changes.iterChanges((r,n,i,a)=>{var p;let s=e.startState.doc,{newDoc:o}=e,c=s.lineAt(r).number,l=s.lineAt(n).number,u=o.lineAt(i).number,f=o.lineAt(a).number,d=l-c+1,h=f-u+1;for(let m=u;m<=f;m++){let v=(p=t.lineOffsetsFromUnsavedChanges.get(m))!=null?p:0,y=f===m,b=h-d;y&&(v+=b),t.lineOffsetsFromUnsavedChanges.set(m,v)}}),t}var o0=class{constructor(t){this.state=t;this.subscribeMe()}notifyLineAuthoring(t,r){if(this.view===void 0){console.warn(`Git: View is not defined for editor cache key. Unforeseen situation. id: ${t}`);return}let n=this.view.state,i=MT(t,r,n);this.view.dispatch(i)}updateToNewState(t){let r=this.lastSeenPath&&this.filepath!=this.lastSeenPath;return this.state=t,r&&(this.unsubscribeMe(this.lastSeenPath),this.subscribeMe()),this}removeIfStale(){this.view.destroyed&&this.unsubscribeMe(this.lastSeenPath)}subscribeMe(){this.filepath!==void 0&&(qs.ifFilepathDefinedTransformSubscribers(this.filepath,t=>t.add(this)),this.lastSeenPath=this.filepath)}unsubscribeMe(t){qs.ifFilepathDefinedTransformSubscribers(t,r=>r.delete(this))}get filepath(){var t,r;return(r=(t=this.state.field(Zf.editorInfoField))==null?void 0:t.file)==null?void 0:r.path}get view(){return this.state.field(Zf.editorEditorField)}},FT=IT.StateField.define({create:e=>new o0(e),update:(e,t)=>e.updateToNewState(t.state),compare:(e,t)=>e===t});g();function $T(){Xs=void 0,l0=[],Kf=0,Qf.clear(),ed.clear(),Zs.clear()}var Xs,Jf=()=>Xs;function LT(e,t){var i;let r=t.length;if(r<((i=Xs==null?void 0:Xs.length)!=null?i:0))return;Xs={gutter:e,length:r,text:t};let n=Lr.get();r!==n.gutterSpacingFallbackLength&&(n.gutterSpacingFallbackLength=r,Lr.save(n))}var l0=[],nB=15,Kf=0;function DT(e){l0[Kf]=e,Kf=(Kf+1)%nB}function NT(){return fT(l0)}var Qf=new Map,ed=new Map,Zs=new Set;g();var KT=require("@codemirror/state"),JT=require("@codemirror/view");g();var d0=require("@codemirror/view"),qT=ze(Zg()),nd=require("obsidian");g();g();var td={x:-10,y:-10};function jT(){td.x===-10&&window.addEventListener("mousedown",e=>{td.x=e.clientX,td.y=e.clientY})}function BT(){for(let e of Zs)if(iB(e,td))return e}function iB(e,t){let{x:r,y:n,width:i,height:a}=e.getBoundingClientRect();return r<=t.x&&t.x<=r+i&&n<=t.y&&t.y<=n+a}g();var Xl={};var HT="data-commit";function UT(e,t,r){if(t.hasFocus())return;let n=BT();if(!n)return;let i=sB(n);i&&(!i.isZeroCommit&&!i.isWaitingGutter&&aB(i,e),c0("showCommitHash",e),c0("authorDisplay",e),c0("dateTimeFormatOptions",e))}function aB(e,t){t.addItem(r=>r.setTitle("Copy commit hash").setIcon("copy").setSection("obs-git-line-author-copy").onClick(n=>navigator.clipboard.writeText(e.hash)))}function c0(e,t){var c,l;let r,n,i=Xl.plugin.settings.lineAuthor,a=i[e],s=typeof a=="boolean"?a:a!=="hide",o=Sn.lineAuthor[e];if(e==="showCommitHash")r="Show commit hash",n=a;else if(e==="authorDisplay"){let u=(c=i.lastShownAuthorDisplay)!=null?c:o;r="Show author "+(s?a:u),n=s?"hide":u}else if(e==="dateTimeFormatOptions"){let u=(l=i.lastShownDateTimeFormatOptions)!=null?l:o;r="Show "+(s?a:u),r+=r.contains("date")?"":" date",n=s?"hide":u}else Oi(e);t.addItem(u=>u.setTitle(r).setSection("obs-git-line-author-configure").setChecked(s).onClick(f=>{var d,h;return(h=(d=Xl.plugin)==null?void 0:d.settingsTab)==null?void 0:h.lineAuthorSettingHandler(e,n)}))}function GT(e,t,r){r.setAttr(HT,JSON.stringify({hash:e.hash,isZeroCommit:e.isZeroCommit,isWaitingGutter:t}))}function sB(e){let t=e.getAttr(HT);return t?JSON.parse(t):void 0}g();function s0(e,t){return e==="oldest"?rd(0,!1,t).color:rd(void 0,!0,t).color}function rd(e,t,r){let n=Xf(r),i=Date.now()/1e3,a=e!=null?e:0,o=(t?0:i-a)/60/60/24,c=Math.pow(Math.clamp(o/n,0,1),1/2.3),l=oB(),u=r.colorNew,f=r.colorOld,d=l?.4:1,h=u0(u.r,f.r,c)*d,p=u0(u.g,f.g,c)*d,m=u0(u.b,f.b,c)*d;return{color:`rgba(${h},${p},${m},${l?.75:.25})`,daysSinceCommit:o}}function u0(e,t,r){return e+(t-e)*r}function oB(){var e;return((e=window.app)==null?void 0:e.getTheme())==="obsidian"}function zT(e){document.body.style.setProperty("--obs-git-gutter-text",e.textColorCss)}g();function VT(e,t,r){let n;for(let i=t;i<=r;i++){let a=e.hashPerLine[i],s=e.commits.get(a);(!n||s.isZeroCommit||lB(s,n))&&(n=s)}return n}function lB(e,t){var i,a,s,o;let r=(a=(i=e.author)==null?void 0:i.epochSeconds)!=null?a:0,n=(o=(s=t.author)==null?void 0:s.epochSeconds)!=null?o:0;return r>n}var WT="-",cB="+",uB=3,fB="*",dB=/\S/g,hB="%",Ks=class e extends d0.GutterMarker{constructor(r){super();this.text=r}eq(r){return r instanceof e&&this.text===r.text}toDOM(){return document.createTextNode(this.text)}destroy(r){document.body.contains(r)||r.remove()}},f0=class extends d0.GutterMarker{constructor(r,n,i,a,s,o){super();this.lineAuthoring=r;this.startLine=n;this.endLine=i;this.key=a;this.settings=s;this.options=o;this.point=!1;this.elementClass="obs-git-blame-gutter"}eq(r){return this.key===(r==null?void 0:r.key)&&this.startLine===(r==null?void 0:r.startLine)&&this.endLine===(r==null?void 0:r.endLine)&&(this==null?void 0:this.options)===(r==null?void 0:r.options)}toDOM(){var r;return this.precomputedDomProvider=(r=this.precomputedDomProvider)!=null?r:this.computeDom(),this.precomputedDomProvider()}destroy(r){document.body.contains(r)||(r.remove(),Zs.delete(r))}computeDom(){let r=VT(this.lineAuthoring,this.startLine,this.endLine),n=r.isZeroCommit?"":this.renderNonZeroCommit(r);return!r.isZeroCommit&&this.options!=="waiting-for-result"?LT(this,n):n=this.adaptTextForFakeCommit(r,n,this.options),this.createHtmlNode(r,n,this.options==="waiting-for-result")}createHtmlNode(r,n,i){var l;let a=window.createDiv();a.innerText=n;let{color:s,daysSinceCommit:o}=rd((l=r==null?void 0:r.author)==null?void 0:l.epochSeconds,r==null?void 0:r.isZeroCommit,this.settings);a.style.backgroundColor=s,GT(r,i,a);function c(){let u=a.cloneNode(!0);return Zs.add(u),i||DT(o),u}return c}renderNonZeroCommit(r){let n=this.settings.showCommitHash?this.renderHash(r):"",i=this.settings.authorDisplay==="hide"?"":`${this.renderAuthorName(r,this.settings.authorDisplay)}`,a=this.settings.dateTimeFormatOptions==="hide"?"":`${this.renderAuthoringDate(r,this.settings.dateTimeFormatOptions,this.settings.dateTimeFormatCustomString,this.settings.dateTimeTimezone)}`;return[n,i,a].filter(o=>o.length>=1).join(" ")}renderHash(r){return r.hash.substring(0,6)}renderAuthorName(r,n){var o,c,l,u;let i=(c=(o=r==null?void 0:r.author)==null?void 0:o.name)!=null?c:"",a=i.split(" ").filter(f=>f.length>=1),s;switch(n){case"initials":s=a.map(f=>f[0].toUpperCase()).join("");break;case"first name":s=(l=a.first())!=null?l:WT;break;case"last name":s=(u=a.last())!=null?u:WT;break;case"full":s=i;break;default:return Oi(n)}return dT(r==null?void 0:r.author,r==null?void 0:r.committer)||(s=s+fB),s}renderAuthoringDate(r,n,i,a){var l;let s="?";if(((l=r==null?void 0:r.author)==null?void 0:l.epochSeconds)===void 0)return s;let o;switch(n){case"date":o=zu;break;case"datetime":o=_m;break;case"custom":o=i;break;case"natural language":o=u=>{let f=u.diff((0,nd.moment)());return nd.moment.duration(f).humanize(!0)};break;default:return Oi(n)}let c=nd.moment.unix(r.author.epochSeconds);switch(a){case"viewer-local":break;case"author-local":c=c.utcOffset(r.author.tz),typeof o=="string"&&(o+=" Z");break;case"utc0000":c=c.utc(),typeof o=="string"&&(o+="[Z]");break;default:return Oi(a)}return typeof o=="string"?c.format(o):o(c)}adaptTextForFakeCommit(r,n,i){var c,l,u,f;let a=(l=(c=Jf())==null?void 0:c.text)!=null?l:n,s=i!=="waiting-for-result"&&r.isZeroCommit?cB:hB;n=a.replace(dB,s);let o=(f=(u=Lr.get())==null?void 0:u.gutterSpacingFallbackLength)!=null?f:n.length;if(n=hT(n,o,s),i!=="waiting-for-result"&&r.isZeroCommit){let d=Math.min(o,uB);n=pT(n,o-d)}return n}};function xa(e,t,r,n,i,a){let s=qT.sha256.create();s.update(Object.values(i).join(",")),s.update(`s${t}-e${r}-k${n}-o${a}`);let o=s.hex(),c=Qf.get(o);if(c)return c;let l=new f0(e,t,r,n,i,a);return Qf.set(o,l),l}g();var YT=require("obsidian");function h0(){var t,r;let e=(r=(t=Lr.get())==null?void 0:t.gutterSpacingFallbackLength)!=null?r:Sn.lineAuthor.gutterSpacingFallbackLength;return new Ks(Array(e).fill("-").join(""))}function p0(e){let{lineAuthoring:t,ageForInitialRender:r}=pB(e);return xa(t,1,1,"initialGutter"+r,e,"waiting-for-result")}function pB(e){var a;let t=(a=NT())!=null?a:Xf(e)*.25,r=(0,YT.moment)().add(-t,"days"),n={name:"",epochSeconds:uT(r),tz:"+0000"},i={hash:"waiting-for-result",author:n,committer:n,isZeroCommit:!1};return{lineAuthoring:{hashPerLine:[void 0,"waiting-for-result"],commits:new Map([["waiting-for-result",i]])},ageForInitialRender:t}}g();function XT(e,t){return xa({hashPerLine:[void 0,"000000"],commits:new Map([["000000",wT]])},1,1,e,t)}var m0=new Ks(""),QT=(0,JT.gutter)({class:"line-author-gutter-container",markers(e){let t=e.state.field(Ys,!1);return mB(e,t)},lineMarkerChange(e){let t=Yf(e.state.field(Ys));return Yf(e.startState.field(Ys))!==t},renderEmptyElements:!0,initialSpacer:e=>(ZT(e),h0()),updateSpacer:(e,t)=>{var r,n;return ZT(t.view),(n=(r=Jf())==null?void 0:r.gutter)!=null?n:h0()}});function mB(e,t){let r=Yf(t),n=e.state.doc,i=new Map;for(let u=1;u<=n.lines;u++){let f=n.line(u).from,d=e.lineBlockAt(f).to;i.set(u,[f,d]),r.update([f,d,0])}let a=Lr.get();r.update("s"+Object.values(Lr).join(","));let s=r.hex(),o=ed.get(s);if(o)return o;let{result:c,allowCache:l}=gB(n,i,a,t);return l&&ed.set(s,c),c}function gB(e,t,r,n){let i=!0,a=e.lines,s=[];function o(f,d,h){return s.push(h.range(f,d))}let c=vB(a,n),l=e.length===0,u=e.iterLines(a,a+1).next().value==="";for(let f=1;f<=a;f++){let[d,h]=t.get(f),p=e.lineAt(h).number;if(l){o(d,h,m0);continue}if(f===a&&u){o(d,h,m0);continue}if(n===void 0){o(d,h,p0(r)),i=!1;continue}let{key:m,la:v}=n;if(v==="untracked"){o(d,h,XT(v,r));continue}let y=v.hashPerLine.length-1,b=c[f],x=c[p];if(x&&x>y&&o(d,h,m0),b!==void 0&&Vg(1,b,y)&&x!==void 0&&Vg(1,x,y)){o(d,h,xa(v,b,x,m,r));continue}if(y<1){o(d,h,p0(r)),i=!1;continue}let E=Math.clamp(b!=null?b:f,1,y),_=Math.clamp(x!=null?x:p,1,y);o(d,h,xa(v,E,_,m+"computing",r,"waiting-for-result"))}return{result:KT.RangeSet.of(s,!0),allowCache:i}}function vB(e,t){if(!(t!=null&&t.lineOffsetsFromUnsavedChanges))return Array.from(new Array(e+1),i=>i);let r=[void 0],n=0;for(let i=1;i<=e;i++){let a=t.lineOffsetsFromUnsavedChanges.get(i);n+=a!=null?a:0,r[i]=a===void 0?i-n:void 0}return r}function ZT(e){e.dom.querySelectorAll(".cm-gutters").forEach(r=>{r!=null&&r.style&&(r.style.marginLeft||(r.style.marginLeft="unset"))})}var id=class{constructor(t){this.plugin=t;this.lineAuthorings=new Map}async trackChanged(t){return this.trackChangedHelper(t).catch(r=>(console.warn("Git: Error in trackChanged."+r),Promise.reject(r)))}async trackChangedHelper(t){if(t){if(t.path===void 0){console.warn("Git: Attempted to track change of undefined filepath. Unforeseen situation.");return}return this.computeLineAuthorInfo(t.path)}}destroy(){this.lineAuthorings.clear(),qs.clear(),$T()}async computeLineAuthorInfo(t){let r=this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager,n=await r.submoduleAwareHeadRevisonInContainingDirectory(t),i=await r.hashObject(t),a=PT(n,i,t);if(a!==void 0){if(!this.lineAuthorings.has(a)){let s=await r.blame(t,this.plugin.settings.lineAuthor.followMovement,this.plugin.settings.lineAuthor.ignoreWhitespace);this.lineAuthorings.set(a,s)}this.notifyComputationResultToSubscribers(t,a)}}notifyComputationResultToSubscribers(t,r){qs.ifFilepathDefinedTransformSubscribers(t,n=>n.forEach(i=>i.notifyLineAuthoring(r,this.lineAuthorings.get(r))))}},tC=eC.Prec.high([FT,Ys,QT]);var ad=class{constructor(t){this.plg=t;this.codeMirrorExtensions=[];this.handleWorkspaceLeaf=t=>{if(!this.lineAuthorInfoProvider){console.warn("Git: undefined lineAuthorInfoProvider. Unexpected situation.");return}let r=t==null?void 0:t.view;!(r instanceof Sa.MarkdownView)||r.file==null||(r==null?void 0:r.allowNoFile)===!0||this.lineAuthorInfoProvider.trackChanged(r.file).catch(console.error)}}onLoadPlugin(){this.plg.registerEditorExtension(this.codeMirrorExtensions),OT(()=>this.plg.settings.lineAuthor,t=>{this.plg.settings.lineAuthor=t,this.plg.saveSettings()})}conditionallyActivateBySettings(){this.plg.settings.lineAuthor.show&&this.activateFeature()}activateFeature(){try{if(!this.isAvailableOnCurrentPlatform().available)return;zT(this.plg.settings.lineAuthor),this.lineAuthorInfoProvider=new id(this.plg),this.createEventHandlers(),this.activateCodeMirrorExtensions(),console.log(this.plg.manifest.name+": Enabled line authoring.")}catch(t){console.warn("Git: Error while loading line authoring feature.",t),this.deactivateFeature()}}deactivateFeature(){var t;this.destroyEventHandlers(),this.deactivateCodeMirrorExtensions(),(t=this.lineAuthorInfoProvider)==null||t.destroy(),this.lineAuthorInfoProvider=void 0,console.log(this.plg.manifest.name+": Disabled line authoring.")}isAvailableOnCurrentPlatform(){return{available:this.plg.useSimpleGit&&Sa.Platform.isDesktopApp,gitManager:this.plg.gitManager instanceof Te?this.plg.gitManager:void 0}}refreshLineAuthorViews(){this.plg.settings.lineAuthor.show&&(this.deactivateFeature(),this.activateFeature())}activateCodeMirrorExtensions(){this.codeMirrorExtensions.push(tC),this.plg.app.workspace.updateOptions(),this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}deactivateCodeMirrorExtensions(){for(let t of this.codeMirrorExtensions)this.codeMirrorExtensions.remove(t);this.plg.app.workspace.updateOptions()}createEventHandlers(){this.gutterContextMenuEvent=this.createGutterContextMenuHandler(),this.fileOpenEvent=this.createFileOpenEvent(),this.workspaceLeafChangeEvent=this.createWorkspaceLeafChangeEvent(),this.fileModificationEvent=this.createVaultFileModificationHandler(),this.refreshOnCssChangeEvent=this.createCssRefreshHandler(),this.fileRenameEvent=this.createFileRenameEvent(),jT(),this.plg.registerEvent(this.gutterContextMenuEvent),this.plg.registerEvent(this.refreshOnCssChangeEvent),this.plg.registerEvent(this.fileOpenEvent),this.plg.registerEvent(this.workspaceLeafChangeEvent),this.plg.registerEvent(this.fileModificationEvent),this.plg.registerEvent(this.fileRenameEvent)}destroyEventHandlers(){this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.workspace.offref(this.fileOpenEvent),this.plg.app.workspace.offref(this.workspaceLeafChangeEvent),this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.vault.offref(this.fileRenameEvent),this.plg.app.workspace.offref(this.gutterContextMenuEvent)}createFileOpenEvent(){return this.plg.app.workspace.on("file-open",t=>{var r;return void((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(t).catch(console.error))})}createWorkspaceLeafChangeEvent(){return this.plg.app.workspace.on("active-leaf-change",this.handleWorkspaceLeaf)}createFileRenameEvent(){return this.plg.app.vault.on("rename",(t,r)=>{var n;return t instanceof Sa.TFile&&((n=this.lineAuthorInfoProvider)==null?void 0:n.trackChanged(t))})}createVaultFileModificationHandler(){return this.plg.app.vault.on("modify",t=>{var r;return t instanceof Sa.TFile&&((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(t))})}createCssRefreshHandler(){return this.plg.app.workspace.on("css-change",()=>this.refreshLineAuthorViews())}createGutterContextMenuHandler(){return this.plg.app.workspace.on("editor-menu",UT)}};g();var sd=class{constructor(t){this.plugin=t;this.tasks=[]}addTask(t,r){this.tasks.push({task:t,onFinished:r!=null?r:()=>{}}),this.tasks.length===1&&this.handleTask()}handleTask(){if(this.tasks.length>0){let t=this.tasks[0];t.task().catch(r=>this.plugin.displayError(r)).finally(()=>{t.onFinished(),this.tasks.shift(),this.handleTask()})}}clear(){this.tasks=[]}};g();var Dr=require("obsidian");var od=class{constructor(t,r){this.statusBarEl=t;this.plugin=r;this.messages=[];this.base="obsidian-git-statusbar-";this.statusBarEl.setAttribute("data-tooltip-position","top"),r.registerEvent(r.app.workspace.on("obsidian-git:refreshed",()=>{this.refreshCommitTimestamp().catch(console.error)}))}displayMessage(t,r){this.messages.push({message:`Git: ${t.slice(0,100)}`,timeout:r}),this.display()}display(){this.messages.length>0&&!this.currentMessage?(this.currentMessage=this.messages.shift(),this.statusBarEl.addClass(this.base+"message"),this.statusBarEl.ariaLabel="",this.statusBarEl.setText(this.currentMessage.message),this.lastMessageTimestamp=Date.now()):this.currentMessage?Date.now()-this.lastMessageTimestamp>=this.currentMessage.timeout&&(this.currentMessage=null,this.lastMessageTimestamp=null):this.displayState()}displayState(){switch((this.statusBarEl.getText().length>3||!this.statusBarEl.hasChildNodes())&&(this.statusBarEl.empty(),this.conflictEl=this.statusBarEl.createDiv(),this.conflictEl.setAttribute("data-tooltip-position","top"),this.conflictEl.style.float="left",this.iconEl=this.statusBarEl.createDiv(),this.iconEl.style.float="left",this.textEl=this.statusBarEl.createDiv(),this.textEl.style.float="right",this.textEl.style.marginLeft="5px"),this.plugin.localStorage.getConflict()?((0,Dr.setIcon)(this.conflictEl,"alert-circle"),this.conflictEl.ariaLabel="You have merge conflicts. Resolve them and commit afterwards.",this.conflictEl.style.marginRight="5px",this.conflictEl.addClass(this.base+"conflict")):(this.conflictEl.empty(),this.conflictEl.style.marginRight=""),this.plugin.state.gitAction){case 0:this.displayFromNow();break;case 1:this.statusBarEl.ariaLabel="Checking repository status...",(0,Dr.setIcon)(this.iconEl,"refresh-cw"),this.statusBarEl.addClass(this.base+"status");break;case 3:this.statusBarEl.ariaLabel="Adding files...",(0,Dr.setIcon)(this.iconEl,"archive"),this.statusBarEl.addClass(this.base+"add");break;case 4:this.statusBarEl.ariaLabel="Committing changes...",(0,Dr.setIcon)(this.iconEl,"git-commit"),this.statusBarEl.addClass(this.base+"commit");break;case 5:this.statusBarEl.ariaLabel="Pushing changes...",(0,Dr.setIcon)(this.iconEl,"upload"),this.statusBarEl.addClass(this.base+"push");break;case 2:this.statusBarEl.ariaLabel="Pulling changes...",(0,Dr.setIcon)(this.iconEl,"download"),this.statusBarEl.addClass(this.base+"pull");break;default:this.statusBarEl.ariaLabel="Failed on initialization!",(0,Dr.setIcon)(this.iconEl,"alert-triangle"),this.statusBarEl.addClass(this.base+"failed-init");break}}displayFromNow(){var n;let t=this.lastCommitTimestamp,r=this.plugin.state.offlineMode;if(t){let i=(0,Dr.moment)(t).fromNow();this.statusBarEl.ariaLabel=`${r?"Offline: ":""}Last Commit: ${i}`,(n=this.unPushedCommits)!=null&&n&&(this.statusBarEl.ariaLabel+=` -(${this.unPushedCommits} unpushed commits)`)}else this.statusBarEl.ariaLabel=r?"Git is offline":"Git is ready";r?(0,Dr.setIcon)(this.iconEl,"globe"):(0,Dr.setIcon)(this.iconEl,"check"),this.plugin.settings.changedFilesInStatusBar&&this.plugin.cachedStatus&&this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()),this.statusBarEl.addClass(this.base+"idle")}async refreshCommitTimestamp(){this.lastCommitTimestamp=await this.plugin.gitManager.getLastCommitTime(),this.unPushedCommits=await this.plugin.gitManager.getUnpushedCommits()}remove(){this.statusBarEl.remove()}};g();var cd=require("obsidian"),ld=class extends cd.SuggestModal{constructor(r){super(r.app);this.plugin=r;this.resolve=null;this.setPlaceholder("Type your message and select optional the version with the added date.")}openAndGetResult(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(r){let n=(0,cd.moment)().format(this.plugin.settings.commitDateFormat);return r==""&&(r="..."),[r,`${n}: ${r}`,`${r}: ${n}`]}renderSuggestion(r,n){n.innerText=r}onChooseSuggestion(r,n){this.resolve&&this.resolve(r)}};g();var rC=require("obsidian"),Zl=class{constructor(t){this.plugin=t}saveLastAuto(t,r){r==="backup"?this.plugin.localStorage.setLastAutoBackup(t.toString()):r==="pull"?this.plugin.localStorage.setLastAutoPull(t.toString()):r==="push"&&this.plugin.localStorage.setLastAutoPush(t.toString())}loadLastAuto(){var t,r,n;return{backup:new Date((t=this.plugin.localStorage.getLastAutoBackup())!=null?t:""),pull:new Date((r=this.plugin.localStorage.getLastAutoPull())!=null?r:""),push:new Date((n=this.plugin.localStorage.getLastAutoPush())!=null?n:"")}}async init(){await this.setUpAutoCommitAndSync();let t=this.loadLastAuto();if(this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0){let r=new Date,n=this.plugin.settings.autoPushInterval-Math.round((r.getTime()-t.push.getTime())/1e3/60);this.startAutoPush(n<=0?0:n)}if(this.plugin.settings.autoPullInterval>0){let r=new Date,n=this.plugin.settings.autoPullInterval-Math.round((r.getTime()-t.pull.getTime())/1e3/60);this.startAutoPull(n<=0?0:n)}}unload(){this.clearAutoPull(),this.clearAutoPush(),this.clearAutoCommitAndSync()}reload(...t){t.contains("commit")&&(this.clearAutoCommitAndSync(),this.plugin.settings.autoSaveInterval>0&&this.startAutoCommitAndSync(this.plugin.settings.autoSaveInterval)),t.contains("push")&&(this.clearAutoPush(),this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0&&this.startAutoPush(this.plugin.settings.autoPushInterval)),t.contains("pull")&&(this.clearAutoPull(),this.plugin.settings.autoPullInterval>0&&this.startAutoPull(this.plugin.settings.autoPullInterval))}async setUpAutoCommitAndSync(){if(this.plugin.settings.setLastSaveToLastCommit){this.clearAutoCommitAndSync();let t=await this.plugin.gitManager.getLastCommitTime();t&&this.plugin.localStorage.setLastAutoBackup(t.toString())}if(!this.timeoutIDCommitAndSync&&!this.plugin.autoCommitDebouncer){let t=this.loadLastAuto();if(this.plugin.settings.autoSaveInterval>0){let r=new Date,n=this.plugin.settings.autoSaveInterval-Math.round((r.getTime()-t.backup.getTime())/1e3/60);this.startAutoCommitAndSync(n<=0?0:n)}}}startAutoCommitAndSync(t){let r=(t!=null?t:this.plugin.settings.autoSaveInterval)*6e4;this.plugin.settings.autoBackupAfterFileChange?t===0?this.doAutoCommitAndSync():this.plugin.autoCommitDebouncer=(0,rC.debounce)(()=>this.doAutoCommitAndSync(),r,!0):(r>2147483647&&(r=2147483647),this.timeoutIDCommitAndSync=window.setTimeout(()=>this.doAutoCommitAndSync(),r))}doAutoCommitAndSync(){this.plugin.promiseQueue.addTask(()=>this.plugin.settings.differentIntervalCommitAndPush?this.plugin.commit({fromAuto:!0}):this.plugin.commitAndSync(!0),()=>{this.saveLastAuto(new Date,"backup"),this.startAutoCommitAndSync()})}startAutoPull(t){let r=(t!=null?t:this.plugin.settings.autoPullInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPull=window.setTimeout(()=>this.doAutoPull(),r)}doAutoPull(){this.plugin.promiseQueue.addTask(()=>this.plugin.pullChangesFromRemote(),()=>{this.saveLastAuto(new Date,"pull"),this.startAutoPull()})}startAutoPush(t){let r=(t!=null?t:this.plugin.settings.autoPushInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPush=window.setTimeout(()=>this.doAutoPush(),r)}doAutoPush(){this.plugin.promiseQueue.addTask(()=>this.plugin.push(),()=>{this.saveLastAuto(new Date,"push"),this.startAutoPush()})}clearAutoCommitAndSync(){var r;let t=!1;return this.timeoutIDCommitAndSync&&(window.clearTimeout(this.timeoutIDCommitAndSync),this.timeoutIDCommitAndSync=void 0,t=!0),this.plugin.autoCommitDebouncer&&((r=this.plugin.autoCommitDebouncer)==null||r.cancel(),this.plugin.autoCommitDebouncer=void 0,t=!0),t}clearAutoPull(){return this.timeoutIDPull?(window.clearTimeout(this.timeoutIDPull),this.timeoutIDPull=void 0,!0):!1}clearAutoPush(){return this.timeoutIDPush?(window.clearTimeout(this.timeoutIDPush),this.timeoutIDPush=void 0,!0):!1}};g();var Jl=require("obsidian");g();var Kl=require("obsidian");async function nC(e,t,r){let n=await aC(t,r);if(n.result==="failure"){new Kl.Notice(n.reason);return}let{isGitHub:i,branch:a,repo:s,user:o,filePath:c}=n;if(i){let l=e.getCursor("from").line+1,u=e.getCursor("to").line+1;l===u?window.open(`https://github.com/${o}/${s}/blob/${a}/${c}?plain=1#L${l}`):window.open(`https://github.com/${o}/${s}/blob/${a}/${c}?plain=1#L${l}-L${u}`)}else new Kl.Notice("It seems like you are not using GitHub")}async function iC(e,t){let r=await aC(e,t);if(r.result==="failure"){new Kl.Notice(r.reason);return}let{isGitHub:n,branch:i,repo:a,user:s,filePath:o}=r;n?window.open(`https://github.com/${s}/${a}/commits/${i}/${o}`):new Kl.Notice("It seems like you are not using GitHub")}async function aC(e,t){let r=await t.branchInfo(),n=r.tracking,i=r.current,a,s=t.getRelativeRepoPath(e.path);if(t instanceof Te){let c=await t.getSubmoduleOfFile(t.getRelativeRepoPath(e.path));if(c){s=c.relativeFilepath;let l=await t.git.cwd({path:c.submodule,root:!1}).status();if(n=l.tracking||void 0,i=l.current||void 0,n){let u=n.substring(0,n.indexOf("/")),f=await t.git.cwd({path:c.submodule,root:!1}).getConfig(`remote.${u}.url`,"local");if(f.value!=null)a=f.value;else return{result:"failure",reason:"Failed to get remote url of submodule"}}}}if(n==null)return{result:"failure",reason:"Remote branch is not configured"};if(i==null)return{result:"failure",reason:"Failed to get current branch name"};if(a==null){let c=n.substring(0,n.indexOf("/"));if(a=await t.getConfig(`remote.${c}.url`),a==null)return{result:"failure",reason:"Failed to get remote url"}}let o=a.match(/(?:^https:\/\/github\.com\/(.+)\/(.+?)(?:\.git)?$)|(?:^[a-zA-Z]+@github\.com:(.+)\/(.+?)(?:\.git)?$)/);if(o==null)return{result:"failure",reason:"Could not parse remote url"};{let[c,l,u,f,d]=o;return{result:"success",isGitHub:!!c,repo:u||d,user:l||f,branch:i,filePath:s}}}g();var sC=require("obsidian"),ud=class extends sC.FuzzySuggestModal{constructor(t,r){super(t.app),this.plugin=t,this.changedFiles=r,this.setPlaceholder("Not supported files will be opened by default app!")}getItems(){return this.changedFiles}getItemText(t){if(t.index=="U"&&t.workingDir=="U")return`Untracked | ${t.vaultPath}`;let r="",n="";return t.workingDir!=" "&&(r=`Working Dir: ${t.workingDir} `),t.index!=" "&&(n=`Index: ${t.index}`),`${r}${n} | ${t.vaultPath}`}onChooseItem(t,r){this.plugin.app.metadataCache.getFirstLinkpathDest(t.vaultPath,"")==null?this.app.openWithDefaultApp(t.vaultPath):this.plugin.app.workspace.openLinkText(t.vaultPath,"/")}};g();var oC=require("obsidian"),fd=class extends oC.Modal{constructor(r,n){super(r);this.content=n;this.resolve=null}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onOpen(){let{contentEl:r,titleEl:n}=this;n.setText("Edit .gitignore");let i=r.createDiv(),a=i.createEl("textarea",{text:this.content,cls:["obsidian-git-textarea"],attr:{rows:10,cols:30,wrap:"off"}});i.createEl("button",{cls:["mod-cta","obsidian-git-center-button"],text:"Save"}).addEventListener("click",()=>{this.resolve(a.value),this.close()})}onClose(){let{contentEl:r}=this;r.empty(),this.resolve&&this.resolve(void 0)}};function lC(e){let t=e.app;e.addCommand({id:"edit-gitignore",name:"Edit .gitignore",callback:async()=>{let r=e.gitManager.getRelativeVaultPath(".gitignore");await t.vault.adapter.exists(r)||await t.vault.adapter.write(r,"");let n=await t.vault.adapter.read(r),a=await new fd(t,n).openAndGetReslt();a!==void 0&&(await t.vault.adapter.write(r,a),await e.refresh())}}),e.addCommand({id:"open-git-view",name:"Open source control view",callback:async()=>{var i;let r=t.workspace.getLeavesOfType(St.type),n;r.length===0?(n=(i=t.workspace.getRightLeaf(!1))!=null?i:t.workspace.getLeaf(),await n.setViewState({type:St.type})):n=r.first(),await t.workspace.revealLeaf(n),t.workspace.trigger("obsidian-git:refresh")}}),e.addCommand({id:"open-history-view",name:"Open history view",callback:async()=>{var i;let r=t.workspace.getLeavesOfType(Fr.type),n;r.length===0?(n=(i=t.workspace.getRightLeaf(!1))!=null?i:t.workspace.getLeaf(),await n.setViewState({type:Fr.type})):n=r.first(),await t.workspace.revealLeaf(n),t.workspace.trigger("obsidian-git:refresh")}}),e.addCommand({id:"open-diff-view",name:"Open diff view",checkCallback:r=>{let n=t.workspace.getActiveFile();if(r)return n!==null;{let i=e.gitManager.getRelativeRepoPath(n.path,!0);e.tools.openDiff({aFile:i,aRef:""})}}}),e.addCommand({id:"view-file-on-github",name:"Open file on GitHub",editorCallback:(r,{file:n})=>{if(n)return nC(r,n,e.gitManager)}}),e.addCommand({id:"view-history-on-github",name:"Open file history on GitHub",editorCallback:(r,{file:n})=>{if(n)return iC(n,e.gitManager)}}),e.addCommand({id:"pull",name:"Pull",callback:()=>e.promiseQueue.addTask(()=>e.pullChangesFromRemote())}),e.addCommand({id:"fetch",name:"Fetch",callback:()=>e.promiseQueue.addTask(()=>e.fetch())}),e.addCommand({id:"switch-to-remote-branch",name:"Switch to remote branch",callback:()=>e.promiseQueue.addTask(()=>e.switchRemoteBranch())}),e.addCommand({id:"add-to-gitignore",name:"Add file to .gitignore",checkCallback:r=>{let n=t.workspace.getActiveFile();if(r)return n!==null;e.addFileToGitignore(n.path).catch(i=>e.displayError(i))}}),e.addCommand({id:"push",name:"Commit-and-sync",callback:()=>e.promiseQueue.addTask(()=>e.commitAndSync(!1))}),e.addCommand({id:"backup-and-close",name:"Commit-and-sync and then close Obsidian",callback:()=>e.promiseQueue.addTask(async()=>{await e.commitAndSync(!1),window.close()})}),e.addCommand({id:"commit-push-specified-message",name:"Commit-and-sync with specific message",callback:()=>e.promiseQueue.addTask(()=>e.commitAndSync(!1,!0))}),e.addCommand({id:"commit",name:"Commit all changes",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1}))}),e.addCommand({id:"commit-specified-message",name:"Commit all changes with specific message",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1,requestCustomMessage:!0}))}),e.addCommand({id:"commit-staged",name:"Commit staged",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1,requestCustomMessage:!1,onlyStaged:!0}))}),Jl.Platform.isDesktopApp&&e.addCommand({id:"commit-amend-staged-specified-message",name:"Amend staged",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0,amend:!0}))}),e.addCommand({id:"commit-staged-specified-message",name:"Commit staged with specific message",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0}))}),e.addCommand({id:"push2",name:"Push",callback:()=>e.promiseQueue.addTask(()=>e.push())}),e.addCommand({id:"stage-current-file",name:"Stage current file",checkCallback:r=>{let n=t.workspace.getActiveFile();if(r)return n!==null;e.promiseQueue.addTask(()=>e.stageFile(n))}}),e.addCommand({id:"unstage-current-file",name:"Unstage current file",checkCallback:r=>{let n=t.workspace.getActiveFile();if(r)return n!==null;e.promiseQueue.addTask(()=>e.unstageFile(n))}}),e.addCommand({id:"edit-remotes",name:"Edit remotes",callback:()=>e.editRemotes().catch(r=>e.displayError(r))}),e.addCommand({id:"remove-remote",name:"Remove remote",callback:()=>e.removeRemote().catch(r=>e.displayError(r))}),e.addCommand({id:"set-upstream-branch",name:"Set upstream branch",callback:()=>e.setUpstreamBranch().catch(r=>e.displayError(r))}),e.addCommand({id:"delete-repo",name:"CAUTION: Delete repository",callback:async()=>{await t.vault.adapter.exists(`${e.settings.basePath}/.git`)?await new Fe(e,{options:["NO","YES"],placeholder:"Do you really want to delete the repository (.git directory)? plugin action cannot be undone.",onlySelection:!0}).openAndGetResult()==="YES"&&(await t.vault.adapter.rmdir(`${e.settings.basePath}/.git`,!0),new Jl.Notice("Successfully deleted repository. Reloading plugin..."),e.unloadPlugin(),await e.init({fromReload:!0})):new Jl.Notice("No repository found")}}),e.addCommand({id:"init-repo",name:"Initialize a new repo",callback:()=>e.createNewRepo().catch(r=>e.displayError(r))}),e.addCommand({id:"clone-repo",name:"Clone an existing remote repo",callback:()=>e.cloneNewRepo().catch(r=>e.displayError(r))}),e.addCommand({id:"list-changed-files",name:"List changed files",callback:async()=>{if(await e.isAllInitialized())try{let r=await e.updateCachedStatus();if(r.changed.length+r.staged.length>500){e.displayError("Too many changes to display");return}new ud(e,r.all).open()}catch(r){e.displayError(r)}}}),e.addCommand({id:"switch-branch",name:"Switch branch",callback:()=>{e.switchBranch().catch(r=>e.displayError(r))}}),e.addCommand({id:"create-branch",name:"Create new branch",callback:()=>{e.createBranch().catch(r=>e.displayError(r))}}),e.addCommand({id:"delete-branch",name:"Delete branch",callback:()=>{e.deleteBranch().catch(r=>e.displayError(r))}}),e.addCommand({id:"discard-all",name:"CAUTION: Discard all changes",callback:async()=>{if(!await e.isAllInitialized())return!1;await new Fe(e,{options:["NO","YES"],placeholder:"Do you want to discard all changes to tracked files? plugin action cannot be undone.",onlySelection:!0}).openAndGetResult()==="YES"&&e.promiseQueue.addTask(()=>e.discardAll())}}),e.addCommand({id:"raw-command",name:"Raw command",checkCallback:r=>{let n=e.gitManager;if(r)return n instanceof Te;e.tools.runRawCommand().catch(i=>e.displayError(i))}}),e.addCommand({id:"toggle-line-author-info",name:"Toggle line author information",callback:()=>{var r;return(r=e.settingsTab)==null?void 0:r.configureLineAuthorShowStatus(!e.settings.lineAuthor.show)}})}g();var dd=class{constructor(t){this.plugin=t;this.prefix=this.plugin.manifest.id+":",this.app=t.app}migrate(){let t=["password","hostname","conflict","lastAutoPull","lastAutoBackup","lastAutoPush","gitPath","pluginDisabled"];for(let r of t){let n=localStorage.getItem(this.prefix+r);this.app.loadLocalStorage(this.prefix+r)==null&&n!=null&&n!=null&&(this.app.saveLocalStorage(this.prefix+r,n),localStorage.removeItem(this.prefix+r))}}getPassword(){return this.app.loadLocalStorage(this.prefix+"password")}setPassword(t){return this.app.saveLocalStorage(this.prefix+"password",t)}getUsername(){return this.app.loadLocalStorage(this.prefix+"username")}setUsername(t){return this.app.saveLocalStorage(this.prefix+"username",t)}getHostname(){return this.app.loadLocalStorage(this.prefix+"hostname")}setHostname(t){return this.app.saveLocalStorage(this.prefix+"hostname",t)}getConflict(){return this.app.loadLocalStorage(this.prefix+"conflict")=="true"}setConflict(t){return this.app.saveLocalStorage(this.prefix+"conflict",`${t}`)}getLastAutoPull(){return this.app.loadLocalStorage(this.prefix+"lastAutoPull")}setLastAutoPull(t){return this.app.saveLocalStorage(this.prefix+"lastAutoPull",t)}getLastAutoBackup(){return this.app.loadLocalStorage(this.prefix+"lastAutoBackup")}setLastAutoBackup(t){return this.app.saveLocalStorage(this.prefix+"lastAutoBackup",t)}getLastAutoPush(){return this.app.loadLocalStorage(this.prefix+"lastAutoPush")}setLastAutoPush(t){return this.app.saveLocalStorage(this.prefix+"lastAutoPush",t)}getGitPath(){return this.app.loadLocalStorage(this.prefix+"gitPath")}setGitPath(t){return this.app.saveLocalStorage(this.prefix+"gitPath",t)}getPATHPaths(){var t,r;return(r=(t=this.app.loadLocalStorage(this.prefix+"PATHPaths"))==null?void 0:t.split(":"))!=null?r:[]}setPATHPaths(t){return this.app.saveLocalStorage(this.prefix+"PATHPaths",t.join(":"))}getEnvVars(){var t;return JSON.parse((t=this.app.loadLocalStorage(this.prefix+"envVars"))!=null?t:"[]")}setEnvVars(t){return this.app.saveLocalStorage(this.prefix+"envVars",JSON.stringify(t))}getPluginDisabled(){return this.app.loadLocalStorage(this.prefix+"pluginDisabled")=="true"}setPluginDisabled(t){return this.app.saveLocalStorage(this.prefix+"pluginDisabled",`${t}`)}};g();g();g();g();var He;(function(e){e.INSERT="insert",e.DELETE="delete",e.CONTEXT="context"})(He||(He={}));var cC={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"},uC={LINES:"lines",WORDS:"words",NONE:"none"},fC={WORD:"word",CHAR:"char"},Ea;(function(e){e.AUTO="auto",e.DARK="dark",e.LIGHT="light"})(Ea||(Ea={}));g();var yB=["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"],wB=RegExp("["+yB.join("\\")+"]","g");function dC(e){return e.replace(wB,"\\$&")}function g0(e){return e&&e.replace(/\\/g,"/")}function hC(e){let t,r,n,i=0;for(t=0,n=e.length;t1?r[r.length-1]:t}function mC(e,t){return t.reduce((r,n)=>r||e.startsWith(n),!1)}var gC=["a/","b/","i/","w/","c/","o/"];function $i(e,t,r){let n=r!==void 0?[...gC,r]:gC,i=t?new RegExp(`^${dC(t)} "?(.+?)"?$`):new RegExp('^"?(.+?)"?$'),[,a=""]=i.exec(e)||[],s=n.find(c=>a.indexOf(c)===0);return(s?a.slice(s.length):a).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}function bB(e,t){return $i(e,"---",t)}function _B(e,t){return $i(e,"+++",t)}function vC(e,t={}){let r=[],n=null,i=null,a=null,s=null,o=null,c=null,l=null,u="--- ",f="+++ ",d="@@",h=/^old mode (\d{6})/,p=/^new mode (\d{6})/,m=/^deleted file mode (\d{6})/,v=/^new file mode (\d{6})/,y=/^copy from "?(.+)"?/,b=/^copy to "?(.+)"?/,x=/^rename from "?(.+)"?/,E=/^rename to "?(.+)"?/,_=/^similarity index (\d+)%/,k=/^dissimilarity index (\d+)%/,w=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,A=/^Binary files (.*) and (.*) differ/,S=/^GIT binary patch/,T=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,P=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,O=/^new file mode (\d{6})/,j=/^deleted file mode (\d{6}),(\d{6})/,D=e.replace(/\\ No newline at end of file/g,"").replace(/\r\n?/g,` + >${o}`}`}previewCustomDateTimeDescriptionHtml(r){let n=(0,V.moment)().format(r);return`Format string to display the authoring date.
Currently: ${n}`}previewOldestAgeDescriptionHtml(r){let n=Vf(r);return[`The oldest age in the line author coloring. Everything older will have the same color. +
Smallest valid age is "1d". Currently: ${n!==void 0?`${n.asDays()} days`:"invalid!"}`,n]}};function i0(e,t){return e==="oldest"?t.colorOld:t.colorNew}function Vf(e){let t=V.moment.duration("P"+e.toUpperCase());return t.isValid()&&t.asDays()&&t.asDays()>=1?t:void 0}function PT(e,t,r){if(!(e===void 0||t===void 0||r===void 0))return`head${e}-obj${t}-path${r}`}var RT=Wf.Annotation.define();function MT(e,t,r){return r.update({annotations:RT.of({key:e,la:t,lineOffsetsFromUnsavedChanges:new Map})})}function tB(e){return e.annotation(RT)}var qs=Wf.StateField.define({create:e=>{},update:(e,t)=>{var r;return(r=tB(t))!=null?r:rB(t,e)},compare:(e,t)=>(e==null?void 0:e.key)===(t==null?void 0:t.key)});function qf(e){var a;let t=CT.sha256.create();if(!e)return t;let{la:r,key:n,lineOffsetsFromUnsavedChanges:i}=e;t.update(r==="untracked"?"t":"f"),t.update(n);for(let[s,o]of(a=i.entries())!=null?a:[])t.update([s,o]);return t}var Dr={get:void 0,save:void 0};function OT(e,t){Dr.get=e,Dr.save=t}function Yf(e){var t,r;return(r=(t=Vf(e.coloringMaxAge))==null?void 0:t.asDays())!=null?r:Vf(ar.lineAuthor.coloringMaxAge).asDays()}function rB(e,t){if(t)return e.changes.empty||e.changes.iterChanges((r,n,i,a)=>{var p;let s=e.startState.doc,{newDoc:o}=e,c=s.lineAt(r).number,l=s.lineAt(n).number,u=o.lineAt(i).number,f=o.lineAt(a).number,d=l-c+1,h=f-u+1;for(let m=u;m<=f;m++){let v=(p=t.lineOffsetsFromUnsavedChanges.get(m))!=null?p:0,y=f===m,b=h-d;y&&(v+=b),t.lineOffsetsFromUnsavedChanges.set(m,v)}}),t}var s0=class{constructor(t){this.state=t;this.subscribeMe()}notifyLineAuthoring(t,r){if(this.view===void 0){console.warn(`Git: View is not defined for editor cache key. Unforeseen situation. id: ${t}`);return}let n=this.view.state,i=MT(t,r,n);this.view.dispatch(i)}updateToNewState(t){let r=this.lastSeenPath&&this.filepath!=this.lastSeenPath;return this.state=t,r&&(this.unsubscribeMe(this.lastSeenPath),this.subscribeMe()),this}removeIfStale(){this.view.destroyed&&this.unsubscribeMe(this.lastSeenPath)}subscribeMe(){this.filepath!==void 0&&(Ws.ifFilepathDefinedTransformSubscribers(this.filepath,t=>t.add(this)),this.lastSeenPath=this.filepath)}unsubscribeMe(t){Ws.ifFilepathDefinedTransformSubscribers(t,r=>r.delete(this))}get filepath(){var t,r;return(r=(t=this.state.field(Xf.editorInfoField))==null?void 0:t.file)==null?void 0:r.path}get view(){return this.state.field(Xf.editorEditorField)}},FT=IT.StateField.define({create:e=>new s0(e),update:(e,t)=>e.updateToNewState(t.state),compare:(e,t)=>e===t});g();function $T(){Ys=void 0,o0=[],Zf=0,Jf.clear(),Qf.clear(),Xs.clear()}var Ys,Kf=()=>Ys;function LT(e,t){var i;let r=t.length;if(r<((i=Ys==null?void 0:Ys.length)!=null?i:0))return;Ys={gutter:e,length:r,text:t};let n=Dr.get();r!==n.gutterSpacingFallbackLength&&(n.gutterSpacingFallbackLength=r,Dr.save(n))}var o0=[],nB=15,Zf=0;function DT(e){o0[Zf]=e,Zf=(Zf+1)%nB}function NT(){return uT(o0)}var Jf=new Map,Qf=new Map,Xs=new Set;g();var KT=require("@codemirror/state"),JT=require("@codemirror/view");g();var f0=require("@codemirror/view"),qT=ze(Xg()),rd=require("obsidian");g();g();var ed={x:-10,y:-10};function jT(){ed.x===-10&&window.addEventListener("mousedown",e=>{ed.x=e.clientX,ed.y=e.clientY})}function BT(){for(let e of Xs)if(iB(e,ed))return e}function iB(e,t){let{x:r,y:n,width:i,height:a}=e.getBoundingClientRect();return r<=t.x&&t.x<=r+i&&n<=t.y&&t.y<=n+a}g();var Yl={};var HT="data-commit";function UT(e,t,r){if(t.hasFocus())return;let n=BT();if(!n)return;let i=sB(n);i&&(!i.isZeroCommit&&!i.isWaitingGutter&&aB(i,e),l0("showCommitHash",e),l0("authorDisplay",e),l0("dateTimeFormatOptions",e))}function aB(e,t){t.addItem(r=>r.setTitle("Copy commit hash").setIcon("copy").setSection("obs-git-line-author-copy").onClick(n=>navigator.clipboard.writeText(e.hash)))}function l0(e,t){var c,l;let r,n,i=Yl.plugin.settings.lineAuthor,a=i[e],s=typeof a=="boolean"?a:a!=="hide",o=ar.lineAuthor[e];if(e==="showCommitHash")r="Show commit hash",n=a;else if(e==="authorDisplay"){let u=(c=i.lastShownAuthorDisplay)!=null?c:o;r="Show author "+(s?a:u),n=s?"hide":u}else if(e==="dateTimeFormatOptions"){let u=(l=i.lastShownDateTimeFormatOptions)!=null?l:o;r="Show "+(s?a:u),r+=r.contains("date")?"":" date",n=s?"hide":u}else Oi(e);t.addItem(u=>u.setTitle(r).setSection("obs-git-line-author-configure").setChecked(s).onClick(f=>{var d,h;return(h=(d=Yl.plugin)==null?void 0:d.settingsTab)==null?void 0:h.lineAuthorSettingHandler(e,n)}))}function GT(e,t,r){r.setAttr(HT,JSON.stringify({hash:e.hash,isZeroCommit:e.isZeroCommit,isWaitingGutter:t}))}function sB(e){let t=e.getAttr(HT);return t?JSON.parse(t):void 0}g();function a0(e,t){return e==="oldest"?td(0,!1,t).color:td(void 0,!0,t).color}function td(e,t,r){let n=Yf(r),i=Date.now()/1e3,a=e!=null?e:0,o=(t?0:i-a)/60/60/24,c=Math.pow(Math.clamp(o/n,0,1),1/2.3),l=oB(),u=r.colorNew,f=r.colorOld,d=l?.4:1,h=c0(u.r,f.r,c)*d,p=c0(u.g,f.g,c)*d,m=c0(u.b,f.b,c)*d;return{color:`rgba(${h},${p},${m},${l?.75:.25})`,daysSinceCommit:o}}function c0(e,t,r){return e+(t-e)*r}function oB(){var e;return((e=window.app)==null?void 0:e.getTheme())==="obsidian"}function zT(e){document.body.style.setProperty("--obs-git-gutter-text",e.textColorCss)}g();function VT(e,t,r){let n;for(let i=t;i<=r;i++){let a=e.hashPerLine[i],s=e.commits.get(a);(!n||s.isZeroCommit||lB(s,n))&&(n=s)}return n}function lB(e,t){var i,a,s,o;let r=(a=(i=e.author)==null?void 0:i.epochSeconds)!=null?a:0,n=(o=(s=t.author)==null?void 0:s.epochSeconds)!=null?o:0;return r>n}var WT="-",cB="+",uB=3,fB="*",dB=/\S/g,hB="%",Zs=class e extends f0.GutterMarker{constructor(r){super();this.text=r}eq(r){return r instanceof e&&this.text===r.text}toDOM(){return document.createTextNode(this.text)}destroy(r){document.body.contains(r)||r.remove()}},u0=class extends f0.GutterMarker{constructor(r,n,i,a,s,o){super();this.lineAuthoring=r;this.startLine=n;this.endLine=i;this.key=a;this.settings=s;this.options=o;this.point=!1;this.elementClass="obs-git-blame-gutter"}eq(r){return this.key===(r==null?void 0:r.key)&&this.startLine===(r==null?void 0:r.startLine)&&this.endLine===(r==null?void 0:r.endLine)&&(this==null?void 0:this.options)===(r==null?void 0:r.options)}toDOM(){var r;return this.precomputedDomProvider=(r=this.precomputedDomProvider)!=null?r:this.computeDom(),this.precomputedDomProvider()}destroy(r){document.body.contains(r)||(r.remove(),Xs.delete(r))}computeDom(){let r=VT(this.lineAuthoring,this.startLine,this.endLine),n=r.isZeroCommit?"":this.renderNonZeroCommit(r);return!r.isZeroCommit&&this.options!=="waiting-for-result"?LT(this,n):n=this.adaptTextForFakeCommit(r,n,this.options),this.createHtmlNode(r,n,this.options==="waiting-for-result")}createHtmlNode(r,n,i){var l;let a=window.createDiv();a.innerText=n;let{color:s,daysSinceCommit:o}=td((l=r==null?void 0:r.author)==null?void 0:l.epochSeconds,r==null?void 0:r.isZeroCommit,this.settings);a.style.backgroundColor=s,GT(r,i,a);function c(){let u=a.cloneNode(!0);return Xs.add(u),i||DT(o),u}return c}renderNonZeroCommit(r){let n=this.settings.showCommitHash?this.renderHash(r):"",i=this.settings.authorDisplay==="hide"?"":`${this.renderAuthorName(r,this.settings.authorDisplay)}`,a=this.settings.dateTimeFormatOptions==="hide"?"":`${this.renderAuthoringDate(r,this.settings.dateTimeFormatOptions,this.settings.dateTimeFormatCustomString,this.settings.dateTimeTimezone)}`;return[n,i,a].filter(o=>o.length>=1).join(" ")}renderHash(r){return r.hash.substring(0,6)}renderAuthorName(r,n){var o,c,l,u;let i=(c=(o=r==null?void 0:r.author)==null?void 0:o.name)!=null?c:"",a=i.split(" ").filter(f=>f.length>=1),s;switch(n){case"initials":s=a.map(f=>f[0].toUpperCase()).join("");break;case"first name":s=(l=a.first())!=null?l:WT;break;case"last name":s=(u=a.last())!=null?u:WT;break;case"full":s=i;break;default:return Oi(n)}return fT(r==null?void 0:r.author,r==null?void 0:r.committer)||(s=s+fB),s}renderAuthoringDate(r,n,i,a){var l;let s="?";if(((l=r==null?void 0:r.author)==null?void 0:l.epochSeconds)===void 0)return s;let o;switch(n){case"date":o=Gu;break;case"datetime":o=bm;break;case"custom":o=i;break;case"natural language":o=u=>{let f=u.diff((0,rd.moment)());return rd.moment.duration(f).humanize(!0)};break;default:return Oi(n)}let c=rd.moment.unix(r.author.epochSeconds);switch(a){case"viewer-local":break;case"author-local":c=c.utcOffset(r.author.tz),typeof o=="string"&&(o+=" Z");break;case"utc0000":c=c.utc(),typeof o=="string"&&(o+="[Z]");break;default:return Oi(a)}return typeof o=="string"?c.format(o):o(c)}adaptTextForFakeCommit(r,n,i){var c,l,u,f;let a=(l=(c=Kf())==null?void 0:c.text)!=null?l:n,s=i!=="waiting-for-result"&&r.isZeroCommit?cB:hB;n=a.replace(dB,s);let o=(f=(u=Dr.get())==null?void 0:u.gutterSpacingFallbackLength)!=null?f:n.length;if(n=dT(n,o,s),i!=="waiting-for-result"&&r.isZeroCommit){let d=Math.min(o,uB);n=hT(n,o-d)}return n}};function xa(e,t,r,n,i,a){let s=qT.sha256.create();s.update(Object.values(i).join(",")),s.update(`s${t}-e${r}-k${n}-o${a}`);let o=s.hex(),c=Jf.get(o);if(c)return c;let l=new u0(e,t,r,n,i,a);return Jf.set(o,l),l}g();var YT=require("obsidian");function d0(){var t,r;let e=(r=(t=Dr.get())==null?void 0:t.gutterSpacingFallbackLength)!=null?r:ar.lineAuthor.gutterSpacingFallbackLength;return new Zs(Array(e).fill("-").join(""))}function h0(e){let{lineAuthoring:t,ageForInitialRender:r}=pB(e);return xa(t,1,1,"initialGutter"+r,e,"waiting-for-result")}function pB(e){var a;let t=(a=NT())!=null?a:Yf(e)*.25,r=(0,YT.moment)().add(-t,"days"),n={name:"",epochSeconds:cT(r),tz:"+0000"},i={hash:"waiting-for-result",author:n,committer:n,isZeroCommit:!1};return{lineAuthoring:{hashPerLine:[void 0,"waiting-for-result"],commits:new Map([["waiting-for-result",i]])},ageForInitialRender:t}}g();function XT(e,t){return xa({hashPerLine:[void 0,"000000"],commits:new Map([["000000",wT]])},1,1,e,t)}var p0=new Zs(""),QT=(0,JT.gutter)({class:"line-author-gutter-container",markers(e){let t=e.state.field(qs,!1);return mB(e,t)},lineMarkerChange(e){let t=qf(e.state.field(qs));return qf(e.startState.field(qs))!==t},renderEmptyElements:!0,initialSpacer:e=>(ZT(e),d0()),updateSpacer:(e,t)=>{var r,n;return ZT(t.view),(n=(r=Kf())==null?void 0:r.gutter)!=null?n:d0()}});function mB(e,t){let r=qf(t),n=e.state.doc,i=new Map;for(let u=1;u<=n.lines;u++){let f=n.line(u).from,d=e.lineBlockAt(f).to;i.set(u,[f,d]),r.update([f,d,0])}let a=Dr.get();r.update("s"+Object.values(Dr).join(","));let s=r.hex(),o=Qf.get(s);if(o)return o;let{result:c,allowCache:l}=gB(n,i,a,t);return l&&Qf.set(s,c),c}function gB(e,t,r,n){let i=!0,a=e.lines,s=[];function o(f,d,h){return s.push(h.range(f,d))}let c=vB(a,n),l=e.length===0,u=e.iterLines(a,a+1).next().value==="";for(let f=1;f<=a;f++){let[d,h]=t.get(f),p=e.lineAt(h).number;if(l){o(d,h,p0);continue}if(f===a&&u){o(d,h,p0);continue}if(n===void 0){o(d,h,h0(r)),i=!1;continue}let{key:m,la:v}=n;if(v==="untracked"){o(d,h,XT(v,r));continue}let y=v.hashPerLine.length-1,b=c[f],x=c[p];if(x&&x>y&&o(d,h,p0),b!==void 0&&zg(1,b,y)&&x!==void 0&&zg(1,x,y)){o(d,h,xa(v,b,x,m,r));continue}if(y<1){o(d,h,h0(r)),i=!1;continue}let E=Math.clamp(b!=null?b:f,1,y),_=Math.clamp(x!=null?x:p,1,y);o(d,h,xa(v,E,_,m+"computing",r,"waiting-for-result"))}return{result:KT.RangeSet.of(s,!0),allowCache:i}}function vB(e,t){if(!(t!=null&&t.lineOffsetsFromUnsavedChanges))return Array.from(new Array(e+1),i=>i);let r=[void 0],n=0;for(let i=1;i<=e;i++){let a=t.lineOffsetsFromUnsavedChanges.get(i);n+=a!=null?a:0,r[i]=a===void 0?i-n:void 0}return r}function ZT(e){e.dom.querySelectorAll(".cm-gutters").forEach(r=>{r!=null&&r.style&&(r.style.marginLeft||(r.style.marginLeft="unset"))})}var nd=class{constructor(t){this.plugin=t;this.lineAuthorings=new Map}async trackChanged(t){return this.trackChangedHelper(t).catch(r=>(console.warn("Git: Error in trackChanged."+r),Promise.reject(r)))}async trackChangedHelper(t){if(t){if(t.path===void 0){console.warn("Git: Attempted to track change of undefined filepath. Unforeseen situation.");return}return this.computeLineAuthorInfo(t.path)}}destroy(){this.lineAuthorings.clear(),Ws.clear(),$T()}async computeLineAuthorInfo(t){let r=this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager,n=await r.submoduleAwareHeadRevisonInContainingDirectory(t),i=await r.hashObject(t),a=PT(n,i,t);if(a!==void 0){if(!this.lineAuthorings.has(a)){let s=await r.blame(t,this.plugin.settings.lineAuthor.followMovement,this.plugin.settings.lineAuthor.ignoreWhitespace);this.lineAuthorings.set(a,s)}this.notifyComputationResultToSubscribers(t,a)}}notifyComputationResultToSubscribers(t,r){Ws.ifFilepathDefinedTransformSubscribers(t,n=>n.forEach(i=>i.notifyLineAuthoring(r,this.lineAuthorings.get(r))))}},tC=eC.Prec.high([FT,qs,QT]);var id=class{constructor(t){this.plg=t;this.codeMirrorExtensions=[];this.handleWorkspaceLeaf=t=>{if(!this.lineAuthorInfoProvider){console.warn("Git: undefined lineAuthorInfoProvider. Unexpected situation.");return}let r=t==null?void 0:t.view;!(r instanceof Sa.MarkdownView)||r.file==null||(r==null?void 0:r.allowNoFile)===!0||this.lineAuthorInfoProvider.trackChanged(r.file).catch(console.error)}}onLoadPlugin(){this.plg.registerEditorExtension(this.codeMirrorExtensions),OT(()=>this.plg.settings.lineAuthor,t=>{this.plg.settings.lineAuthor=t,this.plg.saveSettings()})}conditionallyActivateBySettings(){this.plg.settings.lineAuthor.show&&this.activateFeature()}activateFeature(){try{if(!this.isAvailableOnCurrentPlatform().available)return;zT(this.plg.settings.lineAuthor),this.lineAuthorInfoProvider=new nd(this.plg),this.createEventHandlers(),this.activateCodeMirrorExtensions(),console.log(this.plg.manifest.name+": Enabled line authoring.")}catch(t){console.warn("Git: Error while loading line authoring feature.",t),this.deactivateFeature()}}deactivateFeature(){var t;this.destroyEventHandlers(),this.deactivateCodeMirrorExtensions(),(t=this.lineAuthorInfoProvider)==null||t.destroy(),this.lineAuthorInfoProvider=void 0,console.log(this.plg.manifest.name+": Disabled line authoring.")}isAvailableOnCurrentPlatform(){return{available:this.plg.useSimpleGit&&Sa.Platform.isDesktopApp,gitManager:this.plg.gitManager instanceof Te?this.plg.gitManager:void 0}}refreshLineAuthorViews(){this.plg.settings.lineAuthor.show&&(this.deactivateFeature(),this.activateFeature())}activateCodeMirrorExtensions(){this.codeMirrorExtensions.push(tC),this.plg.app.workspace.updateOptions(),this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}deactivateCodeMirrorExtensions(){for(let t of this.codeMirrorExtensions)this.codeMirrorExtensions.remove(t);this.plg.app.workspace.updateOptions()}createEventHandlers(){this.gutterContextMenuEvent=this.createGutterContextMenuHandler(),this.fileOpenEvent=this.createFileOpenEvent(),this.workspaceLeafChangeEvent=this.createWorkspaceLeafChangeEvent(),this.fileModificationEvent=this.createVaultFileModificationHandler(),this.refreshOnCssChangeEvent=this.createCssRefreshHandler(),this.fileRenameEvent=this.createFileRenameEvent(),jT(),this.plg.registerEvent(this.gutterContextMenuEvent),this.plg.registerEvent(this.refreshOnCssChangeEvent),this.plg.registerEvent(this.fileOpenEvent),this.plg.registerEvent(this.workspaceLeafChangeEvent),this.plg.registerEvent(this.fileModificationEvent),this.plg.registerEvent(this.fileRenameEvent)}destroyEventHandlers(){this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.workspace.offref(this.fileOpenEvent),this.plg.app.workspace.offref(this.workspaceLeafChangeEvent),this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.vault.offref(this.fileRenameEvent),this.plg.app.workspace.offref(this.gutterContextMenuEvent)}createFileOpenEvent(){return this.plg.app.workspace.on("file-open",t=>{var r;return void((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(t).catch(console.error))})}createWorkspaceLeafChangeEvent(){return this.plg.app.workspace.on("active-leaf-change",this.handleWorkspaceLeaf)}createFileRenameEvent(){return this.plg.app.vault.on("rename",(t,r)=>{var n;return t instanceof Sa.TFile&&((n=this.lineAuthorInfoProvider)==null?void 0:n.trackChanged(t))})}createVaultFileModificationHandler(){return this.plg.app.vault.on("modify",t=>{var r;return t instanceof Sa.TFile&&((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(t))})}createCssRefreshHandler(){return this.plg.app.workspace.on("css-change",()=>this.refreshLineAuthorViews())}createGutterContextMenuHandler(){return this.plg.app.workspace.on("editor-menu",UT)}};g();var ad=class{constructor(t){this.plugin=t;this.tasks=[]}addTask(t,r){this.tasks.push({task:t,onFinished:r!=null?r:()=>{}}),this.tasks.length===1&&this.handleTask()}handleTask(){if(this.tasks.length>0){let t=this.tasks[0];t.task().then(r=>{t.onFinished(r),this.tasks.shift(),this.handleTask()},r=>{this.plugin.displayError(r),t.onFinished(void 0),this.tasks.shift(),this.handleTask()})}}clear(){this.tasks=[]}};g();var Nr=require("obsidian");var sd=class{constructor(t,r){this.statusBarEl=t;this.plugin=r;this.messages=[];this.base="obsidian-git-statusbar-";this.statusBarEl.setAttribute("data-tooltip-position","top"),r.registerEvent(r.app.workspace.on("obsidian-git:refreshed",()=>{this.refreshCommitTimestamp().catch(console.error)}))}displayMessage(t,r){this.messages.push({message:`Git: ${t.slice(0,100)}`,timeout:r}),this.display()}display(){this.messages.length>0&&!this.currentMessage?(this.currentMessage=this.messages.shift(),this.statusBarEl.addClass(this.base+"message"),this.statusBarEl.ariaLabel="",this.statusBarEl.setText(this.currentMessage.message),this.lastMessageTimestamp=Date.now()):this.currentMessage?Date.now()-this.lastMessageTimestamp>=this.currentMessage.timeout&&(this.currentMessage=null,this.lastMessageTimestamp=null):this.displayState()}displayState(){switch((this.statusBarEl.getText().length>3||!this.statusBarEl.hasChildNodes())&&(this.statusBarEl.empty(),this.conflictEl=this.statusBarEl.createDiv(),this.conflictEl.setAttribute("data-tooltip-position","top"),this.conflictEl.style.float="left",this.iconEl=this.statusBarEl.createDiv(),this.iconEl.style.float="left",this.textEl=this.statusBarEl.createDiv(),this.textEl.style.float="right",this.textEl.style.marginLeft="5px"),this.plugin.localStorage.getConflict()?((0,Nr.setIcon)(this.conflictEl,"alert-circle"),this.conflictEl.ariaLabel="You have merge conflicts. Resolve them and commit afterwards.",this.conflictEl.style.marginRight="5px",this.conflictEl.addClass(this.base+"conflict")):(this.conflictEl.empty(),this.conflictEl.style.marginRight=""),this.plugin.state.gitAction){case 0:this.displayFromNow();break;case 1:this.statusBarEl.ariaLabel="Checking repository status...",(0,Nr.setIcon)(this.iconEl,"refresh-cw"),this.statusBarEl.addClass(this.base+"status");break;case 3:this.statusBarEl.ariaLabel="Adding files...",(0,Nr.setIcon)(this.iconEl,"archive"),this.statusBarEl.addClass(this.base+"add");break;case 4:this.statusBarEl.ariaLabel="Committing changes...",(0,Nr.setIcon)(this.iconEl,"git-commit"),this.statusBarEl.addClass(this.base+"commit");break;case 5:this.statusBarEl.ariaLabel="Pushing changes...",(0,Nr.setIcon)(this.iconEl,"upload"),this.statusBarEl.addClass(this.base+"push");break;case 2:this.statusBarEl.ariaLabel="Pulling changes...",(0,Nr.setIcon)(this.iconEl,"download"),this.statusBarEl.addClass(this.base+"pull");break;default:this.statusBarEl.ariaLabel="Failed on initialization!",(0,Nr.setIcon)(this.iconEl,"alert-triangle"),this.statusBarEl.addClass(this.base+"failed-init");break}}displayFromNow(){var n;let t=this.lastCommitTimestamp,r=this.plugin.state.offlineMode;if(t){let i=(0,Nr.moment)(t).fromNow();this.statusBarEl.ariaLabel=`${r?"Offline: ":""}Last Commit: ${i}`,(n=this.unPushedCommits)!=null&&n&&(this.statusBarEl.ariaLabel+=` +(${this.unPushedCommits} unpushed commits)`)}else this.statusBarEl.ariaLabel=r?"Git is offline":"Git is ready";r?(0,Nr.setIcon)(this.iconEl,"globe"):(0,Nr.setIcon)(this.iconEl,"check"),this.plugin.settings.changedFilesInStatusBar&&this.plugin.cachedStatus&&this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()),this.statusBarEl.addClass(this.base+"idle")}async refreshCommitTimestamp(){this.lastCommitTimestamp=await this.plugin.gitManager.getLastCommitTime(),this.unPushedCommits=await this.plugin.gitManager.getUnpushedCommits()}remove(){this.statusBarEl.remove()}};g();var ld=require("obsidian"),od=class extends ld.SuggestModal{constructor(r){super(r.app);this.plugin=r;this.resolve=null;this.setPlaceholder("Type your message and select optional the version with the added date.")}openAndGetResult(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(r){let n=(0,ld.moment)().format(this.plugin.settings.commitDateFormat);return r==""&&(r="..."),[r,`${n}: ${r}`,`${r}: ${n}`]}renderSuggestion(r,n){n.innerText=r}onChooseSuggestion(r,n){this.resolve&&this.resolve(r)}};g();var rC=require("obsidian"),Xl=class{constructor(t){this.plugin=t}saveLastAuto(t,r){r==="backup"?this.plugin.localStorage.setLastAutoBackup(t.toString()):r==="pull"?this.plugin.localStorage.setLastAutoPull(t.toString()):r==="push"&&this.plugin.localStorage.setLastAutoPush(t.toString())}loadLastAuto(){var t,r,n;return{backup:new Date((t=this.plugin.localStorage.getLastAutoBackup())!=null?t:""),pull:new Date((r=this.plugin.localStorage.getLastAutoPull())!=null?r:""),push:new Date((n=this.plugin.localStorage.getLastAutoPush())!=null?n:"")}}async init(){await this.setUpAutoCommitAndSync();let t=this.loadLastAuto();if(this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0){let r=this.diff(this.plugin.settings.autoPushInterval,t.push);this.startAutoPush(r)}if(this.plugin.settings.autoPullInterval>0){let r=this.diff(this.plugin.settings.autoPullInterval,t.pull);this.startAutoPull(r)}}unload(){this.clearAutoPull(),this.clearAutoPush(),this.clearAutoCommitAndSync()}reload(...t){t.contains("commit")&&(this.clearAutoCommitAndSync(),this.plugin.settings.autoSaveInterval>0&&this.startAutoCommitAndSync(this.plugin.settings.autoSaveInterval)),t.contains("push")&&(this.clearAutoPush(),this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0&&this.startAutoPush(this.plugin.settings.autoPushInterval)),t.contains("pull")&&(this.clearAutoPull(),this.plugin.settings.autoPullInterval>0&&this.startAutoPull(this.plugin.settings.autoPullInterval))}async setUpAutoCommitAndSync(){if(this.plugin.settings.setLastSaveToLastCommit){this.clearAutoCommitAndSync();let t=await this.plugin.gitManager.getLastCommitTime();t&&this.saveLastAuto(t,"backup")}if(!this.timeoutIDCommitAndSync&&!this.plugin.autoCommitDebouncer){let t=this.loadLastAuto();if(this.plugin.settings.autoSaveInterval>0){let r=this.diff(this.plugin.settings.autoSaveInterval,t.backup);this.startAutoCommitAndSync(r)}}}startAutoCommitAndSync(t){let r=(t!=null?t:this.plugin.settings.autoSaveInterval)*6e4;this.plugin.settings.autoBackupAfterFileChange?t===0?this.doAutoCommitAndSync():this.plugin.autoCommitDebouncer=(0,rC.debounce)(()=>this.doAutoCommitAndSync(),r,!0):(r>2147483647&&(r=2147483647),this.timeoutIDCommitAndSync=window.setTimeout(()=>this.doAutoCommitAndSync(),r))}doAutoCommitAndSync(){this.plugin.promiseQueue.addTask(async()=>{if(this.plugin.settings.setLastSaveToLastCommit){let t=await this.plugin.gitManager.getLastCommitTime();if(t){this.saveLastAuto(t,"backup");let r=this.diff(this.plugin.settings.autoSaveInterval,t);if(r>0)return this.startAutoCommitAndSync(r),!1}}return this.plugin.settings.differentIntervalCommitAndPush?await this.plugin.commit({fromAuto:!0}):await this.plugin.commitAndSync(!0),!0},t=>{t!==!1&&(this.saveLastAuto(new Date,"backup"),this.startAutoCommitAndSync())})}startAutoPull(t){let r=(t!=null?t:this.plugin.settings.autoPullInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPull=window.setTimeout(()=>this.doAutoPull(),r)}doAutoPull(){this.plugin.promiseQueue.addTask(()=>this.plugin.pullChangesFromRemote(),()=>{this.saveLastAuto(new Date,"pull"),this.startAutoPull()})}startAutoPush(t){let r=(t!=null?t:this.plugin.settings.autoPushInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPush=window.setTimeout(()=>this.doAutoPush(),r)}doAutoPush(){this.plugin.promiseQueue.addTask(()=>this.plugin.push(),()=>{this.saveLastAuto(new Date,"push"),this.startAutoPush()})}clearAutoCommitAndSync(){var r;let t=!1;return this.timeoutIDCommitAndSync&&(window.clearTimeout(this.timeoutIDCommitAndSync),this.timeoutIDCommitAndSync=void 0,t=!0),this.plugin.autoCommitDebouncer&&((r=this.plugin.autoCommitDebouncer)==null||r.cancel(),this.plugin.autoCommitDebouncer=void 0,t=!0),t}clearAutoPull(){return this.timeoutIDPull?(window.clearTimeout(this.timeoutIDPull),this.timeoutIDPull=void 0,!0):!1}clearAutoPush(){return this.timeoutIDPush?(window.clearTimeout(this.timeoutIDPush),this.timeoutIDPush=void 0,!0):!1}diff(t,r){let i=t-Math.round((new Date().getTime()-r.getTime())/1e3/60);return Math.max(0,i)}};g();var Kl=require("obsidian");g();var Zl=require("obsidian");async function nC(e,t,r){let n=await aC(t,r);if(n.result==="failure"){new Zl.Notice(n.reason);return}let{isGitHub:i,branch:a,repo:s,user:o,filePath:c}=n;if(i){let l=e.getCursor("from").line+1,u=e.getCursor("to").line+1;l===u?window.open(`https://github.com/${o}/${s}/blob/${a}/${c}?plain=1#L${l}`):window.open(`https://github.com/${o}/${s}/blob/${a}/${c}?plain=1#L${l}-L${u}`)}else new Zl.Notice("It seems like you are not using GitHub")}async function iC(e,t){let r=await aC(e,t);if(r.result==="failure"){new Zl.Notice(r.reason);return}let{isGitHub:n,branch:i,repo:a,user:s,filePath:o}=r;n?window.open(`https://github.com/${s}/${a}/commits/${i}/${o}`):new Zl.Notice("It seems like you are not using GitHub")}async function aC(e,t){let r=await t.branchInfo(),n=r.tracking,i=r.current,a,s=t.getRelativeRepoPath(e.path);if(t instanceof Te){let c=await t.getSubmoduleOfFile(t.getRelativeRepoPath(e.path));if(c){s=c.relativeFilepath;let l=await t.git.cwd({path:c.submodule,root:!1}).status();if(n=l.tracking||void 0,i=l.current||void 0,n){let u=n.substring(0,n.indexOf("/")),f=await t.git.cwd({path:c.submodule,root:!1}).getConfig(`remote.${u}.url`,"local");if(f.value!=null)a=f.value;else return{result:"failure",reason:"Failed to get remote url of submodule"}}}}if(n==null)return{result:"failure",reason:"Remote branch is not configured"};if(i==null)return{result:"failure",reason:"Failed to get current branch name"};if(a==null){let c=n.substring(0,n.indexOf("/"));if(a=await t.getConfig(`remote.${c}.url`),a==null)return{result:"failure",reason:"Failed to get remote url"}}let o=a.match(/(?:^https:\/\/github\.com\/(.+)\/(.+?)(?:\.git)?$)|(?:^[a-zA-Z]+@github\.com:(.+)\/(.+?)(?:\.git)?$)/);if(o==null)return{result:"failure",reason:"Could not parse remote url"};{let[c,l,u,f,d]=o;return{result:"success",isGitHub:!!c,repo:u||d,user:l||f,branch:i,filePath:s}}}g();var sC=require("obsidian"),cd=class extends sC.FuzzySuggestModal{constructor(t,r){super(t.app),this.plugin=t,this.changedFiles=r,this.setPlaceholder("Not supported files will be opened by default app!")}getItems(){return this.changedFiles}getItemText(t){if(t.index=="U"&&t.workingDir=="U")return`Untracked | ${t.vaultPath}`;let r="",n="";return t.workingDir!=" "&&(r=`Working Dir: ${t.workingDir} `),t.index!=" "&&(n=`Index: ${t.index}`),`${r}${n} | ${t.vaultPath}`}onChooseItem(t,r){this.plugin.app.metadataCache.getFirstLinkpathDest(t.vaultPath,"")==null?this.app.openWithDefaultApp(t.vaultPath):this.plugin.app.workspace.openLinkText(t.vaultPath,"/")}};g();var oC=require("obsidian"),ud=class extends oC.Modal{constructor(r,n){super(r);this.content=n;this.resolve=null}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onOpen(){let{contentEl:r,titleEl:n}=this;n.setText("Edit .gitignore");let i=r.createDiv(),a=i.createEl("textarea",{text:this.content,cls:["obsidian-git-textarea"],attr:{rows:10,cols:30,wrap:"off"}});i.createEl("button",{cls:["mod-cta","obsidian-git-center-button"],text:"Save"}).addEventListener("click",()=>{this.resolve(a.value),this.close()})}onClose(){let{contentEl:r}=this;r.empty(),this.resolve&&this.resolve(void 0)}};function lC(e){let t=e.app;e.addCommand({id:"edit-gitignore",name:"Edit .gitignore",callback:async()=>{let r=e.gitManager.getRelativeVaultPath(".gitignore");await t.vault.adapter.exists(r)||await t.vault.adapter.write(r,"");let n=await t.vault.adapter.read(r),a=await new ud(t,n).openAndGetReslt();a!==void 0&&(await t.vault.adapter.write(r,a),await e.refresh())}}),e.addCommand({id:"open-git-view",name:"Open source control view",callback:async()=>{var i;let r=t.workspace.getLeavesOfType(St.type),n;r.length===0?(n=(i=t.workspace.getRightLeaf(!1))!=null?i:t.workspace.getLeaf(),await n.setViewState({type:St.type})):n=r.first(),await t.workspace.revealLeaf(n),t.workspace.trigger("obsidian-git:refresh")}}),e.addCommand({id:"open-history-view",name:"Open history view",callback:async()=>{var i;let r=t.workspace.getLeavesOfType($r.type),n;r.length===0?(n=(i=t.workspace.getRightLeaf(!1))!=null?i:t.workspace.getLeaf(),await n.setViewState({type:$r.type})):n=r.first(),await t.workspace.revealLeaf(n),t.workspace.trigger("obsidian-git:refresh")}}),e.addCommand({id:"open-diff-view",name:"Open diff view",checkCallback:r=>{let n=t.workspace.getActiveFile();if(r)return n!==null;{let i=e.gitManager.getRelativeRepoPath(n.path,!0);e.tools.openDiff({aFile:i,aRef:""})}}}),e.addCommand({id:"view-file-on-github",name:"Open file on GitHub",editorCallback:(r,{file:n})=>{if(n)return nC(r,n,e.gitManager)}}),e.addCommand({id:"view-history-on-github",name:"Open file history on GitHub",editorCallback:(r,{file:n})=>{if(n)return iC(n,e.gitManager)}}),e.addCommand({id:"pull",name:"Pull",callback:()=>e.promiseQueue.addTask(()=>e.pullChangesFromRemote())}),e.addCommand({id:"fetch",name:"Fetch",callback:()=>e.promiseQueue.addTask(()=>e.fetch())}),e.addCommand({id:"switch-to-remote-branch",name:"Switch to remote branch",callback:()=>e.promiseQueue.addTask(()=>e.switchRemoteBranch())}),e.addCommand({id:"add-to-gitignore",name:"Add file to .gitignore",checkCallback:r=>{let n=t.workspace.getActiveFile();if(r)return n!==null;e.addFileToGitignore(n.path).catch(i=>e.displayError(i))}}),e.addCommand({id:"push",name:"Commit-and-sync",callback:()=>e.promiseQueue.addTask(()=>e.commitAndSync(!1))}),e.addCommand({id:"backup-and-close",name:"Commit-and-sync and then close Obsidian",callback:()=>e.promiseQueue.addTask(async()=>{await e.commitAndSync(!1),window.close()})}),e.addCommand({id:"commit-push-specified-message",name:"Commit-and-sync with specific message",callback:()=>e.promiseQueue.addTask(()=>e.commitAndSync(!1,!0))}),e.addCommand({id:"commit",name:"Commit all changes",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1}))}),e.addCommand({id:"commit-specified-message",name:"Commit all changes with specific message",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1,requestCustomMessage:!0}))}),e.addCommand({id:"commit-staged",name:"Commit staged",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1,requestCustomMessage:!1,onlyStaged:!0}))}),Kl.Platform.isDesktopApp&&e.addCommand({id:"commit-amend-staged-specified-message",name:"Amend staged",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0,amend:!0}))}),e.addCommand({id:"commit-staged-specified-message",name:"Commit staged with specific message",callback:()=>e.promiseQueue.addTask(()=>e.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0}))}),e.addCommand({id:"push2",name:"Push",callback:()=>e.promiseQueue.addTask(()=>e.push())}),e.addCommand({id:"stage-current-file",name:"Stage current file",checkCallback:r=>{let n=t.workspace.getActiveFile();if(r)return n!==null;e.promiseQueue.addTask(()=>e.stageFile(n))}}),e.addCommand({id:"unstage-current-file",name:"Unstage current file",checkCallback:r=>{let n=t.workspace.getActiveFile();if(r)return n!==null;e.promiseQueue.addTask(()=>e.unstageFile(n))}}),e.addCommand({id:"edit-remotes",name:"Edit remotes",callback:()=>e.editRemotes().catch(r=>e.displayError(r))}),e.addCommand({id:"remove-remote",name:"Remove remote",callback:()=>e.removeRemote().catch(r=>e.displayError(r))}),e.addCommand({id:"set-upstream-branch",name:"Set upstream branch",callback:()=>e.setUpstreamBranch().catch(r=>e.displayError(r))}),e.addCommand({id:"delete-repo",name:"CAUTION: Delete repository",callback:async()=>{await t.vault.adapter.exists(`${e.settings.basePath}/.git`)?await new Fe(e,{options:["NO","YES"],placeholder:"Do you really want to delete the repository (.git directory)? plugin action cannot be undone.",onlySelection:!0}).openAndGetResult()==="YES"&&(await t.vault.adapter.rmdir(`${e.settings.basePath}/.git`,!0),new Kl.Notice("Successfully deleted repository. Reloading plugin..."),e.unloadPlugin(),await e.init({fromReload:!0})):new Kl.Notice("No repository found")}}),e.addCommand({id:"init-repo",name:"Initialize a new repo",callback:()=>e.createNewRepo().catch(r=>e.displayError(r))}),e.addCommand({id:"clone-repo",name:"Clone an existing remote repo",callback:()=>e.cloneNewRepo().catch(r=>e.displayError(r))}),e.addCommand({id:"list-changed-files",name:"List changed files",callback:async()=>{if(await e.isAllInitialized())try{let r=await e.updateCachedStatus();if(r.changed.length+r.staged.length>500){e.displayError("Too many changes to display");return}new cd(e,r.all).open()}catch(r){e.displayError(r)}}}),e.addCommand({id:"switch-branch",name:"Switch branch",callback:()=>{e.switchBranch().catch(r=>e.displayError(r))}}),e.addCommand({id:"create-branch",name:"Create new branch",callback:()=>{e.createBranch().catch(r=>e.displayError(r))}}),e.addCommand({id:"delete-branch",name:"Delete branch",callback:()=>{e.deleteBranch().catch(r=>e.displayError(r))}}),e.addCommand({id:"discard-all",name:"CAUTION: Discard all changes",callback:async()=>{if(!await e.isAllInitialized())return!1;await new Fe(e,{options:["NO","YES"],placeholder:"Do you want to discard all changes to tracked files? plugin action cannot be undone.",onlySelection:!0}).openAndGetResult()==="YES"&&e.promiseQueue.addTask(()=>e.discardAll())}}),e.addCommand({id:"raw-command",name:"Raw command",checkCallback:r=>{let n=e.gitManager;if(r)return n instanceof Te;e.tools.runRawCommand().catch(i=>e.displayError(i))}}),e.addCommand({id:"toggle-line-author-info",name:"Toggle line author information",callback:()=>{var r;return(r=e.settingsTab)==null?void 0:r.configureLineAuthorShowStatus(!e.settings.lineAuthor.show)}})}g();var fd=class{constructor(t){this.plugin=t;this.prefix=this.plugin.manifest.id+":",this.app=t.app}migrate(){let t=["password","hostname","conflict","lastAutoPull","lastAutoBackup","lastAutoPush","gitPath","pluginDisabled"];for(let r of t){let n=localStorage.getItem(this.prefix+r);this.app.loadLocalStorage(this.prefix+r)==null&&n!=null&&n!=null&&(this.app.saveLocalStorage(this.prefix+r,n),localStorage.removeItem(this.prefix+r))}}getPassword(){return this.app.loadLocalStorage(this.prefix+"password")}setPassword(t){return this.app.saveLocalStorage(this.prefix+"password",t)}getUsername(){return this.app.loadLocalStorage(this.prefix+"username")}setUsername(t){return this.app.saveLocalStorage(this.prefix+"username",t)}getHostname(){return this.app.loadLocalStorage(this.prefix+"hostname")}setHostname(t){return this.app.saveLocalStorage(this.prefix+"hostname",t)}getConflict(){return this.app.loadLocalStorage(this.prefix+"conflict")=="true"}setConflict(t){return this.app.saveLocalStorage(this.prefix+"conflict",`${t}`)}getLastAutoPull(){return this.app.loadLocalStorage(this.prefix+"lastAutoPull")}setLastAutoPull(t){return this.app.saveLocalStorage(this.prefix+"lastAutoPull",t)}getLastAutoBackup(){return this.app.loadLocalStorage(this.prefix+"lastAutoBackup")}setLastAutoBackup(t){return this.app.saveLocalStorage(this.prefix+"lastAutoBackup",t)}getLastAutoPush(){return this.app.loadLocalStorage(this.prefix+"lastAutoPush")}setLastAutoPush(t){return this.app.saveLocalStorage(this.prefix+"lastAutoPush",t)}getGitPath(){return this.app.loadLocalStorage(this.prefix+"gitPath")}setGitPath(t){return this.app.saveLocalStorage(this.prefix+"gitPath",t)}getPATHPaths(){var t,r;return(r=(t=this.app.loadLocalStorage(this.prefix+"PATHPaths"))==null?void 0:t.split(":"))!=null?r:[]}setPATHPaths(t){return this.app.saveLocalStorage(this.prefix+"PATHPaths",t.join(":"))}getEnvVars(){var t;return JSON.parse((t=this.app.loadLocalStorage(this.prefix+"envVars"))!=null?t:"[]")}setEnvVars(t){return this.app.saveLocalStorage(this.prefix+"envVars",JSON.stringify(t))}getPluginDisabled(){return this.app.loadLocalStorage(this.prefix+"pluginDisabled")=="true"}setPluginDisabled(t){return this.app.saveLocalStorage(this.prefix+"pluginDisabled",`${t}`)}};g();g();g();g();var He;(function(e){e.INSERT="insert",e.DELETE="delete",e.CONTEXT="context"})(He||(He={}));var cC={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"},uC={LINES:"lines",WORDS:"words",NONE:"none"},fC={WORD:"word",CHAR:"char"},Ea;(function(e){e.AUTO="auto",e.DARK="dark",e.LIGHT="light"})(Ea||(Ea={}));g();var yB=["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"],wB=RegExp("["+yB.join("\\")+"]","g");function dC(e){return e.replace(wB,"\\$&")}function m0(e){return e&&e.replace(/\\/g,"/")}function hC(e){let t,r,n,i=0;for(t=0,n=e.length;t1?r[r.length-1]:t}function mC(e,t){return t.reduce((r,n)=>r||e.startsWith(n),!1)}var gC=["a/","b/","i/","w/","c/","o/"];function $i(e,t,r){let n=r!==void 0?[...gC,r]:gC,i=t?new RegExp(`^${dC(t)} "?(.+?)"?$`):new RegExp('^"?(.+?)"?$'),[,a=""]=i.exec(e)||[],s=n.find(c=>a.indexOf(c)===0);return(s?a.slice(s.length):a).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}function bB(e,t){return $i(e,"---",t)}function _B(e,t){return $i(e,"+++",t)}function vC(e,t={}){let r=[],n=null,i=null,a=null,s=null,o=null,c=null,l=null,u="--- ",f="+++ ",d="@@",h=/^old mode (\d{6})/,p=/^new mode (\d{6})/,m=/^deleted file mode (\d{6})/,v=/^new file mode (\d{6})/,y=/^copy from "?(.+)"?/,b=/^copy to "?(.+)"?/,x=/^rename from "?(.+)"?/,E=/^rename to "?(.+)"?/,_=/^similarity index (\d+)%/,k=/^dissimilarity index (\d+)%/,w=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,A=/^Binary files (.*) and (.*) differ/,S=/^GIT binary patch/,T=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,P=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,O=/^new file mode (\d{6})/,j=/^deleted file mode (\d{6}),(\d{6})/,D=e.replace(/\\ No newline at end of file/g,"").replace(/\r\n?/g,` `).split(` -`);function Q(){i!==null&&n!==null&&(n.blocks.push(i),i=null)}function de(){n!==null&&(!n.oldName&&c!==null&&(n.oldName=c),!n.newName&&l!==null&&(n.newName=l),n.newName&&(r.push(n),n=null)),c=null,l=null}function ee(){Q(),de(),n={blocks:[],deletedLines:0,addedLines:0}}function J(F){Q();let z;n!==null&&((z=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(F))?(n.isCombined=!1,a=parseInt(z[1],10),o=parseInt(z[2],10)):(z=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(F))?(n.isCombined=!0,a=parseInt(z[1],10),s=parseInt(z[2],10),o=parseInt(z[3],10)):(F.startsWith(d)&&console.error("Failed to parse lines, starting in 0!"),a=0,o=0,n.isCombined=!1)),i={lines:[],oldStartLine:a,oldStartLine2:s,newStartLine:o,header:F}}function Pe(F){if(n===null||i===null||a===null||o===null)return;let z={content:F},N=n.isCombined?["+ "," +","++"]:["+"],Me=n.isCombined?["- "," -","--"]:["-"];mC(F,N)?(n.addedLines++,z.type=He.INSERT,z.oldNumber=void 0,z.newNumber=o++):mC(F,Me)?(n.deletedLines++,z.type=He.DELETE,z.oldNumber=a++,z.newNumber=void 0):(z.type=He.CONTEXT,z.oldNumber=a++,z.newNumber=o++),i.lines.push(z)}function me(F,z){let N=z;for(;N{if(!F||F.startsWith("*"))return;let N,Me=D[z-1],Dt=D[z+1],_t=D[z+2];if(F.startsWith("diff --git")||F.startsWith("diff --combined")){if(ee(),(N=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(F))&&(c=$i(N[1],void 0,t.dstPrefix),l=$i(N[2],void 0,t.srcPrefix)),n===null)throw new Error("Where is my file !!!");n.isGitDiff=!0;return}if(F.startsWith("Binary files")&&!(n!=null&&n.isGitDiff)){if(ee(),(N=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(F))&&(c=$i(N[1],void 0,t.dstPrefix),l=$i(N[2],void 0,t.srcPrefix)),n===null)throw new Error("Where is my file !!!");n.isBinary=!0;return}if((!n||!n.isGitDiff&&n&&F.startsWith(u)&&Dt.startsWith(f)&&_t.startsWith(d))&&ee(),n!=null&&n.isTooBig)return;if(n&&(typeof t.diffMaxChanges=="number"&&n.addedLines+n.deletedLines>t.diffMaxChanges||typeof t.diffMaxLineLength=="number"&&F.length>t.diffMaxLineLength)){n.isTooBig=!0,n.addedLines=0,n.deletedLines=0,n.blocks=[],i=null;let st=typeof t.diffTooBigMessage=="function"?t.diffTooBigMessage(r.length):"Diff too big to be displayed";J(st);return}if(F.startsWith(u)&&Dt.startsWith(f)||F.startsWith(f)&&Me.startsWith(u)){if(n&&!n.oldName&&F.startsWith("--- ")&&(N=bB(F,t.srcPrefix))){n.oldName=N,n.language=pC(n.oldName,n.language);return}if(n&&!n.newName&&F.startsWith("+++ ")&&(N=_B(F,t.dstPrefix))){n.newName=N,n.language=pC(n.newName,n.language);return}}if(n&&(F.startsWith(d)||n.isGitDiff&&n.oldName&&n.newName&&!i)){J(F);return}if(i&&(F.startsWith("+")||F.startsWith("-")||F.startsWith(" "))){Pe(F);return}let Ee=!me(F,z);if(n===null)throw new Error("Where is my file !!!");(N=h.exec(F))?n.oldMode=N[1]:(N=p.exec(F))?n.newMode=N[1]:(N=m.exec(F))?(n.deletedFileMode=N[1],n.isDeleted=!0):(N=v.exec(F))?(n.newFileMode=N[1],n.isNew=!0):(N=y.exec(F))?(Ee&&(n.oldName=N[1]),n.isCopy=!0):(N=b.exec(F))?(Ee&&(n.newName=N[1]),n.isCopy=!0):(N=x.exec(F))?(Ee&&(n.oldName=N[1]),n.isRename=!0):(N=E.exec(F))?(Ee&&(n.newName=N[1]),n.isRename=!0):(N=A.exec(F))?(n.isBinary=!0,n.oldName=$i(N[1],void 0,t.srcPrefix),n.newName=$i(N[2],void 0,t.dstPrefix),J("Binary file")):S.test(F)?(n.isBinary=!0,J(F)):(N=_.exec(F))?n.unchangedPercentage=parseInt(N[1],10):(N=k.exec(F))?n.changedPercentage=parseInt(N[1],10):(N=w.exec(F))?(n.checksumBefore=N[1],n.checksumAfter=N[2],N[3]&&(n.mode=N[3])):(N=T.exec(F))?(n.checksumBefore=[N[2],N[3]],n.checksumAfter=N[1]):(N=P.exec(F))?(n.oldMode=[N[2],N[3]],n.newMode=N[1]):(N=O.exec(F))?(n.newFileMode=N[1],n.isNew=!0):(N=j.exec(F))&&(n.deletedFileMode=N[1],n.isDeleted=!0)}),Q(),de(),r}g();g();g();function Kn(){}Kn.prototype={diff:function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=n.callback;typeof n=="function"&&(i=n,n={}),this.options=n;var a=this;function s(m){return i?(setTimeout(function(){i(void 0,m)},0),!0):m}t=this.castInput(t),r=this.castInput(r),t=this.removeEmpty(this.tokenize(t)),r=this.removeEmpty(this.tokenize(r));var o=r.length,c=t.length,l=1,u=o+c;n.maxEditLength&&(u=Math.min(u,n.maxEditLength));var f=[{newPos:-1,components:[]}],d=this.extractCommon(f[0],r,t,0);if(f[0].newPos+1>=o&&d+1>=c)return s([{value:this.join(r),count:r.length}]);function h(){for(var m=-1*l;m<=l;m+=2){var v=void 0,y=f[m-1],b=f[m+1],x=(b?b.newPos:0)-m;y&&(f[m-1]=void 0);var E=y&&y.newPos+1=o&&x+1>=c)return s(SB(a,v.components,r,t,a.useLongestToken));f[m]=v}l++}if(i)(function m(){setTimeout(function(){if(l>u)return i();h()||m()},0)})();else for(;l<=u;){var p=h();if(p)return p}},pushComponent:function(t,r,n){var i=t[t.length-1];i&&i.added===r&&i.removed===n?t[t.length-1]={count:i.count+1,added:r,removed:n}:t.push({count:1,added:r,removed:n})},extractCommon:function(t,r,n,i){for(var a=r.length,s=n.length,o=t.newPos,c=o-i,l=0;o+1h.length?m:h}),l.value=e.join(u)}else l.value=e.join(r.slice(o,o+l.count));o+=l.count,l.added||(c+=l.count)}}var d=t[s-1];return s>1&&typeof d.value=="string"&&(d.added||d.removed)&&e.equals("",d.value)&&(t[s-2].value+=d.value,t.pop()),t}function EB(e){return{newPos:e.newPos,components:e.components.slice(0)}}var AB=new Kn;function bC(e,t,r){return AB.diff(e,t,r)}var yC=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,wC=/\S/,w0=new Kn;w0.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!wC.test(e)&&!wC.test(t)};w0.tokenize=function(e){for(var t=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r{let n=e(t).trim(),i=e(r).trim();return RB(n,i)/(n.length+i.length)}}function Qs(e){function t(n,i,a=new Map){let s=1/0,o;for(let c=0;c0||o.indexB>0)&&(x=v.concat(x)),(n.length>d||i.length>h)&&(x=x.concat(b)),x}return r}var Et={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info",INSERT_CHANGES:"d2h-ins d2h-change",DELETE_CHANGES:"d2h-del d2h-change"},Aa={matching:uC.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:fC.WORD,colorScheme:Ea.LIGHT},Cn="/",SC=Js(e=>e.value),MB=Qs(SC);function _0(e){return e.indexOf("dev/null")!==-1}function OB(e){return e.replace(/(]*>((.|\n)*?)<\/ins>)/g,"")}function IB(e){return e.replace(/(]*>((.|\n)*?)<\/del>)/g,"")}function eo(e){switch(e){case He.CONTEXT:return Et.CONTEXT;case He.INSERT:return Et.INSERTS;case He.DELETE:return Et.DELETES}}function to(e){switch(e){case Ea.DARK:return"d2h-dark-color-scheme";case Ea.AUTO:return"d2h-auto-color-scheme";case Ea.LIGHT:default:return"d2h-light-color-scheme"}}function FB(e){return e?2:1}function Li(e){return e.slice(0).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function Nr(e,t,r=!0){let n=FB(t);return{prefix:e.substring(0,n),content:r?Li(e.substring(n)):e.substring(n)}}function ka(e){let t=g0(e.oldName),r=g0(e.newName);if(t!==r&&!_0(t)&&!_0(r)){let n=[],i=[],a=t.split(Cn),s=r.split(Cn),o=a.length,c=s.length,l=0,u=o-1,f=c-1;for(;ll&&f>l&&a[u]===s[f];)i.unshift(s[f]),u-=1,f-=1;let d=n.join(Cn),h=i.join(Cn),p=a.slice(l,u+1).join(Cn),m=s.slice(l,f+1).join(Cn);return d.length&&h.length?d+Cn+"{"+p+" \u2192 "+m+"}"+Cn+h:d.length?d+Cn+"{"+p+" \u2192 "+m+"}":h.length?"{"+p+" \u2192 "+m+"}"+Cn+h:t+" \u2192 "+r}else return _0(r)?t:r}function ro(e){return`d2h-${hC(ka(e)).toString().slice(-6)}`}function no(e){let t="file-changed";return e.isRename||e.isCopy?t="file-renamed":e.isNew?t="file-added":e.isDeleted?t="file-deleted":e.newName!==e.oldName&&(t="file-renamed"),t}function pd(e,t,r,n={}){let{matching:i,maxLineLengthHighlight:a,matchWordsThreshold:s,diffStyle:o}=Object.assign(Object.assign({},Aa),n),c=Nr(e,r,!1),l=Nr(t,r,!1);if(c.content.length>a||l.content.length>a)return{oldLine:{prefix:c.prefix,content:Li(c.content)},newLine:{prefix:l.prefix,content:Li(l.content)}};let u=o==="char"?bC(c.content,l.content):_C(c.content,l.content),f=[];if(o==="word"&&i==="words"){let h=u.filter(v=>v.removed),p=u.filter(v=>v.added);MB(p,h).forEach(v=>{v[0].length===1&&v[1].length===1&&SC(v[0][0],v[1][0]){let m=p.added?"ins":p.removed?"del":null,v=f.indexOf(p)>-1?' class="d2h-change"':"",y=Li(p.value);return m!==null?`${h}<${m}${v}>${y}`:`${h}${y}`},"");return{oldLine:{prefix:c.prefix,content:OB(d)},newLine:{prefix:l.prefix,content:IB(d)}}}var EC="file-summary",$B="icon",LB={colorScheme:Aa.colorScheme},md=class{constructor(t,r={}){this.hoganUtils=t,this.config=Object.assign(Object.assign({},LB),r)}render(t){let r=t.map(n=>this.hoganUtils.render(EC,"line",{fileHtmlId:ro(n),oldName:n.oldName,newName:n.newName,fileName:ka(n),deletedLines:"-"+n.deletedLines,addedLines:"+"+n.addedLines},{fileIcon:this.hoganUtils.template($B,no(n))})).join(` -`);return this.hoganUtils.render(EC,"wrapper",{colorScheme:to(this.config.colorScheme),filesNumber:t.length,files:r})}};g();var S0=Object.assign(Object.assign({},Aa),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),ec="generic",AC="line-by-line",DB="icon",NB="tag",tc=class{constructor(t,r={}){this.hoganUtils=t,this.config=Object.assign(Object.assign({},S0),r)}render(t){let r=t.map(n=>{let i;return n.blocks.length?i=this.generateFileHtml(n):i=this.generateEmptyDiff(),this.makeFileDiffHtml(n,i)}).join(` -`);return this.hoganUtils.render(ec,"wrapper",{colorScheme:to(this.config.colorScheme),content:r})}makeFileDiffHtml(t,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(t.blocks)&&t.blocks.length===0)return"";let n=this.hoganUtils.template(AC,"file-diff"),i=this.hoganUtils.template(ec,"file-path"),a=this.hoganUtils.template(DB,"file"),s=this.hoganUtils.template(NB,no(t));return n.render({file:t,fileHtmlId:ro(t),diffs:r,filePath:i.render({fileDiffName:ka(t)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return this.hoganUtils.render(ec,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:Et})}generateFileHtml(t){let r=Qs(Js(n=>Nr(n.content,t.isCombined).content));return t.blocks.map(n=>{let i=this.hoganUtils.render(ec,"block-header",{CSSLineClass:Et,blockHeader:t.isTooBig?n.header:Li(n.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return this.applyLineGroupping(n).forEach(([a,s,o])=>{if(s.length&&o.length&&!a.length)this.applyRematchMatching(s,o,r).map(([c,l])=>{let{left:u,right:f}=this.processChangedLines(t,t.isCombined,c,l);i+=u,i+=f});else if(a.length)a.forEach(c=>{let{prefix:l,content:u}=Nr(c.content,t.isCombined);i+=this.generateSingleLineHtml(t,{type:Et.CONTEXT,prefix:l,content:u,oldNumber:c.oldNumber,newNumber:c.newNumber})});else if(s.length||o.length){let{left:c,right:l}=this.processChangedLines(t,t.isCombined,s,o);i+=c,i+=l}else console.error("Unknown state reached while processing groups of lines",a,s,o)}),i}).join(` -`)}applyLineGroupping(t){let r=[],n=[],i=[];for(let a=0;a0)&&(r.push([[],n,i]),n=[],i=[]),s.type===He.CONTEXT?r.push([[s],[],[]]):s.type===He.INSERT&&n.length===0?r.push([[],[],[s]]):s.type===He.INSERT&&n.length>0?i.push(s):s.type===He.DELETE&&n.push(s)}return(n.length||i.length)&&(r.push([[],n,i]),n=[],i=[]),r}applyRematchMatching(t,r,n){let i=t.length*r.length,a=Math.max.apply(null,[0].concat(t.concat(r).map(o=>o.content.length)));return i{let i;return n.blocks.length?i=this.generateFileHtml(n):i=this.generateEmptyDiff(),this.makeFileDiffHtml(n,i)}).join(` -`);return this.hoganUtils.render(rc,"wrapper",{colorScheme:to(this.config.colorScheme),content:r})}makeFileDiffHtml(t,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(t.blocks)&&t.blocks.length===0)return"";let n=this.hoganUtils.template(jB,"file-diff"),i=this.hoganUtils.template(rc,"file-path"),a=this.hoganUtils.template(BB,"file"),s=this.hoganUtils.template(HB,no(t));return n.render({file:t,fileHtmlId:ro(t),diffs:r,filePath:i.render({fileDiffName:ka(t)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return{right:"",left:this.hoganUtils.render(rc,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:Et})}}generateFileHtml(t){let r=Qs(Js(n=>Nr(n.content,t.isCombined).content));return t.blocks.map(n=>{let i={left:this.makeHeaderHtml(n.header,t),right:this.makeHeaderHtml("")};return this.applyLineGroupping(n).forEach(([a,s,o])=>{if(s.length&&o.length&&!a.length)this.applyRematchMatching(s,o,r).map(([c,l])=>{let{left:u,right:f}=this.processChangedLines(t.isCombined,c,l);i.left+=u,i.right+=f});else if(a.length)a.forEach(c=>{let{prefix:l,content:u}=Nr(c.content,t.isCombined),{left:f,right:d}=this.generateLineHtml({type:Et.CONTEXT,prefix:l,content:u,number:c.oldNumber},{type:Et.CONTEXT,prefix:l,content:u,number:c.newNumber});i.left+=f,i.right+=d});else if(s.length||o.length){let{left:c,right:l}=this.processChangedLines(t.isCombined,s,o);i.left+=c,i.right+=l}else console.error("Unknown state reached while processing groups of lines",a,s,o)}),i}).reduce((n,i)=>({left:n.left+i.left,right:n.right+i.right}),{left:"",right:""})}applyLineGroupping(t){let r=[],n=[],i=[];for(let a=0;a0)&&(r.push([[],n,i]),n=[],i=[]),s.type===He.CONTEXT?r.push([[s],[],[]]):s.type===He.INSERT&&n.length===0?r.push([[],[],[s]]):s.type===He.INSERT&&n.length>0?i.push(s):s.type===He.DELETE&&n.push(s)}return(n.length||i.length)&&(r.push([[],n,i]),n=[],i=[]),r}applyRematchMatching(t,r,n){let i=t.length*r.length,a=Math.max.apply(null,[0].concat(t.concat(r).map(o=>o.content.length)));return i'),n.b(` +`);function Q(){i!==null&&n!==null&&(n.blocks.push(i),i=null)}function de(){n!==null&&(!n.oldName&&c!==null&&(n.oldName=c),!n.newName&&l!==null&&(n.newName=l),n.newName&&(r.push(n),n=null)),c=null,l=null}function ee(){Q(),de(),n={blocks:[],deletedLines:0,addedLines:0}}function J(F){Q();let G;n!==null&&((G=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(F))?(n.isCombined=!1,a=parseInt(G[1],10),o=parseInt(G[2],10)):(G=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(F))?(n.isCombined=!0,a=parseInt(G[1],10),s=parseInt(G[2],10),o=parseInt(G[3],10)):(F.startsWith(d)&&console.error("Failed to parse lines, starting in 0!"),a=0,o=0,n.isCombined=!1)),i={lines:[],oldStartLine:a,oldStartLine2:s,newStartLine:o,header:F}}function Pe(F){if(n===null||i===null||a===null||o===null)return;let G={content:F},N=n.isCombined?["+ "," +","++"]:["+"],Me=n.isCombined?["- "," -","--"]:["-"];mC(F,N)?(n.addedLines++,G.type=He.INSERT,G.oldNumber=void 0,G.newNumber=o++):mC(F,Me)?(n.deletedLines++,G.type=He.DELETE,G.oldNumber=a++,G.newNumber=void 0):(G.type=He.CONTEXT,G.oldNumber=a++,G.newNumber=o++),i.lines.push(G)}function me(F,G){let N=G;for(;N{if(!F||F.startsWith("*"))return;let N,Me=D[G-1],Dt=D[G+1],_t=D[G+2];if(F.startsWith("diff --git")||F.startsWith("diff --combined")){if(ee(),(N=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(F))&&(c=$i(N[1],void 0,t.dstPrefix),l=$i(N[2],void 0,t.srcPrefix)),n===null)throw new Error("Where is my file !!!");n.isGitDiff=!0;return}if(F.startsWith("Binary files")&&!(n!=null&&n.isGitDiff)){if(ee(),(N=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(F))&&(c=$i(N[1],void 0,t.dstPrefix),l=$i(N[2],void 0,t.srcPrefix)),n===null)throw new Error("Where is my file !!!");n.isBinary=!0;return}if((!n||!n.isGitDiff&&n&&F.startsWith(u)&&Dt.startsWith(f)&&_t.startsWith(d))&&ee(),n!=null&&n.isTooBig)return;if(n&&(typeof t.diffMaxChanges=="number"&&n.addedLines+n.deletedLines>t.diffMaxChanges||typeof t.diffMaxLineLength=="number"&&F.length>t.diffMaxLineLength)){n.isTooBig=!0,n.addedLines=0,n.deletedLines=0,n.blocks=[],i=null;let st=typeof t.diffTooBigMessage=="function"?t.diffTooBigMessage(r.length):"Diff too big to be displayed";J(st);return}if(F.startsWith(u)&&Dt.startsWith(f)||F.startsWith(f)&&Me.startsWith(u)){if(n&&!n.oldName&&F.startsWith("--- ")&&(N=bB(F,t.srcPrefix))){n.oldName=N,n.language=pC(n.oldName,n.language);return}if(n&&!n.newName&&F.startsWith("+++ ")&&(N=_B(F,t.dstPrefix))){n.newName=N,n.language=pC(n.newName,n.language);return}}if(n&&(F.startsWith(d)||n.isGitDiff&&n.oldName&&n.newName&&!i)){J(F);return}if(i&&(F.startsWith("+")||F.startsWith("-")||F.startsWith(" "))){Pe(F);return}let Ee=!me(F,G);if(n===null)throw new Error("Where is my file !!!");(N=h.exec(F))?n.oldMode=N[1]:(N=p.exec(F))?n.newMode=N[1]:(N=m.exec(F))?(n.deletedFileMode=N[1],n.isDeleted=!0):(N=v.exec(F))?(n.newFileMode=N[1],n.isNew=!0):(N=y.exec(F))?(Ee&&(n.oldName=N[1]),n.isCopy=!0):(N=b.exec(F))?(Ee&&(n.newName=N[1]),n.isCopy=!0):(N=x.exec(F))?(Ee&&(n.oldName=N[1]),n.isRename=!0):(N=E.exec(F))?(Ee&&(n.newName=N[1]),n.isRename=!0):(N=A.exec(F))?(n.isBinary=!0,n.oldName=$i(N[1],void 0,t.srcPrefix),n.newName=$i(N[2],void 0,t.dstPrefix),J("Binary file")):S.test(F)?(n.isBinary=!0,J(F)):(N=_.exec(F))?n.unchangedPercentage=parseInt(N[1],10):(N=k.exec(F))?n.changedPercentage=parseInt(N[1],10):(N=w.exec(F))?(n.checksumBefore=N[1],n.checksumAfter=N[2],N[3]&&(n.mode=N[3])):(N=T.exec(F))?(n.checksumBefore=[N[2],N[3]],n.checksumAfter=N[1]):(N=P.exec(F))?(n.oldMode=[N[2],N[3]],n.newMode=N[1]):(N=O.exec(F))?(n.newFileMode=N[1],n.isNew=!0):(N=j.exec(F))&&(n.deletedFileMode=N[1],n.isDeleted=!0)}),Q(),de(),r}g();g();g();function Kn(){}Kn.prototype={diff:function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=n.callback;typeof n=="function"&&(i=n,n={}),this.options=n;var a=this;function s(m){return i?(setTimeout(function(){i(void 0,m)},0),!0):m}t=this.castInput(t),r=this.castInput(r),t=this.removeEmpty(this.tokenize(t)),r=this.removeEmpty(this.tokenize(r));var o=r.length,c=t.length,l=1,u=o+c;n.maxEditLength&&(u=Math.min(u,n.maxEditLength));var f=[{newPos:-1,components:[]}],d=this.extractCommon(f[0],r,t,0);if(f[0].newPos+1>=o&&d+1>=c)return s([{value:this.join(r),count:r.length}]);function h(){for(var m=-1*l;m<=l;m+=2){var v=void 0,y=f[m-1],b=f[m+1],x=(b?b.newPos:0)-m;y&&(f[m-1]=void 0);var E=y&&y.newPos+1=o&&x+1>=c)return s(SB(a,v.components,r,t,a.useLongestToken));f[m]=v}l++}if(i)(function m(){setTimeout(function(){if(l>u)return i();h()||m()},0)})();else for(;l<=u;){var p=h();if(p)return p}},pushComponent:function(t,r,n){var i=t[t.length-1];i&&i.added===r&&i.removed===n?t[t.length-1]={count:i.count+1,added:r,removed:n}:t.push({count:1,added:r,removed:n})},extractCommon:function(t,r,n,i){for(var a=r.length,s=n.length,o=t.newPos,c=o-i,l=0;o+1h.length?m:h}),l.value=e.join(u)}else l.value=e.join(r.slice(o,o+l.count));o+=l.count,l.added||(c+=l.count)}}var d=t[s-1];return s>1&&typeof d.value=="string"&&(d.added||d.removed)&&e.equals("",d.value)&&(t[s-2].value+=d.value,t.pop()),t}function EB(e){return{newPos:e.newPos,components:e.components.slice(0)}}var AB=new Kn;function bC(e,t,r){return AB.diff(e,t,r)}var yC=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,wC=/\S/,y0=new Kn;y0.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!wC.test(e)&&!wC.test(t)};y0.tokenize=function(e){for(var t=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r{let n=e(t).trim(),i=e(r).trim();return RB(n,i)/(n.length+i.length)}}function Js(e){function t(n,i,a=new Map){let s=1/0,o;for(let c=0;c0||o.indexB>0)&&(x=v.concat(x)),(n.length>d||i.length>h)&&(x=x.concat(b)),x}return r}var Et={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info",INSERT_CHANGES:"d2h-ins d2h-change",DELETE_CHANGES:"d2h-del d2h-change"},Aa={matching:uC.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:fC.WORD,colorScheme:Ea.LIGHT},Cn="/",SC=Ks(e=>e.value),MB=Js(SC);function b0(e){return e.indexOf("dev/null")!==-1}function OB(e){return e.replace(/(]*>((.|\n)*?)<\/ins>)/g,"")}function IB(e){return e.replace(/(]*>((.|\n)*?)<\/del>)/g,"")}function Qs(e){switch(e){case He.CONTEXT:return Et.CONTEXT;case He.INSERT:return Et.INSERTS;case He.DELETE:return Et.DELETES}}function eo(e){switch(e){case Ea.DARK:return"d2h-dark-color-scheme";case Ea.AUTO:return"d2h-auto-color-scheme";case Ea.LIGHT:default:return"d2h-light-color-scheme"}}function FB(e){return e?2:1}function Li(e){return e.slice(0).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function jr(e,t,r=!0){let n=FB(t);return{prefix:e.substring(0,n),content:r?Li(e.substring(n)):e.substring(n)}}function ka(e){let t=m0(e.oldName),r=m0(e.newName);if(t!==r&&!b0(t)&&!b0(r)){let n=[],i=[],a=t.split(Cn),s=r.split(Cn),o=a.length,c=s.length,l=0,u=o-1,f=c-1;for(;ll&&f>l&&a[u]===s[f];)i.unshift(s[f]),u-=1,f-=1;let d=n.join(Cn),h=i.join(Cn),p=a.slice(l,u+1).join(Cn),m=s.slice(l,f+1).join(Cn);return d.length&&h.length?d+Cn+"{"+p+" \u2192 "+m+"}"+Cn+h:d.length?d+Cn+"{"+p+" \u2192 "+m+"}":h.length?"{"+p+" \u2192 "+m+"}"+Cn+h:t+" \u2192 "+r}else return b0(r)?t:r}function to(e){return`d2h-${hC(ka(e)).toString().slice(-6)}`}function ro(e){let t="file-changed";return e.isRename||e.isCopy?t="file-renamed":e.isNew?t="file-added":e.isDeleted?t="file-deleted":e.newName!==e.oldName&&(t="file-renamed"),t}function hd(e,t,r,n={}){let{matching:i,maxLineLengthHighlight:a,matchWordsThreshold:s,diffStyle:o}=Object.assign(Object.assign({},Aa),n),c=jr(e,r,!1),l=jr(t,r,!1);if(c.content.length>a||l.content.length>a)return{oldLine:{prefix:c.prefix,content:Li(c.content)},newLine:{prefix:l.prefix,content:Li(l.content)}};let u=o==="char"?bC(c.content,l.content):_C(c.content,l.content),f=[];if(o==="word"&&i==="words"){let h=u.filter(v=>v.removed),p=u.filter(v=>v.added);MB(p,h).forEach(v=>{v[0].length===1&&v[1].length===1&&SC(v[0][0],v[1][0]){let m=p.added?"ins":p.removed?"del":null,v=f.indexOf(p)>-1?' class="d2h-change"':"",y=Li(p.value);return m!==null?`${h}<${m}${v}>${y}`:`${h}${y}`},"");return{oldLine:{prefix:c.prefix,content:OB(d)},newLine:{prefix:l.prefix,content:IB(d)}}}var EC="file-summary",$B="icon",LB={colorScheme:Aa.colorScheme},pd=class{constructor(t,r={}){this.hoganUtils=t,this.config=Object.assign(Object.assign({},LB),r)}render(t){let r=t.map(n=>this.hoganUtils.render(EC,"line",{fileHtmlId:to(n),oldName:n.oldName,newName:n.newName,fileName:ka(n),deletedLines:"-"+n.deletedLines,addedLines:"+"+n.addedLines},{fileIcon:this.hoganUtils.template($B,ro(n))})).join(` +`);return this.hoganUtils.render(EC,"wrapper",{colorScheme:eo(this.config.colorScheme),filesNumber:t.length,files:r})}};g();var x0=Object.assign(Object.assign({},Aa),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),Ql="generic",AC="line-by-line",DB="icon",NB="tag",ec=class{constructor(t,r={}){this.hoganUtils=t,this.config=Object.assign(Object.assign({},x0),r)}render(t){let r=t.map(n=>{let i;return n.blocks.length?i=this.generateFileHtml(n):i=this.generateEmptyDiff(),this.makeFileDiffHtml(n,i)}).join(` +`);return this.hoganUtils.render(Ql,"wrapper",{colorScheme:eo(this.config.colorScheme),content:r})}makeFileDiffHtml(t,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(t.blocks)&&t.blocks.length===0)return"";let n=this.hoganUtils.template(AC,"file-diff"),i=this.hoganUtils.template(Ql,"file-path"),a=this.hoganUtils.template(DB,"file"),s=this.hoganUtils.template(NB,ro(t));return n.render({file:t,fileHtmlId:to(t),diffs:r,filePath:i.render({fileDiffName:ka(t)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return this.hoganUtils.render(Ql,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:Et})}generateFileHtml(t){let r=Js(Ks(n=>jr(n.content,t.isCombined).content));return t.blocks.map(n=>{let i=this.hoganUtils.render(Ql,"block-header",{CSSLineClass:Et,blockHeader:t.isTooBig?n.header:Li(n.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return this.applyLineGroupping(n).forEach(([a,s,o])=>{if(s.length&&o.length&&!a.length)this.applyRematchMatching(s,o,r).map(([c,l])=>{let{left:u,right:f}=this.processChangedLines(t,t.isCombined,c,l);i+=u,i+=f});else if(a.length)a.forEach(c=>{let{prefix:l,content:u}=jr(c.content,t.isCombined);i+=this.generateSingleLineHtml(t,{type:Et.CONTEXT,prefix:l,content:u,oldNumber:c.oldNumber,newNumber:c.newNumber})});else if(s.length||o.length){let{left:c,right:l}=this.processChangedLines(t,t.isCombined,s,o);i+=c,i+=l}else console.error("Unknown state reached while processing groups of lines",a,s,o)}),i}).join(` +`)}applyLineGroupping(t){let r=[],n=[],i=[];for(let a=0;a0)&&(r.push([[],n,i]),n=[],i=[]),s.type===He.CONTEXT?r.push([[s],[],[]]):s.type===He.INSERT&&n.length===0?r.push([[],[],[s]]):s.type===He.INSERT&&n.length>0?i.push(s):s.type===He.DELETE&&n.push(s)}return(n.length||i.length)&&(r.push([[],n,i]),n=[],i=[]),r}applyRematchMatching(t,r,n){let i=t.length*r.length,a=Math.max.apply(null,[0].concat(t.concat(r).map(o=>o.content.length)));return i{let i;return n.blocks.length?i=this.generateFileHtml(n):i=this.generateEmptyDiff(),this.makeFileDiffHtml(n,i)}).join(` +`);return this.hoganUtils.render(tc,"wrapper",{colorScheme:eo(this.config.colorScheme),content:r})}makeFileDiffHtml(t,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(t.blocks)&&t.blocks.length===0)return"";let n=this.hoganUtils.template(jB,"file-diff"),i=this.hoganUtils.template(tc,"file-path"),a=this.hoganUtils.template(BB,"file"),s=this.hoganUtils.template(HB,ro(t));return n.render({file:t,fileHtmlId:to(t),diffs:r,filePath:i.render({fileDiffName:ka(t)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return{right:"",left:this.hoganUtils.render(tc,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:Et})}}generateFileHtml(t){let r=Js(Ks(n=>jr(n.content,t.isCombined).content));return t.blocks.map(n=>{let i={left:this.makeHeaderHtml(n.header,t),right:this.makeHeaderHtml("")};return this.applyLineGroupping(n).forEach(([a,s,o])=>{if(s.length&&o.length&&!a.length)this.applyRematchMatching(s,o,r).map(([c,l])=>{let{left:u,right:f}=this.processChangedLines(t.isCombined,c,l);i.left+=u,i.right+=f});else if(a.length)a.forEach(c=>{let{prefix:l,content:u}=jr(c.content,t.isCombined),{left:f,right:d}=this.generateLineHtml({type:Et.CONTEXT,prefix:l,content:u,number:c.oldNumber},{type:Et.CONTEXT,prefix:l,content:u,number:c.newNumber});i.left+=f,i.right+=d});else if(s.length||o.length){let{left:c,right:l}=this.processChangedLines(t.isCombined,s,o);i.left+=c,i.right+=l}else console.error("Unknown state reached while processing groups of lines",a,s,o)}),i}).reduce((n,i)=>({left:n.left+i.left,right:n.right+i.right}),{left:"",right:""})}applyLineGroupping(t){let r=[],n=[],i=[];for(let a=0;a0)&&(r.push([[],n,i]),n=[],i=[]),s.type===He.CONTEXT?r.push([[s],[],[]]):s.type===He.INSERT&&n.length===0?r.push([[],[],[s]]):s.type===He.INSERT&&n.length>0?i.push(s):s.type===He.DELETE&&n.push(s)}return(n.length||i.length)&&(r.push([[],n,i]),n=[],i=[]),r}applyRematchMatching(t,r,n){let i=t.length*r.length,a=Math.max.apply(null,[0].concat(t.concat(r).map(o=>o.content.length)));return i'),n.b(` `+r),n.b(' '),n.b(` `+r),n.b(n.rp("'),n.b(n.v(n.f("fileName",e,t,0))),n.b(""),n.b(` `+r),n.b(' '),n.b(` @@ -313,58 +313,58 @@ You can always see the logs of this and every other plugin by opening the consol `+r),n.b(" "),n.b(` `+r),n.b(" "),n.b(` `+r),n.b(" "),n.b(` -`+r),n.b(""),n.fl()},partials:{},subs:{}});nt["tag-file-added"]=new lt.Template({code:function(e,t,r){var n=this;return n.b(r=r||""),n.b('ADDED'),n.fl()},partials:{},subs:{}});nt["tag-file-changed"]=new lt.Template({code:function(e,t,r){var n=this;return n.b(r=r||""),n.b('CHANGED'),n.fl()},partials:{},subs:{}});nt["tag-file-deleted"]=new lt.Template({code:function(e,t,r){var n=this;return n.b(r=r||""),n.b('DELETED'),n.fl()},partials:{},subs:{}});nt["tag-file-renamed"]=new lt.Template({code:function(e,t,r){var n=this;return n.b(r=r||""),n.b('RENAMED'),n.fl()},partials:{},subs:{}});var ic=class{constructor({compiledTemplates:t={},rawTemplates:r={}}){let n=Object.entries(r).reduce((i,[a,s])=>{let o=C0.compile(s,{asString:!1});return Object.assign(Object.assign({},i),{[a]:o})},{});this.preCompiledTemplates=Object.assign(Object.assign(Object.assign({},nt),t),n)}static compile(t){return C0.compile(t,{asString:!1})}render(t,r,n,i,a){let s=this.templateKey(t,r);try{return this.preCompiledTemplates[s].render(n,i,a)}catch(o){throw new Error(`Could not find template to render '${s}'`)}}template(t,r){return this.preCompiledTemplates[this.templateKey(t,r)]}templateKey(t,r){return`${t}-${r}`}};var GB=Object.assign(Object.assign(Object.assign({},S0),E0),{outputFormat:cC.LINE_BY_LINE,drawFileList:!0});function PC(e,t={}){let r=Object.assign(Object.assign({},GB),t),n=typeof e=="string"?vC(e,r):e,i=new ic(r),{colorScheme:a}=r,s={colorScheme:a},o=r.drawFileList?new md(i,s).render(n):"",c=r.outputFormat==="side-by-side"?new nc(i,r).render(n):new tc(i,r).render(n);return o+c}var vd=require("obsidian");var Ta=class extends vd.ItemView{constructor(r,n){super(r);this.plugin=n;this.gettingDiff=!1;this.parser=new DOMParser,this.navigation=!0,this.gitRefreshRef=this.app.workspace.on("obsidian-git:status-changed",()=>{this.refresh().catch(console.error)})}getViewType(){return ki.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let n=this.state.bFile.split("/").last();return n!=null&&n.endsWith(".md")&&(n=n.slice(0,-3)),`Diff: ${n}`}return ki.name}getIcon(){return ki.icon}async setState(r,n){this.state=r,vd.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await this.refresh()}getState(){return this.state}onClose(){return this.app.workspace.offref(this.gitRefreshRef),this.app.workspace.offref(this.gitViewRefreshRef),super.onClose()}async onOpen(){return await this.refresh(),super.onOpen()}async refresh(){var r;if((r=this.state)!=null&&r.bFile&&!this.gettingDiff&&this.plugin.gitManager){this.gettingDiff=!0;try{let n=await this.plugin.gitManager.getDiffString(this.state.bFile,this.state.aRef=="HEAD",this.state.bRef);this.contentEl.empty();let i=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);if(!n){if(this.plugin.gitManager instanceof Te&&await this.plugin.gitManager.isTracked(this.state.bFile))n=[`--- ${this.state.aFile}`,`+++ ${this.state.bFile}`,""].join(` +`+r),n.b(""),n.fl()},partials:{},subs:{}});nt["tag-file-added"]=new lt.Template({code:function(e,t,r){var n=this;return n.b(r=r||""),n.b('ADDED'),n.fl()},partials:{},subs:{}});nt["tag-file-changed"]=new lt.Template({code:function(e,t,r){var n=this;return n.b(r=r||""),n.b('CHANGED'),n.fl()},partials:{},subs:{}});nt["tag-file-deleted"]=new lt.Template({code:function(e,t,r){var n=this;return n.b(r=r||""),n.b('DELETED'),n.fl()},partials:{},subs:{}});nt["tag-file-renamed"]=new lt.Template({code:function(e,t,r){var n=this;return n.b(r=r||""),n.b('RENAMED'),n.fl()},partials:{},subs:{}});var nc=class{constructor({compiledTemplates:t={},rawTemplates:r={}}){let n=Object.entries(r).reduce((i,[a,s])=>{let o=T0.compile(s,{asString:!1});return Object.assign(Object.assign({},i),{[a]:o})},{});this.preCompiledTemplates=Object.assign(Object.assign(Object.assign({},nt),t),n)}static compile(t){return T0.compile(t,{asString:!1})}render(t,r,n,i,a){let s=this.templateKey(t,r);try{return this.preCompiledTemplates[s].render(n,i,a)}catch(o){throw new Error(`Could not find template to render '${s}'`)}}template(t,r){return this.preCompiledTemplates[this.templateKey(t,r)]}templateKey(t,r){return`${t}-${r}`}};var GB=Object.assign(Object.assign(Object.assign({},x0),S0),{outputFormat:cC.LINE_BY_LINE,drawFileList:!0});function PC(e,t={}){let r=Object.assign(Object.assign({},GB),t),n=typeof e=="string"?vC(e,r):e,i=new nc(r),{colorScheme:a}=r,s={colorScheme:a},o=r.drawFileList?new pd(i,s).render(n):"",c=r.outputFormat==="side-by-side"?new rc(i,r).render(n):new ec(i,r).render(n);return o+c}var gd=require("obsidian");var Ta=class extends gd.ItemView{constructor(r,n){super(r);this.plugin=n;this.gettingDiff=!1;this.parser=new DOMParser,this.navigation=!0,this.gitRefreshRef=this.app.workspace.on("obsidian-git:status-changed",()=>{this.refresh().catch(console.error)})}getViewType(){return ki.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let n=this.state.bFile.split("/").last();return n!=null&&n.endsWith(".md")&&(n=n.slice(0,-3)),`Diff: ${n}`}return ki.name}getIcon(){return ki.icon}async setState(r,n){this.state=r,gd.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await this.refresh()}getState(){return this.state}onClose(){return this.app.workspace.offref(this.gitRefreshRef),this.app.workspace.offref(this.gitViewRefreshRef),super.onClose()}async onOpen(){return await this.refresh(),super.onOpen()}async refresh(){var r;if((r=this.state)!=null&&r.bFile&&!this.gettingDiff&&this.plugin.gitManager){this.gettingDiff=!0;try{let n=await this.plugin.gitManager.getDiffString(this.state.bFile,this.state.aRef=="HEAD",this.state.bRef);this.contentEl.empty();let i=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);if(!n){if(this.plugin.gitManager instanceof Te&&await this.plugin.gitManager.isTracked(this.state.bFile))n=[`--- ${this.state.aFile}`,`+++ ${this.state.bFile}`,""].join(` `);else if(await this.app.vault.adapter.exists(i)){let a=await this.app.vault.adapter.read(i);n=[...`--- /dev/null +++ ${this.state.bFile} @@ -0,0 +1,${a.split(` `).length} @@`.split(` `),...a.split(` `).map(o=>`+${o}`)].join(` -`)}}if(n){let a=this.parser.parseFromString(PC(n),"text/html").querySelector(".d2h-file-diff");this.contentEl.append(a)}else{let a=this.contentEl.createDiv({cls:"obsidian-git-center"});a.createSpan({text:"\u26A0\uFE0F",attr:{style:"font-size: 2em"}}),a.createEl("br"),a.createSpan({text:"File not found: "+this.state.bFile})}}finally{this.gettingDiff=!1}}}};g();var W3=require("obsidian");g();g();g();var RC="5";typeof window!="undefined"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(RC);g();g();var io="[",Ca="[!",Pa="]",Di={};var ct=Symbol(),qt=Symbol("filename"),MC=Symbol("hmr");g();g();var zB=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected","webkitdirectory"];var oZ=[...zB,"formNoValidate","isMap","noModule","playsInline","readOnly","value","inert","volume","defaultValue","defaultChecked","srcObject"];var VB=["touchstart","touchmove"];function OC(e){return VB.includes(e)}g();g();g();var yd=!0;g();var V=!1;g();var an=Array.isArray,ac=Array.from,P0=Object.keys,Mt=Object.defineProperty,jr=Object.getOwnPropertyDescriptor,R0=Object.getOwnPropertyDescriptors,M0=Object.prototype,IC=Array.prototype,Ra=Object.getPrototypeOf;function O0(e){return typeof e=="function"}var br=()=>{};function wd(e){for(var t=0;t{};function yd(e){for(var t=0;t0)){let n=Array.from(Oa);var r=ri;so(!0);try{for(let i of n)i.f&1024&&Xt(i,4096),Bi(i)&&Fa(i)}finally{so(r)}Oa.clear()}return t}function YC(e,t){var r=e.reactions;if(r!==null)for(var n=ji(),i=r.length,a=0;a0)){let n=Array.from(Oa);var r=ri;ao(!0);try{for(let i of n)i.f&1024&&Xt(i,4096),Bi(i)&&Fa(i)}finally{ao(r)}Oa.clear()}return t}function YC(e,t){var r=e.reactions;if(r!==null)for(var n=ji(),i=r.length,a=0;an.line)return a.component}}return null}var JB=Symbol("ADD_OWNER");function j0(e,t){if(t.owners!==null)for(;e;){if(e.owners===null){t.owners=null;break}for(let r of e.owners)t.owners.add(r);e=e.parent}}function e3(e,t){return e.owners===null?!0:e.owners.has(t)||e.parent!==null&&e3(e.parent,t)}function t3(e){var t,r;return(r=(t=e==null?void 0:e.owners)==null?void 0:t.values().next().value)!=null?r:t3(e.parent)}var QB=!1;function r3(e){if(QB)return;let t=QC();if(t&&!e3(e,t)){let r=t3(e);r[qt]!==t[qt]?N0(t[qt],r[qt]):N0()}}function be(e,t=null,r){var l,u;var n=null;if(V&&Qn&&(n=ei("CreatedAt")),typeof e!="object"||e===null||_r in e)return e;let i=Ra(e);if(i!==M0&&i!==IC)return e;var a=new Map,s=an(e),o=ut(0);s&&a.set("length",ut(e.length,n));var c;if(V)if(c={parent:t,owners:null},r){let f=(u=(l=r.v)==null?void 0:l[Ma])==null?void 0:u.owners;c.owners=f?new Set(f):null}else c.owners=t===null?he!==null?new Set([he.function]):null:new Set;return new Proxy(e,{defineProperty(f,d,h){(!("value"in h)||h.configurable===!1||h.enumerable===!1||h.writable===!1)&&GC();var p=a.get(d);return p===void 0?(p=ut(h.value,n),a.set(d,p)):re(p,be(h.value,c)),!0},deleteProperty(f,d){var h=a.get(d);if(h===void 0)d in f&&a.set(d,ut(ct,n));else{if(s&&typeof d=="string"){var p=a.get("length"),m=Number(d);Number.isInteger(m)&&m=_.v&&re(_,k+1)}n3(o)}return!0},ownKeys(f){R(o);var d=Reflect.ownKeys(f).filter(m=>{var v=a.get(m);return v===void 0||v.v!==ct});for(var[h,p]of a)p.v!==ct&&!(h in f)&&d.push(h);return d},setPrototypeOf(){zC()}})}function n3(e,t=1){re(e,e.v+t)}function Ad(e){return e!==null&&typeof e=="object"&&_r in e?e[_r]:e}function i3(){let e=Array.prototype,t=Array.__svelte_cleanup;t&&t();let{indexOf:r,lastIndexOf:n,includes:i}=e;e.indexOf=function(a,s){let o=r.call(this,a,s);if(o===-1){for(let c=s!=null?s:0;c{e.indexOf=r,e.lastIndexOf=n,e.includes=i}}var B0,a3,s3,o3;function kd(){if(B0===void 0){B0=window,a3=document;var e=Element.prototype,t=Node.prototype;s3=jr(t,"firstChild").get,o3=jr(t,"nextSibling").get,e.__click=void 0,e.__className="",e.__attributes=null,e.__styles=null,e.__e=void 0,Text.prototype.__t=void 0,V&&(e.__svelte_meta=null,i3())}}function zr(e=""){return document.createTextNode(e)}function kt(e){return s3.call(e)}function It(e){return o3.call(e)}function U(e,t){if(!ae)return kt(e);var r=kt(ue);if(r===null)r=ue.appendChild(zr());else if(t&&r.nodeType!==3){var n=zr();return r==null||r.before(n),Qe(n),n}return Qe(r),r}function lr(e,t){var i,a;if(!ae){var r=kt(e);return r instanceof Comment&&r.data===""?It(r):r}if(t&&((i=ue)==null?void 0:i.nodeType)!==3){var n=zr();return(a=ue)==null||a.before(n),Qe(n),n}return ue}function Z(e,t=1,r=!1){let n=ae?ue:e;for(var i;t--;)i=n,n=It(n);if(!ae)return n;var a=n==null?void 0:n.nodeType;if(r&&a!==3){var s=zr();return n===null?i==null||i.after(s):n.before(s),Qe(s),s}return Qe(n),n}function ho(e){e.textContent=""}g();function Ye(e){var i;var t=2050;te===null?t|=256:te.f|=1048576;var r=fe!==null&&fe.f&2?fe:null;let n={children:null,ctx:he,deps:null,equals:_d,f:t,fn:e,reactions:null,v:null,version:0,parent:r!=null?r:te};return V&&Qn&&(n.created=ei("CreatedAt")),r!==null&&((i=r.children)!=null?i:r.children=[]).push(n),n}function z0(e){let t=Ye(e);return t.equals=ao,t}function U0(e){var t=e.children;if(t!==null){e.children=null;for(var r=0;r{Ft(t)}}function u3(e){let t=La(64,e,!0);return(r={})=>new Promise(n=>{r.outro?ln(t,()=>{Ft(t),n(void 0)}):(Ft(t),n(void 0))})}function xr(e){return La(4,e,!1)}function or(e){return La(8,e,!0)}function xe(e){return V&&Mt(e,"name",{value:"{expression}"}),cr(e)}function cr(e,t=0){return La(24|t,e,!0)}function Lt(e,t=!0){return La(40,e,!0,t)}function K0(e){var t=e.teardown;if(t!==null){let r=Pd,n=fe;q0(!0),Tt(null);try{t.call(null)}finally{q0(r),Tt(n)}}}function J0(e){var t=e.deriveds;if(t!==null){e.deriveds=null;for(var r=0;r{Ft(e),t&&t()})}function tv(e,t){var r=e.length;if(r>0){var n=()=>--r||t();for(var i of e)i.out(n)}else t()}function Cd(e,t,r){if(!(e.f&8192)){if(e.f^=8192,e.transitions!==null)for(let s of e.transitions)(s.is_global||r)&&t.push(s);for(var n=e.first;n!==null;){var i=n.next,a=(n.f&65536)!==0||(n.f&32)!==0;Cd(n,t,a?r:!1),n=i}}}function Gi(e){d3(e,!0)}function d3(e,t){if(e.f&8192){Bi(e)&&Fa(e),e.f^=8192;for(var r=e.first;r!==null;){var n=r.next,i=(r.f&65536)!==0||(r.f&32)!==0;d3(r,i?t:!1),r=n}if(e.transitions!==null)for(let a of e.transitions)(a.is_global||t)&&a.in()}}g();var Rd=!1,p3=!1,rv=[],h3=[];function m3(){Rd=!1;let e=rv.slice();rv=[],wd(e)}function r7(){p3=!1;let e=h3.slice();h3=[],wd(e)}function ur(e){Rd||(Rd=!0,queueMicrotask(m3)),rv.push(e)}function g3(){Rd&&m3(),p3&&r7()}g();function fc(e){if(V){let t=new Error(`lifecycle_outside_component +https://svelte.dev/e/state_proxy_equality_mismatch`,oc,lc):console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}var ae=!1;function or(e){ae=e}var ue;function Qe(e){if(e===null)throw lo(),Di;return ue=e}function Ot(){return Qe(It(ue))}function B(e){if(ae){if(It(ue)!==null)throw lo(),Di;ue=e}}function co(e=1){if(ae){for(var t=e,r=ue;t--;)r=It(r);ue=r}}function uo(){for(var e=0,t=ue;;){if(t.nodeType===8){var r=t.data;if(r===Pa){if(e===0)return t;e-=1}else(r===no||r===Ca)&&(e+=1)}var n=It(t);t.remove(),t=n}}g();g();g();var YB={},XB=/at (?:.+ \()?(.+):(\d+):(\d+)\)?$/,ZB=/@(.+):(\d+):(\d+)$/;function KB(){var r;let e=new Error().stack;if(!e)return null;let t=[];for(let n of e.split(` +`)){let i=(r=XB.exec(n))!=null?r:ZB.exec(n);i&&t.push({file:i[1],line:+i[2],column:+i[3]})}return t}function QC(){var t;let e=(t=KB())==null?void 0:t.slice(4);if(!e)return null;for(let r=0;rn.line)return a.component}}return null}var JB=Symbol("ADD_OWNER");function N0(e,t){if(t.owners!==null)for(;e;){if(e.owners===null){t.owners=null;break}for(let r of e.owners)t.owners.add(r);e=e.parent}}function e3(e,t){return e.owners===null?!0:e.owners.has(t)||e.parent!==null&&e3(e.parent,t)}function t3(e){var t,r;return(r=(t=e==null?void 0:e.owners)==null?void 0:t.values().next().value)!=null?r:t3(e.parent)}var QB=!1;function r3(e){if(QB)return;let t=QC();if(t&&!e3(e,t)){let r=t3(e);r[qt]!==t[qt]?D0(t[qt],r[qt]):D0()}}function be(e,t=null,r){var l,u;var n=null;if(z&&Qn&&(n=ei("CreatedAt")),typeof e!="object"||e===null||xr in e)return e;let i=Ra(e);if(i!==R0&&i!==IC)return e;var a=new Map,s=sn(e),o=ut(0);s&&a.set("length",ut(e.length,n));var c;if(z)if(c={parent:t,owners:null},r){let f=(u=(l=r.v)==null?void 0:l[Ma])==null?void 0:u.owners;c.owners=f?new Set(f):null}else c.owners=t===null?he!==null?new Set([he.function]):null:new Set;return new Proxy(e,{defineProperty(f,d,h){(!("value"in h)||h.configurable===!1||h.enumerable===!1||h.writable===!1)&&GC();var p=a.get(d);return p===void 0?(p=ut(h.value,n),a.set(d,p)):re(p,be(h.value,c)),!0},deleteProperty(f,d){var h=a.get(d);if(h===void 0)d in f&&a.set(d,ut(ct,n));else{if(s&&typeof d=="string"){var p=a.get("length"),m=Number(d);Number.isInteger(m)&&m=_.v&&re(_,k+1)}n3(o)}return!0},ownKeys(f){R(o);var d=Reflect.ownKeys(f).filter(m=>{var v=a.get(m);return v===void 0||v.v!==ct});for(var[h,p]of a)p.v!==ct&&!(h in f)&&d.push(h);return d},setPrototypeOf(){zC()}})}function n3(e,t=1){re(e,e.v+t)}function Ed(e){return e!==null&&typeof e=="object"&&xr in e?e[xr]:e}function i3(){let e=Array.prototype,t=Array.__svelte_cleanup;t&&t();let{indexOf:r,lastIndexOf:n,includes:i}=e;e.indexOf=function(a,s){let o=r.call(this,a,s);if(o===-1){for(let c=s!=null?s:0;c{e.indexOf=r,e.lastIndexOf=n,e.includes=i}}var j0,a3,s3,o3;function Ad(){if(j0===void 0){j0=window,a3=document;var e=Element.prototype,t=Node.prototype;s3=Br(t,"firstChild").get,o3=Br(t,"nextSibling").get,e.__click=void 0,e.__className="",e.__attributes=null,e.__styles=null,e.__e=void 0,Text.prototype.__t=void 0,z&&(e.__svelte_meta=null,i3())}}function Vr(e=""){return document.createTextNode(e)}function kt(e){return s3.call(e)}function It(e){return o3.call(e)}function H(e,t){if(!ae)return kt(e);var r=kt(ue);if(r===null)r=ue.appendChild(Vr());else if(t&&r.nodeType!==3){var n=Vr();return r==null||r.before(n),Qe(n),n}return Qe(r),r}function cr(e,t){var i,a;if(!ae){var r=kt(e);return r instanceof Comment&&r.data===""?It(r):r}if(t&&((i=ue)==null?void 0:i.nodeType)!==3){var n=Vr();return(a=ue)==null||a.before(n),Qe(n),n}return ue}function Z(e,t=1,r=!1){let n=ae?ue:e;for(var i;t--;)i=n,n=It(n);if(!ae)return n;var a=n==null?void 0:n.nodeType;if(r&&a!==3){var s=Vr();return n===null?i==null||i.after(s):n.before(s),Qe(s),s}return Qe(n),n}function fo(e){e.textContent=""}g();function Ye(e){var i;var t=2050;te===null?t|=256:te.f|=1048576;var r=fe!==null&&fe.f&2?fe:null;let n={children:null,ctx:he,deps:null,equals:bd,f:t,fn:e,reactions:null,v:null,version:0,parent:r!=null?r:te};return z&&Qn&&(n.created=ei("CreatedAt")),r!==null&&((i=r.children)!=null?i:r.children=[]).push(n),n}function G0(e){let t=Ye(e);return t.equals=io,t}function H0(e){var t=e.children;if(t!==null){e.children=null;for(var r=0;r{Ft(t)}}function u3(e){let t=La(64,e,!0);return(r={})=>new Promise(n=>{r.outro?cn(t,()=>{Ft(t),n(void 0)}):(Ft(t),n(void 0))})}function Sr(e){return La(4,e,!1)}function lr(e){return La(8,e,!0)}function xe(e){return z&&Mt(e,"name",{value:"{expression}"}),ur(e)}function ur(e,t=0){return La(24|t,e,!0)}function Lt(e,t=!0){return La(40,e,!0,t)}function Z0(e){var t=e.teardown;if(t!==null){let r=Cd,n=fe;W0(!0),Tt(null);try{t.call(null)}finally{W0(r),Tt(n)}}}function K0(e){var t=e.deriveds;if(t!==null){e.deriveds=null;for(var r=0;r{Ft(e),t&&t()})}function ev(e,t){var r=e.length;if(r>0){var n=()=>--r||t();for(var i of e)i.out(n)}else t()}function Td(e,t,r){if(!(e.f&8192)){if(e.f^=8192,e.transitions!==null)for(let s of e.transitions)(s.is_global||r)&&t.push(s);for(var n=e.first;n!==null;){var i=n.next,a=(n.f&65536)!==0||(n.f&32)!==0;Td(n,t,a?r:!1),n=i}}}function Gi(e){d3(e,!0)}function d3(e,t){if(e.f&8192){Bi(e)&&Fa(e),e.f^=8192;for(var r=e.first;r!==null;){var n=r.next,i=(r.f&65536)!==0||(r.f&32)!==0;d3(r,i?t:!1),r=n}if(e.transitions!==null)for(let a of e.transitions)(a.is_global||t)&&a.in()}}g();var Pd=!1,p3=!1,tv=[],h3=[];function m3(){Pd=!1;let e=tv.slice();tv=[],yd(e)}function r7(){p3=!1;let e=h3.slice();h3=[],yd(e)}function fr(e){Pd||(Pd=!0,queueMicrotask(m3)),tv.push(e)}function g3(){Pd&&m3(),p3&&r7()}g();function uc(e){if(z){let t=new Error(`lifecycle_outside_component \`${e}(...)\` can only be used during component initialisation -https://svelte.dev/e/lifecycle_outside_component`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/lifecycle_outside_component")}var x3=0,a7=1,v3=new WeakSet,Md=!1,Od=x3,dc=!1,mo=null,ri=!1,Pd=!1;function so(e){ri=e}function q0(e){Pd=e}var Da=[],go=0,hc=[],fe=null;function Tt(e){fe=e}var te=null;function it(e){te=e}var sn=null;function XC(e){sn=e}var At=null,Sr=0,ti=null;function ZC(e){ti=e}var S3=1,ni=!1,oc=null;var he=null;var Gr=null;function xd(){return++S3}function ji(){return!Jn||he!==null&&he.l===null}function Bi(e){var s,o,c,l;var t=e.f;if(t&2048)return!0;if(t&4096){var r=e.deps,n=(t&256)!==0;if(r!==null){var i;if(t&512){for(i=0;ie.version)return!0}}(!n||te!==null&&!ni)&&Xt(e,1024)}return!1}function y3(e,t){for(var r=t;r!==null;){if(r.f&128)try{r.fn(e);return}catch(n){r.f^=128}r=r.parent}throw Md=!1,e}function w3(e){return(e.f&16384)===0&&(e.parent===null||(e.parent.f&128)===0)}function vo(e,t,r,n){var u,f;if(Md){if(r===null&&(Md=!1),w3(t))throw e;return}if(r!==null&&(Md=!0),!V||n===null||!(e instanceof Error)||v3.has(e)){y3(e,t);return}v3.add(e);let i=[],a=(u=t.fn)==null?void 0:u.name;a&&i.push(a);let s=n;for(;s!==null;){if(V){var o=(f=s.function)==null?void 0:f[qt];if(o){let d=o.split("/").pop();i.push(d)}}s=s.p}let c=/Firefox/.test(navigator.userAgent)?" ":" ";Mt(e,"message",{value:e.message+` +https://svelte.dev/e/lifecycle_outside_component`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/lifecycle_outside_component")}var x3=0,a7=1,v3=new WeakSet,Rd=!1,Md=x3,fc=!1,po=null,ri=!1,Cd=!1;function ao(e){ri=e}function W0(e){Cd=e}var Da=[],mo=0,dc=[],fe=null;function Tt(e){fe=e}var te=null;function it(e){te=e}var on=null;function XC(e){on=e}var At=null,Er=0,ti=null;function ZC(e){ti=e}var S3=1,ni=!1,sc=null;var he=null;var zr=null;function _d(){return++S3}function ji(){return!Jn||he!==null&&he.l===null}function Bi(e){var s,o,c,l;var t=e.f;if(t&2048)return!0;if(t&4096){var r=e.deps,n=(t&256)!==0;if(r!==null){var i;if(t&512){for(i=0;ie.version)return!0}}(!n||te!==null&&!ni)&&Xt(e,1024)}return!1}function y3(e,t){for(var r=t;r!==null;){if(r.f&128)try{r.fn(e);return}catch(n){r.f^=128}r=r.parent}throw Rd=!1,e}function w3(e){return(e.f&16384)===0&&(e.parent===null||(e.parent.f&128)===0)}function go(e,t,r,n){var u,f;if(Rd){if(r===null&&(Rd=!1),w3(t))throw e;return}if(r!==null&&(Rd=!0),!z||n===null||!(e instanceof Error)||v3.has(e)){y3(e,t);return}v3.add(e);let i=[],a=(u=t.fn)==null?void 0:u.name;a&&i.push(a);let s=n;for(;s!==null;){if(z){var o=(f=s.function)==null?void 0:f[qt];if(o){let d=o.split("/").pop();i.push(d)}}s=s.p}let c=/Firefox/.test(navigator.userAgent)?" ":" ";Mt(e,"message",{value:e.message+` ${i.map(d=>` ${c}in ${d}`).join("")} `}),Mt(e,"component_stack",{value:i});let l=e.stack;if(l){let d=l.split(` `),h=[];for(let p=0;p0)for(u.length=Sr+At.length,f=0;fe.fn)),hc=[]}function E3(){if(go>1e3){go=0;try{jC()}catch(e){if(V&&Mt(e,"stack",{value:""}),mo!==null)if(V)try{vo(e,mo,null,null)}catch(t){throw b3(),t}else vo(e,mo,null,null);else throw V&&b3(),e}}go++}function A3(e){var t=e.length;if(t!==0){E3();var r=ri;ri=!0;try{for(var n=0;n1001)return;let e=Da;Da=[],A3(e),dc||(go=0,mo=null,V&&(hc=[]))}function lo(e){Od===x3&&(dc||(dc=!0,queueMicrotask(l7))),mo=e;for(var t=e;t.parent!==null;){t=t.parent;var r=t.f;if(r&96){if(!(r&1024))return;t.f^=1024}}Da.push(t)}function k3(e,t){var r=e.first,n=[];e:for(;r!==null;){var i=r.f,a=(i&32)!==0,s=a&&(i&1024)!==0,o=r.next;if(!s&&!(i&8192))if(i&8){if(a)r.f^=1024;else try{Bi(r)&&Fa(r)}catch(f){vo(f,r,null,r.ctx)}var c=r.first;if(c!==null){r=c;continue}}else i&4&&n.push(r);if(o===null){let f=r.parent;for(;f!==null;){if(e===f)break e;var l=f.next;if(l!==null){r=l;continue e}f=f.parent}}r=o}for(var u=0;u0||i.length>0)&&yo(),go=0,mo=null,V&&(hc=[]),n}finally{Od=t,Da=r}}function R(e){var f,d;var t=e.f,r=(t&2)!==0;if(r&&t&16384){var n=V0(e);return uc(e),n}if(oc!==null&&oc.add(e),fe!==null){sn!==null&&sn.includes(e)&&VC();var i=fe.deps;At===null&&i!==null&&i[Sr]===e?Sr++:At===null?At=[e]:At.push(e),ti!==null&&te!==null&&te.f&1024&&!(te.f&32)&&ti.includes(e)&&(Xt(te,2048),lo(te))}else if(r&&e.deps===null)for(var a=e,s=a.parent,o=a;s!==null;)if(s.f&2){var c=s;o=c,s=c.parent}else{var l=s;(f=l.deriveds)!=null&&f.includes(o)||((d=l.deriveds)!=null?d:l.deriveds=[]).push(o);break}if(r&&(a=e,Bi(a)&&W0(a)),V&&Qn&&sc!==null&&fe!==null&&sc.reaction===fe){if(e.debug)e.debug();else if(e.created){var u=sc.entries.get(e);u===void 0&&(u={read:[]},sc.entries.set(e,u)),u.read.push(ei("TracedAt"))}}return e.v}function Ue(e){let t=fe;try{return fe=null,e()}finally{fe=t}}var c7=-7169;function Xt(e,t){e.f=e.f&c7|t}function Xe(e,t=!1,r){he={p:he,c:null,e:null,m:!1,s:e,x:null,l:null},Jn&&!t&&(he.l={s:null,u:null,r1:[],r2:ut(!1)}),V&&(he.function=r,Gr=r)}function Ze(e){var s,o;let t=he;if(t!==null){e!==void 0&&(t.x=e);let c=t.e;if(c!==null){var r=te,n=fe;t.e=null;try{for(var i=0;i{if(r!==void 0)return r;UC(t)},set:n=>{r=n}})}};e("$state"),e("$effect"),e("$derived"),e("$inspect"),e("$props"),e("$bindable")}g();var T3=new Map;function C3(e,t){var r=T3.get(e);r||(r=new Set,T3.set(e,r)),r.add(t)}g();g();g();g();g();g();function nv(e){ae&&kt(e)!==null&&ho(e)}var P3=!1;function iv(){P3||(P3=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(let r of e.target.elements)(t=r.__on_r)==null||t.call(r)})},{capture:!0}))}function $d(e){var t=fe,r=te;Tt(null),it(null);try{return e()}finally{Tt(t),it(r)}}function av(e,t,r,n=r){e.addEventListener(t,()=>$d(r));let i=e.__on_r;i?e.__on_r=()=>{i(),n(!0)}:e.__on_r=()=>n(!0),iv()}var sv=new Set,Ld=new Set;function R3(e,t,r,n){function i(a){if(n.capture||wo.call(t,a),!a.cancelBubble)return $d(()=>r.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ur(()=>{t.addEventListener(e,i,n)}):t.addEventListener(e,i,n),i}function Er(e,t,r,n,i){var a={capture:n,passive:i},s=R3(e,t,r,a);(t===document.body||t===window||t===document)&&Wr(()=>{t.removeEventListener(e,s,a)})}function dt(e){for(var t=0;t{throw x});throw d}}finally{e.__root=t,delete e.currentTarget,Tt(u),it(f)}}}g();var f7;function M3(){f7=void 0}g();g();function Dd(e){var t=document.createElement("template");return t.innerHTML=e,t.content}function Mn(e,t){var r=te;r.nodes_start===null&&(r.nodes_start=e,r.nodes_end=t)}function se(e,t){var r=(t&1)!==0,n=(t&2)!==0,i,a=!e.startsWith("");return()=>{if(ae)return Mn(ue,null),ue;i===void 0&&(i=Dd(a?e:""+e),r||(i=kt(i)));var s=n?document.importNode(i,!0):i.cloneNode(!0);if(r){var o=kt(s),c=s.lastChild;Mn(o,c)}else Mn(s,s);return s}}function ii(){if(ae)return Mn(ue,null),ue;var e=document.createDocumentFragment(),t=document.createComment(""),r=zr();return e.append(t,r),Mn(t,r),e}function ne(e,t){if(ae){te.nodes_end=ue,Ot();return}e!==null&&e.before(t)}var Nd=!0;function Oe(e,t){var n;var r=t==null?"":typeof t=="object"?t+"":t;r!==((n=e.__t)!=null?n:e.__t=e.nodeValue)&&(e.__t=r,e.nodeValue=r==null?"":r+"")}function zi(e,t){return O3(e,t)}function lv(e,t){var s;kd(),t.intro=(s=t.intro)!=null?s:!1;let r=t.target,n=ae,i=ue;try{for(var a=kt(r);a&&(a.nodeType!==8||a.data!==io);)a=It(a);if(!a)throw Di;sr(!0),Qe(a),Ot();let o=O3(e,{...t,anchor:a});if(ue===null||ue.nodeType!==8||ue.data!==Pa)throw co(),Di;return sr(!1),o}catch(o){if(o===Di)return t.recover===!1&&BC(),kd(),ho(r),sr(!1),zi(e,t);throw o}finally{sr(n),Qe(i),M3()}}var bo=new Map;function O3(e,{target:t,anchor:r,props:n={},events:i,context:a,intro:s=!0}){kd();var o=new Set,c=f=>{for(var d=0;d{var f=r!=null?r:t.appendChild(zr());return Lt(()=>{if(a){Xe({});var d=he;d.c=a}i&&(n.$$events=i),ae&&Mn(f,null),Nd=s,l=e(f,n)||{},Nd=!0,ae&&(te.nodes_end=ue),a&&Ze()}),()=>{var p;for(var d of o){t.removeEventListener(d,wo);var h=bo.get(d);--h===0?(document.removeEventListener(d,wo),bo.delete(d)):bo.set(d,h)}Ld.delete(c),f!==r&&((p=f.parentNode)==null||p.removeChild(f))}});return ov.set(l,u),l}var ov=new WeakMap;function ai(e,t){let r=ov.get(e);return r?(ov.delete(e),r(t)):(V&&JC(),Promise.resolve())}g();g();g();g();function ge(e,t,r=!1){ae&&Ot();var n=e,i=null,a=null,s=ct,o=r?65536:0,c=!1;let l=(f,d=!0)=>{c=!0,u(d,f)},u=(f,d)=>{if(s===(s=f))return;let h=!1;if(ae){let p=n.data===Ca;!!s===p&&(n=fo(),Qe(n),sr(!1),h=!0)}s?(i?Gi(i):d&&(i=Lt(()=>d(n))),a&&ln(a,()=>{a=null})):(a?Gi(a):d&&(a=Lt(()=>d(n))),i&&ln(i,()=>{i=null})),h&&sr(!0)};cr(()=>{c=!1,t(l),c||u(null,null)},o),ae&&(n=ue)}g();g();g();var pc=null;function Ar(e,t){return t}function w7(e,t,r,n){for(var i=[],a=t.length,s=0;s0&&i.length===0&&r!==null;if(o){var c=r.parentNode;ho(c),c.append(r),n.clear(),Vi(e,t[0].prev,t[a-1].next)}tv(i,()=>{for(var l=0;l{var d=r(),h=an(d)?d:d==null?[]:ac(d),p=h.length;if(f&&p===0)return;f=p===0;let m=!1;if(ae){var v=s.data===Ca;v!==(p===0)&&(s=fo(),Qe(s),sr(!1),m=!0)}if(ae){for(var y=null,b,x=0;x0&&Qe(fo())}if(!ae){var k=fe;b7(h,o,s,i,t,(k.f&8192)!==0,n,r)}a!==null&&(p===0?u?Gi(u):u=Lt(()=>a(s)):u!==null&&ln(u,()=>{u=null})),m&&sr(!0),r()}),ae&&(s=ue)}function b7(e,t,r,n,i,a,s,o){var Q,de,ee,J;var c=(i&8)!==0,l=(i&3)!==0,u=e.length,f=t.items,d=t.first,h=d,p,m=null,v,y=[],b=[],x,E,_,k;if(c)for(k=0;k0){var D=i&4&&u===0?r:null;if(c){for(k=0;k{var Pe;if(v!==void 0)for(_ of v)(Pe=_.a)==null||Pe.apply()}),te.first=t.first&&t.first.e,te.last=m&&m.e}function _7(e,t,r,n){n&1&&oo(e.v,t),n&2?oo(e.i,r):e.i=r}function $3(e,t,r,n,i,a,s,o,c,l){var u=pc,f=(c&1)!==0,d=(c&16)===0,h=f?d?Ni(i):ut(i):i,p=c&2?ut(s):s;V&&f&&(h.debug=()=>{var v=typeof p=="number"?s:p.v;l()[v]});var m={i:p,v:h,k:a,a:null,e:null,prev:r,next:n};pc=m;try{return m.e=Lt(()=>o(e,h,p),ae),m.e.prev=r&&r.e,m.e.next=n&&n.e,r===null?t.first=m:(r.next=m,r.e.next=m.e),n!==null&&(n.prev=m,n.e.prev=m.e),m}finally{pc=u}}function I3(e,t,r){for(var n=e.next?e.next.e.nodes_start:r,i=t?t.e.nodes_start:r,a=e.e.nodes_start;a!==n;){var s=It(a);i.before(a),a=s}}function Vi(e,t,r){t===null?e.first=r:(t.next=r,t.e.next=r&&r.e),r!==null&&(r.prev=t,r.e.prev=t&&t.e)}g();g();g();g();g();g();function gt(e,t){ur(()=>{var i;var r=e.getRootNode(),n=r.host?r:(i=r.head)!=null?i:r.ownerDocument.head;if(!n.querySelector("#"+t.hash)){let a=document.createElement("style");a.id=t.hash,a.textContent=t.code,n.appendChild(a),V&&C3(t.hash,a)}})}g();g();g();g();g();function pe(e,t,r,n){var a;var i=(a=e.__attributes)!=null?a:e.__attributes={};if(ae&&(i[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName==="LINK")){n||k7(e,t,r!=null?r:"");return}i[t]!==(i[t]=r)&&(t==="style"&&"__styles"in e&&(e.__styles={}),t==="loading"&&(e[FC]=r),r==null?e.removeAttribute(t):typeof r!="string"&&A7(e).includes(t)?e[t]=r:e.setAttribute(t,r))}var D3=new Map;function A7(e){var t=D3.get(e.nodeName);if(t)return t;D3.set(e.nodeName,t=[]);for(var r,n=e,i=Element.prototype;i!==n;){r=R0(n);for(var a in r)r[a].set&&t.push(a);n=Ra(n)}return t}function k7(e,t,r){var n;V&&(t==="srcset"&&T7(e,r)||fv((n=e.getAttribute(t))!=null?n:"",r)||KC(t,e.outerHTML.replace(e.innerHTML,e.innerHTML&&"..."),String(r)))}function fv(e,t){return e===t?!0:new URL(e,document.baseURI).href===new URL(t,document.baseURI).href}function N3(e){return e.split(",").map(t=>t.trim().split(" ").filter(Boolean))}function T7(e,t){var r=N3(e.srcset),n=N3(t);return n.length===r.length&&n.every(([i,a],s)=>a===r[s][1]&&(fv(r[s][0],i)||fv(i,r[s][0])))}g();function at(e,t,r){if(r){if(e.classList.contains(t))return;e.classList.add(t)}else{if(!e.classList.contains(t))return;e.classList.remove(t)}}g();g();g();g();var C7=yd?()=>performance.now():()=>Date.now(),cn={tick:e=>(yd?requestAnimationFrame:br)(e),now:()=>C7(),tasks:new Set};function j3(){let e=cn.now();cn.tasks.forEach(t=>{t.c(e)||(cn.tasks.delete(t),t.f())}),cn.tasks.size!==0&&cn.tick(j3)}function B3(e){let t;return cn.tasks.size===0&&cn.tick(j3),{promise:new Promise(r=>{cn.tasks.add(t={c:e,f:r})}),abort(){cn.tasks.delete(t)}}}function jd(e,t){e.dispatchEvent(new CustomEvent(t))}function O7(e){if(e==="float")return"cssFloat";if(e==="offset")return"cssOffset";if(e.startsWith("--"))return e;let t=e.split("-");return t.length===1?t[0]:t[0]+t.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("")}function H3(e){let t={},r=e.split(";");for(let n of r){let[i,a]=n.split(":");if(!i||a===void 0)break;let s=O7(i.trim());t[s]=a.trim()}return t}var I7=e=>e;function un(e,t,r,n){var b;var i=(e&1)!==0,a=(e&2)!==0,s=i&&a,o=(e&4)!==0,c=s?"both":i?"in":"out",l,u=t.inert,f,d;function h(){var _;var x=fe,E=te;Tt(null),it(null);try{return l!=null?l:l=r()(t,(_=n==null?void 0:n())!=null?_:{},{direction:c})}finally{Tt(x),it(E)}}var p={is_global:o,in(){var x;if(t.inert=u,!i){d==null||d.abort(),(x=d==null?void 0:d.reset)==null||x.call(d);return}a||f==null||f.abort(),jd(t,"introstart"),f=dv(t,h(),d,1,()=>{jd(t,"introend"),f==null||f.abort(),f=l=void 0})},out(x){if(!a){x==null||x(),l=void 0;return}t.inert=!0,jd(t,"outrostart"),d=dv(t,h(),f,0,()=>{jd(t,"outroend"),x==null||x()})},stop:()=>{f==null||f.abort(),d==null||d.abort()}},m=te;if(((b=m.transitions)!=null?b:m.transitions=[]).push(p),i&&Nd){var v=o;if(!v){for(var y=m.parent;y&&y.f&65536;)for(;(y=y.parent)&&!(y.f&16););v=!y||(y.f&32768)!==0}v&&xr(()=>{Ue(()=>p.in())})}}function dv(e,t,r,n,i){var a=n===1;if(O0(t)){var s,o=!1;return ur(()=>{if(!o){var v=t({direction:a?"in":"out"});s=dv(e,v,r,n,i)}}),{abort:()=>{o=!0,s==null||s.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(r==null||r.deactivate(),!(t!=null&&t.duration))return i(),{abort:br,deactivate:br,reset:br,t:()=>n};let{delay:c=0,css:l,tick:u,easing:f=I7}=t;var d=[];if(a&&r===void 0&&(u&&u(0,1),l)){var h=H3(l(0,1));d.push(h,h)}var p=()=>1-n,m=e.animate(d,{duration:c});return m.onfinish=()=>{var A;var v=(A=r==null?void 0:r.t())!=null?A:1-n;r==null||r.abort();var y=n-v,b=t.duration*Math.abs(y),x=[];if(b>0){if(l)for(var E=Math.ceil(b/16.666666666666668),_=0;_<=E;_+=1){var k=v+y*f(_/E),w=l(k,1-k);x.push(H3(w))}p=()=>{var S=m.currentTime;return v+y*f(S/b)},u&&B3(()=>{if(m.playState!=="running")return!1;var S=p();return u(S,1-S),!0})}m=e.animate(x,{duration:b,fill:"forwards"}),m.onfinish=()=>{p=()=>n,u==null||u(n,1-n),i()}},{abort:()=>{m&&(m.cancel(),m.effect=null,m.onfinish=br)},deactivate:()=>{i=br},reset:()=>{n===0&&(u==null||u(1,0))},t:()=>p()}}g();g();function mv(e,t,r=t){var n=ji();av(e,"input",i=>{V&&e.type==="checkbox"&&F0();var a=i?e.defaultValue:e.value;if(a=hv(e)?pv(a):a,r(a),n&&a!==(a=t())){var s=e.selectionStart,o=e.selectionEnd;e.value=a!=null?a:"",o!==null&&(e.selectionStart=s,e.selectionEnd=Math.min(o,e.value.length))}}),(ae&&e.defaultValue!==e.value||Ue(t)==null&&e.value)&&r(hv(e)?pv(e.value):e.value),or(()=>{V&&e.type==="checkbox"&&F0();var i=t();hv(e)&&i===pv(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i!=null?i:"")})}function hv(e){var t=e.type;return t==="number"||t==="range"}function pv(e){return e===""?null:+e}g();g();g();g();g();g();function U3(e,t){return e===t||(e==null?void 0:e[_r])===t}function Ge(e={},t,r,n){return xr(()=>{var i,a;return or(()=>{i=a,a=(n==null?void 0:n())||[],Ue(()=>{e!==r(...a)&&(t(e,...a),i&&U3(r(...i),e)&&t(null,...i))})}),()=>{ur(()=>{a&&U3(r(...a),e)&&t(null,...a)})}}),e}g();g();g();g();g();g();g();g();g();function gv(e){he===null&&fc("onMount"),Jn&&he.l!==null?B7(he).m.push(e):$t(()=>{let t=Ue(e);if(typeof t=="function")return t})}function G3(e){he===null&&fc("onDestroy"),gv(()=>()=>Ue(e))}function B7(e){var r;var t=e.l;return(r=t.u)!=null?r:t.u={a:[],b:[],m:[]}}var Hd=!1;function vv(e){var t=Hd;try{return Hd=!1,[e(),Hd]}finally{Hd=t}}function z3(e){for(var t=te,r=te;t!==null&&!(t.f&96);)t=t.parent;try{return it(t),e()}finally{it(r)}}function si(e,t,r,n){var w,A;var i=(r&1)!==0,a=!Jn||(r&2)!==0,s=(r&8)!==0,o=(r&16)!==0,c=!1,l;s?[l,c]=vv(()=>e[t]):l=e[t];var u=_r in e||bd in e,f=(A=(w=jr(e,t))==null?void 0:w.set)!=null?A:u&&s&&t in e?S=>e[t]=S:void 0,d=n,h=!0,p=!1,m=()=>(p=!0,h&&(h=!1,o?d=Ue(n):d=n),d);l===void 0&&n!==void 0&&(f&&a&&HC(t),l=m(),f&&f(l));var v;if(a)v=()=>{var S=e[t];return S===void 0?m():(h=!0,p=!1,S)};else{var y=z3(()=>(i?Ye:z0)(()=>e[t]));y.f|=131072,v=()=>{var S=R(y);return S!==void 0&&(d=void 0),S===void 0?d:S}}if(!(r&4))return v;if(f){var b=e.$$legacy;return function(S,T){return arguments.length>0?((!a||!T||b||c)&&f(T?v():S),S):v()}}var x=!1,E=!1,_=Ni(l),k=z3(()=>Ye(()=>{var S=v(),T=R(_);return x?(x=!1,E=!0,T):(E=!1,_.v=S)}));return i||(k.equals=ao),function(S,T){if(oc!==null&&(x=E,v(),R(_)),arguments.length>0){let P=T?R(k):a&&s?be(S):S;return k.equals(P)||(x=!0,re(_,P),p&&d!==void 0&&(d=P),Ue(()=>R(k))),S}return R(k)}}g();g();g();g();function V3(e){return new yv(e)}var oi,qr,yv=class{constructor(t){Rc(this,oi);Rc(this,qr);var a,s;var r=new Map,n=(o,c)=>{var l=Ni(c);return r.set(o,l),l};let i=new Proxy({...t.props||{},$$events:{}},{get(o,c){var l;return R((l=r.get(c))!=null?l:n(c,Reflect.get(o,c)))},has(o,c){var l;return c===bd?!0:(R((l=r.get(c))!=null?l:n(c,Reflect.get(o,c))),Reflect.has(o,c))},set(o,c,l){var u;return re((u=r.get(c))!=null?u:n(c,l),l),Reflect.set(o,c,l)}});Mc(this,qr,(t.hydrate?lv:zi)(t.component,{target:t.target,anchor:t.anchor,props:i,context:t.context,intro:(a=t.intro)!=null?a:!1,recover:t.recover})),(!((s=t==null?void 0:t.props)!=null&&s.$$host)||t.sync===!1)&&yo(),Mc(this,oi,i.$$events);for(let o of Object.keys(Bt(this,qr)))o==="$set"||o==="$destroy"||o==="$on"||Mt(this,o,{get(){return Bt(this,qr)[o]},set(c){Bt(this,qr)[o]=c},enumerable:!0});Bt(this,qr).$set=o=>{Object.assign(i,o)},Bt(this,qr).$destroy=()=>{ai(Bt(this,qr))}}$set(t){Bt(this,qr).$set(t)}$on(t,r){Bt(this,oi)[t]=Bt(this,oi)[t]||[];let n=(...i)=>r.call(this,...i);return Bt(this,oi)[t].push(n),()=>{Bt(this,oi)[t]=Bt(this,oi)[t].filter(i=>i!==n)}}$destroy(){Bt(this,qr).$destroy()}};oi=new WeakMap,qr=new WeakMap;var Q7;typeof HTMLElement=="function"&&(Q7=class extends HTMLElement{constructor(t,r,n){super();Tr(this,"$$ctor");Tr(this,"$$s");Tr(this,"$$c");Tr(this,"$$cn",!1);Tr(this,"$$d",{});Tr(this,"$$r",!1);Tr(this,"$$p_d",{});Tr(this,"$$l",{});Tr(this,"$$l_u",new Map);Tr(this,"$$me");this.$$ctor=t,this.$$s=r,n&&this.attachShadow({mode:"open"})}addEventListener(t,r,n){if(this.$$l[t]=this.$$l[t]||[],this.$$l[t].push(r),this.$$c){let i=this.$$c.$on(t,r);this.$$l_u.set(r,i)}super.addEventListener(t,r,n)}removeEventListener(t,r,n){if(super.removeEventListener(t,r,n),this.$$c){let i=this.$$l_u.get(r);i&&(i(),this.$$l_u.delete(r))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let t=function(i){return a=>{let s=document.createElement("slot");i!=="default"&&(s.name=i),ne(a,s)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;let r={},n=e9(this);for(let i of this.$$s)i in n&&(i==="default"&&!this.$$d.children?(this.$$d.children=t(i),r.default=!0):r[i]=t(i));for(let i of this.attributes){let a=this.$$g_p(i.name);a in this.$$d||(this.$$d[a]=wv(a,i.value,this.$$p_d,"toProp"))}for(let i in this.$$p_d)!(i in this.$$d)&&this[i]!==void 0&&(this.$$d[i]=this[i],delete this[i]);this.$$c=V3({component:this.$$ctor,target:this.shadowRoot||this,props:{...this.$$d,$$slots:r,$$host:this}}),this.$$me=Z0(()=>{or(()=>{var i;this.$$r=!0;for(let a of P0(this.$$c)){if(!((i=this.$$p_d[a])!=null&&i.reflect))continue;this.$$d[a]=this.$$c[a];let s=wv(a,this.$$d[a],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[a].attribute||a):this.setAttribute(this.$$p_d[a].attribute||a,s)}this.$$r=!1})});for(let i in this.$$l)for(let a of this.$$l[i]){let s=this.$$c.$on(i,a);this.$$l_u.set(a,s)}this.$$l={}}}attributeChangedCallback(t,r,n){var i;this.$$r||(t=this.$$g_p(t),this.$$d[t]=wv(t,n,this.$$p_d,"toProp"),(i=this.$$c)==null||i.$set({[t]:this.$$d[t]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(t){return P0(this.$$p_d).find(r=>this.$$p_d[r].attribute===t||!this.$$p_d[r].attribute&&r.toLowerCase()===t)||t}});function wv(e,t,r,n){var a;let i=(a=r[e])==null?void 0:a.type;if(t=i==="Boolean"&&typeof t!="boolean"?t!=null:t,!n||!r[e])return t;if(n==="toAttribute")switch(i){case"Object":case"Array":return t==null?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t==null?null:t;default:return t}else switch(i){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":return t;case"Number":return t!=null?+t:t;default:return t}}function e9(e){let t={};return e.childNodes.forEach(r=>{t[r.slot||"default"]=!0}),t}g();g();g();function Na(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(u){try{l(n.next(u))}catch(f){s(f)}}function c(u){try{l(n.throw(u))}catch(f){s(f)}}function l(u){u.done?a(u.value):i(u.value).then(o,c)}l((n=n.apply(e,t||[])).next())})}var xv=require("obsidian");g();var bv=require("obsidian");g();function r9(e){let t=e-1;return t*t*t+1}function In(e,{delay:t=0,duration:r=400,easing:n=r9,axis:i="y"}={}){let a=getComputedStyle(e),s=+a.opacity,o=i==="y"?"height":"width",c=parseFloat(a[o]),l=i==="y"?["top","bottom"]:["left","right"],u=l.map(y=>`${y[0].toUpperCase()}${y.slice(1)}`),f=parseFloat(a[`padding${u[0]}`]),d=parseFloat(a[`padding${u[1]}`]),h=parseFloat(a[`margin${u[0]}`]),p=parseFloat(a[`margin${u[1]}`]),m=parseFloat(a[`border${u[0]}Width`]),v=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:r,easing:n,css:y=>`overflow: hidden;opacity: ${Math.min(y*20,1)*s};${o}: ${y*c}px;padding-${l[0]}: ${y*f}px;padding-${l[1]}: ${y*d}px;margin-${l[0]}: ${y*h}px;margin-${l[1]}: ${y*p}px;border-${l[0]}-width: ${y*m}px;border-${l[1]}-width: ${y*v}px;`}}g();var mc=require("obsidian");var n9=se('
'),i9=se('
'),a9={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function gc(e,t){Xe(t,!0),gt(e,a9);let r=be([]),n=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");$t(()=>{for(let y of r)y&&(0,mc.setIcon)(y,y.getAttr("data-icon"))});function i(y){y.stopPropagation(),Vs(t.diff.path)?a(y):s(y)}function a(y){var b;y.stopPropagation();let x=t.view.app.vault.getAbstractFileByPath(t.diff.vaultPath);x instanceof mc.TFile&&((b=tn(t.view.app,y))===null||b===void 0||b.openFile(x).catch(E=>t.view.plugin.displayError(E)))}function s(y){var b;t.view.plugin.tools.openDiff({event:y,aFile:(b=t.diff.fromPath)!==null&&b!==void 0?b:t.diff.path,aRef:`${t.diff.hash}^`,bFile:t.diff.path,bRef:t.diff.hash})}var o=i9();o.__click=i;var c=U(o),l=U(c),u=U(l,!0);xe(()=>Oe(u,Tn(t.diff.vaultPath))),H(l);var f=Z(l,2),d=U(f),h=U(d);{var p=y=>{var b=n9();b.__click=a,Ge(b,x=>r[0]=x,()=>r==null?void 0:r[0]),Er("auxclick",b,a),ne(y,b)};ge(h,y=>{t.view.app.vault.getAbstractFileByPath(t.diff.vaultPath)instanceof mc.TFile&&y(p)})}H(d);var m=Z(d,2),v=U(m,!0);H(m),H(f),H(c),H(o),xe(()=>{pe(c,"data-path",t.diff.vaultPath),pe(c,"data-tooltip-position",R(n)),pe(c,"aria-label",t.diff.vaultPath),pe(m,"data-type",t.diff.status),Oe(v,t.diff.status)}),Er("auxclick",o,y=>{y.stopPropagation(),y.button==2?kn(t.view.app,y,t.diff.vaultPath,t.view.leaf,"git-history"):i(y)}),ne(e,o),Ze()}dt(["click"]);g();var s9=se("
"),o9=(e,t,r)=>t(R(r)),l9=se(''),c9=se(''),u9=se('
'),f9={hash:"svelte-1lnl15d",code:"main.svelte-1lnl15d .nav-folder-title-content:where(.svelte-1lnl15d) {display:flex;align-items:center;}"};function vc(e,t){Xe(t,!0),gt(e,f9);let r=si(t,"topLevel",3,!1),n=be({}),i=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");function a(o){n[o.title]=!n[o.title]}var s=u9();kr(s,21,()=>t.hierarchy.children,Ar,(o,c)=>{var l=ii(),u=lr(l);{var f=h=>{var p=s9(),m=U(p);gc(m,{get diff(){return R(c).data},get view(){return t.view}}),H(p),ne(h,p)},d=h=>{var p=c9(),m=U(p);m.__click=[o9,a,c];var v=Z(U(m),2),y=Z(v,2),b=U(y,!0);H(y),H(m);var x=Z(m,2);{var E=_=>{var k=l9(),w=U(k);vc(w,{get hierarchy(){return R(c)},get plugin(){return t.plugin},get view(){return t.view}}),H(k),un(3,k,()=>In,()=>({duration:150})),ne(_,k)};ge(x,_=>{n[R(c).title]||_(E)})}H(p),xe(()=>{at(p,"is-collapsed",n[R(c).title]),pe(m,"data-tooltip-position",R(i)),pe(m,"aria-label",R(c).vaultPath),at(v,"is-collapsed",n[R(c).title]),Oe(b,R(c).title)}),ne(h,p)};ge(u,h=>{R(c).data?h(f):h(d,!1)})}ne(o,l)}),H(s),xe(()=>at(s,"topLevel",r())),ne(e,s),Ze()}dt(["click"]);var d9=(e,t)=>re(t,!R(t)),h9=se('
'),p9=se('
'),m9=se('
'),g9=se(''),v9=se('
'),y9={hash:"svelte-45h",code:""};function _v(e,t){Xe(t,!0),gt(e,y9);let r=Ye(()=>({title:"",path:"",vaultPath:"",children:t.plugin.gitManager.getTreeStructure(t.log.diff.files)})),n=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left"),i=ft(!0);function a(_){let k=_.author.name;if(t.plugin.settings.authorInHistoryView=="full")return k;if(t.plugin.settings.authorInHistoryView=="initials")return k.split(" ").filter(A=>A.length>0).map(A=>A[0].toUpperCase()).join("")}var s=v9(),o=U(s),c=U(o);xe(()=>{var _;return pe(c,"aria-label",`${t.log.refs.length>0?t.log.refs.join(", ")+` +`)})}if(y3(e,t),w3(t))throw e}function kd(e){var d,h;var t=At,r=Er,n=ti,i=fe,a=ni,s=on,o=he,c=e.f;At=null,Er=0,ti=null,fe=c&96?null:e,ni=!ri&&(c&256)!==0,on=null,he=e.ctx;try{var l=(0,e.fn)(),u=e.deps;if(At!==null){var f;if($a(e,Er),u!==null&&Er>0)for(u.length=Er+At.length,f=0;fe.fn)),dc=[]}function E3(){if(mo>1e3){mo=0;try{jC()}catch(e){if(z&&Mt(e,"stack",{value:""}),po!==null)if(z)try{go(e,po,null,null)}catch(t){throw b3(),t}else go(e,po,null,null);else throw z&&b3(),e}}mo++}function A3(e){var t=e.length;if(t!==0){E3();var r=ri;ri=!0;try{for(var n=0;n1001)return;let e=Da;Da=[],A3(e),fc||(mo=0,po=null,z&&(dc=[]))}function oo(e){Md===x3&&(fc||(fc=!0,queueMicrotask(l7))),po=e;for(var t=e;t.parent!==null;){t=t.parent;var r=t.f;if(r&96){if(!(r&1024))return;t.f^=1024}}Da.push(t)}function k3(e,t){var r=e.first,n=[];e:for(;r!==null;){var i=r.f,a=(i&32)!==0,s=a&&(i&1024)!==0,o=r.next;if(!s&&!(i&8192))if(i&8){if(a)r.f^=1024;else try{Bi(r)&&Fa(r)}catch(f){go(f,r,null,r.ctx)}var c=r.first;if(c!==null){r=c;continue}}else i&4&&n.push(r);if(o===null){let f=r.parent;for(;f!==null;){if(e===f)break e;var l=f.next;if(l!==null){r=l;continue e}f=f.parent}}r=o}for(var u=0;u0||i.length>0)&&vo(),mo=0,po=null,z&&(dc=[]),n}finally{Md=t,Da=r}}function R(e){var f,d;var t=e.f,r=(t&2)!==0;if(r&&t&16384){var n=z0(e);return cc(e),n}if(sc!==null&&sc.add(e),fe!==null){on!==null&&on.includes(e)&&VC();var i=fe.deps;At===null&&i!==null&&i[Er]===e?Er++:At===null?At=[e]:At.push(e),ti!==null&&te!==null&&te.f&1024&&!(te.f&32)&&ti.includes(e)&&(Xt(te,2048),oo(te))}else if(r&&e.deps===null)for(var a=e,s=a.parent,o=a;s!==null;)if(s.f&2){var c=s;o=c,s=c.parent}else{var l=s;(f=l.deriveds)!=null&&f.includes(o)||((d=l.deriveds)!=null?d:l.deriveds=[]).push(o);break}if(r&&(a=e,Bi(a)&&V0(a)),z&&Qn&&ac!==null&&fe!==null&&ac.reaction===fe){if(e.debug)e.debug();else if(e.created){var u=ac.entries.get(e);u===void 0&&(u={read:[]},ac.entries.set(e,u)),u.read.push(ei("TracedAt"))}}return e.v}function Ue(e){let t=fe;try{return fe=null,e()}finally{fe=t}}var c7=-7169;function Xt(e,t){e.f=e.f&c7|t}function Xe(e,t=!1,r){he={p:he,c:null,e:null,m:!1,s:e,x:null,l:null},Jn&&!t&&(he.l={s:null,u:null,r1:[],r2:ut(!1)}),z&&(he.function=r,zr=r)}function Ze(e){var s,o;let t=he;if(t!==null){e!==void 0&&(t.x=e);let c=t.e;if(c!==null){var r=te,n=fe;t.e=null;try{for(var i=0;i{if(r!==void 0)return r;UC(t)},set:n=>{r=n}})}};e("$state"),e("$effect"),e("$derived"),e("$inspect"),e("$props"),e("$bindable")}g();var T3=new Map;function C3(e,t){var r=T3.get(e);r||(r=new Set,T3.set(e,r)),r.add(t)}g();g();g();g();g();g();function rv(e){ae&&kt(e)!==null&&fo(e)}var P3=!1;function nv(){P3||(P3=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(let r of e.target.elements)(t=r.__on_r)==null||t.call(r)})},{capture:!0}))}function Fd(e){var t=fe,r=te;Tt(null),it(null);try{return e()}finally{Tt(t),it(r)}}function iv(e,t,r,n=r){e.addEventListener(t,()=>Fd(r));let i=e.__on_r;i?e.__on_r=()=>{i(),n(!0)}:e.__on_r=()=>n(!0),nv()}var av=new Set,$d=new Set;function R3(e,t,r,n){function i(a){if(n.capture||yo.call(t,a),!a.cancelBubble)return Fd(()=>r.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?fr(()=>{t.addEventListener(e,i,n)}):t.addEventListener(e,i,n),i}function Ar(e,t,r,n,i){var a={capture:n,passive:i},s=R3(e,t,r,a);(t===document.body||t===window||t===document)&&qr(()=>{t.removeEventListener(e,s,a)})}function dt(e){for(var t=0;t{throw x});throw d}}finally{e.__root=t,delete e.currentTarget,Tt(u),it(f)}}}g();var f7;function M3(){f7=void 0}g();g();function Ld(e){var t=document.createElement("template");return t.innerHTML=e,t.content}function Mn(e,t){var r=te;r.nodes_start===null&&(r.nodes_start=e,r.nodes_end=t)}function se(e,t){var r=(t&1)!==0,n=(t&2)!==0,i,a=!e.startsWith("");return()=>{if(ae)return Mn(ue,null),ue;i===void 0&&(i=Ld(a?e:""+e),r||(i=kt(i)));var s=n?document.importNode(i,!0):i.cloneNode(!0);if(r){var o=kt(s),c=s.lastChild;Mn(o,c)}else Mn(s,s);return s}}function ii(){if(ae)return Mn(ue,null),ue;var e=document.createDocumentFragment(),t=document.createComment(""),r=Vr();return e.append(t,r),Mn(t,r),e}function ne(e,t){if(ae){te.nodes_end=ue,Ot();return}e!==null&&e.before(t)}var Dd=!0;function Oe(e,t){var n;var r=t==null?"":typeof t=="object"?t+"":t;r!==((n=e.__t)!=null?n:e.__t=e.nodeValue)&&(e.__t=r,e.nodeValue=r==null?"":r+"")}function zi(e,t){return O3(e,t)}function ov(e,t){var s;Ad(),t.intro=(s=t.intro)!=null?s:!1;let r=t.target,n=ae,i=ue;try{for(var a=kt(r);a&&(a.nodeType!==8||a.data!==no);)a=It(a);if(!a)throw Di;or(!0),Qe(a),Ot();let o=O3(e,{...t,anchor:a});if(ue===null||ue.nodeType!==8||ue.data!==Pa)throw lo(),Di;return or(!1),o}catch(o){if(o===Di)return t.recover===!1&&BC(),Ad(),fo(r),or(!1),zi(e,t);throw o}finally{or(n),Qe(i),M3()}}var wo=new Map;function O3(e,{target:t,anchor:r,props:n={},events:i,context:a,intro:s=!0}){Ad();var o=new Set,c=f=>{for(var d=0;d{var f=r!=null?r:t.appendChild(Vr());return Lt(()=>{if(a){Xe({});var d=he;d.c=a}i&&(n.$$events=i),ae&&Mn(f,null),Dd=s,l=e(f,n)||{},Dd=!0,ae&&(te.nodes_end=ue),a&&Ze()}),()=>{var p;for(var d of o){t.removeEventListener(d,yo);var h=wo.get(d);--h===0?(document.removeEventListener(d,yo),wo.delete(d)):wo.set(d,h)}$d.delete(c),f!==r&&((p=f.parentNode)==null||p.removeChild(f))}});return sv.set(l,u),l}var sv=new WeakMap;function ai(e,t){let r=sv.get(e);return r?(sv.delete(e),r(t)):(z&&JC(),Promise.resolve())}g();g();g();g();function ge(e,t,r=!1){ae&&Ot();var n=e,i=null,a=null,s=ct,o=r?65536:0,c=!1;let l=(f,d=!0)=>{c=!0,u(d,f)},u=(f,d)=>{if(s===(s=f))return;let h=!1;if(ae){let p=n.data===Ca;!!s===p&&(n=uo(),Qe(n),or(!1),h=!0)}s?(i?Gi(i):d&&(i=Lt(()=>d(n))),a&&cn(a,()=>{a=null})):(a?Gi(a):d&&(a=Lt(()=>d(n))),i&&cn(i,()=>{i=null})),h&&or(!0)};ur(()=>{c=!1,t(l),c||u(null,null)},o),ae&&(n=ue)}g();g();g();var hc=null;function kr(e,t){return t}function w7(e,t,r,n){for(var i=[],a=t.length,s=0;s0&&i.length===0&&r!==null;if(o){var c=r.parentNode;fo(c),c.append(r),n.clear(),Vi(e,t[0].prev,t[a-1].next)}ev(i,()=>{for(var l=0;l{var d=r(),h=sn(d)?d:d==null?[]:ic(d),p=h.length;if(f&&p===0)return;f=p===0;let m=!1;if(ae){var v=s.data===Ca;v!==(p===0)&&(s=uo(),Qe(s),or(!1),m=!0)}if(ae){for(var y=null,b,x=0;x0&&Qe(uo())}if(!ae){var k=fe;b7(h,o,s,i,t,(k.f&8192)!==0,n,r)}a!==null&&(p===0?u?Gi(u):u=Lt(()=>a(s)):u!==null&&cn(u,()=>{u=null})),m&&or(!0),r()}),ae&&(s=ue)}function b7(e,t,r,n,i,a,s,o){var Q,de,ee,J;var c=(i&8)!==0,l=(i&3)!==0,u=e.length,f=t.items,d=t.first,h=d,p,m=null,v,y=[],b=[],x,E,_,k;if(c)for(k=0;k0){var D=i&4&&u===0?r:null;if(c){for(k=0;k{var Pe;if(v!==void 0)for(_ of v)(Pe=_.a)==null||Pe.apply()}),te.first=t.first&&t.first.e,te.last=m&&m.e}function _7(e,t,r,n){n&1&&so(e.v,t),n&2?so(e.i,r):e.i=r}function $3(e,t,r,n,i,a,s,o,c,l){var u=hc,f=(c&1)!==0,d=(c&16)===0,h=f?d?Ni(i):ut(i):i,p=c&2?ut(s):s;z&&f&&(h.debug=()=>{var v=typeof p=="number"?s:p.v;l()[v]});var m={i:p,v:h,k:a,a:null,e:null,prev:r,next:n};hc=m;try{return m.e=Lt(()=>o(e,h,p),ae),m.e.prev=r&&r.e,m.e.next=n&&n.e,r===null?t.first=m:(r.next=m,r.e.next=m.e),n!==null&&(n.prev=m,n.e.prev=m.e),m}finally{hc=u}}function I3(e,t,r){for(var n=e.next?e.next.e.nodes_start:r,i=t?t.e.nodes_start:r,a=e.e.nodes_start;a!==n;){var s=It(a);i.before(a),a=s}}function Vi(e,t,r){t===null?e.first=r:(t.next=r,t.e.next=r&&r.e),r!==null&&(r.prev=t,r.e.prev=t&&t.e)}g();g();g();g();g();g();function gt(e,t){fr(()=>{var i;var r=e.getRootNode(),n=r.host?r:(i=r.head)!=null?i:r.ownerDocument.head;if(!n.querySelector("#"+t.hash)){let a=document.createElement("style");a.id=t.hash,a.textContent=t.code,n.appendChild(a),z&&C3(t.hash,a)}})}g();g();g();g();g();function pe(e,t,r,n){var a;var i=(a=e.__attributes)!=null?a:e.__attributes={};if(ae&&(i[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName==="LINK")){n||k7(e,t,r!=null?r:"");return}i[t]!==(i[t]=r)&&(t==="style"&&"__styles"in e&&(e.__styles={}),t==="loading"&&(e[FC]=r),r==null?e.removeAttribute(t):typeof r!="string"&&A7(e).includes(t)?e[t]=r:e.setAttribute(t,r))}var D3=new Map;function A7(e){var t=D3.get(e.nodeName);if(t)return t;D3.set(e.nodeName,t=[]);for(var r,n=e,i=Element.prototype;i!==n;){r=P0(n);for(var a in r)r[a].set&&t.push(a);n=Ra(n)}return t}function k7(e,t,r){var n;z&&(t==="srcset"&&T7(e,r)||uv((n=e.getAttribute(t))!=null?n:"",r)||KC(t,e.outerHTML.replace(e.innerHTML,e.innerHTML&&"..."),String(r)))}function uv(e,t){return e===t?!0:new URL(e,document.baseURI).href===new URL(t,document.baseURI).href}function N3(e){return e.split(",").map(t=>t.trim().split(" ").filter(Boolean))}function T7(e,t){var r=N3(e.srcset),n=N3(t);return n.length===r.length&&n.every(([i,a],s)=>a===r[s][1]&&(uv(r[s][0],i)||uv(i,r[s][0])))}g();function at(e,t,r){if(r){if(e.classList.contains(t))return;e.classList.add(t)}else{if(!e.classList.contains(t))return;e.classList.remove(t)}}g();g();g();g();var C7=vd?()=>performance.now():()=>Date.now(),un={tick:e=>(vd?requestAnimationFrame:_r)(e),now:()=>C7(),tasks:new Set};function j3(){let e=un.now();un.tasks.forEach(t=>{t.c(e)||(un.tasks.delete(t),t.f())}),un.tasks.size!==0&&un.tick(j3)}function B3(e){let t;return un.tasks.size===0&&un.tick(j3),{promise:new Promise(r=>{un.tasks.add(t={c:e,f:r})}),abort(){un.tasks.delete(t)}}}function Nd(e,t){e.dispatchEvent(new CustomEvent(t))}function O7(e){if(e==="float")return"cssFloat";if(e==="offset")return"cssOffset";if(e.startsWith("--"))return e;let t=e.split("-");return t.length===1?t[0]:t[0]+t.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("")}function H3(e){let t={},r=e.split(";");for(let n of r){let[i,a]=n.split(":");if(!i||a===void 0)break;let s=O7(i.trim());t[s]=a.trim()}return t}var I7=e=>e;function fn(e,t,r,n){var b;var i=(e&1)!==0,a=(e&2)!==0,s=i&&a,o=(e&4)!==0,c=s?"both":i?"in":"out",l,u=t.inert,f,d;function h(){var _;var x=fe,E=te;Tt(null),it(null);try{return l!=null?l:l=r()(t,(_=n==null?void 0:n())!=null?_:{},{direction:c})}finally{Tt(x),it(E)}}var p={is_global:o,in(){var x;if(t.inert=u,!i){d==null||d.abort(),(x=d==null?void 0:d.reset)==null||x.call(d);return}a||f==null||f.abort(),Nd(t,"introstart"),f=fv(t,h(),d,1,()=>{Nd(t,"introend"),f==null||f.abort(),f=l=void 0})},out(x){if(!a){x==null||x(),l=void 0;return}t.inert=!0,Nd(t,"outrostart"),d=fv(t,h(),f,0,()=>{Nd(t,"outroend"),x==null||x()})},stop:()=>{f==null||f.abort(),d==null||d.abort()}},m=te;if(((b=m.transitions)!=null?b:m.transitions=[]).push(p),i&&Dd){var v=o;if(!v){for(var y=m.parent;y&&y.f&65536;)for(;(y=y.parent)&&!(y.f&16););v=!y||(y.f&32768)!==0}v&&Sr(()=>{Ue(()=>p.in())})}}function fv(e,t,r,n,i){var a=n===1;if(M0(t)){var s,o=!1;return fr(()=>{if(!o){var v=t({direction:a?"in":"out"});s=fv(e,v,r,n,i)}}),{abort:()=>{o=!0,s==null||s.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(r==null||r.deactivate(),!(t!=null&&t.duration))return i(),{abort:_r,deactivate:_r,reset:_r,t:()=>n};let{delay:c=0,css:l,tick:u,easing:f=I7}=t;var d=[];if(a&&r===void 0&&(u&&u(0,1),l)){var h=H3(l(0,1));d.push(h,h)}var p=()=>1-n,m=e.animate(d,{duration:c});return m.onfinish=()=>{var A;var v=(A=r==null?void 0:r.t())!=null?A:1-n;r==null||r.abort();var y=n-v,b=t.duration*Math.abs(y),x=[];if(b>0){if(l)for(var E=Math.ceil(b/16.666666666666668),_=0;_<=E;_+=1){var k=v+y*f(_/E),w=l(k,1-k);x.push(H3(w))}p=()=>{var S=m.currentTime;return v+y*f(S/b)},u&&B3(()=>{if(m.playState!=="running")return!1;var S=p();return u(S,1-S),!0})}m=e.animate(x,{duration:b,fill:"forwards"}),m.onfinish=()=>{p=()=>n,u==null||u(n,1-n),i()}},{abort:()=>{m&&(m.cancel(),m.effect=null,m.onfinish=_r)},deactivate:()=>{i=_r},reset:()=>{n===0&&(u==null||u(1,0))},t:()=>p()}}g();g();function pv(e,t,r=t){var n=ji();iv(e,"input",i=>{z&&e.type==="checkbox"&&I0();var a=i?e.defaultValue:e.value;if(a=dv(e)?hv(a):a,r(a),n&&a!==(a=t())){var s=e.selectionStart,o=e.selectionEnd;e.value=a!=null?a:"",o!==null&&(e.selectionStart=s,e.selectionEnd=Math.min(o,e.value.length))}}),(ae&&e.defaultValue!==e.value||Ue(t)==null&&e.value)&&r(dv(e)?hv(e.value):e.value),lr(()=>{z&&e.type==="checkbox"&&I0();var i=t();dv(e)&&i===hv(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i!=null?i:"")})}function dv(e){var t=e.type;return t==="number"||t==="range"}function hv(e){return e===""?null:+e}g();g();g();g();g();g();function U3(e,t){return e===t||(e==null?void 0:e[xr])===t}function Ge(e={},t,r,n){return Sr(()=>{var i,a;return lr(()=>{i=a,a=(n==null?void 0:n())||[],Ue(()=>{e!==r(...a)&&(t(e,...a),i&&U3(r(...i),e)&&t(null,...i))})}),()=>{fr(()=>{a&&U3(r(...a),e)&&t(null,...a)})}}),e}g();g();g();g();g();g();g();g();g();function mv(e){he===null&&uc("onMount"),Jn&&he.l!==null?B7(he).m.push(e):$t(()=>{let t=Ue(e);if(typeof t=="function")return t})}function G3(e){he===null&&uc("onDestroy"),mv(()=>()=>Ue(e))}function B7(e){var r;var t=e.l;return(r=t.u)!=null?r:t.u={a:[],b:[],m:[]}}var Bd=!1;function gv(e){var t=Bd;try{return Bd=!1,[e(),Bd]}finally{Bd=t}}function z3(e){for(var t=te,r=te;t!==null&&!(t.f&96);)t=t.parent;try{return it(t),e()}finally{it(r)}}function si(e,t,r,n){var w,A;var i=(r&1)!==0,a=!Jn||(r&2)!==0,s=(r&8)!==0,o=(r&16)!==0,c=!1,l;s?[l,c]=gv(()=>e[t]):l=e[t];var u=xr in e||wd in e,f=(A=(w=Br(e,t))==null?void 0:w.set)!=null?A:u&&s&&t in e?S=>e[t]=S:void 0,d=n,h=!0,p=!1,m=()=>(p=!0,h&&(h=!1,o?d=Ue(n):d=n),d);l===void 0&&n!==void 0&&(f&&a&&HC(t),l=m(),f&&f(l));var v;if(a)v=()=>{var S=e[t];return S===void 0?m():(h=!0,p=!1,S)};else{var y=z3(()=>(i?Ye:G0)(()=>e[t]));y.f|=131072,v=()=>{var S=R(y);return S!==void 0&&(d=void 0),S===void 0?d:S}}if(!(r&4))return v;if(f){var b=e.$$legacy;return function(S,T){return arguments.length>0?((!a||!T||b||c)&&f(T?v():S),S):v()}}var x=!1,E=!1,_=Ni(l),k=z3(()=>Ye(()=>{var S=v(),T=R(_);return x?(x=!1,E=!0,T):(E=!1,_.v=S)}));return i||(k.equals=io),function(S,T){if(sc!==null&&(x=E,v(),R(_)),arguments.length>0){let P=T?R(k):a&&s?be(S):S;return k.equals(P)||(x=!0,re(_,P),p&&d!==void 0&&(d=P),Ue(()=>R(k))),S}return R(k)}}g();g();g();g();function V3(e){return new vv(e)}var oi,Yr,vv=class{constructor(t){Pc(this,oi);Pc(this,Yr);var a,s;var r=new Map,n=(o,c)=>{var l=Ni(c);return r.set(o,l),l};let i=new Proxy({...t.props||{},$$events:{}},{get(o,c){var l;return R((l=r.get(c))!=null?l:n(c,Reflect.get(o,c)))},has(o,c){var l;return c===wd?!0:(R((l=r.get(c))!=null?l:n(c,Reflect.get(o,c))),Reflect.has(o,c))},set(o,c,l){var u;return re((u=r.get(c))!=null?u:n(c,l),l),Reflect.set(o,c,l)}});Rc(this,Yr,(t.hydrate?ov:zi)(t.component,{target:t.target,anchor:t.anchor,props:i,context:t.context,intro:(a=t.intro)!=null?a:!1,recover:t.recover})),(!((s=t==null?void 0:t.props)!=null&&s.$$host)||t.sync===!1)&&vo(),Rc(this,oi,i.$$events);for(let o of Object.keys(Bt(this,Yr)))o==="$set"||o==="$destroy"||o==="$on"||Mt(this,o,{get(){return Bt(this,Yr)[o]},set(c){Bt(this,Yr)[o]=c},enumerable:!0});Bt(this,Yr).$set=o=>{Object.assign(i,o)},Bt(this,Yr).$destroy=()=>{ai(Bt(this,Yr))}}$set(t){Bt(this,Yr).$set(t)}$on(t,r){Bt(this,oi)[t]=Bt(this,oi)[t]||[];let n=(...i)=>r.call(this,...i);return Bt(this,oi)[t].push(n),()=>{Bt(this,oi)[t]=Bt(this,oi)[t].filter(i=>i!==n)}}$destroy(){Bt(this,Yr).$destroy()}};oi=new WeakMap,Yr=new WeakMap;var Q7;typeof HTMLElement=="function"&&(Q7=class extends HTMLElement{constructor(t,r,n){super();Cr(this,"$$ctor");Cr(this,"$$s");Cr(this,"$$c");Cr(this,"$$cn",!1);Cr(this,"$$d",{});Cr(this,"$$r",!1);Cr(this,"$$p_d",{});Cr(this,"$$l",{});Cr(this,"$$l_u",new Map);Cr(this,"$$me");this.$$ctor=t,this.$$s=r,n&&this.attachShadow({mode:"open"})}addEventListener(t,r,n){if(this.$$l[t]=this.$$l[t]||[],this.$$l[t].push(r),this.$$c){let i=this.$$c.$on(t,r);this.$$l_u.set(r,i)}super.addEventListener(t,r,n)}removeEventListener(t,r,n){if(super.removeEventListener(t,r,n),this.$$c){let i=this.$$l_u.get(r);i&&(i(),this.$$l_u.delete(r))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let t=function(i){return a=>{let s=document.createElement("slot");i!=="default"&&(s.name=i),ne(a,s)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;let r={},n=e9(this);for(let i of this.$$s)i in n&&(i==="default"&&!this.$$d.children?(this.$$d.children=t(i),r.default=!0):r[i]=t(i));for(let i of this.attributes){let a=this.$$g_p(i.name);a in this.$$d||(this.$$d[a]=yv(a,i.value,this.$$p_d,"toProp"))}for(let i in this.$$p_d)!(i in this.$$d)&&this[i]!==void 0&&(this.$$d[i]=this[i],delete this[i]);this.$$c=V3({component:this.$$ctor,target:this.shadowRoot||this,props:{...this.$$d,$$slots:r,$$host:this}}),this.$$me=X0(()=>{lr(()=>{var i;this.$$r=!0;for(let a of C0(this.$$c)){if(!((i=this.$$p_d[a])!=null&&i.reflect))continue;this.$$d[a]=this.$$c[a];let s=yv(a,this.$$d[a],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[a].attribute||a):this.setAttribute(this.$$p_d[a].attribute||a,s)}this.$$r=!1})});for(let i in this.$$l)for(let a of this.$$l[i]){let s=this.$$c.$on(i,a);this.$$l_u.set(a,s)}this.$$l={}}}attributeChangedCallback(t,r,n){var i;this.$$r||(t=this.$$g_p(t),this.$$d[t]=yv(t,n,this.$$p_d,"toProp"),(i=this.$$c)==null||i.$set({[t]:this.$$d[t]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(t){return C0(this.$$p_d).find(r=>this.$$p_d[r].attribute===t||!this.$$p_d[r].attribute&&r.toLowerCase()===t)||t}});function yv(e,t,r,n){var a;let i=(a=r[e])==null?void 0:a.type;if(t=i==="Boolean"&&typeof t!="boolean"?t!=null:t,!n||!r[e])return t;if(n==="toAttribute")switch(i){case"Object":case"Array":return t==null?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t==null?null:t;default:return t}else switch(i){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":return t;case"Number":return t!=null?+t:t;default:return t}}function e9(e){let t={};return e.childNodes.forEach(r=>{t[r.slot||"default"]=!0}),t}g();g();g();function bo(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(u){try{l(n.next(u))}catch(f){s(f)}}function c(u){try{l(n.throw(u))}catch(f){s(f)}}function l(u){u.done?a(u.value):i(u.value).then(o,c)}l((n=n.apply(e,t||[])).next())})}var _v=require("obsidian");g();var wv=require("obsidian");g();function r9(e){let t=e-1;return t*t*t+1}function In(e,{delay:t=0,duration:r=400,easing:n=r9,axis:i="y"}={}){let a=getComputedStyle(e),s=+a.opacity,o=i==="y"?"height":"width",c=parseFloat(a[o]),l=i==="y"?["top","bottom"]:["left","right"],u=l.map(y=>`${y[0].toUpperCase()}${y.slice(1)}`),f=parseFloat(a[`padding${u[0]}`]),d=parseFloat(a[`padding${u[1]}`]),h=parseFloat(a[`margin${u[0]}`]),p=parseFloat(a[`margin${u[1]}`]),m=parseFloat(a[`border${u[0]}Width`]),v=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:r,easing:n,css:y=>`overflow: hidden;opacity: ${Math.min(y*20,1)*s};${o}: ${y*c}px;padding-${l[0]}: ${y*f}px;padding-${l[1]}: ${y*d}px;margin-${l[0]}: ${y*h}px;margin-${l[1]}: ${y*p}px;border-${l[0]}-width: ${y*m}px;border-${l[1]}-width: ${y*v}px;`}}g();var pc=require("obsidian");var n9=se('
'),i9=se('
'),a9={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function mc(e,t){Xe(t,!0),gt(e,a9);let r=be([]),n=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");$t(()=>{for(let y of r)y&&(0,pc.setIcon)(y,y.getAttr("data-icon"))});function i(y){y.stopPropagation(),zs(t.diff.path)?a(y):s(y)}function a(y){var b;y.stopPropagation();let x=t.view.app.vault.getAbstractFileByPath(t.diff.vaultPath);x instanceof pc.TFile&&((b=rn(t.view.app,y))===null||b===void 0||b.openFile(x).catch(E=>t.view.plugin.displayError(E)))}function s(y){var b;t.view.plugin.tools.openDiff({event:y,aFile:(b=t.diff.fromPath)!==null&&b!==void 0?b:t.diff.path,aRef:`${t.diff.hash}^`,bFile:t.diff.path,bRef:t.diff.hash})}var o=i9();o.__click=i;var c=H(o),l=H(c),u=H(l,!0);xe(()=>Oe(u,Tn(t.diff.vaultPath))),B(l);var f=Z(l,2),d=H(f),h=H(d);{var p=y=>{var b=n9();b.__click=a,Ge(b,x=>r[0]=x,()=>r==null?void 0:r[0]),Ar("auxclick",b,a),ne(y,b)};ge(h,y=>{t.view.app.vault.getAbstractFileByPath(t.diff.vaultPath)instanceof pc.TFile&&y(p)})}B(d);var m=Z(d,2),v=H(m,!0);B(m),B(f),B(c),B(o),xe(()=>{pe(c,"data-path",t.diff.vaultPath),pe(c,"data-tooltip-position",R(n)),pe(c,"aria-label",t.diff.vaultPath),pe(m,"data-type",t.diff.status),Oe(v,t.diff.status)}),Ar("auxclick",o,y=>{y.stopPropagation(),y.button==2?kn(t.view.app,y,t.diff.vaultPath,t.view.leaf,"git-history"):i(y)}),ne(e,o),Ze()}dt(["click"]);g();var s9=se("
"),o9=(e,t,r)=>t(R(r)),l9=se(''),c9=se(''),u9=se('
'),f9={hash:"svelte-1lnl15d",code:"main.svelte-1lnl15d .nav-folder-title-content:where(.svelte-1lnl15d) {display:flex;align-items:center;}"};function gc(e,t){Xe(t,!0),gt(e,f9);let r=si(t,"topLevel",3,!1),n=be({}),i=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");function a(o){n[o.title]=!n[o.title]}var s=u9();Tr(s,21,()=>t.hierarchy.children,kr,(o,c)=>{var l=ii(),u=cr(l);{var f=h=>{var p=s9(),m=H(p);mc(m,{get diff(){return R(c).data},get view(){return t.view}}),B(p),ne(h,p)},d=h=>{var p=c9(),m=H(p);m.__click=[o9,a,c];var v=Z(H(m),2),y=Z(v,2),b=H(y,!0);B(y),B(m);var x=Z(m,2);{var E=_=>{var k=l9(),w=H(k);gc(w,{get hierarchy(){return R(c)},get plugin(){return t.plugin},get view(){return t.view}}),B(k),fn(3,k,()=>In,()=>({duration:150})),ne(_,k)};ge(x,_=>{n[R(c).title]||_(E)})}B(p),xe(()=>{at(p,"is-collapsed",n[R(c).title]),pe(m,"data-tooltip-position",R(i)),pe(m,"aria-label",R(c).vaultPath),at(v,"is-collapsed",n[R(c).title]),Oe(b,R(c).title)}),ne(h,p)};ge(u,h=>{R(c).data?h(f):h(d,!1)})}ne(o,l)}),B(s),xe(()=>at(s,"topLevel",r())),ne(e,s),Ze()}dt(["click"]);var d9=(e,t)=>re(t,!R(t)),h9=se('
'),p9=se('
'),m9=se('
'),g9=se(''),v9=se('
'),y9={hash:"svelte-45h",code:""};function bv(e,t){Xe(t,!0),gt(e,y9);let r=Ye(()=>({title:"",path:"",vaultPath:"",children:t.plugin.gitManager.getTreeStructure(t.log.diff.files)})),n=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left"),i=ft(!0);function a(_){let k=_.author.name;if(t.plugin.settings.authorInHistoryView=="full")return k;if(t.plugin.settings.authorInHistoryView=="initials")return k.split(" ").filter(A=>A.length>0).map(A=>A[0].toUpperCase()).join("")}var s=v9(),o=H(s),c=H(o);xe(()=>{var _;return pe(c,"aria-label",`${t.log.refs.length>0?t.log.refs.join(", ")+` `:""}${(_=t.log.author)==null?void 0:_.name} -${(0,bv.moment)(t.log.date).format(t.plugin.settings.commitDateFormat)} -${t.log.message}`)}),c.__click=[d9,i];var l=U(c),u=Z(l,2),f=U(u);{var d=_=>{var k=h9(),w=U(k,!0);xe(()=>Oe(w,t.log.refs.join(", "))),H(k),ne(_,k)};ge(f,_=>{t.log.refs.length>0&&_(d)})}var h=Z(f,2);{var p=_=>{var k=p9(),w=U(k,!0);xe(()=>Oe(w,a(t.log))),H(k),ne(_,k)};ge(h,_=>{var k;t.plugin.settings.authorInHistoryView!="hide"&&((k=t.log.author)!=null&&k.name)&&_(p)})}var m=Z(h,2);{var v=_=>{var k=m9(),w=U(k,!0);xe(()=>Oe(w,(0,bv.moment)(t.log.date).format(t.plugin.settings.commitDateFormat))),H(k),ne(_,k)};ge(m,_=>{t.plugin.settings.dateInHistoryView&&_(v)})}var y=Z(m,2),b=U(y,!0);H(y),H(u),H(c);var x=Z(c,2);{var E=_=>{var k=g9(),w=U(k);{var A=T=>{vc(T,{get hierarchy(){return R(r)},get plugin(){return t.plugin},get view(){return t.view},topLevel:!0})},S=T=>{var P=ii(),O=lr(P);kr(O,17,()=>t.log.diff.files,Ar,(j,D)=>{gc(j,{get view(){return t.view},get diff(){return R(D)}})}),ne(T,P)};ge(w,T=>{t.showTree?T(A):T(S,!1)})}H(k),un(3,k,()=>In,()=>({duration:150})),ne(_,k)};ge(x,_=>{R(i)||_(E)})}H(o),H(s),xe(()=>{at(o,"is-collapsed",R(i)),pe(c,"data-tooltip-position",R(n)),at(l,"is-collapsed",R(i)),Oe(b,t.log.message)}),ne(e,s),Ze()}dt(["click"]);function w9(e,t){t().catch(console.error)}var b9=(e,t,r,n)=>{re(t,!R(t)),(0,xv.setIcon)(r[0],R(t)?"list":"folder"),n(n().settings.treeStructure=R(t),!0),n().saveSettings()},_9=se(''),x9=se('
'),S9={hash:"svelte-45h",code:""};function Sv(e,t){Xe(t,!0),gt(e,S9);let r=si(t,"plugin",15),n=ft(!1),i=be([]),a=ft(void 0),s=ft(be(r().settings.treeStructure)),o,c;$t(()=>{c&&c.empty()}),o=t.view.app.workspace.on("obsidian-git:head-change",()=>void l().catch(console.error)),$t(()=>{i.forEach(x=>(0,xv.setIcon)(x,x.getAttr("data-icon")))}),G3(()=>{t.view.app.workspace.offref(o)}),gv(()=>{let x=new IntersectionObserver(_=>{_[0].isIntersecting&&!R(n)&&u().catch(console.error)}),E=document.querySelector("#sentinel");return E&&x.observe(E),()=>{x.disconnect()}}),l().catch(console.error);function l(){return Na(this,void 0,void 0,function*(){var x;if(!r().gitReady){re(a,void 0);return}re(n,!0);let E=r().gitManager instanceof Te,_;((x=R(a)===null||R(a)===void 0?void 0:R(a).length)!==null&&x!==void 0?x:0)==0?_=E?50:10:_=R(a).length,re(a,be(yield r().gitManager.log(void 0,!1,_))),re(n,!1)})}function u(){return Na(this,void 0,void 0,function*(){var x;if(!r().gitReady||R(a)===void 0)return;re(n,!0);let _=r().gitManager instanceof Te?50:10,k=yield r().gitManager.log(void 0,!1,_,(x=R(a).last())===null||x===void 0?void 0:x.hash);R(a).push(...k.slice(1)),re(n,!1)})}var f=x9(),d=U(f),h=U(d),p=U(h);p.__click=[b9,s,i,r],Ge(p,x=>i[0]=x,()=>i==null?void 0:i[0]);var m=Z(p,2);m.__click=[w9,l],Ge(m,x=>i[1]=x,()=>i==null?void 0:i[1]),H(h),H(d);var v=Z(d,2),y=U(v);{var b=x=>{var E=_9();kr(E,21,()=>R(a),Ar,(_,k)=>{_v(_,{get view(){return t.view},get showTree(){return R(s)},get log(){return R(k)},get plugin(){return r()}})}),H(E),ne(x,E)};ge(y,x=>{R(a)&&x(b)})}H(v),uo(4),H(f),xe(()=>{pe(p,"data-icon",R(s)?"list":"folder"),at(m,"loading",R(n))}),ne(e,f),Ze()}dt(["click"]);var yc=class extends W3.ItemView{constructor(t,r){super(t),this.plugin=r,this.hoverPopover=null}getViewType(){return Fr.type}getDisplayText(){return Fr.name}getIcon(){return Fr.icon}onClose(){return this._view&&ai(this._view),super.onClose()}reload(){this._view&&ai(this._view),this._view=zi(Sv,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};g();var q3=require("obsidian"),Ud=class extends q3.FuzzySuggestModal{constructor(r,n){super(r.app);this.branches=n;this.setPlaceholder("Select branch to checkout")}getItems(){return this.branches}getItemText(r){return r}onChooseItem(r,n){this.resolve(r)}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}};g();var Q3=require("obsidian");g();var Ac=require("obsidian");g();var Y3=require("obsidian"),Wi=class extends Y3.Modal{constructor(r,n,i){super(r);this.deletion=n;this.filename=i;this.resolve=null}myOpen(){return this.open(),new Promise(r=>{this.resolve=r})}onOpen(){let{contentEl:r,titleEl:n}=this;n.setText(`${this.deletion?"Delete":"Discard"} this file?`),r.createEl("p").setText(`Do you really want to ${this.deletion?"delete":"discard the changes of"} "${this.filename}"`);let i=r.createDiv({cls:"modal-button-container"}),a=i.createEl("button",{cls:"mod-warning",text:this.deletion?"Delete":"Discard"});a.addEventListener("click",()=>{this.resolve&&this.resolve(!0),this.close()}),a.addEventListener("keypress",()=>{this.resolve&&this.resolve(!0),this.close()});let s=i.createEl("button",{text:"Cancel"});s.addEventListener("click",()=>(this.resolve&&this.resolve(!1),this.close())),s.addEventListener("keypress",()=>(this.resolve&&this.resolve(!1),this.close()))}onClose(){let{contentEl:r}=this;r.empty()}};g();var bc=require("obsidian");g();g();var E9=ze(X3()),qi=require("obsidian");function ja(e,t,r){let n=e.target;app.workspace.trigger("hover-link",{event:e,source:t.getViewType(),hoverParent:t,targetEl:n,linktext:r})}function A9(e,t){t.view.app.vault.getAbstractFileByPath(t.change.vaultPath)&&ja(e,t.view,t.change.vaultPath)}function k9(e,t){e.stopPropagation(),t.manager.stage(t.change.path,!1).catch(r=>t.view.plugin.displayError(r)).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})}function T9(e,t){e.stopPropagation();let r=t.change.workingDir=="U";new Wi(t.view.app,r,t.change.vaultPath).myOpen().then(n=>{if(n===!0)return r?t.view.app.vault.adapter.remove(t.change.vaultPath).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")}):t.manager.discard(t.change.path).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})},n=>t.view.plugin.displayError(n))}var C9=se('
'),P9=se('
'),R9={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function _c(e,t){Xe(t,!0),gt(e,R9);let r=be([]),n=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");$t(()=>{for(let x of r)x&&(0,bc.setIcon)(x,x.getAttr("data-icon"))});function i(x){x.stopPropagation(),Vs(t.change.path)?a(x):s(x)}function a(x){var E;x.stopPropagation();let _=t.view.app.vault.getAbstractFileByPath(t.change.vaultPath);_ instanceof bc.TFile&&((E=tn(t.view.app,x))===null||E===void 0||E.openFile(_).catch(k=>t.view.plugin.displayError(k)))}function s(x){x.stopPropagation(),t.view.plugin.tools.openDiff({aFile:t.change.path,aRef:"",event:x})}var o=P9();o.__mouseover=[A9,t],o.__click=i;var c=U(o),l=U(c),u=U(l,!0);xe(()=>Oe(u,Tn(t.change.vaultPath))),H(l);var f=Z(l,2),d=U(f),h=U(d);{var p=x=>{var E=C9();E.__click=a,Ge(E,_=>r[0]=_,()=>r==null?void 0:r[0]),Er("auxclick",E,a),ne(x,E)};ge(h,x=>{t.view.app.vault.getAbstractFileByPath(t.change.vaultPath)instanceof bc.TFile&&x(p)})}var m=Z(h,2);m.__click=[T9,t],Ge(m,x=>r[1]=x,()=>r==null?void 0:r[1]);var v=Z(m,2);v.__click=[k9,t],Ge(v,x=>r[2]=x,()=>r==null?void 0:r[2]),H(d);var y=Z(d,2),b=U(y,!0);H(y),H(f),H(c),H(o),xe(()=>{pe(c,"data-path",t.change.vaultPath),pe(c,"data-tooltip-position",R(n)),pe(c,"aria-label",t.change.vaultPath),pe(y,"data-type",t.change.workingDir),Oe(b,t.change.workingDir)}),Er("auxclick",o,x=>{x.stopPropagation(),x.button==2?kn(t.view.app,x,t.change.vaultPath,t.view.leaf,"git-source-control"):i(x)}),ne(e,o),Ze()}dt(["mouseover","click"]);g();var Z3=require("obsidian");function M9(e,t){t.view.app.vault.getAbstractFileByPath(t.change.vaultPath)&&ja(e,t.view,t.change.vaultPath)}var O9=se('
'),I9={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function xc(e,t){Xe(t,!0),gt(e,I9);let r=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");function n(f){var d;f.stopPropagation();let h=t.view.app.vault.getAbstractFileByPath(t.change.vaultPath);h instanceof Z3.TFile&&((d=tn(t.view.app,f))===null||d===void 0||d.openFile(h).catch(p=>t.view.plugin.displayError(p)))}var i=O9();i.__mouseover=[M9,t],i.__click=n;var a=U(i),s=U(a),o=U(s,!0);xe(()=>Oe(o,Tn(t.change.vaultPath))),H(s);var c=Z(s,2),l=U(c),u=U(l,!0);H(l),H(c),H(a),H(i),xe(()=>{pe(a,"data-path",t.change.vaultPath),pe(a,"data-tooltip-position",R(r)),pe(a,"aria-label",t.change.vaultPath),pe(l,"data-type",t.change.workingDir),Oe(u,t.change.workingDir)}),Er("auxclick",i,f=>{f.stopPropagation(),f.button==2?kn(t.view.app,f,t.change.vaultPath,t.view.leaf,"git-source-control"):n(f)}),ne(e,i),Ze()}dt(["mouseover","click"]);g();var Sc=require("obsidian");function F9(e,t){t.view.app.vault.getFileByPath(t.change.vaultPath)&&ja(e,t.view,t.change.vaultPath)}function $9(e,t){e.stopPropagation(),t.manager.unstage(t.change.path,!1).catch(r=>t.view.plugin.displayError(r)).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})}var L9=se('
'),D9=se('
'),N9={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function Ec(e,t){Xe(t,!0),gt(e,N9);let r=be([]),n=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");$t(()=>{for(let b of r)b&&(0,Sc.setIcon)(b,b.getAttr("data-icon"))});function i(b){b.stopPropagation(),Vs(t.change.path)?a(b):s(b)}function a(b){var x;b.stopPropagation();let E=t.view.app.vault.getAbstractFileByPath(t.change.vaultPath);E instanceof Sc.TFile&&((x=tn(t.view.app,b))===null||x===void 0||x.openFile(E).catch(_=>t.view.plugin.displayError(_)))}function s(b){b.stopPropagation(),t.view.plugin.tools.openDiff({aFile:t.change.path,aRef:"HEAD",bRef:"",event:b})}var o=D9();o.__mouseover=[F9,t],o.__click=i;var c=U(o),l=U(c),u=U(l,!0);xe(()=>Oe(u,Tn(t.change.vaultPath))),H(l);var f=Z(l,2),d=U(f),h=U(d);{var p=b=>{var x=L9();x.__click=a,Ge(x,E=>r[0]=E,()=>r==null?void 0:r[0]),ne(b,x)};ge(h,b=>{t.view.app.vault.getAbstractFileByPath(t.change.vaultPath)instanceof Sc.TFile&&b(p)})}var m=Z(h,2);m.__click=[$9,t],Ge(m,b=>r[1]=b,()=>r==null?void 0:r[1]),H(d);var v=Z(d,2),y=U(v,!0);H(v),H(f),H(c),H(o),xe(()=>{pe(c,"data-path",t.change.vaultPath),pe(c,"data-tooltip-position",R(n)),pe(c,"aria-label",t.change.vaultPath),pe(v,"data-type",t.change.index),Oe(y,t.change.index)}),Er("auxclick",o,b=>{b.stopPropagation(),b.button==2?kn(t.view.app,b,t.change.vaultPath,t.view.leaf,"git-source-control"):i(b)}),ne(e,o),Ze()}dt(["mouseover","click"]);g();g();var j9=se(''),B9=se("
");function Ba(e,t){Xe(t,!0);var r=B9(),n=U(r);{var i=a=>{var s=j9(),o=U(s),c=U(o),l=U(c,!0);H(c),H(o),H(s),xe(()=>{pe(o,"aria-label","And "+(t.files.length-500)+" more files"),Oe(l,"And "+(t.files.length-500)+" more files")}),ne(a,s)};ge(n,a=>{t.files.length>500&&a(i)})}H(r),ne(e,r),Ze()}var U9=se("
"),G9=(e,t,r)=>t(R(r)),z9=(e,t,r)=>t(e,R(r).path),V9=se('
'),W9=(e,t,r)=>t(e,R(r)),q9=(e,t,r)=>t(e,R(r).path),Y9=se('
',1),X9=se(''),Z9=se(''),K9=se('
'),J9={hash:"svelte-hup5mn",code:"main.svelte-hup5mn .nav-folder-title:where(.svelte-hup5mn) {align-items:center;}"};function Ha(e,t){Xe(t,!0),gt(e,J9);var r,n;let i=si(t,"topLevel",3,!1),a=be({});for(let p of t.hierarchy.children)a[p.title]=((n=(r=p.children)===null||r===void 0?void 0:r.length)!==null&&n!==void 0?n:0)>100;let s=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");function o(p,m){p.stopPropagation(),t.plugin.gitManager.stageAll({dir:m}).catch(v=>t.plugin.displayError(v)).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})}function c(p,m){p.stopPropagation(),t.plugin.gitManager.unstageAll({dir:m}).catch(v=>t.plugin.displayError(v)).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})}function l(p,m){p.stopPropagation(),new Wi(t.view.app,!1,m.vaultPath).myOpen().then(v=>{if(v===!0)return t.plugin.gitManager.discardAll({dir:m.path,status:t.plugin.cachedStatus}).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})},v=>t.plugin.displayError(v))}function u(p){a[p.title]=!a[p.title]}var f=K9(),d=U(f);kr(d,17,()=>zl(t.hierarchy.children,500),Ar,(p,m)=>{var v=ii(),y=lr(v);{var b=E=>{var _=U9(),k=U(_);{var w=S=>{Ec(S,{get change(){return R(m).data},get manager(){return t.plugin.gitManager},get view(){return t.view}})},A=S=>{var T=ii(),P=lr(T);{var O=D=>{_c(D,{get change(){return R(m).data},get manager(){return t.plugin.gitManager},get view(){return t.view}})},j=D=>{var Q=ii(),de=lr(Q);{var ee=J=>{xc(J,{get change(){return R(m).data},get view(){return t.view}})};ge(de,J=>{t.fileType==2&&J(ee)},!0)}ne(D,Q)};ge(P,D=>{t.fileType==1?D(O):D(j,!1)},!0)}ne(S,T)};ge(k,S=>{t.fileType==0?S(w):S(A,!1)})}H(_),ne(E,_)},x=E=>{var _=Z9();_.__click=[G9,u,m];var k=U(_),w=Z(U(k),2),A=Z(w,2),S=U(A,!0);H(A);var T=Z(A,2),P=U(T),O=U(P);{var j=ee=>{var J=V9();J.__click=[z9,c,m],ne(ee,J)},D=ee=>{var J=Y9(),Pe=lr(J);Pe.__click=[W9,l,m];var me=Z(Pe,2);me.__click=[q9,o,m],ne(ee,J)};ge(O,ee=>{t.fileType==0?ee(j):ee(D,!1)})}uo(2),H(P),H(T),H(k);var Q=Z(k,2);{var de=ee=>{var J=X9(),Pe=U(J);Ha(Pe,{get hierarchy(){return R(m)},get plugin(){return t.plugin},get view(){return t.view},get fileType(){return t.fileType}}),H(J),un(3,J,()=>In,()=>({duration:150})),ne(ee,J)};ge(Q,ee=>{a[R(m).title]||ee(de)})}H(_),xe(()=>{at(_,"is-collapsed",a[R(m).title]),pe(k,"data-tooltip-position",R(s)),pe(k,"aria-label",R(m).vaultPath),at(w,"is-collapsed",a[R(m).title]),Oe(S,R(m).title)}),Er("auxclick",_,ee=>kn(t.view.app,ee,R(m).vaultPath,t.view.leaf,"git-source-control")),ne(E,_)};ge(y,E=>{R(m).data?E(b):E(x,!1)})}ne(p,v)});var h=Z(d,2);Ba(h,{get files(){return t.hierarchy.children}}),H(f),xe(()=>at(f,"topLevel",i())),ne(e,f),Ze()}dt(["click"]);function Q9(e,t,r,n,i,a){return Na(this,void 0,void 0,function*(){if(re(t,!0),R(r)){if(yield n().tools.hasTooBigFiles(R(r).staged))return n().setPluginState({gitAction:0}),!1;n().promiseQueue.addTask(()=>n().gitManager.commit({message:R(i)}).then(()=>Na(this,void 0,void 0,function*(){re(i,be(n().settings.commitMessage)),yield n().automaticsManager.setUpAutoCommitAndSync()})).finally(a))}})}function eH(e,t,r,n,i,a){re(t,!0),R(r)&&n().promiseQueue.addTask(()=>n().commitAndSync(!1,!1,R(i)).then(()=>{re(i,be(n().settings.commitMessage))}).finally(a))}function K3(e,t,r,n,i){re(t,!0),r().promiseQueue.addTask(()=>r().gitManager.stageAll({status:R(n)}).finally(i))}function J3(e,t,r,n,i){re(t,!0),r().promiseQueue.addTask(()=>r().gitManager.unstageAll({status:R(n)}).finally(i))}function tH(e,t,r,n){re(t,!0),r().promiseQueue.addTask(()=>r().push().finally(n))}function rH(e,t,r,n){re(t,!0),r().promiseQueue.addTask(()=>r().pullChangesFromRemote().finally(n))}function nH(e,t,r){e.stopPropagation(),new Wi(t.view.app,!1,r().gitManager.getRelativeVaultPath("/")).myOpen().then(n=>{n===!0&&r().promiseQueue.addTask(()=>r().gitManager.discardAll({status:r().cachedStatus}).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")}))},console.error)}var iH=(e,t,r,n)=>{re(t,!R(t)),(0,Ac.setIcon)(r[6],R(t)?"list":"folder"),n().settings.treeStructure=R(t),n().saveSettings()},aH=(e,t)=>re(t,""),sH=se('
'),oH=(e,t)=>re(t,!R(t)),lH=se(" ",1),cH=se(''),uH=(e,t)=>re(t,!R(t)),fH=se(" ",1),dH=se(''),hH=(e,t)=>re(t,!R(t)),pH=se(" ",1),mH=se(''),gH=se(''),vH=se(''),yH=se('
'),wH={hash:"svelte-11adhly",code:`.commit-msg-input.svelte-11adhly {width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field);}.git-commit-msg.svelte-11adhly {position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto;}main.svelte-11adhly .git-tools:where(.svelte-11adhly) .files-count:where(.svelte-11adhly) {padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center;}.nav-folder-title.svelte-11adhly {align-items:center;}.git-commit-msg-clear-button.svelte-11adhly {position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out;}.git-commit-msg-clear-button.svelte-11adhly:after {content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;mask-image:url("data:image/svg+xml,");mask-repeat:no-repeat;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat;}`};function Av(e,t){Xe(t,!0),gt(e,wH);let r=si(t,"plugin",7),n=ft(!1),i=ft(void 0),a=ft(be([])),s=ft(be(r().settings.commitMessage)),o=be([]),c=ft(void 0),l=ft(void 0),u=ft(void 0),f=ft(!0),d=ft(!0),h=ft(!0),p=ft(0),m=ft(be(r().settings.treeStructure));t.view.registerEvent(t.view.app.workspace.on("obsidian-git:loading-status",()=>re(n,!0))),t.view.registerEvent(t.view.app.workspace.on("obsidian-git:status-changed",()=>void v().catch(console.error))),t.view.plugin.cachedStatus==null?t.view.plugin.refresh().catch(console.error):v().catch(console.error),$t(()=>{o.forEach(F=>(0,Ac.setIcon)(F,F.getAttr("data-icon")))}),$t(()=>{o.forEach(F=>{var z,N;!F||F.id!="push"||(Ac.Platform.isMobile?(F.removeClass("button-border"),R(p)>0&&F.addClass("button-border")):((z=F.firstElementChild)===null||z===void 0||z.removeAttribute("color"),R(p)>0&&((N=F.firstElementChild)===null||N===void 0||N.setAttr("color","var(--text-accent)"))))})});function v(){return Na(this,void 0,void 0,function*(){if(!r().gitReady){re(i,void 0);return}if(re(p,be(yield r().gitManager.getUnpushedCommits())),re(i,be(r().cachedStatus)),re(n,!1),r().lastPulledFiles&&r().lastPulledFiles!=R(a)&&(re(a,be(r().lastPulledFiles)),re(u,be({title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(a))}))),R(i)){let F=(z,N)=>z.vaultPath.split("/").last().localeCompare(Tn(N.vaultPath));R(i).changed.sort(F),R(i).staged.sort(F),re(c,be({title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(i).changed)})),re(l,be({title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(i).staged)}))}else re(c,void 0),re(l,void 0)})}function y(){t.view.app.workspace.trigger("obsidian-git:refresh")}let b=Ye(()=>(R(s).match(/\n/g)||[]).length+1||1);var x=yH(),E=U(x),_=U(E),k=U(_);k.__click=[eH,n,i,r,s,y],Ge(k,F=>o[0]=F,()=>o==null?void 0:o[0]);var w=Z(k,2);w.__click=[Q9,n,i,r,s,y],Ge(w,F=>o[1]=F,()=>o==null?void 0:o[1]);var A=Z(w,2);A.__click=[K3,n,r,i,y],Ge(A,F=>o[2]=F,()=>o==null?void 0:o[2]);var S=Z(A,2);S.__click=[J3,n,r,i,y],Ge(S,F=>o[3]=F,()=>o==null?void 0:o[3]);var T=Z(S,2);T.__click=[tH,n,r,y],Ge(T,F=>o[4]=F,()=>o==null?void 0:o[4]);var P=Z(T,2);P.__click=[rH,n,r,y],Ge(P,F=>o[5]=F,()=>o==null?void 0:o[5]);var O=Z(P,2);O.__click=[iH,m,o,r],Ge(O,F=>o[6]=F,()=>o==null?void 0:o[6]);var j=Z(O,2);j.__click=y,Ge(j,F=>o[7]=F,()=>o==null?void 0:o[7]),H(_),H(E);var D=Z(E,2),Q=U(D);nv(Q);var de=Z(Q,2);{var ee=F=>{var z=sH();z.__click=[aH,s],pe(z,"aria-label","Clear"),ne(F,z)};ge(de,F=>{R(s)&&F(ee)})}H(D);var J=Z(D,2),Pe=U(J);{var me=F=>{var z=vH(),N=U(z),Me=U(N);Me.__click=[oH,d];var Dt=U(Me),_t=Z(Dt,4),Ee=U(_t),st=U(Ee);st.__click=[J3,n,r,i,y],Ge(st,Nt=>o[8]=Nt,()=>o==null?void 0:o[8]),H(Ee);var ot=Z(Ee,2),Ct=U(ot,!0);H(ot),H(_t),H(Me);var $e=Z(Me,2);{var G=Nt=>{var Zt=cH(),li=U(Zt);{var Wa=jt=>{Ha(jt,{get hierarchy(){return R(l)},get plugin(){return r()},get view(){return t.view},get fileType(){return 0},topLevel:!0})},Po=jt=>{var Yi=lH(),$n=lr(Yi);kr($n,17,()=>zl(R(i).staged,500),Ar,(Ro,Mo)=>{Ec(Ro,{get change(){return R(Mo)},get view(){return t.view},get manager(){return r().gitManager}})});var ci=Z($n,2);Ba(ci,{get files(){return R(i).staged}}),ne(jt,Yi)};ge(li,jt=>{R(m)?jt(Wa):jt(Po,!1)})}H(Zt),un(3,Zt,()=>In,()=>({duration:150})),ne(Nt,Zt)};ge($e,Nt=>{R(d)&&Nt(G)})}H(N);var Le=Z(N,2),L=U(Le);L.__click=[uH,f];var Y=U(L),ye=Z(Y,4),De=U(ye),vt=U(De);vt.__click=[nH,t,r];var Va=Z(vt,2);Va.__click=[K3,n,r,i,y],Ge(Va,Nt=>o[9]=Nt,()=>o==null?void 0:o[9]),H(De);var Dv=Z(De,2),IP=U(Dv,!0);H(Dv),H(ye),H(L);var FP=Z(L,2);{var $P=Nt=>{var Zt=dH(),li=U(Zt);{var Wa=jt=>{Ha(jt,{get hierarchy(){return R(c)},get plugin(){return r()},get view(){return t.view},get fileType(){return 1},topLevel:!0})},Po=jt=>{var Yi=fH(),$n=lr(Yi);kr($n,17,()=>zl(R(i).changed,500),Ar,(Ro,Mo)=>{_c(Ro,{get change(){return R(Mo)},get view(){return t.view},get manager(){return r().gitManager}})});var ci=Z($n,2);Ba(ci,{get files(){return R(i).changed}}),ne(jt,Yi)};ge(li,jt=>{R(m)?jt(Wa):jt(Po,!1)})}H(Zt),un(3,Zt,()=>In,()=>({duration:150})),ne(Nt,Zt)};ge(FP,Nt=>{R(f)&&Nt($P)})}H(Le);var LP=Z(Le,2);{var DP=Nt=>{var Zt=gH(),li=U(Zt);li.__click=[hH,h];var Wa=Z(U(li),4),Po=U(Wa,!0);H(Wa),H(li);var jt=Z(li,2);{var Yi=$n=>{var ci=mH(),Ro=U(ci);{var Mo=qa=>{Ha(qa,{get hierarchy(){return R(u)},get plugin(){return r()},get view(){return t.view},get fileType(){return 2},topLevel:!0})},NP=qa=>{var Nv=pH(),jv=lr(Nv);kr(jv,17,()=>R(a),Ar,(BP,HP)=>{xc(BP,{get change(){return R(HP)},get view(){return t.view}})});var jP=Z(jv,2);Ba(jP,{get files(){return R(a)}}),ne(qa,Nv)};ge(Ro,qa=>{R(m)?qa(Mo):qa(NP,!1)})}H(ci),un(3,ci,()=>In,()=>({duration:150})),ne($n,ci)};ge(jt,$n=>{R(h)&&$n(Yi)})}H(Zt),xe(()=>{at(Zt,"is-collapsed",!R(h)),Oe(Po,R(a).length)}),ne(Nt,Zt)};ge(LP,Nt=>{R(a).length>0&&R(u)&&Nt(DP)})}H(z),xe(()=>{at(N,"is-collapsed",!R(d)),at(Dt,"is-collapsed",!R(d)),Oe(Ct,R(i).staged.length),at(Le,"is-collapsed",!R(f)),at(Y,"is-collapsed",!R(f)),Oe(IP,R(i).changed.length)}),ne(F,z)};ge(Pe,F=>{R(i)&&R(l)&&R(c)&&F(me)})}H(J),H(x),xe(()=>{pe(x,"data-type",St.type),pe(O,"data-icon",R(m)?"list":"folder"),at(j,"loading",R(n)),pe(Q,"rows",R(b))}),mv(Q,()=>R(s),F=>re(s,F)),ne(e,x),Ze()}dt(["click"]);var kc=class extends Q3.ItemView{constructor(t,r){super(t),this.plugin=r,this.hoverPopover=null}getViewType(){return St.type}getDisplayText(){return St.name}getIcon(){return St.icon}onClose(){return this._view&&ai(this._view),super.onClose()}reload(){this._view&&ai(this._view),this._view=zi(Av,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};g();var Gd=class{constructor(t,r){this.statusBarEl=t;this.plugin=r;this.statusBarEl.addClass("mod-clickable"),this.statusBarEl.onClickEvent(n=>{this.plugin.switchBranch().catch(i=>r.displayError(i))})}async display(){if(this.plugin.gitReady){let t=await this.plugin.gitManager.branchInfo();t.current!=null?this.statusBarEl.setText(t.current):this.statusBarEl.empty()}else this.statusBarEl.empty()}remove(){this.statusBarEl.remove()}};g();var _o=require("obsidian");var Tc=class{constructor(t){this.plugin=t}async hasTooBigFiles(t){let r=await this.plugin.gitManager.branchInfo(),n=r.tracking?Ii(r.tracking)[0]:null;if(!n)return!1;let i=await this.plugin.gitManager.getRemoteUrl(n);if(i!=null&&i.includes("github.com")){let a=[],s=this.plugin.gitManager;for(let o of t){let c=this.plugin.app.vault.getAbstractFileByPath(o.vaultPath),l=!1;if(c instanceof _o.TFile)c.stat.size>=1e8&&(l=!0);else{let u=await this.plugin.app.vault.adapter.stat(o.vaultPath);u&&u.size>=1e8&&(l=!0)}if(l){let u=!1;s instanceof Te&&(u=await s.isFileTrackedByLFS(o.path)),u||a.push(o)}}if(a.length>0)return this.plugin.displayError(`Aborted commit, because the following files are too big: +${(0,wv.moment)(t.log.date).format(t.plugin.settings.commitDateFormat)} +${t.log.message}`)}),c.__click=[d9,i];var l=H(c),u=Z(l,2),f=H(u);{var d=_=>{var k=h9(),w=H(k,!0);xe(()=>Oe(w,t.log.refs.join(", "))),B(k),ne(_,k)};ge(f,_=>{t.log.refs.length>0&&_(d)})}var h=Z(f,2);{var p=_=>{var k=p9(),w=H(k,!0);xe(()=>Oe(w,a(t.log))),B(k),ne(_,k)};ge(h,_=>{var k;t.plugin.settings.authorInHistoryView!="hide"&&((k=t.log.author)!=null&&k.name)&&_(p)})}var m=Z(h,2);{var v=_=>{var k=m9(),w=H(k,!0);xe(()=>Oe(w,(0,wv.moment)(t.log.date).format(t.plugin.settings.commitDateFormat))),B(k),ne(_,k)};ge(m,_=>{t.plugin.settings.dateInHistoryView&&_(v)})}var y=Z(m,2),b=H(y,!0);B(y),B(u),B(c);var x=Z(c,2);{var E=_=>{var k=g9(),w=H(k);{var A=T=>{gc(T,{get hierarchy(){return R(r)},get plugin(){return t.plugin},get view(){return t.view},topLevel:!0})},S=T=>{var P=ii(),O=cr(P);Tr(O,17,()=>t.log.diff.files,kr,(j,D)=>{mc(j,{get view(){return t.view},get diff(){return R(D)}})}),ne(T,P)};ge(w,T=>{t.showTree?T(A):T(S,!1)})}B(k),fn(3,k,()=>In,()=>({duration:150})),ne(_,k)};ge(x,_=>{R(i)||_(E)})}B(o),B(s),xe(()=>{at(o,"is-collapsed",R(i)),pe(c,"data-tooltip-position",R(n)),at(l,"is-collapsed",R(i)),Oe(b,t.log.message)}),ne(e,s),Ze()}dt(["click"]);function w9(e,t){t().catch(console.error)}var b9=(e,t,r,n)=>{re(t,!R(t)),(0,_v.setIcon)(r[0],R(t)?"list":"folder"),n(n().settings.treeStructure=R(t),!0),n().saveSettings()},_9=se(''),x9=se('
'),S9={hash:"svelte-45h",code:""};function xv(e,t){Xe(t,!0),gt(e,S9);let r=si(t,"plugin",15),n=ft(!1),i=be([]),a=ft(void 0),s=ft(be(r().settings.treeStructure)),o,c;$t(()=>{c&&c.empty()}),o=t.view.app.workspace.on("obsidian-git:head-change",()=>void l().catch(console.error)),$t(()=>{i.forEach(x=>(0,_v.setIcon)(x,x.getAttr("data-icon")))}),G3(()=>{t.view.app.workspace.offref(o)}),mv(()=>{let x=new IntersectionObserver(_=>{_[0].isIntersecting&&!R(n)&&u().catch(console.error)}),E=document.querySelector("#sentinel");return E&&x.observe(E),()=>{x.disconnect()}}),l().catch(console.error);function l(){return bo(this,void 0,void 0,function*(){var x;if(!r().gitReady){re(a,void 0);return}re(n,!0);let E=r().gitManager instanceof Te,_;((x=R(a)===null||R(a)===void 0?void 0:R(a).length)!==null&&x!==void 0?x:0)==0?_=E?50:10:_=R(a).length,re(a,be(yield r().gitManager.log(void 0,!1,_))),re(n,!1)})}function u(){return bo(this,void 0,void 0,function*(){var x;if(!r().gitReady||R(a)===void 0)return;re(n,!0);let _=r().gitManager instanceof Te?50:10,k=yield r().gitManager.log(void 0,!1,_,(x=R(a).last())===null||x===void 0?void 0:x.hash);R(a).push(...k.slice(1)),re(n,!1)})}var f=x9(),d=H(f),h=H(d),p=H(h);p.__click=[b9,s,i,r],Ge(p,x=>i[0]=x,()=>i==null?void 0:i[0]);var m=Z(p,2);m.__click=[w9,l],Ge(m,x=>i[1]=x,()=>i==null?void 0:i[1]),B(h),B(d);var v=Z(d,2),y=H(v);{var b=x=>{var E=_9();Tr(E,21,()=>R(a),kr,(_,k)=>{bv(_,{get view(){return t.view},get showTree(){return R(s)},get log(){return R(k)},get plugin(){return r()}})}),B(E),ne(x,E)};ge(y,x=>{R(a)&&x(b)})}B(v),co(4),B(f),xe(()=>{pe(p,"data-icon",R(s)?"list":"folder"),at(m,"loading",R(n))}),ne(e,f),Ze()}dt(["click"]);var vc=class extends W3.ItemView{constructor(t,r){super(t),this.plugin=r,this.hoverPopover=null}getViewType(){return $r.type}getDisplayText(){return $r.name}getIcon(){return $r.icon}onClose(){return this._view&&ai(this._view),super.onClose()}reload(){this._view&&ai(this._view),this._view=zi(xv,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};g();var q3=require("obsidian"),Hd=class extends q3.FuzzySuggestModal{constructor(r,n){super(r.app);this.branches=n;this.setPlaceholder("Select branch to checkout")}getItems(){return this.branches}getItemText(r){return r}onChooseItem(r,n){this.resolve(r)}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}};g();var Q3=require("obsidian");g();var Ec=require("obsidian");g();var Y3=require("obsidian"),Wi=class extends Y3.Modal{constructor(r,n,i){super(r);this.deletion=n;this.filename=i;this.resolve=null}myOpen(){return this.open(),new Promise(r=>{this.resolve=r})}onOpen(){let{contentEl:r,titleEl:n}=this;n.setText(`${this.deletion?"Delete":"Discard"} this file?`),r.createEl("p").setText(`Do you really want to ${this.deletion?"delete":"discard the changes of"} "${this.filename}"`);let i=r.createDiv({cls:"modal-button-container"}),a=i.createEl("button",{cls:"mod-warning",text:this.deletion?"Delete":"Discard"});a.addEventListener("click",()=>{this.resolve&&this.resolve(!0),this.close()}),a.addEventListener("keypress",()=>{this.resolve&&this.resolve(!0),this.close()});let s=i.createEl("button",{text:"Cancel"});s.addEventListener("click",()=>(this.resolve&&this.resolve(!1),this.close())),s.addEventListener("keypress",()=>(this.resolve&&this.resolve(!1),this.close()))}onClose(){let{contentEl:r}=this;r.empty()}};g();var wc=require("obsidian");g();g();var E9=ze(X3()),qi=require("obsidian");function Na(e,t,r){let n=e.target;app.workspace.trigger("hover-link",{event:e,source:t.getViewType(),hoverParent:t,targetEl:n,linktext:r})}function A9(e,t){t.view.app.vault.getAbstractFileByPath(t.change.vaultPath)&&Na(e,t.view,t.change.vaultPath)}function k9(e,t){e.stopPropagation(),t.manager.stage(t.change.path,!1).catch(r=>t.view.plugin.displayError(r)).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})}function T9(e,t){e.stopPropagation();let r=t.change.workingDir=="U";new Wi(t.view.app,r,t.change.vaultPath).myOpen().then(n=>{if(n===!0)return r?t.view.app.vault.adapter.remove(t.change.vaultPath).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")}):t.manager.discard(t.change.path).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})},n=>t.view.plugin.displayError(n))}var C9=se('
'),P9=se('
'),R9={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function bc(e,t){Xe(t,!0),gt(e,R9);let r=be([]),n=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");$t(()=>{for(let x of r)x&&(0,wc.setIcon)(x,x.getAttr("data-icon"))});function i(x){x.stopPropagation(),zs(t.change.path)?a(x):s(x)}function a(x){var E;x.stopPropagation();let _=t.view.app.vault.getAbstractFileByPath(t.change.vaultPath);_ instanceof wc.TFile&&((E=rn(t.view.app,x))===null||E===void 0||E.openFile(_).catch(k=>t.view.plugin.displayError(k)))}function s(x){x.stopPropagation(),t.view.plugin.tools.openDiff({aFile:t.change.path,aRef:"",event:x})}var o=P9();o.__mouseover=[A9,t],o.__click=i;var c=H(o),l=H(c),u=H(l,!0);xe(()=>Oe(u,Tn(t.change.vaultPath))),B(l);var f=Z(l,2),d=H(f),h=H(d);{var p=x=>{var E=C9();E.__click=a,Ge(E,_=>r[0]=_,()=>r==null?void 0:r[0]),Ar("auxclick",E,a),ne(x,E)};ge(h,x=>{t.view.app.vault.getAbstractFileByPath(t.change.vaultPath)instanceof wc.TFile&&x(p)})}var m=Z(h,2);m.__click=[T9,t],Ge(m,x=>r[1]=x,()=>r==null?void 0:r[1]);var v=Z(m,2);v.__click=[k9,t],Ge(v,x=>r[2]=x,()=>r==null?void 0:r[2]),B(d);var y=Z(d,2),b=H(y,!0);B(y),B(f),B(c),B(o),xe(()=>{pe(c,"data-path",t.change.vaultPath),pe(c,"data-tooltip-position",R(n)),pe(c,"aria-label",t.change.vaultPath),pe(y,"data-type",t.change.workingDir),Oe(b,t.change.workingDir)}),Ar("auxclick",o,x=>{x.stopPropagation(),x.button==2?kn(t.view.app,x,t.change.vaultPath,t.view.leaf,"git-source-control"):i(x)}),ne(e,o),Ze()}dt(["mouseover","click"]);g();var Z3=require("obsidian");function M9(e,t){t.view.app.vault.getAbstractFileByPath(t.change.vaultPath)&&Na(e,t.view,t.change.vaultPath)}var O9=se('
'),I9={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function _c(e,t){Xe(t,!0),gt(e,I9);let r=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");function n(f){var d;f.stopPropagation();let h=t.view.app.vault.getAbstractFileByPath(t.change.vaultPath);h instanceof Z3.TFile&&((d=rn(t.view.app,f))===null||d===void 0||d.openFile(h).catch(p=>t.view.plugin.displayError(p)))}var i=O9();i.__mouseover=[M9,t],i.__click=n;var a=H(i),s=H(a),o=H(s,!0);xe(()=>Oe(o,Tn(t.change.vaultPath))),B(s);var c=Z(s,2),l=H(c),u=H(l,!0);B(l),B(c),B(a),B(i),xe(()=>{pe(a,"data-path",t.change.vaultPath),pe(a,"data-tooltip-position",R(r)),pe(a,"aria-label",t.change.vaultPath),pe(l,"data-type",t.change.workingDir),Oe(u,t.change.workingDir)}),Ar("auxclick",i,f=>{f.stopPropagation(),f.button==2?kn(t.view.app,f,t.change.vaultPath,t.view.leaf,"git-source-control"):n(f)}),ne(e,i),Ze()}dt(["mouseover","click"]);g();var xc=require("obsidian");function F9(e,t){t.view.app.vault.getFileByPath(t.change.vaultPath)&&Na(e,t.view,t.change.vaultPath)}function $9(e,t){e.stopPropagation(),t.manager.unstage(t.change.path,!1).catch(r=>t.view.plugin.displayError(r)).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})}var L9=se('
'),D9=se('
'),N9={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function Sc(e,t){Xe(t,!0),gt(e,N9);let r=be([]),n=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");$t(()=>{for(let b of r)b&&(0,xc.setIcon)(b,b.getAttr("data-icon"))});function i(b){b.stopPropagation(),zs(t.change.path)?a(b):s(b)}function a(b){var x;b.stopPropagation();let E=t.view.app.vault.getAbstractFileByPath(t.change.vaultPath);E instanceof xc.TFile&&((x=rn(t.view.app,b))===null||x===void 0||x.openFile(E).catch(_=>t.view.plugin.displayError(_)))}function s(b){b.stopPropagation(),t.view.plugin.tools.openDiff({aFile:t.change.path,aRef:"HEAD",bRef:"",event:b})}var o=D9();o.__mouseover=[F9,t],o.__click=i;var c=H(o),l=H(c),u=H(l,!0);xe(()=>Oe(u,Tn(t.change.vaultPath))),B(l);var f=Z(l,2),d=H(f),h=H(d);{var p=b=>{var x=L9();x.__click=a,Ge(x,E=>r[0]=E,()=>r==null?void 0:r[0]),ne(b,x)};ge(h,b=>{t.view.app.vault.getAbstractFileByPath(t.change.vaultPath)instanceof xc.TFile&&b(p)})}var m=Z(h,2);m.__click=[$9,t],Ge(m,b=>r[1]=b,()=>r==null?void 0:r[1]),B(d);var v=Z(d,2),y=H(v,!0);B(v),B(f),B(c),B(o),xe(()=>{pe(c,"data-path",t.change.vaultPath),pe(c,"data-tooltip-position",R(n)),pe(c,"aria-label",t.change.vaultPath),pe(v,"data-type",t.change.index),Oe(y,t.change.index)}),Ar("auxclick",o,b=>{b.stopPropagation(),b.button==2?kn(t.view.app,b,t.change.vaultPath,t.view.leaf,"git-source-control"):i(b)}),ne(e,o),Ze()}dt(["mouseover","click"]);g();g();var j9=se(''),B9=se("
");function ja(e,t){Xe(t,!0);var r=B9(),n=H(r);{var i=a=>{var s=j9(),o=H(s),c=H(o),l=H(c,!0);B(c),B(o),B(s),xe(()=>{pe(o,"aria-label","And "+(t.files.length-500)+" more files"),Oe(l,"And "+(t.files.length-500)+" more files")}),ne(a,s)};ge(n,a=>{t.files.length>500&&a(i)})}B(r),ne(e,r),Ze()}var U9=se("
"),G9=(e,t,r)=>t(R(r)),z9=(e,t,r)=>t(e,R(r).path),V9=se('
'),W9=(e,t,r)=>t(e,R(r)),q9=(e,t,r)=>t(e,R(r).path),Y9=se('
',1),X9=se(''),Z9=se(''),K9=se('
'),J9={hash:"svelte-hup5mn",code:"main.svelte-hup5mn .nav-folder-title:where(.svelte-hup5mn) {align-items:center;}"};function Ba(e,t){Xe(t,!0),gt(e,J9);var r,n;let i=si(t,"topLevel",3,!1),a=be({});for(let p of t.hierarchy.children)a[p.title]=((n=(r=p.children)===null||r===void 0?void 0:r.length)!==null&&n!==void 0?n:0)>100;let s=Ye(()=>t.view.leaf.getRoot().side=="left"?"right":"left");function o(p,m){p.stopPropagation(),t.plugin.gitManager.stageAll({dir:m}).catch(v=>t.plugin.displayError(v)).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})}function c(p,m){p.stopPropagation(),t.plugin.gitManager.unstageAll({dir:m}).catch(v=>t.plugin.displayError(v)).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})}function l(p,m){p.stopPropagation(),new Wi(t.view.app,!1,m.vaultPath).myOpen().then(v=>{if(v===!0)return t.plugin.gitManager.discardAll({dir:m.path,status:t.plugin.cachedStatus}).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")})},v=>t.plugin.displayError(v))}function u(p){a[p.title]=!a[p.title]}var f=K9(),d=H(f);Tr(d,17,()=>zl(t.hierarchy.children,500),kr,(p,m)=>{var v=ii(),y=cr(v);{var b=E=>{var _=U9(),k=H(_);{var w=S=>{Sc(S,{get change(){return R(m).data},get manager(){return t.plugin.gitManager},get view(){return t.view}})},A=S=>{var T=ii(),P=cr(T);{var O=D=>{bc(D,{get change(){return R(m).data},get manager(){return t.plugin.gitManager},get view(){return t.view}})},j=D=>{var Q=ii(),de=cr(Q);{var ee=J=>{_c(J,{get change(){return R(m).data},get view(){return t.view}})};ge(de,J=>{t.fileType==2&&J(ee)},!0)}ne(D,Q)};ge(P,D=>{t.fileType==1?D(O):D(j,!1)},!0)}ne(S,T)};ge(k,S=>{t.fileType==0?S(w):S(A,!1)})}B(_),ne(E,_)},x=E=>{var _=Z9();_.__click=[G9,u,m];var k=H(_),w=Z(H(k),2),A=Z(w,2),S=H(A,!0);B(A);var T=Z(A,2),P=H(T),O=H(P);{var j=ee=>{var J=V9();J.__click=[z9,c,m],ne(ee,J)},D=ee=>{var J=Y9(),Pe=cr(J);Pe.__click=[W9,l,m];var me=Z(Pe,2);me.__click=[q9,o,m],ne(ee,J)};ge(O,ee=>{t.fileType==0?ee(j):ee(D,!1)})}co(2),B(P),B(T),B(k);var Q=Z(k,2);{var de=ee=>{var J=X9(),Pe=H(J);Ba(Pe,{get hierarchy(){return R(m)},get plugin(){return t.plugin},get view(){return t.view},get fileType(){return t.fileType}}),B(J),fn(3,J,()=>In,()=>({duration:150})),ne(ee,J)};ge(Q,ee=>{a[R(m).title]||ee(de)})}B(_),xe(()=>{at(_,"is-collapsed",a[R(m).title]),pe(k,"data-tooltip-position",R(s)),pe(k,"aria-label",R(m).vaultPath),at(w,"is-collapsed",a[R(m).title]),Oe(S,R(m).title)}),Ar("auxclick",_,ee=>kn(t.view.app,ee,R(m).vaultPath,t.view.leaf,"git-source-control")),ne(E,_)};ge(y,E=>{R(m).data?E(b):E(x,!1)})}ne(p,v)});var h=Z(d,2);ja(h,{get files(){return t.hierarchy.children}}),B(f),xe(()=>at(f,"topLevel",i())),ne(e,f),Ze()}dt(["click"]);function Q9(e,t,r,n,i,a){return bo(this,void 0,void 0,function*(){if(re(t,!0),R(r)){if(yield n().tools.hasTooBigFiles(R(r).staged))return n().setPluginState({gitAction:0}),!1;n().promiseQueue.addTask(()=>n().gitManager.commit({message:R(i)}).then(()=>re(i,be(n().settings.commitMessage))).finally(a))}})}function eH(e,t,r,n,i,a){re(t,!0),R(r)&&n().promiseQueue.addTask(()=>n().commitAndSync(!1,!1,R(i)).then(()=>{re(i,be(n().settings.commitMessage))}).finally(a))}function K3(e,t,r,n,i){re(t,!0),r().promiseQueue.addTask(()=>r().gitManager.stageAll({status:R(n)}).finally(i))}function J3(e,t,r,n,i){re(t,!0),r().promiseQueue.addTask(()=>r().gitManager.unstageAll({status:R(n)}).finally(i))}function tH(e,t,r,n){re(t,!0),r().promiseQueue.addTask(()=>r().push().finally(n))}function rH(e,t,r,n){re(t,!0),r().promiseQueue.addTask(()=>r().pullChangesFromRemote().finally(n))}function nH(e,t,r){e.stopPropagation(),new Wi(t.view.app,!1,r().gitManager.getRelativeVaultPath("/")).myOpen().then(n=>{n===!0&&r().promiseQueue.addTask(()=>r().gitManager.discardAll({status:r().cachedStatus}).finally(()=>{t.view.app.workspace.trigger("obsidian-git:refresh")}))},console.error)}var iH=(e,t,r,n)=>{re(t,!R(t)),(0,Ec.setIcon)(r[6],R(t)?"list":"folder"),n().settings.treeStructure=R(t),n().saveSettings()},aH=(e,t)=>re(t,""),sH=se('
'),oH=(e,t)=>re(t,!R(t)),lH=se(" ",1),cH=se(''),uH=(e,t)=>re(t,!R(t)),fH=se(" ",1),dH=se(''),hH=(e,t)=>re(t,!R(t)),pH=se(" ",1),mH=se(''),gH=se(''),vH=se(''),yH=se('
'),wH={hash:"svelte-11adhly",code:`.commit-msg-input.svelte-11adhly {width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field);}.git-commit-msg.svelte-11adhly {position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto;}main.svelte-11adhly .git-tools:where(.svelte-11adhly) .files-count:where(.svelte-11adhly) {padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center;}.nav-folder-title.svelte-11adhly {align-items:center;}.git-commit-msg-clear-button.svelte-11adhly {position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out;}.git-commit-msg-clear-button.svelte-11adhly:after {content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;mask-image:url("data:image/svg+xml,");mask-repeat:no-repeat;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat;}`};function Ev(e,t){Xe(t,!0),gt(e,wH);let r=si(t,"plugin",7),n=ft(!1),i=ft(void 0),a=ft(be([])),s=ft(be(r().settings.commitMessage)),o=be([]),c=ft(void 0),l=ft(void 0),u=ft(void 0),f=ft(!0),d=ft(!0),h=ft(!0),p=ft(0),m=ft(be(r().settings.treeStructure));t.view.registerEvent(t.view.app.workspace.on("obsidian-git:loading-status",()=>re(n,!0))),t.view.registerEvent(t.view.app.workspace.on("obsidian-git:status-changed",()=>void v().catch(console.error))),t.view.plugin.cachedStatus==null?t.view.plugin.refresh().catch(console.error):v().catch(console.error),$t(()=>{o.forEach(F=>(0,Ec.setIcon)(F,F.getAttr("data-icon")))}),$t(()=>{o.forEach(F=>{var G,N;!F||F.id!="push"||(Ec.Platform.isMobile?(F.removeClass("button-border"),R(p)>0&&F.addClass("button-border")):((G=F.firstElementChild)===null||G===void 0||G.removeAttribute("color"),R(p)>0&&((N=F.firstElementChild)===null||N===void 0||N.setAttr("color","var(--text-accent)"))))})});function v(){return bo(this,void 0,void 0,function*(){if(!r().gitReady){re(i,void 0);return}if(re(p,be(yield r().gitManager.getUnpushedCommits())),re(i,be(r().cachedStatus)),re(n,!1),r().lastPulledFiles&&r().lastPulledFiles!=R(a)&&(re(a,be(r().lastPulledFiles)),re(u,be({title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(a))}))),R(i)){let F=(G,N)=>G.vaultPath.split("/").last().localeCompare(Tn(N.vaultPath));R(i).changed.sort(F),R(i).staged.sort(F),re(c,be({title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(i).changed)})),re(l,be({title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(i).staged)}))}else re(c,void 0),re(l,void 0)})}function y(){t.view.app.workspace.trigger("obsidian-git:refresh")}let b=Ye(()=>(R(s).match(/\n/g)||[]).length+1||1);var x=yH(),E=H(x),_=H(E),k=H(_);k.__click=[eH,n,i,r,s,y],Ge(k,F=>o[0]=F,()=>o==null?void 0:o[0]);var w=Z(k,2);w.__click=[Q9,n,i,r,s,y],Ge(w,F=>o[1]=F,()=>o==null?void 0:o[1]);var A=Z(w,2);A.__click=[K3,n,r,i,y],Ge(A,F=>o[2]=F,()=>o==null?void 0:o[2]);var S=Z(A,2);S.__click=[J3,n,r,i,y],Ge(S,F=>o[3]=F,()=>o==null?void 0:o[3]);var T=Z(S,2);T.__click=[tH,n,r,y],Ge(T,F=>o[4]=F,()=>o==null?void 0:o[4]);var P=Z(T,2);P.__click=[rH,n,r,y],Ge(P,F=>o[5]=F,()=>o==null?void 0:o[5]);var O=Z(P,2);O.__click=[iH,m,o,r],Ge(O,F=>o[6]=F,()=>o==null?void 0:o[6]);var j=Z(O,2);j.__click=y,Ge(j,F=>o[7]=F,()=>o==null?void 0:o[7]),B(_),B(E);var D=Z(E,2),Q=H(D);rv(Q);var de=Z(Q,2);{var ee=F=>{var G=sH();G.__click=[aH,s],pe(G,"aria-label","Clear"),ne(F,G)};ge(de,F=>{R(s)&&F(ee)})}B(D);var J=Z(D,2),Pe=H(J);{var me=F=>{var G=vH(),N=H(G),Me=H(N);Me.__click=[oH,d];var Dt=H(Me),_t=Z(Dt,4),Ee=H(_t),st=H(Ee);st.__click=[J3,n,r,i,y],Ge(st,Nt=>o[8]=Nt,()=>o==null?void 0:o[8]),B(Ee);var ot=Z(Ee,2),Ct=H(ot,!0);B(ot),B(_t),B(Me);var $e=Z(Me,2);{var U=Nt=>{var Zt=cH(),li=H(Zt);{var Va=jt=>{Ba(jt,{get hierarchy(){return R(l)},get plugin(){return r()},get view(){return t.view},get fileType(){return 0},topLevel:!0})},Po=jt=>{var Yi=lH(),$n=cr(Yi);Tr($n,17,()=>zl(R(i).staged,500),kr,(Ro,Mo)=>{Sc(Ro,{get change(){return R(Mo)},get view(){return t.view},get manager(){return r().gitManager}})});var ci=Z($n,2);ja(ci,{get files(){return R(i).staged}}),ne(jt,Yi)};ge(li,jt=>{R(m)?jt(Va):jt(Po,!1)})}B(Zt),fn(3,Zt,()=>In,()=>({duration:150})),ne(Nt,Zt)};ge($e,Nt=>{R(d)&&Nt(U)})}B(N);var Le=Z(N,2),L=H(Le);L.__click=[uH,f];var Y=H(L),ye=Z(Y,4),De=H(ye),vt=H(De);vt.__click=[nH,t,r];var za=Z(vt,2);za.__click=[K3,n,r,i,y],Ge(za,Nt=>o[9]=Nt,()=>o==null?void 0:o[9]),B(De);var Lv=Z(De,2),IP=H(Lv,!0);B(Lv),B(ye),B(L);var FP=Z(L,2);{var $P=Nt=>{var Zt=dH(),li=H(Zt);{var Va=jt=>{Ba(jt,{get hierarchy(){return R(c)},get plugin(){return r()},get view(){return t.view},get fileType(){return 1},topLevel:!0})},Po=jt=>{var Yi=fH(),$n=cr(Yi);Tr($n,17,()=>zl(R(i).changed,500),kr,(Ro,Mo)=>{bc(Ro,{get change(){return R(Mo)},get view(){return t.view},get manager(){return r().gitManager}})});var ci=Z($n,2);ja(ci,{get files(){return R(i).changed}}),ne(jt,Yi)};ge(li,jt=>{R(m)?jt(Va):jt(Po,!1)})}B(Zt),fn(3,Zt,()=>In,()=>({duration:150})),ne(Nt,Zt)};ge(FP,Nt=>{R(f)&&Nt($P)})}B(Le);var LP=Z(Le,2);{var DP=Nt=>{var Zt=gH(),li=H(Zt);li.__click=[hH,h];var Va=Z(H(li),4),Po=H(Va,!0);B(Va),B(li);var jt=Z(li,2);{var Yi=$n=>{var ci=mH(),Ro=H(ci);{var Mo=Wa=>{Ba(Wa,{get hierarchy(){return R(u)},get plugin(){return r()},get view(){return t.view},get fileType(){return 2},topLevel:!0})},NP=Wa=>{var Dv=pH(),Nv=cr(Dv);Tr(Nv,17,()=>R(a),kr,(BP,HP)=>{_c(BP,{get change(){return R(HP)},get view(){return t.view}})});var jP=Z(Nv,2);ja(jP,{get files(){return R(a)}}),ne(Wa,Dv)};ge(Ro,Wa=>{R(m)?Wa(Mo):Wa(NP,!1)})}B(ci),fn(3,ci,()=>In,()=>({duration:150})),ne($n,ci)};ge(jt,$n=>{R(h)&&$n(Yi)})}B(Zt),xe(()=>{at(Zt,"is-collapsed",!R(h)),Oe(Po,R(a).length)}),ne(Nt,Zt)};ge(LP,Nt=>{R(a).length>0&&R(u)&&Nt(DP)})}B(G),xe(()=>{at(N,"is-collapsed",!R(d)),at(Dt,"is-collapsed",!R(d)),Oe(Ct,R(i).staged.length),at(Le,"is-collapsed",!R(f)),at(Y,"is-collapsed",!R(f)),Oe(IP,R(i).changed.length)}),ne(F,G)};ge(Pe,F=>{R(i)&&R(l)&&R(c)&&F(me)})}B(J),B(x),xe(()=>{pe(x,"data-type",St.type),pe(O,"data-icon",R(m)?"list":"folder"),at(j,"loading",R(n)),pe(Q,"rows",R(b))}),pv(Q,()=>R(s),F=>re(s,F)),ne(e,x),Ze()}dt(["click"]);var Ac=class extends Q3.ItemView{constructor(t,r){super(t),this.plugin=r,this.hoverPopover=null}getViewType(){return St.type}getDisplayText(){return St.name}getIcon(){return St.icon}onClose(){return this._view&&ai(this._view),super.onClose()}reload(){this._view&&ai(this._view),this._view=zi(Ev,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};g();var Ud=class{constructor(t,r){this.statusBarEl=t;this.plugin=r;this.statusBarEl.addClass("mod-clickable"),this.statusBarEl.onClickEvent(n=>{this.plugin.switchBranch().catch(i=>r.displayError(i))})}async display(){if(this.plugin.gitReady){let t=await this.plugin.gitManager.branchInfo();t.current!=null?this.statusBarEl.setText(t.current):this.statusBarEl.empty()}else this.statusBarEl.empty()}remove(){this.statusBarEl.remove()}};g();var _o=require("obsidian");var kc=class{constructor(t){this.plugin=t}async hasTooBigFiles(t){let r=await this.plugin.gitManager.branchInfo(),n=r.tracking?Ii(r.tracking)[0]:null;if(!n)return!1;let i=await this.plugin.gitManager.getRemoteUrl(n);if(i!=null&&i.includes("github.com")){let a=[],s=this.plugin.gitManager;for(let o of t){let c=this.plugin.app.vault.getAbstractFileByPath(o.vaultPath),l=!1;if(c instanceof _o.TFile)c.stat.size>=1e8&&(l=!0);else{let u=await this.plugin.app.vault.adapter.stat(o.vaultPath);u&&u.size>=1e8&&(l=!0)}if(l){let u=!1;s instanceof Te&&(u=await s.isFileTrackedByLFS(o.path)),u||a.push(o)}}if(a.length>0)return this.plugin.displayError(`Aborted commit, because the following files are too big: - ${a.map(o=>o.vaultPath).join(` - `)} -Please remove them or add to .gitignore.`),!0}return!1}async writeAndOpenFile(t){t!==void 0&&await this.plugin.app.vault.adapter.write(Os,t);let r=!1;this.plugin.app.workspace.iterateAllLeaves(n=>{n.getDisplayText()!=""&&Os.startsWith(n.getDisplayText())&&(r=!0)}),r||await this.plugin.app.workspace.openLinkText(Os,"/",!0)}openDiff({aFile:t,bFile:r,aRef:n,bRef:i,event:a}){var c,l;let s=this.plugin.settings.diffStyle;_o.Platform.isMobileApp&&(s="git_unified");let o={aFile:t,bFile:r!=null?r:t,aRef:n,bRef:i};s=="split"?(c=tn(this.plugin.app,a))==null||c.setViewState({type:Ai.type,active:!0,state:o}):s=="git_unified"&&((l=tn(this.plugin.app,a))==null||l.setViewState({type:ki.type,active:!0,state:o}))}async runRawCommand(){let t=this.plugin.gitManager;if(!(t instanceof Te))return;let n=await new Fe(this.plugin,{placeholder:"push origin master",allowEmpty:!1}).openAndGetResult();n!==void 0&&this.plugin.promiseQueue.addTask(async()=>{let i=new _o.Notice(`Running '${n}'...`,999999);try{let a=await t.rawCommand(n);a?(i.setMessage(a),window.setTimeout(()=>i.hide(),5e3)):i.hide()}catch(a){throw i.hide(),a}})}};g();var To=require("obsidian");var Yr=require("@codemirror/view"),ko=require("@codemirror/state");g();var Re=require("@codemirror/view"),Se=require("@codemirror/state");g();var kv="\u037C",eP=typeof Symbol=="undefined"?"__"+kv:Symbol.for(kv),Tv=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),tP=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},zd=class{constructor(t,r){this.rules=[];let{finish:n}=r||{};function i(s){return/^@/.test(s)?[s]:s.split(/,\s*/)}function a(s,o,c,l){let u=[],f=/^@(\w+)\b/.exec(s[0]),d=f&&f[1]=="keyframes";if(f&&o==null)return c.push(s[0]+";");for(let h in o){let p=o[h];if(/&/.test(h))a(h.split(/,\s*/).map(m=>s.map(v=>m.replace(/&/,v))).reduce((m,v)=>m.concat(v)),p,c);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+h+") should be a primitive value.");a(i(h),p,u,d)}else p!=null&&u.push(h.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(u.length||d)&&c.push((n&&!f&&!l?s.map(n):s).join(", ")+" {"+u.join(" ")+"}")}for(let s in t)a(i(s),t[s],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let t=tP[eP]||1;return tP[eP]=t+1,kv+t.toString(36)}static mount(t,r,n){let i=t[Tv],a=n&&n.nonce;i?a&&i.setNonce(a):i=new Cv(t,a),i.mount(Array.isArray(r)?r:[r],t)}},rP=new Map,Cv=class{constructor(t,r){let n=t.ownerDocument||t,i=n.defaultView;if(!t.head&&t.adoptedStyleSheets&&i.CSSStyleSheet){let a=rP.get(n);if(a)return t[Tv]=a;this.sheet=new i.CSSStyleSheet,rP.set(n,this)}else this.styleTag=n.createElement("style"),r&&this.styleTag.setAttribute("nonce",r);this.modules=[],t[Tv]=this}mount(t,r){let n=this.sheet,i=0,a=0;for(let s=0;s-1&&(this.modules.splice(c,1),a--,c=-1),c==-1){if(this.modules.splice(a++,0,o),n)for(let l=0;ll){let f=e.slice(t,r).indexOf(n.slice(i,a));if(f>-1)return[new ht(t,t+f,i,i),new ht(t+f+l,r,a,a)]}else if(l>c){let f=n.slice(i,a).indexOf(e.slice(t,r));if(f>-1)return[new ht(t,t,i,i+f),new ht(r,r,i+f+c,a)]}if(c==1||l==1)return[new ht(t,r,i,a)];let u=xP(e,t,r,n,i,a);if(u){let[f,d,h]=u;return Ga(e,t,f,n,i,d).concat(Ga(e,f+h,r,n,d+h,a))}return _H(e,t,r,n,i,a)}var Cc=1e9;function _H(e,t,r,n,i,a){let s=r-t,o=a-i;if(Cc<1e9&&Math.min(s,o)>Cc*16)return Math.min(s,o)>Cc*64?[new ht(t,r,i,a)]:nP(e,t,r,n,i,a);let c=Math.ceil((s+o)/2);Pv.reset(c),Rv.reset(c);let l=(h,p)=>e.charCodeAt(t+h)==n.charCodeAt(i+p),u=(h,p)=>e.charCodeAt(r-h-1)==n.charCodeAt(a-p-1),f=(s-o)%2!=0?Rv:null,d=f?null:Pv;for(let h=0;hCc)return nP(e,t,r,n,i,a);let p=Pv.advance(h,s,o,c,f,!1,l)||Rv.advance(h,s,o,c,d,!0,u);if(p)return xH(e,t,r,t+p[0],n,i,a,i+p[1])}return[new ht(t,r,i,a)]}var Xd=class{constructor(){this.vec=[]}reset(t){this.len=t<<1;for(let r=0;rr)this.end+=2;else if(f>n)this.start+=2;else if(a){let d=i+(r-n)-c;if(d>=0&&d=r-u)return[h,i+h-d]}else{let h=r-a.vec[d];if(u>=h)return[u,f]}}}return null}},Pv=new Xd,Rv=new Xd;function xH(e,t,r,n,i,a,s,o){let c=!1;return!Eo(e,n)&&++n==r&&(c=!0),!Eo(i,o)&&++o==s&&(c=!0),c?[new ht(t,r,a,s)]:Ga(e,t,n,i,a,o).concat(Ga(e,n,r,i,o,s))}function _P(e,t){let r=1,n=Math.min(e,t);for(;rr||u>a||e.slice(o,l)!=n.slice(c,u)){if(s==1)return o-t-(Eo(e,o)?0:1);s=s>>1}else{if(l==r||u==a)return l-t;o=l,c=u}}}function Lv(e,t,r,n,i,a){if(t==r||i==a||e.charCodeAt(r-1)!=n.charCodeAt(a-1))return 0;let s=_P(r-t,a-i);for(let o=r,c=a;;){let l=o-s,u=c-s;if(l>1}else{if(l==t||u==i)return r-l;o=l,c=u}}}function Mv(e,t,r,n,i,a,s,o){let c=n.slice(i,a),l=null;for(;;){if(l||s=r)break;let d=e.slice(u,f),h=-1;for(;(h=c.indexOf(d,h+1))!=-1;){let p=$v(e,f,r,n,i+h+d.length,a),m=Lv(e,t,u,n,i,i+h),v=d.length+p+m;(!l||l[2]>1}}function xP(e,t,r,n,i,a){let s=r-t,o=a-i;if(si.fromA-t&&n.toB>i.fromB-t&&(e[r-1]=new ht(n.fromA,i.toA,n.fromB,i.toB),e.splice(r--,1))}}function SH(e,t,r){for(;;){SP(r,1);let n=!1;for(let i=0;i3||o>3){let c=i==e.length-1?t.length:e[i+1].fromA,l=a.fromA-n,u=c-a.toA,f=aP(t,a.fromA,Math.min(l,5)),d=iP(t,a.toA,Math.min(u,5)),h=a.fromA-f,p=d-a.toA;if(!s||!o){let m=Math.max(s,o),[v,y,b]=s?[t,a.fromA,a.toA]:[r,a.fromB,a.toB];h&&p&&(m>h&&t.slice(f,a.fromA)==v.slice(b-h,b)?(a=e[i]=new ht(f,f+s,a.fromB-h,a.toB-h),f=a.fromA,d=iP(t,a.toA,Math.min(c-a.toA,5))):m>p&&t.slice(a.toA,d)==v.slice(y,y+p)&&(a=e[i]=new ht(d-s,d,a.fromB+p,a.toB+p),d=a.toA,f=aP(t,a.fromA,Math.min(a.fromA-n,5))),h=a.fromA-f,p=d-a.toA)}if(h||p)a=e[i]=new ht(a.fromA-h,a.toA+p,a.fromB-h,a.toB+p);else if(s){if(!o){let m=oP(t,a.fromA,a.toA),v,y=m<0?-1:sP(t,a.toA,a.fromA);m>-1&&(v=m-a.fromA)<=u&&t.slice(a.fromA,m)==t.slice(a.toA,a.toA+v)?a=e[i]=a.offset(v):y>-1&&(v=a.toA-y)<=l&&t.slice(a.fromA-v,a.fromA)==t.slice(y,a.toA)&&(a=e[i]=a.offset(-v))}}else{let m=oP(r,a.fromB,a.toB),v,y=m<0?-1:sP(r,a.toB,a.fromB);m>-1&&(v=m-a.fromB)<=u&&r.slice(a.fromB,m)==r.slice(a.toB,a.toB+v)?a=e[i]=a.offset(v):y>-1&&(v=a.toB-y)<=l&&r.slice(a.fromB-v,a.fromB)==r.slice(y,a.toB)&&(a=e[i]=a.offset(-v))}n=a.toA}}return SP(e,3),e}var Ua;try{Ua=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch(e){}function EP(e){return e>48&&e<58||e>64&&e<91||e>96&&e<123}function AP(e,t){if(t==e.length)return 0;let r=e.charCodeAt(t);return r<192?EP(r)?1:0:Ua?!TP(r)||t==e.length-1?Ua.test(String.fromCharCode(r))?1:0:Ua.test(e.slice(t,t+2))?2:0:0}function kP(e,t){if(!t)return 0;let r=e.charCodeAt(t-1);return r<192?EP(r)?1:0:Ua?!CP(r)||t==1?Ua.test(String.fromCharCode(r))?1:0:Ua.test(e.slice(t-2,t))?2:0:0}function iP(e,t,r){if(t==e.length||!kP(e,t))return t;for(let n=t,i=t+r;;){let a=AP(e,n);if(!a)return n;if(n+=a,n>i)return t}}function aP(e,t,r){if(!t||!AP(e,t))return t;for(let n=t,i=t-r;;){let a=kP(e,n);if(!a)return n;if(n-=a,ne>=55296&&e<=56319,CP=e=>e>=56320&&e<=57343;function Eo(e,t){return!t||t==e.length||!TP(e.charCodeAt(t-1))||!CP(e.charCodeAt(t))}function AH(e,t,r){var n;return Cc=((n=r==null?void 0:r.scanLimit)!==null&&n!==void 0?n:1e9)>>1,SH(e,t,Ga(e,0,e.length,t,0,t.length))}function PP(e,t,r){return EH(AH(e,t,r),e,t)}var Fn=Se.Facet.define({combine:e=>e[0]}),Ov=Se.StateEffect.define(),Ao=Se.StateField.define({create(e){return null},update(e,t){for(let r of t.effects)r.is(Ov)&&(e=r.value);return e}});var So=class e{constructor(t,r,n,i,a){this.changes=t,this.fromA=r,this.toA=n,this.fromB=i,this.toB=a}offset(t,r){return t||r?new e(this.changes,this.fromA+t,this.toA+t,this.fromB+r,this.toB+r):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(t,r,n){return RP(PP(t.toString(),r.toString(),n),t,r,0,0)}static updateA(t,r,n,i,a){return dP(fP(t,i,!0,n.length),t,r,n,a)}static updateB(t,r,n,i,a){return dP(fP(t,i,!1,r.length),t,r,n,a)}};function lP(e,t,r,n){let i=r.lineAt(e),a=n.lineAt(t);return i.to==e&&a.to==t&&eu+1&&m>f+1)break;d.push(h.offset(-c+n,-l+i)),[u,f]=cP(h.toA+n,h.toB+i,t,r),s++}a.push(new So(d,c,Math.max(c,u),l,Math.max(l,f)))}return a}var Vd=1e3;function uP(e,t,r,n){let i=0,a=e.length;for(;;){if(i==a){let u=0,f=0;i&&({toA:u,toB:f}=e[i-1]);let d=t-(r?u:f);return[u+d,f+d]}let s=i+a>>1,o=e[s],[c,l]=r?[o.fromA,o.toA]:[o.fromB,o.toB];if(c>t)a=s;else if(l<=t)i=s+1;else return n?[o.fromA,o.fromB]:[o.toA,o.toB]}}function fP(e,t,r,n){let i=[];return t.iterChangedRanges((a,s,o,c)=>{let l=0,u=r?t.length:n,f=0,d=r?n:t.length;a>Vd&&([l,f]=uP(e,a-Vd,r,!0)),s=l?i[i.length-1]={fromA:p.fromA,fromB:p.fromB,toA:u,toB:d,diffA:p.diffA+m,diffB:p.diffB+v}:i.push({fromA:l,toA:u,fromB:f,toB:d,diffA:m,diffB:v})}),i}function dP(e,t,r,n,i){if(!e.length)return t;let a=[];for(let s=0,o=0,c=0,l=0;;s++){let u=s==e.length?null:e[s],f=u?u.fromA+o:r.length,d=u?u.fromB+c:n.length;for(;lf||v.toB+c>d)break;a.push(v.offset(o,c)),l++}if(!u)break;let h=u.toA+o+u.diffA,p=u.toB+c+u.diffB,m=PP(r.sliceString(f,h),n.sliceString(d,p),i);for(let v of RP(m,r,n,f,d))a.push(v);for(o+=u.diffA,c+=u.diffB;lh&&v.fromB+c>p)break;l++}}return a}var kH={scanLimit:500},MP=Re.ViewPlugin.fromClass(class{constructor(e){({deco:this.deco,gutter:this.gutter}=mP(e))}update(e){(e.docChanged||e.viewportChanged||TH(e.startState,e.state)||CH(e.startState,e.state))&&({deco:this.deco,gutter:this.gutter}=mP(e.view))}},{decorations:e=>e.deco}),Wd=Se.Prec.low((0,Re.gutter)({class:"cm-changeGutter",markers:e=>{var t;return((t=e.plugin(MP))===null||t===void 0?void 0:t.gutter)||Se.RangeSet.empty}}));function TH(e,t){return e.field(Ao,!1)!=t.field(Ao,!1)}function CH(e,t){return e.facet(Fn)!=t.facet(Fn)}var hP=Re.Decoration.line({class:"cm-changedLine"}),PH=Re.Decoration.mark({class:"cm-changedText"}),RH=Re.Decoration.mark({tagName:"ins",class:"cm-insertedLine"}),MH=Re.Decoration.mark({tagName:"del",class:"cm-deletedLine"}),pP=new class extends Re.GutterMarker{constructor(){super(...arguments),this.elementClass="cm-changedLineGutter"}};function OH(e,t,r,n,i,a){let s=r?e.fromA:e.fromB,o=r?e.toA:e.toB,c=0;if(s!=o){i.add(s,s,hP),i.add(s,o,r?MH:RH),a&&a.add(s,s,pP);for(let l=t.iterRange(s,o-1),u=s;!l.next().done;){if(l.lineBreak){u++,i.add(u,u,hP),a&&a.add(u,u,pP);continue}let f=u+l.value.length;if(n)for(;c=l)break;(a?u.toA:u.toB)>c&&OH(u,e.state.doc,a,n,s,o)}return{deco:s.finish(),gutter:o&&o.finish()}}var xo=class extends Re.WidgetType{constructor(t){super(),this.height=t}eq(t){return this.height==t.height}toDOM(){let t=document.createElement("div");return t.className="cm-mergeSpacer",t.style.height=this.height+"px",t}updateDOM(t){return t.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Zd=Se.StateEffect.define({map:(e,t)=>e.map(t)}),Pc=Se.StateField.define({create:()=>Re.Decoration.none,update:(e,t)=>{for(let r of t.effects)if(r.is(Zd))return r.value;return e.map(t.changes)},provide:e=>Re.EditorView.decorations.from(e)}),qd=.01;function gP(e,t){if(e.size!=t.size)return!1;let r=e.iter(),n=t.iter();for(;r.value;){if(r.from!=n.from||Math.abs(r.value.spec.widget.height-n.value.spec.widget.height)>1)return!1;r.next(),n.next()}return!0}function IH(e,t,r){let n=new Se.RangeSetBuilder,i=new Se.RangeSetBuilder,a=e.state.field(Pc).iter(),s=t.state.field(Pc).iter(),o=0,c=0,l=0,u=0,f=e.viewport,d=t.viewport;for(let v=0;;v++){let y=vqd&&(u+=k,i.add(c,c,Re.Decoration.widget({widget:new xo(k),block:!0,side:-1})))}if(b>o+1e3&&of.from&&cd.from){let E=Math.min(f.from-o,d.from-c);o+=E,c+=E,v--}else if(y)o=y.toA,c=y.toB;else break;for(;a.value&&a.fromqd&&i.add(t.state.doc.length,t.state.doc.length,Re.Decoration.widget({widget:new xo(h),block:!0,side:1}));let p=n.finish(),m=i.finish();gP(p,e.state.field(Pc))||e.dispatch({effects:Zd.of(p)}),gP(m,t.state.field(Pc))||t.dispatch({effects:Zd.of(m)})}var Iv=Se.StateEffect.define({map:(e,t)=>t.mapPos(e)}),Fv=class extends Re.WidgetType{constructor(t){super(),this.lines=t}eq(t){return this.lines==t.lines}toDOM(t){let r=document.createElement("div");return r.className="cm-collapsedLines",r.textContent=t.state.phrase("$ unchanged lines",this.lines),r.addEventListener("click",n=>{let i=t.posAtDOM(n.target);t.dispatch({effects:Iv.of(i)});let{side:a,sibling:s}=t.state.facet(Fn);s&&s().dispatch({effects:Iv.of(FH(i,t.state.field(Ao),a=="a"))})}),r}ignoreEvent(t){return t instanceof MouseEvent}get estimatedHeight(){return 27}};function FH(e,t,r){let n=0,i=0;for(let a=0;;a++){let s=a=e)return i+(e-n);[n,i]=r?[s.toA,s.toB]:[s.toB,s.toA]}}var $H=Se.StateField.define({create(e){return Re.Decoration.none},update(e,t){e=e.map(t.changes);for(let r of t.effects)r.is(Iv)&&(e=e.update({filter:n=>n!=r.value}));return e},provide:e=>Re.EditorView.decorations.from(e)});function vP({margin:e=3,minSize:t=4}){return $H.init(r=>LH(r,e,t))}function LH(e,t,r){let n=new Se.RangeSetBuilder,i=e.facet(Fn).side=="a",a=e.field(Ao),s=1;for(let o=0;;o++){let c=o=r&&n.add(e.doc.line(l).from,e.doc.line(u).to,Re.Decoration.replace({widget:new Fv(f),block:!0})),!c)break;s=e.doc.lineAt(Math.min(e.doc.length,i?c.toA:c.toB)).number}return n.finish()}var DH=Re.EditorView.styleModule.of(new zd({".cm-mergeView":{overflowY:"auto"},".cm-mergeViewEditors":{display:"flex",alignItems:"stretch"},".cm-mergeViewEditor":{flexGrow:1,flexBasis:0,overflow:"hidden"},".cm-merge-revert":{width:"1.6em",flexGrow:0,flexShrink:0,position:"relative"},".cm-merge-revert button":{position:"absolute",display:"block",width:"100%",boxSizing:"border-box",textAlign:"center",background:"none",border:"none",font:"inherit",cursor:"pointer"}})),NH=Re.EditorView.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:"auto !important",overflowY:"visible !important"},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:"rgba(160, 128, 100, .08)"},"&.cm-merge-b .cm-changedLine":{backgroundColor:"rgba(100, 160, 128, .08)"},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat"},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat"},"&light.cm-merge-b .cm-changedText":{background:"linear-gradient(#22bb2266, #22bb2266) bottom/100% 2px no-repeat"},"&dark.cm-merge-b .cm-changedText":{background:"linear-gradient(#88ff8866, #88ff8866) bottom/100% 2px no-repeat"},".cm-insertedLine, .cm-deletedLine":{textDecoration:"none"},".cm-deletedChunk":{paddingLeft:"6px","& .cm-chunkButtons":{position:"absolute",insetInlineEnd:"5px"},"& button":{border:"none",cursor:"pointer",color:"white",margin:"0 2px",borderRadius:"3px","&[name=accept]":{background:"#2a2"},"&[name=reject]":{background:"#d43"}}},".cm-collapsedLines":{padding:"5px 5px 5px 10px",cursor:"pointer","&:before":{content:'"\u299A"',marginInlineEnd:"7px"},"&:after":{content:'"\u299A"',marginInlineStart:"7px"}},"&light .cm-collapsedLines":{color:"#444",background:"linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)"},"&dark .cm-collapsedLines":{color:"#ddd",background:"linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)"},".cm-changeGutter":{width:"3px",paddingLeft:"1px"},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:"#e43"},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:"#fa9"},"&light.cm-merge-b .cm-changedLineGutter":{background:"#2b2"},"&dark.cm-merge-b .cm-changedLineGutter":{background:"#8f8"}}),yP=new Se.Compartment,Yd=new Se.Compartment,Kd=class{constructor(t){this.revertDOM=null,this.revertToA=!1,this.revertToLeft=!1,this.measuring=-1,this.diffConf=t.diffConfig||kH;let r=[Se.Prec.low(MP),NH,DH,Pc,Re.EditorView.updateListener.of(f=>{this.measuring<0&&(f.heightChanged||f.viewportChanged)&&!f.transactions.some(d=>d.effects.some(h=>h.is(Zd)))&&this.measure()})],n=[Fn.of({side:"a",sibling:()=>this.b,highlightChanges:t.highlightChanges!==!1,markGutter:t.gutter!==!1})];t.gutter!==!1&&n.push(Wd);let i=Se.EditorState.create({doc:t.a.doc,selection:t.a.selection,extensions:[t.a.extensions||[],Re.EditorView.editorAttributes.of({class:"cm-merge-a"}),Yd.of(n),r]}),a=[Fn.of({side:"b",sibling:()=>this.a,highlightChanges:t.highlightChanges!==!1,markGutter:t.gutter!==!1})];t.gutter!==!1&&a.push(Wd);let s=Se.EditorState.create({doc:t.b.doc,selection:t.b.selection,extensions:[t.b.extensions||[],Re.EditorView.editorAttributes.of({class:"cm-merge-b"}),Yd.of(a),r]});this.chunks=So.build(i.doc,s.doc,this.diffConf);let o=[Ao.init(()=>this.chunks),yP.of(t.collapseUnchanged?vP(t.collapseUnchanged):[])];i=i.update({effects:Se.StateEffect.appendConfig.of(o)}).state,s=s.update({effects:Se.StateEffect.appendConfig.of(o)}).state,this.dom=document.createElement("div"),this.dom.className="cm-mergeView",this.editorDOM=this.dom.appendChild(document.createElement("div")),this.editorDOM.className="cm-mergeViewEditors";let c=t.orientation||"a-b",l=document.createElement("div");l.className="cm-mergeViewEditor";let u=document.createElement("div");u.className="cm-mergeViewEditor",this.editorDOM.appendChild(c=="a-b"?l:u),this.editorDOM.appendChild(c=="a-b"?u:l),this.a=new Re.EditorView({state:i,parent:l,root:t.root,dispatchTransactions:f=>this.dispatch(f,this.a)}),this.b=new Re.EditorView({state:s,parent:u,root:t.root,dispatchTransactions:f=>this.dispatch(f,this.b)}),this.setupRevertControls(!!t.revertControls,t.revertControls=="b-to-a",t.renderRevertControl),t.parent&&t.parent.appendChild(this.dom),this.scheduleMeasure()}dispatch(t,r){if(t.some(n=>n.docChanged)){let n=t[t.length-1],i=t.reduce((s,o)=>s.compose(o.changes),Se.ChangeSet.empty(t[0].startState.doc.length));this.chunks=r==this.a?So.updateA(this.chunks,n.newDoc,this.b.state.doc,i,this.diffConf):So.updateB(this.chunks,this.a.state.doc,n.newDoc,i,this.diffConf),r.update([...t,n.state.update({effects:Ov.of(this.chunks)})]);let a=r==this.a?this.b:this.a;a.update([a.state.update({effects:Ov.of(this.chunks)})]),this.scheduleMeasure()}else r.update(t)}reconfigure(t){if("diffConfig"in t&&(this.diffConf=t.diffConfig),"orientation"in t){let a=t.orientation!="b-a";if(a!=(this.editorDOM.firstChild==this.a.dom.parentNode)){let s=this.a.dom.parentNode,o=this.b.dom.parentNode;s.remove(),o.remove(),this.editorDOM.insertBefore(a?s:o,this.editorDOM.firstChild),this.editorDOM.appendChild(a?o:s),this.revertToLeft=!this.revertToLeft,this.revertDOM&&(this.revertDOM.textContent="")}}if("revertControls"in t||"renderRevertControl"in t){let a=!!this.revertDOM,s=this.revertToA,o=this.renderRevert;"revertControls"in t&&(a=!!t.revertControls,s=t.revertControls=="b-to-a"),"renderRevertControl"in t&&(o=t.renderRevertControl),this.setupRevertControls(a,s,o)}let r="highlightChanges"in t,n="gutter"in t,i="collapseUnchanged"in t;if(r||n||i){let a=[],s=[];if(r||n){let o=this.a.state.facet(Fn),c=n?t.gutter!==!1:o.markGutter,l=r?t.highlightChanges!==!1:o.highlightChanges;a.push(Yd.reconfigure([Fn.of({side:"a",sibling:()=>this.b,highlightChanges:l,markGutter:c}),c?Wd:[]])),s.push(Yd.reconfigure([Fn.of({side:"b",sibling:()=>this.a,highlightChanges:l,markGutter:c}),c?Wd:[]]))}if(i){let o=yP.reconfigure(t.collapseUnchanged?vP(t.collapseUnchanged):[]);a.push(o),s.push(o)}this.a.dispatch({effects:a}),this.b.dispatch({effects:s})}this.scheduleMeasure()}setupRevertControls(t,r,n){this.revertToA=r,this.revertToLeft=this.revertToA==(this.editorDOM.firstChild==this.a.dom.parentNode),this.renderRevert=n,!t&&this.revertDOM?(this.revertDOM.remove(),this.revertDOM=null):t&&!this.revertDOM?(this.revertDOM=this.editorDOM.insertBefore(document.createElement("div"),this.editorDOM.firstChild.nextSibling),this.revertDOM.addEventListener("mousedown",i=>this.revertClicked(i)),this.revertDOM.className="cm-merge-revert"):this.revertDOM&&(this.revertDOM.textContent="")}scheduleMeasure(){if(this.measuring<0){let t=this.dom.ownerDocument.defaultView||window;this.measuring=t.requestAnimationFrame(()=>{this.measuring=-1,this.measure()})}}measure(){IH(this.a,this.b,this.chunks),this.revertDOM&&this.updateRevertButtons()}updateRevertButtons(){let t=this.revertDOM,r=t.firstChild,n=this.a.viewport,i=this.b.viewport;for(let a=0;an.to||s.fromB>i.to)break;if(s.fromA-1&&(this.dom.ownerDocument.defaultView||window).cancelAnimationFrame(this.measuring),this.dom.remove()}};function wP(e){let t=e.nextSibling;return e.remove(),t}var Co=require("@codemirror/commands"),Jd=require("@codemirror/search");var za=class extends To.ItemView{constructor(r,n){super(r);this.plugin=n;this.refreshing=!1;this.ignoreNextModification=!1;this.navigation=!0,this.registerEvent(this.app.workspace.on("obsidian-git:status-changed",()=>{this.mergeView?this.updateRefEditors().catch(console.error):this.createMergeView().catch(console.error)})),this.intervalRef=window.setInterval(()=>{this.mergeView&&this.updateRefEditors().catch(console.error)},30*1e3),this.registerEvent(this.app.vault.on("modify",i=>{this.state.bRef==null&&i.path===this.state.bFile&&(this.ignoreNextModification?this.ignoreNextModification=!1:this.updateModifiableEditor().catch(console.error))})),this.registerEvent(this.app.vault.on("delete",i=>{this.state.bRef==null&&i.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("create",i=>{this.state.bRef==null&&i.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("rename",(i,a)=>{this.state.bRef==null&&(i.path===this.state.bFile||a===this.state.bFile)&&this.createMergeView().catch(console.error)})),this.fileSaveDebouncer=(0,To.debounce)(i=>{let a=this.state.bFile;a&&(this.ignoreNextModification=!0,this.plugin.app.vault.adapter.write(a,i).catch(s=>this.plugin.displayError(s)))},1e3,!1)}getViewType(){return Ai.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let n=this.state.bFile.split("/").last();return n!=null&&n.endsWith(".md")&&(n=n.slice(0,-3)),`Diff: ${n}`}return Ai.name}getIcon(){return Ai.icon}async setState(r,n){this.state=r,To.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await super.setState(r,n),await this.createMergeView()}getState(){return this.state}onClose(){return window.clearInterval(this.intervalRef),super.onClose()}async onOpen(){return await this.createMergeView(),super.onOpen()}async gitShow(r,n){try{return await this.plugin.gitManager.show(r,n,!1)}catch(i){if(i instanceof yr&&(i.message.includes("does not exist")||i.message.includes("unknown revision or path")||i.message.includes("exists on disk, but not in")))return"";throw i}}async bShouldBeEditable(){if(this.state.bRef!=null)return!1;let r=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);return await this.app.vault.adapter.exists(r)}async updateModifiableEditor(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.b;this.refreshing=!0;let n=await this.app.vault.adapter.read(this.state.bFile);if(n!=r.state.doc.toString()){let i=r.state.update({changes:{from:0,to:r.state.doc.length,insert:n},annotations:[ko.Transaction.remote.of(!0)]});r.dispatch(i)}this.refreshing=!1}async updateRefEditors(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.a,n=this.mergeView.b;this.refreshing=!0;let i=await this.gitShow(this.state.aRef,this.state.aFile),a;if(this.state.bRef!=null&&(a=await this.gitShow(this.state.bRef,this.state.bFile)),i!=r.state.doc.toString()){let s=r.state.update({changes:{from:0,to:r.state.doc.length,insert:i}});r.dispatch(s)}if(a!=null&&a!=n.state.doc.toString()){let s=n.state.update({changes:{from:0,to:n.state.doc.length,insert:a}});n.dispatch(s)}this.refreshing=!1}async createMergeView(){var r,n,i;if((r=this.state)!=null&&r.aFile&&((n=this.state)!=null&&n.bFile)&&!this.refreshing&&this.plugin.gitManager){this.refreshing=!0,(i=this.mergeView)==null||i.destroy();let a=this.containerEl.children[1];a.empty(),this.contentEl.addClass("git-split-diff-view"),this.bIsEditable=await this.bShouldBeEditable();let s=await this.gitShow(this.state.aRef,this.state.aFile),o;if(this.state.bRef!=null)o=await this.gitShow(this.state.bRef,this.state.bFile);else{let p=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);await this.app.vault.adapter.exists(p)?o=await this.app.vault.adapter.read(p):o=""}let c=[(0,Yr.lineNumbers)(),(0,Jd.highlightSelectionMatches)(),(0,Yr.drawSelection)(),Yr.keymap.of([...Co.standardKeymap,Co.indentWithTab]),(0,Co.history)(),(0,Jd.search)(),Yr.EditorView.lineWrapping],l=this,u=Yr.ViewPlugin.define(p=>({update(m){if(m.docChanged&&!m.transactions.some(v=>v.annotation(ko.Transaction.remote))){let v=p.state.doc.toString();l.fileSaveDebouncer(v)}}})),f={doc:s,extensions:[...c,Yr.EditorView.editable.of(!1),ko.EditorState.readOnly.of(!0)]},d=[...c];this.bIsEditable?d.push(u):d.push(Yr.EditorView.editable.of(!1),ko.EditorState.readOnly.of(!0));let h={doc:o,extensions:d};a.addClasses(["cm-s-obsidian","mod-cm6","markdown-source-view","cm-content"]),this.mergeView=new Kd({b:h,a:f,diffConfig:{scanLimit:this.bIsEditable?1e3:1e4},parent:a}),this.refreshing=!1}}};var Qd=class extends Ce.Plugin{constructor(){super(...arguments);this.automaticsManager=new Zl(this);this.tools=new Tc(this);this.localStorage=new dd(this);this.state={gitAction:0,offlineMode:!1};this.gitReady=!1;this.promiseQueue=new sd(this);this.intervalsToClear=[];this.lineAuthoringFeature=new ad(this)}setPluginState(r){var n;this.state=Object.assign(this.state,r),(n=this.statusBar)==null||n.display()}async updateCachedStatus(){var r,n;return this.app.workspace.trigger("obsidian-git:loading-status"),this.cachedStatus=await this.gitManager.status(),this.cachedStatus.conflicted.length>0?(this.localStorage.setConflict(!0),await((r=this.branchBar)==null?void 0:r.display())):(this.localStorage.setConflict(!1),await((n=this.branchBar)==null?void 0:n.display())),this.app.workspace.trigger("obsidian-git:status-changed",this.cachedStatus),this.cachedStatus}async refresh(){if(!this.gitReady)return;let r=this.app.workspace.getLeavesOfType(St.type),n=this.app.workspace.getLeavesOfType(Fr.type);(this.settings.changedFilesInStatusBar||r.some(i=>{var a;return!((a=i.isDeferred)!=null&&a)})||n.some(i=>{var a;return!((a=i.isDeferred)!=null&&a)}))&&await this.updateCachedStatus().catch(i=>this.displayError(i)),this.app.workspace.trigger("obsidian-git:refreshed")}refreshUpdatedHead(){this.lineAuthoringFeature.refreshLineAuthorViews()}async onload(){console.log("loading "+this.manifest.name+" plugin: v"+this.manifest.version),Xl.plugin=this,this.localStorage.migrate(),await this.loadSettings(),await this.migrateSettings(),this.settingsTab=new Vf(this.app,this),this.addSettingTab(this.settingsTab),this.localStorage.getPluginDisabled()||(this.registerStuff(),this.app.workspace.onLayoutReady(()=>this.init({fromReload:!1}).catch(r=>this.displayError(r))))}onExternalSettingsChange(){this.reloadSettings().catch(r=>this.displayError(r))}async reloadSettings(){let r=JSON.stringify(this.settings);await this.loadSettings();let n=JSON.stringify(this.settings);r!==n&&(this.log("Reloading settings"),this.unloadPlugin(),await this.init({fromReload:!0}),this.app.workspace.getLeavesOfType(St.type).forEach(i=>{var a;if(!((a=i.isDeferred)!=null&&a))return i.view.reload()}),this.app.workspace.getLeavesOfType(Fr.type).forEach(i=>{var a;if(!((a=i.isDeferred)!=null&&a))return i.view.reload()}))}registerStuff(){this.registerEvent(this.app.workspace.on("obsidian-git:refresh",()=>{this.refresh().catch(r=>this.displayError(r))})),this.registerEvent(this.app.workspace.on("obsidian-git:head-change",()=>{this.refreshUpdatedHead()})),this.registerEvent(this.app.workspace.on("file-menu",(r,n,i)=>{this.handleFileMenu(r,n,i,"file-manu")})),this.registerEvent(this.app.workspace.on("obsidian-git:menu",(r,n,i)=>{this.handleFileMenu(r,n,i,"obsidian-git:menu")})),this.registerEvent(this.app.workspace.on("active-leaf-change",r=>{this.onActiveLeafChange(r)})),this.registerEvent(this.app.vault.on("modify",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("delete",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("create",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("rename",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerView(St.type,r=>new kc(r,this)),this.registerView(Fr.type,r=>new yc(r,this)),this.registerView(ki.type,r=>new Ta(r,this)),this.registerView(Ai.type,r=>new za(r,this)),this.addRibbonIcon("git-pull-request","Open Git source control",async()=>{var i;let r=this.app.workspace.getLeavesOfType(St.type),n;r.length===0?(n=(i=this.app.workspace.getRightLeaf(!1))!=null?i:this.app.workspace.getLeaf(),await n.setViewState({type:St.type})):n=r.first(),await this.app.workspace.revealLeaf(n)}),this.registerHoverLinkSource(St.type,{display:"Git View",defaultMod:!0}),this.lineAuthoringFeature.onLoadPlugin(),this.setRefreshDebouncer(),lC(this)}setRefreshDebouncer(){var r;(r=this.debRefresh)==null||r.cancel(),this.debRefresh=(0,Ce.debounce)(()=>{this.settings.refreshSourceControl&&this.refresh().catch(console.error)},this.settings.refreshSourceControlTimer,!0)}async addFileToGitignore(r){return await this.app.vault.adapter.append(this.gitManager.getRelativeVaultPath(".gitignore"),` -`+this.gitManager.getRelativeRepoPath(r,!0)),this.refresh()}handleFileMenu(r,n,i,a){if(!this.gitReady||!this.settings.showFileMenu||!n)return;let s;if(typeof n=="string"?s=n:s=n.path,i=="file-explorer-context-menu"&&(r.addItem(o=>{o.setTitle("Git: Stage").setIcon("plus-circle").setSection("action").onClick(c=>{this.promiseQueue.addTask(async()=>{n instanceof Ce.TFile?await this.gitManager.stage(n.path,!0):await this.gitManager.stageAll({dir:this.gitManager.getRelativeRepoPath(s,!0)}),this.displayMessage(`Staged ${s}`)})})}),r.addItem(o=>{o.setTitle("Git: Unstage").setIcon("minus-circle").setSection("action").onClick(c=>{this.promiseQueue.addTask(async()=>{n instanceof Ce.TFile?await this.gitManager.unstage(n.path,!0):await this.gitManager.unstageAll({dir:this.gitManager.getRelativeRepoPath(s,!0)}),this.displayMessage(`Unstaged ${s}`)})})}),r.addItem(o=>{o.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(c=>{this.addFileToGitignore(s).catch(l=>this.displayError(l))})})),i=="git-source-control"){r.addItem(c=>{c.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(l=>{this.addFileToGitignore(s).catch(u=>this.displayError(u))})});let o=this.app.vault.adapter;a==="obsidian-git:menu"&&o instanceof Ce.FileSystemAdapter&&(r.addItem(c=>{c.setTitle("Open in default app").setIcon("arrow-up-right").setSection("action").onClick(l=>{this.app.openWithDefaultApp(s)})}),r.addItem(c=>{c.setTitle("Show in system explorer").setIcon("arrow-up-right").setSection("action").onClick(l=>{window.electron.shell.showItemInFolder(OP.join(o.getBasePath(),s))})}))}}async migrateSettings(){this.settings.mergeOnPull!=null&&(this.settings.syncMethod=this.settings.mergeOnPull?"merge":"rebase",this.settings.mergeOnPull=void 0,await this.saveSettings()),this.settings.autoCommitMessage===void 0&&(this.settings.autoCommitMessage=this.settings.commitMessage,await this.saveSettings()),this.settings.gitPath!=null&&(this.localStorage.setGitPath(this.settings.gitPath),this.settings.gitPath=void 0,await this.saveSettings()),this.settings.username!=null&&(this.localStorage.setPassword(this.settings.username),this.settings.username=void 0,await this.saveSettings())}unloadPlugin(){var r,n;this.gitReady=!1,this.lineAuthoringFeature.deactivateFeature(),this.automaticsManager.unload(),(r=this.branchBar)==null||r.remove(),(n=this.statusBar)==null||n.remove(),this.gitManager.unload(),this.promiseQueue.clear();for(let i of this.intervalsToClear)window.clearInterval(i);this.intervalsToClear=[],this.debRefresh.cancel()}onunload(){this.unloadPlugin(),console.log("unloading "+this.manifest.name+" plugin")}async loadSettings(){let r=await this.loadData();r==null&&(r={showedMobileNotice:!0}),this.settings=Ax(Sn,r)}async saveSettings(){var r;(r=this.settingsTab)==null||r.beforeSaveSettings(),await this.saveData(this.settings)}get useSimpleGit(){return Ce.Platform.isDesktopApp}async init({fromReload:r=!1}){var n;if(this.settings.showStatusBar){let i=this.addStatusBarItem();this.statusBar=new od(i,this),this.intervalsToClear.push(window.setInterval(()=>{var a;return(a=this.statusBar)==null?void 0:a.display()},1e3))}try{this.useSimpleGit?(this.gitManager=new Te(this),await this.gitManager.setGitInstance()):this.gitManager=new nn(this);let i=await this.gitManager.checkRequirements();switch(i){case"missing-git":this.displayError(`Cannot run git command. Trying to run: '${this.localStorage.getGitPath()||"git"}' .`);break;case"missing-repo":new Ce.Notice("Can't find a valid git repository. Please create one via the given command or clone an existing repo.",1e4);break;case"valid":if(this.gitReady=!0,this.setPluginState({gitAction:0}),Ce.Platform.isDesktop&&this.settings.showBranchStatusBar){let a=this.addStatusBarItem();this.branchBar=new Gd(a,this),this.intervalsToClear.push(window.setInterval(()=>{var s;return void((s=this.branchBar)==null?void 0:s.display().catch(console.error))},6e4))}await((n=this.branchBar)==null?void 0:n.display()),this.lineAuthoringFeature.conditionallyActivateBySettings(),this.app.workspace.trigger("obsidian-git:refresh"),this.app.workspace.trigger("obsidian-git:head-change"),!r&&this.settings.autoPullOnBoot&&this.promiseQueue.addTask(()=>this.pullChangesFromRemote()),await this.automaticsManager.init();break;default:this.log("Something weird happened. The 'checkRequirements' result is "+i)}}catch(i){this.displayError(i),console.error(i)}}async createNewRepo(){try{await this.gitManager.init(),new Ce.Notice("Initialized new repo"),await this.init({fromReload:!0})}catch(r){this.displayError(r)}}async cloneNewRepo(){let n=await new Fe(this,{placeholder:"Enter remote URL"}).openAndGetResult();if(n){let i="Vault Root",a=await new Fe(this,{options:this.gitManager instanceof nn?[i]:[],placeholder:"Enter directory for clone. It needs to be empty or not existent.",allowEmpty:this.gitManager instanceof nn}).openAndGetResult();if(a==null)return;if(a===i&&(a="."),a=(0,Ce.normalizePath)(a),a==="/"&&(a="."),a==="."){let f=await new Fe(this,{options:["NO","YES"],placeholder:`Does your remote repo contain a ${this.app.vault.configDir} directory at the root?`,onlySelection:!0}).openAndGetResult();if(f===void 0){new Ce.Notice("Aborted clone");return}else if(f==="YES"){let d="DELETE ALL YOUR LOCAL CONFIG AND PLUGINS";if(await new Fe(this,{options:["Abort clone",d],placeholder:`To avoid conflicts, the local ${this.app.vault.configDir} directory needs to be deleted.`,onlySelection:!0}).openAndGetResult()===d)await this.app.vault.adapter.rmdir(this.app.vault.configDir,!0);else{new Ce.Notice("Aborted clone");return}}}let s=await new Fe(this,{placeholder:"Specify depth of clone. Leave empty for full clone.",allowEmpty:!0}).openAndGetResult(),o;if(s!==""&&(o=parseInt(s),isNaN(o))){new Ce.Notice("Invalid depth. Aborting clone.");return}new Ce.Notice(`Cloning new repo into "${a}"`);let c=this.settings.basePath,l=a&&a!==".";l&&(this.settings.basePath=a);try{await this.gitManager.clone(Wg(n),a,o),new Ce.Notice("Cloned new repo."),new Ce.Notice("Please restart Obsidian"),l&&await this.saveSettings()}catch(u){this.displayError(u),this.settings.basePath=c,await this.saveSettings()}}}async isAllInitialized(){return this.gitReady||await this.init({fromReload:!0}),this.gitReady}async pullChangesFromRemote(){if(!await this.isAllInitialized())return;let r=await this.pull();if(await this.automaticsManager.setUpAutoCommitAndSync(),r!==!1){if(r||this.displayMessage("Pull: Everything is up-to-date"),this.gitManager instanceof Te){let n=await this.updateCachedStatus();n.conflicted.length>0&&(this.displayError(`You have conflicts in ${n.conflicted.length} ${n.conflicted.length==1?"file":"files"}`),await this.handleConflict(n.conflicted))}this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0})}}async commitAndSync(r,n=!1,i){!await this.isAllInitialized()||(this.settings.syncMethod=="reset"&&this.settings.pullBeforePush&&await this.pull(),!await this.commit({fromAuto:r,requestCustomMessage:n,commitMessage:i}))||(this.settings.syncMethod!="reset"&&this.settings.pullBeforePush&&await this.pull(),this.settings.disablePush||(await this.remotesAreSet()&&await this.gitManager.canPush()?await this.push():this.displayMessage("No commits to push")),this.setPluginState({gitAction:0}))}async commit({fromAuto:r,requestCustomMessage:n=!1,onlyStaged:i=!1,commitMessage:a,amend:s=!1}){if(!await this.isAllInitialized())return!1;try{let o=this.localStorage.getConflict(),c,l,u;if(this.gitManager instanceof Te){if(await this.mayDeleteConflictFile(),l=await this.updateCachedStatus(),l.conflicted.length==0&&(o=!1),r&&l.conflicted.length>0)return this.displayError(`Did not commit, because you have conflicts in ${l.conflicted.length} ${l.conflicted.length==1?"file":"files"}. Please resolve them and commit per command.`),await this.handleConflict(l.conflicted),!1;c=[...l.changed,...l.staged]}else{if(r&&o)return this.displayError("Did not commit, because you have conflicts. Please resolve them and commit per command."),!1;if(o)await this.mayDeleteConflictFile(),l=await this.updateCachedStatus(),c=[...l.changed,...l.staged];else{let f=this.gitManager;i?c=await f.getStagedFiles():(u=await f.getUnstagedFiles(),c=u.map(({path:d})=>({vaultPath:this.gitManager.getRelativeVaultPath(d),path:d})))}}if(await this.tools.hasTooBigFiles(c))return this.setPluginState({gitAction:0}),!1;if(c.length!==0||o){let f=a!=null?a:a=r?this.settings.autoCommitMessage:this.settings.commitMessage;if(r&&this.settings.customMessageOnAutoBackup||n){!this.settings.disablePopups&&r&&new Ce.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort");let p=await new ld(this).openAndGetResult();if(p!=null&&p!=""&&p!="...")f=p;else return this.setPluginState({gitAction:0}),!1}let d;i?d=await this.gitManager.commit({message:f,amend:s}):d=await this.gitManager.commitAll({message:f,status:l,unstagedFiles:u,amend:s}),this.gitManager instanceof Te&&await this.updateCachedStatus();let h=!1;d===void 0&&(h=!0,d=c.length),await this.automaticsManager.setUpAutoCommitAndSync(),this.displayMessage(`Committed${h?" approx.":""} ${d} ${d==1?"file":"files"}`)}else this.displayMessage("No changes to commit");return this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(o){return this.displayError(o),!1}}async push(){if(!await this.isAllInitialized()||!await this.remotesAreSet())return!1;let r=this.localStorage.getConflict();try{this.gitManager instanceof Te&&await this.mayDeleteConflictFile();let n;if(this.gitManager instanceof Te&&(n=await this.updateCachedStatus()).conflicted.length>0)return this.displayError(`Cannot push. You have conflicts in ${n.conflicted.length} ${n.conflicted.length==1?"file":"files"}`),await this.handleConflict(n.conflicted),!1;if(this.gitManager instanceof nn&&r)return this.displayError("Cannot push. You have conflicts"),!1;this.log("Pushing....");let i=await this.gitManager.push();return i!==void 0&&(i>0?this.displayMessage(`Pushed ${i} ${i==1?"file":"files"} to remote`):this.displayMessage("No commits to push")),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(n){return n instanceof Fs?this.handleNoNetworkError(n):this.displayError(n),!1}}async pull(){if(!await this.remotesAreSet())return!1;try{this.log("Pulling....");let r=await this.gitManager.pull()||[];return this.setPluginState({offlineMode:!1}),r.length>0&&(this.displayMessage(`Pulled ${r.length} ${r.length==1?"file":"files"} from remote`),this.lastPulledFiles=r),r.length}catch(r){return this.displayError(r),!1}}async fetch(){if(await this.remotesAreSet())try{await this.gitManager.fetch(),this.displayMessage("Fetched from remote"),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh")}catch(r){this.displayError(r)}}async mayDeleteConflictFile(){let r=this.app.vault.getAbstractFileByPath(Os);r&&(this.app.workspace.iterateAllLeaves(n=>{var i;n.view instanceof Ce.MarkdownView&&((i=n.view.file)==null?void 0:i.path)==r.path&&n.detach()}),await this.app.vault.delete(r))}async stageFile(r){return await this.isAllInitialized()?(await this.gitManager.stage(r.path,!0),this.displayMessage(`Staged ${r.path}`),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async unstageFile(r){return await this.isAllInitialized()?(await this.gitManager.unstage(r.path,!0),this.displayMessage(`Unstaged ${r.path}`),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async switchBranch(){var i;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo(),n=await new Ud(this,r.branches).openAndGetReslt();if(n!=null)return await this.gitManager.checkout(n),this.displayMessage(`Switched to ${n}`),this.app.workspace.trigger("obsidian-git:refresh"),await((i=this.branchBar)==null?void 0:i.display()),n}async switchRemoteBranch(){var a;if(!await this.isAllInitialized())return;let r=await this.selectRemoteBranch()||"",[n,i]=Ii(r);if(i!=null&&n!=null)return await this.gitManager.checkout(i,n),this.displayMessage(`Switched to ${r}`),await((a=this.branchBar)==null?void 0:a.display()),r}async createBranch(){var n;if(!await this.isAllInitialized())return;let r=await new Fe(this,{placeholder:"Create new branch"}).openAndGetResult();if(r!=null)return await this.gitManager.createBranch(r),this.displayMessage(`Created new branch ${r}`),await((n=this.branchBar)==null?void 0:n.display()),r}async deleteBranch(){var i;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo();r.current&&r.branches.remove(r.current);let n=await new Fe(this,{options:r.branches,placeholder:"Delete branch",onlySelection:!0}).openAndGetResult();if(n!=null){let a=!1;if(!await this.gitManager.branchIsMerged(n)){let o=await new Fe(this,{options:["YES","NO"],placeholder:"This branch isn't merged into HEAD. Force delete?",onlySelection:!0}).openAndGetResult();if(o!=="YES")return;a=o==="YES"}return await this.gitManager.deleteBranch(n,a),this.displayMessage(`Deleted branch ${n}`),await((i=this.branchBar)==null?void 0:i.display()),n}}async remotesAreSet(){return this.settings.updateSubmodules||(await this.gitManager.branchInfo()).tracking?!0:(new Ce.Notice("No upstream branch is set. Please select one."),await this.setUpstreamBranch())}async setUpstreamBranch(){let r=await this.selectRemoteBranch();return r==null?(this.displayError("Aborted. No upstream-branch is set!",1e4),this.setPluginState({gitAction:0}),!1):(await this.gitManager.updateUpstreamBranch(r),this.displayMessage(`Set upstream branch to ${r}`),this.setPluginState({gitAction:0}),!0)}async discardAll(){await this.gitManager.discardAll({status:this.cachedStatus}),new Ce.Notice("All local changes have been discarded. New files remain untouched."),this.app.workspace.trigger("obsidian-git:refresh")}async handleConflict(r){this.localStorage.setConflict(!0);let n;r!==void 0&&(n=["# Conflicts","Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`","(This file will automatically be deleted before commit)","[[#Additional Instructions]] available below file list","",...r.map(i=>{let a=this.app.vault.getAbstractFileByPath(i);return a instanceof Ce.TFile?`- [[${this.app.metadataCache.fileToLinktext(a,"/")}]]`:`- Not a file: ${i}`}),` +Please remove them or add to .gitignore.`),!0}return!1}async writeAndOpenFile(t){t!==void 0&&await this.plugin.app.vault.adapter.write(Ms,t);let r=!1;this.plugin.app.workspace.iterateAllLeaves(n=>{n.getDisplayText()!=""&&Ms.startsWith(n.getDisplayText())&&(r=!0)}),r||await this.plugin.app.workspace.openLinkText(Ms,"/",!0)}openDiff({aFile:t,bFile:r,aRef:n,bRef:i,event:a}){var c,l;let s=this.plugin.settings.diffStyle;_o.Platform.isMobileApp&&(s="git_unified");let o={aFile:t,bFile:r!=null?r:t,aRef:n,bRef:i};s=="split"?(c=rn(this.plugin.app,a))==null||c.setViewState({type:Ai.type,active:!0,state:o}):s=="git_unified"&&((l=rn(this.plugin.app,a))==null||l.setViewState({type:ki.type,active:!0,state:o}))}async runRawCommand(){let t=this.plugin.gitManager;if(!(t instanceof Te))return;let n=await new Fe(this.plugin,{placeholder:"push origin master",allowEmpty:!1}).openAndGetResult();n!==void 0&&this.plugin.promiseQueue.addTask(async()=>{let i=new _o.Notice(`Running '${n}'...`,999999);try{let a=await t.rawCommand(n);a?(i.setMessage(a),window.setTimeout(()=>i.hide(),5e3)):i.hide()}catch(a){throw i.hide(),a}})}};g();var To=require("obsidian");var Xr=require("@codemirror/view"),ko=require("@codemirror/state");g();var Re=require("@codemirror/view"),Se=require("@codemirror/state");g();var Av="\u037C",eP=typeof Symbol=="undefined"?"__"+Av:Symbol.for(Av),kv=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),tP=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},Gd=class{constructor(t,r){this.rules=[];let{finish:n}=r||{};function i(s){return/^@/.test(s)?[s]:s.split(/,\s*/)}function a(s,o,c,l){let u=[],f=/^@(\w+)\b/.exec(s[0]),d=f&&f[1]=="keyframes";if(f&&o==null)return c.push(s[0]+";");for(let h in o){let p=o[h];if(/&/.test(h))a(h.split(/,\s*/).map(m=>s.map(v=>m.replace(/&/,v))).reduce((m,v)=>m.concat(v)),p,c);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+h+") should be a primitive value.");a(i(h),p,u,d)}else p!=null&&u.push(h.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(u.length||d)&&c.push((n&&!f&&!l?s.map(n):s).join(", ")+" {"+u.join(" ")+"}")}for(let s in t)a(i(s),t[s],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let t=tP[eP]||1;return tP[eP]=t+1,Av+t.toString(36)}static mount(t,r,n){let i=t[kv],a=n&&n.nonce;i?a&&i.setNonce(a):i=new Tv(t,a),i.mount(Array.isArray(r)?r:[r],t)}},rP=new Map,Tv=class{constructor(t,r){let n=t.ownerDocument||t,i=n.defaultView;if(!t.head&&t.adoptedStyleSheets&&i.CSSStyleSheet){let a=rP.get(n);if(a)return t[kv]=a;this.sheet=new i.CSSStyleSheet,rP.set(n,this)}else this.styleTag=n.createElement("style"),r&&this.styleTag.setAttribute("nonce",r);this.modules=[],t[kv]=this}mount(t,r){let n=this.sheet,i=0,a=0;for(let s=0;s-1&&(this.modules.splice(c,1),a--,c=-1),c==-1){if(this.modules.splice(a++,0,o),n)for(let l=0;ll){let f=e.slice(t,r).indexOf(n.slice(i,a));if(f>-1)return[new ht(t,t+f,i,i),new ht(t+f+l,r,a,a)]}else if(l>c){let f=n.slice(i,a).indexOf(e.slice(t,r));if(f>-1)return[new ht(t,t,i,i+f),new ht(r,r,i+f+c,a)]}if(c==1||l==1)return[new ht(t,r,i,a)];let u=xP(e,t,r,n,i,a);if(u){let[f,d,h]=u;return Ua(e,t,f,n,i,d).concat(Ua(e,f+h,r,n,d+h,a))}return _H(e,t,r,n,i,a)}var Tc=1e9;function _H(e,t,r,n,i,a){let s=r-t,o=a-i;if(Tc<1e9&&Math.min(s,o)>Tc*16)return Math.min(s,o)>Tc*64?[new ht(t,r,i,a)]:nP(e,t,r,n,i,a);let c=Math.ceil((s+o)/2);Cv.reset(c),Pv.reset(c);let l=(h,p)=>e.charCodeAt(t+h)==n.charCodeAt(i+p),u=(h,p)=>e.charCodeAt(r-h-1)==n.charCodeAt(a-p-1),f=(s-o)%2!=0?Pv:null,d=f?null:Cv;for(let h=0;hTc)return nP(e,t,r,n,i,a);let p=Cv.advance(h,s,o,c,f,!1,l)||Pv.advance(h,s,o,c,d,!0,u);if(p)return xH(e,t,r,t+p[0],n,i,a,i+p[1])}return[new ht(t,r,i,a)]}var Yd=class{constructor(){this.vec=[]}reset(t){this.len=t<<1;for(let r=0;rr)this.end+=2;else if(f>n)this.start+=2;else if(a){let d=i+(r-n)-c;if(d>=0&&d=r-u)return[h,i+h-d]}else{let h=r-a.vec[d];if(u>=h)return[u,f]}}}return null}},Cv=new Yd,Pv=new Yd;function xH(e,t,r,n,i,a,s,o){let c=!1;return!Eo(e,n)&&++n==r&&(c=!0),!Eo(i,o)&&++o==s&&(c=!0),c?[new ht(t,r,a,s)]:Ua(e,t,n,i,a,o).concat(Ua(e,n,r,i,o,s))}function _P(e,t){let r=1,n=Math.min(e,t);for(;rr||u>a||e.slice(o,l)!=n.slice(c,u)){if(s==1)return o-t-(Eo(e,o)?0:1);s=s>>1}else{if(l==r||u==a)return l-t;o=l,c=u}}}function $v(e,t,r,n,i,a){if(t==r||i==a||e.charCodeAt(r-1)!=n.charCodeAt(a-1))return 0;let s=_P(r-t,a-i);for(let o=r,c=a;;){let l=o-s,u=c-s;if(l>1}else{if(l==t||u==i)return r-l;o=l,c=u}}}function Rv(e,t,r,n,i,a,s,o){let c=n.slice(i,a),l=null;for(;;){if(l||s=r)break;let d=e.slice(u,f),h=-1;for(;(h=c.indexOf(d,h+1))!=-1;){let p=Fv(e,f,r,n,i+h+d.length,a),m=$v(e,t,u,n,i,i+h),v=d.length+p+m;(!l||l[2]>1}}function xP(e,t,r,n,i,a){let s=r-t,o=a-i;if(si.fromA-t&&n.toB>i.fromB-t&&(e[r-1]=new ht(n.fromA,i.toA,n.fromB,i.toB),e.splice(r--,1))}}function SH(e,t,r){for(;;){SP(r,1);let n=!1;for(let i=0;i3||o>3){let c=i==e.length-1?t.length:e[i+1].fromA,l=a.fromA-n,u=c-a.toA,f=aP(t,a.fromA,Math.min(l,5)),d=iP(t,a.toA,Math.min(u,5)),h=a.fromA-f,p=d-a.toA;if(!s||!o){let m=Math.max(s,o),[v,y,b]=s?[t,a.fromA,a.toA]:[r,a.fromB,a.toB];h&&p&&(m>h&&t.slice(f,a.fromA)==v.slice(b-h,b)?(a=e[i]=new ht(f,f+s,a.fromB-h,a.toB-h),f=a.fromA,d=iP(t,a.toA,Math.min(c-a.toA,5))):m>p&&t.slice(a.toA,d)==v.slice(y,y+p)&&(a=e[i]=new ht(d-s,d,a.fromB+p,a.toB+p),d=a.toA,f=aP(t,a.fromA,Math.min(a.fromA-n,5))),h=a.fromA-f,p=d-a.toA)}if(h||p)a=e[i]=new ht(a.fromA-h,a.toA+p,a.fromB-h,a.toB+p);else if(s){if(!o){let m=oP(t,a.fromA,a.toA),v,y=m<0?-1:sP(t,a.toA,a.fromA);m>-1&&(v=m-a.fromA)<=u&&t.slice(a.fromA,m)==t.slice(a.toA,a.toA+v)?a=e[i]=a.offset(v):y>-1&&(v=a.toA-y)<=l&&t.slice(a.fromA-v,a.fromA)==t.slice(y,a.toA)&&(a=e[i]=a.offset(-v))}}else{let m=oP(r,a.fromB,a.toB),v,y=m<0?-1:sP(r,a.toB,a.fromB);m>-1&&(v=m-a.fromB)<=u&&r.slice(a.fromB,m)==r.slice(a.toB,a.toB+v)?a=e[i]=a.offset(v):y>-1&&(v=a.toB-y)<=l&&r.slice(a.fromB-v,a.fromB)==r.slice(y,a.toB)&&(a=e[i]=a.offset(-v))}n=a.toA}}return SP(e,3),e}var Ha;try{Ha=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch(e){}function EP(e){return e>48&&e<58||e>64&&e<91||e>96&&e<123}function AP(e,t){if(t==e.length)return 0;let r=e.charCodeAt(t);return r<192?EP(r)?1:0:Ha?!TP(r)||t==e.length-1?Ha.test(String.fromCharCode(r))?1:0:Ha.test(e.slice(t,t+2))?2:0:0}function kP(e,t){if(!t)return 0;let r=e.charCodeAt(t-1);return r<192?EP(r)?1:0:Ha?!CP(r)||t==1?Ha.test(String.fromCharCode(r))?1:0:Ha.test(e.slice(t-2,t))?2:0:0}function iP(e,t,r){if(t==e.length||!kP(e,t))return t;for(let n=t,i=t+r;;){let a=AP(e,n);if(!a)return n;if(n+=a,n>i)return t}}function aP(e,t,r){if(!t||!AP(e,t))return t;for(let n=t,i=t-r;;){let a=kP(e,n);if(!a)return n;if(n-=a,ne>=55296&&e<=56319,CP=e=>e>=56320&&e<=57343;function Eo(e,t){return!t||t==e.length||!TP(e.charCodeAt(t-1))||!CP(e.charCodeAt(t))}function AH(e,t,r){var n;return Tc=((n=r==null?void 0:r.scanLimit)!==null&&n!==void 0?n:1e9)>>1,SH(e,t,Ua(e,0,e.length,t,0,t.length))}function PP(e,t,r){return EH(AH(e,t,r),e,t)}var Fn=Se.Facet.define({combine:e=>e[0]}),Mv=Se.StateEffect.define(),Ao=Se.StateField.define({create(e){return null},update(e,t){for(let r of t.effects)r.is(Mv)&&(e=r.value);return e}});var So=class e{constructor(t,r,n,i,a){this.changes=t,this.fromA=r,this.toA=n,this.fromB=i,this.toB=a}offset(t,r){return t||r?new e(this.changes,this.fromA+t,this.toA+t,this.fromB+r,this.toB+r):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(t,r,n){return RP(PP(t.toString(),r.toString(),n),t,r,0,0)}static updateA(t,r,n,i,a){return dP(fP(t,i,!0,n.length),t,r,n,a)}static updateB(t,r,n,i,a){return dP(fP(t,i,!1,r.length),t,r,n,a)}};function lP(e,t,r,n){let i=r.lineAt(e),a=n.lineAt(t);return i.to==e&&a.to==t&&eu+1&&m>f+1)break;d.push(h.offset(-c+n,-l+i)),[u,f]=cP(h.toA+n,h.toB+i,t,r),s++}a.push(new So(d,c,Math.max(c,u),l,Math.max(l,f)))}return a}var zd=1e3;function uP(e,t,r,n){let i=0,a=e.length;for(;;){if(i==a){let u=0,f=0;i&&({toA:u,toB:f}=e[i-1]);let d=t-(r?u:f);return[u+d,f+d]}let s=i+a>>1,o=e[s],[c,l]=r?[o.fromA,o.toA]:[o.fromB,o.toB];if(c>t)a=s;else if(l<=t)i=s+1;else return n?[o.fromA,o.fromB]:[o.toA,o.toB]}}function fP(e,t,r,n){let i=[];return t.iterChangedRanges((a,s,o,c)=>{let l=0,u=r?t.length:n,f=0,d=r?n:t.length;a>zd&&([l,f]=uP(e,a-zd,r,!0)),s=l?i[i.length-1]={fromA:p.fromA,fromB:p.fromB,toA:u,toB:d,diffA:p.diffA+m,diffB:p.diffB+v}:i.push({fromA:l,toA:u,fromB:f,toB:d,diffA:m,diffB:v})}),i}function dP(e,t,r,n,i){if(!e.length)return t;let a=[];for(let s=0,o=0,c=0,l=0;;s++){let u=s==e.length?null:e[s],f=u?u.fromA+o:r.length,d=u?u.fromB+c:n.length;for(;lf||v.toB+c>d)break;a.push(v.offset(o,c)),l++}if(!u)break;let h=u.toA+o+u.diffA,p=u.toB+c+u.diffB,m=PP(r.sliceString(f,h),n.sliceString(d,p),i);for(let v of RP(m,r,n,f,d))a.push(v);for(o+=u.diffA,c+=u.diffB;lh&&v.fromB+c>p)break;l++}}return a}var kH={scanLimit:500},MP=Re.ViewPlugin.fromClass(class{constructor(e){({deco:this.deco,gutter:this.gutter}=mP(e))}update(e){(e.docChanged||e.viewportChanged||TH(e.startState,e.state)||CH(e.startState,e.state))&&({deco:this.deco,gutter:this.gutter}=mP(e.view))}},{decorations:e=>e.deco}),Vd=Se.Prec.low((0,Re.gutter)({class:"cm-changeGutter",markers:e=>{var t;return((t=e.plugin(MP))===null||t===void 0?void 0:t.gutter)||Se.RangeSet.empty}}));function TH(e,t){return e.field(Ao,!1)!=t.field(Ao,!1)}function CH(e,t){return e.facet(Fn)!=t.facet(Fn)}var hP=Re.Decoration.line({class:"cm-changedLine"}),PH=Re.Decoration.mark({class:"cm-changedText"}),RH=Re.Decoration.mark({tagName:"ins",class:"cm-insertedLine"}),MH=Re.Decoration.mark({tagName:"del",class:"cm-deletedLine"}),pP=new class extends Re.GutterMarker{constructor(){super(...arguments),this.elementClass="cm-changedLineGutter"}};function OH(e,t,r,n,i,a){let s=r?e.fromA:e.fromB,o=r?e.toA:e.toB,c=0;if(s!=o){i.add(s,s,hP),i.add(s,o,r?MH:RH),a&&a.add(s,s,pP);for(let l=t.iterRange(s,o-1),u=s;!l.next().done;){if(l.lineBreak){u++,i.add(u,u,hP),a&&a.add(u,u,pP);continue}let f=u+l.value.length;if(n)for(;c=l)break;(a?u.toA:u.toB)>c&&OH(u,e.state.doc,a,n,s,o)}return{deco:s.finish(),gutter:o&&o.finish()}}var xo=class extends Re.WidgetType{constructor(t){super(),this.height=t}eq(t){return this.height==t.height}toDOM(){let t=document.createElement("div");return t.className="cm-mergeSpacer",t.style.height=this.height+"px",t}updateDOM(t){return t.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Xd=Se.StateEffect.define({map:(e,t)=>e.map(t)}),Cc=Se.StateField.define({create:()=>Re.Decoration.none,update:(e,t)=>{for(let r of t.effects)if(r.is(Xd))return r.value;return e.map(t.changes)},provide:e=>Re.EditorView.decorations.from(e)}),Wd=.01;function gP(e,t){if(e.size!=t.size)return!1;let r=e.iter(),n=t.iter();for(;r.value;){if(r.from!=n.from||Math.abs(r.value.spec.widget.height-n.value.spec.widget.height)>1)return!1;r.next(),n.next()}return!0}function IH(e,t,r){let n=new Se.RangeSetBuilder,i=new Se.RangeSetBuilder,a=e.state.field(Cc).iter(),s=t.state.field(Cc).iter(),o=0,c=0,l=0,u=0,f=e.viewport,d=t.viewport;for(let v=0;;v++){let y=vWd&&(u+=k,i.add(c,c,Re.Decoration.widget({widget:new xo(k),block:!0,side:-1})))}if(b>o+1e3&&of.from&&cd.from){let E=Math.min(f.from-o,d.from-c);o+=E,c+=E,v--}else if(y)o=y.toA,c=y.toB;else break;for(;a.value&&a.fromWd&&i.add(t.state.doc.length,t.state.doc.length,Re.Decoration.widget({widget:new xo(h),block:!0,side:1}));let p=n.finish(),m=i.finish();gP(p,e.state.field(Cc))||e.dispatch({effects:Xd.of(p)}),gP(m,t.state.field(Cc))||t.dispatch({effects:Xd.of(m)})}var Ov=Se.StateEffect.define({map:(e,t)=>t.mapPos(e)}),Iv=class extends Re.WidgetType{constructor(t){super(),this.lines=t}eq(t){return this.lines==t.lines}toDOM(t){let r=document.createElement("div");return r.className="cm-collapsedLines",r.textContent=t.state.phrase("$ unchanged lines",this.lines),r.addEventListener("click",n=>{let i=t.posAtDOM(n.target);t.dispatch({effects:Ov.of(i)});let{side:a,sibling:s}=t.state.facet(Fn);s&&s().dispatch({effects:Ov.of(FH(i,t.state.field(Ao),a=="a"))})}),r}ignoreEvent(t){return t instanceof MouseEvent}get estimatedHeight(){return 27}};function FH(e,t,r){let n=0,i=0;for(let a=0;;a++){let s=a=e)return i+(e-n);[n,i]=r?[s.toA,s.toB]:[s.toB,s.toA]}}var $H=Se.StateField.define({create(e){return Re.Decoration.none},update(e,t){e=e.map(t.changes);for(let r of t.effects)r.is(Ov)&&(e=e.update({filter:n=>n!=r.value}));return e},provide:e=>Re.EditorView.decorations.from(e)});function vP({margin:e=3,minSize:t=4}){return $H.init(r=>LH(r,e,t))}function LH(e,t,r){let n=new Se.RangeSetBuilder,i=e.facet(Fn).side=="a",a=e.field(Ao),s=1;for(let o=0;;o++){let c=o=r&&n.add(e.doc.line(l).from,e.doc.line(u).to,Re.Decoration.replace({widget:new Iv(f),block:!0})),!c)break;s=e.doc.lineAt(Math.min(e.doc.length,i?c.toA:c.toB)).number}return n.finish()}var DH=Re.EditorView.styleModule.of(new Gd({".cm-mergeView":{overflowY:"auto"},".cm-mergeViewEditors":{display:"flex",alignItems:"stretch"},".cm-mergeViewEditor":{flexGrow:1,flexBasis:0,overflow:"hidden"},".cm-merge-revert":{width:"1.6em",flexGrow:0,flexShrink:0,position:"relative"},".cm-merge-revert button":{position:"absolute",display:"block",width:"100%",boxSizing:"border-box",textAlign:"center",background:"none",border:"none",font:"inherit",cursor:"pointer"}})),NH=Re.EditorView.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:"auto !important",overflowY:"visible !important"},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:"rgba(160, 128, 100, .08)"},"&.cm-merge-b .cm-changedLine":{backgroundColor:"rgba(100, 160, 128, .08)"},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat"},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat"},"&light.cm-merge-b .cm-changedText":{background:"linear-gradient(#22bb2266, #22bb2266) bottom/100% 2px no-repeat"},"&dark.cm-merge-b .cm-changedText":{background:"linear-gradient(#88ff8866, #88ff8866) bottom/100% 2px no-repeat"},".cm-insertedLine, .cm-deletedLine":{textDecoration:"none"},".cm-deletedChunk":{paddingLeft:"6px","& .cm-chunkButtons":{position:"absolute",insetInlineEnd:"5px"},"& button":{border:"none",cursor:"pointer",color:"white",margin:"0 2px",borderRadius:"3px","&[name=accept]":{background:"#2a2"},"&[name=reject]":{background:"#d43"}}},".cm-collapsedLines":{padding:"5px 5px 5px 10px",cursor:"pointer","&:before":{content:'"\u299A"',marginInlineEnd:"7px"},"&:after":{content:'"\u299A"',marginInlineStart:"7px"}},"&light .cm-collapsedLines":{color:"#444",background:"linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)"},"&dark .cm-collapsedLines":{color:"#ddd",background:"linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)"},".cm-changeGutter":{width:"3px",paddingLeft:"1px"},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:"#e43"},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:"#fa9"},"&light.cm-merge-b .cm-changedLineGutter":{background:"#2b2"},"&dark.cm-merge-b .cm-changedLineGutter":{background:"#8f8"}}),yP=new Se.Compartment,qd=new Se.Compartment,Zd=class{constructor(t){this.revertDOM=null,this.revertToA=!1,this.revertToLeft=!1,this.measuring=-1,this.diffConf=t.diffConfig||kH;let r=[Se.Prec.low(MP),NH,DH,Cc,Re.EditorView.updateListener.of(f=>{this.measuring<0&&(f.heightChanged||f.viewportChanged)&&!f.transactions.some(d=>d.effects.some(h=>h.is(Xd)))&&this.measure()})],n=[Fn.of({side:"a",sibling:()=>this.b,highlightChanges:t.highlightChanges!==!1,markGutter:t.gutter!==!1})];t.gutter!==!1&&n.push(Vd);let i=Se.EditorState.create({doc:t.a.doc,selection:t.a.selection,extensions:[t.a.extensions||[],Re.EditorView.editorAttributes.of({class:"cm-merge-a"}),qd.of(n),r]}),a=[Fn.of({side:"b",sibling:()=>this.a,highlightChanges:t.highlightChanges!==!1,markGutter:t.gutter!==!1})];t.gutter!==!1&&a.push(Vd);let s=Se.EditorState.create({doc:t.b.doc,selection:t.b.selection,extensions:[t.b.extensions||[],Re.EditorView.editorAttributes.of({class:"cm-merge-b"}),qd.of(a),r]});this.chunks=So.build(i.doc,s.doc,this.diffConf);let o=[Ao.init(()=>this.chunks),yP.of(t.collapseUnchanged?vP(t.collapseUnchanged):[])];i=i.update({effects:Se.StateEffect.appendConfig.of(o)}).state,s=s.update({effects:Se.StateEffect.appendConfig.of(o)}).state,this.dom=document.createElement("div"),this.dom.className="cm-mergeView",this.editorDOM=this.dom.appendChild(document.createElement("div")),this.editorDOM.className="cm-mergeViewEditors";let c=t.orientation||"a-b",l=document.createElement("div");l.className="cm-mergeViewEditor";let u=document.createElement("div");u.className="cm-mergeViewEditor",this.editorDOM.appendChild(c=="a-b"?l:u),this.editorDOM.appendChild(c=="a-b"?u:l),this.a=new Re.EditorView({state:i,parent:l,root:t.root,dispatchTransactions:f=>this.dispatch(f,this.a)}),this.b=new Re.EditorView({state:s,parent:u,root:t.root,dispatchTransactions:f=>this.dispatch(f,this.b)}),this.setupRevertControls(!!t.revertControls,t.revertControls=="b-to-a",t.renderRevertControl),t.parent&&t.parent.appendChild(this.dom),this.scheduleMeasure()}dispatch(t,r){if(t.some(n=>n.docChanged)){let n=t[t.length-1],i=t.reduce((s,o)=>s.compose(o.changes),Se.ChangeSet.empty(t[0].startState.doc.length));this.chunks=r==this.a?So.updateA(this.chunks,n.newDoc,this.b.state.doc,i,this.diffConf):So.updateB(this.chunks,this.a.state.doc,n.newDoc,i,this.diffConf),r.update([...t,n.state.update({effects:Mv.of(this.chunks)})]);let a=r==this.a?this.b:this.a;a.update([a.state.update({effects:Mv.of(this.chunks)})]),this.scheduleMeasure()}else r.update(t)}reconfigure(t){if("diffConfig"in t&&(this.diffConf=t.diffConfig),"orientation"in t){let a=t.orientation!="b-a";if(a!=(this.editorDOM.firstChild==this.a.dom.parentNode)){let s=this.a.dom.parentNode,o=this.b.dom.parentNode;s.remove(),o.remove(),this.editorDOM.insertBefore(a?s:o,this.editorDOM.firstChild),this.editorDOM.appendChild(a?o:s),this.revertToLeft=!this.revertToLeft,this.revertDOM&&(this.revertDOM.textContent="")}}if("revertControls"in t||"renderRevertControl"in t){let a=!!this.revertDOM,s=this.revertToA,o=this.renderRevert;"revertControls"in t&&(a=!!t.revertControls,s=t.revertControls=="b-to-a"),"renderRevertControl"in t&&(o=t.renderRevertControl),this.setupRevertControls(a,s,o)}let r="highlightChanges"in t,n="gutter"in t,i="collapseUnchanged"in t;if(r||n||i){let a=[],s=[];if(r||n){let o=this.a.state.facet(Fn),c=n?t.gutter!==!1:o.markGutter,l=r?t.highlightChanges!==!1:o.highlightChanges;a.push(qd.reconfigure([Fn.of({side:"a",sibling:()=>this.b,highlightChanges:l,markGutter:c}),c?Vd:[]])),s.push(qd.reconfigure([Fn.of({side:"b",sibling:()=>this.a,highlightChanges:l,markGutter:c}),c?Vd:[]]))}if(i){let o=yP.reconfigure(t.collapseUnchanged?vP(t.collapseUnchanged):[]);a.push(o),s.push(o)}this.a.dispatch({effects:a}),this.b.dispatch({effects:s})}this.scheduleMeasure()}setupRevertControls(t,r,n){this.revertToA=r,this.revertToLeft=this.revertToA==(this.editorDOM.firstChild==this.a.dom.parentNode),this.renderRevert=n,!t&&this.revertDOM?(this.revertDOM.remove(),this.revertDOM=null):t&&!this.revertDOM?(this.revertDOM=this.editorDOM.insertBefore(document.createElement("div"),this.editorDOM.firstChild.nextSibling),this.revertDOM.addEventListener("mousedown",i=>this.revertClicked(i)),this.revertDOM.className="cm-merge-revert"):this.revertDOM&&(this.revertDOM.textContent="")}scheduleMeasure(){if(this.measuring<0){let t=this.dom.ownerDocument.defaultView||window;this.measuring=t.requestAnimationFrame(()=>{this.measuring=-1,this.measure()})}}measure(){IH(this.a,this.b,this.chunks),this.revertDOM&&this.updateRevertButtons()}updateRevertButtons(){let t=this.revertDOM,r=t.firstChild,n=this.a.viewport,i=this.b.viewport;for(let a=0;an.to||s.fromB>i.to)break;if(s.fromA-1&&(this.dom.ownerDocument.defaultView||window).cancelAnimationFrame(this.measuring),this.dom.remove()}};function wP(e){let t=e.nextSibling;return e.remove(),t}var Co=require("@codemirror/commands"),Kd=require("@codemirror/search");var Ga=class extends To.ItemView{constructor(r,n){super(r);this.plugin=n;this.refreshing=!1;this.ignoreNextModification=!1;this.navigation=!0,this.registerEvent(this.app.workspace.on("obsidian-git:status-changed",()=>{this.mergeView?this.updateRefEditors().catch(console.error):this.createMergeView().catch(console.error)})),this.intervalRef=window.setInterval(()=>{this.mergeView&&this.updateRefEditors().catch(console.error)},30*1e3),this.registerEvent(this.app.vault.on("modify",i=>{this.state.bRef==null&&i.path===this.state.bFile&&(this.ignoreNextModification?this.ignoreNextModification=!1:this.updateModifiableEditor().catch(console.error))})),this.registerEvent(this.app.vault.on("delete",i=>{this.state.bRef==null&&i.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("create",i=>{this.state.bRef==null&&i.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("rename",(i,a)=>{this.state.bRef==null&&(i.path===this.state.bFile||a===this.state.bFile)&&this.createMergeView().catch(console.error)})),this.fileSaveDebouncer=(0,To.debounce)(i=>{let a=this.state.bFile;a&&(this.ignoreNextModification=!0,this.plugin.app.vault.adapter.write(a,i).catch(s=>this.plugin.displayError(s)))},1e3,!1)}getViewType(){return Ai.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let n=this.state.bFile.split("/").last();return n!=null&&n.endsWith(".md")&&(n=n.slice(0,-3)),`Diff: ${n}`}return Ai.name}getIcon(){return Ai.icon}async setState(r,n){this.state=r,To.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await super.setState(r,n),await this.createMergeView()}getState(){return this.state}onClose(){return window.clearInterval(this.intervalRef),super.onClose()}async onOpen(){return await this.createMergeView(),super.onOpen()}async gitShow(r,n){try{return await this.plugin.gitManager.show(r,n,!1)}catch(i){if(i instanceof wr&&(i.message.includes("does not exist")||i.message.includes("unknown revision or path")||i.message.includes("exists on disk, but not in")||i.message.includes("fatal: bad object")))return i.message.includes("fatal: bad object")&&this.plugin.displayError(i.message),"";throw i}}async bShouldBeEditable(){if(this.state.bRef!=null)return!1;let r=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);return await this.app.vault.adapter.exists(r)}async updateModifiableEditor(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.b;this.refreshing=!0;let n=await this.app.vault.adapter.read(this.state.bFile);if(n!=r.state.doc.toString()){let i=r.state.update({changes:{from:0,to:r.state.doc.length,insert:n},annotations:[ko.Transaction.remote.of(!0)]});r.dispatch(i)}this.refreshing=!1}async updateRefEditors(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.a,n=this.mergeView.b;this.refreshing=!0;let i=await this.gitShow(this.state.aRef,this.state.aFile),a;if(this.state.bRef!=null&&(a=await this.gitShow(this.state.bRef,this.state.bFile)),i!=r.state.doc.toString()){let s=r.state.update({changes:{from:0,to:r.state.doc.length,insert:i}});r.dispatch(s)}if(a!=null&&a!=n.state.doc.toString()){let s=n.state.update({changes:{from:0,to:n.state.doc.length,insert:a}});n.dispatch(s)}this.refreshing=!1}async createMergeView(){var r,n,i;if((r=this.state)!=null&&r.aFile&&((n=this.state)!=null&&n.bFile)&&!this.refreshing&&this.plugin.gitManager){this.refreshing=!0,(i=this.mergeView)==null||i.destroy();let a=this.containerEl.children[1];a.empty(),this.contentEl.addClass("git-split-diff-view"),this.bIsEditable=await this.bShouldBeEditable();let s=await this.gitShow(this.state.aRef,this.state.aFile),o;if(this.state.bRef!=null)o=await this.gitShow(this.state.bRef,this.state.bFile);else{let p=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);await this.app.vault.adapter.exists(p)?o=await this.app.vault.adapter.read(p):o=""}let c=[(0,Xr.lineNumbers)(),(0,Kd.highlightSelectionMatches)(),(0,Xr.drawSelection)(),Xr.keymap.of([...Co.standardKeymap,Co.indentWithTab]),(0,Co.history)(),(0,Kd.search)(),Xr.EditorView.lineWrapping],l=this,u=Xr.ViewPlugin.define(p=>({update(m){if(m.docChanged&&!m.transactions.some(v=>v.annotation(ko.Transaction.remote))){let v=p.state.doc.toString();l.fileSaveDebouncer(v)}}})),f={doc:s,extensions:[...c,Xr.EditorView.editable.of(!1),ko.EditorState.readOnly.of(!0)]},d=[...c];this.bIsEditable?d.push(u):d.push(Xr.EditorView.editable.of(!1),ko.EditorState.readOnly.of(!0));let h={doc:o,extensions:d};a.addClasses(["cm-s-obsidian","mod-cm6","markdown-source-view","cm-content"]),this.mergeView=new Zd({b:h,a:f,diffConfig:{scanLimit:this.bIsEditable?1e3:1e4},parent:a}),this.refreshing=!1}}};var Jd=class extends Ce.Plugin{constructor(){super(...arguments);this.automaticsManager=new Xl(this);this.tools=new kc(this);this.localStorage=new fd(this);this.state={gitAction:0,offlineMode:!1};this.gitReady=!1;this.promiseQueue=new ad(this);this.intervalsToClear=[];this.lineAuthoringFeature=new id(this)}setPluginState(r){var n;this.state=Object.assign(this.state,r),(n=this.statusBar)==null||n.display()}async updateCachedStatus(){var r,n;return this.app.workspace.trigger("obsidian-git:loading-status"),this.cachedStatus=await this.gitManager.status(),this.cachedStatus.conflicted.length>0?(this.localStorage.setConflict(!0),await((r=this.branchBar)==null?void 0:r.display())):(this.localStorage.setConflict(!1),await((n=this.branchBar)==null?void 0:n.display())),this.app.workspace.trigger("obsidian-git:status-changed",this.cachedStatus),this.cachedStatus}async refresh(){if(!this.gitReady)return;let r=this.app.workspace.getLeavesOfType(St.type),n=this.app.workspace.getLeavesOfType($r.type);(this.settings.changedFilesInStatusBar||r.some(i=>{var a;return!((a=i.isDeferred)!=null&&a)})||n.some(i=>{var a;return!((a=i.isDeferred)!=null&&a)}))&&await this.updateCachedStatus().catch(i=>this.displayError(i)),this.app.workspace.trigger("obsidian-git:refreshed")}refreshUpdatedHead(){this.lineAuthoringFeature.refreshLineAuthorViews()}async onload(){console.log("loading "+this.manifest.name+" plugin: v"+this.manifest.version),Yl.plugin=this,this.localStorage.migrate(),await this.loadSettings(),await this.migrateSettings(),this.settingsTab=new zf(this.app,this),this.addSettingTab(this.settingsTab),this.localStorage.getPluginDisabled()||(this.registerStuff(),this.app.workspace.onLayoutReady(()=>this.init({fromReload:!1}).catch(r=>this.displayError(r))))}onExternalSettingsChange(){this.reloadSettings().catch(r=>this.displayError(r))}async reloadSettings(){let r=JSON.stringify(this.settings);await this.loadSettings();let n=JSON.stringify(this.settings);r!==n&&(this.log("Reloading settings"),this.unloadPlugin(),await this.init({fromReload:!0}),this.app.workspace.getLeavesOfType(St.type).forEach(i=>{var a;if(!((a=i.isDeferred)!=null&&a))return i.view.reload()}),this.app.workspace.getLeavesOfType($r.type).forEach(i=>{var a;if(!((a=i.isDeferred)!=null&&a))return i.view.reload()}))}registerStuff(){this.registerEvent(this.app.workspace.on("obsidian-git:refresh",()=>{this.refresh().catch(r=>this.displayError(r))})),this.registerEvent(this.app.workspace.on("obsidian-git:head-change",()=>{this.refreshUpdatedHead()})),this.registerEvent(this.app.workspace.on("file-menu",(r,n,i)=>{this.handleFileMenu(r,n,i,"file-manu")})),this.registerEvent(this.app.workspace.on("obsidian-git:menu",(r,n,i)=>{this.handleFileMenu(r,n,i,"obsidian-git:menu")})),this.registerEvent(this.app.workspace.on("active-leaf-change",r=>{this.onActiveLeafChange(r)})),this.registerEvent(this.app.vault.on("modify",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("delete",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("create",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("rename",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerView(St.type,r=>new Ac(r,this)),this.registerView($r.type,r=>new vc(r,this)),this.registerView(ki.type,r=>new Ta(r,this)),this.registerView(Ai.type,r=>new Ga(r,this)),this.addRibbonIcon("git-pull-request","Open Git source control",async()=>{var i;let r=this.app.workspace.getLeavesOfType(St.type),n;r.length===0?(n=(i=this.app.workspace.getRightLeaf(!1))!=null?i:this.app.workspace.getLeaf(),await n.setViewState({type:St.type})):n=r.first(),await this.app.workspace.revealLeaf(n)}),this.registerHoverLinkSource(St.type,{display:"Git View",defaultMod:!0}),this.lineAuthoringFeature.onLoadPlugin(),this.setRefreshDebouncer(),lC(this)}setRefreshDebouncer(){var r;(r=this.debRefresh)==null||r.cancel(),this.debRefresh=(0,Ce.debounce)(()=>{this.settings.refreshSourceControl&&this.refresh().catch(console.error)},this.settings.refreshSourceControlTimer,!0)}async addFileToGitignore(r){return await this.app.vault.adapter.append(this.gitManager.getRelativeVaultPath(".gitignore"),` +`+this.gitManager.getRelativeRepoPath(r,!0)),this.refresh()}handleFileMenu(r,n,i,a){if(!this.gitReady||!this.settings.showFileMenu||!n)return;let s;if(typeof n=="string"?s=n:s=n.path,i=="file-explorer-context-menu"&&(r.addItem(o=>{o.setTitle("Git: Stage").setIcon("plus-circle").setSection("action").onClick(c=>{this.promiseQueue.addTask(async()=>{n instanceof Ce.TFile?await this.gitManager.stage(n.path,!0):await this.gitManager.stageAll({dir:this.gitManager.getRelativeRepoPath(s,!0)}),this.displayMessage(`Staged ${s}`)})})}),r.addItem(o=>{o.setTitle("Git: Unstage").setIcon("minus-circle").setSection("action").onClick(c=>{this.promiseQueue.addTask(async()=>{n instanceof Ce.TFile?await this.gitManager.unstage(n.path,!0):await this.gitManager.unstageAll({dir:this.gitManager.getRelativeRepoPath(s,!0)}),this.displayMessage(`Unstaged ${s}`)})})}),r.addItem(o=>{o.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(c=>{this.addFileToGitignore(s).catch(l=>this.displayError(l))})})),i=="git-source-control"){r.addItem(c=>{c.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(l=>{this.addFileToGitignore(s).catch(u=>this.displayError(u))})});let o=this.app.vault.adapter;a==="obsidian-git:menu"&&o instanceof Ce.FileSystemAdapter&&(r.addItem(c=>{c.setTitle("Open in default app").setIcon("arrow-up-right").setSection("action").onClick(l=>{this.app.openWithDefaultApp(s)})}),r.addItem(c=>{c.setTitle("Show in system explorer").setIcon("arrow-up-right").setSection("action").onClick(l=>{window.electron.shell.showItemInFolder(OP.join(o.getBasePath(),s))})}))}}async migrateSettings(){this.settings.mergeOnPull!=null&&(this.settings.syncMethod=this.settings.mergeOnPull?"merge":"rebase",this.settings.mergeOnPull=void 0,await this.saveSettings()),this.settings.autoCommitMessage===void 0&&(this.settings.autoCommitMessage=this.settings.commitMessage,await this.saveSettings()),this.settings.gitPath!=null&&(this.localStorage.setGitPath(this.settings.gitPath),this.settings.gitPath=void 0,await this.saveSettings()),this.settings.username!=null&&(this.localStorage.setPassword(this.settings.username),this.settings.username=void 0,await this.saveSettings())}unloadPlugin(){var r,n;this.gitReady=!1,this.lineAuthoringFeature.deactivateFeature(),this.automaticsManager.unload(),(r=this.branchBar)==null||r.remove(),(n=this.statusBar)==null||n.remove(),this.gitManager.unload(),this.promiseQueue.clear();for(let i of this.intervalsToClear)window.clearInterval(i);this.intervalsToClear=[],this.debRefresh.cancel()}onunload(){this.unloadPlugin(),console.log("unloading "+this.manifest.name+" plugin")}async loadSettings(){let r=await this.loadData();r==null&&(r={showedMobileNotice:!0}),this.settings=Ex(ar,r)}async saveSettings(){var r;(r=this.settingsTab)==null||r.beforeSaveSettings(),await this.saveData(this.settings)}get useSimpleGit(){return Ce.Platform.isDesktopApp}async init({fromReload:r=!1}){var n;if(this.settings.showStatusBar){let i=this.addStatusBarItem();this.statusBar=new sd(i,this),this.intervalsToClear.push(window.setInterval(()=>{var a;return(a=this.statusBar)==null?void 0:a.display()},1e3))}try{this.useSimpleGit?(this.gitManager=new Te(this),await this.gitManager.setGitInstance()):this.gitManager=new an(this);let i=await this.gitManager.checkRequirements();switch(i){case"missing-git":this.displayError(`Cannot run git command. Trying to run: '${this.localStorage.getGitPath()||"git"}' .`);break;case"missing-repo":new Ce.Notice("Can't find a valid git repository. Please create one via the given command or clone an existing repo.",1e4);break;case"valid":if(this.gitReady=!0,this.setPluginState({gitAction:0}),Ce.Platform.isDesktop&&this.settings.showBranchStatusBar){let a=this.addStatusBarItem();this.branchBar=new Ud(a,this),this.intervalsToClear.push(window.setInterval(()=>{var s;return void((s=this.branchBar)==null?void 0:s.display().catch(console.error))},6e4))}await((n=this.branchBar)==null?void 0:n.display()),this.lineAuthoringFeature.conditionallyActivateBySettings(),this.app.workspace.trigger("obsidian-git:refresh"),this.app.workspace.trigger("obsidian-git:head-change"),!r&&this.settings.autoPullOnBoot&&this.promiseQueue.addTask(()=>this.pullChangesFromRemote()),await this.automaticsManager.init();break;default:this.log("Something weird happened. The 'checkRequirements' result is "+i)}}catch(i){this.displayError(i),console.error(i)}}async createNewRepo(){try{await this.gitManager.init(),new Ce.Notice("Initialized new repo"),await this.init({fromReload:!0})}catch(r){this.displayError(r)}}async cloneNewRepo(){let n=await new Fe(this,{placeholder:"Enter remote URL"}).openAndGetResult();if(n){let i="Vault Root",a=await new Fe(this,{options:this.gitManager instanceof an?[i]:[],placeholder:"Enter directory for clone. It needs to be empty or not existent.",allowEmpty:this.gitManager instanceof an}).openAndGetResult();if(a==null)return;if(a===i&&(a="."),a=(0,Ce.normalizePath)(a),a==="/"&&(a="."),a==="."){let f=await new Fe(this,{options:["NO","YES"],placeholder:`Does your remote repo contain a ${this.app.vault.configDir} directory at the root?`,onlySelection:!0}).openAndGetResult();if(f===void 0){new Ce.Notice("Aborted clone");return}else if(f==="YES"){let d="DELETE ALL YOUR LOCAL CONFIG AND PLUGINS";if(await new Fe(this,{options:["Abort clone",d],placeholder:`To avoid conflicts, the local ${this.app.vault.configDir} directory needs to be deleted.`,onlySelection:!0}).openAndGetResult()===d)await this.app.vault.adapter.rmdir(this.app.vault.configDir,!0);else{new Ce.Notice("Aborted clone");return}}}let s=await new Fe(this,{placeholder:"Specify depth of clone. Leave empty for full clone.",allowEmpty:!0}).openAndGetResult(),o;if(s!==""&&(o=parseInt(s),isNaN(o))){new Ce.Notice("Invalid depth. Aborting clone.");return}new Ce.Notice(`Cloning new repo into "${a}"`);let c=this.settings.basePath,l=a&&a!==".";l&&(this.settings.basePath=a);try{await this.gitManager.clone(Vg(n),a,o),new Ce.Notice("Cloned new repo."),new Ce.Notice("Please restart Obsidian"),l&&await this.saveSettings()}catch(u){this.displayError(u),this.settings.basePath=c,await this.saveSettings()}}}async isAllInitialized(){return this.gitReady||await this.init({fromReload:!0}),this.gitReady}async pullChangesFromRemote(){if(!await this.isAllInitialized())return;let r=await this.pull();if(r!==!1){if(r||this.displayMessage("Pull: Everything is up-to-date"),this.gitManager instanceof Te){let n=await this.updateCachedStatus();n.conflicted.length>0&&(this.displayError(`You have conflicts in ${n.conflicted.length} ${n.conflicted.length==1?"file":"files"}`),await this.handleConflict(n.conflicted))}this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0})}}async commitAndSync(r,n=!1,i){!await this.isAllInitialized()||(this.settings.syncMethod=="reset"&&this.settings.pullBeforePush&&await this.pull(),!await this.commit({fromAuto:r,requestCustomMessage:n,commitMessage:i}))||(this.settings.syncMethod!="reset"&&this.settings.pullBeforePush&&await this.pull(),this.settings.disablePush||(await this.remotesAreSet()&&await this.gitManager.canPush()?await this.push():this.displayMessage("No commits to push")),this.setPluginState({gitAction:0}))}async commit({fromAuto:r,requestCustomMessage:n=!1,onlyStaged:i=!1,commitMessage:a,amend:s=!1}){if(!await this.isAllInitialized())return!1;try{let o=this.localStorage.getConflict(),c,l,u;if(this.gitManager instanceof Te){if(await this.mayDeleteConflictFile(),l=await this.updateCachedStatus(),l.conflicted.length==0&&(o=!1),r&&l.conflicted.length>0)return this.displayError(`Did not commit, because you have conflicts in ${l.conflicted.length} ${l.conflicted.length==1?"file":"files"}. Please resolve them and commit per command.`),await this.handleConflict(l.conflicted),!1;c=[...l.changed,...l.staged]}else{if(r&&o)return this.displayError("Did not commit, because you have conflicts. Please resolve them and commit per command."),!1;if(o)await this.mayDeleteConflictFile(),l=await this.updateCachedStatus(),c=[...l.changed,...l.staged];else{let f=this.gitManager;i?c=await f.getStagedFiles():(u=await f.getUnstagedFiles(),c=u.map(({path:d})=>({vaultPath:this.gitManager.getRelativeVaultPath(d),path:d})))}}if(await this.tools.hasTooBigFiles(c))return this.setPluginState({gitAction:0}),!1;if(c.length!==0||o){let f=a!=null?a:a=r?this.settings.autoCommitMessage:this.settings.commitMessage;if(r&&this.settings.customMessageOnAutoBackup||n){!this.settings.disablePopups&&r&&new Ce.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort");let p=await new od(this).openAndGetResult();if(p!=null&&p!=""&&p!="...")f=p;else return this.setPluginState({gitAction:0}),!1}let d;i?d=await this.gitManager.commit({message:f,amend:s}):d=await this.gitManager.commitAll({message:f,status:l,unstagedFiles:u,amend:s}),this.gitManager instanceof Te&&await this.updateCachedStatus();let h=!1;d===void 0&&(h=!0,d=c.length),this.displayMessage(`Committed${h?" approx.":""} ${d} ${d==1?"file":"files"}`)}else this.displayMessage("No changes to commit");return this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(o){return this.displayError(o),!1}}async push(){if(!await this.isAllInitialized()||!await this.remotesAreSet())return!1;let r=this.localStorage.getConflict();try{this.gitManager instanceof Te&&await this.mayDeleteConflictFile();let n;if(this.gitManager instanceof Te&&(n=await this.updateCachedStatus()).conflicted.length>0)return this.displayError(`Cannot push. You have conflicts in ${n.conflicted.length} ${n.conflicted.length==1?"file":"files"}`),await this.handleConflict(n.conflicted),!1;if(this.gitManager instanceof an&&r)return this.displayError("Cannot push. You have conflicts"),!1;this.log("Pushing....");let i=await this.gitManager.push();return i!==void 0&&(i>0?this.displayMessage(`Pushed ${i} ${i==1?"file":"files"} to remote`):this.displayMessage("No commits to push")),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(n){return n instanceof Is?this.handleNoNetworkError(n):this.displayError(n),!1}}async pull(){if(!await this.remotesAreSet())return!1;try{this.log("Pulling....");let r=await this.gitManager.pull()||[];return this.setPluginState({offlineMode:!1}),r.length>0&&(this.displayMessage(`Pulled ${r.length} ${r.length==1?"file":"files"} from remote`),this.lastPulledFiles=r),r.length}catch(r){return this.displayError(r),!1}}async fetch(){if(await this.remotesAreSet())try{await this.gitManager.fetch(),this.displayMessage("Fetched from remote"),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh")}catch(r){this.displayError(r)}}async mayDeleteConflictFile(){let r=this.app.vault.getAbstractFileByPath(Ms);r&&(this.app.workspace.iterateAllLeaves(n=>{var i;n.view instanceof Ce.MarkdownView&&((i=n.view.file)==null?void 0:i.path)==r.path&&n.detach()}),await this.app.vault.delete(r))}async stageFile(r){return await this.isAllInitialized()?(await this.gitManager.stage(r.path,!0),this.displayMessage(`Staged ${r.path}`),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async unstageFile(r){return await this.isAllInitialized()?(await this.gitManager.unstage(r.path,!0),this.displayMessage(`Unstaged ${r.path}`),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async switchBranch(){var i;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo(),n=await new Hd(this,r.branches).openAndGetReslt();if(n!=null)return await this.gitManager.checkout(n),this.displayMessage(`Switched to ${n}`),this.app.workspace.trigger("obsidian-git:refresh"),await((i=this.branchBar)==null?void 0:i.display()),n}async switchRemoteBranch(){var a;if(!await this.isAllInitialized())return;let r=await this.selectRemoteBranch()||"",[n,i]=Ii(r);if(i!=null&&n!=null)return await this.gitManager.checkout(i,n),this.displayMessage(`Switched to ${r}`),await((a=this.branchBar)==null?void 0:a.display()),r}async createBranch(){var n;if(!await this.isAllInitialized())return;let r=await new Fe(this,{placeholder:"Create new branch"}).openAndGetResult();if(r!=null)return await this.gitManager.createBranch(r),this.displayMessage(`Created new branch ${r}`),await((n=this.branchBar)==null?void 0:n.display()),r}async deleteBranch(){var i;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo();r.current&&r.branches.remove(r.current);let n=await new Fe(this,{options:r.branches,placeholder:"Delete branch",onlySelection:!0}).openAndGetResult();if(n!=null){let a=!1;if(!await this.gitManager.branchIsMerged(n)){let o=await new Fe(this,{options:["YES","NO"],placeholder:"This branch isn't merged into HEAD. Force delete?",onlySelection:!0}).openAndGetResult();if(o!=="YES")return;a=o==="YES"}return await this.gitManager.deleteBranch(n,a),this.displayMessage(`Deleted branch ${n}`),await((i=this.branchBar)==null?void 0:i.display()),n}}async remotesAreSet(){return this.settings.updateSubmodules||(await this.gitManager.branchInfo()).tracking?!0:(new Ce.Notice("No upstream branch is set. Please select one."),await this.setUpstreamBranch())}async setUpstreamBranch(){let r=await this.selectRemoteBranch();return r==null?(this.displayError("Aborted. No upstream-branch is set!",1e4),this.setPluginState({gitAction:0}),!1):(await this.gitManager.updateUpstreamBranch(r),this.displayMessage(`Set upstream branch to ${r}`),this.setPluginState({gitAction:0}),!0)}async discardAll(){await this.gitManager.discardAll({status:this.cachedStatus}),new Ce.Notice("All local changes have been discarded. New files remain untouched."),this.app.workspace.trigger("obsidian-git:refresh")}async handleConflict(r){this.localStorage.setConflict(!0);let n;r!==void 0&&(n=["# Conflicts","Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`","(This file will automatically be deleted before commit)","[[#Additional Instructions]] available below file list","",...r.map(i=>{let a=this.app.vault.getAbstractFileByPath(i);return a instanceof Ce.TFile?`- [[${this.app.metadataCache.fileToLinktext(a,"/")}]]`:`- Not a file: ${i}`}),` # Additional Instructions I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text. @@ -375,7 +375,7 @@ I strongly recommend to use "Source mode" for viewing the conflicted files. For File changes in remote repository >>>>>>> origin/main \`\`\``]),await this.tools.writeAndOpenFile(n==null?void 0:n.join(` -`))}async editRemotes(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),i=await new Fe(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}).openAndGetResult();if(i){let a=await this.gitManager.getRemoteUrl(i),o=await new Fe(this,{initialValue:a}).openAndGetResult();if(o)return await this.gitManager.setRemote(i,Wg(o)),i}}async selectRemoteBranch(){let r=await this.gitManager.getRemotes(),n;r.length===0&&(n=await this.editRemotes(),n==null&&(r=await this.gitManager.getRemotes()));let i=new Fe(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}),a=n!=null?n:await i.openAndGetResult();if(a){this.displayMessage("Fetching remote branches"),await this.gitManager.fetch(a);let s=await this.gitManager.getRemoteBranches(a);return await new Fe(this,{options:s,placeholder:"Select or create a new remote branch by typing its name and selecting it"}).openAndGetResult()}}async removeRemote(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),i=await new Fe(this,{options:r,placeholder:"Select a remote"}).openAndGetResult();i&&await this.gitManager.removeRemote(i)}onActiveLeafChange(r){var s,o;let n=r==null?void 0:r.view;if(!(n!=null&&n.getState().file)&&!(n instanceof Ta||n instanceof za))return;let i=this.app.workspace.getLeavesOfType(St.type).first(),a=this.app.workspace.getLeavesOfType(Fr.type).first();if((s=i==null?void 0:i.view.containerEl.querySelector("div.nav-file-title.is-active"))==null||s.removeClass("is-active"),(o=a==null?void 0:a.view.containerEl.querySelector("div.nav-file-title.is-active"))==null||o.removeClass("is-active"),(r==null?void 0:r.view)instanceof Ta||(r==null?void 0:r.view)instanceof za){let c=r.view.state.bFile;this.lastDiffViewState=r.view.getState();let l;i&&r.view.state.aRef=="HEAD"?l=i.view.containerEl.querySelector(`div.staged div.nav-file-title[data-path='${c}']`):i&&r.view.state.aRef==""?l=i.view.containerEl.querySelector(`div.changes div.nav-file-title[data-path='${c}']`):a&&(l=a.view.containerEl.querySelector(`div.nav-file-title[data-path='${c}']`)),l==null||l.addClass("is-active")}else this.lastDiffViewState=void 0}handleNoNetworkError(r){this.state.offlineMode?this.log("Encountered network error, but already in offline mode"):this.displayError("Git: Going into offline mode. Future network errors will no longer be displayed.",2e3),this.setPluginState({gitAction:0,offlineMode:!0})}displayMessage(r,n=4*1e3){var i;(i=this.statusBar)==null||i.displayMessage(r.toLowerCase(),n),this.settings.disablePopups||(!this.settings.disablePopupsForNoChanges||!r.startsWith("No changes"))&&new Ce.Notice(r,5*1e3),this.log(r)}displayError(r,n=10*1e3){var a;if(r instanceof gl.UserCanceledError){new Ce.Notice("Aborted");return}let i;r instanceof Error?i=r:i=new Error(String(r)),this.setPluginState({gitAction:0}),new Ce.Notice(i.message,n),console.error(`${this.manifest.id}:`,i.stack),(a=this.statusBar)==null||a.displayMessage(i.message.toLowerCase(),n)}log(...r){console.log(`${this.manifest.id}:`,...r)}}; +`))}async editRemotes(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),i=await new Fe(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}).openAndGetResult();if(i){let a=await this.gitManager.getRemoteUrl(i),o=await new Fe(this,{initialValue:a}).openAndGetResult();if(o)return await this.gitManager.setRemote(i,Vg(o)),i}}async selectRemoteBranch(){let r=await this.gitManager.getRemotes(),n;r.length===0&&(n=await this.editRemotes(),n==null&&(r=await this.gitManager.getRemotes()));let i=new Fe(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}),a=n!=null?n:await i.openAndGetResult();if(a){this.displayMessage("Fetching remote branches"),await this.gitManager.fetch(a);let s=await this.gitManager.getRemoteBranches(a);return await new Fe(this,{options:s,placeholder:"Select or create a new remote branch by typing its name and selecting it"}).openAndGetResult()}}async removeRemote(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),i=await new Fe(this,{options:r,placeholder:"Select a remote"}).openAndGetResult();i&&await this.gitManager.removeRemote(i)}onActiveLeafChange(r){var s,o;let n=r==null?void 0:r.view;if(!(n!=null&&n.getState().file)&&!(n instanceof Ta||n instanceof Ga))return;let i=this.app.workspace.getLeavesOfType(St.type).first(),a=this.app.workspace.getLeavesOfType($r.type).first();if((s=i==null?void 0:i.view.containerEl.querySelector("div.nav-file-title.is-active"))==null||s.removeClass("is-active"),(o=a==null?void 0:a.view.containerEl.querySelector("div.nav-file-title.is-active"))==null||o.removeClass("is-active"),(r==null?void 0:r.view)instanceof Ta||(r==null?void 0:r.view)instanceof Ga){let c=r.view.state.bFile;this.lastDiffViewState=r.view.getState();let l;i&&r.view.state.aRef=="HEAD"?l=i.view.containerEl.querySelector(`div.staged div.nav-file-title[data-path='${c}']`):i&&r.view.state.aRef==""?l=i.view.containerEl.querySelector(`div.changes div.nav-file-title[data-path='${c}']`):a&&(l=a.view.containerEl.querySelector(`div.nav-file-title[data-path='${c}']`)),l==null||l.addClass("is-active")}else this.lastDiffViewState=void 0}handleNoNetworkError(r){this.state.offlineMode?this.log("Encountered network error, but already in offline mode"):this.displayError("Git: Going into offline mode. Future network errors will no longer be displayed.",2e3),this.setPluginState({gitAction:0,offlineMode:!0})}displayMessage(r,n=4*1e3){var i;(i=this.statusBar)==null||i.displayMessage(r.toLowerCase(),n),this.settings.disablePopups||(!this.settings.disablePopupsForNoChanges||!r.startsWith("No changes"))&&new Ce.Notice(r,5*1e3),this.log(r)}displayError(r,n=10*1e3){var a;if(r instanceof gl.UserCanceledError){new Ce.Notice("Aborted");return}let i;r instanceof Error?i=r:i=new Error(String(r)),this.setPluginState({gitAction:0}),new Ce.Notice(i.message,n),console.error(`${this.manifest.id}:`,i.stack),(a=this.statusBar)==null||a.displayMessage(i.message.toLowerCase(),n)}log(...r){console.log(`${this.manifest.id}:`,...r)}}; /*! Bundled license information: ieee754/index.js: diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json index f43dd7a..563cdfc 100644 --- a/.obsidian/plugins/obsidian-git/manifest.json +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -6,5 +6,5 @@ "description": "Integrate Git version control with automatic backup and other advanced features.", "isDesktopOnly": false, "fundingUrl": "https://ko-fi.com/vinzent", - "version": "2.32.0" + "version": "2.32.1" } diff --git a/.obsidian/plugins/obsidian-quiet-outline/main.js b/.obsidian/plugins/obsidian-quiet-outline/main.js index 9e4017b..fbe76ce 100644 --- a/.obsidian/plugins/obsidian-quiet-outline/main.js +++ b/.obsidian/plugins/obsidian-quiet-outline/main.js @@ -3,34 +3,34 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ -var rR=Object.create;var yn=Object.defineProperty;var aR=Object.getOwnPropertyDescriptor;var lR=Object.getOwnPropertyNames;var nR=Object.getPrototypeOf,iR=Object.prototype.hasOwnProperty;var Vp=e=>yn(e,"__esModule",{value:!0});var Ut=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports),dR=(e,o)=>{Vp(e);for(var t in o)yn(e,t,{get:o[t],enumerable:!0})},sR=(e,o,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of lR(o))!iR.call(e,r)&&r!=="default"&&yn(e,r,{get:()=>o[r],enumerable:!(t=aR(o,r))||t.enumerable});return e},Jr=e=>sR(Vp(yn(e!=null?rR(nR(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Ue=(e,o,t)=>new Promise((r,a)=>{var l=d=>{try{i(t.next(d))}catch(s){a(s)}},n=d=>{try{i(t.throw(d))}catch(s){a(s)}},i=d=>d.done?r(d.value):Promise.resolve(d.value).then(l,n);i((t=t.apply(e,o)).next())});var RS=Ut((Kl,TS)=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=void 0;var pk={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},mk=function(e,o,t){var r,a=pk[e];return typeof a=="string"?r=a:o===1?r=a.one:r=a.other.replace("{{count}}",o.toString()),t!=null&&t.addSuffix?t.comparison&&t.comparison>0?"in "+r:r+" ago":r},ck=mk;Kl.default=ck;TS.exports=Kl.default});var FS=Ut((Qi,OS)=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.default=hk;function hk(e){return function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=o.width?String(o.width):e.defaultWidth,r=e.formats[t]||e.formats[e.defaultWidth];return r}}OS.exports=Qi.default});var bS=Ut((Gl,CS)=>{"use strict";Object.defineProperty(Gl,"__esModule",{value:!0});Gl.default=void 0;var qs=xk(FS());function xk(e){return e&&e.__esModule?e:{default:e}}var Sk={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},gk={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},wk={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Tk={date:(0,qs.default)({formats:Sk,defaultWidth:"full"}),time:(0,qs.default)({formats:gk,defaultWidth:"full"}),dateTime:(0,qs.default)({formats:wk,defaultWidth:"full"})},Rk=Tk;Gl.default=Rk;CS.exports=Gl.default});var vS=Ut((ql,yS)=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.default=void 0;var Ok={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Fk=function(e,o,t,r){return Ok[e]},Ck=Fk;ql.default=Ck;yS.exports=ql.default});var AS=Ut((Zi,kS)=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.default=bk;function bk(e){return function(o,t){var r=t||{},a=r.context?String(r.context):"standalone",l;if(a==="formatting"&&e.formattingValues){var n=e.defaultFormattingWidth||e.defaultWidth,i=r.width?String(r.width):n;l=e.formattingValues[i]||e.formattingValues[n]}else{var d=e.defaultWidth,s=r.width?String(r.width):e.defaultWidth;l=e.values[s]||e.values[d]}var u=e.argumentCallback?e.argumentCallback(o):o;return l[u]}}kS.exports=Zi.default});var PS=Ut((Zl,DS)=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=void 0;var Ql=yk(AS());function yk(e){return e&&e.__esModule?e:{default:e}}var vk={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},kk={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Ak={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Dk={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Pk={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Mk={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Bk=function(e,o){var t=Number(e),r=t%100;if(r>20||r<10)switch(r%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},Ek={ordinalNumber:Bk,era:(0,Ql.default)({values:vk,defaultWidth:"wide"}),quarter:(0,Ql.default)({values:kk,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:(0,Ql.default)({values:Ak,defaultWidth:"wide"}),day:(0,Ql.default)({values:Dk,defaultWidth:"wide"}),dayPeriod:(0,Ql.default)({values:Pk,defaultWidth:"wide",formattingValues:Mk,defaultFormattingWidth:"wide"})},Lk=Ek;Zl.default=Lk;DS.exports=Zl.default});var BS=Ut((Yi,MS)=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.default=Nk;function Nk(e){return function(o){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],l=o.match(a);if(!l)return null;var n=l[0],i=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(i)?Ik(i,function(f){return f.test(n)}):_k(i,function(f){return f.test(n)}),s;s=e.valueCallback?e.valueCallback(d):d,s=t.valueCallback?t.valueCallback(s):s;var u=o.slice(n.length);return{value:s,rest:u}}}function _k(e,o){for(var t in e)if(e.hasOwnProperty(t)&&o(e[t]))return t}function Ik(e,o){for(var t=0;t{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.default=Hk;function Hk(e){return function(o){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=o.match(e.matchPattern);if(!r)return null;var a=r[0],l=o.match(e.parsePattern);if(!l)return null;var n=e.valueCallback?e.valueCallback(l[0]):l[0];n=t.valueCallback?t.valueCallback(n):n;var i=o.slice(a.length);return{value:n,rest:i}}}ES.exports=Xi.default});var IS=Ut((Xl,_S)=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.default=void 0;var Yl=NS(BS()),Vk=NS(LS());function NS(e){return e&&e.__esModule?e:{default:e}}var Wk=/^(\d+)(th|st|nd|rd)?/i,zk=/\d+/i,jk={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},$k={any:[/^b/i,/^(a|c)/i]},Uk={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Kk={any:[/1/i,/2/i,/3/i,/4/i]},Gk={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},qk={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Qk={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Zk={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Yk={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Xk={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Jk={ordinalNumber:(0,Vk.default)({matchPattern:Wk,parsePattern:zk,valueCallback:function(e){return parseInt(e,10)}}),era:(0,Yl.default)({matchPatterns:jk,defaultMatchWidth:"wide",parsePatterns:$k,defaultParseWidth:"any"}),quarter:(0,Yl.default)({matchPatterns:Uk,defaultMatchWidth:"wide",parsePatterns:Kk,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:(0,Yl.default)({matchPatterns:Gk,defaultMatchWidth:"wide",parsePatterns:qk,defaultParseWidth:"any"}),day:(0,Yl.default)({matchPatterns:Qk,defaultMatchWidth:"wide",parsePatterns:Zk,defaultParseWidth:"any"}),dayPeriod:(0,Yl.default)({matchPatterns:Yk,defaultMatchWidth:"any",parsePatterns:Xk,defaultParseWidth:"any"})},eA=Jk;Xl.default=eA;_S.exports=Xl.default});var VS=Ut((en,HS)=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});en.default=void 0;var oA=Jl(RS()),tA=Jl(bS()),rA=Jl(vS()),aA=Jl(PS()),lA=Jl(IS());function Jl(e){return e&&e.__esModule?e:{default:e}}var nA={code:"en-US",formatDistance:oA.default,formatLong:tA.default,formatRelative:rA.default,localize:aA.default,match:lA.default,options:{weekStartsOn:0,firstWeekContainsDate:1}},iA=nA;en.default=iA;HS.exports=en.default});dR(exports,{default:()=>fM});var pr=Jr(require("obsidian"));var gT=Jr(require("obsidian"));function ya(e,o){let t=Object.create(null),r=e.split(",");for(let a=0;a!!t[a.toLowerCase()]:a=>!!t[a]}var mM={[1]:"TEXT",[2]:"CLASS",[4]:"STYLE",[8]:"PROPS",[16]:"FULL_PROPS",[32]:"HYDRATE_EVENTS",[64]:"STABLE_FRAGMENT",[128]:"KEYED_FRAGMENT",[256]:"UNKEYED_FRAGMENT",[512]:"NEED_PATCH",[1024]:"DYNAMIC_SLOTS",[2048]:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},cM={[1]:"STABLE",[2]:"DYNAMIC",[3]:"FORWARDED"};function br(e){if(Ne(e)){let o={};for(let t=0;t{if(t){let r=t.split(fR);r.length>1&&(o[r[0].trim()]=r[1].trim())}}),o}function ea(e){let o="";if(Po(e))o=e;else if(Ne(e))for(let t=0;tPo(e)?e:e==null?"":Ne(e)||xo(e)&&(e.toString===Up||!ze(e.toString))?JSON.stringify(e,jp,2):String(e),jp=(e,o)=>o&&o.__v_isRef?jp(e,o.value):yr(o)?{[`Map(${o.size})`]:[...o.entries()].reduce((t,[r,a])=>(t[`${r} =>`]=a,t),{})}:kn(o)?{[`Set(${o.size})`]:[...o.values()]}:xo(o)&&!Ne(o)&&!Pd(o)?String(o):o,ho={},oa=[],St=()=>{},$p=()=>!1,cR=/^on[^a-z]/,va=e=>cR.test(e),ul=e=>e.startsWith("onUpdate:"),No=Object.assign,vn=(e,o)=>{let t=e.indexOf(o);t>-1&&e.splice(t,1)},hR=Object.prototype.hasOwnProperty,to=(e,o)=>hR.call(e,o),Ne=Array.isArray,yr=e=>Dn(e)==="[object Map]",kn=e=>Dn(e)==="[object Set]";var ze=e=>typeof e=="function",Po=e=>typeof e=="string",An=e=>typeof e=="symbol",xo=e=>e!==null&&typeof e=="object",Ad=e=>xo(e)&&ze(e.then)&&ze(e.catch),Up=Object.prototype.toString,Dn=e=>Up.call(e),Dd=e=>Dn(e).slice(8,-1),Pd=e=>Dn(e)==="[object Object]",Pn=e=>Po(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,fl=ya(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var Mn=e=>{let o=Object.create(null);return t=>o[t]||(o[t]=e(t))},xR=/-(\w)/g,Kt=Mn(e=>e.replace(xR,(o,t)=>t?t.toUpperCase():"")),SR=/\B([A-Z])/g,vr=Mn(e=>e.replace(SR,"-$1").toLowerCase()),pl=Mn(e=>e.charAt(0).toUpperCase()+e.slice(1)),ml=Mn(e=>e?`on${pl(e)}`:""),ta=(e,o)=>!Object.is(e,o),cl=(e,o)=>{for(let t=0;t{Object.defineProperty(e,o,{configurable:!0,enumerable:!1,value:t})},Aa=e=>{let o=parseFloat(e);return isNaN(o)?e:o},Kp,Gp=()=>Kp||(Kp=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});var Gt,Bn=class{constructor(o=!1){this.detached=o,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Gt,!o&&Gt&&(this.index=(Gt.scopes||(Gt.scopes=[])).push(this)-1)}run(o){if(this.active){let t=Gt;try{return Gt=this,o()}finally{Gt=t}}}on(){Gt=this}off(){Gt=this.parent}stop(o){if(this.active){let t,r;for(t=0,r=this.effects.length;t{let o=new Set(e);return o.w=0,o.n=0,o},qp=e=>(e.w&kr)>0,Qp=e=>(e.n&kr)>0,wR=({deps:e})=>{if(e.length)for(let o=0;o{let{deps:o}=e;if(o.length){let t=0;for(let r=0;r{(f==="length"||f>=s)&&i.push(u)})}else switch(t!==void 0&&i.push(n.get(t)),o){case"add":Ne(e)?Pn(t)&&i.push(n.get("length")):(i.push(n.get(ra)),yr(e)&&i.push(n.get(Ld)));break;case"delete":Ne(e)||(i.push(n.get(ra)),yr(e)&&i.push(n.get(Ld)));break;case"set":yr(e)&&i.push(n.get(ra));break}let d=void 0;if(i.length===1)i[0]&&Nd(i[0]);else{let s=[];for(let u of i)u&&s.push(...u);Nd(Md(s))}}function Nd(e,o){let t=Ne(e)?e:[...e];for(let r of t)r.computed&&Jp(r,o);for(let r of t)r.computed||Jp(r,o)}function Jp(e,o){(e!==Nt||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}var RR=ya("__proto__,__v_isRef,__isVue"),em=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(An)),OR=_d(),FR=_d(!1,!0),CR=_d(!0);var om=bR();function bR(){let e={};return["includes","indexOf","lastIndexOf"].forEach(o=>{e[o]=function(...t){let r=qe(this);for(let l=0,n=this.length;l{e[o]=function(...t){Dr();let r=qe(this)[o].apply(this,t);return Pr(),r}}),e}function _d(e=!1,o=!1){return function(r,a,l){if(a==="__v_isReactive")return!e;if(a==="__v_isReadonly")return e;if(a==="__v_isShallow")return o;if(a==="__v_raw"&&l===(e?o?WR:um:o?sm:dm).get(r))return r;let n=Ne(r);if(!e&&n&&to(om,a))return Reflect.get(om,a,l);let i=Reflect.get(r,a,l);return(An(a)?em.has(a):RR(a))||(e||ft(r,"get",a),o)?i:Ho(i)?n&&Pn(a)?i:i.value:xo(i)?e?Br(i):Qt(i):i}}var yR=tm(),vR=tm(!0);function tm(e=!1){return function(t,r,a,l){let n=t[r];if(Lr(n)&&Ho(n)&&!Ho(a))return!1;if(!e&&(!Pa(a)&&!Lr(a)&&(n=qe(n),a=qe(a)),!Ne(t)&&Ho(n)&&!Ho(a)))return n.value=a,!0;let i=Ne(t)&&Pn(r)?Number(r)e,En=e=>Reflect.getPrototypeOf(e);function Ln(e,o,t=!1,r=!1){e=e.__v_raw;let a=qe(e),l=qe(o);t||(o!==l&&ft(a,"get",o),ft(a,"get",l));let{has:n}=En(a),i=r?Id:t?zd:xl;if(n.call(a,o))return i(e.get(o));if(n.call(a,l))return i(e.get(l));e!==a&&e.get(o)}function Nn(e,o=!1){let t=this.__v_raw,r=qe(t),a=qe(e);return o||(e!==a&&ft(r,"has",e),ft(r,"has",a)),e===a?t.has(e):t.has(e)||t.has(a)}function _n(e,o=!1){return e=e.__v_raw,!o&&ft(qe(e),"iterate",ra),Reflect.get(e,"size",e)}function am(e){e=qe(e);let o=qe(this);return En(o).has.call(o,e)||(o.add(e),qt(o,"add",e,e)),this}function lm(e,o){o=qe(o);let t=qe(this),{has:r,get:a}=En(t),l=r.call(t,e);l||(e=qe(e),l=r.call(t,e));let n=a.call(t,e);return t.set(e,o),l?ta(o,n)&&qt(t,"set",e,o,n):qt(t,"add",e,o),this}function nm(e){let o=qe(this),{has:t,get:r}=En(o),a=t.call(o,e);a||(e=qe(e),a=t.call(o,e));let l=r?r.call(o,e):void 0,n=o.delete(e);return a&&qt(o,"delete",e,void 0,l),n}function im(){let e=qe(this),o=e.size!==0,t=void 0,r=e.clear();return o&&qt(e,"clear",void 0,void 0,t),r}function In(e,o){return function(r,a){let l=this,n=l.__v_raw,i=qe(n),d=o?Id:e?zd:xl;return!e&&ft(i,"iterate",ra),n.forEach((s,u)=>r.call(a,d(s),d(u),l))}}function Hn(e,o,t){return function(...r){let a=this.__v_raw,l=qe(a),n=yr(l),i=e==="entries"||e===Symbol.iterator&&n,d=e==="keys"&&n,s=a[e](...r),u=t?Id:o?zd:xl;return!o&&ft(l,"iterate",d?Ld:ra),{next(){let{value:f,done:m}=s.next();return m?{value:f,done:m}:{value:i?[u(f[0]),u(f[1])]:u(f),done:m}},[Symbol.iterator](){return this}}}}function Mr(e){return function(...o){return e==="delete"?!1:this}}function BR(){let e={get(l){return Ln(this,l)},get size(){return _n(this)},has:Nn,add:am,set:lm,delete:nm,clear:im,forEach:In(!1,!1)},o={get(l){return Ln(this,l,!1,!0)},get size(){return _n(this)},has:Nn,add:am,set:lm,delete:nm,clear:im,forEach:In(!1,!0)},t={get(l){return Ln(this,l,!0)},get size(){return _n(this,!0)},has(l){return Nn.call(this,l,!0)},add:Mr("add"),set:Mr("set"),delete:Mr("delete"),clear:Mr("clear"),forEach:In(!0,!1)},r={get(l){return Ln(this,l,!0,!0)},get size(){return _n(this,!0)},has(l){return Nn.call(this,l,!0)},add:Mr("add"),set:Mr("set"),delete:Mr("delete"),clear:Mr("clear"),forEach:In(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(l=>{e[l]=Hn(l,!1,!1),t[l]=Hn(l,!0,!1),o[l]=Hn(l,!1,!0),r[l]=Hn(l,!0,!0)}),[e,t,o,r]}var[ER,LR,NR,_R]=BR();function Hd(e,o){let t=o?e?_R:NR:e?LR:ER;return(r,a,l)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?r:Reflect.get(to(t,a)&&a in r?t:r,a,l)}var IR={get:Hd(!1,!1)},HR={get:Hd(!1,!0)},VR={get:Hd(!0,!1)};var dm=new WeakMap,sm=new WeakMap,um=new WeakMap,WR=new WeakMap;function zR(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function jR(e){return e.__v_skip||!Object.isExtensible(e)?0:zR(Dd(e))}function Qt(e){return Lr(e)?e:Wd(e,!1,rm,IR,dm)}function Vd(e){return Wd(e,!1,MR,HR,sm)}function Br(e){return Wd(e,!0,PR,VR,um)}function Wd(e,o,t,r,a){if(!xo(e)||e.__v_raw&&!(o&&e.__v_isReactive))return e;let l=a.get(e);if(l)return l;let n=jR(e);if(n===0)return e;let i=new Proxy(e,n===2?r:t);return a.set(e,i),i}function Er(e){return Lr(e)?Er(e.__v_raw):!!(e&&e.__v_isReactive)}function Lr(e){return!!(e&&e.__v_isReadonly)}function Pa(e){return!!(e&&e.__v_isShallow)}function Vn(e){return Er(e)||Lr(e)}function qe(e){let o=e&&e.__v_raw;return o?qe(o):e}function aa(e){return ka(e,"__v_skip",!0),e}var xl=e=>xo(e)?Qt(e):e,zd=e=>xo(e)?Br(e):e;function fm(e){Ar&&Nt&&(e=qe(e),Xp(e.dep||(e.dep=Md())))}function pm(e,o){e=qe(e),e.dep&&Nd(e.dep)}function Ho(e){return!!(e&&e.__v_isRef===!0)}function Z(e){return $R(e,!1)}function $R(e,o){return Ho(e)?e:new mm(e,o)}var mm=class{constructor(o,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?o:qe(o),this._value=t?o:xl(o)}get value(){return fm(this),this._value}set value(o){let t=this.__v_isShallow||Pa(o)||Lr(o);o=t?o:qe(o),ta(o,this._rawValue)&&(this._rawValue=o,this._value=t?o:xl(o),pm(this,o))}};function bt(e){return Ho(e)?e.value:e}var UR={get:(e,o,t)=>bt(Reflect.get(e,o,t)),set:(e,o,t,r)=>{let a=e[o];return Ho(a)&&!Ho(t)?(a.value=t,!0):Reflect.set(e,o,t,r)}};function Wn(e){return Er(e)?e:new Proxy(e,UR)}var cm=class{constructor(o,t,r){this._object=o,this._key=t,this._defaultValue=r,this.__v_isRef=!0}get value(){let o=this._object[this._key];return o===void 0?this._defaultValue:o}set value(o){this._object[this._key]=o}};function _e(e,o,t){let r=e[o];return Ho(r)?r:new cm(e,o,t)}var hm,xm=class{constructor(o,t,r,a){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[hm]=!1,this._dirty=!0,this.effect=new Da(o,()=>{this._dirty||(this._dirty=!0,pm(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!a,this.__v_isReadonly=r}get value(){let o=qe(this);return fm(o),(o._dirty||!o._cacheable)&&(o._dirty=!1,o._value=o.effect.run()),o._value}set value(o){this._setter(o)}};hm="__v_isReadonly";function Sm(e,o,t=!1){let r,a,l=ze(e);return l?(r=e,a=St):(r=e.get,a=e.set),new xm(r,a,l||!a,t)}var KR;KR="__v_isReadonly";var Sl=[];function gm(e,...o){}function GR(){let e=Sl[Sl.length-1];if(!e)return[];let o=[];for(;e;){let t=o[0];t&&t.vnode===e?t.recurseCount++:o.push({vnode:e,recurseCount:0});let r=e.component&&e.component.parent;e=r&&r.vnode}return o}function qR(e){let o=[];return e.forEach((t,r)=>{o.push(...r===0?[]:[` -`],...QR(t))}),o}function QR({vnode:e,recurseCount:o}){let t=o>0?`... (${o} recursive calls)`:"",r=e.component?e.component.parent==null:!1,a=` at <${lc(e.component,e.type,r)}`,l=">"+t;return e.props?[a,...ZR(e.props),l]:[a+l]}function ZR(e){let o=[],t=Object.keys(e);return t.slice(0,3).forEach(r=>{o.push(...wm(r,e[r]))}),t.length>3&&o.push(" ..."),o}function wm(e,o,t){return Po(o)?(o=JSON.stringify(o),t?o:[`${e}=${o}`]):typeof o=="number"||typeof o=="boolean"||o==null?t?o:[`${e}=${o}`]:Ho(o)?(o=wm(e,qe(o.value),!0),t?o:[`${e}=Ref<`,o,">"]):ze(o)?[`${e}=fn${o.name?`<${o.name}>`:""}`]:(o=qe(o),t?o:[`${e}=`,o])}var NM={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",[0]:"setup function",[1]:"render function",[2]:"watcher getter",[3]:"watcher callback",[4]:"watcher cleanup function",[5]:"native event handler",[6]:"component event handler",[7]:"vnode hook",[8]:"directive hook",[9]:"transition hook",[10]:"app errorHandler",[11]:"app warnHandler",[12]:"ref function",[13]:"async component loader",[14]:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"};function hr(e,o,t,r){let a;try{a=r?e(...r):e()}catch(l){zn(l,o,t)}return a}function gt(e,o,t,r){if(ze(e)){let l=hr(e,o,t,r);return l&&Ad(l)&&l.catch(n=>{zn(n,o,t)}),l}let a=[];for(let l=0;l>>1;wl(et[r])Zt&&et.splice(o,1)}function eO(e){Ne(e)?Ma.push(...e):(!xr||!xr.includes(e,e.allowRecurse?la+1:la))&&Ma.push(e),Rm()}function Om(e,o=gl?Zt+1:0){for(;owl(t)-wl(r)),la=0;lae.id==null?1/0:e.id,oO=(e,o)=>{let t=wl(e)-wl(o);if(t===0){if(e.pre&&!o.pre)return-1;if(o.pre&&!e.pre)return 1}return t};function Cm(e){jd=!1,gl=!0,et.sort(oO);let o=St;try{for(Zt=0;ZtPo(p)?p.trim():p)),f&&(a=t.map(Aa))}let i,d=r[i=ml(o)]||r[i=ml(Kt(o))];!d&&l&&(d=r[i=ml(vr(o))]),d&>(d,e,6,a);let s=r[i+"Once"];if(s){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,gt(s,e,6,a)}}function bm(e,o,t=!1){let r=o.emitsCache,a=r.get(e);if(a!==void 0)return a;let l=e.emits,n={},i=!1;if(!ze(e)){let d=s=>{let u=bm(s,o,!0);u&&(i=!0,No(n,u))};!t&&o.mixins.length&&o.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!l&&!i?(xo(e)&&r.set(e,null),null):(Ne(l)?l.forEach(d=>n[d]=null):No(n,l),xo(e)&&r.set(e,n),n)}function jn(e,o){return!e||!va(o)?!1:(o=o.slice(2).replace(/Once$/,""),to(e,o[0].toLowerCase()+o.slice(1))||to(e,vr(o))||to(e,o))}var ot=null,ym=null;function $n(e){let o=ot;return ot=e,ym=e&&e.type.__scopeId||null,o}function na(e,o=ot,t){if(!o||e._n)return e;let r=(...a)=>{r._d&&Ym(-1);let l=$n(o),n;try{n=e(...a)}finally{$n(l),r._d&&Ym(1)}return n};return r._n=!0,r._c=!0,r._d=!0,r}function Kd(e){let{type:o,vnode:t,proxy:r,withProxy:a,props:l,propsOptions:[n],slots:i,attrs:d,emit:s,render:u,renderCache:f,data:m,setupState:p,ctx:c,inheritAttrs:R}=e,y,h,A=$n(e);try{if(t.shapeFlag&4){let g=a||r;y=Yt(u.call(g,g,f,l,p,m,c)),h=d}else{let g=o;y=Yt(g.length>1?g(l,{attrs:d,slots:i,emit:s}):g(l,null)),h=o.props?d:rO(d)}}catch(g){Cl.length=0,zn(g,e,1),y=Fo(tt)}let z=y,F;if(h&&R!==!1){let g=Object.keys(h),{shapeFlag:k}=z;g.length&&k&(1|6)&&(n&&g.some(ul)&&(h=aO(h,n)),z=Nr(z,h))}return t.dirs&&(z=Nr(z),z.dirs=z.dirs?z.dirs.concat(t.dirs):t.dirs),t.transition&&(z.transition=t.transition),y=z,$n(A),y}var rO=e=>{let o;for(let t in e)(t==="class"||t==="style"||va(t))&&((o||(o={}))[t]=e[t]);return o},aO=(e,o)=>{let t={};for(let r in e)(!ul(r)||!(r.slice(9)in o))&&(t[r]=e[r]);return t};function lO(e,o,t){let{props:r,children:a,component:l}=e,{props:n,children:i,patchFlag:d}=o,s=l.emitsOptions;if(o.dirs||o.transition)return!0;if(t&&d>=0){if(d&1024)return!0;if(d&16)return r?vm(r,n,s):!!n;if(d&8){let u=o.dynamicProps;for(let f=0;fe.__isSuspense;function dO(e,o){o&&o.pendingBranch?Ne(e)?o.effects.push(...e):o.effects.push(e):eO(e)}function nt(e,o){if(Zo){let t=Zo.provides,r=Zo.parent&&Zo.parent.provides;r===t&&(t=Zo.provides=Object.create(r)),t[e]=o}}function Ce(e,o,t=!1){let r=Zo||ot;if(r){let a=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(a&&e in a)return a[e];if(arguments.length>1)return t&&ze(o)?o.call(r.proxy):o}}function Uo(e,o){return Kn(e,null,o)}function km(e,o){return Kn(e,null,{flush:"post"})}var Un={};function io(e,o,t){return Kn(e,o,t)}function Kn(e,o,{immediate:t,deep:r,flush:a,onTrack:l,onTrigger:n}=ho){let i=F=>{gm("Invalid watch source: ",F,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},d=Zo,s,u=!1,f=!1;if(Ho(e)?(s=()=>e.value,u=Pa(e)):Er(e)?(s=()=>e,r=!0):Ne(e)?(f=!0,u=e.some(F=>Er(F)||Pa(F)),s=()=>e.map(F=>{if(Ho(F))return F.value;if(Er(F))return ia(F);if(ze(F))return hr(F,d,2)})):ze(e)?o?s=()=>hr(e,d,2):s=()=>{if(!(d&&d.isUnmounted))return m&&m(),gt(e,d,3,[p])}:s=St,o&&r){let F=s;s=()=>ia(F())}let m,p=F=>{m=A.onStop=()=>{hr(F,d,4)}},c;if(kl)if(p=St,o?t&>(o,d,3,[s(),f?[]:void 0,p]):s(),a==="sync"){let F=XO();c=F.__watcherHandles||(F.__watcherHandles=[])}else return St;let R=f?new Array(e.length).fill(Un):Un,y=()=>{if(!!A.active)if(o){let F=A.run();(r||u||(f?F.some((g,k)=>ta(g,R[k])):ta(F,R)))&&(m&&m(),gt(o,d,3,[F,R===Un?void 0:f&&R[0]===Un?[]:R,p]),R=F)}else A.run()};y.allowRecurse=!!o;let h;a==="sync"?h=y:a==="post"?h=()=>pt(y,d&&d.suspense):(y.pre=!0,d&&(y.id=d.uid),h=()=>Ud(y));let A=new Da(s,h);o?t?y():R=A.run():a==="post"?pt(A.run.bind(A),d&&d.suspense):A.run();let z=()=>{A.stop(),d&&d.scope&&vn(d.scope.effects,A)};return c&&c.push(z),z}function sO(e,o,t){let r=this.proxy,a=Po(e)?e.includes(".")?Am(r,e):()=>r[e]:e.bind(r,r),l;ze(o)?l=o:(l=o.handler,t=o);let n=Zo;Ia(this);let i=Kn(a,l.bind(r),t);return n?Ia(n):pa(),i}function Am(e,o){let t=o.split(".");return()=>{let r=e;for(let a=0;a{ia(t,o)});else if(Pd(e))for(let t in e)ia(e[t],o);return e}function Gd(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return so(()=>{e.isMounted=!0}),Wo(()=>{e.isUnmounting=!0}),e}var yt=[Function,Array],uO={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:yt,onEnter:yt,onAfterEnter:yt,onEnterCancelled:yt,onBeforeLeave:yt,onLeave:yt,onAfterLeave:yt,onLeaveCancelled:yt,onBeforeAppear:yt,onAppear:yt,onAfterAppear:yt,onAppearCancelled:yt},setup(e,{slots:o}){let t=vt(),r=Gd(),a;return()=>{let l=o.default&&Gn(o.default(),!0);if(!l||!l.length)return;let n=l[0];if(l.length>1){let R=!1;for(let y of l)if(y.type!==tt){n=y,R=!0;break}}let i=qe(e),{mode:d}=i;if(r.isLeaving)return Qd(n);let s=Pm(n);if(!s)return Qd(n);let u=Ba(s,i,r,t);Ea(s,u);let f=t.subTree,m=f&&Pm(f),p=!1,{getTransitionKey:c}=s.type;if(c){let R=c();a===void 0?a=R:R!==a&&(a=R,p=!0)}if(m&&m.type!==tt&&(!fa(s,m)||p)){let R=Ba(m,i,r,t);if(Ea(m,R),d==="out-in")return r.isLeaving=!0,R.afterLeave=()=>{r.isLeaving=!1,t.update.active!==!1&&t.update()},Qd(n);d==="in-out"&&s.type!==tt&&(R.delayLeave=(y,h,A)=>{let z=Dm(r,m);z[String(m.key)]=m,y._leaveCb=()=>{h(),y._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=A})}return n}}},qd=uO;function Dm(e,o){let{leavingVNodes:t}=e,r=t.get(o.type);return r||(r=Object.create(null),t.set(o.type,r)),r}function Ba(e,o,t,r){let{appear:a,mode:l,persisted:n=!1,onBeforeEnter:i,onEnter:d,onAfterEnter:s,onEnterCancelled:u,onBeforeLeave:f,onLeave:m,onAfterLeave:p,onLeaveCancelled:c,onBeforeAppear:R,onAppear:y,onAfterAppear:h,onAppearCancelled:A}=o,z=String(e.key),F=Dm(t,e),g=(b,B)=>{b&>(b,r,9,B)},k=(b,B)=>{let v=B[1];g(b,B),Ne(b)?b.every(_=>_.length<=1)&&v():b.length<=1&&v()},S={mode:l,persisted:n,beforeEnter(b){let B=i;if(!t.isMounted)if(a)B=R||i;else return;b._leaveCb&&b._leaveCb(!0);let v=F[z];v&&fa(e,v)&&v.el._leaveCb&&v.el._leaveCb(),g(B,[b])},enter(b){let B=d,v=s,_=u;if(!t.isMounted)if(a)B=y||d,v=h||s,_=A||u;else return;let E=!1,se=b._enterCb=Fe=>{E||(E=!0,Fe?g(_,[b]):g(v,[b]),S.delayedLeave&&S.delayedLeave(),b._enterCb=void 0)};B?k(B,[b,se]):se()},leave(b,B){let v=String(e.key);if(b._enterCb&&b._enterCb(!0),t.isUnmounting)return B();g(f,[b]);let _=!1,E=b._leaveCb=se=>{_||(_=!0,B(),se?g(c,[b]):g(p,[b]),b._leaveCb=void 0,F[v]===e&&delete F[v])};F[v]=e,m?k(m,[b,E]):E()},clone(b){return Ba(b,o,t,r)}};return S}function Qd(e){if(qn(e))return e=Nr(e),e.children=null,e}function Pm(e){return qn(e)?e.children?e.children[0]:void 0:e}function Ea(e,o){e.shapeFlag&6&&e.component?Ea(e.component.subTree,o):e.shapeFlag&128?(e.ssContent.transition=o.clone(e.ssContent),e.ssFallback.transition=o.clone(e.ssFallback)):e.transition=o}function Gn(e,o=!1,t){let r=[],a=0;for(let l=0;l1)for(let l=0;l!!e.type.__asyncLoader;var qn=e=>e.type.__isKeepAlive;function Zd(e,o){Mm(e,"a",o)}function fO(e,o){Mm(e,"da",o)}function Mm(e,o,t=Zo){let r=e.__wdc||(e.__wdc=()=>{let a=t;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Qn(o,r,t),t){let a=t.parent;for(;a&&a.parent;)qn(a.parent.vnode)&&pO(r,o,t,a),a=a.parent}}function pO(e,o,t,r){let a=Qn(o,e,r,!0);wr(()=>{vn(r[o],a)},t)}function Qn(e,o,t=Zo,r=!1){if(t){let a=t[e]||(t[e]=[]),l=o.__weh||(o.__weh=(...n)=>{if(t.isUnmounted)return;Dr(),Ia(t);let i=gt(o,t,e,n);return pa(),Pr(),i});return r?a.unshift(l):a.push(l),l}}var Sr=e=>(o,t=Zo)=>(!kl||e==="sp")&&Qn(e,(...r)=>o(...r),t),gr=Sr("bm"),so=Sr("m"),Yd=Sr("bu"),Xd=Sr("u"),Wo=Sr("bum"),wr=Sr("um"),mO=Sr("sp"),cO=Sr("rtg"),hO=Sr("rtc");function xO(e,o=Zo){Qn("ec",e,o)}function Zn(e,o){let t=ot;if(t===null)return e;let r=ri(t)||t.proxy,a=e.dirs||(e.dirs=[]);for(let l=0;lNa(o)?!(o.type===tt||o.type===_o&&!Bm(o.children)):!0)?e:null}var Jd=e=>e?ec(e)?ri(e)||e.proxy:Jd(e.parent):null,Rl=No(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Jd(e.parent),$root:e=>Jd(e.root),$emit:e=>e.emit,$options:e=>ts(e),$forceUpdate:e=>e.f||(e.f=()=>Ud(e.update)),$nextTick:e=>e.n||(e.n=Qo.bind(e.proxy)),$watch:e=>sO.bind(e)});var es=(e,o)=>e!==ho&&!e.__isScriptSetup&&to(e,o),gO={get({_:e},o){let{ctx:t,setupState:r,data:a,props:l,accessCache:n,type:i,appContext:d}=e,s;if(o[0]!=="$"){let p=n[o];if(p!==void 0)switch(p){case 1:return r[o];case 2:return a[o];case 4:return t[o];case 3:return l[o]}else{if(es(r,o))return n[o]=1,r[o];if(a!==ho&&to(a,o))return n[o]=2,a[o];if((s=e.propsOptions[0])&&to(s,o))return n[o]=3,l[o];if(t!==ho&&to(t,o))return n[o]=4,t[o];os&&(n[o]=0)}}let u=Rl[o],f,m;if(u)return o==="$attrs"&&ft(e,"get",o),u(e);if((f=i.__cssModules)&&(f=f[o]))return f;if(t!==ho&&to(t,o))return n[o]=4,t[o];if(m=d.config.globalProperties,to(m,o))return m[o]},set({_:e},o,t){let{data:r,setupState:a,ctx:l}=e;return es(a,o)?(a[o]=t,!0):r!==ho&&to(r,o)?(r[o]=t,!0):to(e.props,o)||o[0]==="$"&&o.slice(1)in e?!1:(l[o]=t,!0)},has({_:{data:e,setupState:o,accessCache:t,ctx:r,appContext:a,propsOptions:l}},n){let i;return!!t[n]||e!==ho&&to(e,n)||es(o,n)||(i=l[0])&&to(i,n)||to(r,n)||to(Rl,n)||to(a.config.globalProperties,n)},defineProperty(e,o,t){return t.get!=null?e._.accessCache[o]=0:to(t,"value")&&this.set(e,o,t.value,null),Reflect.defineProperty(e,o,t)}};var os=!0;function wO(e){let o=ts(e),t=e.proxy,r=e.ctx;os=!1,o.beforeCreate&&Em(o.beforeCreate,e,"bc");let{data:a,computed:l,methods:n,watch:i,provide:d,inject:s,created:u,beforeMount:f,mounted:m,beforeUpdate:p,updated:c,activated:R,deactivated:y,beforeDestroy:h,beforeUnmount:A,destroyed:z,unmounted:F,render:g,renderTracked:k,renderTriggered:S,errorCaptured:b,serverPrefetch:B,expose:v,inheritAttrs:_,components:E,directives:se,filters:Fe}=o;if(s&&TO(s,r,null,e.appContext.config.unwrapInjectedRef),n)for(let fe in n){let Re=n[fe];ze(Re)&&(r[fe]=Re.bind(t))}if(a){let fe=a.call(t,t);xo(fe)&&(e.data=Qt(fe))}if(os=!0,l)for(let fe in l){let Re=l[fe],eo=ze(Re)?Re.bind(t,t):ze(Re.get)?Re.get.bind(t,t):St,oo=!ze(Re)&&ze(Re.set)?Re.set.bind(t):St,Qe=W({get:eo,set:oo});Object.defineProperty(r,fe,{enumerable:!0,configurable:!0,get:()=>Qe.value,set:fo=>Qe.value=fo})}if(i)for(let fe in i)Lm(i[fe],r,t,fe);if(d){let fe=ze(d)?d.call(t):d;Reflect.ownKeys(fe).forEach(Re=>{nt(Re,fe[Re])})}u&&Em(u,e,"c");function pe(fe,Re){Ne(Re)?Re.forEach(eo=>fe(eo.bind(t))):Re&&fe(Re.bind(t))}if(pe(gr,f),pe(so,m),pe(Yd,p),pe(Xd,c),pe(Zd,R),pe(fO,y),pe(xO,b),pe(hO,k),pe(cO,S),pe(Wo,A),pe(wr,F),pe(mO,B),Ne(v))if(v.length){let fe=e.exposed||(e.exposed={});v.forEach(Re=>{Object.defineProperty(fe,Re,{get:()=>t[Re],set:eo=>t[Re]=eo})})}else e.exposed||(e.exposed={});g&&e.render===St&&(e.render=g),_!=null&&(e.inheritAttrs=_),E&&(e.components=E),se&&(e.directives=se)}function TO(e,o,t=St,r=!1){Ne(e)&&(e=rs(e));for(let a in e){let l=e[a],n;xo(l)?"default"in l?n=Ce(l.from||a,l.default,!0):n=Ce(l.from||a):n=Ce(l),Ho(n)&&r?Object.defineProperty(o,a,{enumerable:!0,configurable:!0,get:()=>n.value,set:i=>n.value=i}):o[a]=n}}function Em(e,o,t){gt(Ne(e)?e.map(r=>r.bind(o.proxy)):e.bind(o.proxy),o,t)}function Lm(e,o,t,r){let a=r.includes(".")?Am(t,r):()=>t[r];if(Po(e)){let l=o[e];ze(l)&&io(a,l)}else if(ze(e))io(a,e.bind(t));else if(xo(e))if(Ne(e))e.forEach(l=>Lm(l,o,t,r));else{let l=ze(e.handler)?e.handler.bind(t):o[e.handler];ze(l)&&io(a,l,e)}}function ts(e){let o=e.type,{mixins:t,extends:r}=o,{mixins:a,optionsCache:l,config:{optionMergeStrategies:n}}=e.appContext,i=l.get(o),d;return i?d=i:!a.length&&!t&&!r?d=o:(d={},a.length&&a.forEach(s=>Yn(d,s,n,!0)),Yn(d,o,n)),xo(o)&&l.set(o,d),d}function Yn(e,o,t,r=!1){let{mixins:a,extends:l}=o;l&&Yn(e,l,t,!0),a&&a.forEach(n=>Yn(e,n,t,!0));for(let n in o)if(!(r&&n==="expose")){let i=RO[n]||t&&t[n];e[n]=i?i(e[n],o[n]):o[n]}return e}var RO={data:Nm,props:sa,emits:sa,methods:sa,computed:sa,beforeCreate:it,created:it,beforeMount:it,mounted:it,beforeUpdate:it,updated:it,beforeDestroy:it,beforeUnmount:it,destroyed:it,unmounted:it,activated:it,deactivated:it,errorCaptured:it,serverPrefetch:it,components:sa,directives:sa,watch:FO,provide:Nm,inject:OO};function Nm(e,o){return o?e?function(){return No(ze(e)?e.call(this,this):e,ze(o)?o.call(this,this):o)}:o:e}function OO(e,o){return sa(rs(e),rs(o))}function rs(e){if(Ne(e)){let o={};for(let t=0;t0)&&!(n&16)){if(n&8){let u=e.vnode.dynamicProps;for(let f=0;f{d=!0;let[m,p]=Im(f,o,!0);No(n,m),p&&i.push(...p)};!t&&o.mixins.length&&o.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!l&&!d)return xo(e)&&r.set(e,oa),oa;if(Ne(l))for(let u=0;u-1,p[1]=R<0||c-1||to(p,"default"))&&i.push(f)}}}let s=[n,i];return xo(e)&&r.set(e,s),s}function Hm(e){return e[0]!=="$"}function Vm(e){let o=e&&e.toString().match(/^\s*function (\w+)/);return o?o[1]:e===null?"null":""}function Wm(e,o){return Vm(e)===Vm(o)}function zm(e,o){return Ne(o)?o.findIndex(t=>Wm(t,e)):ze(o)&&Wm(o,e)?0:-1}var jm=e=>e[0]==="_"||e==="$stable",ls=e=>Ne(e)?e.map(Yt):[Yt(e)],yO=(e,o,t)=>{if(o._n)return o;let r=na((...a)=>ls(o(...a)),t);return r._c=!1,r},$m=(e,o,t)=>{let r=e._ctx;for(let a in e){if(jm(a))continue;let l=e[a];if(ze(l))o[a]=yO(a,l,r);else if(l!=null){let n=ls(l);o[a]=()=>n}}},Um=(e,o)=>{let t=ls(o);e.slots.default=()=>t},vO=(e,o)=>{if(e.vnode.shapeFlag&32){let t=o._;t?(e.slots=qe(o),ka(o,"_",t)):$m(o,e.slots={})}else e.slots={},o&&Um(e,o);ka(e.slots,ei,1)},kO=(e,o,t)=>{let{vnode:r,slots:a}=e,l=!0,n=ho;if(r.shapeFlag&32){let i=o._;i?t&&i===1?l=!1:(No(a,o),!t&&i===1&&delete a._):(l=!o.$stable,$m(o,a)),n=o}else o&&(Um(e,o),n={default:1});if(l)for(let i in a)!jm(i)&&!(i in n)&&delete a[i]};function Km(){return{app:null,config:{isNativeTag:$p,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var AO=0;function DO(e,o){return function(r,a=null){ze(r)||(r=Object.assign({},r)),a!=null&&!xo(a)&&(a=null);let l=Km(),n=new Set,i=!1,d=l.app={_uid:AO++,_component:r,_props:a,_container:null,_context:l,_instance:null,version:JO,get config(){return l.config},set config(s){},use(s,...u){return n.has(s)||(s&&ze(s.install)?(n.add(s),s.install(d,...u)):ze(s)&&(n.add(s),s(d,...u))),d},mixin(s){return l.mixins.includes(s)||l.mixins.push(s),d},component(s,u){return u?(l.components[s]=u,d):l.components[s]},directive(s,u){return u?(l.directives[s]=u,d):l.directives[s]},mount(s,u,f){if(!i){let m=Fo(r,a);return m.appContext=l,u&&o?o(m,s):e(m,s,f),i=!0,d._container=s,s.__vue_app__=d,ri(m.component)||m.component.proxy}},unmount(){i&&(e(null,d._container),delete d._container.__vue_app__)},provide(s,u){return l.provides[s]=u,d}};return d}}function ns(e,o,t,r,a=!1){if(Ne(e)){e.forEach((m,p)=>ns(m,o&&(Ne(o)?o[p]:o),t,r,a));return}if(Tl(r)&&!a)return;let l=r.shapeFlag&4?ri(r.component)||r.component.proxy:r.el,n=a?null:l,{i,r:d}=e,s=o&&o.r,u=i.refs===ho?i.refs={}:i.refs,f=i.setupState;if(s!=null&&s!==d&&(Po(s)?(u[s]=null,to(f,s)&&(f[s]=null)):Ho(s)&&(s.value=null)),ze(d))hr(d,i,12,[n,u]);else{let m=Po(d),p=Ho(d);if(m||p){let c=()=>{if(e.f){let R=m?to(f,d)?f[d]:u[d]:d.value;a?Ne(R)&&vn(R,l):Ne(R)?R.includes(l)||R.push(l):m?(u[d]=[l],to(f,d)&&(f[d]=u[d])):(d.value=[l],e.k&&(u[e.k]=d.value))}else m?(u[d]=n,to(f,d)&&(f[d]=n)):p&&(d.value=n,e.k&&(u[e.k]=n))};n?(c.id=-1,pt(c,t)):c()}}}function PO(){let e=[]}var pt=dO;function Gm(e){return MO(e)}function MO(e,o){PO();let t=Gp();t.__VUE__=!0;let{insert:r,remove:a,patchProp:l,createElement:n,createText:i,createComment:d,setText:s,setElementText:u,parentNode:f,nextSibling:m,setScopeId:p=St,insertStaticContent:c}=e,R=(x,O,N,U=null,K=null,le=null,ee=!1,V=null,Y=!!O.dynamicChildren)=>{if(x===O)return;x&&!fa(x,O)&&(U=ao(x),no(x,K,le,!0),x=null),O.patchFlag===-2&&(Y=!1,O.dynamicChildren=null);let{type:G,ref:D,shapeFlag:L}=O;switch(G){case Jn:y(x,O,N,U);break;case tt:h(x,O,N,U);break;case Fl:x==null&&A(O,N,U,ee);break;case _o:se(x,O,N,U,K,le,ee,V,Y);break;default:L&1?k(x,O,N,U,K,le,ee,V,Y):L&6?Fe(x,O,N,U,K,le,ee,V,Y):(L&64||L&128)&&G.process(x,O,N,U,K,le,ee,V,Y,mo)}D!=null&&K&&ns(D,x&&x.ref,le,O||x,!O)},y=(x,O,N,U)=>{if(x==null)r(O.el=i(O.children),N,U);else{let K=O.el=x.el;O.children!==x.children&&s(K,O.children)}},h=(x,O,N,U)=>{x==null?r(O.el=d(O.children||""),N,U):O.el=x.el},A=(x,O,N,U)=>{[x.el,x.anchor]=c(x.children,O,N,U,x.el,x.anchor)},z=(x,O,N,U)=>{if(O.children!==x.children){let K=m(x.anchor);g(x),[O.el,O.anchor]=c(O.children,N,K,U)}else O.el=x.el,O.anchor=x.anchor},F=({el:x,anchor:O},N,U)=>{let K;for(;x&&x!==O;)K=m(x),r(x,N,U),x=K;r(O,N,U)},g=({el:x,anchor:O})=>{let N;for(;x&&x!==O;)N=m(x),a(x),x=N;a(O)},k=(x,O,N,U,K,le,ee,V,Y)=>{ee=ee||O.type==="svg",x==null?S(O,N,U,K,le,ee,V,Y):v(x,O,K,le,ee,V,Y)},S=(x,O,N,U,K,le,ee,V)=>{let Y,G,{type:D,props:L,shapeFlag:I,transition:ne,dirs:me}=x;if(Y=x.el=n(x.type,le,L&&L.is,L),I&8?u(Y,x.children):I&16&&B(x.children,Y,null,U,K,le&&D!=="foreignObject",ee,V),me&&da(x,null,U,"created"),L){for(let ke in L)ke!=="value"&&!fl(ke)&&l(Y,ke,null,L[ke],le,x.children,U,K,Ve);"value"in L&&l(Y,"value",null,L.value),(G=L.onVnodeBeforeMount)&&Xt(G,U,x)}b(Y,x,x.scopeId,ee,U),me&&da(x,null,U,"beforeMount");let ye=(!K||K&&!K.pendingBranch)&&ne&&!ne.persisted;ye&&ne.beforeEnter(Y),r(Y,O,N),((G=L&&L.onVnodeMounted)||ye||me)&&pt(()=>{G&&Xt(G,U,x),ye&&ne.enter(Y),me&&da(x,null,U,"mounted")},K)},b=(x,O,N,U,K)=>{if(N&&p(x,N),U)for(let le=0;le{for(let G=Y;G{let V=O.el=x.el,{patchFlag:Y,dynamicChildren:G,dirs:D}=O;Y|=x.patchFlag&16;let L=x.props||ho,I=O.props||ho,ne;N&&ua(N,!1),(ne=I.onVnodeBeforeUpdate)&&Xt(ne,N,O,x),D&&da(O,x,N,"beforeUpdate"),N&&ua(N,!0);let me=K&&O.type!=="foreignObject";if(G?_(x.dynamicChildren,G,V,N,U,me,le):ee||eo(x,O,V,null,N,U,me,le,!1),Y>0){if(Y&16)E(V,O,L,I,N,U,K);else if(Y&2&&L.class!==I.class&&l(V,"class",null,I.class,K),Y&4&&l(V,"style",L.style,I.style,K),Y&8){let ye=O.dynamicProps;for(let ke=0;ke{ne&&Xt(ne,N,O,x),D&&da(O,x,N,"updated")},U)},_=(x,O,N,U,K,le,ee)=>{for(let V=0;V{if(N!==U){if(N!==ho)for(let V in N)!fl(V)&&!(V in U)&&l(x,V,N[V],null,ee,O.children,K,le,Ve);for(let V in U){if(fl(V))continue;let Y=U[V],G=N[V];Y!==G&&V!=="value"&&l(x,V,G,Y,ee,O.children,K,le,Ve)}"value"in U&&l(x,"value",N.value,U.value)}},se=(x,O,N,U,K,le,ee,V,Y)=>{let G=O.el=x?x.el:i(""),D=O.anchor=x?x.anchor:i(""),{patchFlag:L,dynamicChildren:I,slotScopeIds:ne}=O;ne&&(V=V?V.concat(ne):ne),x==null?(r(G,N,U),r(D,N,U),B(O.children,N,D,K,le,ee,V,Y)):L>0&&L&64&&I&&x.dynamicChildren?(_(x.dynamicChildren,I,N,K,le,ee,V),(O.key!=null||K&&O===K.subTree)&&is(x,O,!0)):eo(x,O,N,D,K,le,ee,V,Y)},Fe=(x,O,N,U,K,le,ee,V,Y)=>{O.slotScopeIds=V,x==null?O.shapeFlag&512?K.ctx.activate(O,N,U,ee,Y):Ee(O,N,U,K,le,ee,Y):pe(x,O,Y)},Ee=(x,O,N,U,K,le,ee)=>{let V=x.component=zO(x,U,K);if(qn(x)&&(V.ctx.renderer=mo),jO(V),V.asyncDep){if(K&&K.registerDep(V,fe),!x.el){let Y=V.subTree=Fo(tt);h(null,Y,O,N)}return}fe(V,x,O,N,K,le,ee)},pe=(x,O,N)=>{let U=O.component=x.component;if(lO(x,O,N))if(U.asyncDep&&!U.asyncResolved){Re(U,O,N);return}else U.next=O,JR(U.update),U.update();else O.el=x.el,U.vnode=O},fe=(x,O,N,U,K,le,ee)=>{let V=()=>{if(x.isMounted){let{next:D,bu:L,u:I,parent:ne,vnode:me}=x,ye=D,ke;ua(x,!1),D?(D.el=me.el,Re(x,D,ee)):D=me,L&&cl(L),(ke=D.props&&D.props.onVnodeBeforeUpdate)&&Xt(ke,ne,D,me),ua(x,!0);let Le=Kd(x),Q=x.subTree;x.subTree=Le,R(Q,Le,f(Q.el),ao(Q),x,K,le),D.el=Le.el,ye===null&&nO(x,Le.el),I&&pt(I,K),(ke=D.props&&D.props.onVnodeUpdated)&&pt(()=>Xt(ke,ne,D,me),K)}else{let D,{el:L,props:I}=O,{bm:ne,m:me,parent:ye}=x,ke=Tl(O);if(ua(x,!1),ne&&cl(ne),!ke&&(D=I&&I.onVnodeBeforeMount)&&Xt(D,ye,O),ua(x,!0),L&&bo){let Le=()=>{x.subTree=Kd(x),bo(L,x.subTree,x,K,null)};ke?O.type.__asyncLoader().then(()=>!x.isUnmounted&&Le()):Le()}else{let Le=x.subTree=Kd(x);R(null,Le,N,U,x,K,le),O.el=Le.el}if(me&&pt(me,K),!ke&&(D=I&&I.onVnodeMounted)){let Le=O;pt(()=>Xt(D,ye,Le),K)}(O.shapeFlag&256||ye&&Tl(ye.vnode)&&ye.vnode.shapeFlag&256)&&x.a&&pt(x.a,K),x.isMounted=!0,O=N=U=null}},Y=x.effect=new Da(V,()=>Ud(G),x.scope),G=x.update=()=>Y.run();G.id=x.uid,ua(x,!0),G()},Re=(x,O,N)=>{O.component=x;let U=x.vnode.props;x.vnode=O,x.next=null,bO(x,O.props,U,N),kO(x,O.children,N),Dr(),Om(),Pr()},eo=(x,O,N,U,K,le,ee,V,Y=!1)=>{let G=x&&x.children,D=x?x.shapeFlag:0,L=O.children,{patchFlag:I,shapeFlag:ne}=O;if(I>0){if(I&128){Qe(G,L,N,U,K,le,ee,V,Y);return}else if(I&256){oo(G,L,N,U,K,le,ee,V,Y);return}}ne&8?(D&16&&Ve(G,K,le),L!==G&&u(N,L)):D&16?ne&16?Qe(G,L,N,U,K,le,ee,V,Y):Ve(G,K,le,!0):(D&8&&u(N,""),ne&16&&B(L,N,U,K,le,ee,V,Y))},oo=(x,O,N,U,K,le,ee,V,Y)=>{x=x||oa,O=O||oa;let G=x.length,D=O.length,L=Math.min(G,D),I;for(I=0;ID?Ve(x,K,le,!0,!1,L):B(O,N,U,K,le,ee,V,Y,L)},Qe=(x,O,N,U,K,le,ee,V,Y)=>{let G=0,D=O.length,L=x.length-1,I=D-1;for(;G<=L&&G<=I;){let ne=x[G],me=O[G]=Y?_r(O[G]):Yt(O[G]);if(fa(ne,me))R(ne,me,N,null,K,le,ee,V,Y);else break;G++}for(;G<=L&&G<=I;){let ne=x[L],me=O[I]=Y?_r(O[I]):Yt(O[I]);if(fa(ne,me))R(ne,me,N,null,K,le,ee,V,Y);else break;L--,I--}if(G>L){if(G<=I){let ne=I+1,me=neI)for(;G<=L;)no(x[G],K,le,!0),G++;else{let ne=G,me=G,ye=new Map;for(G=me;G<=I;G++){let Ze=O[G]=Y?_r(O[G]):Yt(O[G]);Ze.key!=null&&ye.set(Ze.key,G)}let ke,Le=0,Q=I-me+1,ie=!1,Oe=0,He=new Array(Q);for(G=0;G=Q){no(Ze,K,le,!0);continue}let Ye;if(Ze.key!=null)Ye=ye.get(Ze.key);else for(ke=me;ke<=I;ke++)if(He[ke-me]===0&&fa(Ze,O[ke])){Ye=ke;break}Ye===void 0?no(Ze,K,le,!0):(He[Ye-me]=G+1,Ye>=Oe?Oe=Ye:ie=!0,R(Ze,O[Ye],N,null,K,le,ee,V,Y),Le++)}let lo=ie?BO(He):oa;for(ke=lo.length-1,G=Q-1;G>=0;G--){let Ze=me+G,Ye=O[Ze],Xe=Ze+1{let{el:le,type:ee,transition:V,children:Y,shapeFlag:G}=x;if(G&6){fo(x.component.subTree,O,N,U);return}if(G&128){x.suspense.move(O,N,U);return}if(G&64){ee.move(x,O,N,mo);return}if(ee===_o){r(le,O,N);for(let L=0;LV.enter(le),K);else{let{leave:L,delayLeave:I,afterLeave:ne}=V,me=()=>r(le,O,N),ye=()=>{L(le,()=>{me(),ne&&ne()})};I?I(le,me,ye):ye()}else r(le,O,N)},no=(x,O,N,U=!1,K=!1)=>{let{type:le,props:ee,ref:V,children:Y,dynamicChildren:G,shapeFlag:D,patchFlag:L,dirs:I}=x;if(V!=null&&ns(V,null,N,x,!0),D&256){O.ctx.deactivate(x);return}let ne=D&1&&I,me=!Tl(x),ye;if(me&&(ye=ee&&ee.onVnodeBeforeUnmount)&&Xt(ye,O,x),D&6)Ke(x.component,N,U);else{if(D&128){x.suspense.unmount(N,U);return}ne&&da(x,null,O,"beforeUnmount"),D&64?x.type.remove(x,O,N,K,mo,U):G&&(le!==_o||L>0&&L&64)?Ve(G,O,N,!1,!0):(le===_o&&L&(128|256)||!K&&D&16)&&Ve(Y,O,N),U&&Bo(x)}(me&&(ye=ee&&ee.onVnodeUnmounted)||ne)&&pt(()=>{ye&&Xt(ye,O,x),ne&&da(x,null,O,"unmounted")},N)},Bo=x=>{let{type:O,el:N,anchor:U,transition:K}=x;if(O===_o){Eo(N,U);return}if(O===Fl){g(x);return}let le=()=>{a(N),K&&!K.persisted&&K.afterLeave&&K.afterLeave()};if(x.shapeFlag&1&&K&&!K.persisted){let{leave:ee,delayLeave:V}=K,Y=()=>ee(N,le);V?V(x.el,le,Y):Y()}else le()},Eo=(x,O)=>{let N;for(;x!==O;)N=m(x),a(x),x=N;a(O)},Ke=(x,O,N)=>{let{bum:U,scope:K,update:le,subTree:ee,um:V}=x;U&&cl(U),K.stop(),le&&(le.active=!1,no(ee,x,O,N)),V&&pt(V,O),pt(()=>{x.isUnmounted=!0},O),O&&O.pendingBranch&&!O.isUnmounted&&x.asyncDep&&!x.asyncResolved&&x.suspenseId===O.pendingId&&(O.deps--,O.deps===0&&O.resolve())},Ve=(x,O,N,U=!1,K=!1,le=0)=>{for(let ee=le;eex.shapeFlag&6?ao(x.component.subTree):x.shapeFlag&128?x.suspense.next():m(x.anchor||x.el),Ae=(x,O,N)=>{x==null?O._vnode&&no(O._vnode,null,null,!0):R(O._vnode||null,x,O,null,null,null,N),Om(),Fm(),O._vnode=x},mo={p:R,um:no,m:fo,r:Bo,mt:Ee,mc:B,pc:eo,pbc:_,n:ao,o:e},Lo,bo;return o&&([Lo,bo]=o(mo)),{render:Ae,hydrate:Lo,createApp:DO(Ae,Lo)}}function ua({effect:e,update:o},t){e.allowRecurse=o.allowRecurse=t}function is(e,o,t=!1){let r=e.children,a=o.children;if(Ne(r)&&Ne(a))for(let l=0;l>1,e[t[i]]0&&(o[r]=t[l-1]),t[l]=r)}}for(l=t.length,n=t[l-1];l-- >0;)t[l]=n,n=o[n];return t}var EO=e=>e.__isTeleport,Ol=e=>e&&(e.disabled||e.disabled===""),qm=e=>typeof SVGElement!="undefined"&&e instanceof SVGElement,ds=(e,o)=>{let t=e&&e.to;if(Po(t))if(o){let r=o(t);return r}else return null;else return t},LO={__isTeleport:!0,process(e,o,t,r,a,l,n,i,d,s){let{mc:u,pc:f,pbc:m,o:{insert:p,querySelector:c,createText:R,createComment:y}}=s,h=Ol(o.props),{shapeFlag:A,children:z,dynamicChildren:F}=o;if(e==null){let g=o.el=R(""),k=o.anchor=R("");p(g,t,r),p(k,t,r);let S=o.target=ds(o.props,c),b=o.targetAnchor=R("");S&&(p(b,S),n=n||qm(S));let B=(v,_)=>{A&16&&u(z,v,_,a,l,n,i,d)};h?B(t,k):S&&B(S,b)}else{o.el=e.el;let g=o.anchor=e.anchor,k=o.target=e.target,S=o.targetAnchor=e.targetAnchor,b=Ol(e.props),B=b?t:k,v=b?g:S;if(n=n||qm(k),F?(m(e.dynamicChildren,F,B,a,l,n,i),is(e,o,!0)):d||f(e,o,B,v,a,l,n,i,!1),h)b||Xn(o,t,g,s,1);else if((o.props&&o.props.to)!==(e.props&&e.props.to)){let _=o.target=ds(o.props,c);_&&Xn(o,_,null,s,0)}else b&&Xn(o,k,S,s,1)}Zm(o)},remove(e,o,t,r,{um:a,o:{remove:l}},n){let{shapeFlag:i,children:d,anchor:s,targetAnchor:u,target:f,props:m}=e;if(f&&l(u),(n||!Ol(m))&&(l(s),i&16))for(let p=0;p0?_t||oa:null,_O(),bl>0&&_t&&_t.push(e),e}function Ro(e,o,t,r,a,l){return Xm(Oo(e,o,t,r,a,l,!0))}function yl(e,o,t,r,a){return Xm(Fo(e,o,t,r,a,!0))}function Na(e){return e?e.__v_isVNode===!0:!1}function fa(e,o){return e.type===o.type&&e.key===o.key}var ei="__vInternal",Jm=({key:e})=>e!=null?e:null,oi=({ref:e,ref_key:o,ref_for:t})=>e!=null?Po(e)||Ho(e)||ze(e)?{i:ot,r:e,k:o,f:!!t}:e:null;function Oo(e,o=null,t=null,r=0,a=null,l=e===_o?0:1,n=!1,i=!1){let d={__v_isVNode:!0,__v_skip:!0,type:e,props:o,key:o&&Jm(o),ref:o&&oi(o),scopeId:ym,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:ot};return i?(ss(d,t),l&128&&e.normalize(d)):t&&(d.shapeFlag|=Po(t)?8:16),bl>0&&!n&&_t&&(d.patchFlag>0||l&6)&&d.patchFlag!==32&&_t.push(d),d}var Fo=IO;function IO(e,o=null,t=null,r=0,a=null,l=!1){if((!e||e===SO)&&(e=tt),Na(e)){let i=Nr(e,o,!0);return t&&ss(i,t),bl>0&&!l&&_t&&(i.shapeFlag&6?_t[_t.indexOf(e)]=i:_t.push(i)),i.patchFlag|=-2,i}if(ZO(e)&&(e=e.__vccOpts),o){o=HO(o);let{class:i,style:d}=o;i&&!Po(i)&&(o.class=ea(i)),xo(d)&&(Vn(d)&&!Ne(d)&&(d=No({},d)),o.style=br(d))}let n=Po(e)?1:iO(e)?128:EO(e)?64:xo(e)?4:ze(e)?2:0;return Oo(e,o,t,r,a,n,l,!0)}function HO(e){return e?Vn(e)||ei in e?No({},e):e:null}function Nr(e,o,t=!1){let{props:r,ref:a,patchFlag:l,children:n}=e,i=o?vl(r||{},o):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:i,key:i&&Jm(i),ref:o&&o.ref?t&&a?Ne(a)?a.concat(oi(o)):[a,oi(o)]:oi(o):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:n,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:o&&e.type!==_o?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Nr(e.ssContent),ssFallback:e.ssFallback&&Nr(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function _a(e=" ",o=0){return Fo(Jn,null,e,o)}function ti(e="",o=!1){return o?(uo(),yl(tt,null,e)):Fo(tt,null,e)}function Yt(e){return e==null||typeof e=="boolean"?Fo(tt):Ne(e)?Fo(_o,null,e.slice()):typeof e=="object"?_r(e):Fo(Jn,null,String(e))}function _r(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Nr(e)}function ss(e,o){let t=0,{shapeFlag:r}=e;if(o==null)o=null;else if(Ne(o))t=16;else if(typeof o=="object")if(r&(1|64)){let a=o.default;a&&(a._c&&(a._d=!1),ss(e,a()),a._c&&(a._d=!0));return}else{t=32;let a=o._;!a&&!(ei in o)?o._ctx=ot:a===3&&ot&&(ot.slots._===1?o._=1:(o._=2,e.patchFlag|=1024))}else ze(o)?(o={default:o,_ctx:ot},t=32):(o=String(o),r&64?(t=16,o=[_a(o)]):t=8);e.children=o,e.shapeFlag|=t}function vl(...e){let o={};for(let t=0;tZo||ot,Ia=e=>{Zo=e,e.scope.on()},pa=()=>{Zo&&Zo.scope.off(),Zo=null};function ec(e){return e.vnode.shapeFlag&4}var kl=!1;function jO(e,o=!1){kl=o;let{props:t,children:r}=e.vnode,a=ec(e);CO(e,t,a,o),vO(e,r);let l=a?$O(e,o):void 0;return kl=!1,l}function $O(e,o){var t;let r=e.type;e.accessCache=Object.create(null),e.proxy=aa(new Proxy(e.ctx,gO));let{setup:a}=r;if(a){let l=e.setupContext=a.length>1?KO(e):null;Ia(e),Dr();let n=hr(a,e,0,[e.props,l]);if(Pr(),pa(),Ad(n)){if(n.then(pa,pa),o)return n.then(i=>{oc(e,i,o)}).catch(i=>{zn(i,e,0)});e.asyncDep=n}else oc(e,n,o)}else ac(e,o)}function oc(e,o,t){ze(o)?e.type.__ssrInlineRender?e.ssrRender=o:e.render=o:xo(o)&&(e.setupState=Wn(o)),ac(e,t)}var tc,rc;function ac(e,o,t){let r=e.type;if(!e.render){if(!o&&tc&&!r.render){let a=r.template||ts(e).template;if(a){let{isCustomElement:l,compilerOptions:n}=e.appContext.config,{delimiters:i,compilerOptions:d}=r,s=No(No({isCustomElement:l,delimiters:i},n),d);r.render=tc(a,s)}}e.render=r.render||St,rc&&rc(e)}Ia(e),Dr(),wO(e),Pr(),pa()}function UO(e){return new Proxy(e.attrs,{get(o,t){return ft(e,"get","$attrs"),o[t]}})}function KO(e){let o=r=>{e.exposed=r||{}},t;return{get attrs(){return t||(t=UO(e))},slots:e.slots,emit:e.emit,expose:o}}function ri(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Wn(aa(e.exposed)),{get(o,t){if(t in o)return o[t];if(t in Rl)return Rl[t](e)},has(o,t){return t in o||t in Rl}}))}var GO=/(?:^|[-_])(\w)/g,qO=e=>e.replace(GO,o=>o.toUpperCase()).replace(/[-_]/g,"");function QO(e,o=!0){return ze(e)?e.displayName||e.name:e.name||o&&e.__name}function lc(e,o,t=!1){let r=QO(o);if(!r&&o.__file){let a=o.__file.match(/([^/\\]+)\.\w+$/);a&&(r=a[1])}if(!r&&e&&e.parent){let a=l=>{for(let n in l)if(l[n]===o)return n};r=a(e.components||e.parent.type.components)||a(e.appContext.components)}return r?qO(r):t?"App":"Anonymous"}function ZO(e){return ze(e)&&"__vccOpts"in e}var W=(e,o)=>Sm(e,o,kl);function w(e,o,t){let r=arguments.length;return r===2?xo(o)&&!Ne(o)?Na(o)?Fo(e,null,[o]):Fo(e,o):Fo(e,null,o):(r>3?t=Array.prototype.slice.call(arguments,2):r===3&&Na(t)&&(t=[t]),Fo(e,o,t))}var YO=Symbol(""),XO=()=>{{let e=Ce(YO);return e}};var JO="3.2.45";var eF="http://www.w3.org/2000/svg",ma=typeof document!="undefined"?document:null,nc=ma&&ma.createElement("template"),oF={insert:(e,o,t)=>{o.insertBefore(e,t||null)},remove:e=>{let o=e.parentNode;o&&o.removeChild(e)},createElement:(e,o,t,r)=>{let a=o?ma.createElementNS(eF,e):ma.createElement(e,t?{is:t}:void 0);return e==="select"&&r&&r.multiple!=null&&a.setAttribute("multiple",r.multiple),a},createText:e=>ma.createTextNode(e),createComment:e=>ma.createComment(e),setText:(e,o)=>{e.nodeValue=o},setElementText:(e,o)=>{e.textContent=o},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ma.querySelector(e),setScopeId(e,o){e.setAttribute(o,"")},insertStaticContent(e,o,t,r,a,l){let n=t?t.previousSibling:o.lastChild;if(a&&(a===l||a.nextSibling))for(;o.insertBefore(a.cloneNode(!0),t),!(a===l||!(a=a.nextSibling)););else{nc.innerHTML=r?`${e}`:e;let i=nc.content;if(r){let d=i.firstChild;for(;d.firstChild;)i.appendChild(d.firstChild);i.removeChild(d)}o.insertBefore(i,t)}return[n?n.nextSibling:o.firstChild,t?t.previousSibling:o.lastChild]}};function tF(e,o,t){let r=e._vtc;r&&(o=(o?[o,...r]:[...r]).join(" ")),o==null?e.removeAttribute("class"):t?e.setAttribute("class",o):e.className=o}function rF(e,o,t){let r=e.style,a=Po(t);if(t&&!a){for(let l in t)us(r,l,t[l]);if(o&&!Po(o))for(let l in o)t[l]==null&&us(r,l,"")}else{let l=r.display;a?o!==t&&(r.cssText=t):o&&e.removeAttribute("style"),"_vod"in e&&(r.display=l)}}var ic=/\s*!important$/;function us(e,o,t){if(Ne(t))t.forEach(r=>us(e,o,r));else if(t==null&&(t=""),o.startsWith("--"))e.setProperty(o,t);else{let r=aF(e,o);ic.test(t)?e.setProperty(vr(r),t.replace(ic,""),"important"):e[r]=t}}var dc=["Webkit","Moz","ms"],fs={};function aF(e,o){let t=fs[o];if(t)return t;let r=Kt(o);if(r!=="filter"&&r in e)return fs[o]=r;r=pl(r);for(let a=0;aps||(fF.then(()=>ps=0),ps=Date.now());function mF(e,o){let t=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=t.attached)return;gt(cF(r,t.value),o,5,[r])};return t.value=e,t.attached=pF(),t}function cF(e,o){if(Ne(o)){let t=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{t.call(e),e._stopped=!0},o.map(r=>a=>!a._stopped&&r&&r(a))}else return o}var fc=/^on[a-z]/,hF=(e,o,t,r,a=!1,l,n,i,d)=>{o==="class"?tF(e,r,a):o==="style"?rF(e,t,r):va(o)?ul(o)||sF(e,o,t,r,n):(o[0]==="."?(o=o.slice(1),!0):o[0]==="^"?(o=o.slice(1),!1):xF(e,o,r,a))?nF(e,o,r,l,n,i,d):(o==="true-value"?e._trueValue=r:o==="false-value"&&(e._falseValue=r),lF(e,o,r,a))};function xF(e,o,t,r){return r?!!(o==="innerHTML"||o==="textContent"||o in e&&fc.test(o)&&ze(t)):o==="spellcheck"||o==="draggable"||o==="translate"||o==="form"||o==="list"&&e.tagName==="INPUT"||o==="type"&&e.tagName==="TEXTAREA"||fc.test(o)&&Po(t)?!1:o in e}function pc(e){let o=vt();if(!o)return;let t=o.ut=(a=e(o.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${o.uid}"]`)).forEach(l=>cs(l,a))},r=()=>{let a=e(o.proxy);ms(o.subTree,a),t(a)};km(r),so(()=>{let a=new MutationObserver(r);a.observe(o.subTree.el.parentNode,{childList:!0}),wr(()=>a.disconnect())})}function ms(e,o){if(e.shapeFlag&128){let t=e.suspense;e=t.activeBranch,t.pendingBranch&&!t.isHydrating&&t.effects.push(()=>{ms(t.activeBranch,o)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)cs(e.el,o);else if(e.type===_o)e.children.forEach(t=>ms(t,o));else if(e.type===Fl){let{el:t,anchor:r}=e;for(;t&&(cs(t,o),t!==r);)t=t.nextSibling}}function cs(e,o){if(e.nodeType===1){let t=e.style;for(let r in o)t.setProperty(`--${r}`,o[r])}}var Ir="transition",Al="animation",It=(e,{slots:o})=>w(qd,hc(e),o);It.displayName="Transition";var mc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},SF=It.props=No({},qd.props,mc),ca=(e,o=[])=>{Ne(e)?e.forEach(t=>t(...o)):e&&e(...o)},cc=e=>e?Ne(e)?e.some(o=>o.length>1):e.length>1:!1;function hc(e){let o={};for(let E in e)E in mc||(o[E]=e[E]);if(e.css===!1)return o;let{name:t="v",type:r,duration:a,enterFromClass:l=`${t}-enter-from`,enterActiveClass:n=`${t}-enter-active`,enterToClass:i=`${t}-enter-to`,appearFromClass:d=l,appearActiveClass:s=n,appearToClass:u=i,leaveFromClass:f=`${t}-leave-from`,leaveActiveClass:m=`${t}-leave-active`,leaveToClass:p=`${t}-leave-to`}=e,c=gF(a),R=c&&c[0],y=c&&c[1],{onBeforeEnter:h,onEnter:A,onEnterCancelled:z,onLeave:F,onLeaveCancelled:g,onBeforeAppear:k=h,onAppear:S=A,onAppearCancelled:b=z}=o,B=(E,se,Fe)=>{Hr(E,se?u:i),Hr(E,se?s:n),Fe&&Fe()},v=(E,se)=>{E._isLeaving=!1,Hr(E,f),Hr(E,p),Hr(E,m),se&&se()},_=E=>(se,Fe)=>{let Ee=E?S:A,pe=()=>B(se,E,Fe);ca(Ee,[se,pe]),xc(()=>{Hr(se,E?d:l),Tr(se,E?u:i),cc(Ee)||Sc(se,r,R,pe)})};return No(o,{onBeforeEnter(E){ca(h,[E]),Tr(E,l),Tr(E,n)},onBeforeAppear(E){ca(k,[E]),Tr(E,d),Tr(E,s)},onEnter:_(!1),onAppear:_(!0),onLeave(E,se){E._isLeaving=!0;let Fe=()=>v(E,se);Tr(E,f),Rc(),Tr(E,m),xc(()=>{!E._isLeaving||(Hr(E,f),Tr(E,p),cc(F)||Sc(E,r,y,Fe))}),ca(F,[E,Fe])},onEnterCancelled(E){B(E,!1),ca(z,[E])},onAppearCancelled(E){B(E,!0),ca(b,[E])},onLeaveCancelled(E){v(E),ca(g,[E])}})}function gF(e){if(e==null)return null;if(xo(e))return[hs(e.enter),hs(e.leave)];{let o=hs(e);return[o,o]}}function hs(e){return Aa(e)}function Tr(e,o){o.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e._vtc||(e._vtc=new Set)).add(o)}function Hr(e,o){o.split(/\s+/).forEach(r=>r&&e.classList.remove(r));let{_vtc:t}=e;t&&(t.delete(o),t.size||(e._vtc=void 0))}function xc(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var wF=0;function Sc(e,o,t,r){let a=e._endId=++wF,l=()=>{a===e._endId&&r()};if(t)return setTimeout(l,t);let{type:n,timeout:i,propCount:d}=gc(e,o);if(!n)return r();let s=n+"end",u=0,f=()=>{e.removeEventListener(s,m),l()},m=p=>{p.target===e&&++u>=d&&f()};setTimeout(()=>{u(t[c]||"").split(", "),a=r(`${Ir}Delay`),l=r(`${Ir}Duration`),n=wc(a,l),i=r(`${Al}Delay`),d=r(`${Al}Duration`),s=wc(i,d),u=null,f=0,m=0;o===Ir?n>0&&(u=Ir,f=n,m=l.length):o===Al?s>0&&(u=Al,f=s,m=d.length):(f=Math.max(n,s),u=f>0?n>s?Ir:Al:null,m=u?u===Ir?l.length:d.length:0);let p=u===Ir&&/\b(transform|all)(,|$)/.test(r(`${Ir}Property`).toString());return{type:u,timeout:f,propCount:m,hasTransform:p}}function wc(e,o){for(;e.lengthTc(t)+Tc(e[r])))}function Tc(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Rc(){return document.body.offsetHeight}var Oc=new WeakMap,Fc=new WeakMap,TF={name:"TransitionGroup",props:No({},SF,{tag:String,moveClass:String}),setup(e,{slots:o}){let t=vt(),r=Gd(),a,l;return Xd(()=>{if(!a.length)return;let n=e.moveClass||`${e.name||"v"}-move`;if(!CF(a[0].el,t.vnode.el,n))return;a.forEach(RF),a.forEach(OF);let i=a.filter(FF);Rc(),i.forEach(d=>{let s=d.el,u=s.style;Tr(s,n),u.transform=u.webkitTransform=u.transitionDuration="";let f=s._moveCb=m=>{m&&m.target!==s||(!m||/transform$/.test(m.propertyName))&&(s.removeEventListener("transitionend",f),s._moveCb=null,Hr(s,n))};s.addEventListener("transitionend",f)})}),()=>{let n=qe(e),i=hc(n),d=n.tag||_o;a=l,l=o.default?Gn(o.default()):[];for(let s=0;s{n.split(/\s+/).forEach(i=>i&&r.classList.remove(i))}),t.split(/\s+/).forEach(n=>n&&r.classList.add(n)),r.style.display="none";let a=o.nodeType===1?o:o.parentNode;a.appendChild(r);let{hasTransform:l}=gc(r);return a.removeChild(r),l}var bF=No({patchProp:hF},oF),bc;function yF(){return bc||(bc=Gm(bF))}var yc=(...e)=>{let o=yF().createApp(...e),{mount:t}=o;return o.mount=r=>{let a=vF(r);if(!a)return;let l=o._component;!ze(l)&&!l.render&&!l.template&&(l.template=a.innerHTML),a.innerHTML="";let n=t(a,!1,a instanceof SVGElement);return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),n},o};function vF(e){return Po(e)?document.querySelector(e):e}var ai=[],vc=new WeakMap;function kF(){ai.forEach(e=>e(...vc.get(e))),ai=[]}function Dl(e,...o){vc.set(e,o),!ai.includes(e)&&ai.push(e)===1&&requestAnimationFrame(kF)}function li(e,o){let{target:t}=e;for(;t;){if(t.dataset&&t.dataset[o]!==void 0)return!0;t=t.parentElement}return!1}function ni(e){return typeof e=="string"?e.endsWith("px")?Number(e.slice(0,e.length-2)):Number(e):e}function Vr(e){if(e!=null)return typeof e=="number"?`${e}px`:e.endsWith("px")?e:`${e}px`}function Ha(e,o){let t=e.trim().split(/\s+/g),r={top:t[0]};switch(t.length){case 1:r.right=t[0],r.bottom=t[0],r.left=t[0];break;case 2:r.right=t[1],r.left=t[1],r.bottom=t[0];break;case 3:r.right=t[1],r.bottom=t[2],r.left=t[1];break;case 4:r.right=t[1],r.bottom=t[2],r.left=t[3];break;default:throw new Error("[seemly/getMargin]:"+e+" is not a valid value.")}return o===void 0?r:r[o]}var xs={black:"#000",silver:"#C0C0C0",gray:"#808080",white:"#FFF",maroon:"#800000",red:"#F00",purple:"#800080",fuchsia:"#F0F",green:"#008000",lime:"#0F0",olive:"#808000",yellow:"#FF0",navy:"#000080",blue:"#00F",teal:"#008080",aqua:"#0FF",transparent:"#0000"};var Jt="^\\s*",er="\\s*$",Wr="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))%\\s*",wt="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))\\s*",ha="([0-9A-Fa-f])",xa="([0-9A-Fa-f]{2})",lB=new RegExp(`${Jt}hsl\\s*\\(${wt},${Wr},${Wr}\\)${er}`),nB=new RegExp(`${Jt}hsv\\s*\\(${wt},${Wr},${Wr}\\)${er}`),iB=new RegExp(`${Jt}hsla\\s*\\(${wt},${Wr},${Wr},${wt}\\)${er}`),dB=new RegExp(`${Jt}hsva\\s*\\(${wt},${Wr},${Wr},${wt}\\)${er}`),AF=new RegExp(`${Jt}rgb\\s*\\(${wt},${wt},${wt}\\)${er}`),DF=new RegExp(`${Jt}rgba\\s*\\(${wt},${wt},${wt},${wt}\\)${er}`),PF=new RegExp(`${Jt}#${ha}${ha}${ha}${er}`),MF=new RegExp(`${Jt}#${xa}${xa}${xa}${er}`),BF=new RegExp(`${Jt}#${ha}${ha}${ha}${ha}${er}`),EF=new RegExp(`${Jt}#${xa}${xa}${xa}${xa}${er}`);function mt(e){return parseInt(e,16)}function kt(e){try{let o;if(o=MF.exec(e))return[mt(o[1]),mt(o[2]),mt(o[3]),1];if(o=AF.exec(e))return[Yo(o[1]),Yo(o[5]),Yo(o[9]),1];if(o=DF.exec(e))return[Yo(o[1]),Yo(o[5]),Yo(o[9]),Va(o[13])];if(o=PF.exec(e))return[mt(o[1]+o[1]),mt(o[2]+o[2]),mt(o[3]+o[3]),1];if(o=EF.exec(e))return[mt(o[1]),mt(o[2]),mt(o[3]),Va(mt(o[4])/255)];if(o=BF.exec(e))return[mt(o[1]+o[1]),mt(o[2]+o[2]),mt(o[3]+o[3]),Va(mt(o[4]+o[4])/255)];if(e in xs)return kt(xs[e]);throw new Error(`[seemly/rgba]: Invalid color value ${e}.`)}catch(o){throw o}}function LF(e){return e>1?1:e<0?0:e}function Ss(e,o,t,r){return`rgba(${Yo(e)}, ${Yo(o)}, ${Yo(t)}, ${LF(r)})`}function gs(e,o,t,r,a){return Yo((e*o*(1-r)+t*r)/a)}function ge(e,o){Array.isArray(e)||(e=kt(e)),Array.isArray(o)||(o=kt(o));let t=e[3],r=o[3],a=Va(t+r-t*r);return Ss(gs(e[0],t,o[0],r,a),gs(e[1],t,o[1],r,a),gs(e[2],t,o[2],r,a),a)}function te(e,o){let[t,r,a,l=1]=Array.isArray(e)?e:kt(e);return o.alpha?Ss(t,r,a,o.alpha):Ss(t,r,a,l)}function Rr(e,o){let[t,r,a,l=1]=Array.isArray(e)?e:kt(e),{lightness:n=1,alpha:i=1}=o;return kc([t*n,r*n,a*n,l*i])}function Va(e){let o=Math.round(Number(e)*100)/100;return o>1?1:o<0?0:o}function Yo(e){let o=Math.round(Number(e));return o>255?255:o<0?0:o}function kc(e){let[o,t,r]=e;return 3 in e?`rgba(${Yo(o)}, ${Yo(t)}, ${Yo(r)}, ${Va(e[3])})`:`rgba(${Yo(o)}, ${Yo(t)}, ${Yo(r)}, 1)`}function ws(e=8){return Math.random().toString(16).slice(2,2+e)}function Ts(e,o){let t=[];for(let r=0;rbe(t,...o));else return e(...o)}var Wa=(e,...o)=>typeof e=="function"?e(...o):typeof e=="string"?_a(e):typeof e=="number"?_a(String(e)):null;var $B=new Set;function ii(e,o){console.error(`[naive/${e}]: ${o}`)}function di(e,o){throw new Error(`[naive/${e}]: ${o}`)}function za(e){return typeof e=="string"?`s-${e}`:`n-${e}`}function So(e){return e}function Pl(e){return e.some(o=>Na(o)?!(o.type===tt||o.type===_o&&!Pl(o.children)):!0)?e:null}function or(e,o){return e&&Pl(e())||o()}function si(e,o,t){return e&&Pl(e(o))||t(o)}function tr(e,o){let t=e&&Pl(e());return o(t||null)}function ui(e){return!(e&&Pl(e()))}function Ml(e){return e.replace(/#|\(|\)|,|\s/g,"_")}function _F(e){let o=0;for(let t=0;t{let a=_F(r);if(a){if(a===1){e.forEach(n=>{t.push(r.replace("&",n))});return}}else{e.forEach(n=>{t.push((n&&n+" ")+r)});return}let l=[r];for(;a--;){let n=[];l.forEach(i=>{e.forEach(d=>{n.push(i.replace("&",d))})}),l=n}l.forEach(n=>t.push(n))}),t}function VF(e,o){let t=[];return o.split(Ac).forEach(r=>{e.forEach(a=>{t.push((a&&a+" ")+r)})}),t}function Dc(e){let o=[""];return e.forEach(t=>{t=t&&t.trim(),!!t&&(t.includes("&")?o=HF(o,t):o=VF(o,t))}),o.join(", ").replace(IF," ")}function Rs(e){if(!e)return;let o=e.parentElement;o&&o.removeChild(e)}function Sa(e){return document.querySelector(`style[cssr-id="${e}"]`)}function Pc(e){let o=document.createElement("style");return o.setAttribute("cssr-id",e),o}function Bl(e){return e?/^\s*@(s|m)/.test(e):!1}var WF=/[A-Z]/g;function Mc(e){return e.replace(WF,o=>"-"+o.toLowerCase())}function zF(e,o=" "){return typeof e=="object"&&e!==null?` { -`+Object.entries(e).map(t=>o+` ${Mc(t[0])}: ${t[1]};`).join(` +var Hy=Object.create;var Oa=Object.defineProperty;var Vy=Object.getOwnPropertyDescriptor;var Fy=Object.getOwnPropertyNames;var jy=Object.getPrototypeOf,Wy=Object.prototype.hasOwnProperty;var zo=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ky=(e,t)=>{for(var o in t)Oa(e,o,{get:t[o],enumerable:!0})},dp=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Fy(t))!Wy.call(e,n)&&n!==o&&Oa(e,n,{get:()=>t[n],enumerable:!(r=Vy(t,n))||r.enumerable});return e};var Uy=(e,t,o)=>(o=e!=null?Hy(jy(e)):{},dp(t||!e||!e.__esModule?Oa(o,"default",{value:e,enumerable:!0}):o,e)),qy=e=>dp(Oa({},"__esModule",{value:!0}),e);var Hx=zo((qi,Bx)=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});qi.default=void 0;var ZE={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},QE=function(e,t,o){var r,n=ZE[e];return typeof n=="string"?r=n:t===1?r=n.one:r=n.other.replace("{{count}}",t.toString()),o!=null&&o.addSuffix?o.comparison&&o.comparison>0?"in "+r:r+" ago":r},JE=QE;qi.default=JE;Bx.exports=qi.default});var Fx=zo((Xl,Vx)=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.default=eD;function eD(e){return function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=t.width?String(t.width):e.defaultWidth,r=e.formats[o]||e.formats[e.defaultWidth];return r}}Vx.exports=Xl.default});var Wx=zo((Gi,jx)=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.default=void 0;var dd=tD(Fx());function tD(e){return e&&e.__esModule?e:{default:e}}var oD={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},rD={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},nD={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},iD={date:(0,dd.default)({formats:oD,defaultWidth:"full"}),time:(0,dd.default)({formats:rD,defaultWidth:"full"}),dateTime:(0,dd.default)({formats:nD,defaultWidth:"full"})},aD=iD;Gi.default=aD;jx.exports=Gi.default});var Ux=zo((Yi,Kx)=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.default=void 0;var lD={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},sD=function(e,t,o,r){return lD[e]},cD=sD;Yi.default=cD;Kx.exports=Yi.default});var Gx=zo((Zl,qx)=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=dD;function dD(e){return function(t,o){var r=o||{},n=r.context?String(r.context):"standalone",i;if(n==="formatting"&&e.formattingValues){var a=e.defaultFormattingWidth||e.defaultWidth,l=r.width?String(r.width):a;i=e.formattingValues[l]||e.formattingValues[a]}else{var s=e.defaultWidth,c=r.width?String(r.width):e.defaultWidth;i=e.values[c]||e.values[s]}var d=e.argumentCallback?e.argumentCallback(t):t;return i[d]}}qx.exports=Zl.default});var Xx=zo((Zi,Yx)=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.default=void 0;var Xi=uD(Gx());function uD(e){return e&&e.__esModule?e:{default:e}}var fD={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},pD={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},mD={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},hD={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},gD={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},xD={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},vD=function(e,t){var o=Number(e),r=o%100;if(r>20||r<10)switch(r%10){case 1:return o+"st";case 2:return o+"nd";case 3:return o+"rd"}return o+"th"},bD={ordinalNumber:vD,era:(0,Xi.default)({values:fD,defaultWidth:"wide"}),quarter:(0,Xi.default)({values:pD,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:(0,Xi.default)({values:mD,defaultWidth:"wide"}),day:(0,Xi.default)({values:hD,defaultWidth:"wide"}),dayPeriod:(0,Xi.default)({values:gD,defaultWidth:"wide",formattingValues:xD,defaultFormattingWidth:"wide"})},yD=bD;Zi.default=yD;Yx.exports=Zi.default});var Qx=zo((Ql,Zx)=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.default=CD;function CD(e){return function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=o.width,n=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],i=t.match(n);if(!i)return null;var a=i[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],s=Array.isArray(l)?kD(l,function(u){return u.test(a)}):wD(l,function(u){return u.test(a)}),c;c=e.valueCallback?e.valueCallback(s):s,c=o.valueCallback?o.valueCallback(c):c;var d=t.slice(a.length);return{value:c,rest:d}}}function wD(e,t){for(var o in e)if(e.hasOwnProperty(o)&&t(e[o]))return o}function kD(e,t){for(var o=0;o{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.default=SD;function SD(e){return function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.match(e.matchPattern);if(!r)return null;var n=r[0],i=t.match(e.parsePattern);if(!i)return null;var a=e.valueCallback?e.valueCallback(i[0]):i[0];a=o.valueCallback?o.valueCallback(a):a;var l=t.slice(n.length);return{value:a,rest:l}}}Jx.exports=Jl.default});var rv=zo((Ji,ov)=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.default=void 0;var Qi=tv(Qx()),_D=tv(ev());function tv(e){return e&&e.__esModule?e:{default:e}}var ED=/^(\d+)(th|st|nd|rd)?/i,DD=/\d+/i,TD={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},OD={any:[/^b/i,/^(a|c)/i]},PD={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ND={any:[/1/i,/2/i,/3/i,/4/i]},RD={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ID={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},AD={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},MD={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},$D={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},LD={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},zD={ordinalNumber:(0,_D.default)({matchPattern:ED,parsePattern:DD,valueCallback:function(e){return parseInt(e,10)}}),era:(0,Qi.default)({matchPatterns:TD,defaultMatchWidth:"wide",parsePatterns:OD,defaultParseWidth:"any"}),quarter:(0,Qi.default)({matchPatterns:PD,defaultMatchWidth:"wide",parsePatterns:ND,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:(0,Qi.default)({matchPatterns:RD,defaultMatchWidth:"wide",parsePatterns:ID,defaultParseWidth:"any"}),day:(0,Qi.default)({matchPatterns:AD,defaultMatchWidth:"wide",parsePatterns:MD,defaultParseWidth:"any"}),dayPeriod:(0,Qi.default)({matchPatterns:$D,defaultMatchWidth:"any",parsePatterns:LD,defaultParseWidth:"any"})},BD=zD;Ji.default=BD;ov.exports=Ji.default});var iv=zo((ta,nv)=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.default=void 0;var HD=ea(Hx()),VD=ea(Wx()),FD=ea(Ux()),jD=ea(Xx()),WD=ea(rv());function ea(e){return e&&e.__esModule?e:{default:e}}var KD={code:"en-US",formatDistance:HD.default,formatLong:VD.default,formatRelative:FD.default,localize:jD.default,match:WD.default,options:{weekStartsOn:0,firstWeekContainsDate:1}},UD=KD;ta.default=UD;nv.exports=ta.default});var QP={};Ky(QP,{default:()=>ZP});module.exports=qy(QP);var ni=require("obsidian");var G0=require("obsidian");function Sn(e,t){let o=Object.create(null),r=e.split(",");for(let n=0;n!!o[n.toLowerCase()]:n=>!!o[n]}function vr(e){if(Ne(e)){let t={};for(let o=0;o{if(o){let r=o.split(Yy);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function qr(e){let t="";if(yt(e))t=e;else if(Ne(e))for(let o=0;oyt(e)?e:e==null?"":Ne(e)||it(e)&&(e.toString===gp||!Ae(e.toString))?JSON.stringify(e,mp,2):String(e),mp=(e,t)=>t&&t.__v_isRef?mp(e,t.value):br(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[r,n])=>(o[`${r} =>`]=n,o),{})}:Na(t)?{[`Set(${t.size})`]:[...t.values()]}:it(t)&&!Ne(t)&&!Fs(t)?String(t):t,nt={},Gr=[],io=()=>{},hp=()=>!1,Qy=/^on[^a-z]/,_n=e=>Qy.test(e),ci=e=>e.startsWith("onUpdate:"),kt=Object.assign,Pa=(e,t)=>{let o=e.indexOf(t);o>-1&&e.splice(o,1)},Jy=Object.prototype.hasOwnProperty,Ue=(e,t)=>Jy.call(e,t),Ne=Array.isArray,br=e=>Ia(e)==="[object Map]",Na=e=>Ia(e)==="[object Set]";var Ae=e=>typeof e=="function",yt=e=>typeof e=="string",Ra=e=>typeof e=="symbol",it=e=>e!==null&&typeof e=="object",Hs=e=>it(e)&&Ae(e.then)&&Ae(e.catch),gp=Object.prototype.toString,Ia=e=>gp.call(e),Vs=e=>Ia(e).slice(8,-1),Fs=e=>Ia(e)==="[object Object]",Aa=e=>yt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,di=Sn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var Ma=e=>{let t=Object.create(null);return o=>t[o]||(t[o]=e(o))},eC=/-(\w)/g,Bo=Ma(e=>e.replace(eC,(t,o)=>o?o.toUpperCase():"")),tC=/\B([A-Z])/g,yr=Ma(e=>e.replace(tC,"-$1").toLowerCase()),ui=Ma(e=>e.charAt(0).toUpperCase()+e.slice(1)),fi=Ma(e=>e?`on${ui(e)}`:""),Yr=(e,t)=>!Object.is(e,t),pi=(e,t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:o})},Dn=e=>{let t=parseFloat(e);return isNaN(t)?e:t},up,xp=()=>up||(up=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});var Ho,hi=class{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Ho,!t&&Ho&&(this.index=(Ho.scopes||(Ho.scopes=[])).push(this)-1)}run(t){if(this.active){let o=Ho;try{return Ho=this,t()}finally{Ho=o}}}on(){Ho=this}off(){Ho=this.parent}stop(t){if(this.active){let o,r;for(o=0,r=this.effects.length;o{let t=new Set(e);return t.w=0,t.n=0,t},_p=e=>(e.w&kr)>0,Ep=e=>(e.n&kr)>0,rC=({deps:e})=>{if(e.length)for(let t=0;t{let{deps:t}=e;if(t.length){let o=0;for(let r=0;r{(u==="length"||u>=c)&&l.push(d)})}else switch(o!==void 0&&l.push(a.get(o)),t){case"add":Ne(e)?Aa(o)&&l.push(a.get("length")):(l.push(a.get(Xr)),br(e)&&l.push(a.get(Ks)));break;case"delete":Ne(e)||(l.push(a.get(Xr)),br(e)&&l.push(a.get(Ks)));break;case"set":br(e)&&l.push(a.get(Xr));break}let s=void 0;if(l.length===1)l[0]&&Us(l[0]);else{let c=[];for(let d of l)d&&c.push(...d);Us(Xs(c))}}function Us(e,t){let o=Ne(e)?e:[...e];for(let r of o)r.computed&&bp(r,t);for(let r of o)r.computed||bp(r,t)}function bp(e,t){(e!==Eo||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}var iC=Sn("__proto__,__v_isRef,__isVue"),Op=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ra)),aC=Zs(),lC=Zs(!1,!0),sC=Zs(!0);var yp=cC();function cC(){let e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...o){let r=Ve(this);for(let i=0,a=this.length;i{e[t]=function(...o){_r();let r=Ve(this)[t].apply(this,o);return Er(),r}}),e}function Zs(e=!1,t=!1){return function(r,n,i){if(n==="__v_isReactive")return!e;if(n==="__v_isReadonly")return e;if(n==="__v_isShallow")return t;if(n==="__v_raw"&&i===(e?t?_C:Ap:t?Ip:Rp).get(r))return r;let a=Ne(r);if(!e&&a&&Ue(yp,n))return Reflect.get(yp,n,i);let l=Reflect.get(r,n,i);return(Ra(n)?Op.has(n):iC(n))||(e||Jt(r,"get",n),t)?l:Et(l)?a&&Aa(n)?l:l.value:it(l)?e?Dr(l):Fo(l):l}}var dC=Pp(),uC=Pp(!0);function Pp(e=!1){return function(o,r,n,i){let a=o[r];if(Sr(a)&&Et(a)&&!Et(n))return!1;if(!e&&(!Tn(n)&&!Sr(n)&&(a=Ve(a),n=Ve(n)),!Ne(o)&&Et(a)&&!Et(n)))return a.value=n,!0;let l=Ne(o)&&Aa(r)?Number(r)e,Va=e=>Reflect.getPrototypeOf(e);function $a(e,t,o=!1,r=!1){e=e.__v_raw;let n=Ve(e),i=Ve(t);o||(t!==i&&Jt(n,"get",t),Jt(n,"get",i));let{has:a}=Va(n),l=r?Qs:o?oc:gi;if(a.call(n,t))return l(e.get(t));if(a.call(n,i))return l(e.get(i));e!==n&&e.get(t)}function La(e,t=!1){let o=this.__v_raw,r=Ve(o),n=Ve(e);return t||(e!==n&&Jt(r,"has",e),Jt(r,"has",n)),e===n?o.has(e):o.has(e)||o.has(n)}function za(e,t=!1){return e=e.__v_raw,!t&&Jt(Ve(e),"iterate",Xr),Reflect.get(e,"size",e)}function Cp(e){e=Ve(e);let t=Ve(this);return Va(t).has.call(t,e)||(t.add(e),Vo(t,"add",e,e)),this}function wp(e,t){t=Ve(t);let o=Ve(this),{has:r,get:n}=Va(o),i=r.call(o,e);i||(e=Ve(e),i=r.call(o,e));let a=n.call(o,e);return o.set(e,t),i?Yr(t,a)&&Vo(o,"set",e,t,a):Vo(o,"add",e,t),this}function kp(e){let t=Ve(this),{has:o,get:r}=Va(t),n=o.call(t,e);n||(e=Ve(e),n=o.call(t,e));let i=r?r.call(t,e):void 0,a=t.delete(e);return n&&Vo(t,"delete",e,void 0,i),a}function Sp(){let e=Ve(this),t=e.size!==0,o=void 0,r=e.clear();return t&&Vo(e,"clear",void 0,void 0,o),r}function Ba(e,t){return function(r,n){let i=this,a=i.__v_raw,l=Ve(a),s=t?Qs:e?oc:gi;return!e&&Jt(l,"iterate",Xr),a.forEach((c,d)=>r.call(n,s(c),s(d),i))}}function Ha(e,t,o){return function(...r){let n=this.__v_raw,i=Ve(n),a=br(i),l=e==="entries"||e===Symbol.iterator&&a,s=e==="keys"&&a,c=n[e](...r),d=o?Qs:t?oc:gi;return!t&&Jt(i,"iterate",s?Ks:Xr),{next(){let{value:u,done:p}=c.next();return p?{value:u,done:p}:{value:l?[d(u[0]),d(u[1])]:d(u),done:p}},[Symbol.iterator](){return this}}}}function Cr(e){return function(...t){return e==="delete"?!1:this}}function xC(){let e={get(i){return $a(this,i)},get size(){return za(this)},has:La,add:Cp,set:wp,delete:kp,clear:Sp,forEach:Ba(!1,!1)},t={get(i){return $a(this,i,!1,!0)},get size(){return za(this)},has:La,add:Cp,set:wp,delete:kp,clear:Sp,forEach:Ba(!1,!0)},o={get(i){return $a(this,i,!0)},get size(){return za(this,!0)},has(i){return La.call(this,i,!0)},add:Cr("add"),set:Cr("set"),delete:Cr("delete"),clear:Cr("clear"),forEach:Ba(!0,!1)},r={get(i){return $a(this,i,!0,!0)},get size(){return za(this,!0)},has(i){return La.call(this,i,!0)},add:Cr("add"),set:Cr("set"),delete:Cr("delete"),clear:Cr("clear"),forEach:Ba(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Ha(i,!1,!1),o[i]=Ha(i,!0,!1),t[i]=Ha(i,!1,!0),r[i]=Ha(i,!0,!0)}),[e,o,t,r]}var[vC,bC,yC,CC]=xC();function Js(e,t){let o=t?e?CC:yC:e?bC:vC;return(r,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?r:Reflect.get(Ue(o,n)&&n in r?o:r,n,i)}var wC={get:Js(!1,!1)},kC={get:Js(!1,!0)},SC={get:Js(!0,!1)};var Rp=new WeakMap,Ip=new WeakMap,Ap=new WeakMap,_C=new WeakMap;function EC(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function DC(e){return e.__v_skip||!Object.isExtensible(e)?0:EC(Vs(e))}function Fo(e){return Sr(e)?e:tc(e,!1,Np,wC,Rp)}function ec(e){return tc(e,!1,gC,kC,Ip)}function Dr(e){return tc(e,!0,hC,SC,Ap)}function tc(e,t,o,r,n){if(!it(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let i=n.get(e);if(i)return i;let a=DC(e);if(a===0)return e;let l=new Proxy(e,a===2?r:o);return n.set(e,l),l}function Tr(e){return Sr(e)?Tr(e.__v_raw):!!(e&&e.__v_isReactive)}function Sr(e){return!!(e&&e.__v_isReadonly)}function Tn(e){return!!(e&&e.__v_isShallow)}function Fa(e){return Tr(e)||Sr(e)}function Ve(e){let t=e&&e.__v_raw;return t?Ve(t):e}function Qr(e){return En(e,"__v_skip",!0),e}var gi=e=>it(e)?Fo(e):e,oc=e=>it(e)?Dr(e):e;function Mp(e){wr&&Eo&&(e=Ve(e),Tp(e.dep||(e.dep=Xs())))}function $p(e,t){e=Ve(e),e.dep&&Us(e.dep)}function Et(e){return!!(e&&e.__v_isRef===!0)}function X(e){return TC(e,!1)}function TC(e,t){return Et(e)?e:new qs(e,t)}var qs=class{constructor(t,o){this.__v_isShallow=o,this.dep=void 0,this.__v_isRef=!0,this._rawValue=o?t:Ve(t),this._value=o?t:gi(t)}get value(){return Mp(this),this._value}set value(t){let o=this.__v_isShallow||Tn(t)||Sr(t);t=o?t:Ve(t),Yr(t,this._rawValue)&&(this._rawValue=t,this._value=o?t:gi(t),$p(this,t))}};function go(e){return Et(e)?e.value:e}var OC={get:(e,t,o)=>go(Reflect.get(e,t,o)),set:(e,t,o,r)=>{let n=e[t];return Et(n)&&!Et(o)?(n.value=o,!0):Reflect.set(e,t,o,r)}};function ja(e){return Tr(e)?e:new Proxy(e,OC)}var Gs=class{constructor(t,o,r){this._object=t,this._key=o,this._defaultValue=r,this.__v_isRef=!0}get value(){let t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}};function Re(e,t,o){let r=e[t];return Et(r)?r:new Gs(e,t,o)}var Lp,Ys=class{constructor(t,o,r,n){this._setter=o,this.dep=void 0,this.__v_isRef=!0,this[Lp]=!1,this._dirty=!0,this.effect=new Zr(t,()=>{this._dirty||(this._dirty=!0,$p(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!n,this.__v_isReadonly=r}get value(){let t=Ve(this);return Mp(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}};Lp="__v_isReadonly";function zp(e,t,o=!1){let r,n,i=Ae(e);return i?(r=e,n=io):(r=e.get,n=e.set),new Ys(r,n,i||!n,o)}var PC;PC="__v_isReadonly";var xi=[];function Jp(e,...t){}function NC(){let e=xi[xi.length-1];if(!e)return[];let t=[];for(;e;){let o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});let r=e.component&&e.component.parent;e=r&&r.vnode}return t}function RC(e){let t=[];return e.forEach((o,r)=>{t.push(...r===0?[]:[` +`],...IC(o))}),t}function IC({vnode:e,recurseCount:t}){let o=t>0?`... (${t} recursive calls)`:"",r=e.component?e.component.parent==null:!1,n=` at <${Em(e.component,e.type,r)}`,i=">"+o;return e.props?[n,...AC(e.props),i]:[n+i]}function AC(e){let t=[],o=Object.keys(e);return o.slice(0,3).forEach(r=>{t.push(...em(r,e[r]))}),o.length>3&&t.push(" ..."),t}function em(e,t,o){return yt(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:Et(t)?(t=em(e,Ve(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Ae(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Ve(t),o?t:[`${e}=`,t])}function lr(e,t,o,r){let n;try{n=r?e(...r):e()}catch(i){Ya(i,t,o)}return n}function ao(e,t,o,r){if(Ae(e)){let i=lr(e,t,o,r);return i&&Hs(i)&&i.catch(a=>{Ya(a,t,o)}),i}let n=[];for(let i=0;i>>1;Si(jt[r])Ko&&jt.splice(t,1)}function zC(e){Ne(e)?On.push(...e):(!ar||!ar.includes(e,e.allowRecurse?on+1:on))&&On.push(e),om()}function Bp(e,t=ki?Ko+1:0){for(;tSi(o)-Si(r)),on=0;one.id==null?1/0:e.id,BC=(e,t)=>{let o=Si(e)-Si(t);if(o===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return o};function nm(e){ac=!1,ki=!0,jt.sort(BC);let t=io;try{for(Ko=0;Koyt(f)?f.trim():f)),u&&(n=o.map(Dn))}let l,s=r[l=fi(t)]||r[l=fi(Bo(t))];!s&&i&&(s=r[l=fi(yr(t))]),s&&ao(s,e,6,n);let c=r[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ao(c,e,6,n)}}function im(e,t,o=!1){let r=t.emitsCache,n=r.get(e);if(n!==void 0)return n;let i=e.emits,a={},l=!1;if(!Ae(e)){let s=c=>{let d=im(c,t,!0);d&&(l=!0,kt(a,d))};!o&&t.mixins.length&&t.mixins.forEach(s),e.extends&&s(e.extends),e.mixins&&e.mixins.forEach(s)}return!i&&!l?(it(e)&&r.set(e,null),null):(Ne(i)?i.forEach(s=>a[s]=null):kt(a,i),it(e)&&r.set(e,a),a)}function Xa(e,t){return!e||!_n(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ue(e,t[0].toLowerCase()+t.slice(1))||Ue(e,yr(t))||Ue(e,t))}var Wt=null,am=null;function qa(e){let t=Wt;return Wt=e,am=e&&e.type.__scopeId||null,t}function ln(e,t=Wt,o){if(!t||e._n)return e;let r=(...n)=>{r._d&&Yp(-1);let i=qa(t),a;try{a=e(...n)}finally{qa(i),r._d&&Yp(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function rc(e){let{type:t,vnode:o,proxy:r,withProxy:n,props:i,propsOptions:[a],slots:l,attrs:s,emit:c,render:d,renderCache:u,data:p,setupState:f,ctx:m,inheritAttrs:y}=e,w,g,O=qa(e);try{if(o.shapeFlag&4){let v=n||r;w=Wo(d.call(v,v,u,i,f,p,m)),g=s}else{let v=t;w=Wo(v.length>1?v(i,{attrs:s,slots:l,emit:c}):v(i,null)),g=t.props?s:VC(s)}}catch(v){wi.length=0,Ya(v,e,1),w=ft(Kt)}let j=w,S;if(g&&y!==!1){let v=Object.keys(g),{shapeFlag:D}=j;v.length&&D&7&&(a&&v.some(ci)&&(g=FC(g,a)),j=Pr(j,g))}return o.dirs&&(j=Pr(j),j.dirs=j.dirs?j.dirs.concat(o.dirs):o.dirs),o.transition&&(j.transition=o.transition),w=j,qa(O),w}var VC=e=>{let t;for(let o in e)(o==="class"||o==="style"||_n(o))&&((t||(t={}))[o]=e[o]);return t},FC=(e,t)=>{let o={};for(let r in e)(!ci(r)||!(r.slice(9)in t))&&(o[r]=e[r]);return o};function jC(e,t,o){let{props:r,children:n,component:i}=e,{props:a,children:l,patchFlag:s}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&s>=0){if(s&1024)return!0;if(s&16)return r?Hp(r,a,c):!!a;if(s&8){let d=t.dynamicProps;for(let u=0;ue.__isSuspense;function UC(e,t){t&&t.pendingBranch?Ne(e)?t.effects.push(...e):t.effects.push(e):zC(e)}function Yt(e,t){if(zt){let o=zt.provides,r=zt.parent&&zt.parent.provides;r===o&&(o=zt.provides=Object.create(r)),o[e]=t}}function ke(e,t,o=!1){let r=zt||Wt;if(r){let n=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(n&&e in n)return n[e];if(arguments.length>1)return o&&Ae(t)?t.call(r.proxy):t}}function At(e,t){return Za(e,null,t)}function lm(e,t){return Za(e,null,{flush:"post"})}var Wa={};function Ze(e,t,o){return Za(e,t,o)}function Za(e,t,{immediate:o,deep:r,flush:n,onTrack:i,onTrigger:a}=nt){let l=S=>{Jp("Invalid watch source: ",S,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},s=zt,c,d=!1,u=!1;if(Et(e)?(c=()=>e.value,d=Tn(e)):Tr(e)?(c=()=>e,r=!0):Ne(e)?(u=!0,d=e.some(S=>Tr(S)||Tn(S)),c=()=>e.map(S=>{if(Et(S))return S.value;if(Tr(S))return nn(S);if(Ae(S))return lr(S,s,2)})):Ae(e)?t?c=()=>lr(e,s,2):c=()=>{if(!(s&&s.isUnmounted))return p&&p(),ao(e,s,3,[f])}:c=io,t&&r){let S=c;c=()=>nn(S())}let p,f=S=>{p=O.onStop=()=>{lr(S,s,4)}},m;if(Ei)if(f=io,t?o&&ao(t,s,3,[c(),u?[]:void 0,f]):c(),n==="sync"){let S=$w();m=S.__watcherHandles||(S.__watcherHandles=[])}else return io;let y=u?new Array(e.length).fill(Wa):Wa,w=()=>{if(O.active)if(t){let S=O.run();(r||d||(u?S.some((v,D)=>Yr(v,y[D])):Yr(S,y)))&&(p&&p(),ao(t,s,3,[S,y===Wa?void 0:u&&y[0]===Wa?[]:y,f]),y=S)}else O.run()};w.allowRecurse=!!t;let g;n==="sync"?g=w:n==="post"?g=()=>eo(w,s&&s.suspense):(w.pre=!0,s&&(w.id=s.uid),g=()=>mc(w));let O=new Zr(c,g);t?o?w():y=O.run():n==="post"?eo(O.run.bind(O),s&&s.suspense):O.run();let j=()=>{O.stop(),s&&s.scope&&Pa(s.scope.effects,O)};return m&&m.push(j),j}function qC(e,t,o){let r=this.proxy,n=yt(e)?e.includes(".")?sm(r,e):()=>r[e]:e.bind(r,r),i;Ae(t)?i=t:(i=t.handler,o=t);let a=zt;In(this);let l=Za(n,i.bind(r),o);return a?In(a):an(),l}function sm(e,t){let o=t.split(".");return()=>{let r=e;for(let n=0;n{nn(o,t)});else if(Fs(e))for(let o in e)nn(e[o],t);return e}function hc(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return tt(()=>{e.isMounted=!0}),Pt(()=>{e.isUnmounting=!0}),e}var xo=[Function,Array],GC={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:xo,onEnter:xo,onAfterEnter:xo,onEnterCancelled:xo,onBeforeLeave:xo,onLeave:xo,onAfterLeave:xo,onLeaveCancelled:xo,onBeforeAppear:xo,onAppear:xo,onAfterAppear:xo,onAppearCancelled:xo},setup(e,{slots:t}){let o=Uo(),r=hc(),n;return()=>{let i=t.default&&Qa(t.default(),!0);if(!i||!i.length)return;let a=i[0];if(i.length>1){let y=!1;for(let w of i)if(w.type!==Kt){a=w,y=!0;break}}let l=Ve(e),{mode:s}=l;if(r.isLeaving)return nc(a);let c=Vp(a);if(!c)return nc(a);let d=Pn(c,l,r,o);Nn(c,d);let u=o.subTree,p=u&&Vp(u),f=!1,{getTransitionKey:m}=c.type;if(m){let y=m();n===void 0?n=y:y!==n&&(n=y,f=!0)}if(p&&p.type!==Kt&&(!rn(c,p)||f)){let y=Pn(p,l,r,o);if(Nn(p,y),s==="out-in")return r.isLeaving=!0,y.afterLeave=()=>{r.isLeaving=!1,o.update.active!==!1&&o.update()},nc(a);s==="in-out"&&c.type!==Kt&&(y.delayLeave=(w,g,O)=>{let j=cm(r,p);j[String(p.key)]=p,w._leaveCb=()=>{g(),w._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=O})}return a}}},gc=GC;function cm(e,t){let{leavingVNodes:o}=e,r=o.get(t.type);return r||(r=Object.create(null),o.set(t.type,r)),r}function Pn(e,t,o,r){let{appear:n,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:s,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:u,onLeave:p,onAfterLeave:f,onLeaveCancelled:m,onBeforeAppear:y,onAppear:w,onAfterAppear:g,onAppearCancelled:O}=t,j=String(e.key),S=cm(o,e),v=(k,A)=>{k&&ao(k,r,9,A)},D=(k,A)=>{let E=A[1];v(k,A),Ne(k)?k.every(z=>z.length<=1)&&E():k.length<=1&&E()},x={mode:i,persisted:a,beforeEnter(k){let A=l;if(!o.isMounted)if(n)A=y||l;else return;k._leaveCb&&k._leaveCb(!0);let E=S[j];E&&rn(e,E)&&E.el._leaveCb&&E.el._leaveCb(),v(A,[k])},enter(k){let A=s,E=c,z=d;if(!o.isMounted)if(n)A=w||s,E=g||c,z=O||d;else return;let M=!1,se=k._enterCb=ye=>{M||(M=!0,ye?v(z,[k]):v(E,[k]),x.delayedLeave&&x.delayedLeave(),k._enterCb=void 0)};A?D(A,[k,se]):se()},leave(k,A){let E=String(e.key);if(k._enterCb&&k._enterCb(!0),o.isUnmounting)return A();v(u,[k]);let z=!1,M=k._leaveCb=se=>{z||(z=!0,A(),se?v(m,[k]):v(f,[k]),k._leaveCb=void 0,S[E]===e&&delete S[E])};S[E]=e,p?D(p,[k,M]):M()},clone(k){return Pn(k,t,o,r)}};return x}function nc(e){if(Ja(e))return e=Pr(e),e.children=null,e}function Vp(e){return Ja(e)?e.children?e.children[0]:void 0:e}function Nn(e,t){e.shapeFlag&6&&e.component?Nn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Qa(e,t=!1,o){let r=[],n=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader;var Ja=e=>e.type.__isKeepAlive;function xc(e,t){dm(e,"a",t)}function YC(e,t){dm(e,"da",t)}function dm(e,t,o=zt){let r=e.__wdc||(e.__wdc=()=>{let n=o;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(el(t,r,o),o){let n=o.parent;for(;n&&n.parent;)Ja(n.parent.vnode)&&XC(r,t,o,n),n=n.parent}}function XC(e,t,o,r){let n=el(t,e,r,!0);sn(()=>{Pa(r[t],n)},o)}function el(e,t,o=zt,r=!1){if(o){let n=o[e]||(o[e]=[]),i=t.__weh||(t.__weh=(...a)=>{if(o.isUnmounted)return;_r(),In(o);let l=ao(t,o,e,a);return an(),Er(),l});return r?n.unshift(i):n.push(i),i}}var sr=e=>(t,o=zt)=>(!Ei||e==="sp")&&el(e,(...r)=>t(...r),o),cr=sr("bm"),tt=sr("m"),vc=sr("bu"),bc=sr("u"),Pt=sr("bum"),sn=sr("um"),ZC=sr("sp"),QC=sr("rtg"),JC=sr("rtc");function ew(e,t=zt){el("ec",e,t)}function tl(e,t){let o=Wt;if(o===null)return e;let r=il(o)||o.proxy,n=e.dirs||(e.dirs=[]);for(let i=0;iRn(t)?!(t.type===Kt||t.type===St&&!um(t.children)):!0)?e:null}var lc=e=>e?Sm(e)?il(e)||e.proxy:lc(e.parent):null,bi=kt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>lc(e.parent),$root:e=>lc(e.root),$emit:e=>e.emit,$options:e=>yc(e),$forceUpdate:e=>e.f||(e.f=()=>mc(e.update)),$nextTick:e=>e.n||(e.n=Bt.bind(e.proxy)),$watch:e=>qC.bind(e)});var ic=(e,t)=>e!==nt&&!e.__isScriptSetup&&Ue(e,t),ow={get({_:e},t){let{ctx:o,setupState:r,data:n,props:i,accessCache:a,type:l,appContext:s}=e,c;if(t[0]!=="$"){let f=a[t];if(f!==void 0)switch(f){case 1:return r[t];case 2:return n[t];case 4:return o[t];case 3:return i[t]}else{if(ic(r,t))return a[t]=1,r[t];if(n!==nt&&Ue(n,t))return a[t]=2,n[t];if((c=e.propsOptions[0])&&Ue(c,t))return a[t]=3,i[t];if(o!==nt&&Ue(o,t))return a[t]=4,o[t];sc&&(a[t]=0)}}let d=bi[t],u,p;if(d)return t==="$attrs"&&Jt(e,"get",t),d(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(o!==nt&&Ue(o,t))return a[t]=4,o[t];if(p=s.config.globalProperties,Ue(p,t))return p[t]},set({_:e},t,o){let{data:r,setupState:n,ctx:i}=e;return ic(n,t)?(n[t]=o,!0):r!==nt&&Ue(r,t)?(r[t]=o,!0):Ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:r,appContext:n,propsOptions:i}},a){let l;return!!o[a]||e!==nt&&Ue(e,a)||ic(t,a)||(l=i[0])&&Ue(l,a)||Ue(r,a)||Ue(bi,a)||Ue(n.config.globalProperties,a)},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ue(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};var sc=!0;function rw(e){let t=yc(e),o=e.proxy,r=e.ctx;sc=!1,t.beforeCreate&&Fp(t.beforeCreate,e,"bc");let{data:n,computed:i,methods:a,watch:l,provide:s,inject:c,created:d,beforeMount:u,mounted:p,beforeUpdate:f,updated:m,activated:y,deactivated:w,beforeDestroy:g,beforeUnmount:O,destroyed:j,unmounted:S,render:v,renderTracked:D,renderTriggered:x,errorCaptured:k,serverPrefetch:A,expose:E,inheritAttrs:z,components:M,directives:se,filters:ye}=t;if(c&&nw(c,r,null,e.appContext.config.unwrapInjectedRef),a)for(let ce in a){let we=a[ce];Ae(we)&&(r[ce]=we.bind(o))}if(n){let ce=n.call(o,o);it(ce)&&(e.data=Fo(ce))}if(sc=!0,i)for(let ce in i){let we=i[ce],Me=Ae(we)?we.bind(o,o):Ae(we.get)?we.get.bind(o,o):io,Be=!Ae(we)&&Ae(we.set)?we.set.bind(o):io,Le=F({get:Me,set:Be});Object.defineProperty(r,ce,{enumerable:!0,configurable:!0,get:()=>Le.value,set:Je=>Le.value=Je})}if(l)for(let ce in l)fm(l[ce],r,o,ce);if(s){let ce=Ae(s)?s.call(o):s;Reflect.ownKeys(ce).forEach(we=>{Yt(we,ce[we])})}d&&Fp(d,e,"c");function fe(ce,we){Ne(we)?we.forEach(Me=>ce(Me.bind(o))):we&&ce(we.bind(o))}if(fe(cr,u),fe(tt,p),fe(vc,f),fe(bc,m),fe(xc,y),fe(YC,w),fe(ew,k),fe(JC,D),fe(QC,x),fe(Pt,O),fe(sn,S),fe(ZC,A),Ne(E))if(E.length){let ce=e.exposed||(e.exposed={});E.forEach(we=>{Object.defineProperty(ce,we,{get:()=>o[we],set:Me=>o[we]=Me})})}else e.exposed||(e.exposed={});v&&e.render===io&&(e.render=v),z!=null&&(e.inheritAttrs=z),M&&(e.components=M),se&&(e.directives=se)}function nw(e,t,o=io,r=!1){Ne(e)&&(e=cc(e));for(let n in e){let i=e[n],a;it(i)?"default"in i?a=ke(i.from||n,i.default,!0):a=ke(i.from||n):a=ke(i),Et(a)&&r?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:l=>a.value=l}):t[n]=a}}function Fp(e,t,o){ao(Ne(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,o)}function fm(e,t,o,r){let n=r.includes(".")?sm(o,r):()=>o[r];if(yt(e)){let i=t[e];Ae(i)&&Ze(n,i)}else if(Ae(e))Ze(n,e.bind(o));else if(it(e))if(Ne(e))e.forEach(i=>fm(i,t,o,r));else{let i=Ae(e.handler)?e.handler.bind(o):t[e.handler];Ae(i)&&Ze(n,i,e)}}function yc(e){let t=e.type,{mixins:o,extends:r}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:a}}=e.appContext,l=i.get(t),s;return l?s=l:!n.length&&!o&&!r?s=t:(s={},n.length&&n.forEach(c=>Ga(s,c,a,!0)),Ga(s,t,a)),it(t)&&i.set(t,s),s}function Ga(e,t,o,r=!1){let{mixins:n,extends:i}=t;i&&Ga(e,i,o,!0),n&&n.forEach(a=>Ga(e,a,o,!0));for(let a in t)if(!(r&&a==="expose")){let l=iw[a]||o&&o[a];e[a]=l?l(e[a],t[a]):t[a]}return e}var iw={data:jp,props:tn,emits:tn,methods:tn,computed:tn,beforeCreate:Gt,created:Gt,beforeMount:Gt,mounted:Gt,beforeUpdate:Gt,updated:Gt,beforeDestroy:Gt,beforeUnmount:Gt,destroyed:Gt,unmounted:Gt,activated:Gt,deactivated:Gt,errorCaptured:Gt,serverPrefetch:Gt,components:tn,directives:tn,watch:lw,provide:jp,inject:aw};function jp(e,t){return t?e?function(){return kt(Ae(e)?e.call(this,this):e,Ae(t)?t.call(this,this):t)}:t:e}function aw(e,t){return tn(cc(e),cc(t))}function cc(e){if(Ne(e)){let t={};for(let o=0;o0)&&!(a&16)){if(a&8){let d=e.vnode.dynamicProps;for(let u=0;u{s=!0;let[p,f]=mm(u,t,!0);kt(a,p),f&&l.push(...f)};!o&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!s)return it(e)&&r.set(e,Gr),Gr;if(Ne(i))for(let d=0;d-1,f[1]=y<0||m-1||Ue(f,"default"))&&l.push(u)}}}let c=[a,l];return it(e)&&r.set(e,c),c}function Wp(e){return e[0]!=="$"}function Kp(e){let t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Up(e,t){return Kp(e)===Kp(t)}function qp(e,t){return Ne(t)?t.findIndex(o=>Up(o,e)):Ae(t)&&Up(t,e)?0:-1}var hm=e=>e[0]==="_"||e==="$stable",Cc=e=>Ne(e)?e.map(Wo):[Wo(e)],dw=(e,t,o)=>{if(t._n)return t;let r=ln((...n)=>Cc(t(...n)),o);return r._c=!1,r},gm=(e,t,o)=>{let r=e._ctx;for(let n in e){if(hm(n))continue;let i=e[n];if(Ae(i))t[n]=dw(n,i,r);else if(i!=null){let a=Cc(i);t[n]=()=>a}}},xm=(e,t)=>{let o=Cc(t);e.slots.default=()=>o},uw=(e,t)=>{if(e.vnode.shapeFlag&32){let o=t._;o?(e.slots=Ve(t),En(t,"_",o)):gm(t,e.slots={})}else e.slots={},t&&xm(e,t);En(e.slots,rl,1)},fw=(e,t,o)=>{let{vnode:r,slots:n}=e,i=!0,a=nt;if(r.shapeFlag&32){let l=t._;l?o&&l===1?i=!1:(kt(n,t),!o&&l===1&&delete n._):(i=!t.$stable,gm(t,n)),a=t}else t&&(xm(e,t),a={default:1});if(i)for(let l in n)!hm(l)&&!(l in a)&&delete n[l]};function vm(){return{app:null,config:{isNativeTag:hp,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var pw=0;function mw(e,t){return function(r,n=null){Ae(r)||(r=Object.assign({},r)),n!=null&&!it(n)&&(n=null);let i=vm(),a=new Set,l=!1,s=i.app={_uid:pw++,_component:r,_props:n,_container:null,_context:i,_instance:null,version:Lw,get config(){return i.config},set config(c){},use(c,...d){return a.has(c)||(c&&Ae(c.install)?(a.add(c),c.install(s,...d)):Ae(c)&&(a.add(c),c(s,...d))),s},mixin(c){return i.mixins.includes(c)||i.mixins.push(c),s},component(c,d){return d?(i.components[c]=d,s):i.components[c]},directive(c,d){return d?(i.directives[c]=d,s):i.directives[c]},mount(c,d,u){if(!l){let p=ft(r,n);return p.appContext=i,d&&t?t(p,c):e(p,c,u),l=!0,s._container=c,c.__vue_app__=s,il(p.component)||p.component.proxy}},unmount(){l&&(e(null,s._container),delete s._container.__vue_app__)},provide(c,d){return i.provides[c]=d,s}};return s}}function uc(e,t,o,r,n=!1){if(Ne(e)){e.forEach((p,f)=>uc(p,t&&(Ne(t)?t[f]:t),o,r,n));return}if(vi(r)&&!n)return;let i=r.shapeFlag&4?il(r.component)||r.component.proxy:r.el,a=n?null:i,{i:l,r:s}=e,c=t&&t.r,d=l.refs===nt?l.refs={}:l.refs,u=l.setupState;if(c!=null&&c!==s&&(yt(c)?(d[c]=null,Ue(u,c)&&(u[c]=null)):Et(c)&&(c.value=null)),Ae(s))lr(s,l,12,[a,d]);else{let p=yt(s),f=Et(s);if(p||f){let m=()=>{if(e.f){let y=p?Ue(u,s)?u[s]:d[s]:s.value;n?Ne(y)&&Pa(y,i):Ne(y)?y.includes(i)||y.push(i):p?(d[s]=[i],Ue(u,s)&&(u[s]=d[s])):(s.value=[i],e.k&&(d[e.k]=s.value))}else p?(d[s]=a,Ue(u,s)&&(u[s]=a)):f&&(s.value=a,e.k&&(d[e.k]=a))};a?(m.id=-1,eo(m,o)):m()}}}function hw(){let e=[]}var eo=UC;function bm(e){return gw(e)}function gw(e,t){hw();let o=xp();o.__VUE__=!0;let{insert:r,remove:n,patchProp:i,createElement:a,createText:l,createComment:s,setText:c,setElementText:d,parentNode:u,nextSibling:p,setScopeId:f=io,insertStaticContent:m}=e,y=(h,C,L,q=null,K=null,ne=null,oe=!1,H=null,Q=!!C.dynamicChildren)=>{if(h===C)return;h&&!rn(h,C)&&(q=vt(h),Xe(h,K,ne,!0),h=null),C.patchFlag===-2&&(Q=!1,C.dynamicChildren=null);let{type:Y,ref:N,shapeFlag:$}=C;switch(Y){case ol:w(h,C,L,q);break;case Kt:g(h,C,L,q);break;case Ci:h==null&&O(C,L,q,oe);break;case St:se(h,C,L,q,K,ne,oe,H,Q);break;default:$&1?D(h,C,L,q,K,ne,oe,H,Q):$&6?ye(h,C,L,q,K,ne,oe,H,Q):($&64||$&128)&&Y.process(h,C,L,q,K,ne,oe,H,Q,ot)}N!=null&&K&&uc(N,h&&h.ref,ne,C||h,!C)},w=(h,C,L,q)=>{if(h==null)r(C.el=l(C.children),L,q);else{let K=C.el=h.el;C.children!==h.children&&c(K,C.children)}},g=(h,C,L,q)=>{h==null?r(C.el=s(C.children||""),L,q):C.el=h.el},O=(h,C,L,q)=>{[h.el,h.anchor]=m(h.children,C,L,q,h.el,h.anchor)},j=(h,C,L,q)=>{if(C.children!==h.children){let K=p(h.anchor);v(h),[C.el,C.anchor]=m(C.children,L,K,q)}else C.el=h.el,C.anchor=h.anchor},S=({el:h,anchor:C},L,q)=>{let K;for(;h&&h!==C;)K=p(h),r(h,L,q),h=K;r(C,L,q)},v=({el:h,anchor:C})=>{let L;for(;h&&h!==C;)L=p(h),n(h),h=L;n(C)},D=(h,C,L,q,K,ne,oe,H,Q)=>{oe=oe||C.type==="svg",h==null?x(C,L,q,K,ne,oe,H,Q):E(h,C,K,ne,oe,H,Q)},x=(h,C,L,q,K,ne,oe,H)=>{let Q,Y,{type:N,props:$,shapeFlag:V,transition:ae,dirs:pe}=h;if(Q=h.el=a(h.type,ne,$&&$.is,$),V&8?d(Q,h.children):V&16&&A(h.children,Q,null,q,K,ne&&N!=="foreignObject",oe,H),pe&&Jr(h,null,q,"created"),$){for(let W in $)W!=="value"&&!di(W)&&i(Q,W,null,$[W],ne,h.children,q,K,We);"value"in $&&i(Q,"value",null,$.value),(Y=$.onVnodeBeforeMount)&&jo(Y,q,h)}k(Q,h,h.scopeId,oe,q),pe&&Jr(h,null,q,"beforeMount");let _=(!K||K&&!K.pendingBranch)&&ae&&!ae.persisted;_&&ae.beforeEnter(Q),r(Q,C,L),((Y=$&&$.onVnodeMounted)||_||pe)&&eo(()=>{Y&&jo(Y,q,h),_&&ae.enter(Q),pe&&Jr(h,null,q,"mounted")},K)},k=(h,C,L,q,K)=>{if(L&&f(h,L),q)for(let ne=0;ne{for(let Y=Q;Y{let H=C.el=h.el,{patchFlag:Q,dynamicChildren:Y,dirs:N}=C;Q|=h.patchFlag&16;let $=h.props||nt,V=C.props||nt,ae;L&&en(L,!1),(ae=V.onVnodeBeforeUpdate)&&jo(ae,L,C,h),N&&Jr(C,h,L,"beforeUpdate"),L&&en(L,!0);let pe=K&&C.type!=="foreignObject";if(Y?z(h.dynamicChildren,Y,H,L,q,pe,ne):oe||Me(h,C,H,null,L,q,pe,ne,!1),Q>0){if(Q&16)M(H,C,$,V,L,q,K);else if(Q&2&&$.class!==V.class&&i(H,"class",null,V.class,K),Q&4&&i(H,"style",$.style,V.style,K),Q&8){let _=C.dynamicProps;for(let W=0;W<_.length;W++){let re=_[W],P=$[re],Z=V[re];(Z!==P||re==="value")&&i(H,re,P,Z,K,h.children,L,q,We)}}Q&1&&h.children!==C.children&&d(H,C.children)}else!oe&&Y==null&&M(H,C,$,V,L,q,K);((ae=V.onVnodeUpdated)||N)&&eo(()=>{ae&&jo(ae,L,C,h),N&&Jr(C,h,L,"updated")},q)},z=(h,C,L,q,K,ne,oe)=>{for(let H=0;H{if(L!==q){if(L!==nt)for(let H in L)!di(H)&&!(H in q)&&i(h,H,L[H],null,oe,C.children,K,ne,We);for(let H in q){if(di(H))continue;let Q=q[H],Y=L[H];Q!==Y&&H!=="value"&&i(h,H,Y,Q,oe,C.children,K,ne,We)}"value"in q&&i(h,"value",L.value,q.value)}},se=(h,C,L,q,K,ne,oe,H,Q)=>{let Y=C.el=h?h.el:l(""),N=C.anchor=h?h.anchor:l(""),{patchFlag:$,dynamicChildren:V,slotScopeIds:ae}=C;ae&&(H=H?H.concat(ae):ae),h==null?(r(Y,L,q),r(N,L,q),A(C.children,L,N,K,ne,oe,H,Q)):$>0&&$&64&&V&&h.dynamicChildren?(z(h.dynamicChildren,V,L,K,ne,oe,H),(C.key!=null||K&&C===K.subTree)&&wc(h,C,!0)):Me(h,C,L,N,K,ne,oe,H,Q)},ye=(h,C,L,q,K,ne,oe,H,Q)=>{C.slotScopeIds=H,h==null?C.shapeFlag&512?K.ctx.activate(C,L,q,oe,Q):Ie(C,L,q,K,ne,oe,Q):fe(h,C,Q)},Ie=(h,C,L,q,K,ne,oe)=>{let H=h.component=Ew(h,q,K);if(Ja(h)&&(H.ctx.renderer=ot),Dw(H),H.asyncDep){if(K&&K.registerDep(H,ce),!h.el){let Q=H.subTree=ft(Kt);g(null,Q,C,L)}return}ce(H,h,C,L,K,ne,oe)},fe=(h,C,L)=>{let q=C.component=h.component;if(jC(h,C,L))if(q.asyncDep&&!q.asyncResolved){we(q,C,L);return}else q.next=C,LC(q.update),q.update();else C.el=h.el,q.vnode=C},ce=(h,C,L,q,K,ne,oe)=>{let H=()=>{if(h.isMounted){let{next:N,bu:$,u:V,parent:ae,vnode:pe}=h,_=N,W;en(h,!1),N?(N.el=pe.el,we(h,N,oe)):N=pe,$&&pi($),(W=N.props&&N.props.onVnodeBeforeUpdate)&&jo(W,ae,N,pe),en(h,!0);let re=rc(h),P=h.subTree;h.subTree=re,y(P,re,u(P.el),vt(P),h,K,ne),N.el=re.el,_===null&&WC(h,re.el),V&&eo(V,K),(W=N.props&&N.props.onVnodeUpdated)&&eo(()=>jo(W,ae,N,pe),K)}else{let N,{el:$,props:V}=C,{bm:ae,m:pe,parent:_}=h,W=vi(C);if(en(h,!1),ae&&pi(ae),!W&&(N=V&&V.onVnodeBeforeMount)&&jo(N,_,C),en(h,!0),$&&Dt){let re=()=>{h.subTree=rc(h),Dt($,h.subTree,h,K,null)};W?C.type.__asyncLoader().then(()=>!h.isUnmounted&&re()):re()}else{let re=h.subTree=rc(h);y(null,re,L,q,h,K,ne),C.el=re.el}if(pe&&eo(pe,K),!W&&(N=V&&V.onVnodeMounted)){let re=C;eo(()=>jo(N,_,re),K)}(C.shapeFlag&256||_&&vi(_.vnode)&&_.vnode.shapeFlag&256)&&h.a&&eo(h.a,K),h.isMounted=!0,C=L=q=null}},Q=h.effect=new Zr(H,()=>mc(Y),h.scope),Y=h.update=()=>Q.run();Y.id=h.uid,en(h,!0),Y()},we=(h,C,L)=>{C.component=h;let q=h.vnode.props;h.vnode=C,h.next=null,cw(h,C.props,q,L),fw(h,C.children,L),_r(),Bp(),Er()},Me=(h,C,L,q,K,ne,oe,H,Q=!1)=>{let Y=h&&h.children,N=h?h.shapeFlag:0,$=C.children,{patchFlag:V,shapeFlag:ae}=C;if(V>0){if(V&128){Le(Y,$,L,q,K,ne,oe,H,Q);return}else if(V&256){Be(Y,$,L,q,K,ne,oe,H,Q);return}}ae&8?(N&16&&We(Y,K,ne),$!==Y&&d(L,$)):N&16?ae&16?Le(Y,$,L,q,K,ne,oe,H,Q):We(Y,K,ne,!0):(N&8&&d(L,""),ae&16&&A($,L,q,K,ne,oe,H,Q))},Be=(h,C,L,q,K,ne,oe,H,Q)=>{h=h||Gr,C=C||Gr;let Y=h.length,N=C.length,$=Math.min(Y,N),V;for(V=0;V<$;V++){let ae=C[V]=Q?Or(C[V]):Wo(C[V]);y(h[V],ae,L,null,K,ne,oe,H,Q)}Y>N?We(h,K,ne,!0,!1,$):A(C,L,q,K,ne,oe,H,Q,$)},Le=(h,C,L,q,K,ne,oe,H,Q)=>{let Y=0,N=C.length,$=h.length-1,V=N-1;for(;Y<=$&&Y<=V;){let ae=h[Y],pe=C[Y]=Q?Or(C[Y]):Wo(C[Y]);if(rn(ae,pe))y(ae,pe,L,null,K,ne,oe,H,Q);else break;Y++}for(;Y<=$&&Y<=V;){let ae=h[$],pe=C[V]=Q?Or(C[V]):Wo(C[V]);if(rn(ae,pe))y(ae,pe,L,null,K,ne,oe,H,Q);else break;$--,V--}if(Y>$){if(Y<=V){let ae=V+1,pe=aeV)for(;Y<=$;)Xe(h[Y],K,ne,!0),Y++;else{let ae=Y,pe=Y,_=new Map;for(Y=pe;Y<=V;Y++){let He=C[Y]=Q?Or(C[Y]):Wo(C[Y]);He.key!=null&&_.set(He.key,Y)}let W,re=0,P=V-pe+1,Z=!1,le=0,Ce=new Array(P);for(Y=0;Y=P){Xe(He,K,ne,!0);continue}let Fe;if(He.key!=null)Fe=_.get(He.key);else for(W=pe;W<=V;W++)if(Ce[W-pe]===0&&rn(He,C[W])){Fe=W;break}Fe===void 0?Xe(He,K,ne,!0):(Ce[Fe-pe]=Y+1,Fe>=le?le=Fe:Z=!0,y(He,C[Fe],L,null,K,ne,oe,H,Q),re++)}let Ke=Z?xw(Ce):Gr;for(W=Ke.length-1,Y=P-1;Y>=0;Y--){let He=pe+Y,Fe=C[He],qe=He+1{let{el:ne,type:oe,transition:H,children:Q,shapeFlag:Y}=h;if(Y&6){Je(h.component.subTree,C,L,q);return}if(Y&128){h.suspense.move(C,L,q);return}if(Y&64){oe.move(h,C,L,ot);return}if(oe===St){r(ne,C,L);for(let $=0;$H.enter(ne),K);else{let{leave:$,delayLeave:V,afterLeave:ae}=H,pe=()=>r(ne,C,L),_=()=>{$(ne,()=>{pe(),ae&&ae()})};V?V(ne,pe,_):_()}else r(ne,C,L)},Xe=(h,C,L,q=!1,K=!1)=>{let{type:ne,props:oe,ref:H,children:Q,dynamicChildren:Y,shapeFlag:N,patchFlag:$,dirs:V}=h;if(H!=null&&uc(H,null,L,h,!0),N&256){C.ctx.deactivate(h);return}let ae=N&1&&V,pe=!vi(h),_;if(pe&&(_=oe&&oe.onVnodeBeforeUnmount)&&jo(_,C,h),N&6)ze(h.component,L,q);else{if(N&128){h.suspense.unmount(L,q);return}ae&&Jr(h,null,C,"beforeUnmount"),N&64?h.type.remove(h,C,L,K,ot,q):Y&&(ne!==St||$>0&&$&64)?We(Y,C,L,!1,!0):(ne===St&&$&384||!K&&N&16)&&We(Q,C,L),q&&ct(h)}(pe&&(_=oe&&oe.onVnodeUnmounted)||ae)&&eo(()=>{_&&jo(_,C,h),ae&&Jr(h,null,C,"unmounted")},L)},ct=h=>{let{type:C,el:L,anchor:q,transition:K}=h;if(C===St){wt(L,q);return}if(C===Ci){v(h);return}let ne=()=>{n(L),K&&!K.persisted&&K.afterLeave&&K.afterLeave()};if(h.shapeFlag&1&&K&&!K.persisted){let{leave:oe,delayLeave:H}=K,Q=()=>oe(L,ne);H?H(h.el,ne,Q):Q()}else ne()},wt=(h,C)=>{let L;for(;h!==C;)L=p(h),n(h),h=L;n(C)},ze=(h,C,L)=>{let{bum:q,scope:K,update:ne,subTree:oe,um:H}=h;q&&pi(q),K.stop(),ne&&(ne.active=!1,Xe(oe,h,C,L)),H&&eo(H,C),eo(()=>{h.isUnmounted=!0},C),C&&C.pendingBranch&&!C.isUnmounted&&h.asyncDep&&!h.asyncResolved&&h.suspenseId===C.pendingId&&(C.deps--,C.deps===0&&C.resolve())},We=(h,C,L,q=!1,K=!1,ne=0)=>{for(let oe=ne;oeh.shapeFlag&6?vt(h.component.subTree):h.shapeFlag&128?h.suspense.next():p(h.anchor||h.el),Pe=(h,C,L)=>{h==null?C._vnode&&Xe(C._vnode,null,null,!0):y(C._vnode||null,h,C,null,null,null,L),Bp(),rm(),C._vnode=h},ot={p:y,um:Xe,m:Je,r:ct,mt:Ie,mc:A,pc:Me,pbc:z,n:vt,o:e},rt,Dt;return t&&([rt,Dt]=t(ot)),{render:Pe,hydrate:rt,createApp:mw(Pe,rt)}}function en({effect:e,update:t},o){e.allowRecurse=t.allowRecurse=o}function wc(e,t,o=!1){let r=e.children,n=t.children;if(Ne(r)&&Ne(n))for(let i=0;i>1,e[o[l]]0&&(t[r]=o[i-1]),o[i]=r)}}for(i=o.length,a=o[i-1];i-- >0;)o[i]=a,a=t[a];return o}var vw=e=>e.__isTeleport,yi=e=>e&&(e.disabled||e.disabled===""),Gp=e=>typeof SVGElement<"u"&&e instanceof SVGElement,fc=(e,t)=>{let o=e&&e.to;if(yt(o))if(t){let r=t(o);return r}else return null;else return o},bw={__isTeleport:!0,process(e,t,o,r,n,i,a,l,s,c){let{mc:d,pc:u,pbc:p,o:{insert:f,querySelector:m,createText:y,createComment:w}}=c,g=yi(t.props),{shapeFlag:O,children:j,dynamicChildren:S}=t;if(e==null){let v=t.el=y(""),D=t.anchor=y("");f(v,o,r),f(D,o,r);let x=t.target=fc(t.props,m),k=t.targetAnchor=y("");x&&(f(k,x),a=a||Gp(x));let A=(E,z)=>{O&16&&d(j,E,z,n,i,a,l,s)};g?A(o,D):x&&A(x,k)}else{t.el=e.el;let v=t.anchor=e.anchor,D=t.target=e.target,x=t.targetAnchor=e.targetAnchor,k=yi(e.props),A=k?o:D,E=k?v:x;if(a=a||Gp(D),S?(p(e.dynamicChildren,S,A,n,i,a,l),wc(e,t,!0)):s||u(e,t,A,E,n,i,a,l,!1),g)k||Ka(t,o,v,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let z=t.target=fc(t.props,m);z&&Ka(t,z,null,c,0)}else k&&Ka(t,D,x,c,1)}Cm(t)},remove(e,t,o,r,{um:n,o:{remove:i}},a){let{shapeFlag:l,children:s,anchor:c,targetAnchor:d,target:u,props:p}=e;if(u&&i(d),(a||!yi(p))&&(i(c),l&16))for(let f=0;f0?Do||Gr:null,Cw(),_i>0&&Do&&Do.push(e),e}function ut(e,t,o,r,n,i){return wm(pt(e,t,o,r,n,i,!0))}function Di(e,t,o,r,n){return wm(ft(e,t,o,r,n,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}var rl="__vInternal",km=({key:e})=>e??null,Ua=({ref:e,ref_key:t,ref_for:o})=>e!=null?yt(e)||Et(e)||Ae(e)?{i:Wt,r:e,k:t,f:!!o}:e:null;function pt(e,t=null,o=null,r=0,n=null,i=e===St?0:1,a=!1,l=!1){let s={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&km(t),ref:t&&Ua(t),scopeId:am,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:Wt};return l?(kc(s,o),i&128&&e.normalize(s)):o&&(s.shapeFlag|=yt(o)?8:16),_i>0&&!a&&Do&&(s.patchFlag>0||i&6)&&s.patchFlag!==32&&Do.push(s),s}var ft=ww;function ww(e,t=null,o=null,r=0,n=null,i=!1){if((!e||e===tw)&&(e=Kt),Rn(e)){let l=Pr(e,t,!0);return o&&kc(l,o),_i>0&&!i&&Do&&(l.shapeFlag&6?Do[Do.indexOf(e)]=l:Do.push(l)),l.patchFlag|=-2,l}if(Aw(e)&&(e=e.__vccOpts),t){t=kw(t);let{class:l,style:s}=t;l&&!yt(l)&&(t.class=qr(l)),it(s)&&(Fa(s)&&!Ne(s)&&(s=kt({},s)),t.style=vr(s))}let a=yt(e)?1:KC(e)?128:vw(e)?64:it(e)?4:Ae(e)?2:0;return pt(e,t,o,r,n,a,i,!0)}function kw(e){return e?Fa(e)||rl in e?kt({},e):e:null}function Pr(e,t,o=!1){let{props:r,ref:n,patchFlag:i,children:a}=e,l=t?Ti(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&km(l),ref:t&&t.ref?o&&n?Ne(n)?n.concat(Ua(t)):[n,Ua(t)]:Ua(t):n,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==St?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Pr(e.ssContent),ssFallback:e.ssFallback&&Pr(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function Mn(e=" ",t=0){return ft(ol,null,e,t)}function nl(e="",t=!1){return t?(Ye(),Di(Kt,null,e)):ft(Kt,null,e)}function Wo(e){return e==null||typeof e=="boolean"?ft(Kt):Ne(e)?ft(St,null,e.slice()):typeof e=="object"?Or(e):ft(ol,null,String(e))}function Or(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Pr(e)}function kc(e,t){let o=0,{shapeFlag:r}=e;if(t==null)t=null;else if(Ne(t))o=16;else if(typeof t=="object")if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),kc(e,n()),n._c&&(n._d=!0));return}else{o=32;let n=t._;!n&&!(rl in t)?t._ctx=Wt:n===3&&Wt&&(Wt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ae(t)?(t={default:t,_ctx:Wt},o=32):(t=String(t),r&64?(o=16,t=[Mn(t)]):o=8);e.children=t,e.shapeFlag|=o}function Ti(...e){let t={};for(let o=0;ozt||Wt,In=e=>{zt=e,e.scope.on()},an=()=>{zt&&zt.scope.off(),zt=null};function Sm(e){return e.vnode.shapeFlag&4}var Ei=!1;function Dw(e,t=!1){Ei=t;let{props:o,children:r}=e.vnode,n=Sm(e);sw(e,o,n,t),uw(e,r);let i=n?Tw(e,t):void 0;return Ei=!1,i}function Tw(e,t){var o;let r=e.type;e.accessCache=Object.create(null),e.proxy=Qr(new Proxy(e.ctx,ow));let{setup:n}=r;if(n){let i=e.setupContext=n.length>1?Pw(e):null;In(e),_r();let a=lr(n,e,0,[e.props,i]);if(Er(),an(),Hs(a)){if(a.then(an,an),t)return a.then(l=>{Xp(e,l,t)}).catch(l=>{Ya(l,e,0)});e.asyncDep=a}else Xp(e,a,t)}else _m(e,t)}function Xp(e,t,o){Ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:it(t)&&(e.setupState=ja(t)),_m(e,o)}var Zp,Qp;function _m(e,t,o){let r=e.type;if(!e.render){if(!t&&Zp&&!r.render){let n=r.template||yc(e).template;if(n){let{isCustomElement:i,compilerOptions:a}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,c=kt(kt({isCustomElement:i,delimiters:l},a),s);r.render=Zp(n,c)}}e.render=r.render||io,Qp&&Qp(e)}In(e),_r(),rw(e),Er(),an()}function Ow(e){return new Proxy(e.attrs,{get(t,o){return Jt(e,"get","$attrs"),t[o]}})}function Pw(e){let t=r=>{e.exposed=r||{}},o;return{get attrs(){return o||(o=Ow(e))},slots:e.slots,emit:e.emit,expose:t}}function il(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ja(Qr(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in bi)return bi[o](e)},has(t,o){return o in t||o in bi}}))}var Nw=/(?:^|[-_])(\w)/g,Rw=e=>e.replace(Nw,t=>t.toUpperCase()).replace(/[-_]/g,"");function Iw(e,t=!0){return Ae(e)?e.displayName||e.name:e.name||t&&e.__name}function Em(e,t,o=!1){let r=Iw(t);if(!r&&t.__file){let n=t.__file.match(/([^/\\]+)\.\w+$/);n&&(r=n[1])}if(!r&&e&&e.parent){let n=i=>{for(let a in i)if(i[a]===t)return a};r=n(e.components||e.parent.type.components)||n(e.appContext.components)}return r?Rw(r):o?"App":"Anonymous"}function Aw(e){return Ae(e)&&"__vccOpts"in e}var F=(e,t)=>zp(e,t,Ei);function b(e,t,o){let r=arguments.length;return r===2?it(t)&&!Ne(t)?Rn(t)?ft(e,null,[t]):ft(e,t):ft(e,null,t):(r>3?o=Array.prototype.slice.call(arguments,2):r===3&&Rn(o)&&(o=[o]),ft(e,t,o))}var Mw=Symbol(""),$w=()=>{{let e=ke(Mw);return e}};var Lw="3.2.45";var zw="http://www.w3.org/2000/svg",dn=typeof document<"u"?document:null,Dm=dn&&dn.createElement("template"),Bw={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,r)=>{let n=t?dn.createElementNS(zw,e):dn.createElement(e,o?{is:o}:void 0);return e==="select"&&r&&r.multiple!=null&&n.setAttribute("multiple",r.multiple),n},createText:e=>dn.createTextNode(e),createComment:e=>dn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>dn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,r,n,i){let a=o?o.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),o),!(n===i||!(n=n.nextSibling)););else{Dm.innerHTML=r?`${e}`:e;let l=Dm.content;if(r){let s=l.firstChild;for(;s.firstChild;)l.appendChild(s.firstChild);l.removeChild(s)}t.insertBefore(l,o)}return[a?a.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}};function Hw(e,t,o){let r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}function Vw(e,t,o){let r=e.style,n=yt(o);if(o&&!n){for(let i in o)Dc(r,i,o[i]);if(t&&!yt(t))for(let i in t)o[i]==null&&Dc(r,i,"")}else{let i=r.display;n?t!==o&&(r.cssText=o):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=i)}}var Tm=/\s*!important$/;function Dc(e,t,o){if(Ne(o))o.forEach(r=>Dc(e,t,r));else if(o==null&&(o=""),t.startsWith("--"))e.setProperty(t,o);else{let r=Fw(e,t);Tm.test(o)?e.setProperty(yr(r),o.replace(Tm,""),"important"):e[r]=o}}var Om=["Webkit","Moz","ms"],Sc={};function Fw(e,t){let o=Sc[t];if(o)return o;let r=Bo(t);if(r!=="filter"&&r in e)return Sc[t]=r;r=ui(r);for(let n=0;n_c||(Yw.then(()=>_c=0),_c=Date.now());function Zw(e,t){let o=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=o.attached)return;ao(Qw(r,o.value),t,5,[r])};return o.value=e,o.attached=Xw(),o}function Qw(e,t){if(Ne(t)){let o=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{o.call(e),e._stopped=!0},t.map(r=>n=>!n._stopped&&r&&r(n))}else return t}var Rm=/^on[a-z]/,Jw=(e,t,o,r,n=!1,i,a,l,s)=>{t==="class"?Hw(e,r,n):t==="style"?Vw(e,o,r):_n(t)?ci(t)||qw(e,t,o,r,a):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ek(e,t,r,n))?Ww(e,t,r,i,a,l,s):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),jw(e,t,r,n))};function ek(e,t,o,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&Rm.test(t)&&Ae(o)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Rm.test(t)&&yt(o)?!1:t in e}function Bm(e){let t=Uo();if(!t)return;let o=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(i=>Oc(i,n))},r=()=>{let n=e(t.proxy);Tc(t.subTree,n),o(n)};lm(r),tt(()=>{let n=new MutationObserver(r);n.observe(t.subTree.el.parentNode,{childList:!0}),sn(()=>n.disconnect())})}function Tc(e,t){if(e.shapeFlag&128){let o=e.suspense;e=o.activeBranch,o.pendingBranch&&!o.isHydrating&&o.effects.push(()=>{Tc(o.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Oc(e.el,t);else if(e.type===St)e.children.forEach(o=>Tc(o,t));else if(e.type===Ci){let{el:o,anchor:r}=e;for(;o&&(Oc(o,t),o!==r);)o=o.nextSibling}}function Oc(e,t){if(e.nodeType===1){let o=e.style;for(let r in t)o.setProperty(`--${r}`,t[r])}}var Nr="transition",Oi="animation",To=(e,{slots:t})=>b(gc,Vm(e),t);To.displayName="Transition";var Hm={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},tk=To.props=kt({},gc.props,Hm),cn=(e,t=[])=>{Ne(e)?e.forEach(o=>o(...t)):e&&e(...t)},Im=e=>e?Ne(e)?e.some(t=>t.length>1):e.length>1:!1;function Vm(e){let t={};for(let M in e)M in Hm||(t[M]=e[M]);if(e.css===!1)return t;let{name:o="v",type:r,duration:n,enterFromClass:i=`${o}-enter-from`,enterActiveClass:a=`${o}-enter-active`,enterToClass:l=`${o}-enter-to`,appearFromClass:s=i,appearActiveClass:c=a,appearToClass:d=l,leaveFromClass:u=`${o}-leave-from`,leaveActiveClass:p=`${o}-leave-active`,leaveToClass:f=`${o}-leave-to`}=e,m=ok(n),y=m&&m[0],w=m&&m[1],{onBeforeEnter:g,onEnter:O,onEnterCancelled:j,onLeave:S,onLeaveCancelled:v,onBeforeAppear:D=g,onAppear:x=O,onAppearCancelled:k=j}=t,A=(M,se,ye)=>{Rr(M,se?d:l),Rr(M,se?c:a),ye&&ye()},E=(M,se)=>{M._isLeaving=!1,Rr(M,u),Rr(M,f),Rr(M,p),se&&se()},z=M=>(se,ye)=>{let Ie=M?x:O,fe=()=>A(se,M,ye);cn(Ie,[se,fe]),Am(()=>{Rr(se,M?s:i),dr(se,M?d:l),Im(Ie)||Mm(se,r,y,fe)})};return kt(t,{onBeforeEnter(M){cn(g,[M]),dr(M,i),dr(M,a)},onBeforeAppear(M){cn(D,[M]),dr(M,s),dr(M,c)},onEnter:z(!1),onAppear:z(!0),onLeave(M,se){M._isLeaving=!0;let ye=()=>E(M,se);dr(M,u),jm(),dr(M,p),Am(()=>{M._isLeaving&&(Rr(M,u),dr(M,f),Im(S)||Mm(M,r,w,ye))}),cn(S,[M,ye])},onEnterCancelled(M){A(M,!1),cn(j,[M])},onAppearCancelled(M){A(M,!0),cn(k,[M])},onLeaveCancelled(M){E(M),cn(v,[M])}})}function ok(e){if(e==null)return null;if(it(e))return[Ec(e.enter),Ec(e.leave)];{let t=Ec(e);return[t,t]}}function Ec(e){return Dn(e)}function dr(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.add(o)),(e._vtc||(e._vtc=new Set)).add(t)}function Rr(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));let{_vtc:o}=e;o&&(o.delete(t),o.size||(e._vtc=void 0))}function Am(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var rk=0;function Mm(e,t,o,r){let n=e._endId=++rk,i=()=>{n===e._endId&&r()};if(o)return setTimeout(i,o);let{type:a,timeout:l,propCount:s}=Fm(e,t);if(!a)return r();let c=a+"end",d=0,u=()=>{e.removeEventListener(c,p),i()},p=f=>{f.target===e&&++d>=s&&u()};setTimeout(()=>{d(o[m]||"").split(", "),n=r(`${Nr}Delay`),i=r(`${Nr}Duration`),a=$m(n,i),l=r(`${Oi}Delay`),s=r(`${Oi}Duration`),c=$m(l,s),d=null,u=0,p=0;t===Nr?a>0&&(d=Nr,u=a,p=i.length):t===Oi?c>0&&(d=Oi,u=c,p=s.length):(u=Math.max(a,c),d=u>0?a>c?Nr:Oi:null,p=d?d===Nr?i.length:s.length:0);let f=d===Nr&&/\b(transform|all)(,|$)/.test(r(`${Nr}Property`).toString());return{type:d,timeout:u,propCount:p,hasTransform:f}}function $m(e,t){for(;e.lengthLm(o)+Lm(e[r])))}function Lm(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function jm(){return document.body.offsetHeight}var Wm=new WeakMap,Km=new WeakMap,nk={name:"TransitionGroup",props:kt({},tk,{tag:String,moveClass:String}),setup(e,{slots:t}){let o=Uo(),r=hc(),n,i;return bc(()=>{if(!n.length)return;let a=e.moveClass||`${e.name||"v"}-move`;if(!sk(n[0].el,o.vnode.el,a))return;n.forEach(ik),n.forEach(ak);let l=n.filter(lk);jm(),l.forEach(s=>{let c=s.el,d=c.style;dr(c,a),d.transform=d.webkitTransform=d.transitionDuration="";let u=c._moveCb=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",u),c._moveCb=null,Rr(c,a))};c.addEventListener("transitionend",u)})}),()=>{let a=Ve(e),l=Vm(a),s=a.tag||St;n=i,i=t.default?Qa(t.default()):[];for(let c=0;c{a.split(/\s+/).forEach(l=>l&&r.classList.remove(l))}),o.split(/\s+/).forEach(a=>a&&r.classList.add(a)),r.style.display="none";let n=t.nodeType===1?t:t.parentNode;n.appendChild(r);let{hasTransform:i}=Fm(r);return n.removeChild(r),i}var ck=kt({patchProp:Jw},Bw),zm;function dk(){return zm||(zm=bm(ck))}var qm=(...e)=>{let t=dk().createApp(...e),{mount:o}=t;return t.mount=r=>{let n=uk(r);if(!n)return;let i=t._component;!Ae(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.innerHTML="";let a=o(n,!1,n instanceof SVGElement);return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),a},t};function uk(e){return yt(e)?document.querySelector(e):e}var al=[],Gm=new WeakMap;function fk(){al.forEach(e=>e(...Gm.get(e))),al=[]}function Pi(e,...t){Gm.set(e,t),!al.includes(e)&&al.push(e)===1&&requestAnimationFrame(fk)}function ll(e,t){let{target:o}=e;for(;o;){if(o.dataset&&o.dataset[t]!==void 0)return!0;o=o.parentElement}return!1}function sl(e){return typeof e=="string"?e.endsWith("px")?Number(e.slice(0,e.length-2)):Number(e):e}function Ir(e){if(e!=null)return typeof e=="number"?`${e}px`:e.endsWith("px")?e:`${e}px`}function $n(e,t){let o=e.trim().split(/\s+/g),r={top:o[0]};switch(o.length){case 1:r.right=o[0],r.bottom=o[0],r.left=o[0];break;case 2:r.right=o[1],r.left=o[1],r.bottom=o[0];break;case 3:r.right=o[1],r.bottom=o[2],r.left=o[1];break;case 4:r.right=o[1],r.bottom=o[2],r.left=o[3];break;default:throw new Error("[seemly/getMargin]:"+e+" is not a valid value.")}return t===void 0?r:r[t]}var Pc={black:"#000",silver:"#C0C0C0",gray:"#808080",white:"#FFF",maroon:"#800000",red:"#F00",purple:"#800080",fuchsia:"#F0F",green:"#008000",lime:"#0F0",olive:"#808000",yellow:"#FF0",navy:"#000080",blue:"#00F",teal:"#008080",aqua:"#0FF",transparent:"#0000"};var qo="^\\s*",Go="\\s*$",Ar="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))%\\s*",lo="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))\\s*",un="([0-9A-Fa-f])",fn="([0-9A-Fa-f]{2})",VN=new RegExp(`${qo}hsl\\s*\\(${lo},${Ar},${Ar}\\)${Go}`),FN=new RegExp(`${qo}hsv\\s*\\(${lo},${Ar},${Ar}\\)${Go}`),jN=new RegExp(`${qo}hsla\\s*\\(${lo},${Ar},${Ar},${lo}\\)${Go}`),WN=new RegExp(`${qo}hsva\\s*\\(${lo},${Ar},${Ar},${lo}\\)${Go}`),pk=new RegExp(`${qo}rgb\\s*\\(${lo},${lo},${lo}\\)${Go}`),mk=new RegExp(`${qo}rgba\\s*\\(${lo},${lo},${lo},${lo}\\)${Go}`),hk=new RegExp(`${qo}#${un}${un}${un}${Go}`),gk=new RegExp(`${qo}#${fn}${fn}${fn}${Go}`),xk=new RegExp(`${qo}#${un}${un}${un}${un}${Go}`),vk=new RegExp(`${qo}#${fn}${fn}${fn}${fn}${Go}`);function to(e){return parseInt(e,16)}function vo(e){try{let t;if(t=gk.exec(e))return[to(t[1]),to(t[2]),to(t[3]),1];if(t=pk.exec(e))return[Ht(t[1]),Ht(t[5]),Ht(t[9]),1];if(t=mk.exec(e))return[Ht(t[1]),Ht(t[5]),Ht(t[9]),Ln(t[13])];if(t=hk.exec(e))return[to(t[1]+t[1]),to(t[2]+t[2]),to(t[3]+t[3]),1];if(t=vk.exec(e))return[to(t[1]),to(t[2]),to(t[3]),Ln(to(t[4])/255)];if(t=xk.exec(e))return[to(t[1]+t[1]),to(t[2]+t[2]),to(t[3]+t[3]),Ln(to(t[4]+t[4])/255)];if(e in Pc)return vo(Pc[e]);throw new Error(`[seemly/rgba]: Invalid color value ${e}.`)}catch(t){throw t}}function bk(e){return e>1?1:e<0?0:e}function Rc(e,t,o,r){return`rgba(${Ht(e)}, ${Ht(t)}, ${Ht(o)}, ${bk(r)})`}function Nc(e,t,o,r,n){return Ht((e*t*(1-r)+o*r)/n)}function xe(e,t){Array.isArray(e)||(e=vo(e)),Array.isArray(t)||(t=vo(t));let o=e[3],r=t[3],n=Ln(o+r-o*r);return Rc(Nc(e[0],o,t[0],r,n),Nc(e[1],o,t[1],r,n),Nc(e[2],o,t[2],r,n),n)}function te(e,t){let[o,r,n,i=1]=Array.isArray(e)?e:vo(e);return t.alpha?Rc(o,r,n,t.alpha):Rc(o,r,n,i)}function ur(e,t){let[o,r,n,i=1]=Array.isArray(e)?e:vo(e),{lightness:a=1,alpha:l=1}=t;return Ym([o*a,r*a,n*a,i*l])}function Ln(e){let t=Math.round(Number(e)*100)/100;return t>1?1:t<0?0:t}function Ht(e){let t=Math.round(Number(e));return t>255?255:t<0?0:t}function Ym(e){let[t,o,r]=e;return 3 in e?`rgba(${Ht(t)}, ${Ht(o)}, ${Ht(r)}, ${Ln(e[3])})`:`rgba(${Ht(t)}, ${Ht(o)}, ${Ht(r)}, 1)`}function Ic(e=8){return Math.random().toString(16).slice(2,2+e)}function Ac(e,t){let o=[];for(let r=0;rSe(o,...t));else return e(...t)}var zn=(e,...t)=>typeof e=="function"?e(...t):typeof e=="string"?Mn(e):typeof e=="number"?Mn(String(e)):null;function cl(e,t){console.error(`[naive/${e}]: ${t}`)}function dl(e,t){throw new Error(`[naive/${e}]: ${t}`)}function Bn(e){return typeof e=="string"?`s-${e}`:`n-${e}`}function Ni(e){return e.some(t=>Rn(t)?!(t.type===Kt||t.type===St&&!Ni(t.children)):!0)?e:null}function Yo(e,t){return e&&Ni(e())||t()}function ul(e,t,o){return e&&Ni(e(t))||o(t)}function Xo(e,t){let o=e&&Ni(e());return t(o||null)}function fl(e){return!(e&&Ni(e()))}function Ri(e){return e.replace(/#|\(|\)|,|\s/g,"_")}function Ck(e){let t=0;for(let o=0;o{let n=Ck(r);if(n){if(n===1){e.forEach(a=>{o.push(r.replace("&",a))});return}}else{e.forEach(a=>{o.push((a&&a+" ")+r)});return}let i=[r];for(;n--;){let a=[];i.forEach(l=>{e.forEach(s=>{a.push(l.replace("&",s))})}),i=a}i.forEach(a=>o.push(a))}),o}function Sk(e,t){let o=[];return t.split(Xm).forEach(r=>{e.forEach(n=>{o.push((n&&n+" ")+r)})}),o}function Zm(e){let t=[""];return e.forEach(o=>{o=o&&o.trim(),o&&(o.includes("&")?t=kk(t,o):t=Sk(t,o))}),t.join(", ").replace(wk," ")}function Mc(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function pn(e){return document.querySelector(`style[cssr-id="${e}"]`)}function Qm(e){let t=document.createElement("style");return t.setAttribute("cssr-id",e),t}function Ii(e){return e?/^\s*@(s|m)/.test(e):!1}var _k=/[A-Z]/g;function eh(e){return e.replace(_k,t=>"-"+t.toLowerCase())}function Ek(e,t=" "){return typeof e=="object"&&e!==null?` { +`+Object.entries(e).map(o=>t+` ${eh(o[0])}: ${o[1]};`).join(` `)+` -`+o+"}":`: ${e};`}function jF(e,o,t){return typeof e=="function"?e({context:o.context,props:t}):e}function Bc(e,o,t,r){if(!o)return"";let a=jF(o,t,r);if(!a)return"";if(typeof a=="string")return`${e} { -${a} -}`;let l=Object.keys(a);if(l.length===0)return t.config.keepEmptyBlock?e+` { -}`:"";let n=e?[e+" {"]:[];return l.forEach(i=>{let d=a[i];if(i==="raw"){n.push(` -`+d+` -`);return}i=Mc(i),d!=null&&n.push(` ${i}${zF(d)}`)}),e&&n.push("}"),n.join(` -`)}function Os(e,o,t){!e||e.forEach(r=>{if(Array.isArray(r))Os(r,o,t);else if(typeof r=="function"){let a=r(o);Array.isArray(a)?Os(a,o,t):a&&t(a)}else r&&t(r)})}function Ec(e,o,t,r,a,l){let n=e.$,i="";if(!n||typeof n=="string")Bl(n)?i=n:o.push(n);else if(typeof n=="function"){let u=n({context:r.context,props:a});Bl(u)?i=u:o.push(u)}else if(n.before&&n.before(r.context),!n.$||typeof n.$=="string")Bl(n.$)?i=n.$:o.push(n.$);else if(n.$){let u=n.$({context:r.context,props:a});Bl(u)?i=u:o.push(u)}let d=Dc(o),s=Bc(d,e.props,r,a);i?(t.push(`${i} {`),l&&s&&l.insertRule(`${i} { -${s} +`+t+"}":`: ${e};`}function Dk(e,t,o){return typeof e=="function"?e({context:t.context,props:o}):e}function Jm(e,t,o,r){if(!t)return"";let n=Dk(t,o,r);if(!n)return"";if(typeof n=="string")return`${e} { +${n} +}`;let i=Object.keys(n);if(i.length===0)return o.config.keepEmptyBlock?e+` { +}`:"";let a=e?[e+" {"]:[];return i.forEach(l=>{let s=n[l];if(l==="raw"){a.push(` +`+s+` +`);return}l=eh(l),s!=null&&a.push(` ${l}${Ek(s)}`)}),e&&a.push("}"),a.join(` +`)}function $c(e,t,o){e&&e.forEach(r=>{if(Array.isArray(r))$c(r,t,o);else if(typeof r=="function"){let n=r(t);Array.isArray(n)?$c(n,t,o):n&&o(n)}else r&&o(r)})}function th(e,t,o,r,n,i){let a=e.$,l="";if(!a||typeof a=="string")Ii(a)?l=a:t.push(a);else if(typeof a=="function"){let d=a({context:r.context,props:n});Ii(d)?l=d:t.push(d)}else if(a.before&&a.before(r.context),!a.$||typeof a.$=="string")Ii(a.$)?l=a.$:t.push(a.$);else if(a.$){let d=a.$({context:r.context,props:n});Ii(d)?l=d:t.push(d)}let s=Zm(t),c=Jm(s,e.props,r,n);l?(o.push(`${l} {`),i&&c&&i.insertRule(`${l} { +${c} } -`)):(l&&s&&l.insertRule(s),!l&&s.length&&t.push(s)),e.children&&Os(e.children,{context:r.context,props:a},u=>{if(typeof u=="string"){let f=Bc(d,{raw:u},r,a);l?l.insertRule(f):t.push(f)}else Ec(u,o,t,r,a,l)}),o.pop(),i&&t.push("}"),n&&n.after&&n.after(r.context)}function fi(e,o,t,r=!1){let a=[];return Ec(e,[],a,o,t,r?e.instance.__styleSheet:void 0),r?"":a.join(` +`)):(i&&c&&i.insertRule(c),!i&&c.length&&o.push(c)),e.children&&$c(e.children,{context:r.context,props:n},d=>{if(typeof d=="string"){let u=Jm(s,{raw:d},r,n);i?i.insertRule(u):o.push(u)}else th(d,t,o,r,n,i)}),t.pop(),l&&o.push("}"),a&&a.after&&a.after(r.context)}function pl(e,t,o,r=!1){let n=[];return th(e,[],n,t,o,r?e.instance.__styleSheet:void 0),r?"":n.join(` -`)}function $F(e){for(var o=0,t,r=0,a=e.length;a>=4;++r,a-=4)t=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,t=(t&65535)*1540483477+((t>>>16)*59797<<16),t^=t>>>24,o=(t&65535)*1540483477+((t>>>16)*59797<<16)^(o&65535)*1540483477+((o>>>16)*59797<<16);switch(a){case 3:o^=(e.charCodeAt(r+2)&255)<<16;case 2:o^=(e.charCodeAt(r+1)&255)<<8;case 1:o^=e.charCodeAt(r)&255,o=(o&65535)*1540483477+((o>>>16)*59797<<16)}return o^=o>>>13,o=(o&65535)*1540483477+((o>>>16)*59797<<16),((o^o>>>15)>>>0).toString(36)}var Tt=$F;typeof window!="undefined"&&(window.__cssrContext={});function Lc(e,o,t){let{els:r}=o;if(t===void 0)r.forEach(Rs),o.els=[];else{let a=Sa(t);a&&r.includes(a)&&(Rs(a),o.els=r.filter(l=>l!==a))}}function Nc(e,o){e.push(o)}function _c(e,o,t,r,a,l,n,i,d){if(l&&!d){if(t===void 0){console.error("[css-render/mount]: `id` is required in `silent` mode.");return}let m=window.__cssrContext;m[t]||(m[t]=!0,fi(o,e,r,l));return}let s;if(t===void 0&&(s=o.render(r),t=Tt(s)),d){d.adapter(t,s!=null?s:o.render(r));return}let u=Sa(t);if(u!==null&&!n)return u;let f=u!=null?u:Pc(t);if(s===void 0&&(s=o.render(r)),f.textContent=s,u!==null)return u;if(i){let m=document.head.querySelector(`meta[name="${i}"]`);if(m)return document.head.insertBefore(f,m),Nc(o.els,f),f}return a?document.head.insertBefore(f,document.head.querySelector("style, link")):document.head.appendChild(f),Nc(o.els,f),f}function UF(e){return fi(this,this.instance,e)}function KF(e={}){let{id:o,ssr:t,props:r,head:a=!1,silent:l=!1,force:n=!1,anchorMetaName:i}=e;return _c(this.instance,this,o,r,a,l,n,i,t)}function GF(e={}){let{id:o}=e;Lc(this.instance,this,o)}var pi=function(e,o,t,r){return{instance:e,$:o,props:t,children:r,els:[],render:UF,mount:KF,unmount:GF}},Ic=function(e,o,t,r){return Array.isArray(o)?pi(e,{$:null},null,o):Array.isArray(t)?pi(e,o,null,t):Array.isArray(r)?pi(e,o,t,r):pi(e,o,t,null)};function mi(e={}){let o=null,t={c:(...r)=>Ic(t,...r),use:(r,...a)=>r.install(t,...a),find:Sa,context:{},config:e,get __styleSheet(){if(!o){let r=document.createElement("style");return document.head.appendChild(r),o=document.styleSheets[document.styleSheets.length-1],o}return o}};return t}function Fs(e,o){if(e===void 0)return!1;if(o){let{context:{ids:t}}=o;return t.has(e)}return Sa(e)!==null}var Hc=mi;function qF(e){let o=".",t="__",r="--",a;if(e){let c=e.blockPrefix;c&&(o=c),c=e.elementPrefix,c&&(t=c),c=e.modifierPrefix,c&&(r=c)}let l={install(c){a=c.c;let R=c.context;R.bem={},R.bem.b=null,R.bem.els=null}};function n(c){let R,y;return{before(h){R=h.bem.b,y=h.bem.els,h.bem.els=null},after(h){h.bem.b=R,h.bem.els=y},$({context:h,props:A}){return c=typeof c=="string"?c:c({context:h,props:A}),h.bem.b=c,`${(A==null?void 0:A.bPrefix)||o}${h.bem.b}`}}}function i(c){let R;return{before(y){R=y.bem.els},after(y){y.bem.els=R},$({context:y,props:h}){return c=typeof c=="string"?c:c({context:y,props:h}),y.bem.els=c.split(",").map(A=>A.trim()),y.bem.els.map(A=>`${(h==null?void 0:h.bPrefix)||o}${y.bem.b}${t}${A}`).join(", ")}}}function d(c){return{$({context:R,props:y}){c=typeof c=="string"?c:c({context:R,props:y});let h=c.split(",").map(F=>F.trim());function A(F){return h.map(g=>`&${(y==null?void 0:y.bPrefix)||o}${R.bem.b}${F!==void 0?`${t}${F}`:""}${r}${g}`).join(", ")}let z=R.bem.els;return z!==null?A(z[0]):A()}}}function s(c){return{$({context:R,props:y}){c=typeof c=="string"?c:c({context:R,props:y});let h=R.bem.els;return`&:not(${(y==null?void 0:y.bPrefix)||o}${R.bem.b}${h!==null&&h.length>0?`${t}${h[0]}`:""}${r}${c})`}}}return Object.assign(l,{cB:(...c)=>a(n(c[0]),c[1],c[2]),cE:(...c)=>a(i(c[0]),c[1],c[2]),cM:(...c)=>a(d(c[0]),c[1],c[2]),cNotM:(...c)=>a(s(c[0]),c[1],c[2])}),l}var Vc=qF;function Be(e,o){return e+(o==="default"?"":o.replace(/^[a-z]/,t=>t.toUpperCase()))}Be("abc","def");var QF="n",El=`.${QF}-`,ZF="__",YF="--",Wc=Hc(),zc=Vc({blockPrefix:El,elementPrefix:ZF,modifierPrefix:YF});Wc.use(zc);var{c:J,find:_E}=Wc,{cB:$,cE:oe,cM:Te,cNotM:ct}=zc;function ci(e){return J(({props:{bPrefix:o}})=>`${o||El}modal, ${o||El}drawer`,[e])}function hi(e){return J(({props:{bPrefix:o}})=>`${o||El}popover:not(${o||El}tooltip)`,[e])}function xi(e){let o=Z(!!e.value);if(o.value)return Br(o);let t=io(e,r=>{r&&(o.value=!0,t())});return Br(o)}function XF(e){let o=W(e),t=Z(o.value);return io(o,r=>{t.value=r}),typeof e=="function"?t:{__v_isRef:!0,get value(){return t.value},set value(r){e.set(r)}}}var po=XF;var jc=typeof window!="undefined";var ja,Ll,JF=()=>{var e,o;ja=jc?(o=(e=document)===null||e===void 0?void 0:e.fonts)===null||o===void 0?void 0:o.ready:void 0,Ll=!1,ja!==void 0?ja.then(()=>{Ll=!0}):Ll=!0};JF();function Si(e){if(Ll)return;let o=!1;so(()=>{Ll||ja==null||ja.then(()=>{o||e()})}),Wo(()=>{o=!0})}var eC={mousemoveoutside:new WeakMap,clickoutside:new WeakMap};function oC(e,o,t){if(e==="mousemoveoutside"){let r=a=>{o.contains(a.target)||t(a)};return{mousemove:r,touchstart:r}}else if(e==="clickoutside"){let r=!1,a=n=>{r=!o.contains(n.target)},l=n=>{!r||o.contains(n.target)||t(n)};return{mousedown:a,mouseup:l,touchstart:a,touchend:l}}return console.error(`[evtd/create-trap-handler]: name \`${e}\` is invalid. This could be a bug of evtd.`),{}}function $c(e,o,t){let r=eC[e],a=r.get(o);a===void 0&&r.set(o,a=new WeakMap);let l=a.get(t);return l===void 0&&a.set(t,l=oC(e,o,t)),l}function Uc(e,o,t,r){if(e==="mousemoveoutside"||e==="clickoutside"){let a=$c(e,o,t);return Object.keys(a).forEach(l=>{ko(l,document,a[l],r)}),!0}return!1}function Kc(e,o,t,r){if(e==="mousemoveoutside"||e==="clickoutside"){let a=$c(e,o,t);return Object.keys(a).forEach(l=>{yo(l,document,a[l],r)}),!0}return!1}function tC(){if(typeof window=="undefined")return{on:()=>{},off:()=>{}};let e=new WeakMap,o=new WeakMap;function t(){e.set(this,!0)}function r(){e.set(this,!0),o.set(this,!0)}function a(S,b,B){let v=S[b];return S[b]=function(){return B.apply(S,arguments),v.apply(S,arguments)},S}function l(S,b){S[b]=Event.prototype[b]}let n=new WeakMap,i=Object.getOwnPropertyDescriptor(Event.prototype,"currentTarget");function d(){var S;return(S=n.get(this))!==null&&S!==void 0?S:null}function s(S,b){i!==void 0&&Object.defineProperty(S,"currentTarget",{configurable:!0,enumerable:!0,get:b!=null?b:i.get})}let u={bubble:{},capture:{}},f={};function m(){let S=function(b){let{type:B,eventPhase:v,target:_,bubbles:E}=b;if(v===2)return;let se=v===1?"capture":"bubble",Fe=_,Ee=[];for(;Fe===null&&(Fe=window),Ee.push(Fe),Fe!==window;)Fe=Fe.parentNode||null;let pe=u.capture[B],fe=u.bubble[B];if(a(b,"stopPropagation",t),a(b,"stopImmediatePropagation",r),s(b,d),se==="capture"){if(pe===void 0)return;for(let Re=Ee.length-1;Re>=0&&!e.has(b);--Re){let eo=Ee[Re],oo=pe.get(eo);if(oo!==void 0){n.set(b,eo);for(let Qe of oo){if(o.has(b))break;Qe(b)}}if(Re===0&&!E&&fe!==void 0){let Qe=fe.get(eo);if(Qe!==void 0)for(let fo of Qe){if(o.has(b))break;fo(b)}}}}else if(se==="bubble"){if(fe===void 0)return;for(let Re=0;ReE(b))};return S.displayName="evtdUnifiedWindowEventHandler",S}let c=m(),R=p();function y(S,b){let B=u[S];return B[b]===void 0&&(B[b]=new Map,window.addEventListener(b,c,S==="capture")),B[b]}function h(S){return f[S]===void 0&&(f[S]=new Set,window.addEventListener(S,R)),f[S]}function A(S,b){let B=S.get(b);return B===void 0&&S.set(b,B=new Set),B}function z(S,b,B,v){let _=u[b][B];if(_!==void 0){let E=_.get(S);if(E!==void 0&&E.has(v))return!0}return!1}function F(S,b){let B=f[S];return!!(B!==void 0&&B.has(b))}function g(S,b,B,v){let _;if(typeof v=="object"&&v.once===!0?_=pe=>{k(S,b,_,v),B(pe)}:_=B,Uc(S,b,_,v))return;let se=v===!0||typeof v=="object"&&v.capture===!0?"capture":"bubble",Fe=y(se,S),Ee=A(Fe,b);if(Ee.has(_)||Ee.add(_),b===window){let pe=h(S);pe.has(_)||pe.add(_)}}function k(S,b,B,v){if(Kc(S,b,B,v))return;let E=v===!0||typeof v=="object"&&v.capture===!0,se=E?"capture":"bubble",Fe=y(se,S),Ee=A(Fe,b);if(b===window&&!z(b,E?"bubble":"capture",S,B)&&F(S,B)){let fe=f[S];fe.delete(B),fe.size===0&&(window.removeEventListener(S,R),f[S]=void 0)}Ee.has(B)&&Ee.delete(B),Ee.size===0&&Fe.delete(b),Fe.size===0&&(window.removeEventListener(S,c,se==="capture"),u[se][S]=void 0)}return{on:g,off:k}}var{on:ko,off:yo}=tC();function dt(e,o){return io(e,t=>{t!==void 0&&(o.value=t)}),W(()=>e.value===void 0?o.value:e.value)}function zr(){let e=Z(!1);return so(()=>{e.value=!0}),Br(e)}var rC=(typeof window=="undefined"?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)&&!window.MSStream;function gi(){return rC}var cL=So("n-internal-select-menu"),Gc=So("n-internal-select-menu-body");var qc=So("n-modal-body"),SL=So("n-modal");var Qc=So("n-drawer-body"),TL=So("n-drawer");var Zc=So("n-popover-body");var Yc="__disabled__";function ga(e){let o=Ce(qc,null),t=Ce(Qc,null),r=Ce(Zc,null),a=Ce(Gc,null),l=Z();if(typeof document!="undefined"){l.value=document.fullscreenElement;let n=()=>{l.value=document.fullscreenElement};so(()=>{ko("fullscreenchange",document,n)}),Wo(()=>{yo("fullscreenchange",document,n)})}return po(()=>{var n;let{to:i}=e;return i!==void 0?i===!1?Yc:i===!0?l.value||"body":i:(o==null?void 0:o.value)?(n=o.value.$el)!==null&&n!==void 0?n:o.value:(t==null?void 0:t.value)?t.value:(r==null?void 0:r.value)?r.value:(a==null?void 0:a.value)?a.value:i!=null?i:l.value||"body"})}ga.tdkey=Yc;ga.propTo={type:[String,Object,Boolean],default:void 0};function Nl(e,o,t="default"){let r=o[t];if(r===void 0)throw new Error(`[vueuc/${e}]: slot[${t}] is empty.`);return r()}function Cs(e,o=!0,t=[]){return e.forEach(r=>{if(r!==null){if(typeof r!="object"){(typeof r=="string"||typeof r=="number")&&t.push(_a(String(r)));return}if(Array.isArray(r)){Cs(r,o,t);return}if(r.type===_o){if(r.children===null)return;Array.isArray(r.children)&&Cs(r.children,o,t)}else r.type!==tt&&t.push(r)}}),t}function bs(e,o,t="default"){let r=o[t];if(r===void 0)throw new Error(`[vueuc/${e}]: slot[${t}] is empty.`);let a=Cs(r());if(a.length===1)return a[0];throw new Error(`[vueuc/${e}]: slot[${t}] should have exactly one child.`)}var jr=null;function Xc(){if(jr===null&&(jr=document.getElementById("v-binder-view-measurer"),jr===null)){jr=document.createElement("div"),jr.id="v-binder-view-measurer";let{style:e}=jr;e.position="fixed",e.left="0",e.right="0",e.top="0",e.bottom="0",e.pointerEvents="none",e.visibility="hidden",document.body.appendChild(jr)}return jr.getBoundingClientRect()}function Jc(e,o){let t=Xc();return{top:o,left:e,height:0,width:0,right:t.width-e,bottom:t.height-o}}function wi(e){let o=e.getBoundingClientRect(),t=Xc();return{left:o.left-t.left,top:o.top-t.top,bottom:t.height+t.top-o.bottom,right:t.width+t.left-o.right,width:o.width,height:o.height}}function aC(e){return e.nodeType===9?null:e.parentNode}function ys(e){if(e===null)return null;let o=aC(e);if(o===null)return null;if(o.nodeType===9)return document;if(o.nodeType===1){let{overflow:t,overflowX:r,overflowY:a}=getComputedStyle(o);if(/(auto|scroll|overlay)/.test(t+a+r))return o}return ys(o)}var lC=ae({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){var o;nt("VBinder",(o=vt())===null||o===void 0?void 0:o.proxy);let t=Ce("VBinder",null),r=Z(null),a=h=>{r.value=h,t&&e.syncTargetWithParent&&t.setTargetRef(h)},l=[],n=()=>{let h=r.value;for(;h=ys(h),h!==null;)l.push(h);for(let A of l)ko("scroll",A,f,!0)},i=()=>{for(let h of l)yo("scroll",h,f,!0);l=[]},d=new Set,s=h=>{d.size===0&&n(),d.has(h)||d.add(h)},u=h=>{d.has(h)&&d.delete(h),d.size===0&&i()},f=()=>{Dl(m)},m=()=>{d.forEach(h=>h())},p=new Set,c=h=>{p.size===0&&ko("resize",window,y),p.has(h)||p.add(h)},R=h=>{p.has(h)&&p.delete(h),p.size===0&&yo("resize",window,y)},y=()=>{p.forEach(h=>h())};return Wo(()=>{yo("resize",window,y),i()}),{targetRef:r,setTargetRef:a,addScrollListener:s,removeScrollListener:u,addResizeListener:c,removeResizeListener:R}},render(){return Nl("binder",this.$slots)}}),Ti=lC;var Ri=ae({name:"Target",setup(){let{setTargetRef:e,syncTarget:o}=Ce("VBinder");return{syncTarget:o,setTargetDirective:{mounted:e,updated:e}}},render(){let{syncTarget:e,setTargetDirective:o}=this;return e?Zn(bs("follower",this.$slots),[[o]]):bs("follower",this.$slots)}});var $L=new Set;function eh(e,o){console.error(`[vdirs/${e}]: ${o}`)}var oh=class{constructor(){this.elementZIndex=new Map,this.nextZIndex=2e3}get elementCount(){return this.elementZIndex.size}ensureZIndex(o,t){let{elementZIndex:r}=this;if(t!==void 0){o.style.zIndex=`${t}`,r.delete(o);return}let{nextZIndex:a}=this;r.has(o)&&r.get(o)+1===this.nextZIndex||(o.style.zIndex=`${a}`,r.set(o,a),this.nextZIndex=a+1,this.squashState())}unregister(o,t){let{elementZIndex:r}=this;r.has(o)?r.delete(o):t===void 0&&eh("z-index-manager/unregister-element","Element not found when unregistering."),this.squashState()}squashState(){let{elementCount:o}=this;o||(this.nextZIndex=2e3),this.nextZIndex-o>2500&&this.rearrange()}rearrange(){let o=Array.from(this.elementZIndex.entries());o.sort((t,r)=>t[1]-r[1]),this.nextZIndex=2e3,o.forEach(t=>{let r=t[0],a=this.nextZIndex++;`${a}`!==r.style.zIndex&&(r.style.zIndex=`${a}`)})}},Oi=new oh;var $a="@@ziContext",nC={mounted(e,o){let{value:t={}}=o,{zIndex:r,enabled:a}=t;e[$a]={enabled:!!a,initialized:!1},a&&(Oi.ensureZIndex(e,r),e[$a].initialized=!0)},updated(e,o){let{value:t={}}=o,{zIndex:r,enabled:a}=t,l=e[$a].enabled;a&&!l&&(Oi.ensureZIndex(e,r),e[$a].initialized=!0),e[$a].enabled=!!a},unmounted(e,o){if(!e[$a].initialized)return;let{value:t={}}=o,{zIndex:r}=t;Oi.unregister(e,r)}},vs=nC;var th=Symbol("@css-render/vue3-ssr");function iC(e,o){return``}function dC(e,o){let t=Ce(th,null);if(t===null){console.error("[css-render/vue3-ssr]: no ssr context found.");return}let{styles:r,ids:a}=t;a.has(e)||r!==null&&(a.add(e),r.push(iC(e,o)))}function At(){let e=Ce(th,null);if(e!==null)return{adapter:dC,context:e}}function Fi(e,o){console.error(`[vueuc/${e}]: ${o}`)}var{c:rr}=mi();var _l="vueuc-style";function rh(e){return e&-e}var Ci=class{constructor(o,t){this.l=o,this.min=t;let r=new Array(o+1);for(let a=0;aa)throw new Error("[FinweckTree.sum]: `i` is larger than length.");let l=o*r;for(;o>0;)l+=t[o],o-=rh(o);return l}getBound(o){let t=0,r=this.l;for(;r>t;){let a=Math.floor((t+r)/2),l=this.sum(a);if(l>o){r=a;continue}else if(l{let{to:o}=e;return o!=null?o:"body"})}},render(){return this.showTeleport?this.disabled?Nl("lazy-teleport",this.$slots):w(Qm,{disabled:this.disabled,to:this.mergedTo},Nl("lazy-teleport",this.$slots)):null}});var bi={top:"bottom",bottom:"top",left:"right",right:"left"},lh={start:"end",center:"center",end:"start"},ks={top:"height",bottom:"height",left:"width",right:"width"},sC={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},uC={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},fC={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},nh={top:!0,bottom:!1,left:!0,right:!1},ih={top:"end",bottom:"start",left:"end",right:"start"};function dh(e,o,t,r,a,l){if(!a||l)return{placement:e,top:0,left:0};let[n,i]=e.split("-"),d=i!=null?i:"center",s={top:0,left:0},u=(p,c,R)=>{let y=0,h=0,A=t[p]-o[c]-o[p];return A>0&&r&&(R?h=nh[c]?A:-A:y=nh[c]?A:-A),{left:y,top:h}},f=n==="left"||n==="right";if(d!=="center"){let p=fC[e],c=bi[p],R=ks[p];if(t[R]>o[R]){if(o[p]+o[R]o[c]&&(d=lh[i])}else{let p=n==="bottom"||n==="top"?"left":"top",c=bi[p],R=ks[p],y=(t[R]-o[R])/2;(o[p]o[c]?(d=ih[p],s=u(R,p,f)):(d=ih[c],s=u(R,c,f)))}let m=n;return o[n] *",{pointerEvents:"all"})])]),yi=ae({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){let o=Ce("VBinder"),t=po(()=>e.enabled!==void 0?e.enabled:e.show),r=Z(null),a=Z(null),l=()=>{let{syncTrigger:m}=e;m.includes("scroll")&&o.addScrollListener(d),m.includes("resize")&&o.addResizeListener(d)},n=()=>{o.removeScrollListener(d),o.removeResizeListener(d)};so(()=>{t.value&&(d(),l())});let i=At();pC.mount({id:"vueuc/binder",head:!0,anchorMetaName:_l,ssr:i}),Wo(()=>{n()}),Si(()=>{t.value&&d()});let d=()=>{if(!t.value)return;let m=r.value;if(m===null)return;let p=o.targetRef,{x:c,y:R,overlap:y}=e,h=c!==void 0&&R!==void 0?Jc(c,R):wi(p);m.style.setProperty("--v-target-width",`${Math.round(h.width)}px`),m.style.setProperty("--v-target-height",`${Math.round(h.height)}px`);let{width:A,minWidth:z,placement:F,internalShift:g,flip:k}=e;m.setAttribute("v-placement",F),y?m.setAttribute("v-overlap",""):m.removeAttribute("v-overlap");let{style:S}=m;A==="target"?S.width=`${h.width}px`:A!==void 0?S.width=A:S.width="",z==="target"?S.minWidth=`${h.width}px`:z!==void 0?S.minWidth=z:S.minWidth="";let b=wi(m),B=wi(a.value),{left:v,top:_,placement:E}=dh(F,h,b,g,k,y),se=sh(E,y),{left:Fe,top:Ee,transform:pe}=uh(E,B,h,_,v,y);m.setAttribute("v-placement",E),m.style.setProperty("--v-offset-left",`${Math.round(v)}px`),m.style.setProperty("--v-offset-top",`${Math.round(_)}px`),m.style.transform=`translateX(${Fe}) translateY(${Ee}) ${pe}`,m.style.transformOrigin=se};io(t,m=>{m?(l(),s()):n()});let s=()=>{Qo().then(d).catch(m=>console.error(m))};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(m=>{io(_e(e,m),d)}),["teleportDisabled"].forEach(m=>{io(_e(e,m),s)}),io(_e(e,"syncTrigger"),m=>{m.includes("resize")?o.addResizeListener(d):o.removeResizeListener(d),m.includes("scroll")?o.addScrollListener(d):o.removeScrollListener(d)});let u=zr(),f=po(()=>{let{to:m}=e;if(m!==void 0)return m;!u.value});return{VBinder:o,mergedEnabled:t,offsetContainerRef:a,followerRef:r,mergedTo:f,syncPosition:d}},render(){return w(ah,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e,o;let t=w("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[w("div",{class:"v-binder-follower-content",ref:"followerRef"},(o=(e=this.$slots).default)===null||o===void 0?void 0:o.call(e))]);return this.zindexable?Zn(t,[[vs,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):t}})}});var Dt=[];var fh=function(){return Dt.some(function(e){return e.activeTargets.length>0})};var ph=function(){return Dt.some(function(e){return e.skippedTargets.length>0})};var mh="ResizeObserver loop completed with undelivered notifications.",ch=function(){var e;typeof ErrorEvent=="function"?e=new ErrorEvent("error",{message:mh}):(e=document.createEvent("Event"),e.initEvent("error",!1,!1),e.message=mh),window.dispatchEvent(e)};var wa;(function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(wa||(wa={}));var Ht=function(e){return Object.freeze(e)};var As=function(){function e(o,t){this.inlineSize=o,this.blockSize=t,Ht(this)}return e}();var Ds=function(){function e(o,t,r,a){return this.x=o,this.y=t,this.width=r,this.height=a,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,Ht(this)}return e.prototype.toJSON=function(){var o=this,t=o.x,r=o.y,a=o.top,l=o.right,n=o.bottom,i=o.left,d=o.width,s=o.height;return{x:t,y:r,top:a,right:l,bottom:n,left:i,width:d,height:s}},e.fromRect=function(o){return new e(o.x,o.y,o.width,o.height)},e}();var Il=function(e){return e instanceof SVGElement&&"getBBox"in e},vi=function(e){if(Il(e)){var o=e.getBBox(),t=o.width,r=o.height;return!t&&!r}var a=e,l=a.offsetWidth,n=a.offsetHeight;return!(l||n||e.getClientRects().length)},Ps=function(e){var o,t;if(e instanceof Element)return!0;var r=(t=(o=e)===null||o===void 0?void 0:o.ownerDocument)===null||t===void 0?void 0:t.defaultView;return!!(r&&e instanceof r.Element)},hh=function(e){switch(e.tagName){case"INPUT":if(e.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1};var Ta=typeof window!="undefined"?window:{};var ki=new WeakMap,xh=/auto|scroll/,mC=/^tb|vertical/,cC=/msie|trident/i.test(Ta.navigator&&Ta.navigator.userAgent),ar=function(e){return parseFloat(e||"0")},Ua=function(e,o,t){return e===void 0&&(e=0),o===void 0&&(o=0),t===void 0&&(t=!1),new As((t?o:e)||0,(t?e:o)||0)},Sh=Ht({devicePixelContentBoxSize:Ua(),borderBoxSize:Ua(),contentBoxSize:Ua(),contentRect:new Ds(0,0,0,0)}),Ms=function(e,o){if(o===void 0&&(o=!1),ki.has(e)&&!o)return ki.get(e);if(vi(e))return ki.set(e,Sh),Sh;var t=getComputedStyle(e),r=Il(e)&&e.ownerSVGElement&&e.getBBox(),a=!cC&&t.boxSizing==="border-box",l=mC.test(t.writingMode||""),n=!r&&xh.test(t.overflowY||""),i=!r&&xh.test(t.overflowX||""),d=r?0:ar(t.paddingTop),s=r?0:ar(t.paddingRight),u=r?0:ar(t.paddingBottom),f=r?0:ar(t.paddingLeft),m=r?0:ar(t.borderTopWidth),p=r?0:ar(t.borderRightWidth),c=r?0:ar(t.borderBottomWidth),R=r?0:ar(t.borderLeftWidth),y=f+s,h=d+u,A=R+p,z=m+c,F=i?e.offsetHeight-z-e.clientHeight:0,g=n?e.offsetWidth-A-e.clientWidth:0,k=a?y+A:0,S=a?h+z:0,b=r?r.width:ar(t.width)-k-g,B=r?r.height:ar(t.height)-S-F,v=b+y+g+A,_=B+h+F+z,E=Ht({devicePixelContentBoxSize:Ua(Math.round(b*devicePixelRatio),Math.round(B*devicePixelRatio),l),borderBoxSize:Ua(v,_,l),contentBoxSize:Ua(b,B,l),contentRect:new Ds(f,d,b,B)});return ki.set(e,E),E},Ai=function(e,o,t){var r=Ms(e,t),a=r.borderBoxSize,l=r.contentBoxSize,n=r.devicePixelContentBoxSize;switch(o){case wa.DEVICE_PIXEL_CONTENT_BOX:return n;case wa.BORDER_BOX:return a;default:return l}};var Bs=function(){function e(o){var t=Ms(o);this.target=o,this.contentRect=t.contentRect,this.borderBoxSize=Ht([t.borderBoxSize]),this.contentBoxSize=Ht([t.contentBoxSize]),this.devicePixelContentBoxSize=Ht([t.devicePixelContentBoxSize])}return e}();var Di=function(e){if(vi(e))return 1/0;for(var o=0,t=e.parentNode;t;)o+=1,t=t.parentNode;return o};var gh=function(){var e=1/0,o=[];Dt.forEach(function(n){if(n.activeTargets.length!==0){var i=[];n.activeTargets.forEach(function(s){var u=new Bs(s.target),f=Di(s.target);i.push(u),s.lastReportedSize=Ai(s.target,s.observedBox),fe?t.activeTargets.push(a):t.skippedTargets.push(a))})})};var wh=function(){var e=0;for(Es(e);fh();)e=gh(),Es(e);return ph()&&ch(),e>0};var Ls,Th=[],hC=function(){return Th.splice(0).forEach(function(e){return e()})},Rh=function(e){if(!Ls){var o=0,t=document.createTextNode(""),r={characterData:!0};new MutationObserver(function(){return hC()}).observe(t,r),Ls=function(){t.textContent=""+(o?o--:o++)}}Th.push(e),Ls()};var Oh=function(e){Rh(function(){requestAnimationFrame(e)})};var Pi=0,xC=function(){return!!Pi},SC=250,gC={attributes:!0,characterData:!0,childList:!0,subtree:!0},Fh=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],Ch=function(e){return e===void 0&&(e=0),Date.now()+e},Ns=!1,wC=function(){function e(){var o=this;this.stopped=!0,this.listener=function(){return o.schedule()}}return e.prototype.run=function(o){var t=this;if(o===void 0&&(o=SC),!Ns){Ns=!0;var r=Ch(o);Oh(function(){var a=!1;try{a=wh()}finally{if(Ns=!1,o=r-Ch(),!xC())return;a?t.run(1e3):o>0?t.run(o):t.start()}})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var o=this,t=function(){return o.observer&&o.observer.observe(document.body,gC)};document.body?t():Ta.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var o=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),Fh.forEach(function(t){return Ta.addEventListener(t,o.listener,!0)}))},e.prototype.stop=function(){var o=this;this.stopped||(this.observer&&this.observer.disconnect(),Fh.forEach(function(t){return Ta.removeEventListener(t,o.listener,!0)}),this.stopped=!0)},e}(),Mi=new wC,_s=function(e){!Pi&&e>0&&Mi.start(),Pi+=e,!Pi&&Mi.stop()};var TC=function(e){return!Il(e)&&!hh(e)&&getComputedStyle(e).display==="inline"},bh=function(){function e(o,t){this.target=o,this.observedBox=t||wa.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var o=Ai(this.target,this.observedBox,!0);return TC(this.target)&&(this.lastReportedSize=o),this.lastReportedSize.inlineSize!==o.inlineSize||this.lastReportedSize.blockSize!==o.blockSize},e}();var yh=function(){function e(o,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=o,this.callback=t}return e}();var Bi=new WeakMap,vh=function(e,o){for(var t=0;t=0&&(l&&Dt.splice(Dt.indexOf(r),1),r.observationTargets.splice(a,1),_s(-1))},e.disconnect=function(o){var t=this,r=Bi.get(o);r.observationTargets.slice().forEach(function(a){return t.unobserve(o,a.target)}),r.activeTargets.splice(0,r.activeTargets.length)},e}();var Is=function(){function e(o){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof o!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");Hl.connect(this,o)}return e.prototype.observe=function(o,t){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Ps(o))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");Hl.observe(this,o,t)},e.prototype.unobserve=function(o){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Ps(o))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");Hl.unobserve(this,o)},e.prototype.disconnect=function(){Hl.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}();var kh=class{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new Is(this.handleResize),this.elHandlersMap=new Map}handleResize(o){for(let t of o){let r=this.elHandlersMap.get(t.target);r!==void 0&&r(t)}}registerHandler(o,t){this.elHandlersMap.set(o,t),this.observer.observe(o)}unregisterHandler(o){!this.elHandlersMap.has(o)||(this.elHandlersMap.delete(o),this.observer.unobserve(o))}},Ei=new kh;var Vt=ae({name:"ResizeObserver",props:{onResize:Function},setup(e){return{registered:!1,handleResize(o){let{onResize:t}=e;t!==void 0&&t(o)}}},mounted(){let e=this.$el;if(e===void 0){Fi("resize-observer","$el does not exist.");return}if(e.nextElementSibling!==e.nextSibling&&e.nodeType===3&&e.nodeValue!==""){Fi("resize-observer","$el can not be observed (it may be a text node).");return}e.nextElementSibling!==null&&(Ei.registerHandler(e.nextElementSibling,this.handleResize),this.registered=!0)},beforeUnmount(){this.registered&&Ei.unregisterHandler(this.$el.nextElementSibling)},render(){return La(this.$slots,"default")}});var RC=rr(".v-vl",{maxHeight:"inherit",height:"100%",overflow:"auto",minWidth:"1px"},[rr("&:not(.v-vl--show-scrollbar)",{scrollbarWidth:"none"},[rr("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",{width:0,height:0,display:"none"})])]),Vl=ae({name:"VirtualList",inheritAttrs:!1,props:{showScrollbar:{type:Boolean,default:!0},items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:"div"},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:"key"},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){let o=At();RC.mount({id:"vueuc/virtual-list",head:!0,anchorMetaName:_l,ssr:o}),so(()=>{let{defaultScrollIndex:g,defaultScrollKey:k}=e;g!=null?f({index:g}):k!=null&&f({key:k})}),Zd(()=>{f({top:d.value})});let t=W(()=>{let g=new Map,{keyField:k}=e;return e.items.forEach((S,b)=>{g.set(S[k],b)}),g}),r=Z(null),a=Z(void 0),l=new Map,n=W(()=>{let{items:g,itemSize:k,keyField:S}=e,b=new Ci(g.length,k);return g.forEach((B,v)=>{let _=B[S],E=l.get(_);E!==void 0&&b.add(v,E)}),b}),i=Z(0),d=Z(0),s=po(()=>Math.max(n.value.getBound(d.value-ni(e.paddingTop))-1,0)),u=W(()=>{let{value:g}=a;if(g===void 0)return[];let{items:k,itemSize:S}=e,b=s.value,B=Math.min(b+Math.ceil(g/S+1),k.length-1),v=[];for(let _=b;_<=B;++_)v.push(k[_]);return v}),f=g=>{let{left:k,top:S,index:b,key:B,position:v,behavior:_,debounce:E=!0}=g;if(k!==void 0||S!==void 0)p(k,S,_);else if(b!==void 0)m(b,_,E);else if(B!==void 0){let se=t.value.get(B);se!==void 0&&m(se,_,E)}else v==="bottom"?p(0,Number.MAX_SAFE_INTEGER,_):v==="top"&&p(0,0,_)};function m(g,k,S){let{value:b}=n,B=b.sum(g)+ni(e.paddingTop);if(!S)r.value.scrollTo({left:0,top:B,behavior:k});else{let{scrollTop:v,offsetHeight:_}=r.value;if(B>v){let E=b.get(g);B+E<=v+_||r.value.scrollTo({left:0,top:B+E-_,behavior:k})}else r.value.scrollTo({left:0,top:B,behavior:k})}h=g}function p(g,k,S){r.value.scrollTo({left:g,top:k,behavior:S})}function c(g,k){var S,b,B,v;if(e.ignoreItemResize||F(k.target))return;let{value:_}=n,E=t.value.get(g),se=_.get(E),Fe=(B=(b=(S=k.borderBoxSize)===null||S===void 0?void 0:S[0])===null||b===void 0?void 0:b.blockSize)!==null&&B!==void 0?B:k.contentRect.height;if(Fe===se)return;Fe-e.itemSize===0?l.delete(g):l.set(g,Fe-e.itemSize);let pe=Fe-se;pe!==0&&(A!==void 0&&E<=A&&((v=r.value)===null||v===void 0||v.scrollBy(0,pe)),_.add(E,pe),i.value++)}function R(g){Dl(z);let{onScroll:k}=e;k!==void 0&&k(g)}function y(g){if(F(g.target)||g.contentRect.height===a.value)return;a.value=g.contentRect.height;let{onResize:k}=e;k!==void 0&&k(g)}let h,A;function z(){let{value:g}=r;g!=null&&(A=h!=null?h:s.value,h=void 0,d.value=r.value.scrollTop)}function F(g){let k=g;for(;k!==null;){if(k.style.display==="none")return!0;k=k.parentElement}return!1}return{listHeight:a,listStyle:{overflow:"auto"},keyToIndex:t,itemsStyle:W(()=>{let{itemResizable:g}=e,k=Vr(n.value.sum());return i.value,[e.itemsStyle,{boxSizing:"content-box",height:g?"":k,minHeight:g?k:"",paddingTop:Vr(e.paddingTop),paddingBottom:Vr(e.paddingBottom)}]}),visibleItemsStyle:W(()=>(i.value,{transform:`translateY(${Vr(n.value.sum(s.value))})`})),viewportItems:u,listElRef:r,itemsElRef:Z(null),scrollTo:f,handleListResize:y,handleListScroll:R,handleItemResize:c}},render(){let{itemResizable:e,keyField:o,keyToIndex:t,visibleItemsTag:r}=this;return w(Vt,{onResize:this.handleListResize},{default:()=>{var a,l;return w("div",vl(this.$attrs,{class:["v-vl",this.showScrollbar&&"v-vl--show-scrollbar"],onScroll:this.handleListScroll,onWheel:this.onWheel,ref:"listElRef"}),[this.items.length!==0?w("div",{ref:"itemsElRef",class:"v-vl-items",style:this.itemsStyle},[w(r,Object.assign({class:"v-vl-visible-items",style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>this.viewportItems.map(n=>{let i=n[o],d=t.get(i),s=this.$slots.default({item:n,index:d})[0];return e?w(Vt,{key:i,onResize:u=>this.handleItemResize(i,u)},{default:()=>s}):(s.key=i,s)})})]):(l=(a=this.$slots).empty)===null||l===void 0?void 0:l.call(a)])}})}});var Ah=So("n-form-item");function Pt(e,{defaultSize:o="medium",mergedSize:t,mergedDisabled:r}={}){let a=Ce(Ah,null);nt(Ah,null);let l=W(t?()=>t(a):()=>{let{size:d}=e;if(d)return d;if(a){let{mergedSize:s}=a;if(s.value!==void 0)return s.value}return o}),n=W(r?()=>r(a):()=>{let{disabled:d}=e;return d!==void 0?d:a?a.disabled.value:!1}),i=W(()=>{let{status:d}=e;return d||(a==null?void 0:a.mergedValidationStatus.value)});return Wo(()=>{a&&a.restoreValidation()}),{mergedSizeRef:l,mergedDisabledRef:n,mergedStatusRef:i,nTriggerFormBlur(){a&&a.handleContentBlur()},nTriggerFormChange(){a&&a.handleContentChange()},nTriggerFormFocus(){a&&a.handleContentFocus()},nTriggerFormInput(){a&&a.handleContentInput()}}}var OC=typeof global=="object"&&global&&global.Object===Object&&global,Li=OC;var FC=typeof self=="object"&&self&&self.Object===Object&&self,CC=Li||FC||Function("return this")(),Mt=CC;var bC=Mt.Symbol,Or=bC;var Dh=Object.prototype,yC=Dh.hasOwnProperty,vC=Dh.toString,Wl=Or?Or.toStringTag:void 0;function kC(e){var o=yC.call(e,Wl),t=e[Wl];try{e[Wl]=void 0;var r=!0}catch(l){}var a=vC.call(e);return r&&(o?e[Wl]=t:delete e[Wl]),a}var Ph=kC;var AC=Object.prototype,DC=AC.toString;function PC(e){return DC.call(e)}var Mh=PC;var MC="[object Null]",BC="[object Undefined]",Bh=Or?Or.toStringTag:void 0;function EC(e){return e==null?e===void 0?BC:MC:Bh&&Bh in Object(e)?Ph(e):Mh(e)}var lr=EC;function LC(e){return e!=null&&typeof e=="object"}var Bt=LC;var NC="[object Symbol]";function _C(e){return typeof e=="symbol"||Bt(e)&&lr(e)==NC}var Eh=_C;function IC(e,o){for(var t=-1,r=e==null?0:e.length,a=Array(r);++t0){if(++o>=pb)return arguments[0]}else o=0;return e.apply(void 0,arguments)}}var Qh=hb;function xb(e){return function(){return e}}var Zh=xb;var Sb=function(){try{var e=Ga(Object,"defineProperty");return e({},"",{}),e}catch(o){}}(),qa=Sb;var gb=qa?function(e,o){return qa(e,"toString",{configurable:!0,enumerable:!1,value:Zh(o),writable:!0})}:Ni,Yh=gb;var wb=Qh(Yh),Xh=wb;var Tb=9007199254740991,Rb=/^(?:0|[1-9]\d*)$/;function Ob(e,o){var t=typeof e;return o=o==null?Tb:o,!!o&&(t=="number"||t!="symbol"&&Rb.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=Pb}var Hi=Mb;function Bb(e){return e!=null&&Hi(e.length)&&!Ka(e)}var Za=Bb;function Eb(e,o,t){if(!ht(t))return!1;var r=typeof o;return(r=="number"?Za(t)&&Ii(o,t.length):r=="string"&&o in t)?$r(t[o],e):!1}var ax=Eb;function Lb(e){return rx(function(o,t){var r=-1,a=t.length,l=a>1?t[a-1]:void 0,n=a>2?t[2]:void 0;for(l=e.length>3&&typeof l=="function"?(a--,l):void 0,n&&ax(t[0],t[1],n)&&(l=a<3?void 0:l,a=1),o=Object(o);++r-1}var kx=Zy;function Yy(e,o){var t=this.__data__,r=Ur(t,e);return r<0?(++this.size,t.push([e,o])):t[r][1]=o,this}var Ax=Yy;function Xa(e){var o=-1,t=e==null?0:e.length;for(this.clear();++oa?0:a+o),t=t>a?a:t,t<0&&(t+=a),a=o>t?0:t-o>>>0,o>>>=0;for(var l=Array(a);++r=r?e:Vx(e,o,t)}var Wx=hv;var xv="\\ud800-\\udfff",Sv="\\u0300-\\u036f",gv="\\ufe20-\\ufe2f",wv="\\u20d0-\\u20ff",Tv=Sv+gv+wv,Rv="\\ufe0e\\ufe0f",Ov="\\u200d",Fv=RegExp("["+Ov+xv+Tv+Rv+"]");function Cv(e){return Fv.test(e)}var Ki=Cv;function bv(e){return e.split("")}var zx=bv;var jx="\\ud800-\\udfff",yv="\\u0300-\\u036f",vv="\\ufe20-\\ufe2f",kv="\\u20d0-\\u20ff",Av=yv+vv+kv,Dv="\\ufe0e\\ufe0f",Pv="["+jx+"]",js="["+Av+"]",$s="\\ud83c[\\udffb-\\udfff]",Mv="(?:"+js+"|"+$s+")",$x="[^"+jx+"]",Ux="(?:\\ud83c[\\udde6-\\uddff]){2}",Kx="[\\ud800-\\udbff][\\udc00-\\udfff]",Bv="\\u200d",Gx=Mv+"?",qx="["+Dv+"]?",Ev="(?:"+Bv+"(?:"+[$x,Ux,Kx].join("|")+")"+qx+Gx+")*",Lv=qx+Gx+Ev,Nv="(?:"+[$x+js+"?",js,Ux,Kx,Pv].join("|")+")",_v=RegExp($s+"(?="+$s+")|"+Nv+Lv,"g");function Iv(e){return e.match(_v)||[]}var Qx=Iv;function Hv(e){return Ki(e)?Qx(e):zx(e)}var Zx=Hv;function Vv(e){return function(o){o=_x(o);var t=Ki(o)?Zx(o):void 0,r=t?t[0]:o.charAt(0),a=t?Wx(t,1).join(""):o.slice(1);return r[e]()+a}}var Yx=Vv;var Wv=Yx("toUpperCase"),Us=Wv;function zv(){this.__data__=new Kr,this.size=0}var Xx=zv;function jv(e){var o=this.__data__,t=o.delete(e);return this.size=o.size,t}var Jx=jv;function $v(e){return this.__data__.get(e)}var eS=$v;function Uv(e){return this.__data__.has(e)}var oS=Uv;var Kv=200;function Gv(e,o){var t=this.__data__;if(t instanceof Kr){var r=t.__data__;if(!$i||r.length=4;++r,n-=4)o=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,o=(o&65535)*1540483477+((o>>>16)*59797<<16),o^=o>>>24,t=(o&65535)*1540483477+((o>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(n){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var so=Tk;typeof window<"u"&&(window.__cssrContext={});function rh(e,t,o){let{els:r}=t;if(o===void 0)r.forEach(Mc),t.els=[];else{let n=pn(o);n&&r.includes(n)&&(Mc(n),t.els=r.filter(i=>i!==n))}}function oh(e,t){e.push(t)}function nh(e,t,o,r,n,i,a,l,s){if(i&&!s){if(o===void 0){console.error("[css-render/mount]: `id` is required in `silent` mode.");return}let p=window.__cssrContext;p[o]||(p[o]=!0,pl(t,e,r,i));return}let c;if(o===void 0&&(c=t.render(r),o=so(c)),s){s.adapter(o,c??t.render(r));return}let d=pn(o);if(d!==null&&!a)return d;let u=d??Qm(o);if(c===void 0&&(c=t.render(r)),u.textContent=c,d!==null)return d;if(l){let p=document.head.querySelector(`meta[name="${l}"]`);if(p)return document.head.insertBefore(u,p),oh(t.els,u),u}return n?document.head.insertBefore(u,document.head.querySelector("style, link")):document.head.appendChild(u),oh(t.els,u),u}function Ok(e){return pl(this,this.instance,e)}function Pk(e={}){let{id:t,ssr:o,props:r,head:n=!1,silent:i=!1,force:a=!1,anchorMetaName:l}=e;return nh(this.instance,this,t,r,n,i,a,l,o)}function Nk(e={}){let{id:t}=e;rh(this.instance,this,t)}var ml=function(e,t,o,r){return{instance:e,$:t,props:o,children:r,els:[],render:Ok,mount:Pk,unmount:Nk}},ih=function(e,t,o,r){return Array.isArray(t)?ml(e,{$:null},null,t):Array.isArray(o)?ml(e,t,null,o):Array.isArray(r)?ml(e,t,o,r):ml(e,t,o,null)};function hl(e={}){let t=null,o={c:(...r)=>ih(o,...r),use:(r,...n)=>r.install(o,...n),find:pn,context:{},config:e,get __styleSheet(){if(!t){let r=document.createElement("style");return document.head.appendChild(r),t=document.styleSheets[document.styleSheets.length-1],t}return t}};return o}function Lc(e,t){if(e===void 0)return!1;if(t){let{context:{ids:o}}=t;return o.has(e)}return pn(e)!==null}var ah=hl;function Rk(e){let t=".",o="__",r="--",n;if(e){let m=e.blockPrefix;m&&(t=m),m=e.elementPrefix,m&&(o=m),m=e.modifierPrefix,m&&(r=m)}let i={install(m){n=m.c;let y=m.context;y.bem={},y.bem.b=null,y.bem.els=null}};function a(m){let y,w;return{before(g){y=g.bem.b,w=g.bem.els,g.bem.els=null},after(g){g.bem.b=y,g.bem.els=w},$({context:g,props:O}){return m=typeof m=="string"?m:m({context:g,props:O}),g.bem.b=m,`${O?.bPrefix||t}${g.bem.b}`}}}function l(m){let y;return{before(w){y=w.bem.els},after(w){w.bem.els=y},$({context:w,props:g}){return m=typeof m=="string"?m:m({context:w,props:g}),w.bem.els=m.split(",").map(O=>O.trim()),w.bem.els.map(O=>`${g?.bPrefix||t}${w.bem.b}${o}${O}`).join(", ")}}}function s(m){return{$({context:y,props:w}){m=typeof m=="string"?m:m({context:y,props:w});let g=m.split(",").map(S=>S.trim());function O(S){return g.map(v=>`&${w?.bPrefix||t}${y.bem.b}${S!==void 0?`${o}${S}`:""}${r}${v}`).join(", ")}let j=y.bem.els;return j!==null?O(j[0]):O()}}}function c(m){return{$({context:y,props:w}){m=typeof m=="string"?m:m({context:y,props:w});let g=y.bem.els;return`&:not(${w?.bPrefix||t}${y.bem.b}${g!==null&&g.length>0?`${o}${g[0]}`:""}${r}${m})`}}}return Object.assign(i,{cB:(...m)=>n(a(m[0]),m[1],m[2]),cE:(...m)=>n(l(m[0]),m[1],m[2]),cM:(...m)=>n(s(m[0]),m[1],m[2]),cNotM:(...m)=>n(c(m[0]),m[1],m[2])}),i}var lh=Rk;function Te(e,t){return e+(t==="default"?"":t.replace(/^[a-z]/,o=>o.toUpperCase()))}Te("abc","def");var Ik="n",Ai=`.${Ik}-`,Ak="__",Mk="--",sh=ah(),ch=lh({blockPrefix:Ai,elementPrefix:Ak,modifierPrefix:Mk});sh.use(ch);var{c:J,find:gI}=sh,{cB:U,cE:ee,cM:be,cNotM:oo}=ch;function gl(e){return J(({props:{bPrefix:t}})=>`${t||Ai}modal, ${t||Ai}drawer`,[e])}function xl(e){return J(({props:{bPrefix:t}})=>`${t||Ai}popover:not(${t||Ai}tooltip)`,[e])}function vl(e){let t=X(!!e.value);if(t.value)return Dr(t);let o=Ze(e,r=>{r&&(t.value=!0,o())});return Dr(t)}function $k(e){let t=F(e),o=X(t.value);return Ze(t,r=>{o.value=r}),typeof e=="function"?o:{__v_isRef:!0,get value(){return o.value},set value(r){e.set(r)}}}var Qe=$k;var dh=typeof window<"u";var Hn,Mi,Lk=()=>{var e,t;Hn=dh?(t=(e=document)===null||e===void 0?void 0:e.fonts)===null||t===void 0?void 0:t.ready:void 0,Mi=!1,Hn!==void 0?Hn.then(()=>{Mi=!0}):Mi=!0};Lk();function bl(e){if(Mi)return;let t=!1;tt(()=>{Mi||Hn?.then(()=>{t||e()})}),Pt(()=>{t=!0})}var zk={mousemoveoutside:new WeakMap,clickoutside:new WeakMap};function Bk(e,t,o){if(e==="mousemoveoutside"){let r=n=>{t.contains(n.target)||o(n)};return{mousemove:r,touchstart:r}}else if(e==="clickoutside"){let r=!1,n=a=>{r=!t.contains(a.target)},i=a=>{r&&(t.contains(a.target)||o(a))};return{mousedown:n,mouseup:i,touchstart:n,touchend:i}}return console.error(`[evtd/create-trap-handler]: name \`${e}\` is invalid. This could be a bug of evtd.`),{}}function uh(e,t,o){let r=zk[e],n=r.get(t);n===void 0&&r.set(t,n=new WeakMap);let i=n.get(o);return i===void 0&&n.set(o,i=Bk(e,t,o)),i}function fh(e,t,o,r){if(e==="mousemoveoutside"||e==="clickoutside"){let n=uh(e,t,o);return Object.keys(n).forEach(i=>{gt(i,document,n[i],r)}),!0}return!1}function ph(e,t,o,r){if(e==="mousemoveoutside"||e==="clickoutside"){let n=uh(e,t,o);return Object.keys(n).forEach(i=>{ht(i,document,n[i],r)}),!0}return!1}function Hk(){if(typeof window>"u")return{on:()=>{},off:()=>{}};let e=new WeakMap,t=new WeakMap;function o(){e.set(this,!0)}function r(){e.set(this,!0),t.set(this,!0)}function n(x,k,A){let E=x[k];return x[k]=function(){return A.apply(x,arguments),E.apply(x,arguments)},x}function i(x,k){x[k]=Event.prototype[k]}let a=new WeakMap,l=Object.getOwnPropertyDescriptor(Event.prototype,"currentTarget");function s(){var x;return(x=a.get(this))!==null&&x!==void 0?x:null}function c(x,k){l!==void 0&&Object.defineProperty(x,"currentTarget",{configurable:!0,enumerable:!0,get:k??l.get})}let d={bubble:{},capture:{}},u={};function p(){let x=function(k){let{type:A,eventPhase:E,target:z,bubbles:M}=k;if(E===2)return;let se=E===1?"capture":"bubble",ye=z,Ie=[];for(;ye===null&&(ye=window),Ie.push(ye),ye!==window;)ye=ye.parentNode||null;let fe=d.capture[A],ce=d.bubble[A];if(n(k,"stopPropagation",o),n(k,"stopImmediatePropagation",r),c(k,s),se==="capture"){if(fe===void 0)return;for(let we=Ie.length-1;we>=0&&!e.has(k);--we){let Me=Ie[we],Be=fe.get(Me);if(Be!==void 0){a.set(k,Me);for(let Le of Be){if(t.has(k))break;Le(k)}}if(we===0&&!M&&ce!==void 0){let Le=ce.get(Me);if(Le!==void 0)for(let Je of Le){if(t.has(k))break;Je(k)}}}}else if(se==="bubble"){if(ce===void 0)return;for(let we=0;weM(k))};return x.displayName="evtdUnifiedWindowEventHandler",x}let m=p(),y=f();function w(x,k){let A=d[x];return A[k]===void 0&&(A[k]=new Map,window.addEventListener(k,m,x==="capture")),A[k]}function g(x){return u[x]===void 0&&(u[x]=new Set,window.addEventListener(x,y)),u[x]}function O(x,k){let A=x.get(k);return A===void 0&&x.set(k,A=new Set),A}function j(x,k,A,E){let z=d[k][A];if(z!==void 0){let M=z.get(x);if(M!==void 0&&M.has(E))return!0}return!1}function S(x,k){let A=u[x];return!!(A!==void 0&&A.has(k))}function v(x,k,A,E){let z;if(typeof E=="object"&&E.once===!0?z=fe=>{D(x,k,z,E),A(fe)}:z=A,fh(x,k,z,E))return;let se=E===!0||typeof E=="object"&&E.capture===!0?"capture":"bubble",ye=w(se,x),Ie=O(ye,k);if(Ie.has(z)||Ie.add(z),k===window){let fe=g(x);fe.has(z)||fe.add(z)}}function D(x,k,A,E){if(ph(x,k,A,E))return;let M=E===!0||typeof E=="object"&&E.capture===!0,se=M?"capture":"bubble",ye=w(se,x),Ie=O(ye,k);if(k===window&&!j(k,M?"bubble":"capture",x,A)&&S(x,A)){let ce=u[x];ce.delete(A),ce.size===0&&(window.removeEventListener(x,y),u[x]=void 0)}Ie.has(A)&&Ie.delete(A),Ie.size===0&&ye.delete(k),ye.size===0&&(window.removeEventListener(x,m,se==="capture"),d[se][x]=void 0)}return{on:v,off:D}}var{on:gt,off:ht}=Hk();function Xt(e,t){return Ze(e,o=>{o!==void 0&&(t.value=o)}),F(()=>e.value===void 0?t.value:e.value)}function Mr(){let e=X(!1);return tt(()=>{e.value=!0}),Dr(e)}var Vk=(typeof window>"u"?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)&&!window.MSStream;function yl(){return Vk}var UI="n-internal-select-menu",mh="n-internal-select-menu-body";var hh="n-modal-body",GI="n-modal";var gh="n-drawer-body",XI="n-drawer";var xh="n-popover-body";var vh="__disabled__";function mn(e){let t=ke(hh,null),o=ke(gh,null),r=ke(xh,null),n=ke(mh,null),i=X();if(typeof document<"u"){i.value=document.fullscreenElement;let a=()=>{i.value=document.fullscreenElement};tt(()=>{gt("fullscreenchange",document,a)}),Pt(()=>{ht("fullscreenchange",document,a)})}return Qe(()=>{var a;let{to:l}=e;return l!==void 0?l===!1?vh:l===!0?i.value||"body":l:t?.value?(a=t.value.$el)!==null&&a!==void 0?a:t.value:o?.value?o.value:r?.value?r.value:n?.value?n.value:l??(i.value||"body")})}mn.tdkey=vh;mn.propTo={type:[String,Object,Boolean],default:void 0};function $i(e,t,o="default"){let r=t[o];if(r===void 0)throw new Error(`[vueuc/${e}]: slot[${o}] is empty.`);return r()}function zc(e,t=!0,o=[]){return e.forEach(r=>{if(r!==null){if(typeof r!="object"){(typeof r=="string"||typeof r=="number")&&o.push(Mn(String(r)));return}if(Array.isArray(r)){zc(r,t,o);return}if(r.type===St){if(r.children===null)return;Array.isArray(r.children)&&zc(r.children,t,o)}else r.type!==Kt&&o.push(r)}}),o}function Bc(e,t,o="default"){let r=t[o];if(r===void 0)throw new Error(`[vueuc/${e}]: slot[${o}] is empty.`);let n=zc(r());if(n.length===1)return n[0];throw new Error(`[vueuc/${e}]: slot[${o}] should have exactly one child.`)}var $r=null;function bh(){if($r===null&&($r=document.getElementById("v-binder-view-measurer"),$r===null)){$r=document.createElement("div"),$r.id="v-binder-view-measurer";let{style:e}=$r;e.position="fixed",e.left="0",e.right="0",e.top="0",e.bottom="0",e.pointerEvents="none",e.visibility="hidden",document.body.appendChild($r)}return $r.getBoundingClientRect()}function yh(e,t){let o=bh();return{top:t,left:e,height:0,width:0,right:o.width-e,bottom:o.height-t}}function Cl(e){let t=e.getBoundingClientRect(),o=bh();return{left:t.left-o.left,top:t.top-o.top,bottom:o.height+o.top-t.bottom,right:o.width+o.left-t.right,width:t.width,height:t.height}}function Fk(e){return e.nodeType===9?null:e.parentNode}function Hc(e){if(e===null)return null;let t=Fk(e);if(t===null)return null;if(t.nodeType===9)return document;if(t.nodeType===1){let{overflow:o,overflowX:r,overflowY:n}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(o+n+r))return t}return Hc(t)}var jk=ue({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){var t;Yt("VBinder",(t=Uo())===null||t===void 0?void 0:t.proxy);let o=ke("VBinder",null),r=X(null),n=g=>{r.value=g,o&&e.syncTargetWithParent&&o.setTargetRef(g)},i=[],a=()=>{let g=r.value;for(;g=Hc(g),g!==null;)i.push(g);for(let O of i)gt("scroll",O,u,!0)},l=()=>{for(let g of i)ht("scroll",g,u,!0);i=[]},s=new Set,c=g=>{s.size===0&&a(),s.has(g)||s.add(g)},d=g=>{s.has(g)&&s.delete(g),s.size===0&&l()},u=()=>{Pi(p)},p=()=>{s.forEach(g=>g())},f=new Set,m=g=>{f.size===0&>("resize",window,w),f.has(g)||f.add(g)},y=g=>{f.has(g)&&f.delete(g),f.size===0&&ht("resize",window,w)},w=()=>{f.forEach(g=>g())};return Pt(()=>{ht("resize",window,w),l()}),{targetRef:r,setTargetRef:n,addScrollListener:c,removeScrollListener:d,addResizeListener:m,removeResizeListener:y}},render(){return $i("binder",this.$slots)}}),wl=jk;var kl=ue({name:"Target",setup(){let{setTargetRef:e,syncTarget:t}=ke("VBinder");return{syncTarget:t,setTargetDirective:{mounted:e,updated:e}}},render(){let{syncTarget:e,setTargetDirective:t}=this;return e?tl(Bc("follower",this.$slots),[[t]]):Bc("follower",this.$slots)}});function Ch(e,t){console.error(`[vdirs/${e}]: ${t}`)}var Vc=class{constructor(){this.elementZIndex=new Map,this.nextZIndex=2e3}get elementCount(){return this.elementZIndex.size}ensureZIndex(t,o){let{elementZIndex:r}=this;if(o!==void 0){t.style.zIndex=`${o}`,r.delete(t);return}let{nextZIndex:n}=this;r.has(t)&&r.get(t)+1===this.nextZIndex||(t.style.zIndex=`${n}`,r.set(t,n),this.nextZIndex=n+1,this.squashState())}unregister(t,o){let{elementZIndex:r}=this;r.has(t)?r.delete(t):o===void 0&&Ch("z-index-manager/unregister-element","Element not found when unregistering."),this.squashState()}squashState(){let{elementCount:t}=this;t||(this.nextZIndex=2e3),this.nextZIndex-t>2500&&this.rearrange()}rearrange(){let t=Array.from(this.elementZIndex.entries());t.sort((o,r)=>o[1]-r[1]),this.nextZIndex=2e3,t.forEach(o=>{let r=o[0],n=this.nextZIndex++;`${n}`!==r.style.zIndex&&(r.style.zIndex=`${n}`)})}},Sl=new Vc;var Vn="@@ziContext",Wk={mounted(e,t){let{value:o={}}=t,{zIndex:r,enabled:n}=o;e[Vn]={enabled:!!n,initialized:!1},n&&(Sl.ensureZIndex(e,r),e[Vn].initialized=!0)},updated(e,t){let{value:o={}}=t,{zIndex:r,enabled:n}=o,i=e[Vn].enabled;n&&!i&&(Sl.ensureZIndex(e,r),e[Vn].initialized=!0),e[Vn].enabled=!!n},unmounted(e,t){if(!e[Vn].initialized)return;let{value:o={}}=t,{zIndex:r}=o;Sl.unregister(e,r)}},Fc=Wk;var wh=Symbol("@css-render/vue3-ssr");function Kk(e,t){return``}function Uk(e,t){let o=ke(wh,null);if(o===null){console.error("[css-render/vue3-ssr]: no ssr context found.");return}let{styles:r,ids:n}=o;n.has(e)||r!==null&&(n.add(e),r.push(Kk(e,t)))}function bo(){let e=ke(wh,null);if(e!==null)return{adapter:Uk,context:e}}function _l(e,t){console.error(`[vueuc/${e}]: ${t}`)}var{c:Zo}=hl();var Li="vueuc-style";function kh(e){return e&-e}var zi=class{constructor(t,o){this.l=t,this.min=o;let r=new Array(t+1);for(let n=0;nn)throw new Error("[FinweckTree.sum]: `i` is larger than length.");let i=t*r;for(;t>0;)i+=o[t],t-=kh(t);return i}getBound(t){let o=0,r=this.l;for(;r>o;){let n=Math.floor((o+r)/2),i=this.sum(n);if(i>t){r=n;continue}else if(i{let{to:t}=e;return t??"body"})}},render(){return this.showTeleport?this.disabled?$i("lazy-teleport",this.$slots):b(ym,{disabled:this.disabled,to:this.mergedTo},$i("lazy-teleport",this.$slots)):null}});var El={top:"bottom",bottom:"top",left:"right",right:"left"},_h={start:"end",center:"center",end:"start"},jc={top:"height",bottom:"height",left:"width",right:"width"},qk={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},Gk={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},Yk={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},Eh={top:!0,bottom:!1,left:!0,right:!1},Dh={top:"end",bottom:"start",left:"end",right:"start"};function Th(e,t,o,r,n,i){if(!n||i)return{placement:e,top:0,left:0};let[a,l]=e.split("-"),s=l??"center",c={top:0,left:0},d=(f,m,y)=>{let w=0,g=0,O=o[f]-t[m]-t[f];return O>0&&r&&(y?g=Eh[m]?O:-O:w=Eh[m]?O:-O),{left:w,top:g}},u=a==="left"||a==="right";if(s!=="center"){let f=Yk[e],m=El[f],y=jc[f];if(o[y]>t[y]){if(t[f]+t[y]t[m]&&(s=_h[l])}else{let f=a==="bottom"||a==="top"?"left":"top",m=El[f],y=jc[f],w=(o[y]-t[y])/2;(t[f]t[m]?(s=Dh[f],c=d(y,f,u)):(s=Dh[m],c=d(y,m,u)))}let p=a;return t[a] *",{pointerEvents:"all"})])]),Dl=ue({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){let t=ke("VBinder"),o=Qe(()=>e.enabled!==void 0?e.enabled:e.show),r=X(null),n=X(null),i=()=>{let{syncTrigger:p}=e;p.includes("scroll")&&t.addScrollListener(s),p.includes("resize")&&t.addResizeListener(s)},a=()=>{t.removeScrollListener(s),t.removeResizeListener(s)};tt(()=>{o.value&&(s(),i())});let l=bo();Xk.mount({id:"vueuc/binder",head:!0,anchorMetaName:Li,ssr:l}),Pt(()=>{a()}),bl(()=>{o.value&&s()});let s=()=>{if(!o.value)return;let p=r.value;if(p===null)return;let f=t.targetRef,{x:m,y,overlap:w}=e,g=m!==void 0&&y!==void 0?yh(m,y):Cl(f);p.style.setProperty("--v-target-width",`${Math.round(g.width)}px`),p.style.setProperty("--v-target-height",`${Math.round(g.height)}px`);let{width:O,minWidth:j,placement:S,internalShift:v,flip:D}=e;p.setAttribute("v-placement",S),w?p.setAttribute("v-overlap",""):p.removeAttribute("v-overlap");let{style:x}=p;O==="target"?x.width=`${g.width}px`:O!==void 0?x.width=O:x.width="",j==="target"?x.minWidth=`${g.width}px`:j!==void 0?x.minWidth=j:x.minWidth="";let k=Cl(p),A=Cl(n.value),{left:E,top:z,placement:M}=Th(S,g,k,v,D,w),se=Oh(M,w),{left:ye,top:Ie,transform:fe}=Ph(M,A,g,z,E,w);p.setAttribute("v-placement",M),p.style.setProperty("--v-offset-left",`${Math.round(E)}px`),p.style.setProperty("--v-offset-top",`${Math.round(z)}px`),p.style.transform=`translateX(${ye}) translateY(${Ie}) ${fe}`,p.style.transformOrigin=se};Ze(o,p=>{p?(i(),c()):a()});let c=()=>{Bt().then(s).catch(p=>console.error(p))};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(p=>{Ze(Re(e,p),s)}),["teleportDisabled"].forEach(p=>{Ze(Re(e,p),c)}),Ze(Re(e,"syncTrigger"),p=>{p.includes("resize")?t.addResizeListener(s):t.removeResizeListener(s),p.includes("scroll")?t.addScrollListener(s):t.removeScrollListener(s)});let d=Mr(),u=Qe(()=>{let{to:p}=e;if(p!==void 0)return p;d.value});return{VBinder:t,mergedEnabled:o,offsetContainerRef:n,followerRef:r,mergedTo:u,syncPosition:s}},render(){return b(Sh,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e,t;let o=b("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[b("div",{class:"v-binder-follower-content",ref:"followerRef"},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))]);return this.zindexable?tl(o,[[Fc,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):o}})}});var yo=[];var Nh=function(){return yo.some(function(e){return e.activeTargets.length>0})};var Rh=function(){return yo.some(function(e){return e.skippedTargets.length>0})};var Ih="ResizeObserver loop completed with undelivered notifications.",Ah=function(){var e;typeof ErrorEvent=="function"?e=new ErrorEvent("error",{message:Ih}):(e=document.createEvent("Event"),e.initEvent("error",!1,!1),e.message=Ih),window.dispatchEvent(e)};var hn;(function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(hn||(hn={}));var Oo=function(e){return Object.freeze(e)};var Wc=function(){function e(t,o){this.inlineSize=t,this.blockSize=o,Oo(this)}return e}();var Kc=function(){function e(t,o,r,n){return this.x=t,this.y=o,this.width=r,this.height=n,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,Oo(this)}return e.prototype.toJSON=function(){var t=this,o=t.x,r=t.y,n=t.top,i=t.right,a=t.bottom,l=t.left,s=t.width,c=t.height;return{x:o,y:r,top:n,right:i,bottom:a,left:l,width:s,height:c}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}();var Bi=function(e){return e instanceof SVGElement&&"getBBox"in e},Tl=function(e){if(Bi(e)){var t=e.getBBox(),o=t.width,r=t.height;return!o&&!r}var n=e,i=n.offsetWidth,a=n.offsetHeight;return!(i||a||e.getClientRects().length)},Uc=function(e){var t,o;if(e instanceof Element)return!0;var r=(o=(t=e)===null||t===void 0?void 0:t.ownerDocument)===null||o===void 0?void 0:o.defaultView;return!!(r&&e instanceof r.Element)},Mh=function(e){switch(e.tagName){case"INPUT":if(e.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1};var gn=typeof window<"u"?window:{};var Ol=new WeakMap,$h=/auto|scroll/,Zk=/^tb|vertical/,Qk=/msie|trident/i.test(gn.navigator&&gn.navigator.userAgent),Qo=function(e){return parseFloat(e||"0")},Fn=function(e,t,o){return e===void 0&&(e=0),t===void 0&&(t=0),o===void 0&&(o=!1),new Wc((o?t:e)||0,(o?e:t)||0)},Lh=Oo({devicePixelContentBoxSize:Fn(),borderBoxSize:Fn(),contentBoxSize:Fn(),contentRect:new Kc(0,0,0,0)}),qc=function(e,t){if(t===void 0&&(t=!1),Ol.has(e)&&!t)return Ol.get(e);if(Tl(e))return Ol.set(e,Lh),Lh;var o=getComputedStyle(e),r=Bi(e)&&e.ownerSVGElement&&e.getBBox(),n=!Qk&&o.boxSizing==="border-box",i=Zk.test(o.writingMode||""),a=!r&&$h.test(o.overflowY||""),l=!r&&$h.test(o.overflowX||""),s=r?0:Qo(o.paddingTop),c=r?0:Qo(o.paddingRight),d=r?0:Qo(o.paddingBottom),u=r?0:Qo(o.paddingLeft),p=r?0:Qo(o.borderTopWidth),f=r?0:Qo(o.borderRightWidth),m=r?0:Qo(o.borderBottomWidth),y=r?0:Qo(o.borderLeftWidth),w=u+c,g=s+d,O=y+f,j=p+m,S=l?e.offsetHeight-j-e.clientHeight:0,v=a?e.offsetWidth-O-e.clientWidth:0,D=n?w+O:0,x=n?g+j:0,k=r?r.width:Qo(o.width)-D-v,A=r?r.height:Qo(o.height)-x-S,E=k+w+v+O,z=A+g+S+j,M=Oo({devicePixelContentBoxSize:Fn(Math.round(k*devicePixelRatio),Math.round(A*devicePixelRatio),i),borderBoxSize:Fn(E,z,i),contentBoxSize:Fn(k,A,i),contentRect:new Kc(u,s,k,A)});return Ol.set(e,M),M},Pl=function(e,t,o){var r=qc(e,o),n=r.borderBoxSize,i=r.contentBoxSize,a=r.devicePixelContentBoxSize;switch(t){case hn.DEVICE_PIXEL_CONTENT_BOX:return a;case hn.BORDER_BOX:return n;default:return i}};var Gc=function(){function e(t){var o=qc(t);this.target=t,this.contentRect=o.contentRect,this.borderBoxSize=Oo([o.borderBoxSize]),this.contentBoxSize=Oo([o.contentBoxSize]),this.devicePixelContentBoxSize=Oo([o.devicePixelContentBoxSize])}return e}();var Nl=function(e){if(Tl(e))return 1/0;for(var t=0,o=e.parentNode;o;)t+=1,o=o.parentNode;return t};var zh=function(){var e=1/0,t=[];yo.forEach(function(a){if(a.activeTargets.length!==0){var l=[];a.activeTargets.forEach(function(c){var d=new Gc(c.target),u=Nl(c.target);l.push(d),c.lastReportedSize=Pl(c.target,c.observedBox),ue?o.activeTargets.push(n):o.skippedTargets.push(n))})})};var Bh=function(){var e=0;for(Yc(e);Nh();)e=zh(),Yc(e);return Rh()&&Ah(),e>0};var Xc,Hh=[],Jk=function(){return Hh.splice(0).forEach(function(e){return e()})},Vh=function(e){if(!Xc){var t=0,o=document.createTextNode(""),r={characterData:!0};new MutationObserver(function(){return Jk()}).observe(o,r),Xc=function(){o.textContent=""+(t?t--:t++)}}Hh.push(e),Xc()};var Fh=function(e){Vh(function(){requestAnimationFrame(e)})};var Rl=0,eS=function(){return!!Rl},tS=250,oS={attributes:!0,characterData:!0,childList:!0,subtree:!0},jh=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],Wh=function(e){return e===void 0&&(e=0),Date.now()+e},Zc=!1,rS=function(){function e(){var t=this;this.stopped=!0,this.listener=function(){return t.schedule()}}return e.prototype.run=function(t){var o=this;if(t===void 0&&(t=tS),!Zc){Zc=!0;var r=Wh(t);Fh(function(){var n=!1;try{n=Bh()}finally{if(Zc=!1,t=r-Wh(),!eS())return;n?o.run(1e3):t>0?o.run(t):o.start()}})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var t=this,o=function(){return t.observer&&t.observer.observe(document.body,oS)};document.body?o():gn.addEventListener("DOMContentLoaded",o)},e.prototype.start=function(){var t=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),jh.forEach(function(o){return gn.addEventListener(o,t.listener,!0)}))},e.prototype.stop=function(){var t=this;this.stopped||(this.observer&&this.observer.disconnect(),jh.forEach(function(o){return gn.removeEventListener(o,t.listener,!0)}),this.stopped=!0)},e}(),Il=new rS,Qc=function(e){!Rl&&e>0&&Il.start(),Rl+=e,!Rl&&Il.stop()};var nS=function(e){return!Bi(e)&&!Mh(e)&&getComputedStyle(e).display==="inline"},Kh=function(){function e(t,o){this.target=t,this.observedBox=o||hn.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var t=Pl(this.target,this.observedBox,!0);return nS(this.target)&&(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},e}();var Uh=function(){function e(t,o){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=t,this.callback=o}return e}();var Al=new WeakMap,qh=function(e,t){for(var o=0;o=0&&(i&&yo.splice(yo.indexOf(r),1),r.observationTargets.splice(n,1),Qc(-1))},e.disconnect=function(t){var o=this,r=Al.get(t);r.observationTargets.slice().forEach(function(n){return o.unobserve(t,n.target)}),r.activeTargets.splice(0,r.activeTargets.length)},e}();var Jc=function(){function e(t){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof t!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");Hi.connect(this,t)}return e.prototype.observe=function(t,o){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Uc(t))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");Hi.observe(this,t,o)},e.prototype.unobserve=function(t){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Uc(t))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");Hi.unobserve(this,t)},e.prototype.disconnect=function(){Hi.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}();var ed=class{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new Jc(this.handleResize),this.elHandlersMap=new Map}handleResize(t){for(let o of t){let r=this.elHandlersMap.get(o.target);r!==void 0&&r(o)}}registerHandler(t,o){this.elHandlersMap.set(t,o),this.observer.observe(t)}unregisterHandler(t){this.elHandlersMap.has(t)&&(this.elHandlersMap.delete(t),this.observer.unobserve(t))}},Ml=new ed;var Po=ue({name:"ResizeObserver",props:{onResize:Function},setup(e){return{registered:!1,handleResize(t){let{onResize:o}=e;o!==void 0&&o(t)}}},mounted(){let e=this.$el;if(e===void 0){_l("resize-observer","$el does not exist.");return}if(e.nextElementSibling!==e.nextSibling&&e.nodeType===3&&e.nodeValue!==""){_l("resize-observer","$el can not be observed (it may be a text node).");return}e.nextElementSibling!==null&&(Ml.registerHandler(e.nextElementSibling,this.handleResize),this.registered=!0)},beforeUnmount(){this.registered&&Ml.unregisterHandler(this.$el.nextElementSibling)},render(){return An(this.$slots,"default")}});var iS=Zo(".v-vl",{maxHeight:"inherit",height:"100%",overflow:"auto",minWidth:"1px"},[Zo("&:not(.v-vl--show-scrollbar)",{scrollbarWidth:"none"},[Zo("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",{width:0,height:0,display:"none"})])]),Vi=ue({name:"VirtualList",inheritAttrs:!1,props:{showScrollbar:{type:Boolean,default:!0},items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:"div"},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:"key"},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){let t=bo();iS.mount({id:"vueuc/virtual-list",head:!0,anchorMetaName:Li,ssr:t}),tt(()=>{let{defaultScrollIndex:v,defaultScrollKey:D}=e;v!=null?u({index:v}):D!=null&&u({key:D})}),xc(()=>{u({top:s.value})});let o=F(()=>{let v=new Map,{keyField:D}=e;return e.items.forEach((x,k)=>{v.set(x[D],k)}),v}),r=X(null),n=X(void 0),i=new Map,a=F(()=>{let{items:v,itemSize:D,keyField:x}=e,k=new zi(v.length,D);return v.forEach((A,E)=>{let z=A[x],M=i.get(z);M!==void 0&&k.add(E,M)}),k}),l=X(0),s=X(0),c=Qe(()=>Math.max(a.value.getBound(s.value-sl(e.paddingTop))-1,0)),d=F(()=>{let{value:v}=n;if(v===void 0)return[];let{items:D,itemSize:x}=e,k=c.value,A=Math.min(k+Math.ceil(v/x+1),D.length-1),E=[];for(let z=k;z<=A;++z)E.push(D[z]);return E}),u=v=>{let{left:D,top:x,index:k,key:A,position:E,behavior:z,debounce:M=!0}=v;if(D!==void 0||x!==void 0)f(D,x,z);else if(k!==void 0)p(k,z,M);else if(A!==void 0){let se=o.value.get(A);se!==void 0&&p(se,z,M)}else E==="bottom"?f(0,Number.MAX_SAFE_INTEGER,z):E==="top"&&f(0,0,z)};function p(v,D,x){let{value:k}=a,A=k.sum(v)+sl(e.paddingTop);if(!x)r.value.scrollTo({left:0,top:A,behavior:D});else{let{scrollTop:E,offsetHeight:z}=r.value;if(A>E){let M=k.get(v);A+M<=E+z||r.value.scrollTo({left:0,top:A+M-z,behavior:D})}else r.value.scrollTo({left:0,top:A,behavior:D})}g=v}function f(v,D,x){r.value.scrollTo({left:v,top:D,behavior:x})}function m(v,D){var x,k,A,E;if(e.ignoreItemResize||S(D.target))return;let{value:z}=a,M=o.value.get(v),se=z.get(M),ye=(A=(k=(x=D.borderBoxSize)===null||x===void 0?void 0:x[0])===null||k===void 0?void 0:k.blockSize)!==null&&A!==void 0?A:D.contentRect.height;if(ye===se)return;ye-e.itemSize===0?i.delete(v):i.set(v,ye-e.itemSize);let fe=ye-se;fe!==0&&(O!==void 0&&M<=O&&((E=r.value)===null||E===void 0||E.scrollBy(0,fe)),z.add(M,fe),l.value++)}function y(v){Pi(j);let{onScroll:D}=e;D!==void 0&&D(v)}function w(v){if(S(v.target)||v.contentRect.height===n.value)return;n.value=v.contentRect.height;let{onResize:D}=e;D!==void 0&&D(v)}let g,O;function j(){let{value:v}=r;v!=null&&(O=g??c.value,g=void 0,s.value=r.value.scrollTop)}function S(v){let D=v;for(;D!==null;){if(D.style.display==="none")return!0;D=D.parentElement}return!1}return{listHeight:n,listStyle:{overflow:"auto"},keyToIndex:o,itemsStyle:F(()=>{let{itemResizable:v}=e,D=Ir(a.value.sum());return l.value,[e.itemsStyle,{boxSizing:"content-box",height:v?"":D,minHeight:v?D:"",paddingTop:Ir(e.paddingTop),paddingBottom:Ir(e.paddingBottom)}]}),visibleItemsStyle:F(()=>(l.value,{transform:`translateY(${Ir(a.value.sum(c.value))})`})),viewportItems:d,listElRef:r,itemsElRef:X(null),scrollTo:u,handleListResize:w,handleListScroll:y,handleItemResize:m}},render(){let{itemResizable:e,keyField:t,keyToIndex:o,visibleItemsTag:r}=this;return b(Po,{onResize:this.handleListResize},{default:()=>{var n,i;return b("div",Ti(this.$attrs,{class:["v-vl",this.showScrollbar&&"v-vl--show-scrollbar"],onScroll:this.handleListScroll,onWheel:this.onWheel,ref:"listElRef"}),[this.items.length!==0?b("div",{ref:"itemsElRef",class:"v-vl-items",style:this.itemsStyle},[b(r,Object.assign({class:"v-vl-visible-items",style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>this.viewportItems.map(a=>{let l=a[t],s=o.get(l),c=this.$slots.default({item:a,index:s})[0];return e?b(Po,{key:l,onResize:d=>this.handleItemResize(l,d)},{default:()=>c}):(c.key=l,c)})})]):(i=(n=this.$slots).empty)===null||i===void 0?void 0:i.call(n)])}})}});var Gh="n-form-item";function Co(e,{defaultSize:t="medium",mergedSize:o,mergedDisabled:r}={}){let n=ke(Gh,null);Yt(Gh,null);let i=F(o?()=>o(n):()=>{let{size:s}=e;if(s)return s;if(n){let{mergedSize:c}=n;if(c.value!==void 0)return c.value}return t}),a=F(r?()=>r(n):()=>{let{disabled:s}=e;return s!==void 0?s:n?n.disabled.value:!1}),l=F(()=>{let{status:s}=e;return s||n?.mergedValidationStatus.value});return Pt(()=>{n&&n.restoreValidation()}),{mergedSizeRef:i,mergedDisabledRef:a,mergedStatusRef:l,nTriggerFormBlur(){n&&n.handleContentBlur()},nTriggerFormChange(){n&&n.handleContentChange()},nTriggerFormFocus(){n&&n.handleContentFocus()},nTriggerFormInput(){n&&n.handleContentInput()}}}var lS=typeof global=="object"&&global&&global.Object===Object&&global,$l=lS;var sS=typeof self=="object"&&self&&self.Object===Object&&self,cS=$l||sS||Function("return this")(),wo=cS;var dS=wo.Symbol,fr=dS;var Yh=Object.prototype,uS=Yh.hasOwnProperty,fS=Yh.toString,Fi=fr?fr.toStringTag:void 0;function pS(e){var t=uS.call(e,Fi),o=e[Fi];try{e[Fi]=void 0;var r=!0}catch{}var n=fS.call(e);return r&&(t?e[Fi]=o:delete e[Fi]),n}var Xh=pS;var mS=Object.prototype,hS=mS.toString;function gS(e){return hS.call(e)}var Zh=gS;var xS="[object Null]",vS="[object Undefined]",Qh=fr?fr.toStringTag:void 0;function bS(e){return e==null?e===void 0?vS:xS:Qh&&Qh in Object(e)?Xh(e):Zh(e)}var Jo=bS;function yS(e){return e!=null&&typeof e=="object"}var ko=yS;var CS="[object Symbol]";function wS(e){return typeof e=="symbol"||ko(e)&&Jo(e)==CS}var Jh=wS;function kS(e,t){for(var o=-1,r=e==null?0:e.length,n=Array(r);++o0){if(++t>=ZS)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var mg=e1;function t1(e){return function(){return e}}var hg=t1;var o1=function(){try{var e=Wn(Object,"defineProperty");return e({},"",{}),e}catch{}}(),Kn=o1;var r1=Kn?function(e,t){return Kn(e,"toString",{configurable:!0,enumerable:!1,value:hg(t),writable:!0})}:Ll,gg=r1;var n1=mg(gg),xg=n1;var i1=9007199254740991,a1=/^(?:0|[1-9]\d*)$/;function l1(e,t){var o=typeof e;return t=t??i1,!!t&&(o=="number"||o!="symbol"&&a1.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=g1}var Hl=x1;function v1(e){return e!=null&&Hl(e.length)&&!jn(e)}var qn=v1;function b1(e,t,o){if(!ro(o))return!1;var r=typeof t;return(r=="number"?qn(o)&&Bl(t,o.length):r=="string"&&t in o)?Lr(o[t],e):!1}var kg=b1;function y1(e){return wg(function(t,o){var r=-1,n=o.length,i=n>1?o[n-1]:void 0,a=n>2?o[2]:void 0;for(i=e.length>3&&typeof i=="function"?(n--,i):void 0,a&&kg(o[0],o[1],a)&&(i=n<3?void 0:i,n=1),t=Object(t);++r-1}var qg=M_;function $_(e,t){var o=this.__data__,r=zr(o,e);return r<0?(++this.size,o.push([e,t])):o[r][1]=t,this}var Gg=$_;function Yn(e){var t=-1,o=e==null?0:e.length;for(this.clear();++tn?0:n+t),o=o>n?n:o,o<0&&(o+=n),n=t>o?0:o-t>>>0,t>>>=0;for(var i=Array(n);++r=r?e:ix(e,t,o)}var ax=eE;var tE="\\ud800-\\udfff",oE="\\u0300-\\u036f",rE="\\ufe20-\\ufe2f",nE="\\u20d0-\\u20ff",iE=oE+rE+nE,aE="\\ufe0e\\ufe0f",lE="\\u200d",sE=RegExp("["+lE+tE+iE+aE+"]");function cE(e){return sE.test(e)}var ql=cE;function dE(e){return e.split("")}var lx=dE;var sx="\\ud800-\\udfff",uE="\\u0300-\\u036f",fE="\\ufe20-\\ufe2f",pE="\\u20d0-\\u20ff",mE=uE+fE+pE,hE="\\ufe0e\\ufe0f",gE="["+sx+"]",id="["+mE+"]",ad="\\ud83c[\\udffb-\\udfff]",xE="(?:"+id+"|"+ad+")",cx="[^"+sx+"]",dx="(?:\\ud83c[\\udde6-\\uddff]){2}",ux="[\\ud800-\\udbff][\\udc00-\\udfff]",vE="\\u200d",fx=xE+"?",px="["+hE+"]?",bE="(?:"+vE+"(?:"+[cx,dx,ux].join("|")+")"+px+fx+")*",yE=px+fx+bE,CE="(?:"+[cx+id+"?",id,dx,ux,gE].join("|")+")",wE=RegExp(ad+"(?="+ad+")|"+CE+yE,"g");function kE(e){return e.match(wE)||[]}var mx=kE;function SE(e){return ql(e)?mx(e):lx(e)}var hx=SE;function _E(e){return function(t){t=ox(t);var o=ql(t)?hx(t):void 0,r=o?o[0]:t.charAt(0),n=o?ax(o,1).join(""):t.slice(1);return r[e]()+n}}var gx=_E;var EE=gx("toUpperCase"),ld=EE;function DE(){this.__data__=new Br,this.size=0}var xx=DE;function TE(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var vx=TE;function OE(e){return this.__data__.get(e)}var bx=OE;function PE(e){return this.__data__.has(e)}var yx=PE;var NE=200;function RE(e,t){var o=this.__data__;if(o instanceof Br){var r=o.__data__;if(!Kl||r.length{let u=l==null?void 0:l.value;t.mount({id:u===void 0?o:u+o,head:!0,props:{bPrefix:u?`.${u}-`:void 0},anchorMetaName:Qr,ssr:n}),Gi.mount({id:"n-global",head:!0,anchorMetaName:Qr,ssr:n})};n?s():gr(s)}let i=Ce(st,null);return W(()=>{var s;let{theme:{common:u,self:f,peers:m={}}={},themeOverrides:p={},builtinThemeOverrides:c={}}=a,{common:R,peers:y}=p,{common:h=void 0,[e]:{common:A=void 0,self:z=void 0,peers:F={}}={}}=(i==null?void 0:i.mergedThemeRef.value)||{},{common:g=void 0,[e]:k={}}=(i==null?void 0:i.mergedThemeOverridesRef.value)||{},{common:S,peers:b={}}=k,B=qr({},u||A||h||r.common,g,S,R),v=qr((s=f||z||r.self)===null||s===void 0?void 0:s(B),c,k,p);return{common:B,self:v,peers:qr({},r.peers,F,m),peerOverrides:qr({},b,y)}})}wS.props={theme:Object,themeOverrides:Object,builtinThemeOverrides:Object};var Mo=wS;var qi="n";function Ko(e={},o={defaultBordered:!0}){let t=Ce(st,null);return{inlineThemeDisabled:t==null?void 0:t.inlineThemeDisabled,mergedRtlRef:t==null?void 0:t.mergedRtlRef,mergedComponentPropsRef:t==null?void 0:t.mergedComponentPropsRef,mergedBreakpointsRef:t==null?void 0:t.mergedBreakpointsRef,mergedBorderedRef:W(()=>{var r,a;let{bordered:l}=e;return l!==void 0?l:(a=(r=t==null?void 0:t.mergedBorderedRef.value)!==null&&r!==void 0?r:o.defaultBordered)!==null&&a!==void 0?a:!0}),mergedClsPrefixRef:W(()=>(t==null?void 0:t.mergedClsPrefixRef.value)||qi),namespaceRef:W(()=>t==null?void 0:t.mergedNamespaceRef.value)}}var fk={name:"en-US",global:{undo:"Undo",redo:"Redo",confirm:"Confirm"},Popconfirm:{positiveText:"Confirm",negativeText:"Cancel"},Cascader:{placeholder:"Please Select",loading:"Loading",loadingRequiredMessage:e=>`Please load all ${e}'s descendants before checking it.`},Time:{dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss"},DatePicker:{yearFormat:"yyyy",monthFormat:"MMM",dayFormat:"eeeeee",yearTypeFormat:"yyyy",monthTypeFormat:"yyyy-MM",dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss",quarterFormat:"yyyy-qqq",clear:"Clear",now:"Now",confirm:"Confirm",selectTime:"Select Time",selectDate:"Select Date",datePlaceholder:"Select Date",datetimePlaceholder:"Select Date and Time",monthPlaceholder:"Select Month",yearPlaceholder:"Select Year",quarterPlaceholder:"Select Quarter",startDatePlaceholder:"Start Date",endDatePlaceholder:"End Date",startDatetimePlaceholder:"Start Date and Time",endDatetimePlaceholder:"End Date and Time",monthBeforeYear:!0,firstDayOfWeek:6,today:"Today"},DataTable:{checkTableAll:"Select all in the table",uncheckTableAll:"Unselect all in the table",confirm:"Confirm",clear:"Clear"},Transfer:{sourceTitle:"Source",targetTitle:"Target"},Empty:{description:"No Data"},Select:{placeholder:"Please Select"},TimePicker:{placeholder:"Select Time",positiveText:"OK",negativeText:"Cancel",now:"Now"},Pagination:{goto:"Goto",selectionSuffix:"page"},DynamicTags:{add:"Add"},Log:{loading:"Loading"},Input:{placeholder:"Please Input"},InputNumber:{placeholder:"Please Input"},DynamicInput:{create:"Create"},ThemeEditor:{title:"Theme Editor",clearAllVars:"Clear All Variables",clearSearch:"Clear Search",filterCompName:"Filter Component Name",filterVarName:"Filter Variable Name",import:"Import",export:"Export",restore:"Reset to Default"},Image:{tipPrevious:"Previous picture (\u2190)",tipNext:"Next picture (\u2192)",tipCounterclockwise:"Counterclockwise",tipClockwise:"Clockwise",tipZoomOut:"Zoom out",tipZoomIn:"Zoom in",tipClose:"Close (Esc)"}},Gs=fk;var WS=Jr(VS()),dA={name:"en-US",locale:WS.default},Qs=dA;function ol(e){let{mergedLocaleRef:o,mergedDateLocaleRef:t}=Ce(st,null)||{},r=W(()=>{var l,n;return(n=(l=o==null?void 0:o.value)===null||l===void 0?void 0:l[e])!==null&&n!==void 0?n:Gs[e]});return{dateLocaleRef:W(()=>{var l;return(l=t==null?void 0:t.value)!==null&&l!==void 0?l:Qs}),localeRef:r}}function nr(e,o,t){if(!o)return;let r=At(),a=()=>{let l=t==null?void 0:t.value;o.mount({id:l===void 0?e:l+e,head:!0,anchorMetaName:Qr,props:{bPrefix:l?`.${l}-`:void 0},ssr:r}),Gi.mount({id:"n-global",head:!0,anchorMetaName:Qr,ssr:r})};r?a():gr(a)}function at(e,o,t,r){var a;t||di("useThemeClass","cssVarsRef is not passed");let l=(a=Ce(st,null))===null||a===void 0?void 0:a.mergedThemeHashRef,n=Z(""),i=At(),d,s=`__${e}`,u=()=>{let f=s,m=o?o.value:void 0,p=l==null?void 0:l.value;p&&(f+="-"+p),m&&(f+="-"+m);let{themeOverrides:c,builtinThemeOverrides:R}=r;c&&(f+="-"+Tt(JSON.stringify(c))),R&&(f+="-"+Tt(JSON.stringify(R))),n.value=f,d=()=>{let y=t.value,h="";for(let A in y)h+=`${A}: ${y[A]};`;J(`.${f}`,h).mount({id:f,ssr:i}),d=void 0}};return Uo(()=>{u()}),{themeClass:n,onRender:()=>{d==null||d()}}}function zS(e,o){return ae({name:Us(e),setup(){var t;let r=(t=Ce(st,null))===null||t===void 0?void 0:t.mergedIconsRef;return()=>{var a;let l=(a=r==null?void 0:r.value)===null||a===void 0?void 0:a[e];return l?l():o}}})}var Zs=ae({name:"Eye",render(){return w("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},w("path",{d:"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),w("circle",{cx:"256",cy:"256",r:"80",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}))}});var Ys=ae({name:"EyeOff",render(){return w("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},w("path",{d:"M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z",fill:"currentColor"}),w("path",{d:"M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z",fill:"currentColor"}),w("path",{d:"M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z",fill:"currentColor"}),w("path",{d:"M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z",fill:"currentColor"}),w("path",{d:"M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z",fill:"currentColor"}))}});var Xs=ae({name:"Empty",render(){return w("svg",{viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},w("path",{d:"M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z",fill:"currentColor"}),w("path",{d:"M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z",fill:"currentColor"}))}});var Js=ae({name:"Switcher",render(){return w("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},w("path",{d:"M12 8l10 8l-10 8z"}))}});var eu=ae({name:"ChevronDown",render(){return w("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},w("path",{d:"M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z",fill:"currentColor"}))}});var ou=zS("clear",w("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},w("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},w("g",{fill:"currentColor","fill-rule":"nonzero"},w("path",{d:"M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z"})))));var Et=ae({name:"BaseIconSwitchTransition",setup(e,{slots:o}){let t=zr();return()=>w(It,{name:"icon-switch-transition",appear:t.value},o)}});var tl=ae({name:"FadeInExpandTransition",props:{appear:Boolean,group:Boolean,mode:String,onLeave:Function,onAfterLeave:Function,onAfterEnter:Function,width:Boolean,reverse:Boolean},setup(e,{slots:o}){function t(i){e.width?i.style.maxWidth=`${i.offsetWidth}px`:i.style.maxHeight=`${i.offsetHeight}px`,i.offsetWidth}function r(i){e.width?i.style.maxWidth="0":i.style.maxHeight="0",i.offsetWidth;let{onLeave:d}=e;d&&d()}function a(i){e.width?i.style.maxWidth="":i.style.maxHeight="";let{onAfterLeave:d}=e;d&&d()}function l(i){if(i.style.transition="none",e.width){let d=i.offsetWidth;i.style.maxWidth="0",i.offsetWidth,i.style.transition="",i.style.maxWidth=`${d}px`}else if(e.reverse)i.style.maxHeight=`${i.offsetHeight}px`,i.offsetHeight,i.style.transition="",i.style.maxHeight="0";else{let d=i.offsetHeight;i.style.maxHeight="0",i.offsetWidth,i.style.transition="",i.style.maxHeight=`${d}px`}i.offsetWidth}function n(i){var d;e.width?i.style.maxWidth="":e.reverse||(i.style.maxHeight=""),(d=e.onAfterEnter)===null||d===void 0||d.call(e)}return()=>{let i=e.group?Cc:It;return w(i,{name:e.width?"fade-in-width-expand-transition":"fade-in-height-expand-transition",mode:e.mode,appear:e.appear,onEnter:l,onAfterEnter:n,onBeforeLeave:t,onLeave:r,onAfterLeave:a},o)}}});var jS=$("base-icon",` + `)]);var Zt="n-config-provider";var Fr="naive-ui-style";function zx(e,t,o,r,n,i){let a=bo();if(o){let c=()=>{let d=i?.value;o.mount({id:d===void 0?t:d+t,head:!0,props:{bPrefix:d?`.${d}-`:void 0},anchorMetaName:Fr,ssr:a}),Gl.mount({id:"n-global",head:!0,anchorMetaName:Fr,ssr:a})};a?c():cr(c)}let l=ke(Zt,null);return F(()=>{var c;let{theme:{common:d,self:u,peers:p={}}={},themeOverrides:f={},builtinThemeOverrides:m={}}=n,{common:y,peers:w}=f,{common:g=void 0,[e]:{common:O=void 0,self:j=void 0,peers:S={}}={}}=l?.mergedThemeRef.value||{},{common:v=void 0,[e]:D={}}=l?.mergedThemeOverridesRef.value||{},{common:x,peers:k={}}=D,A=Vr({},d||O||g||r.common,v,x,y),E=Vr((c=u||j||r.self)===null||c===void 0?void 0:c(A),m,D,f);return{common:A,self:E,peers:Vr({},r.peers,S,p),peerOverrides:Vr({},k,w)}})}zx.props={theme:Object,themeOverrides:Object,builtinThemeOverrides:Object};var Ct=zx;var Yl="n";function Mt(e={},t={defaultBordered:!0}){let o=ke(Zt,null);return{inlineThemeDisabled:o?.inlineThemeDisabled,mergedRtlRef:o?.mergedRtlRef,mergedComponentPropsRef:o?.mergedComponentPropsRef,mergedBreakpointsRef:o?.mergedBreakpointsRef,mergedBorderedRef:F(()=>{var r,n;let{bordered:i}=e;return i!==void 0?i:(n=(r=o?.mergedBorderedRef.value)!==null&&r!==void 0?r:t.defaultBordered)!==null&&n!==void 0?n:!0}),mergedClsPrefixRef:F(()=>o?.mergedClsPrefixRef.value||Yl),namespaceRef:F(()=>o?.mergedNamespaceRef.value)}}var XE={name:"en-US",global:{undo:"Undo",redo:"Redo",confirm:"Confirm"},Popconfirm:{positiveText:"Confirm",negativeText:"Cancel"},Cascader:{placeholder:"Please Select",loading:"Loading",loadingRequiredMessage:e=>`Please load all ${e}'s descendants before checking it.`},Time:{dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss"},DatePicker:{yearFormat:"yyyy",monthFormat:"MMM",dayFormat:"eeeeee",yearTypeFormat:"yyyy",monthTypeFormat:"yyyy-MM",dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss",quarterFormat:"yyyy-qqq",clear:"Clear",now:"Now",confirm:"Confirm",selectTime:"Select Time",selectDate:"Select Date",datePlaceholder:"Select Date",datetimePlaceholder:"Select Date and Time",monthPlaceholder:"Select Month",yearPlaceholder:"Select Year",quarterPlaceholder:"Select Quarter",startDatePlaceholder:"Start Date",endDatePlaceholder:"End Date",startDatetimePlaceholder:"Start Date and Time",endDatetimePlaceholder:"End Date and Time",monthBeforeYear:!0,firstDayOfWeek:6,today:"Today"},DataTable:{checkTableAll:"Select all in the table",uncheckTableAll:"Unselect all in the table",confirm:"Confirm",clear:"Clear"},Transfer:{sourceTitle:"Source",targetTitle:"Target"},Empty:{description:"No Data"},Select:{placeholder:"Please Select"},TimePicker:{placeholder:"Select Time",positiveText:"OK",negativeText:"Cancel",now:"Now"},Pagination:{goto:"Goto",selectionSuffix:"page"},DynamicTags:{add:"Add"},Log:{loading:"Loading"},Input:{placeholder:"Please Input"},InputNumber:{placeholder:"Please Input"},DynamicInput:{create:"Create"},ThemeEditor:{title:"Theme Editor",clearAllVars:"Clear All Variables",clearSearch:"Clear Search",filterCompName:"Filter Component Name",filterVarName:"Filter Variable Name",import:"Import",export:"Export",restore:"Reset to Default"},Image:{tipPrevious:"Previous picture (\u2190)",tipNext:"Next picture (\u2192)",tipCounterclockwise:"Counterclockwise",tipClockwise:"Clockwise",tipZoomOut:"Zoom out",tipZoomIn:"Zoom in",tipClose:"Close (Esc)"}},cd=XE;var av=Uy(iv()),qD={name:"en-US",locale:av.default},ud=qD;function Qn(e){let{mergedLocaleRef:t,mergedDateLocaleRef:o}=ke(Zt,null)||{},r=F(()=>{var i,a;return(a=(i=t?.value)===null||i===void 0?void 0:i[e])!==null&&a!==void 0?a:cd[e]});return{dateLocaleRef:F(()=>{var i;return(i=o?.value)!==null&&i!==void 0?i:ud}),localeRef:r}}function er(e,t,o){if(!t)return;let r=bo(),n=()=>{let i=o?.value;t.mount({id:i===void 0?e:i+e,head:!0,anchorMetaName:Fr,props:{bPrefix:i?`.${i}-`:void 0},ssr:r}),Gl.mount({id:"n-global",head:!0,anchorMetaName:Fr,ssr:r})};r?n():cr(n)}function qt(e,t,o,r){var n;o||dl("useThemeClass","cssVarsRef is not passed");let i=(n=ke(Zt,null))===null||n===void 0?void 0:n.mergedThemeHashRef,a=X(""),l=bo(),s,c=`__${e}`,d=()=>{let u=c,p=t?t.value:void 0,f=i?.value;f&&(u+="-"+f),p&&(u+="-"+p);let{themeOverrides:m,builtinThemeOverrides:y}=r;m&&(u+="-"+so(JSON.stringify(m))),y&&(u+="-"+so(JSON.stringify(y))),a.value=u,s=()=>{let w=o.value,g="";for(let O in w)g+=`${O}: ${w[O]};`;J(`.${u}`,g).mount({id:u,ssr:l}),s=void 0}};return At(()=>{d()}),{themeClass:a,onRender:()=>{s?.()}}}function lv(e,t){return ue({name:ld(e),setup(){var o;let r=(o=ke(Zt,null))===null||o===void 0?void 0:o.mergedIconsRef;return()=>{var n;let i=(n=r?.value)===null||n===void 0?void 0:n[e];return i?i():t}}})}var fd=ue({name:"Eye",render(){return b("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},b("path",{d:"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),b("circle",{cx:"256",cy:"256",r:"80",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}))}});var pd=ue({name:"EyeOff",render(){return b("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},b("path",{d:"M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z",fill:"currentColor"}),b("path",{d:"M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z",fill:"currentColor"}),b("path",{d:"M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z",fill:"currentColor"}),b("path",{d:"M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z",fill:"currentColor"}),b("path",{d:"M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z",fill:"currentColor"}))}});var md=ue({name:"Empty",render(){return b("svg",{viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b("path",{d:"M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z",fill:"currentColor"}),b("path",{d:"M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z",fill:"currentColor"}))}});var hd=ue({name:"Switcher",render(){return b("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},b("path",{d:"M12 8l10 8l-10 8z"}))}});var gd=ue({name:"ChevronDown",render(){return b("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b("path",{d:"M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z",fill:"currentColor"}))}});var xd=lv("clear",b("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},b("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},b("g",{fill:"currentColor","fill-rule":"nonzero"},b("path",{d:"M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z"})))));var So=ue({name:"BaseIconSwitchTransition",setup(e,{slots:t}){let o=Mr();return()=>b(To,{name:"icon-switch-transition",appear:o.value},t)}});var Jn=ue({name:"FadeInExpandTransition",props:{appear:Boolean,group:Boolean,mode:String,onLeave:Function,onAfterLeave:Function,onAfterEnter:Function,width:Boolean,reverse:Boolean},setup(e,{slots:t}){function o(l){e.width?l.style.maxWidth=`${l.offsetWidth}px`:l.style.maxHeight=`${l.offsetHeight}px`,l.offsetWidth}function r(l){e.width?l.style.maxWidth="0":l.style.maxHeight="0",l.offsetWidth;let{onLeave:s}=e;s&&s()}function n(l){e.width?l.style.maxWidth="":l.style.maxHeight="";let{onAfterLeave:s}=e;s&&s()}function i(l){if(l.style.transition="none",e.width){let s=l.offsetWidth;l.style.maxWidth="0",l.offsetWidth,l.style.transition="",l.style.maxWidth=`${s}px`}else if(e.reverse)l.style.maxHeight=`${l.offsetHeight}px`,l.offsetHeight,l.style.transition="",l.style.maxHeight="0";else{let s=l.offsetHeight;l.style.maxHeight="0",l.offsetWidth,l.style.transition="",l.style.maxHeight=`${s}px`}l.offsetWidth}function a(l){var s;e.width?l.style.maxWidth="":e.reverse||(l.style.maxHeight=""),(s=e.onAfterEnter)===null||s===void 0||s.call(e)}return()=>{let l=e.group?Um:To;return b(l,{name:e.width?"fade-in-width-expand-transition":"fade-in-height-expand-transition",mode:e.mode,appear:e.appear,onEnter:i,onAfterEnter:a,onBeforeLeave:o,onLeave:r,onAfterLeave:n},t)}}});var sv=U("base-icon",` height: 1em; width: 1em; line-height: 1em; @@ -39,7 +39,7 @@ ${o} position: relative; fill: currentColor; transform: translateZ(0); -`,[J("svg",{height:"1em",width:"1em"})]);var Lt=ae({name:"BaseIcon",props:{role:String,ariaLabel:String,ariaDisabled:{type:Boolean,default:void 0},ariaHidden:{type:Boolean,default:void 0},clsPrefix:{type:String,required:!0},onClick:Function,onMousedown:Function,onMouseup:Function},setup(e){nr("-base-icon",jS,_e(e,"clsPrefix"))},render(){return w("i",{class:`${this.clsPrefix}-base-icon`,onClick:this.onClick,onMousedown:this.onMousedown,onMouseup:this.onMouseup,role:this.role,"aria-label":this.ariaLabel,"aria-hidden":this.ariaHidden,"aria-disabled":this.ariaDisabled},this.$slots)}});var{cubicBezierEaseInOut:sA}=rt;function Rt({originalTransform:e="",left:o=0,top:t=0,transition:r=`all .3s ${sA} !important`}={}){return[J("&.icon-switch-transition-enter-from, &.icon-switch-transition-leave-to",{transform:e+" scale(0.75)",left:o,top:t,opacity:0}),J("&.icon-switch-transition-enter-to, &.icon-switch-transition-leave-from",{transform:`scale(1) ${e}`,left:o,top:t,opacity:1}),J("&.icon-switch-transition-enter-active, &.icon-switch-transition-leave-active",{transformOrigin:"center",position:"absolute",left:o,top:t,transition:r})]}var $S=J([J("@keyframes loading-container-rotate",` +`,[J("svg",{height:"1em",width:"1em"})]);var _o=ue({name:"BaseIcon",props:{role:String,ariaLabel:String,ariaDisabled:{type:Boolean,default:void 0},ariaHidden:{type:Boolean,default:void 0},clsPrefix:{type:String,required:!0},onClick:Function,onMousedown:Function,onMouseup:Function},setup(e){er("-base-icon",sv,Re(e,"clsPrefix"))},render(){return b("i",{class:`${this.clsPrefix}-base-icon`,onClick:this.onClick,onMousedown:this.onMousedown,onMouseup:this.onMouseup,role:this.role,"aria-label":this.ariaLabel,"aria-hidden":this.ariaHidden,"aria-disabled":this.ariaDisabled},this.$slots)}});var{cubicBezierEaseInOut:GD}=Ut;function co({originalTransform:e="",left:t=0,top:o=0,transition:r=`all .3s ${GD} !important`}={}){return[J("&.icon-switch-transition-enter-from, &.icon-switch-transition-leave-to",{transform:e+" scale(0.75)",left:t,top:o,opacity:0}),J("&.icon-switch-transition-enter-to, &.icon-switch-transition-leave-from",{transform:`scale(1) ${e}`,left:t,top:o,opacity:1}),J("&.icon-switch-transition-enter-active, &.icon-switch-transition-leave-active",{transformOrigin:"center",position:"absolute",left:t,top:o,transition:r})]}var cv=J([J("@keyframes loading-container-rotate",` to { -webkit-transform: rotate(360deg); transform: rotate(360deg); @@ -103,16 +103,16 @@ ${o} -webkit-transform: rotate(-265deg); transform: rotate(-265deg); } - `),$("base-loading",` + `),U("base-loading",` position: relative; line-height: 0; width: 1em; height: 1em; - `,[oe("transition-wrapper",` + `,[ee("transition-wrapper",` position: absolute; width: 100%; height: 100%; - `,[Rt()]),oe("container",` + `,[co()]),ee("container",` display: inline-flex; position: relative; direction: ltr; @@ -124,27 +124,27 @@ ${o} opacity: 1; width: 100%; height: 100%; - `,[oe("svg",` + `,[ee("svg",` stroke: var(--n-text-color); fill: transparent; position: absolute; height: 100%; overflow: hidden; - `),oe("container-layer",` + `),ee("container-layer",` position: absolute; width: 100%; height: 100%; animation: loading-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - `,[oe("container-layer-left",` + `,[ee("container-layer-left",` display: inline-flex; position: relative; width: 50%; height: 100%; overflow: hidden; - `,[oe("svg",` + `,[ee("svg",` animation: loading-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; width: 200%; - `)]),oe("container-layer-patch",` + `)]),ee("container-layer-patch",` position: absolute; top: 0; left: 47.5%; @@ -152,31 +152,31 @@ ${o} width: 5%; height: 100%; overflow: hidden; - `,[oe("svg",` + `,[ee("svg",` left: -900%; width: 2000%; transform: rotate(180deg); - `)]),oe("container-layer-right",` + `)]),ee("container-layer-right",` display: inline-flex; position: relative; width: 50%; height: 100%; overflow: hidden; - `,[oe("svg",` + `,[ee("svg",` animation: loading-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; left: -100%; width: 200%; - `)])])]),oe("placeholder",` + `)])])]),ee("placeholder",` position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); - `,[Rt({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})])])]);var Zr=ae({name:"BaseLoading",props:{clsPrefix:{type:String,required:!0},scale:{type:Number,default:1},radius:{type:Number,default:100},strokeWidth:{type:Number,default:28},stroke:{type:String,default:void 0},show:{type:Boolean,default:!0}},setup(e){nr("-base-loading",$S,_e(e,"clsPrefix"))},render(){let{clsPrefix:e,radius:o,strokeWidth:t,stroke:r,scale:a}=this,l=o/a;return w("div",{class:`${e}-base-loading`,role:"img","aria-label":"loading"},w(Et,null,{default:()=>this.show?w("div",{key:"icon",class:`${e}-base-loading__transition-wrapper`},w("div",{class:`${e}-base-loading__container`},w("div",{class:`${e}-base-loading__container-layer`},w("div",{class:`${e}-base-loading__container-layer-left`},w("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*l} ${2*l}`,xmlns:"http://www.w3.org/2000/svg",style:{color:r}},w("circle",{fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round",cx:l,cy:l,r:o-t/2,"stroke-dasharray":4.91*o,"stroke-dashoffset":2.46*o}))),w("div",{class:`${e}-base-loading__container-layer-patch`},w("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*l} ${2*l}`,xmlns:"http://www.w3.org/2000/svg",style:{color:r}},w("circle",{fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round",cx:l,cy:l,r:o-t/2,"stroke-dasharray":4.91*o,"stroke-dashoffset":2.46*o}))),w("div",{class:`${e}-base-loading__container-layer-right`},w("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*l} ${2*l}`,xmlns:"http://www.w3.org/2000/svg",style:{color:r}},w("circle",{fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round",cx:l,cy:l,r:o-t/2,"stroke-dasharray":4.91*o,"stroke-dashoffset":2.46*o})))))):w("div",{key:"placeholder",class:`${e}-base-loading__placeholder`},this.$slots)}))}});function tu(e){return Array.isArray(e)?e:[e]}var Ji={STOP:"STOP"};function ru(e,o){let t=o(e);e.children!==void 0&&t!==Ji.STOP&&e.children.forEach(r=>ru(r,o))}function US(e,o={}){let{preserveGroup:t=!1}=o,r=[],a=t?n=>{n.isLeaf||(r.push(n.key),l(n.children))}:n=>{n.isLeaf||(n.isGroup||r.push(n.key),l(n.children))};function l(n){n.forEach(a)}return l(e),r}function KS(e,o){let{isLeaf:t}=e;return t!==void 0?t:!o(e)}function GS(e){return e.children}function qS(e){return e.key}function QS(){return!1}function ZS(e,o){let{isLeaf:t}=e;return!(t===!1&&!Array.isArray(o(e)))}function YS(e){return e.disabled===!0}function XS(e,o){return e.isLeaf===!1&&!Array.isArray(o(e))}function ed(e){var o;return e==null?[]:Array.isArray(e)?e:(o=e.checkedKeys)!==null&&o!==void 0?o:[]}function od(e){var o;return e==null||Array.isArray(e)?[]:(o=e.indeterminateKeys)!==null&&o!==void 0?o:[]}function JS(e,o){let t=new Set(e);return o.forEach(r=>{t.has(r)||t.add(r)}),Array.from(t)}function eg(e,o){let t=new Set(e);return o.forEach(r=>{t.has(r)&&t.delete(r)}),Array.from(t)}function og(e){return(e==null?void 0:e.type)==="group"}function au(e){let o=new Map;return e.forEach((t,r)=>{o.set(t.key,r)}),t=>{var r;return(r=o.get(t))!==null&&r!==void 0?r:null}}var tg=class extends Error{constructor(){super();this.message="SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded."}};function uA(e,o,t,r){return rd(o.concat(e),t,r,!1)}function fA(e,o){let t=new Set;return e.forEach(r=>{let a=o.treeNodeMap.get(r);if(a!==void 0){let l=a.parent;for(;l!==null&&!(l.disabled||t.has(l.key));)t.add(l.key),l=l.parent}}),t}function pA(e,o,t,r){let a=rd(o,t,r,!1),l=rd(e,t,r,!0),n=fA(e,t),i=[];return a.forEach(d=>{(l.has(d)||n.has(d))&&i.push(d)}),i.forEach(d=>a.delete(d)),a}function td(e,o){let{checkedKeys:t,keysToCheck:r,keysToUncheck:a,indeterminateKeys:l,cascade:n,leafOnly:i,checkStrategy:d,allowNotLoaded:s}=e;if(!n)return r!==void 0?{checkedKeys:JS(t,r),indeterminateKeys:Array.from(l)}:a!==void 0?{checkedKeys:eg(t,a),indeterminateKeys:Array.from(l)}:{checkedKeys:Array.from(t),indeterminateKeys:Array.from(l)};let{levelTreeNodeMap:u}=o,f;a!==void 0?f=pA(a,t,o,s):r!==void 0?f=uA(r,t,o,s):f=rd(t,o,s,!1);let m=d==="parent",p=d==="child"||i,c=f,R=new Set,y=Math.max.apply(null,Array.from(u.keys()));for(let h=y;h>=0;h-=1){let A=h===0,z=u.get(h);for(let F of z){if(F.isLeaf)continue;let{key:g,shallowLoaded:k}=F;if(p&&k&&F.children.forEach(v=>{!v.disabled&&!v.isLeaf&&v.shallowLoaded&&c.has(v.key)&&c.delete(v.key)}),F.disabled||!k)continue;let S=!0,b=!1,B=!0;for(let v of F.children){let _=v.key;if(!v.disabled){if(B&&(B=!1),c.has(_))b=!0;else if(R.has(_)){b=!0,S=!1;break}else if(S=!1,b)break}}S&&!B?(m&&F.children.forEach(v=>{!v.disabled&&c.has(v.key)&&c.delete(v.key)}),c.add(g)):b&&R.add(g),A&&p&&c.has(g)&&c.delete(g)}}return{checkedKeys:Array.from(c),indeterminateKeys:Array.from(R)}}function rd(e,o,t,r){let{treeNodeMap:a,getChildren:l}=o,n=new Set,i=new Set(e);return e.forEach(d=>{let s=a.get(d);s!==void 0&&ru(s,u=>{if(u.disabled)return Ji.STOP;let{key:f}=u;if(!n.has(f)&&(n.add(f),i.add(f),XS(u.rawNode,l))){if(r)return Ji.STOP;if(!t)throw new tg}})}),i}function rg(e,{includeGroup:o=!1,includeSelf:t=!0},r){var a;let l=r.treeNodeMap,n=e==null?null:(a=l.get(e))!==null&&a!==void 0?a:null,i={keyPath:[],treeNodePath:[],treeNode:n};if(n==null?void 0:n.ignored)return i.treeNode=null,i;for(;n;)!n.ignored&&(o||!n.isGroup)&&i.treeNodePath.push(n),n=n.parent;return i.treeNodePath.reverse(),t||i.treeNodePath.pop(),i.keyPath=i.treeNodePath.map(d=>d.key),i}function ag(e){if(e.length===0)return null;let o=e[0];return o.isGroup||o.ignored||o.disabled?o.getNext():o}function mA(e,o){let t=e.siblings,r=t.length,{index:a}=e;return o?t[(a+1)%r]:a===t.length-1?null:t[a+1]}function lg(e,o,{loop:t=!1,includeDisabled:r=!1}={}){let a=o==="prev"?cA:mA,l={reverse:o==="prev"},n=!1,i=null;function d(s){if(s!==null){if(s===e){if(!n)n=!0;else if(!e.disabled&&!e.isGroup){i=e;return}}else if((!s.disabled||r)&&!s.ignored&&!s.isGroup){i=s;return}if(s.isGroup){let u=lu(s,l);u!==null?i=u:d(a(s,t))}else{let u=a(s,!1);if(u!==null)d(u);else{let f=hA(s);(f==null?void 0:f.isGroup)?d(a(f,t)):t&&d(a(s,!0))}}}}return d(e),i}function cA(e,o){let t=e.siblings,r=t.length,{index:a}=e;return o?t[(a-1+r)%r]:a===0?null:t[a-1]}function hA(e){return e.parent}function lu(e,o={}){let{reverse:t=!1}=o,{children:r}=e;if(r){let{length:a}=r,l=t?a-1:0,n=t?-1:a,i=t?-1:1;for(let d=l;d!==n;d+=i){let s=r[d];if(!s.disabled&&!s.ignored)if(s.isGroup){let u=lu(s,o);if(u!==null)return u}else return s}}return null}var ng={getChild(){return this.ignored?null:lu(this)},getParent(){let{parent:e}=this;return(e==null?void 0:e.isGroup)?e.getParent():e},getNext(e={}){return lg(this,"next",e)},getPrev(e={}){return lg(this,"prev",e)}};function rl(e,o){let t=o?new Set(o):void 0,r=[];function a(l){l.forEach(n=>{r.push(n),!(n.isLeaf||!n.children||n.ignored)&&(n.isGroup||t===void 0||t.has(n.key))&&a(n.children)})}return a(e),r}function ig(e,o){let t=e.key;for(;o;){if(o.key===t)return!0;o=o.parent}return!1}function dg(e,o,t,r,a,l=null,n=0){let i=[];return e.forEach((d,s)=>{var u;let f=Object.create(r);if(f.rawNode=d,f.siblings=i,f.level=n,f.index=s,f.isFirstChild=s===0,f.isLastChild=s+1===e.length,f.parent=l,!f.ignored){let m=a(d);Array.isArray(m)&&(f.children=dg(m,o,t,r,a,f,n+1))}i.push(f),o.set(f.key,f),t.has(n)||t.set(n,[]),(u=t.get(n))===null||u===void 0||u.push(f)}),i}function nu(e,o={}){var t;let r=new Map,a=new Map,{getDisabled:l=YS,getIgnored:n=QS,getIsGroup:i=og,getKey:d=qS}=o,s=(t=o.getChildren)!==null&&t!==void 0?t:GS,u=o.ignoreEmptyChildren?F=>{let g=s(F);return Array.isArray(g)?g.length?g:null:g}:s,f=Object.assign({get key(){return d(this.rawNode)},get disabled(){return l(this.rawNode)},get isGroup(){return i(this.rawNode)},get isLeaf(){return KS(this.rawNode,u)},get shallowLoaded(){return ZS(this.rawNode,u)},get ignored(){return n(this.rawNode)},contains(F){return ig(this,F)}},ng),m=dg(e,r,a,f,u);function p(F){if(F==null)return null;let g=r.get(F);return g&&!g.isGroup&&!g.ignored?g:null}function c(F){if(F==null)return null;let g=r.get(F);return g&&!g.ignored?g:null}function R(F,g){let k=c(F);return k?k.getPrev(g):null}function y(F,g){let k=c(F);return k?k.getNext(g):null}function h(F){let g=c(F);return g?g.getParent():null}function A(F){let g=c(F);return g?g.getChild():null}let z={treeNodes:m,treeNodeMap:r,levelTreeNodeMap:a,maxLevel:Math.max(...a.keys()),getChildren:u,getFlattenedNodes(F){return rl(m,F)},getNode:p,getPrev:R,getNext:y,getParent:h,getChild:A,getFirstAvailableNode(){return ag(m)},getPath(F,g={}){return rg(F,g,z)},getCheckedKeys(F,g={}){let{cascade:k=!0,leafOnly:S=!1,checkStrategy:b="all",allowNotLoaded:B=!1}=g;return td({checkedKeys:ed(F),indeterminateKeys:od(F),cascade:k,leafOnly:S,checkStrategy:b,allowNotLoaded:B},z)},check(F,g,k={}){let{cascade:S=!0,leafOnly:b=!1,checkStrategy:B="all",allowNotLoaded:v=!1}=k;return td({checkedKeys:ed(g),indeterminateKeys:od(g),keysToCheck:F==null?[]:tu(F),cascade:S,leafOnly:b,checkStrategy:B,allowNotLoaded:v},z)},uncheck(F,g,k={}){let{cascade:S=!0,leafOnly:b=!1,checkStrategy:B="all",allowNotLoaded:v=!1}=k;return td({checkedKeys:ed(g),indeterminateKeys:od(g),keysToUncheck:F==null?[]:tu(F),cascade:S,leafOnly:b,checkStrategy:B,allowNotLoaded:v},z)},getNonLeafKeys(F={}){return US(m,F)}};return z}var xe={neutralBase:"#000",neutralInvertBase:"#fff",neutralTextBase:"#fff",neutralPopover:"rgb(72, 72, 78)",neutralCard:"rgb(24, 24, 28)",neutralModal:"rgb(44, 44, 50)",neutralBody:"rgb(16, 16, 20)",alpha1:"0.9",alpha2:"0.82",alpha3:"0.52",alpha4:"0.38",alpha5:"0.28",alphaClose:"0.52",alphaDisabled:"0.38",alphaDisabledInput:"0.06",alphaPending:"0.09",alphaTablePending:"0.06",alphaTableStriped:"0.05",alphaPressed:"0.05",alphaAvatar:"0.18",alphaRail:"0.2",alphaProgressRail:"0.12",alphaBorder:"0.24",alphaDivider:"0.09",alphaInput:"0.1",alphaAction:"0.06",alphaTab:"0.04",alphaScrollbar:"0.2",alphaScrollbarHover:"0.3",alphaCode:"0.12",alphaTag:"0",primaryHover:"#7fe7c4",primaryDefault:"#63e2b7",primaryActive:"#5acea7",primarySuppl:"rgb(42, 148, 125)",infoHover:"#8acbec",infoDefault:"#70c0e8",infoActive:"#66afd3",infoSuppl:"rgb(56, 137, 197)",errorHover:"#e98b8b",errorDefault:"#e88080",errorActive:"#e57272",errorSuppl:"rgb(208, 58, 82)",warningHover:"#f5d599",warningDefault:"#f2c97d",warningActive:"#e6c260",warningSuppl:"rgb(240, 138, 0)",successHover:"#7fe7c4",successDefault:"#63e2b7",successActive:"#5acea7",successSuppl:"rgb(42, 148, 125)"},xA=kt(xe.neutralBase),sg=kt(xe.neutralInvertBase),SA="rgba("+sg.slice(0,3).join(", ")+", ";function ro(e){return SA+String(e)+")"}function gA(e){let o=Array.from(sg);return o[3]=Number(e),ge(xA,o)}var wA=Object.assign(Object.assign({name:"common"},rt),{baseColor:xe.neutralBase,primaryColor:xe.primaryDefault,primaryColorHover:xe.primaryHover,primaryColorPressed:xe.primaryActive,primaryColorSuppl:xe.primarySuppl,infoColor:xe.infoDefault,infoColorHover:xe.infoHover,infoColorPressed:xe.infoActive,infoColorSuppl:xe.infoSuppl,successColor:xe.successDefault,successColorHover:xe.successHover,successColorPressed:xe.successActive,successColorSuppl:xe.successSuppl,warningColor:xe.warningDefault,warningColorHover:xe.warningHover,warningColorPressed:xe.warningActive,warningColorSuppl:xe.warningSuppl,errorColor:xe.errorDefault,errorColorHover:xe.errorHover,errorColorPressed:xe.errorActive,errorColorSuppl:xe.errorSuppl,textColorBase:xe.neutralTextBase,textColor1:ro(xe.alpha1),textColor2:ro(xe.alpha2),textColor3:ro(xe.alpha3),textColorDisabled:ro(xe.alpha4),placeholderColor:ro(xe.alpha4),placeholderColorDisabled:ro(xe.alpha5),iconColor:ro(xe.alpha4),iconColorDisabled:ro(xe.alpha5),iconColorHover:ro(Number(xe.alpha4)*1.25),iconColorPressed:ro(Number(xe.alpha4)*.8),opacity1:xe.alpha1,opacity2:xe.alpha2,opacity3:xe.alpha3,opacity4:xe.alpha4,opacity5:xe.alpha5,dividerColor:ro(xe.alphaDivider),borderColor:ro(xe.alphaBorder),closeColorHover:ro(Number(xe.alphaClose)*1.25),closeColor:ro(Number(xe.alphaClose)),closeColorPressed:ro(Number(xe.alphaClose)*.8),closeColorDisabled:ro(xe.alpha4),clearColor:ro(xe.alpha4),clearColorHover:Rr(ro(xe.alpha4),{alpha:1.25}),clearColorPressed:Rr(ro(xe.alpha4),{alpha:.8}),scrollbarColor:ro(xe.alphaScrollbar),scrollbarColorHover:ro(xe.alphaScrollbarHover),scrollbarWidth:"5px",scrollbarHeight:"5px",scrollbarBorderRadius:"5px",progressRailColor:ro(xe.alphaProgressRail),railColor:ro(xe.alphaRail),popoverColor:xe.neutralPopover,tableColor:xe.neutralCard,cardColor:xe.neutralCard,modalColor:xe.neutralModal,bodyColor:xe.neutralBody,tagColor:gA(xe.alphaTag),avatarColor:ro(xe.alphaAvatar),invertedColor:xe.neutralBase,inputColor:ro(xe.alphaInput),codeColor:ro(xe.alphaCode),tabColor:ro(xe.alphaTab),actionColor:ro(xe.alphaAction),tableHeaderColor:ro(xe.alphaAction),hoverColor:ro(xe.alphaPending),tableColorHover:ro(xe.alphaTablePending),tableColorStriped:ro(xe.alphaTableStriped),pressedColor:ro(xe.alphaPressed),opacityDisabled:xe.alphaDisabled,inputColorDisabled:ro(xe.alphaDisabledInput),buttonColor2:"rgba(255, 255, 255, .06)",buttonColor2Hover:"rgba(255, 255, 255, .09)",buttonColor2Pressed:"rgba(255, 255, 255, .05)",boxShadow1:"0 1px 2px -2px rgba(0, 0, 0, .24), 0 3px 6px 0 rgba(0, 0, 0, .18), 0 5px 12px 4px rgba(0, 0, 0, .12)",boxShadow2:"0 3px 6px -4px rgba(0, 0, 0, .24), 0 6px 12px 0 rgba(0, 0, 0, .16), 0 9px 18px 8px rgba(0, 0, 0, .10)",boxShadow3:"0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)"}),M=wA;var ve={neutralBase:"#FFF",neutralInvertBase:"#000",neutralTextBase:"#000",neutralPopover:"#fff",neutralCard:"#fff",neutralModal:"#fff",neutralBody:"#fff",alpha1:"0.82",alpha2:"0.72",alpha3:"0.38",alpha4:"0.24",alpha5:"0.18",alphaClose:"0.52",alphaDisabled:"0.5",alphaDisabledInput:"0.02",alphaPending:"0.05",alphaTablePending:"0.02",alphaPressed:"0.07",alphaAvatar:"0.2",alphaRail:"0.14",alphaProgressRail:".08",alphaBorder:"0.12",alphaDivider:"0.06",alphaInput:"0",alphaAction:"0.02",alphaTab:"0.04",alphaScrollbar:"0.25",alphaScrollbarHover:"0.4",alphaCode:"0.05",alphaTag:"0.02",primaryHover:"#36ad6a",primaryDefault:"#18a058",primaryActive:"#0c7a43",primarySuppl:"#36ad6a",infoHover:"#4098fc",infoDefault:"#2080f0",infoActive:"#1060c9",infoSuppl:"#4098fc",errorHover:"#de576d",errorDefault:"#d03050",errorActive:"#ab1f3f",errorSuppl:"#de576d",warningHover:"#fcb040",warningDefault:"#f0a020",warningActive:"#c97c10",warningSuppl:"#fcb040",successHover:"#36ad6a",successDefault:"#18a058",successActive:"#0c7a43",successSuppl:"#36ad6a"},TA=kt(ve.neutralBase),ug=kt(ve.neutralInvertBase),RA="rgba("+ug.slice(0,3).join(", ")+", ";function fg(e){return RA+String(e)+")"}function Xo(e){let o=Array.from(ug);return o[3]=Number(e),ge(TA,o)}var OA=Object.assign(Object.assign({name:"common"},rt),{baseColor:ve.neutralBase,primaryColor:ve.primaryDefault,primaryColorHover:ve.primaryHover,primaryColorPressed:ve.primaryActive,primaryColorSuppl:ve.primarySuppl,infoColor:ve.infoDefault,infoColorHover:ve.infoHover,infoColorPressed:ve.infoActive,infoColorSuppl:ve.infoSuppl,successColor:ve.successDefault,successColorHover:ve.successHover,successColorPressed:ve.successActive,successColorSuppl:ve.successSuppl,warningColor:ve.warningDefault,warningColorHover:ve.warningHover,warningColorPressed:ve.warningActive,warningColorSuppl:ve.warningSuppl,errorColor:ve.errorDefault,errorColorHover:ve.errorHover,errorColorPressed:ve.errorActive,errorColorSuppl:ve.errorSuppl,textColorBase:ve.neutralTextBase,textColor1:"rgb(31, 34, 37)",textColor2:"rgb(51, 54, 57)",textColor3:"rgb(118, 124, 130)",textColorDisabled:Xo(ve.alpha4),placeholderColor:Xo(ve.alpha4),placeholderColorDisabled:Xo(ve.alpha5),iconColor:Xo(ve.alpha4),iconColorHover:Rr(Xo(ve.alpha4),{lightness:.75}),iconColorPressed:Rr(Xo(ve.alpha4),{lightness:.9}),iconColorDisabled:Xo(ve.alpha5),opacity1:ve.alpha1,opacity2:ve.alpha2,opacity3:ve.alpha3,opacity4:ve.alpha4,opacity5:ve.alpha5,dividerColor:"rgb(239, 239, 245)",borderColor:"rgb(224, 224, 230)",closeColor:Xo(Number(ve.alphaClose)),closeColorHover:Xo(Number(ve.alphaClose)*1.25),closeColorPressed:Xo(Number(ve.alphaClose)*.8),closeColorDisabled:Xo(ve.alpha4),clearColor:Xo(ve.alpha4),clearColorHover:Rr(Xo(ve.alpha4),{lightness:.75}),clearColorPressed:Rr(Xo(ve.alpha4),{lightness:.9}),scrollbarColor:fg(ve.alphaScrollbar),scrollbarColorHover:fg(ve.alphaScrollbarHover),scrollbarWidth:"5px",scrollbarHeight:"5px",scrollbarBorderRadius:"5px",progressRailColor:Xo(ve.alphaProgressRail),railColor:"rgb(219, 219, 223)",popoverColor:ve.neutralPopover,tableColor:ve.neutralCard,cardColor:ve.neutralCard,modalColor:ve.neutralModal,bodyColor:ve.neutralBody,tagColor:"rgb(250, 250, 252)",avatarColor:Xo(ve.alphaAvatar),invertedColor:"rgb(0, 20, 40)",inputColor:Xo(ve.alphaInput),codeColor:"rgb(244, 244, 248)",tabColor:"rgb(247, 247, 250)",actionColor:"rgb(250, 250, 252)",tableHeaderColor:"rgb(250, 250, 252)",hoverColor:"rgb(243, 243, 245)",tableColorHover:"rgba(0, 0, 100, 0.03)",tableColorStriped:"rgba(0, 0, 100, 0.02)",pressedColor:"rgb(237, 237, 239)",opacityDisabled:ve.alphaDisabled,inputColorDisabled:"rgb(250, 250, 252)",buttonColor2:"rgba(46, 51, 56, .05)",buttonColor2Hover:"rgba(46, 51, 56, .09)",buttonColor2Pressed:"rgba(46, 51, 56, .13)",boxShadow1:"0 1px 2px -2px rgba(0, 0, 0, .08), 0 3px 6px 0 rgba(0, 0, 0, .06), 0 5px 12px 4px rgba(0, 0, 0, .04)",boxShadow2:"0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05)",boxShadow3:"0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)"}),Se=OA;var pg={iconSizeSmall:"34px",iconSizeMedium:"40px",iconSizeLarge:"46px",iconSizeHuge:"52px"};var iu=e=>{let{textColorDisabled:o,iconColor:t,textColor2:r,fontSizeSmall:a,fontSizeMedium:l,fontSizeLarge:n,fontSizeHuge:i}=e;return Object.assign(Object.assign({},pg),{fontSizeSmall:a,fontSizeMedium:l,fontSizeLarge:n,fontSizeHuge:i,textColor:o,iconColor:t,extraTextColor:r})},FA={name:"Empty",common:Se,self:iu},Ot=FA;var CA={name:"Empty",common:M,self:iu},Ft=CA;var mg=$("empty",` + `,[co({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})])])]);var jr=ue({name:"BaseLoading",props:{clsPrefix:{type:String,required:!0},scale:{type:Number,default:1},radius:{type:Number,default:100},strokeWidth:{type:Number,default:28},stroke:{type:String,default:void 0},show:{type:Boolean,default:!0}},setup(e){er("-base-loading",cv,Re(e,"clsPrefix"))},render(){let{clsPrefix:e,radius:t,strokeWidth:o,stroke:r,scale:n}=this,i=t/n;return b("div",{class:`${e}-base-loading`,role:"img","aria-label":"loading"},b(So,null,{default:()=>this.show?b("div",{key:"icon",class:`${e}-base-loading__transition-wrapper`},b("div",{class:`${e}-base-loading__container`},b("div",{class:`${e}-base-loading__container-layer`},b("div",{class:`${e}-base-loading__container-layer-left`},b("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*i} ${2*i}`,xmlns:"http://www.w3.org/2000/svg",style:{color:r}},b("circle",{fill:"none",stroke:"currentColor","stroke-width":o,"stroke-linecap":"round",cx:i,cy:i,r:t-o/2,"stroke-dasharray":4.91*t,"stroke-dashoffset":2.46*t}))),b("div",{class:`${e}-base-loading__container-layer-patch`},b("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*i} ${2*i}`,xmlns:"http://www.w3.org/2000/svg",style:{color:r}},b("circle",{fill:"none",stroke:"currentColor","stroke-width":o,"stroke-linecap":"round",cx:i,cy:i,r:t-o/2,"stroke-dasharray":4.91*t,"stroke-dashoffset":2.46*t}))),b("div",{class:`${e}-base-loading__container-layer-right`},b("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*i} ${2*i}`,xmlns:"http://www.w3.org/2000/svg",style:{color:r}},b("circle",{fill:"none",stroke:"currentColor","stroke-width":o,"stroke-linecap":"round",cx:i,cy:i,r:t-o/2,"stroke-dasharray":4.91*t,"stroke-dashoffset":2.46*t})))))):b("div",{key:"placeholder",class:`${e}-base-loading__placeholder`},this.$slots)}))}});function vd(e){return Array.isArray(e)?e:[e]}var es={STOP:"STOP"};function bd(e,t){let o=t(e);e.children!==void 0&&o!==es.STOP&&e.children.forEach(r=>bd(r,t))}function dv(e,t={}){let{preserveGroup:o=!1}=t,r=[],n=o?a=>{a.isLeaf||(r.push(a.key),i(a.children))}:a=>{a.isLeaf||(a.isGroup||r.push(a.key),i(a.children))};function i(a){a.forEach(n)}return i(e),r}function uv(e,t){let{isLeaf:o}=e;return o!==void 0?o:!t(e)}function fv(e){return e.children}function pv(e){return e.key}function mv(){return!1}function hv(e,t){let{isLeaf:o}=e;return!(o===!1&&!Array.isArray(t(e)))}function gv(e){return e.disabled===!0}function xv(e,t){return e.isLeaf===!1&&!Array.isArray(t(e))}function ts(e){var t;return e==null?[]:Array.isArray(e)?e:(t=e.checkedKeys)!==null&&t!==void 0?t:[]}function os(e){var t;return e==null||Array.isArray(e)?[]:(t=e.indeterminateKeys)!==null&&t!==void 0?t:[]}function vv(e,t){let o=new Set(e);return t.forEach(r=>{o.has(r)||o.add(r)}),Array.from(o)}function bv(e,t){let o=new Set(e);return t.forEach(r=>{o.has(r)&&o.delete(r)}),Array.from(o)}function yv(e){return e?.type==="group"}function yd(e){let t=new Map;return e.forEach((o,r)=>{t.set(o.key,r)}),o=>{var r;return(r=t.get(o))!==null&&r!==void 0?r:null}}var Cd=class extends Error{constructor(){super(),this.message="SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded."}};function YD(e,t,o,r){return rs(t.concat(e),o,r,!1)}function XD(e,t){let o=new Set;return e.forEach(r=>{let n=t.treeNodeMap.get(r);if(n!==void 0){let i=n.parent;for(;i!==null&&!(i.disabled||o.has(i.key));)o.add(i.key),i=i.parent}}),o}function ZD(e,t,o,r){let n=rs(t,o,r,!1),i=rs(e,o,r,!0),a=XD(e,o),l=[];return n.forEach(s=>{(i.has(s)||a.has(s))&&l.push(s)}),l.forEach(s=>n.delete(s)),n}function ns(e,t){let{checkedKeys:o,keysToCheck:r,keysToUncheck:n,indeterminateKeys:i,cascade:a,leafOnly:l,checkStrategy:s,allowNotLoaded:c}=e;if(!a)return r!==void 0?{checkedKeys:vv(o,r),indeterminateKeys:Array.from(i)}:n!==void 0?{checkedKeys:bv(o,n),indeterminateKeys:Array.from(i)}:{checkedKeys:Array.from(o),indeterminateKeys:Array.from(i)};let{levelTreeNodeMap:d}=t,u;n!==void 0?u=ZD(n,o,t,c):r!==void 0?u=YD(r,o,t,c):u=rs(o,t,c,!1);let p=s==="parent",f=s==="child"||l,m=u,y=new Set,w=Math.max.apply(null,Array.from(d.keys()));for(let g=w;g>=0;g-=1){let O=g===0,j=d.get(g);for(let S of j){if(S.isLeaf)continue;let{key:v,shallowLoaded:D}=S;if(f&&D&&S.children.forEach(E=>{!E.disabled&&!E.isLeaf&&E.shallowLoaded&&m.has(E.key)&&m.delete(E.key)}),S.disabled||!D)continue;let x=!0,k=!1,A=!0;for(let E of S.children){let z=E.key;if(!E.disabled){if(A&&(A=!1),m.has(z))k=!0;else if(y.has(z)){k=!0,x=!1;break}else if(x=!1,k)break}}x&&!A?(p&&S.children.forEach(E=>{!E.disabled&&m.has(E.key)&&m.delete(E.key)}),m.add(v)):k&&y.add(v),O&&f&&m.has(v)&&m.delete(v)}}return{checkedKeys:Array.from(m),indeterminateKeys:Array.from(y)}}function rs(e,t,o,r){let{treeNodeMap:n,getChildren:i}=t,a=new Set,l=new Set(e);return e.forEach(s=>{let c=n.get(s);c!==void 0&&bd(c,d=>{if(d.disabled)return es.STOP;let{key:u}=d;if(!a.has(u)&&(a.add(u),l.add(u),xv(d.rawNode,i))){if(r)return es.STOP;if(!o)throw new Cd}})}),l}function Cv(e,{includeGroup:t=!1,includeSelf:o=!0},r){var n;let i=r.treeNodeMap,a=e==null?null:(n=i.get(e))!==null&&n!==void 0?n:null,l={keyPath:[],treeNodePath:[],treeNode:a};if(a?.ignored)return l.treeNode=null,l;for(;a;)!a.ignored&&(t||!a.isGroup)&&l.treeNodePath.push(a),a=a.parent;return l.treeNodePath.reverse(),o||l.treeNodePath.pop(),l.keyPath=l.treeNodePath.map(s=>s.key),l}function kv(e){if(e.length===0)return null;let t=e[0];return t.isGroup||t.ignored||t.disabled?t.getNext():t}function QD(e,t){let o=e.siblings,r=o.length,{index:n}=e;return t?o[(n+1)%r]:n===o.length-1?null:o[n+1]}function wv(e,t,{loop:o=!1,includeDisabled:r=!1}={}){let n=t==="prev"?JD:QD,i={reverse:t==="prev"},a=!1,l=null;function s(c){if(c!==null){if(c===e){if(!a)a=!0;else if(!e.disabled&&!e.isGroup){l=e;return}}else if((!c.disabled||r)&&!c.ignored&&!c.isGroup){l=c;return}if(c.isGroup){let d=wd(c,i);d!==null?l=d:s(n(c,o))}else{let d=n(c,!1);if(d!==null)s(d);else{let u=eT(c);u?.isGroup?s(n(u,o)):o&&s(n(c,!0))}}}}return s(e),l}function JD(e,t){let o=e.siblings,r=o.length,{index:n}=e;return t?o[(n-1+r)%r]:n===0?null:o[n-1]}function eT(e){return e.parent}function wd(e,t={}){let{reverse:o=!1}=t,{children:r}=e;if(r){let{length:n}=r,i=o?n-1:0,a=o?-1:n,l=o?-1:1;for(let s=i;s!==a;s+=l){let c=r[s];if(!c.disabled&&!c.ignored)if(c.isGroup){let d=wd(c,t);if(d!==null)return d}else return c}}return null}var Sv={getChild(){return this.ignored?null:wd(this)},getParent(){let{parent:e}=this;return e?.isGroup?e.getParent():e},getNext(e={}){return wv(this,"next",e)},getPrev(e={}){return wv(this,"prev",e)}};function ei(e,t){let o=t?new Set(t):void 0,r=[];function n(i){i.forEach(a=>{r.push(a),!(a.isLeaf||!a.children||a.ignored)&&(a.isGroup||o===void 0||o.has(a.key))&&n(a.children)})}return n(e),r}function _v(e,t){let o=e.key;for(;t;){if(t.key===o)return!0;t=t.parent}return!1}function Ev(e,t,o,r,n,i=null,a=0){let l=[];return e.forEach((s,c)=>{var d;let u=Object.create(r);if(u.rawNode=s,u.siblings=l,u.level=a,u.index=c,u.isFirstChild=c===0,u.isLastChild=c+1===e.length,u.parent=i,!u.ignored){let p=n(s);Array.isArray(p)&&(u.children=Ev(p,t,o,r,n,u,a+1))}l.push(u),t.set(u.key,u),o.has(a)||o.set(a,[]),(d=o.get(a))===null||d===void 0||d.push(u)}),l}function kd(e,t={}){var o;let r=new Map,n=new Map,{getDisabled:i=gv,getIgnored:a=mv,getIsGroup:l=yv,getKey:s=pv}=t,c=(o=t.getChildren)!==null&&o!==void 0?o:fv,d=t.ignoreEmptyChildren?S=>{let v=c(S);return Array.isArray(v)?v.length?v:null:v}:c,u=Object.assign({get key(){return s(this.rawNode)},get disabled(){return i(this.rawNode)},get isGroup(){return l(this.rawNode)},get isLeaf(){return uv(this.rawNode,d)},get shallowLoaded(){return hv(this.rawNode,d)},get ignored(){return a(this.rawNode)},contains(S){return _v(this,S)}},Sv),p=Ev(e,r,n,u,d);function f(S){if(S==null)return null;let v=r.get(S);return v&&!v.isGroup&&!v.ignored?v:null}function m(S){if(S==null)return null;let v=r.get(S);return v&&!v.ignored?v:null}function y(S,v){let D=m(S);return D?D.getPrev(v):null}function w(S,v){let D=m(S);return D?D.getNext(v):null}function g(S){let v=m(S);return v?v.getParent():null}function O(S){let v=m(S);return v?v.getChild():null}let j={treeNodes:p,treeNodeMap:r,levelTreeNodeMap:n,maxLevel:Math.max(...n.keys()),getChildren:d,getFlattenedNodes(S){return ei(p,S)},getNode:f,getPrev:y,getNext:w,getParent:g,getChild:O,getFirstAvailableNode(){return kv(p)},getPath(S,v={}){return Cv(S,v,j)},getCheckedKeys(S,v={}){let{cascade:D=!0,leafOnly:x=!1,checkStrategy:k="all",allowNotLoaded:A=!1}=v;return ns({checkedKeys:ts(S),indeterminateKeys:os(S),cascade:D,leafOnly:x,checkStrategy:k,allowNotLoaded:A},j)},check(S,v,D={}){let{cascade:x=!0,leafOnly:k=!1,checkStrategy:A="all",allowNotLoaded:E=!1}=D;return ns({checkedKeys:ts(v),indeterminateKeys:os(v),keysToCheck:S==null?[]:vd(S),cascade:x,leafOnly:k,checkStrategy:A,allowNotLoaded:E},j)},uncheck(S,v,D={}){let{cascade:x=!0,leafOnly:k=!1,checkStrategy:A="all",allowNotLoaded:E=!1}=D;return ns({checkedKeys:ts(v),indeterminateKeys:os(v),keysToUncheck:S==null?[]:vd(S),cascade:x,leafOnly:k,checkStrategy:A,allowNotLoaded:E},j)},getNonLeafKeys(S={}){return dv(p,S)}};return j}var he={neutralBase:"#000",neutralInvertBase:"#fff",neutralTextBase:"#fff",neutralPopover:"rgb(72, 72, 78)",neutralCard:"rgb(24, 24, 28)",neutralModal:"rgb(44, 44, 50)",neutralBody:"rgb(16, 16, 20)",alpha1:"0.9",alpha2:"0.82",alpha3:"0.52",alpha4:"0.38",alpha5:"0.28",alphaClose:"0.52",alphaDisabled:"0.38",alphaDisabledInput:"0.06",alphaPending:"0.09",alphaTablePending:"0.06",alphaTableStriped:"0.05",alphaPressed:"0.05",alphaAvatar:"0.18",alphaRail:"0.2",alphaProgressRail:"0.12",alphaBorder:"0.24",alphaDivider:"0.09",alphaInput:"0.1",alphaAction:"0.06",alphaTab:"0.04",alphaScrollbar:"0.2",alphaScrollbarHover:"0.3",alphaCode:"0.12",alphaTag:"0",primaryHover:"#7fe7c4",primaryDefault:"#63e2b7",primaryActive:"#5acea7",primarySuppl:"rgb(42, 148, 125)",infoHover:"#8acbec",infoDefault:"#70c0e8",infoActive:"#66afd3",infoSuppl:"rgb(56, 137, 197)",errorHover:"#e98b8b",errorDefault:"#e88080",errorActive:"#e57272",errorSuppl:"rgb(208, 58, 82)",warningHover:"#f5d599",warningDefault:"#f2c97d",warningActive:"#e6c260",warningSuppl:"rgb(240, 138, 0)",successHover:"#7fe7c4",successDefault:"#63e2b7",successActive:"#5acea7",successSuppl:"rgb(42, 148, 125)"},tT=vo(he.neutralBase),Dv=vo(he.neutralInvertBase),oT="rgba("+Dv.slice(0,3).join(", ")+", ";function Ge(e){return oT+String(e)+")"}function rT(e){let t=Array.from(Dv);return t[3]=Number(e),xe(tT,t)}var nT=Object.assign(Object.assign({name:"common"},Ut),{baseColor:he.neutralBase,primaryColor:he.primaryDefault,primaryColorHover:he.primaryHover,primaryColorPressed:he.primaryActive,primaryColorSuppl:he.primarySuppl,infoColor:he.infoDefault,infoColorHover:he.infoHover,infoColorPressed:he.infoActive,infoColorSuppl:he.infoSuppl,successColor:he.successDefault,successColorHover:he.successHover,successColorPressed:he.successActive,successColorSuppl:he.successSuppl,warningColor:he.warningDefault,warningColorHover:he.warningHover,warningColorPressed:he.warningActive,warningColorSuppl:he.warningSuppl,errorColor:he.errorDefault,errorColorHover:he.errorHover,errorColorPressed:he.errorActive,errorColorSuppl:he.errorSuppl,textColorBase:he.neutralTextBase,textColor1:Ge(he.alpha1),textColor2:Ge(he.alpha2),textColor3:Ge(he.alpha3),textColorDisabled:Ge(he.alpha4),placeholderColor:Ge(he.alpha4),placeholderColorDisabled:Ge(he.alpha5),iconColor:Ge(he.alpha4),iconColorDisabled:Ge(he.alpha5),iconColorHover:Ge(Number(he.alpha4)*1.25),iconColorPressed:Ge(Number(he.alpha4)*.8),opacity1:he.alpha1,opacity2:he.alpha2,opacity3:he.alpha3,opacity4:he.alpha4,opacity5:he.alpha5,dividerColor:Ge(he.alphaDivider),borderColor:Ge(he.alphaBorder),closeColorHover:Ge(Number(he.alphaClose)*1.25),closeColor:Ge(Number(he.alphaClose)),closeColorPressed:Ge(Number(he.alphaClose)*.8),closeColorDisabled:Ge(he.alpha4),clearColor:Ge(he.alpha4),clearColorHover:ur(Ge(he.alpha4),{alpha:1.25}),clearColorPressed:ur(Ge(he.alpha4),{alpha:.8}),scrollbarColor:Ge(he.alphaScrollbar),scrollbarColorHover:Ge(he.alphaScrollbarHover),scrollbarWidth:"5px",scrollbarHeight:"5px",scrollbarBorderRadius:"5px",progressRailColor:Ge(he.alphaProgressRail),railColor:Ge(he.alphaRail),popoverColor:he.neutralPopover,tableColor:he.neutralCard,cardColor:he.neutralCard,modalColor:he.neutralModal,bodyColor:he.neutralBody,tagColor:rT(he.alphaTag),avatarColor:Ge(he.alphaAvatar),invertedColor:he.neutralBase,inputColor:Ge(he.alphaInput),codeColor:Ge(he.alphaCode),tabColor:Ge(he.alphaTab),actionColor:Ge(he.alphaAction),tableHeaderColor:Ge(he.alphaAction),hoverColor:Ge(he.alphaPending),tableColorHover:Ge(he.alphaTablePending),tableColorStriped:Ge(he.alphaTableStriped),pressedColor:Ge(he.alphaPressed),opacityDisabled:he.alphaDisabled,inputColorDisabled:Ge(he.alphaDisabledInput),buttonColor2:"rgba(255, 255, 255, .06)",buttonColor2Hover:"rgba(255, 255, 255, .09)",buttonColor2Pressed:"rgba(255, 255, 255, .05)",boxShadow1:"0 1px 2px -2px rgba(0, 0, 0, .24), 0 3px 6px 0 rgba(0, 0, 0, .18), 0 5px 12px 4px rgba(0, 0, 0, .12)",boxShadow2:"0 3px 6px -4px rgba(0, 0, 0, .24), 0 6px 12px 0 rgba(0, 0, 0, .16), 0 9px 18px 8px rgba(0, 0, 0, .10)",boxShadow3:"0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)"}),R=nT;var _e={neutralBase:"#FFF",neutralInvertBase:"#000",neutralTextBase:"#000",neutralPopover:"#fff",neutralCard:"#fff",neutralModal:"#fff",neutralBody:"#fff",alpha1:"0.82",alpha2:"0.72",alpha3:"0.38",alpha4:"0.24",alpha5:"0.18",alphaClose:"0.52",alphaDisabled:"0.5",alphaDisabledInput:"0.02",alphaPending:"0.05",alphaTablePending:"0.02",alphaPressed:"0.07",alphaAvatar:"0.2",alphaRail:"0.14",alphaProgressRail:".08",alphaBorder:"0.12",alphaDivider:"0.06",alphaInput:"0",alphaAction:"0.02",alphaTab:"0.04",alphaScrollbar:"0.25",alphaScrollbarHover:"0.4",alphaCode:"0.05",alphaTag:"0.02",primaryHover:"#36ad6a",primaryDefault:"#18a058",primaryActive:"#0c7a43",primarySuppl:"#36ad6a",infoHover:"#4098fc",infoDefault:"#2080f0",infoActive:"#1060c9",infoSuppl:"#4098fc",errorHover:"#de576d",errorDefault:"#d03050",errorActive:"#ab1f3f",errorSuppl:"#de576d",warningHover:"#fcb040",warningDefault:"#f0a020",warningActive:"#c97c10",warningSuppl:"#fcb040",successHover:"#36ad6a",successDefault:"#18a058",successActive:"#0c7a43",successSuppl:"#36ad6a"},iT=vo(_e.neutralBase),Ov=vo(_e.neutralInvertBase),aT="rgba("+Ov.slice(0,3).join(", ")+", ";function Tv(e){return aT+String(e)+")"}function Vt(e){let t=Array.from(Ov);return t[3]=Number(e),xe(iT,t)}var lT=Object.assign(Object.assign({name:"common"},Ut),{baseColor:_e.neutralBase,primaryColor:_e.primaryDefault,primaryColorHover:_e.primaryHover,primaryColorPressed:_e.primaryActive,primaryColorSuppl:_e.primarySuppl,infoColor:_e.infoDefault,infoColorHover:_e.infoHover,infoColorPressed:_e.infoActive,infoColorSuppl:_e.infoSuppl,successColor:_e.successDefault,successColorHover:_e.successHover,successColorPressed:_e.successActive,successColorSuppl:_e.successSuppl,warningColor:_e.warningDefault,warningColorHover:_e.warningHover,warningColorPressed:_e.warningActive,warningColorSuppl:_e.warningSuppl,errorColor:_e.errorDefault,errorColorHover:_e.errorHover,errorColorPressed:_e.errorActive,errorColorSuppl:_e.errorSuppl,textColorBase:_e.neutralTextBase,textColor1:"rgb(31, 34, 37)",textColor2:"rgb(51, 54, 57)",textColor3:"rgb(118, 124, 130)",textColorDisabled:Vt(_e.alpha4),placeholderColor:Vt(_e.alpha4),placeholderColorDisabled:Vt(_e.alpha5),iconColor:Vt(_e.alpha4),iconColorHover:ur(Vt(_e.alpha4),{lightness:.75}),iconColorPressed:ur(Vt(_e.alpha4),{lightness:.9}),iconColorDisabled:Vt(_e.alpha5),opacity1:_e.alpha1,opacity2:_e.alpha2,opacity3:_e.alpha3,opacity4:_e.alpha4,opacity5:_e.alpha5,dividerColor:"rgb(239, 239, 245)",borderColor:"rgb(224, 224, 230)",closeColor:Vt(Number(_e.alphaClose)),closeColorHover:Vt(Number(_e.alphaClose)*1.25),closeColorPressed:Vt(Number(_e.alphaClose)*.8),closeColorDisabled:Vt(_e.alpha4),clearColor:Vt(_e.alpha4),clearColorHover:ur(Vt(_e.alpha4),{lightness:.75}),clearColorPressed:ur(Vt(_e.alpha4),{lightness:.9}),scrollbarColor:Tv(_e.alphaScrollbar),scrollbarColorHover:Tv(_e.alphaScrollbarHover),scrollbarWidth:"5px",scrollbarHeight:"5px",scrollbarBorderRadius:"5px",progressRailColor:Vt(_e.alphaProgressRail),railColor:"rgb(219, 219, 223)",popoverColor:_e.neutralPopover,tableColor:_e.neutralCard,cardColor:_e.neutralCard,modalColor:_e.neutralModal,bodyColor:_e.neutralBody,tagColor:"rgb(250, 250, 252)",avatarColor:Vt(_e.alphaAvatar),invertedColor:"rgb(0, 20, 40)",inputColor:Vt(_e.alphaInput),codeColor:"rgb(244, 244, 248)",tabColor:"rgb(247, 247, 250)",actionColor:"rgb(250, 250, 252)",tableHeaderColor:"rgb(250, 250, 252)",hoverColor:"rgb(243, 243, 245)",tableColorHover:"rgba(0, 0, 100, 0.03)",tableColorStriped:"rgba(0, 0, 100, 0.02)",pressedColor:"rgb(237, 237, 239)",opacityDisabled:_e.alphaDisabled,inputColorDisabled:"rgb(250, 250, 252)",buttonColor2:"rgba(46, 51, 56, .05)",buttonColor2Hover:"rgba(46, 51, 56, .09)",buttonColor2Pressed:"rgba(46, 51, 56, .13)",boxShadow1:"0 1px 2px -2px rgba(0, 0, 0, .08), 0 3px 6px 0 rgba(0, 0, 0, .06), 0 5px 12px 4px rgba(0, 0, 0, .04)",boxShadow2:"0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05)",boxShadow3:"0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)"}),ge=lT;var Pv={iconSizeSmall:"34px",iconSizeMedium:"40px",iconSizeLarge:"46px",iconSizeHuge:"52px"};var Sd=e=>{let{textColorDisabled:t,iconColor:o,textColor2:r,fontSizeSmall:n,fontSizeMedium:i,fontSizeLarge:a,fontSizeHuge:l}=e;return Object.assign(Object.assign({},Pv),{fontSizeSmall:n,fontSizeMedium:i,fontSizeLarge:a,fontSizeHuge:l,textColor:t,iconColor:o,extraTextColor:r})},sT={name:"Empty",common:ge,self:Sd},uo=sT;var cT={name:"Empty",common:R,self:Sd},fo=cT;var Nv=U("empty",` display: flex; flex-direction: column; align-items: center; font-size: var(--n-font-size); -`,[oe("icon",` +`,[ee("icon",` width: var(--n-icon-size); height: var(--n-icon-size); font-size: var(--n-icon-size); @@ -184,23 +184,23 @@ ${o} color: var(--n-icon-color); transition: color .3s var(--n-bezier); - `,[J("+",[oe("description",` + `,[J("+",[ee("description",` margin-top: 8px; - `)])]),oe("description",` + `)])]),ee("description",` transition: color .3s var(--n-bezier); color: var(--n-text-color); - `),oe("extra",` + `),ee("extra",` text-align: center; transition: color .3s var(--n-bezier); margin-top: 12px; color: var(--n-extra-text-color); - `)]);var bA=Object.assign(Object.assign({},Mo.props),{description:String,showDescription:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},size:{type:String,default:"medium"},renderIcon:Function}),du=ae({name:"Empty",props:bA,setup(e){let{mergedClsPrefixRef:o,inlineThemeDisabled:t}=Ko(e),r=Mo("Empty","-empty",mg,Ot,e,o),{localeRef:a}=ol("Empty"),l=Ce(st,null),n=W(()=>{var u,f,m;return(u=e.description)!==null&&u!==void 0?u:(m=(f=l==null?void 0:l.mergedComponentPropsRef.value)===null||f===void 0?void 0:f.Empty)===null||m===void 0?void 0:m.description}),i=W(()=>{var u,f;return((f=(u=l==null?void 0:l.mergedComponentPropsRef.value)===null||u===void 0?void 0:u.Empty)===null||f===void 0?void 0:f.renderIcon)||(()=>w(Xs,null))}),d=W(()=>{let{size:u}=e,{common:{cubicBezierEaseInOut:f},self:{[Be("iconSize",u)]:m,[Be("fontSize",u)]:p,textColor:c,iconColor:R,extraTextColor:y}}=r.value;return{"--n-icon-size":m,"--n-font-size":p,"--n-bezier":f,"--n-text-color":c,"--n-icon-color":R,"--n-extra-text-color":y}}),s=t?at("empty",W(()=>{let u="",{size:f}=e;return u+=f[0],u}),d,e):void 0;return{mergedClsPrefix:o,mergedRenderIcon:i,localizedDescription:W(()=>n.value||a.value.description),cssVars:t?void 0:d,themeClass:s==null?void 0:s.themeClass,onRender:s==null?void 0:s.onRender}},render(){let{$slots:e,mergedClsPrefix:o,onRender:t}=this;return t==null||t(),w("div",{class:[`${o}-empty`,this.themeClass],style:this.cssVars},this.showIcon?w("div",{class:`${o}-empty__icon`},e.icon?e.icon():w(Lt,{clsPrefix:o},{default:this.mergedRenderIcon})):null,this.showDescription?w("div",{class:`${o}-empty__description`},e.default?e.default():this.localizedDescription):null,e.extra?w("div",{class:`${o}-empty__extra`},e.extra()):null)}});var su=e=>{let{scrollbarColor:o,scrollbarColorHover:t}=e;return{color:o,colorHover:t}},yA={name:"Scrollbar",common:Se,self:su},Io=yA;var vA={name:"Scrollbar",common:M,self:su},go=vA;var{cubicBezierEaseInOut:cg}=rt;function hg({name:e="fade-in",enterDuration:o="0.2s",leaveDuration:t="0.2s",enterCubicBezier:r=cg,leaveCubicBezier:a=cg}={}){return[J(`&.${e}-transition-enter-active`,{transition:`all ${o} ${r}!important`}),J(`&.${e}-transition-leave-active`,{transition:`all ${t} ${a}!important`}),J(`&.${e}-transition-enter-from, &.${e}-transition-leave-to`,{opacity:0}),J(`&.${e}-transition-leave-from, &.${e}-transition-enter-to`,{opacity:1})]}var xg=$("scrollbar",` + `)]);var dT=Object.assign(Object.assign({},Ct.props),{description:String,showDescription:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},size:{type:String,default:"medium"},renderIcon:Function}),_d=ue({name:"Empty",props:dT,setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:o}=Mt(e),r=Ct("Empty","-empty",Nv,uo,e,t),{localeRef:n}=Qn("Empty"),i=ke(Zt,null),a=F(()=>{var d,u,p;return(d=e.description)!==null&&d!==void 0?d:(p=(u=i?.mergedComponentPropsRef.value)===null||u===void 0?void 0:u.Empty)===null||p===void 0?void 0:p.description}),l=F(()=>{var d,u;return((u=(d=i?.mergedComponentPropsRef.value)===null||d===void 0?void 0:d.Empty)===null||u===void 0?void 0:u.renderIcon)||(()=>b(md,null))}),s=F(()=>{let{size:d}=e,{common:{cubicBezierEaseInOut:u},self:{[Te("iconSize",d)]:p,[Te("fontSize",d)]:f,textColor:m,iconColor:y,extraTextColor:w}}=r.value;return{"--n-icon-size":p,"--n-font-size":f,"--n-bezier":u,"--n-text-color":m,"--n-icon-color":y,"--n-extra-text-color":w}}),c=o?qt("empty",F(()=>{let d="",{size:u}=e;return d+=u[0],d}),s,e):void 0;return{mergedClsPrefix:t,mergedRenderIcon:l,localizedDescription:F(()=>a.value||n.value.description),cssVars:o?void 0:s,themeClass:c?.themeClass,onRender:c?.onRender}},render(){let{$slots:e,mergedClsPrefix:t,onRender:o}=this;return o?.(),b("div",{class:[`${t}-empty`,this.themeClass],style:this.cssVars},this.showIcon?b("div",{class:`${t}-empty__icon`},e.icon?e.icon():b(_o,{clsPrefix:t},{default:this.mergedRenderIcon})):null,this.showDescription?b("div",{class:`${t}-empty__description`},e.default?e.default():this.localizedDescription):null,e.extra?b("div",{class:`${t}-empty__extra`},e.extra()):null)}});var Ed=e=>{let{scrollbarColor:t,scrollbarColorHover:o}=e;return{color:t,colorHover:o}},uT={name:"Scrollbar",common:ge,self:Ed},_t=uT;var fT={name:"Scrollbar",common:R,self:Ed},at=fT;var{cubicBezierEaseInOut:Rv}=Ut;function Iv({name:e="fade-in",enterDuration:t="0.2s",leaveDuration:o="0.2s",enterCubicBezier:r=Rv,leaveCubicBezier:n=Rv}={}){return[J(`&.${e}-transition-enter-active`,{transition:`all ${t} ${r}!important`}),J(`&.${e}-transition-leave-active`,{transition:`all ${o} ${n}!important`}),J(`&.${e}-transition-enter-from, &.${e}-transition-leave-to`,{opacity:0}),J(`&.${e}-transition-leave-from, &.${e}-transition-enter-to`,{opacity:1})]}var Av=U("scrollbar",` overflow: hidden; position: relative; z-index: auto; height: 100%; width: 100%; -`,[J(">",[$("scrollbar-container",` +`,[J(">",[U("scrollbar-container",` width: 100%; overflow: scroll; height: 100%; @@ -210,50 +210,50 @@ ${o} width: 0; height: 0; display: none; - `),J(">",[$("scrollbar-content",` + `),J(">",[U("scrollbar-content",` box-sizing: border-box; min-width: 100%; - `)])]),$("scrollbar-rail",` + `)])]),U("scrollbar-rail",` position: absolute; pointer-events: none; user-select: none; - `,[Te("horizontal",` + `,[be("horizontal",` left: 2px; right: 2px; bottom: 4px; height: var(--n-scrollbar-height); - `,[J(">",[oe("scrollbar",` + `,[J(">",[ee("scrollbar",` height: var(--n-scrollbar-height); border-radius: var(--n-scrollbar-border-radius); right: 0; - `)])]),Te("vertical",` + `)])]),be("vertical",` right: 4px; top: 2px; bottom: 2px; width: var(--n-scrollbar-width); - `,[J(">",[oe("scrollbar",` + `,[J(">",[ee("scrollbar",` width: var(--n-scrollbar-width); border-radius: var(--n-scrollbar-border-radius); bottom: 0; - `)])]),Te("disabled",[J(">",[oe("scrollbar",{pointerEvents:"none"})])]),J(">",[oe("scrollbar",` + `)])]),be("disabled",[J(">",[ee("scrollbar",{pointerEvents:"none"})])]),J(">",[ee("scrollbar",` position: absolute; cursor: pointer; pointer-events: all; background-color: var(--n-scrollbar-color); transition: background-color .2s var(--n-scrollbar-bezier); - `,[hg(),J("&:hover",{backgroundColor:"var(--n-scrollbar-color-hover)"})])])])])]);var kA=Object.assign(Object.assign({},Mo.props),{size:{type:Number,default:5},duration:{type:Number,default:0},scrollable:{type:Boolean,default:!0},xScrollable:Boolean,useUnifiedContainer:Boolean,triggerDisplayManually:Boolean,container:Function,content:Function,containerClass:String,containerStyle:[String,Object],contentClass:String,contentStyle:[String,Object],horizontalRailStyle:[String,Object],verticalRailStyle:[String,Object],onScroll:Function,onWheel:Function,onResize:Function,internalOnUpdateScrollLeft:Function}),Sg=ae({name:"Scrollbar",props:kA,inheritAttrs:!1,setup(e){let{mergedClsPrefixRef:o,inlineThemeDisabled:t}=Ko(e),r=Z(null),a=Z(null),l=Z(null),n=Z(null),i=Z(null),d=Z(null),s=Z(null),u=Z(null),f=Z(null),m=Z(null),p=Z(null),c=Z(0),R=Z(0),y=Z(!1),h=Z(!1),A=!1,z=!1,F,g,k=0,S=0,b=0,B=0,v=gi(),_=W(()=>{let{value:Q}=u,{value:ie}=d,{value:Oe}=m;return Q===null||ie===null||Oe===null?0:Math.min(Q,Oe*Q/ie+e.size*1.5)}),E=W(()=>`${_.value}px`),se=W(()=>{let{value:Q}=f,{value:ie}=s,{value:Oe}=p;return Q===null||ie===null||Oe===null?0:Oe*Q/ie+e.size*1.5}),Fe=W(()=>`${se.value}px`),Ee=W(()=>{let{value:Q}=u,{value:ie}=c,{value:Oe}=d,{value:He}=m;if(Q===null||Oe===null||He===null)return 0;{let lo=Oe-Q;return lo?ie/lo*(He-_.value):0}}),pe=W(()=>`${Ee.value}px`),fe=W(()=>{let{value:Q}=f,{value:ie}=R,{value:Oe}=s,{value:He}=p;if(Q===null||Oe===null||He===null)return 0;{let lo=Oe-Q;return lo?ie/lo*(He-se.value):0}}),Re=W(()=>`${fe.value}px`),eo=W(()=>{let{value:Q}=u,{value:ie}=d;return Q!==null&&ie!==null&&ie>Q}),oo=W(()=>{let{value:Q}=f,{value:ie}=s;return Q!==null&&ie!==null&&ie>Q}),Qe=W(()=>{let{container:Q}=e;return Q?Q():a.value}),fo=W(()=>{let{content:Q}=e;return Q?Q():l.value}),no=ee,Bo=Q=>{let{onResize:ie}=e;ie&&ie(Q),ee()},Eo=(Q,ie)=>{if(!e.scrollable)return;if(typeof Q=="number"){Ve(Q,ie!=null?ie:0,0,!1,"auto");return}let{left:Oe,top:He,index:lo,elSize:Ze,position:Ye,behavior:Xe,el:vo,debounce:lt=!0}=Q;(Oe!==void 0||He!==void 0)&&Ve(Oe!=null?Oe:0,He!=null?He:0,0,!1,Xe),vo!==void 0?Ve(0,vo.offsetTop,vo.offsetHeight,lt,Xe):lo!==void 0&&Ze!==void 0?Ve(0,lo*Ze,Ze,lt,Xe):Ye==="bottom"?Ve(0,Number.MAX_SAFE_INTEGER,0,!1,Xe):Ye==="top"&&Ve(0,0,0,!1,Xe)},Ke=(Q,ie)=>{if(!e.scrollable)return;let{value:Oe}=Qe;!Oe||(typeof Q=="object"?Oe.scrollBy(Q):Oe.scrollBy(Q,ie||0))};function Ve(Q,ie,Oe,He,lo){let{value:Ze}=Qe;if(!!Ze){if(He){let{scrollTop:Ye,offsetHeight:Xe}=Ze;if(ie>Ye){ie+Oe<=Ye+Xe||Ze.scrollTo({left:Q,top:ie+Oe-Xe,behavior:lo});return}}Ze.scrollTo({left:Q,top:ie,behavior:lo})}}function ao(){x(),O(),ee()}function Ae(){mo()}function mo(){Lo(),bo()}function Lo(){g!==void 0&&window.clearTimeout(g),g=window.setTimeout(()=>{h.value=!1},e.duration)}function bo(){F!==void 0&&window.clearTimeout(F),F=window.setTimeout(()=>{y.value=!1},e.duration)}function x(){F!==void 0&&window.clearTimeout(F),y.value=!0}function O(){g!==void 0&&window.clearTimeout(g),h.value=!0}function N(Q){let{onScroll:ie}=e;ie&&ie(Q),U()}function U(){let{value:Q}=Qe;Q&&(c.value=Q.scrollTop,R.value=Q.scrollLeft)}function K(){let{value:Q}=fo;Q&&(d.value=Q.offsetHeight,s.value=Q.offsetWidth);let{value:ie}=Qe;ie&&(u.value=ie.offsetHeight,f.value=ie.offsetWidth);let{value:Oe}=i,{value:He}=n;Oe&&(p.value=Oe.offsetWidth),He&&(m.value=He.offsetHeight)}function le(){let{value:Q}=Qe;Q&&(c.value=Q.scrollTop,R.value=Q.scrollLeft,u.value=Q.offsetHeight,f.value=Q.offsetWidth,d.value=Q.scrollHeight,s.value=Q.scrollWidth);let{value:ie}=i,{value:Oe}=n;ie&&(p.value=ie.offsetWidth),Oe&&(m.value=Oe.offsetHeight)}function ee(){!e.scrollable||(e.useUnifiedContainer?le():(K(),U()))}function V(Q){var ie;return!((ie=r.value)===null||ie===void 0?void 0:ie.contains(Q.target))}function Y(Q){Q.preventDefault(),Q.stopPropagation(),z=!0,ko("mousemove",window,G,!0),ko("mouseup",window,D,!0),S=R.value,b=Q.clientX}function G(Q){if(!z)return;F!==void 0&&window.clearTimeout(F),g!==void 0&&window.clearTimeout(g);let{value:ie}=f,{value:Oe}=s,{value:He}=se;if(ie===null||Oe===null)return;let Ze=(Q.clientX-b)*(Oe-ie)/(ie-He),Ye=Oe-ie,Xe=S+Ze;Xe=Math.min(Ye,Xe),Xe=Math.max(Xe,0);let{value:vo}=Qe;if(vo){vo.scrollLeft=Xe;let{internalOnUpdateScrollLeft:lt}=e;lt&<(Xe)}}function D(Q){Q.preventDefault(),Q.stopPropagation(),yo("mousemove",window,G,!0),yo("mouseup",window,D,!0),z=!1,ee(),V(Q)&&mo()}function L(Q){Q.preventDefault(),Q.stopPropagation(),A=!0,ko("mousemove",window,I,!0),ko("mouseup",window,ne,!0),k=c.value,B=Q.clientY}function I(Q){if(!A)return;F!==void 0&&window.clearTimeout(F),g!==void 0&&window.clearTimeout(g);let{value:ie}=u,{value:Oe}=d,{value:He}=_;if(ie===null||Oe===null)return;let Ze=(Q.clientY-B)*(Oe-ie)/(ie-He),Ye=Oe-ie,Xe=k+Ze;Xe=Math.min(Ye,Xe),Xe=Math.max(Xe,0);let{value:vo}=Qe;vo&&(vo.scrollTop=Xe)}function ne(Q){Q.preventDefault(),Q.stopPropagation(),yo("mousemove",window,I,!0),yo("mouseup",window,ne,!0),A=!1,ee(),V(Q)&&mo()}Uo(()=>{let{value:Q}=oo,{value:ie}=eo,{value:Oe}=o,{value:He}=i,{value:lo}=n;He&&(Q?He.classList.remove(`${Oe}-scrollbar-rail--disabled`):He.classList.add(`${Oe}-scrollbar-rail--disabled`)),lo&&(ie?lo.classList.remove(`${Oe}-scrollbar-rail--disabled`):lo.classList.add(`${Oe}-scrollbar-rail--disabled`))}),so(()=>{e.container||ee()}),Wo(()=>{F!==void 0&&window.clearTimeout(F),g!==void 0&&window.clearTimeout(g),yo("mousemove",window,I,!0),yo("mouseup",window,ne,!0)});let me=Mo("Scrollbar","-scrollbar",xg,Io,e,o),ye=W(()=>{let{common:{cubicBezierEaseInOut:Q,scrollbarBorderRadius:ie,scrollbarHeight:Oe,scrollbarWidth:He},self:{color:lo,colorHover:Ze}}=me.value;return{"--n-scrollbar-bezier":Q,"--n-scrollbar-color":lo,"--n-scrollbar-color-hover":Ze,"--n-scrollbar-border-radius":ie,"--n-scrollbar-width":He,"--n-scrollbar-height":Oe}}),ke=t?at("scrollbar",void 0,ye,e):void 0;return Object.assign(Object.assign({},{scrollTo:Eo,scrollBy:Ke,sync:ee,syncUnifiedContainer:le,handleMouseEnterWrapper:ao,handleMouseLeaveWrapper:Ae}),{mergedClsPrefix:o,containerScrollTop:c,wrapperRef:r,containerRef:a,contentRef:l,yRailRef:n,xRailRef:i,needYBar:eo,needXBar:oo,yBarSizePx:E,xBarSizePx:Fe,yBarTopPx:pe,xBarLeftPx:Re,isShowXBar:y,isShowYBar:h,isIos:v,handleScroll:N,handleContentResize:no,handleContainerResize:Bo,handleYScrollMouseDown:L,handleXScrollMouseDown:Y,cssVars:t?void 0:ye,themeClass:ke==null?void 0:ke.themeClass,onRender:ke==null?void 0:ke.onRender})},render(){var e;let{$slots:o,mergedClsPrefix:t,triggerDisplayManually:r}=this;if(!this.scrollable)return(e=o.default)===null||e===void 0?void 0:e.call(o);let a=()=>{var l,n;return(l=this.onRender)===null||l===void 0||l.call(this),w("div",vl(this.$attrs,{role:"none",ref:"wrapperRef",class:[`${t}-scrollbar`,this.themeClass],style:this.cssVars,onMouseenter:r?void 0:this.handleMouseEnterWrapper,onMouseleave:r?void 0:this.handleMouseLeaveWrapper}),[this.container?(n=o.default)===null||n===void 0?void 0:n.call(o):w("div",{role:"none",ref:"containerRef",class:[`${t}-scrollbar-container`,this.containerClass],style:this.containerStyle,onScroll:this.handleScroll,onWheel:this.onWheel},w(Vt,{onResize:this.handleContentResize},{default:()=>w("div",{ref:"contentRef",role:"none",style:[{width:this.xScrollable?"fit-content":null},this.contentStyle],class:[`${t}-scrollbar-content`,this.contentClass]},o)})),w("div",{ref:"yRailRef",class:`${t}-scrollbar-rail ${t}-scrollbar-rail--vertical`,style:this.horizontalRailStyle,"aria-hidden":!0},w(It,{name:"fade-in-transition"},{default:()=>this.needYBar&&this.isShowYBar&&!this.isIos?w("div",{class:`${t}-scrollbar-rail__scrollbar`,style:{height:this.yBarSizePx,top:this.yBarTopPx},onMousedown:this.handleYScrollMouseDown}):null})),w("div",{ref:"xRailRef",class:`${t}-scrollbar-rail ${t}-scrollbar-rail--horizontal`,style:this.verticalRailStyle,"aria-hidden":!0},w(It,{name:"fade-in-transition"},{default:()=>this.needXBar&&this.isShowXBar&&!this.isIos?w("div",{class:`${t}-scrollbar-rail__scrollbar`,style:{width:this.xBarSizePx,left:this.xBarLeftPx},onMousedown:this.handleXScrollMouseDown}):null}))])};return this.container?a():w(Vt,{onResize:this.handleContainerResize},{default:a})}}),ad=Sg,on=Sg;var gg={height:"calc(var(--n-option-height) * 7.6)",paddingSmall:"4px 0",paddingMedium:"4px 0",paddingLarge:"4px 0",paddingHuge:"4px 0",optionPaddingSmall:"0 12px",optionPaddingMedium:"0 12px",optionPaddingLarge:"0 12px",optionPaddingHuge:"0 12px",loadingSize:"18px"};var uu=e=>{let{borderRadius:o,popoverColor:t,textColor3:r,dividerColor:a,textColor2:l,primaryColorPressed:n,textColorDisabled:i,primaryColor:d,opacityDisabled:s,hoverColor:u,fontSizeSmall:f,fontSizeMedium:m,fontSizeLarge:p,fontSizeHuge:c,heightSmall:R,heightMedium:y,heightLarge:h,heightHuge:A}=e;return Object.assign(Object.assign({},gg),{optionFontSizeSmall:f,optionFontSizeMedium:m,optionFontSizeLarge:p,optionFontSizeHuge:c,optionHeightSmall:R,optionHeightMedium:y,optionHeightLarge:h,optionHeightHuge:A,borderRadius:o,color:t,groupHeaderTextColor:r,actionDividerColor:a,optionTextColor:l,optionTextColorPressed:n,optionTextColorDisabled:i,optionTextColorActive:d,optionOpacityDisabled:s,optionCheckColor:d,optionColorPending:u,optionColorActive:u,actionTextColor:l,loadingColor:d})},AA=Ie({name:"InternalSelectMenu",common:Se,peers:{Scrollbar:Io,Empty:Ot},self:uu}),Oa=AA;var DA={name:"InternalSelectMenu",common:M,peers:{Scrollbar:go,Empty:Ft},self:uu},Wt=DA;var{cubicBezierEaseIn:wg,cubicBezierEaseOut:Tg}=rt;function fu({transformOrigin:e="inherit",duration:o=".2s",enterScale:t=".9",originalTransform:r="",originalTransition:a=""}={}){return[J("&.fade-in-scale-up-transition-leave-active",{transformOrigin:e,transition:`opacity ${o} ${wg}, transform ${o} ${wg} ${a&&","+a}`}),J("&.fade-in-scale-up-transition-enter-active",{transformOrigin:e,transition:`opacity ${o} ${Tg}, transform ${o} ${Tg} ${a&&","+a}`}),J("&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to",{opacity:0,transform:`${r} scale(${t})`}),J("&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to",{opacity:1,transform:`${r} scale(1)`})]}var Rg=$("base-wave",` + `,[Iv(),J("&:hover",{backgroundColor:"var(--n-scrollbar-color-hover)"})])])])])]);var pT=Object.assign(Object.assign({},Ct.props),{size:{type:Number,default:5},duration:{type:Number,default:0},scrollable:{type:Boolean,default:!0},xScrollable:Boolean,useUnifiedContainer:Boolean,triggerDisplayManually:Boolean,container:Function,content:Function,containerClass:String,containerStyle:[String,Object],contentClass:String,contentStyle:[String,Object],horizontalRailStyle:[String,Object],verticalRailStyle:[String,Object],onScroll:Function,onWheel:Function,onResize:Function,internalOnUpdateScrollLeft:Function}),Mv=ue({name:"Scrollbar",props:pT,inheritAttrs:!1,setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:o}=Mt(e),r=X(null),n=X(null),i=X(null),a=X(null),l=X(null),s=X(null),c=X(null),d=X(null),u=X(null),p=X(null),f=X(null),m=X(0),y=X(0),w=X(!1),g=X(!1),O=!1,j=!1,S,v,D=0,x=0,k=0,A=0,E=yl(),z=F(()=>{let{value:P}=d,{value:Z}=s,{value:le}=p;return P===null||Z===null||le===null?0:Math.min(P,le*P/Z+e.size*1.5)}),M=F(()=>`${z.value}px`),se=F(()=>{let{value:P}=u,{value:Z}=c,{value:le}=f;return P===null||Z===null||le===null?0:le*P/Z+e.size*1.5}),ye=F(()=>`${se.value}px`),Ie=F(()=>{let{value:P}=d,{value:Z}=m,{value:le}=s,{value:Ce}=p;if(P===null||le===null||Ce===null)return 0;{let Ke=le-P;return Ke?Z/Ke*(Ce-z.value):0}}),fe=F(()=>`${Ie.value}px`),ce=F(()=>{let{value:P}=u,{value:Z}=y,{value:le}=c,{value:Ce}=f;if(P===null||le===null||Ce===null)return 0;{let Ke=le-P;return Ke?Z/Ke*(Ce-se.value):0}}),we=F(()=>`${ce.value}px`),Me=F(()=>{let{value:P}=d,{value:Z}=s;return P!==null&&Z!==null&&Z>P}),Be=F(()=>{let{value:P}=u,{value:Z}=c;return P!==null&&Z!==null&&Z>P}),Le=F(()=>{let{container:P}=e;return P?P():n.value}),Je=F(()=>{let{content:P}=e;return P?P():i.value}),Xe=oe,ct=P=>{let{onResize:Z}=e;Z&&Z(P),oe()},wt=(P,Z)=>{if(!e.scrollable)return;if(typeof P=="number"){We(P,Z??0,0,!1,"auto");return}let{left:le,top:Ce,index:Ke,elSize:He,position:Fe,behavior:qe,el:Tt,debounce:ho=!0}=P;(le!==void 0||Ce!==void 0)&&We(le??0,Ce??0,0,!1,qe),Tt!==void 0?We(0,Tt.offsetTop,Tt.offsetHeight,ho,qe):Ke!==void 0&&He!==void 0?We(0,Ke*He,He,ho,qe):Fe==="bottom"?We(0,Number.MAX_SAFE_INTEGER,0,!1,qe):Fe==="top"&&We(0,0,0,!1,qe)},ze=(P,Z)=>{if(!e.scrollable)return;let{value:le}=Le;le&&(typeof P=="object"?le.scrollBy(P):le.scrollBy(P,Z||0))};function We(P,Z,le,Ce,Ke){let{value:He}=Le;if(He){if(Ce){let{scrollTop:Fe,offsetHeight:qe}=He;if(Z>Fe){Z+le<=Fe+qe||He.scrollTo({left:P,top:Z+le-qe,behavior:Ke});return}}He.scrollTo({left:P,top:Z,behavior:Ke})}}function vt(){h(),C(),oe()}function Pe(){ot()}function ot(){rt(),Dt()}function rt(){v!==void 0&&window.clearTimeout(v),v=window.setTimeout(()=>{g.value=!1},e.duration)}function Dt(){S!==void 0&&window.clearTimeout(S),S=window.setTimeout(()=>{w.value=!1},e.duration)}function h(){S!==void 0&&window.clearTimeout(S),w.value=!0}function C(){v!==void 0&&window.clearTimeout(v),g.value=!0}function L(P){let{onScroll:Z}=e;Z&&Z(P),q()}function q(){let{value:P}=Le;P&&(m.value=P.scrollTop,y.value=P.scrollLeft)}function K(){let{value:P}=Je;P&&(s.value=P.offsetHeight,c.value=P.offsetWidth);let{value:Z}=Le;Z&&(d.value=Z.offsetHeight,u.value=Z.offsetWidth);let{value:le}=l,{value:Ce}=a;le&&(f.value=le.offsetWidth),Ce&&(p.value=Ce.offsetHeight)}function ne(){let{value:P}=Le;P&&(m.value=P.scrollTop,y.value=P.scrollLeft,d.value=P.offsetHeight,u.value=P.offsetWidth,s.value=P.scrollHeight,c.value=P.scrollWidth);let{value:Z}=l,{value:le}=a;Z&&(f.value=Z.offsetWidth),le&&(p.value=le.offsetHeight)}function oe(){e.scrollable&&(e.useUnifiedContainer?ne():(K(),q()))}function H(P){var Z;return!(!((Z=r.value)===null||Z===void 0)&&Z.contains(P.target))}function Q(P){P.preventDefault(),P.stopPropagation(),j=!0,gt("mousemove",window,Y,!0),gt("mouseup",window,N,!0),x=y.value,k=P.clientX}function Y(P){if(!j)return;S!==void 0&&window.clearTimeout(S),v!==void 0&&window.clearTimeout(v);let{value:Z}=u,{value:le}=c,{value:Ce}=se;if(Z===null||le===null)return;let He=(P.clientX-k)*(le-Z)/(Z-Ce),Fe=le-Z,qe=x+He;qe=Math.min(Fe,qe),qe=Math.max(qe,0);let{value:Tt}=Le;if(Tt){Tt.scrollLeft=qe;let{internalOnUpdateScrollLeft:ho}=e;ho&&ho(qe)}}function N(P){P.preventDefault(),P.stopPropagation(),ht("mousemove",window,Y,!0),ht("mouseup",window,N,!0),j=!1,oe(),H(P)&&ot()}function $(P){P.preventDefault(),P.stopPropagation(),O=!0,gt("mousemove",window,V,!0),gt("mouseup",window,ae,!0),D=m.value,A=P.clientY}function V(P){if(!O)return;S!==void 0&&window.clearTimeout(S),v!==void 0&&window.clearTimeout(v);let{value:Z}=d,{value:le}=s,{value:Ce}=z;if(Z===null||le===null)return;let He=(P.clientY-A)*(le-Z)/(Z-Ce),Fe=le-Z,qe=D+He;qe=Math.min(Fe,qe),qe=Math.max(qe,0);let{value:Tt}=Le;Tt&&(Tt.scrollTop=qe)}function ae(P){P.preventDefault(),P.stopPropagation(),ht("mousemove",window,V,!0),ht("mouseup",window,ae,!0),O=!1,oe(),H(P)&&ot()}At(()=>{let{value:P}=Be,{value:Z}=Me,{value:le}=t,{value:Ce}=l,{value:Ke}=a;Ce&&(P?Ce.classList.remove(`${le}-scrollbar-rail--disabled`):Ce.classList.add(`${le}-scrollbar-rail--disabled`)),Ke&&(Z?Ke.classList.remove(`${le}-scrollbar-rail--disabled`):Ke.classList.add(`${le}-scrollbar-rail--disabled`))}),tt(()=>{e.container||oe()}),Pt(()=>{S!==void 0&&window.clearTimeout(S),v!==void 0&&window.clearTimeout(v),ht("mousemove",window,V,!0),ht("mouseup",window,ae,!0)});let pe=Ct("Scrollbar","-scrollbar",Av,_t,e,t),_=F(()=>{let{common:{cubicBezierEaseInOut:P,scrollbarBorderRadius:Z,scrollbarHeight:le,scrollbarWidth:Ce},self:{color:Ke,colorHover:He}}=pe.value;return{"--n-scrollbar-bezier":P,"--n-scrollbar-color":Ke,"--n-scrollbar-color-hover":He,"--n-scrollbar-border-radius":Z,"--n-scrollbar-width":Ce,"--n-scrollbar-height":le}}),W=o?qt("scrollbar",void 0,_,e):void 0;return Object.assign(Object.assign({},{scrollTo:wt,scrollBy:ze,sync:oe,syncUnifiedContainer:ne,handleMouseEnterWrapper:vt,handleMouseLeaveWrapper:Pe}),{mergedClsPrefix:t,containerScrollTop:m,wrapperRef:r,containerRef:n,contentRef:i,yRailRef:a,xRailRef:l,needYBar:Me,needXBar:Be,yBarSizePx:M,xBarSizePx:ye,yBarTopPx:fe,xBarLeftPx:we,isShowXBar:w,isShowYBar:g,isIos:E,handleScroll:L,handleContentResize:Xe,handleContainerResize:ct,handleYScrollMouseDown:$,handleXScrollMouseDown:Q,cssVars:o?void 0:_,themeClass:W?.themeClass,onRender:W?.onRender})},render(){var e;let{$slots:t,mergedClsPrefix:o,triggerDisplayManually:r}=this;if(!this.scrollable)return(e=t.default)===null||e===void 0?void 0:e.call(t);let n=()=>{var i,a;return(i=this.onRender)===null||i===void 0||i.call(this),b("div",Ti(this.$attrs,{role:"none",ref:"wrapperRef",class:[`${o}-scrollbar`,this.themeClass],style:this.cssVars,onMouseenter:r?void 0:this.handleMouseEnterWrapper,onMouseleave:r?void 0:this.handleMouseLeaveWrapper}),[this.container?(a=t.default)===null||a===void 0?void 0:a.call(t):b("div",{role:"none",ref:"containerRef",class:[`${o}-scrollbar-container`,this.containerClass],style:this.containerStyle,onScroll:this.handleScroll,onWheel:this.onWheel},b(Po,{onResize:this.handleContentResize},{default:()=>b("div",{ref:"contentRef",role:"none",style:[{width:this.xScrollable?"fit-content":null},this.contentStyle],class:[`${o}-scrollbar-content`,this.contentClass]},t)})),b("div",{ref:"yRailRef",class:`${o}-scrollbar-rail ${o}-scrollbar-rail--vertical`,style:this.horizontalRailStyle,"aria-hidden":!0},b(To,{name:"fade-in-transition"},{default:()=>this.needYBar&&this.isShowYBar&&!this.isIos?b("div",{class:`${o}-scrollbar-rail__scrollbar`,style:{height:this.yBarSizePx,top:this.yBarTopPx},onMousedown:this.handleYScrollMouseDown}):null})),b("div",{ref:"xRailRef",class:`${o}-scrollbar-rail ${o}-scrollbar-rail--horizontal`,style:this.verticalRailStyle,"aria-hidden":!0},b(To,{name:"fade-in-transition"},{default:()=>this.needXBar&&this.isShowXBar&&!this.isIos?b("div",{class:`${o}-scrollbar-rail__scrollbar`,style:{width:this.xBarSizePx,left:this.xBarLeftPx},onMousedown:this.handleXScrollMouseDown}):null}))])};return this.container?n():b(Po,{onResize:this.handleContainerResize},{default:n})}}),is=Mv,oa=Mv;var $v={height:"calc(var(--n-option-height) * 7.6)",paddingSmall:"4px 0",paddingMedium:"4px 0",paddingLarge:"4px 0",paddingHuge:"4px 0",optionPaddingSmall:"0 12px",optionPaddingMedium:"0 12px",optionPaddingLarge:"0 12px",optionPaddingHuge:"0 12px",loadingSize:"18px"};var Dd=e=>{let{borderRadius:t,popoverColor:o,textColor3:r,dividerColor:n,textColor2:i,primaryColorPressed:a,textColorDisabled:l,primaryColor:s,opacityDisabled:c,hoverColor:d,fontSizeSmall:u,fontSizeMedium:p,fontSizeLarge:f,fontSizeHuge:m,heightSmall:y,heightMedium:w,heightLarge:g,heightHuge:O}=e;return Object.assign(Object.assign({},$v),{optionFontSizeSmall:u,optionFontSizeMedium:p,optionFontSizeLarge:f,optionFontSizeHuge:m,optionHeightSmall:y,optionHeightMedium:w,optionHeightLarge:g,optionHeightHuge:O,borderRadius:t,color:o,groupHeaderTextColor:r,actionDividerColor:n,optionTextColor:i,optionTextColorPressed:a,optionTextColorDisabled:l,optionTextColorActive:s,optionOpacityDisabled:c,optionCheckColor:s,optionColorPending:d,optionColorActive:d,actionTextColor:i,loadingColor:s})},mT={name:"InternalSelectMenu",common:ge,peers:{Scrollbar:_t,Empty:uo},self:Dd},vn=mT;var hT={name:"InternalSelectMenu",common:R,peers:{Scrollbar:at,Empty:fo},self:Dd},No=hT;var{cubicBezierEaseIn:Lv,cubicBezierEaseOut:zv}=Ut;function Td({transformOrigin:e="inherit",duration:t=".2s",enterScale:o=".9",originalTransform:r="",originalTransition:n=""}={}){return[J("&.fade-in-scale-up-transition-leave-active",{transformOrigin:e,transition:`opacity ${t} ${Lv}, transform ${t} ${Lv} ${n&&","+n}`}),J("&.fade-in-scale-up-transition-enter-active",{transformOrigin:e,transition:`opacity ${t} ${zv}, transform ${t} ${zv} ${n&&","+n}`}),J("&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to",{opacity:0,transform:`${r} scale(${o})`}),J("&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to",{opacity:1,transform:`${r} scale(1)`})]}var Bv=U("base-wave",` position: absolute; left: 0; right: 0; top: 0; bottom: 0; border-radius: inherit; -`);var ld=ae({name:"BaseWave",props:{clsPrefix:{type:String,required:!0}},setup(e){nr("-base-wave",Rg,_e(e,"clsPrefix"));let o=Z(null),t=Z(!1),r=null;return Wo(()=>{r!==null&&window.clearTimeout(r)}),{active:t,selfRef:o,play(){r!==null&&(window.clearTimeout(r),t.value=!1,r=null),Qo(()=>{var a;(a=o.value)===null||a===void 0||a.offsetHeight,t.value=!0,r=window.setTimeout(()=>{t.value=!1,r=null},1e3)})}}},render(){let{clsPrefix:e}=this;return w("div",{ref:"selfRef","aria-hidden":!0,class:[`${e}-base-wave`,this.active&&`${e}-base-wave--active`]})}});var Og={space:"6px",spaceArrow:"10px",arrowOffset:"10px",arrowOffsetVertical:"10px",arrowHeight:"6px",padding:"8px 14px"};var pu=e=>{let{boxShadow2:o,popoverColor:t,textColor2:r,borderRadius:a,fontSize:l,dividerColor:n}=e;return Object.assign(Object.assign({},Og),{fontSize:l,borderRadius:a,color:t,dividerColor:n,textColor:r,boxShadow:o})},PA={name:"Popover",common:Se,self:pu},zt=PA;var MA={name:"Popover",common:M,self:pu},ut=MA;var Fg={closeSizeSmall:"14px",closeSizeMedium:"14px",closeSizeLarge:"14px",padding:"0 7px",closeMargin:"0 0 0 3px",closeMarginRtl:"0 3px 0 0"};var BA={name:"Tag",common:M,self(e){let{textColor2:o,primaryColorHover:t,primaryColorPressed:r,primaryColor:a,infoColor:l,successColor:n,warningColor:i,errorColor:d,baseColor:s,borderColor:u,opacityDisabled:f,closeColor:m,closeColorHover:p,closeColorPressed:c,borderRadiusSmall:R,fontSizeTiny:y,fontSizeSmall:h,fontSizeMedium:A,heightTiny:z,heightSmall:F,heightMedium:g}=e;return Object.assign(Object.assign({},Fg),{heightSmall:z,heightMedium:F,heightLarge:g,borderRadius:R,opacityDisabled:f,fontSizeSmall:y,fontSizeMedium:h,fontSizeLarge:A,textColorCheckable:o,textColorHoverCheckable:t,textColorPressedCheckable:r,textColorChecked:s,colorCheckable:"#0000",colorHoverCheckable:"#0000",colorPressedCheckable:"#0000",colorChecked:a,colorCheckedHover:t,colorCheckedPressed:r,border:`1px solid ${u}`,textColor:o,color:"#0000",closeColor:m,closeColorHover:p,closeColorPressed:c,borderPrimary:`1px solid ${te(a,{alpha:.3})}`,textColorPrimary:a,colorPrimary:"#0000",closeColorPrimary:te(a,{alpha:.7}),closeColorHoverPrimary:te(a,{alpha:.85}),closeColorPressedPrimary:te(a,{alpha:.57}),borderInfo:`1px solid ${te(l,{alpha:.3})}`,textColorInfo:l,colorInfo:"#0000",closeColorInfo:te(l,{alpha:.7}),closeColorHoverInfo:te(l,{alpha:.85}),closeColorPressedInfo:te(l,{alpha:.57}),borderSuccess:`1px solid ${te(n,{alpha:.3})}`,textColorSuccess:n,colorSuccess:"#0000",closeColorSuccess:te(n,{alpha:.7}),closeColorHoverSuccess:te(n,{alpha:.85}),closeColorPressedSuccess:te(n,{alpha:.57}),borderWarning:`1px solid ${te(i,{alpha:.3})}`,textColorWarning:i,colorWarning:"#0000",closeColorWarning:te(i,{alpha:.7}),closeColorHoverWarning:te(i,{alpha:.85}),closeColorPressedWarning:te(i,{alpha:.57}),borderError:`1px solid ${te(d,{alpha:.3})}`,textColorError:d,colorError:"#0000",closeColorError:te(d,{alpha:.7}),closeColorHoverError:te(d,{alpha:.85}),closeColorPressedError:te(d,{alpha:.57})})}},tn=BA;function Fa(e,o,t){if(!o)return;let r=At(),a=W(()=>{let{value:n}=o;if(!n)return;let i=n[e];if(!!i)return i}),l=()=>{Uo(()=>{let{value:n}=t,i=`${n}${e}Rtl`;if(Fs(i,r))return;let{value:d}=a;!d||d.style.mount({id:i,head:!0,anchorMetaName:Qr,props:{bPrefix:n?`.${n}-`:void 0},ssr:r})})};return r?l():gr(l),a}var Cg=$("base-clear",` +`);var as=ue({name:"BaseWave",props:{clsPrefix:{type:String,required:!0}},setup(e){er("-base-wave",Bv,Re(e,"clsPrefix"));let t=X(null),o=X(!1),r=null;return Pt(()=>{r!==null&&window.clearTimeout(r)}),{active:o,selfRef:t,play(){r!==null&&(window.clearTimeout(r),o.value=!1,r=null),Bt(()=>{var n;(n=t.value)===null||n===void 0||n.offsetHeight,o.value=!0,r=window.setTimeout(()=>{o.value=!1,r=null},1e3)})}}},render(){let{clsPrefix:e}=this;return b("div",{ref:"selfRef","aria-hidden":!0,class:[`${e}-base-wave`,this.active&&`${e}-base-wave--active`]})}});var Hv={space:"6px",spaceArrow:"10px",arrowOffset:"10px",arrowOffsetVertical:"10px",arrowHeight:"6px",padding:"8px 14px"};var Od=e=>{let{boxShadow2:t,popoverColor:o,textColor2:r,borderRadius:n,fontSize:i,dividerColor:a}=e;return Object.assign(Object.assign({},Hv),{fontSize:i,borderRadius:n,color:o,dividerColor:a,textColor:r,boxShadow:t})},gT={name:"Popover",common:ge,self:Od},Ro=gT;var xT={name:"Popover",common:R,self:Od},Qt=xT;var Vv={closeSizeSmall:"14px",closeSizeMedium:"14px",closeSizeLarge:"14px",padding:"0 7px",closeMargin:"0 0 0 3px",closeMarginRtl:"0 3px 0 0"};var vT={name:"Tag",common:R,self(e){let{textColor2:t,primaryColorHover:o,primaryColorPressed:r,primaryColor:n,infoColor:i,successColor:a,warningColor:l,errorColor:s,baseColor:c,borderColor:d,opacityDisabled:u,closeColor:p,closeColorHover:f,closeColorPressed:m,borderRadiusSmall:y,fontSizeTiny:w,fontSizeSmall:g,fontSizeMedium:O,heightTiny:j,heightSmall:S,heightMedium:v}=e;return Object.assign(Object.assign({},Vv),{heightSmall:j,heightMedium:S,heightLarge:v,borderRadius:y,opacityDisabled:u,fontSizeSmall:w,fontSizeMedium:g,fontSizeLarge:O,textColorCheckable:t,textColorHoverCheckable:o,textColorPressedCheckable:r,textColorChecked:c,colorCheckable:"#0000",colorHoverCheckable:"#0000",colorPressedCheckable:"#0000",colorChecked:n,colorCheckedHover:o,colorCheckedPressed:r,border:`1px solid ${d}`,textColor:t,color:"#0000",closeColor:p,closeColorHover:f,closeColorPressed:m,borderPrimary:`1px solid ${te(n,{alpha:.3})}`,textColorPrimary:n,colorPrimary:"#0000",closeColorPrimary:te(n,{alpha:.7}),closeColorHoverPrimary:te(n,{alpha:.85}),closeColorPressedPrimary:te(n,{alpha:.57}),borderInfo:`1px solid ${te(i,{alpha:.3})}`,textColorInfo:i,colorInfo:"#0000",closeColorInfo:te(i,{alpha:.7}),closeColorHoverInfo:te(i,{alpha:.85}),closeColorPressedInfo:te(i,{alpha:.57}),borderSuccess:`1px solid ${te(a,{alpha:.3})}`,textColorSuccess:a,colorSuccess:"#0000",closeColorSuccess:te(a,{alpha:.7}),closeColorHoverSuccess:te(a,{alpha:.85}),closeColorPressedSuccess:te(a,{alpha:.57}),borderWarning:`1px solid ${te(l,{alpha:.3})}`,textColorWarning:l,colorWarning:"#0000",closeColorWarning:te(l,{alpha:.7}),closeColorHoverWarning:te(l,{alpha:.85}),closeColorPressedWarning:te(l,{alpha:.57}),borderError:`1px solid ${te(s,{alpha:.3})}`,textColorError:s,colorError:"#0000",closeColorError:te(s,{alpha:.7}),closeColorHoverError:te(s,{alpha:.85}),closeColorPressedError:te(s,{alpha:.57})})}},ra=vT;function bn(e,t,o){if(!t)return;let r=bo(),n=F(()=>{let{value:a}=t;if(!a)return;let l=a[e];if(l)return l}),i=()=>{At(()=>{let{value:a}=o,l=`${a}${e}Rtl`;if(Lc(l,r))return;let{value:s}=n;s&&s.style.mount({id:l,head:!0,anchorMetaName:Fr,props:{bPrefix:a?`.${a}-`:void 0},ssr:r})})};return r?i():cr(i),n}var Fv=U("base-clear",` flex-shrink: 0; height: 1em; width: 1em; position: relative; -`,[J(">",[oe("clear",` +`,[J(">",[ee("clear",` font-size: var(--n-clear-size); cursor: pointer; color: var(--n-clear-color); @@ -262,54 +262,54 @@ ${o} color: var(--n-clear-color-hover)!important; `),J("&:active",` color: var(--n-clear-color-pressed)!important; - `)]),oe("placeholder",` + `)]),ee("placeholder",` display: flex; - `),oe("clear, placeholder",` + `),ee("clear, placeholder",` position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); - `,[Rt({originalTransform:"translateX(-50%) translateY(-50%)",left:"50%",top:"50%"})])])]);var Ca=ae({name:"BaseClear",props:{clsPrefix:{type:String,required:!0},show:Boolean,onClear:Function},setup(e){return nr("-base-clear",Cg,_e(e,"clsPrefix")),{handleMouseDown(o){o.preventDefault()}}},render(){let{clsPrefix:e}=this;return w("div",{class:`${e}-base-clear`},w(Et,null,{default:()=>{var o,t;return this.show?w(Lt,{clsPrefix:e,key:"dismiss",class:`${e}-base-clear__clear`,onClick:this.onClear,onMousedown:this.handleMouseDown,"data-clear":!0},{default:()=>w(ou,null)}):w("div",{key:"icon",class:`${e}-base-clear__placeholder`},(t=(o=this.$slots).default)===null||t===void 0?void 0:t.call(o))}}))}});var nd=ae({name:"InternalSelectionSuffix",props:{clsPrefix:{type:String,required:!0},showArrow:{type:Boolean,default:void 0},showClear:{type:Boolean,default:void 0},loading:{type:Boolean,default:!1},onClear:Function},setup(e,{slots:o}){return()=>{let{clsPrefix:t}=e;return w(Zr,{clsPrefix:t,class:`${t}-base-suffix`,strokeWidth:24,scale:.85,show:e.loading},{default:()=>e.showArrow?w(Ca,{clsPrefix:t,show:e.showClear,onClear:e.onClear},{default:()=>w(Lt,{clsPrefix:t,class:`${t}-base-suffix__arrow`},{default:()=>or(o.default,()=>[w(eu,null)])})}):null})}}});var id={paddingSingle:"0 26px 0 12px",paddingMultiple:"3px 26px 0 12px",clearSize:"16px",arrowSize:"16px"};var EA=e=>{let{borderRadius:o,textColor2:t,textColorDisabled:r,inputColor:a,inputColorDisabled:l,primaryColor:n,primaryColorHover:i,warningColor:d,warningColorHover:s,errorColor:u,errorColorHover:f,borderColor:m,iconColor:p,iconColorDisabled:c,clearColor:R,clearColorHover:y,clearColorPressed:h,placeholderColor:A,placeholderColorDisabled:z,fontSizeTiny:F,fontSizeSmall:g,fontSizeMedium:k,fontSizeLarge:S,heightTiny:b,heightSmall:B,heightMedium:v,heightLarge:_}=e;return Object.assign(Object.assign({},id),{fontSizeTiny:F,fontSizeSmall:g,fontSizeMedium:k,fontSizeLarge:S,heightTiny:b,heightSmall:B,heightMedium:v,heightLarge:_,borderRadius:o,textColor:t,textColorDisabled:r,placeholderColor:A,placeholderColorDisabled:z,color:a,colorDisabled:l,colorActive:a,border:`1px solid ${m}`,borderHover:`1px solid ${i}`,borderActive:`1px solid ${n}`,borderFocus:`1px solid ${i}`,boxShadowHover:"none",boxShadowActive:`0 0 0 2px ${te(n,{alpha:.2})}`,boxShadowFocus:`0 0 0 2px ${te(n,{alpha:.2})}`,caretColor:n,arrowColor:p,arrowColorDisabled:c,loadingColor:n,borderWarning:`1px solid ${d}`,borderHoverWarning:`1px solid ${s}`,borderActiveWarning:`1px solid ${d}`,borderFocusWarning:`1px solid ${s}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 0 2px ${te(d,{alpha:.2})}`,boxShadowFocusWarning:`0 0 0 2px ${te(d,{alpha:.2})}`,colorActiveWarning:a,caretColorWarning:d,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${f}`,borderActiveError:`1px solid ${u}`,borderFocusError:`1px solid ${f}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 0 2px ${te(u,{alpha:.2})}`,boxShadowFocusError:`0 0 0 2px ${te(u,{alpha:.2})}`,colorActiveError:a,caretColorError:u,clearColor:R,clearColorHover:y,clearColorPressed:h})},LA=Ie({name:"InternalSelection",common:Se,peers:{Popover:zt},self:EA}),rn=LA;var NA={name:"InternalSelection",common:M,peers:{Popover:ut},self(e){let{borderRadius:o,textColor2:t,textColorDisabled:r,inputColor:a,inputColorDisabled:l,primaryColor:n,primaryColorHover:i,warningColor:d,warningColorHover:s,errorColor:u,errorColorHover:f,iconColor:m,iconColorDisabled:p,clearColor:c,clearColorHover:R,clearColorPressed:y,placeholderColor:h,placeholderColorDisabled:A,fontSizeTiny:z,fontSizeSmall:F,fontSizeMedium:g,fontSizeLarge:k,heightTiny:S,heightSmall:b,heightMedium:B,heightLarge:v}=e;return Object.assign(Object.assign({},id),{fontSizeTiny:z,fontSizeSmall:F,fontSizeMedium:g,fontSizeLarge:k,heightTiny:S,heightSmall:b,heightMedium:B,heightLarge:v,borderRadius:o,textColor:t,textColorDisabled:r,placeholderColor:h,placeholderColorDisabled:A,color:a,colorDisabled:l,colorActive:te(n,{alpha:.1}),border:"1px solid #0000",borderHover:`1px solid ${i}`,borderActive:`1px solid ${n}`,borderFocus:`1px solid ${i}`,boxShadowHover:"none",boxShadowActive:`0 0 8px 0 ${te(n,{alpha:.4})}`,boxShadowFocus:`0 0 8px 0 ${te(n,{alpha:.4})}`,caretColor:n,arrowColor:m,arrowColorDisabled:p,loadingColor:n,borderWarning:`1px solid ${d}`,borderHoverWarning:`1px solid ${s}`,borderActiveWarning:`1px solid ${d}`,borderFocusWarning:`1px solid ${s}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 8px 0 ${te(d,{alpha:.4})}`,boxShadowFocusWarning:`0 0 8px 0 ${te(d,{alpha:.4})}`,colorActiveWarning:te(d,{alpha:.1}),caretColorWarning:d,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${f}`,borderActiveError:`1px solid ${u}`,borderFocusError:`1px solid ${f}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 8px 0 ${te(u,{alpha:.4})}`,boxShadowFocusError:`0 0 8px 0 ${te(u,{alpha:.4})}`,colorActiveError:te(u,{alpha:.1}),caretColorError:u,clearColor:c,clearColorHover:R,clearColorPressed:y})}},ba=NA;var{cubicBezierEaseInOut:Yr}=rt;function bg({duration:e=".2s",delay:o=".1s"}={}){return[J("&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to",{opacity:1}),J("&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from",` + `,[co({originalTransform:"translateX(-50%) translateY(-50%)",left:"50%",top:"50%"})])])]);var yn=ue({name:"BaseClear",props:{clsPrefix:{type:String,required:!0},show:Boolean,onClear:Function},setup(e){return er("-base-clear",Fv,Re(e,"clsPrefix")),{handleMouseDown(t){t.preventDefault()}}},render(){let{clsPrefix:e}=this;return b("div",{class:`${e}-base-clear`},b(So,null,{default:()=>{var t,o;return this.show?b(_o,{clsPrefix:e,key:"dismiss",class:`${e}-base-clear__clear`,onClick:this.onClear,onMousedown:this.handleMouseDown,"data-clear":!0},{default:()=>b(xd,null)}):b("div",{key:"icon",class:`${e}-base-clear__placeholder`},(o=(t=this.$slots).default)===null||o===void 0?void 0:o.call(t))}}))}});var ls=ue({name:"InternalSelectionSuffix",props:{clsPrefix:{type:String,required:!0},showArrow:{type:Boolean,default:void 0},showClear:{type:Boolean,default:void 0},loading:{type:Boolean,default:!1},onClear:Function},setup(e,{slots:t}){return()=>{let{clsPrefix:o}=e;return b(jr,{clsPrefix:o,class:`${o}-base-suffix`,strokeWidth:24,scale:.85,show:e.loading},{default:()=>e.showArrow?b(yn,{clsPrefix:o,show:e.showClear,onClear:e.onClear},{default:()=>b(_o,{clsPrefix:o,class:`${o}-base-suffix__arrow`},{default:()=>Yo(t.default,()=>[b(gd,null)])})}):null})}}});var ss={paddingSingle:"0 26px 0 12px",paddingMultiple:"3px 26px 0 12px",clearSize:"16px",arrowSize:"16px"};var bT=e=>{let{borderRadius:t,textColor2:o,textColorDisabled:r,inputColor:n,inputColorDisabled:i,primaryColor:a,primaryColorHover:l,warningColor:s,warningColorHover:c,errorColor:d,errorColorHover:u,borderColor:p,iconColor:f,iconColorDisabled:m,clearColor:y,clearColorHover:w,clearColorPressed:g,placeholderColor:O,placeholderColorDisabled:j,fontSizeTiny:S,fontSizeSmall:v,fontSizeMedium:D,fontSizeLarge:x,heightTiny:k,heightSmall:A,heightMedium:E,heightLarge:z}=e;return Object.assign(Object.assign({},ss),{fontSizeTiny:S,fontSizeSmall:v,fontSizeMedium:D,fontSizeLarge:x,heightTiny:k,heightSmall:A,heightMedium:E,heightLarge:z,borderRadius:t,textColor:o,textColorDisabled:r,placeholderColor:O,placeholderColorDisabled:j,color:n,colorDisabled:i,colorActive:n,border:`1px solid ${p}`,borderHover:`1px solid ${l}`,borderActive:`1px solid ${a}`,borderFocus:`1px solid ${l}`,boxShadowHover:"none",boxShadowActive:`0 0 0 2px ${te(a,{alpha:.2})}`,boxShadowFocus:`0 0 0 2px ${te(a,{alpha:.2})}`,caretColor:a,arrowColor:f,arrowColorDisabled:m,loadingColor:a,borderWarning:`1px solid ${s}`,borderHoverWarning:`1px solid ${c}`,borderActiveWarning:`1px solid ${s}`,borderFocusWarning:`1px solid ${c}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 0 2px ${te(s,{alpha:.2})}`,boxShadowFocusWarning:`0 0 0 2px ${te(s,{alpha:.2})}`,colorActiveWarning:n,caretColorWarning:s,borderError:`1px solid ${d}`,borderHoverError:`1px solid ${u}`,borderActiveError:`1px solid ${d}`,borderFocusError:`1px solid ${u}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 0 2px ${te(d,{alpha:.2})}`,boxShadowFocusError:`0 0 0 2px ${te(d,{alpha:.2})}`,colorActiveError:n,caretColorError:d,clearColor:y,clearColorHover:w,clearColorPressed:g})},yT={name:"InternalSelection",common:ge,peers:{Popover:Ro},self:bT},na=yT;var CT={name:"InternalSelection",common:R,peers:{Popover:Qt},self(e){let{borderRadius:t,textColor2:o,textColorDisabled:r,inputColor:n,inputColorDisabled:i,primaryColor:a,primaryColorHover:l,warningColor:s,warningColorHover:c,errorColor:d,errorColorHover:u,iconColor:p,iconColorDisabled:f,clearColor:m,clearColorHover:y,clearColorPressed:w,placeholderColor:g,placeholderColorDisabled:O,fontSizeTiny:j,fontSizeSmall:S,fontSizeMedium:v,fontSizeLarge:D,heightTiny:x,heightSmall:k,heightMedium:A,heightLarge:E}=e;return Object.assign(Object.assign({},ss),{fontSizeTiny:j,fontSizeSmall:S,fontSizeMedium:v,fontSizeLarge:D,heightTiny:x,heightSmall:k,heightMedium:A,heightLarge:E,borderRadius:t,textColor:o,textColorDisabled:r,placeholderColor:g,placeholderColorDisabled:O,color:n,colorDisabled:i,colorActive:te(a,{alpha:.1}),border:"1px solid #0000",borderHover:`1px solid ${l}`,borderActive:`1px solid ${a}`,borderFocus:`1px solid ${l}`,boxShadowHover:"none",boxShadowActive:`0 0 8px 0 ${te(a,{alpha:.4})}`,boxShadowFocus:`0 0 8px 0 ${te(a,{alpha:.4})}`,caretColor:a,arrowColor:p,arrowColorDisabled:f,loadingColor:a,borderWarning:`1px solid ${s}`,borderHoverWarning:`1px solid ${c}`,borderActiveWarning:`1px solid ${s}`,borderFocusWarning:`1px solid ${c}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 8px 0 ${te(s,{alpha:.4})}`,boxShadowFocusWarning:`0 0 8px 0 ${te(s,{alpha:.4})}`,colorActiveWarning:te(s,{alpha:.1}),caretColorWarning:s,borderError:`1px solid ${d}`,borderHoverError:`1px solid ${u}`,borderActiveError:`1px solid ${d}`,borderFocusError:`1px solid ${u}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 8px 0 ${te(d,{alpha:.4})}`,boxShadowFocusError:`0 0 8px 0 ${te(d,{alpha:.4})}`,colorActiveError:te(d,{alpha:.1}),caretColorError:d,clearColor:m,clearColorHover:y,clearColorPressed:w})}},Cn=CT;var{cubicBezierEaseInOut:Wr}=Ut;function jv({duration:e=".2s",delay:t=".1s"}={}){return[J("&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to",{opacity:1}),J("&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from",` opacity: 0!important; margin-left: 0!important; margin-right: 0!important; `),J("&.fade-in-width-expand-transition-leave-active",` overflow: hidden; transition: - opacity ${e} ${Yr}, - max-width ${e} ${Yr} ${o}, - margin-left ${e} ${Yr} ${o}, - margin-right ${e} ${Yr} ${o}; + opacity ${e} ${Wr}, + max-width ${e} ${Wr} ${t}, + margin-left ${e} ${Wr} ${t}, + margin-right ${e} ${Wr} ${t}; `),J("&.fade-in-width-expand-transition-enter-active",` overflow: hidden; transition: - opacity ${e} ${Yr} ${o}, - max-width ${e} ${Yr}, - margin-left ${e} ${Yr}, - margin-right ${e} ${Yr}; - `)]}var yg={iconMargin:"12px 8px 0 12px",iconMarginRtl:"12px 12px 0 8px",iconSize:"26px",closeSize:"16px",closeMargin:"14px 16px 0 0",closeMarginRtl:"14px 0 0 16px",padding:"15px"};var _A={name:"Alert",common:M,self(e){let{lineHeight:o,borderRadius:t,fontWeightStrong:r,dividerColor:a,inputColor:l,textColor1:n,textColor2:i,closeColor:d,closeColorHover:s,closeColorPressed:u,infoColorSuppl:f,successColorSuppl:m,warningColorSuppl:p,errorColorSuppl:c,fontSize:R}=e;return Object.assign(Object.assign({},yg),{fontSize:R,lineHeight:o,titleFontWeight:r,borderRadius:t,border:`1px solid ${a}`,color:l,titleTextColor:n,iconColor:i,contentTextColor:i,closeColor:d,closeColorHover:s,closeColorPressed:u,borderInfo:`1px solid ${te(f,{alpha:.35})}`,colorInfo:te(f,{alpha:.25}),titleTextColorInfo:n,iconColorInfo:f,contentTextColorInfo:i,closeColorInfo:d,closeColorHoverInfo:s,closeColorPressedInfo:u,borderSuccess:`1px solid ${te(m,{alpha:.35})}`,colorSuccess:te(m,{alpha:.25}),titleTextColorSuccess:n,iconColorSuccess:m,contentTextColorSuccess:i,closeColorSuccess:d,closeColorHoverSuccess:s,closeColorPressedSuccess:u,borderWarning:`1px solid ${te(p,{alpha:.35})}`,colorWarning:te(p,{alpha:.25}),titleTextColorWarning:n,iconColorWarning:p,contentTextColorWarning:i,closeColorWarning:d,closeColorHoverWarning:s,closeColorPressedWarning:u,borderError:`1px solid ${te(c,{alpha:.35})}`,colorError:te(c,{alpha:.25}),titleTextColorError:n,iconColorError:c,contentTextColorError:i,closeColorError:d,closeColorHoverError:s,closeColorPressedError:u})}},mu=_A;var{cubicBezierEaseInOut:ir,cubicBezierEaseOut:IA,cubicBezierEaseIn:HA}=rt;function cu({overflow:e="hidden",duration:o=".3s",originalTransition:t="",leavingDelay:r="0s",foldPadding:a=!1,enterToProps:l=void 0,leaveToProps:n=void 0,reverse:i=!1}={}){let d=i?"leave":"enter",s=i?"enter":"leave";return[J(`&.fade-in-height-expand-transition-${s}-from, - &.fade-in-height-expand-transition-${d}-to`,Object.assign(Object.assign({},l),{opacity:1})),J(`&.fade-in-height-expand-transition-${s}-to, - &.fade-in-height-expand-transition-${d}-from`,Object.assign(Object.assign({},n),{opacity:0,marginTop:"0 !important",marginBottom:"0 !important",paddingTop:a?"0 !important":void 0,paddingBottom:a?"0 !important":void 0})),J(`&.fade-in-height-expand-transition-${s}-active`,` + opacity ${e} ${Wr} ${t}, + max-width ${e} ${Wr}, + margin-left ${e} ${Wr}, + margin-right ${e} ${Wr}; + `)]}var Wv={iconMargin:"12px 8px 0 12px",iconMarginRtl:"12px 12px 0 8px",iconSize:"26px",closeSize:"16px",closeMargin:"14px 16px 0 0",closeMarginRtl:"14px 0 0 16px",padding:"15px"};var wT={name:"Alert",common:R,self(e){let{lineHeight:t,borderRadius:o,fontWeightStrong:r,dividerColor:n,inputColor:i,textColor1:a,textColor2:l,closeColor:s,closeColorHover:c,closeColorPressed:d,infoColorSuppl:u,successColorSuppl:p,warningColorSuppl:f,errorColorSuppl:m,fontSize:y}=e;return Object.assign(Object.assign({},Wv),{fontSize:y,lineHeight:t,titleFontWeight:r,borderRadius:o,border:`1px solid ${n}`,color:i,titleTextColor:a,iconColor:l,contentTextColor:l,closeColor:s,closeColorHover:c,closeColorPressed:d,borderInfo:`1px solid ${te(u,{alpha:.35})}`,colorInfo:te(u,{alpha:.25}),titleTextColorInfo:a,iconColorInfo:u,contentTextColorInfo:l,closeColorInfo:s,closeColorHoverInfo:c,closeColorPressedInfo:d,borderSuccess:`1px solid ${te(p,{alpha:.35})}`,colorSuccess:te(p,{alpha:.25}),titleTextColorSuccess:a,iconColorSuccess:p,contentTextColorSuccess:l,closeColorSuccess:s,closeColorHoverSuccess:c,closeColorPressedSuccess:d,borderWarning:`1px solid ${te(f,{alpha:.35})}`,colorWarning:te(f,{alpha:.25}),titleTextColorWarning:a,iconColorWarning:f,contentTextColorWarning:l,closeColorWarning:s,closeColorHoverWarning:c,closeColorPressedWarning:d,borderError:`1px solid ${te(m,{alpha:.35})}`,colorError:te(m,{alpha:.25}),titleTextColorError:a,iconColorError:m,contentTextColorError:l,closeColorError:s,closeColorHoverError:c,closeColorPressedError:d})}},Pd=wT;var{cubicBezierEaseInOut:tr,cubicBezierEaseOut:kT,cubicBezierEaseIn:ST}=Ut;function Nd({overflow:e="hidden",duration:t=".3s",originalTransition:o="",leavingDelay:r="0s",foldPadding:n=!1,enterToProps:i=void 0,leaveToProps:a=void 0,reverse:l=!1}={}){let s=l?"leave":"enter",c=l?"enter":"leave";return[J(`&.fade-in-height-expand-transition-${c}-from, + &.fade-in-height-expand-transition-${s}-to`,Object.assign(Object.assign({},i),{opacity:1})),J(`&.fade-in-height-expand-transition-${c}-to, + &.fade-in-height-expand-transition-${s}-from`,Object.assign(Object.assign({},a),{opacity:0,marginTop:"0 !important",marginBottom:"0 !important",paddingTop:n?"0 !important":void 0,paddingBottom:n?"0 !important":void 0})),J(`&.fade-in-height-expand-transition-${c}-active`,` overflow: ${e}; transition: - max-height ${o} ${ir} ${r}, - opacity ${o} ${IA} ${r}, - margin-top ${o} ${ir} ${r}, - margin-bottom ${o} ${ir} ${r}, - padding-top ${o} ${ir} ${r}, - padding-bottom ${o} ${ir} ${r} - ${t?","+t:""} - `),J(`&.fade-in-height-expand-transition-${d}-active`,` + max-height ${t} ${tr} ${r}, + opacity ${t} ${kT} ${r}, + margin-top ${t} ${tr} ${r}, + margin-bottom ${t} ${tr} ${r}, + padding-top ${t} ${tr} ${r}, + padding-bottom ${t} ${tr} ${r} + ${o?","+o:""} + `),J(`&.fade-in-height-expand-transition-${s}-active`,` overflow: ${e}; transition: - max-height ${o} ${ir}, - opacity ${o} ${HA}, - margin-top ${o} ${ir}, - margin-bottom ${o} ${ir}, - padding-top ${o} ${ir}, - padding-bottom ${o} ${ir} - ${t?","+t:""} - `)]}var vg={linkFontSize:"13px",linkPadding:"0 0 0 16px",railWidth:"4px"};var kg=e=>{let{borderRadius:o,railColor:t,primaryColor:r,primaryColorHover:a,primaryColorPressed:l,textColor2:n}=e;return Object.assign(Object.assign({},vg),{borderRadius:o,railColor:t,railColorActive:r,linkColor:te(r,{alpha:.15}),linkTextColor:n,linkTextColorHover:a,linkTextColorPressed:l,linkTextColorActive:r})};var VA={name:"Anchor",common:M,self:kg},hu=VA;var dd={paddingTiny:"0 8px",paddingSmall:"0 10px",paddingMedium:"0 12px",paddingLarge:"0 14px",clearSize:"16px"};var WA={name:"Input",common:M,self(e){let{textColor2:o,textColor3:t,textColorDisabled:r,primaryColor:a,primaryColorHover:l,inputColor:n,inputColorDisabled:i,warningColor:d,warningColorHover:s,errorColor:u,errorColorHover:f,borderRadius:m,lineHeight:p,fontSizeTiny:c,fontSizeSmall:R,fontSizeMedium:y,fontSizeLarge:h,heightTiny:A,heightSmall:z,heightMedium:F,heightLarge:g,clearColor:k,clearColorHover:S,clearColorPressed:b,placeholderColor:B,placeholderColorDisabled:v,iconColor:_,iconColorDisabled:E,iconColorHover:se,iconColorPressed:Fe}=e;return Object.assign(Object.assign({},dd),{countTextColor:t,heightTiny:A,heightSmall:z,heightMedium:F,heightLarge:g,fontSizeTiny:c,fontSizeSmall:R,fontSizeMedium:y,fontSizeLarge:h,lineHeight:p,lineHeightTextarea:p,borderRadius:m,iconSize:"16px",groupLabelColor:n,textColor:o,textColorDisabled:r,textDecorationColor:o,groupLabelTextColor:o,caretColor:a,placeholderColor:B,placeholderColorDisabled:v,color:n,colorDisabled:i,colorFocus:te(a,{alpha:.1}),groupLabelBorder:"1px solid #0000",border:"1px solid #0000",borderHover:`1px solid ${l}`,borderDisabled:"1px solid #0000",borderFocus:`1px solid ${l}`,boxShadowFocus:`0 0 8px 0 ${te(a,{alpha:.3})}`,loadingColor:a,loadingColorWarning:d,borderWarning:`1px solid ${d}`,borderHoverWarning:`1px solid ${s}`,colorFocusWarning:te(d,{alpha:.1}),borderFocusWarning:`1px solid ${s}`,boxShadowFocusWarning:`0 0 8px 0 ${te(d,{alpha:.3})}`,caretColorWarning:d,loadingColorError:u,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${f}`,colorFocusError:te(u,{alpha:.1}),borderFocusError:`1px solid ${f}`,boxShadowFocusError:`0 0 8px 0 ${te(u,{alpha:.3})}`,caretColorError:u,clearColor:k,clearColorHover:S,clearColorPressed:b,iconColor:_,iconColorDisabled:E,iconColorHover:se,iconColorPressed:Fe,suffixTextColor:o})}},Ao=WA;var zA=e=>{let{textColor2:o,textColor3:t,textColorDisabled:r,primaryColor:a,primaryColorHover:l,inputColor:n,inputColorDisabled:i,borderColor:d,warningColor:s,warningColorHover:u,errorColor:f,errorColorHover:m,borderRadius:p,lineHeight:c,fontSizeTiny:R,fontSizeSmall:y,fontSizeMedium:h,fontSizeLarge:A,heightTiny:z,heightSmall:F,heightMedium:g,heightLarge:k,actionColor:S,clearColor:b,clearColorHover:B,clearColorPressed:v,placeholderColor:_,placeholderColorDisabled:E,iconColor:se,iconColorDisabled:Fe,iconColorHover:Ee,iconColorPressed:pe}=e;return Object.assign(Object.assign({},dd),{countTextColor:t,heightTiny:z,heightSmall:F,heightMedium:g,heightLarge:k,fontSizeTiny:R,fontSizeSmall:y,fontSizeMedium:h,fontSizeLarge:A,lineHeight:c,lineHeightTextarea:c,borderRadius:p,iconSize:"16px",groupLabelColor:S,groupLabelTextColor:o,textColor:o,textColorDisabled:r,textDecorationColor:o,caretColor:a,placeholderColor:_,placeholderColorDisabled:E,color:n,colorDisabled:i,colorFocus:n,groupLabelBorder:`1px solid ${d}`,border:`1px solid ${d}`,borderHover:`1px solid ${l}`,borderDisabled:`1px solid ${d}`,borderFocus:`1px solid ${l}`,boxShadowFocus:`0 0 0 2px ${te(a,{alpha:.2})}`,loadingColor:a,loadingColorWarning:s,borderWarning:`1px solid ${s}`,borderHoverWarning:`1px solid ${u}`,colorFocusWarning:n,borderFocusWarning:`1px solid ${u}`,boxShadowFocusWarning:`0 0 0 2px ${te(s,{alpha:.2})}`,caretColorWarning:s,loadingColorError:f,borderError:`1px solid ${f}`,borderHoverError:`1px solid ${m}`,colorFocusError:n,borderFocusError:`1px solid ${m}`,boxShadowFocusError:`0 0 0 2px ${te(f,{alpha:.2})}`,caretColorError:f,clearColor:b,clearColorHover:B,clearColorPressed:v,iconColor:se,iconColorDisabled:Fe,iconColorHover:Ee,iconColorPressed:pe,suffixTextColor:o})},jA={name:"Input",common:Se,self:zA},Ct=jA;var sd=So("n-input");function Ag(e){let o=0;for(let t of e)o++;return o}function an(e){return["",void 0,null].includes(e)}var xu=ae({name:"InputWordCount",setup(e,{slots:o}){let{mergedValueRef:t,maxlengthRef:r,mergedClsPrefixRef:a}=Ce(sd),l=W(()=>{let{value:n}=t;return n===null||Array.isArray(n)?0:Ag(n)});return()=>{let{value:n}=r,{value:i}=t;return w("span",{class:`${a.value}-input-word-count`},si(o.default,{value:i===null||Array.isArray(i)?"":i},()=>[n===void 0?l.value:`${l.value} / ${n}`]))}}});var Dg=$("input",` + max-height ${t} ${tr}, + opacity ${t} ${ST}, + margin-top ${t} ${tr}, + margin-bottom ${t} ${tr}, + padding-top ${t} ${tr}, + padding-bottom ${t} ${tr} + ${o?","+o:""} + `)]}var Kv={linkFontSize:"13px",linkPadding:"0 0 0 16px",railWidth:"4px"};var Uv=e=>{let{borderRadius:t,railColor:o,primaryColor:r,primaryColorHover:n,primaryColorPressed:i,textColor2:a}=e;return Object.assign(Object.assign({},Kv),{borderRadius:t,railColor:o,railColorActive:r,linkColor:te(r,{alpha:.15}),linkTextColor:a,linkTextColorHover:n,linkTextColorPressed:i,linkTextColorActive:r})};var _T={name:"Anchor",common:R,self:Uv},Rd=_T;var cs={paddingTiny:"0 8px",paddingSmall:"0 10px",paddingMedium:"0 12px",paddingLarge:"0 14px",clearSize:"16px"};var ET={name:"Input",common:R,self(e){let{textColor2:t,textColor3:o,textColorDisabled:r,primaryColor:n,primaryColorHover:i,inputColor:a,inputColorDisabled:l,warningColor:s,warningColorHover:c,errorColor:d,errorColorHover:u,borderRadius:p,lineHeight:f,fontSizeTiny:m,fontSizeSmall:y,fontSizeMedium:w,fontSizeLarge:g,heightTiny:O,heightSmall:j,heightMedium:S,heightLarge:v,clearColor:D,clearColorHover:x,clearColorPressed:k,placeholderColor:A,placeholderColorDisabled:E,iconColor:z,iconColorDisabled:M,iconColorHover:se,iconColorPressed:ye}=e;return Object.assign(Object.assign({},cs),{countTextColor:o,heightTiny:O,heightSmall:j,heightMedium:S,heightLarge:v,fontSizeTiny:m,fontSizeSmall:y,fontSizeMedium:w,fontSizeLarge:g,lineHeight:f,lineHeightTextarea:f,borderRadius:p,iconSize:"16px",groupLabelColor:a,textColor:t,textColorDisabled:r,textDecorationColor:t,groupLabelTextColor:t,caretColor:n,placeholderColor:A,placeholderColorDisabled:E,color:a,colorDisabled:l,colorFocus:te(n,{alpha:.1}),groupLabelBorder:"1px solid #0000",border:"1px solid #0000",borderHover:`1px solid ${i}`,borderDisabled:"1px solid #0000",borderFocus:`1px solid ${i}`,boxShadowFocus:`0 0 8px 0 ${te(n,{alpha:.3})}`,loadingColor:n,loadingColorWarning:s,borderWarning:`1px solid ${s}`,borderHoverWarning:`1px solid ${c}`,colorFocusWarning:te(s,{alpha:.1}),borderFocusWarning:`1px solid ${c}`,boxShadowFocusWarning:`0 0 8px 0 ${te(s,{alpha:.3})}`,caretColorWarning:s,loadingColorError:d,borderError:`1px solid ${d}`,borderHoverError:`1px solid ${u}`,colorFocusError:te(d,{alpha:.1}),borderFocusError:`1px solid ${u}`,boxShadowFocusError:`0 0 8px 0 ${te(d,{alpha:.3})}`,caretColorError:d,clearColor:D,clearColorHover:x,clearColorPressed:k,iconColor:z,iconColorDisabled:M,iconColorHover:se,iconColorPressed:ye,suffixTextColor:t})}},xt=ET;var DT=e=>{let{textColor2:t,textColor3:o,textColorDisabled:r,primaryColor:n,primaryColorHover:i,inputColor:a,inputColorDisabled:l,borderColor:s,warningColor:c,warningColorHover:d,errorColor:u,errorColorHover:p,borderRadius:f,lineHeight:m,fontSizeTiny:y,fontSizeSmall:w,fontSizeMedium:g,fontSizeLarge:O,heightTiny:j,heightSmall:S,heightMedium:v,heightLarge:D,actionColor:x,clearColor:k,clearColorHover:A,clearColorPressed:E,placeholderColor:z,placeholderColorDisabled:M,iconColor:se,iconColorDisabled:ye,iconColorHover:Ie,iconColorPressed:fe}=e;return Object.assign(Object.assign({},cs),{countTextColor:o,heightTiny:j,heightSmall:S,heightMedium:v,heightLarge:D,fontSizeTiny:y,fontSizeSmall:w,fontSizeMedium:g,fontSizeLarge:O,lineHeight:m,lineHeightTextarea:m,borderRadius:f,iconSize:"16px",groupLabelColor:x,groupLabelTextColor:t,textColor:t,textColorDisabled:r,textDecorationColor:t,caretColor:n,placeholderColor:z,placeholderColorDisabled:M,color:a,colorDisabled:l,colorFocus:a,groupLabelBorder:`1px solid ${s}`,border:`1px solid ${s}`,borderHover:`1px solid ${i}`,borderDisabled:`1px solid ${s}`,borderFocus:`1px solid ${i}`,boxShadowFocus:`0 0 0 2px ${te(n,{alpha:.2})}`,loadingColor:n,loadingColorWarning:c,borderWarning:`1px solid ${c}`,borderHoverWarning:`1px solid ${d}`,colorFocusWarning:a,borderFocusWarning:`1px solid ${d}`,boxShadowFocusWarning:`0 0 0 2px ${te(c,{alpha:.2})}`,caretColorWarning:c,loadingColorError:u,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${p}`,colorFocusError:a,borderFocusError:`1px solid ${p}`,boxShadowFocusError:`0 0 0 2px ${te(u,{alpha:.2})}`,caretColorError:u,clearColor:k,clearColorHover:A,clearColorPressed:E,iconColor:se,iconColorDisabled:ye,iconColorHover:Ie,iconColorPressed:fe,suffixTextColor:t})},TT={name:"Input",common:ge,self:DT},po=TT;var ds="n-input";function qv(e){let t=0;for(let o of e)t++;return t}function ia(e){return["",void 0,null].includes(e)}var Id=ue({name:"InputWordCount",setup(e,{slots:t}){let{mergedValueRef:o,maxlengthRef:r,mergedClsPrefixRef:n}=ke(ds),i=F(()=>{let{value:a}=o;return a===null||Array.isArray(a)?0:qv(a)});return()=>{let{value:a}=r,{value:l}=o;return b("span",{class:`${n.value}-input-word-count`},ul(t.default,{value:l===null||Array.isArray(l)?"":l},()=>[a===void 0?i.value:`${i.value} / ${a}`]))}}});var Gv=U("input",` max-width: 100%; cursor: text; line-height: 1.5; @@ -323,11 +323,11 @@ ${o} transition: background-color .3s var(--n-bezier); font-size: var(--n-font-size); --n-padding-vertical: calc((var(--n-height) - 1.5 * var(--n-font-size)) / 2); -`,[oe("input, textarea",` +`,[ee("input, textarea",` overflow: hidden; flex-grow: 1; position: relative; - `),oe("input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder",` + `),ee("input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder",` box-sizing: border-box; font-size: inherit; line-height: 1.5; @@ -340,7 +340,7 @@ ${o} caret-color .3s var(--n-bezier), color .3s var(--n-bezier), text-decoration-color .3s var(--n-bezier); - `),oe("input-el, textarea-el",` + `),ee("input-el, textarea-el",` -webkit-appearance: none; scrollbar-width: none; width: 100%; @@ -353,7 +353,7 @@ ${o} width: 0; height: 0; display: none; - `),J("&::placeholder","color: #0000;"),J("&:-webkit-autofill ~",[oe("placeholder","display: none;")])]),Te("round",[ct("textarea","border-radius: calc(var(--n-height) / 2);")]),oe("placeholder",` + `),J("&::placeholder","color: #0000;"),J("&:-webkit-autofill ~",[ee("placeholder","display: none;")])]),be("round",[oo("textarea","border-radius: calc(var(--n-height) / 2);")]),ee("placeholder",` pointer-events: none; position: absolute; left: 0; @@ -365,19 +365,19 @@ ${o} `,[J("span",` width: 100%; display: inline-block; - `)]),Te("textarea",[oe("placeholder","overflow: visible;")]),ct("autosize","width: 100%;"),Te("autosize",[oe("textarea-el, input-el",` + `)]),be("textarea",[ee("placeholder","overflow: visible;")]),oo("autosize","width: 100%;"),be("autosize",[ee("textarea-el, input-el",` position: absolute; top: 0; left: 0; height: 100%; - `)]),$("input-wrapper",` + `)]),U("input-wrapper",` overflow: hidden; display: inline-flex; flex-grow: 1; position: relative; padding-left: var(--n-padding-left); padding-right: var(--n-padding-right); - `),oe("input-mirror",` + `),ee("input-mirror",` padding: 0; height: var(--n-height); overflow: hidden; @@ -385,25 +385,25 @@ ${o} position: static; white-space: nowrap; pointer-events: none; - `),oe("input-el",` + `),ee("input-el",` padding: 0; height: var(--n-height); line-height: var(--n-height); - `,[J("+",[oe("placeholder",` + `,[J("+",[ee("placeholder",` display: flex; align-items: center; - `)])]),ct("textarea",[oe("placeholder","white-space: nowrap;")]),oe("eye",` + `)])]),oo("textarea",[ee("placeholder","white-space: nowrap;")]),ee("eye",` transition: color .3s var(--n-bezier); - `),Te("textarea","width: 100%;",[$("input-word-count",` + `),be("textarea","width: 100%;",[U("input-word-count",` position: absolute; right: var(--n-padding-right); bottom: var(--n-padding-vertical); - `),Te("resizable",[$("input-wrapper",` + `),be("resizable",[U("input-wrapper",` resize: vertical; min-height: var(--n-height); - `)]),oe("textarea",` + `)]),ee("textarea",` position: static; - `),oe("textarea-el, textarea-mirror, placeholder",` + `),ee("textarea-el, textarea-mirror, placeholder",` height: 100%; left: var(--n-padding-left); right: var(--n-padding-right); @@ -419,7 +419,7 @@ ${o} margin: 0; resize: none; white-space: pre-wrap; - `),oe("textarea-mirror",` + `),ee("textarea-mirror",` width: 100%; pointer-events: none; overflow: hidden; @@ -427,31 +427,31 @@ ${o} position: static; white-space: pre-wrap; overflow-wrap: break-word; - `)]),Te("pair",[oe("input-el, placeholder","text-align: center;"),oe("separator",` + `)]),be("pair",[ee("input-el, placeholder","text-align: center;"),ee("separator",` display: flex; align-items: center; transition: color .3s var(--n-bezier); color: var(--n-text-color); - `,[$("icon",` + `,[U("icon",` color: var(--n-icon-color); - `),$("base-icon",` + `),U("base-icon",` color: var(--n-icon-color); - `)])]),Te("disabled",` + `)])]),be("disabled",` cursor: not-allowed; background-color: var(--n-color-disabled); - `,[oe("border","border: var(--n-border-disabled);"),oe("input-el, textarea-el",` + `,[ee("border","border: var(--n-border-disabled);"),ee("input-el, textarea-el",` cursor: not-allowed; color: var(--n-text-color-disabled); text-decoration-color: var(--n-text-color-disabled); - `),oe("placeholder","color: var(--n-placeholder-color-disabled);"),oe("separator","color: var(--n-text-color-disabled);",[$("icon",` + `),ee("placeholder","color: var(--n-placeholder-color-disabled);"),ee("separator","color: var(--n-text-color-disabled);",[U("icon",` color: var(--n-icon-color-disabled); - `),$("base-icon",` + `),U("base-icon",` color: var(--n-icon-color-disabled); - `)]),oe("suffix, prefix","color: var(--n-text-color-disabled);",[$("icon",` + `)]),ee("suffix, prefix","color: var(--n-text-color-disabled);",[U("icon",` color: var(--n-icon-color-disabled); - `),$("internal-icon",` + `),U("internal-icon",` color: var(--n-icon-color-disabled); - `)])]),ct("disabled",[oe("eye",` + `)])]),oo("disabled",[ee("eye",` display: flex; align-items: center; justify-content: center; @@ -461,14 +461,14 @@ ${o} color: var(--n-icon-color-hover); `),J("&:active",` color: var(--n-icon-color-pressed); - `),$("icon",[J("&:hover",` + `),U("icon",[J("&:hover",` color: var(--n-icon-color-hover); `),J("&:active",` color: var(--n-icon-color-pressed); - `)])]),J("&:hover",[oe("state-border","border: var(--n-border-hover);")]),Te("focus","background-color: var(--n-color-focus);",[oe("state-border",` + `)])]),J("&:hover",[ee("state-border","border: var(--n-border-hover);")]),be("focus","background-color: var(--n-color-focus);",[ee("state-border",` border: var(--n-border-focus); box-shadow: var(--n-box-shadow-focus); - `)])]),oe("border, state-border",` + `)])]),ee("border, state-border",` box-sizing: border-box; position: absolute; left: 0; @@ -481,12 +481,12 @@ ${o} transition: box-shadow .3s var(--n-bezier), border-color .3s var(--n-bezier); - `),oe("state-border",` + `),ee("state-border",` border-color: #0000; z-index: 1; - `),oe("prefix","margin-right: 4px;"),oe("suffix",` + `),ee("prefix","margin-right: 4px;"),ee("suffix",` margin-left: 4px; - `),oe("suffix, prefix",` + `),ee("suffix, prefix",` transition: color .3s var(--n-bezier); flex-wrap: nowrap; flex-shrink: 0; @@ -496,23 +496,23 @@ ${o} align-items: center; justify-content: center; color: var(--n-suffix-text-color); - `,[$("base-loading",` + `,[U("base-loading",` font-size: var(--n-icon-size); margin: 0 2px; color: var(--n-loading-color); - `),$("base-clear",` + `),U("base-clear",` font-size: var(--n-icon-size); - `,[oe("placeholder",[$("base-icon",` + `,[ee("placeholder",[U("base-icon",` transition: color .3s var(--n-bezier); color: var(--n-icon-color); font-size: var(--n-icon-size); - `)])]),J(">",[$("icon",` + `)])]),J(">",[U("icon",` transition: color .3s var(--n-bezier); color: var(--n-icon-color); font-size: var(--n-icon-size); - `)]),$("base-icon",` + `)]),U("base-icon",` font-size: var(--n-icon-size); - `)]),$("input-word-count",` + `)]),U("input-word-count",` pointer-events: none; line-height: 1.5; font-size: .85em; @@ -520,26 +520,26 @@ ${o} transition: color .3s var(--n-bezier); margin-left: 4px; font-variant: tabular-nums; - `),["warning","error"].map(e=>Te(`${e}-status`,[ct("disabled",[$("base-loading",` + `),["warning","error"].map(e=>be(`${e}-status`,[oo("disabled",[U("base-loading",` color: var(--n-loading-color-${e}) - `),oe("input-el, textarea-el",` + `),ee("input-el, textarea-el",` caret-color: var(--n-caret-color-${e}); - `),oe("state-border",` + `),ee("state-border",` border: var(--n-border-${e}); - `),J("&:hover",[oe("state-border",` + `),J("&:hover",[ee("state-border",` border: var(--n-border-hover-${e}); `)]),J("&:focus",` background-color: var(--n-color-focus-${e}); - `,[oe("state-border",` + `,[ee("state-border",` box-shadow: var(--n-box-shadow-focus-${e}); border: var(--n-border-focus-${e}); - `)]),Te("focus",` + `)]),be("focus",` background-color: var(--n-color-focus-${e}); - `,[oe("state-border",` + `,[ee("state-border",` box-shadow: var(--n-box-shadow-focus-${e}); border: var(--n-border-focus-${e}); - `)])])]))]);var $A=Object.assign(Object.assign({},Mo.props),{bordered:{type:Boolean,default:void 0},type:{type:String,default:"text"},placeholder:[Array,String],defaultValue:{type:[String,Array],default:null},value:[String,Array],disabled:{type:Boolean,default:void 0},size:String,rows:{type:[Number,String],default:3},round:Boolean,minlength:[String,Number],maxlength:[String,Number],clearable:Boolean,autosize:{type:[Boolean,Object],default:!1},pair:Boolean,separator:String,readonly:{type:[String,Boolean],default:!1},passivelyActivated:Boolean,showPasswordOn:String,stateful:{type:Boolean,default:!0},autofocus:Boolean,inputProps:Object,resizable:{type:Boolean,default:!0},showCount:Boolean,loading:{type:Boolean,default:void 0},onMousedown:Function,onKeydown:Function,onKeyup:Function,onInput:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClick:[Function,Array],onChange:[Function,Array],onClear:[Function,Array],status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],textDecoration:[String,Array],attrSize:{type:Number,default:20},onInputBlur:[Function,Array],onInputFocus:[Function,Array],onDeactivate:[Function,Array],onActivate:[Function,Array],onWrapperFocus:[Function,Array],onWrapperBlur:[Function,Array],internalDeactivateOnEnter:Boolean,internalForceFocus:Boolean,internalLoadingBeforeSuffix:Boolean,showPasswordToggle:Boolean}),Su=ae({name:"Input",props:$A,setup(e){let{mergedClsPrefixRef:o,mergedBorderedRef:t,inlineThemeDisabled:r,mergedRtlRef:a}=Ko(e),l=Mo("Input","-input",Dg,Ct,e,o),n=Z(null),i=Z(null),d=Z(null),s=Z(null),u=Z(null),f=Z(null),m=Z(null),{localeRef:p}=ol("Input"),c=Z(e.defaultValue),R=_e(e,"value"),y=dt(R,c),h=Pt(e),{mergedSizeRef:A,mergedDisabledRef:z,mergedStatusRef:F}=h,g=Z(!1),k=Z(!1),S=Z(!1),b=Z(!1),B=null,v=W(()=>{let{placeholder:C,pair:X}=e;return X?Array.isArray(C)?C:C===void 0?["",""]:[C,C]:C===void 0?[p.value.placeholder]:[C]}),_=W(()=>{let{value:C}=S,{value:X}=y,{value:ce}=v;return!C&&(an(X)||Array.isArray(X)&&an(X[0]))&&ce[0]}),E=W(()=>{let{value:C}=S,{value:X}=y,{value:ce}=v;return!C&&ce[1]&&(an(X)||Array.isArray(X)&&an(X[1]))}),se=po(()=>e.internalForceFocus||g.value),Fe=po(()=>{if(z.value||e.readonly||!e.clearable||!se.value&&!k.value)return!1;let{value:C}=y,{value:X}=se;return e.pair?!!(Array.isArray(C)&&(C[0]||C[1]))&&(k.value||X):!!C&&(k.value||X)}),Ee=W(()=>{let{showPasswordOn:C}=e;if(C)return C;if(e.showPasswordToggle)return"click"}),pe=Z(!1),fe=W(()=>{let{textDecoration:C}=e;return C?Array.isArray(C)?C.map(X=>({textDecoration:X})):[{textDecoration:C}]:["",""]}),Re=Z(void 0),eo=()=>{var C,X;if(e.type==="textarea"){let{autosize:ce}=e;if(ce&&(Re.value=(X=(C=m.value)===null||C===void 0?void 0:C.$el)===null||X===void 0?void 0:X.offsetWidth),!i.value||typeof ce=="boolean")return;let{paddingTop:$e,paddingBottom:P,lineHeight:q}=window.getComputedStyle(i.value),ue=Number($e.slice(0,-2)),he=Number(P.slice(0,-2)),je=Number(q.slice(0,-2)),{value:qo}=d;if(!qo)return;if(ce.minRows){let Do=Math.max(ce.minRows,1),mr=`${ue+he+je*Do}px`;qo.style.minHeight=mr}if(ce.maxRows){let Do=`${ue+he+je*ce.maxRows}px`;qo.style.maxHeight=Do}}},oo=W(()=>{let{maxlength:C}=e;return C===void 0?void 0:Number(C)});so(()=>{let{value:C}=y;Array.isArray(C)||Xe(C)});let Qe=vt().proxy;function fo(C){let{onUpdateValue:X,"onUpdate:value":ce,onInput:$e}=e,{nTriggerFormInput:P}=h;X&&be(X,C),ce&&be(ce,C),$e&&be($e,C),c.value=C,P()}function no(C){let{onChange:X}=e,{nTriggerFormChange:ce}=h;X&&be(X,C),c.value=C,ce()}function Bo(C){let{onBlur:X}=e,{nTriggerFormBlur:ce}=h;X&&be(X,C),ce()}function Eo(C){let{onFocus:X}=e,{nTriggerFormFocus:ce}=h;X&&be(X,C),ce()}function Ke(C){let{onClear:X}=e;X&&be(X,C)}function Ve(C){let{onInputBlur:X}=e;X&&be(X,C)}function ao(C){let{onInputFocus:X}=e;X&&be(X,C)}function Ae(){let{onDeactivate:C}=e;C&&be(C)}function mo(){let{onActivate:C}=e;C&&be(C)}function Lo(C){let{onClick:X}=e;X&&be(X,C)}function bo(C){let{onWrapperFocus:X}=e;X&&be(X,C)}function x(C){let{onWrapperBlur:X}=e;X&&be(X,C)}function O(){S.value=!0}function N(C){S.value=!1,C.target===f.value?U(C,1):U(C,0)}function U(C,X=0,ce="input"){let $e=C.target.value;if(Xe($e),e.type==="textarea"){let{value:q}=m;q&&q.syncUnifiedContainer()}if(B=$e,S.value)return;let P=$e;if(!e.pair)ce==="input"?fo(P):no(P);else{let{value:q}=y;Array.isArray(q)?q=[...q]:q=["",""],q[X]=P,ce==="input"?fo(q):no(q)}Qe.$forceUpdate()}function K(C){Ve(C),C.relatedTarget===n.value&&Ae(),C.relatedTarget!==null&&(C.relatedTarget===u.value||C.relatedTarget===f.value||C.relatedTarget===i.value)||(b.value=!1),Y(C,"blur")}function le(C){ao(C),g.value=!0,b.value=!0,mo(),Y(C,"focus")}function ee(C){e.passivelyActivated&&(x(C),Y(C,"blur"))}function V(C){e.passivelyActivated&&(g.value=!0,bo(C),Y(C,"focus"))}function Y(C,X){C.relatedTarget!==null&&(C.relatedTarget===u.value||C.relatedTarget===f.value||C.relatedTarget===i.value||C.relatedTarget===n.value)||(X==="focus"?(Eo(C),g.value=!0):X==="blur"&&(Bo(C),g.value=!1))}function G(C,X){U(C,X,"change")}function D(C){Lo(C)}function L(C){Ke(C),e.pair?(fo(["",""]),no(["",""])):(fo(""),no(""))}function I(C){let{onMousedown:X}=e;X&&X(C);let{tagName:ce}=C.target;if(ce!=="INPUT"&&ce!=="TEXTAREA"){if(e.resizable){let{value:$e}=n;if($e){let{left:P,top:q,width:ue,height:he}=$e.getBoundingClientRect(),je=14;if(P+ue-je{$e.preventDefault(),yo("mouseup",document,X)};if(ko("mouseup",document,X),Ee.value!=="mousedown")return;pe.value=!0;let ce=()=>{pe.value=!1,yo("mouseup",document,ce)};ko("mouseup",document,ce)}function Le(C){var X;switch((X=e.onKeydown)===null||X===void 0||X.call(e,C),C.code){case"Escape":ie();break;case"Enter":case"NumpadEnter":Q(C);break}}function Q(C){var X,ce;if(e.passivelyActivated){let{value:$e}=b;if($e){e.internalDeactivateOnEnter&&ie();return}C.preventDefault(),e.type==="textarea"?(X=i.value)===null||X===void 0||X.focus():(ce=u.value)===null||ce===void 0||ce.focus()}}function ie(){e.passivelyActivated&&(b.value=!1,Qo(()=>{var C;(C=n.value)===null||C===void 0||C.focus()}))}function Oe(){var C,X,ce;z.value||(e.passivelyActivated?(C=n.value)===null||C===void 0||C.focus():((X=i.value)===null||X===void 0||X.focus(),(ce=u.value)===null||ce===void 0||ce.focus()))}function He(){var C;((C=n.value)===null||C===void 0?void 0:C.contains(document.activeElement))&&document.activeElement.blur()}function lo(){var C,X;(C=i.value)===null||C===void 0||C.select(),(X=u.value)===null||X===void 0||X.select()}function Ze(){z.value||(i.value?i.value.focus():u.value&&u.value.focus())}function Ye(){let{value:C}=n;(C==null?void 0:C.contains(document.activeElement))&&C!==document.activeElement&&ie()}function Xe(C){let{type:X,pair:ce,autosize:$e}=e;if(!ce&&$e)if(X==="textarea"){let{value:P}=d;P&&(P.textContent=(C!=null?C:"")+`\r -`)}else{let{value:P}=s;P&&(C?P.textContent=C:P.innerHTML=" ")}}function vo(){eo()}let lt=Z({top:"0"});function T(C){var X;let{scrollTop:ce}=C.target;lt.value.top=`${-ce}px`,(X=m.value)===null||X===void 0||X.syncUnifiedContainer()}let H=null;Uo(()=>{let{autosize:C,type:X}=e;C&&X==="textarea"?H=io(y,ce=>{!Array.isArray(ce)&&ce!==B&&Xe(ce)}):H==null||H()});let re=null;Uo(()=>{e.type==="textarea"?re=io(y,C=>{var X;!Array.isArray(C)&&C!==B&&((X=m.value)===null||X===void 0||X.syncUnifiedContainer())}):re==null||re()}),nt(sd,{mergedValueRef:y,maxlengthRef:oo,mergedClsPrefixRef:o});let de={wrapperElRef:n,inputElRef:u,textareaElRef:i,isCompositing:S,focus:Oe,blur:He,select:lo,deactivate:Ye,activate:Ze},Ge=Fa("Input",a,o),Me=W(()=>{let{value:C}=A,{common:{cubicBezierEaseInOut:X},self:{color:ce,borderRadius:$e,textColor:P,caretColor:q,caretColorError:ue,caretColorWarning:he,textDecorationColor:je,border:qo,borderDisabled:Do,borderHover:mr,borderFocus:cr,placeholderColor:Vo,placeholderColorDisabled:$o,lineHeightTextarea:xt,colorDisabled:Hp,colorFocus:yd,textColorDisabled:co,boxShadowFocus:Jo,iconSize:dl,colorFocusWarning:Fn,boxShadowFocusWarning:Cn,borderWarning:bn,borderFocusWarning:sl,borderHoverWarning:BT,colorFocusError:ET,boxShadowFocusError:LT,borderError:NT,borderFocusError:_T,borderHoverError:IT,clearSize:HT,clearColor:VT,clearColorHover:WT,clearColorPressed:zT,iconColor:jT,iconColorDisabled:$T,suffixTextColor:UT,countTextColor:KT,iconColorHover:GT,iconColorPressed:qT,loadingColor:QT,loadingColorError:ZT,loadingColorWarning:YT,[Be("padding",C)]:XT,[Be("fontSize",C)]:JT,[Be("height",C)]:eR}}=l.value,{left:oR,right:tR}=Ha(XT);return{"--n-bezier":X,"--n-count-text-color":KT,"--n-color":ce,"--n-font-size":JT,"--n-border-radius":$e,"--n-height":eR,"--n-padding-left":oR,"--n-padding-right":tR,"--n-text-color":P,"--n-caret-color":q,"--n-text-decoration-color":je,"--n-border":qo,"--n-border-disabled":Do,"--n-border-hover":mr,"--n-border-focus":cr,"--n-placeholder-color":Vo,"--n-placeholder-color-disabled":$o,"--n-icon-size":dl,"--n-line-height-textarea":xt,"--n-color-disabled":Hp,"--n-color-focus":yd,"--n-text-color-disabled":co,"--n-box-shadow-focus":Jo,"--n-loading-color":QT,"--n-caret-color-warning":he,"--n-color-focus-warning":Fn,"--n-box-shadow-focus-warning":Cn,"--n-border-warning":bn,"--n-border-focus-warning":sl,"--n-border-hover-warning":BT,"--n-loading-color-warning":YT,"--n-caret-color-error":ue,"--n-color-focus-error":ET,"--n-box-shadow-focus-error":LT,"--n-border-error":NT,"--n-border-focus-error":_T,"--n-border-hover-error":IT,"--n-loading-color-error":ZT,"--n-clear-color":VT,"--n-clear-size":HT,"--n-clear-color-hover":WT,"--n-clear-color-pressed":zT,"--n-icon-color":jT,"--n-icon-color-hover":GT,"--n-icon-color-pressed":qT,"--n-icon-color-disabled":$T,"--n-suffix-text-color":UT}}),We=r?at("input",W(()=>{let{value:C}=A;return C[0]}),Me,e):void 0;return Object.assign(Object.assign({},de),{wrapperElRef:n,inputElRef:u,inputMirrorElRef:s,inputEl2Ref:f,textareaElRef:i,textareaMirrorElRef:d,textareaScrollbarInstRef:m,rtlEnabled:Ge,uncontrolledValue:c,mergedValue:y,passwordVisible:pe,mergedPlaceholder:v,showPlaceholder1:_,showPlaceholder2:E,mergedFocus:se,isComposing:S,activated:b,showClearButton:Fe,mergedSize:A,mergedDisabled:z,textDecorationStyle:fe,mergedClsPrefix:o,mergedBordered:t,mergedShowPasswordOn:Ee,placeholderStyle:lt,mergedStatus:F,textAreaScrollContainerWidth:Re,handleTextAreaScroll:T,handleCompositionStart:O,handleCompositionEnd:N,handleInput:U,handleInputBlur:K,handleInputFocus:le,handleWrapperBlur:ee,handleWrapperFocus:V,handleMouseEnter:ne,handleMouseLeave:me,handleMouseDown:I,handleChange:G,handleClick:D,handleClear:L,handlePasswordToggleClick:ye,handlePasswordToggleMousedown:ke,handleWrapperKeyDown:Le,handleTextAreaMirrorResize:vo,getTextareaScrollContainer:()=>i.value,mergedTheme:l,cssVars:r?void 0:Me,themeClass:We==null?void 0:We.themeClass,onRender:We==null?void 0:We.onRender})},render(){let{mergedClsPrefix:e,mergedStatus:o,themeClass:t,onRender:r,$slots:a}=this;return r==null||r(),w("div",{ref:"wrapperElRef",class:[`${e}-input`,t,o&&`${e}-input--${o}-status`,{[`${e}-input--rtl`]:this.rtlEnabled,[`${e}-input--disabled`]:this.mergedDisabled,[`${e}-input--textarea`]:this.type==="textarea",[`${e}-input--resizable`]:this.resizable&&!this.autosize,[`${e}-input--autosize`]:this.autosize,[`${e}-input--round`]:this.round&&this.type!=="textarea",[`${e}-input--pair`]:this.pair,[`${e}-input--focus`]:this.mergedFocus,[`${e}-input--stateful`]:this.stateful}],style:this.cssVars,tabindex:!this.mergedDisabled&&this.passivelyActivated&&!this.activated?0:void 0,onFocus:this.handleWrapperFocus,onBlur:this.handleWrapperBlur,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd,onKeyup:this.onKeyup,onKeydown:this.handleWrapperKeyDown},w("div",{class:`${e}-input-wrapper`},tr(a.prefix,l=>l&&w("div",{class:`${e}-input__prefix`},l)),this.type==="textarea"?w(ad,{ref:"textareaScrollbarInstRef",class:`${e}-input__textarea`,container:this.getTextareaScrollContainer,triggerDisplayManually:!0,useUnifiedContainer:!0},{default:()=>{let{textAreaScrollContainerWidth:l}=this,n={width:this.autosize&&l&&`${l}px`};return w(_o,null,w("textarea",Object.assign({},this.inputProps,{ref:"textareaElRef",class:`${e}-input__textarea-el`,autofocus:this.autofocus,rows:Number(this.rows),placeholder:this.placeholder,value:this.mergedValue,disabled:this.mergedDisabled,maxlength:this.maxlength,minlength:this.minlength,readonly:this.readonly,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,style:[this.textDecorationStyle[0],n],onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,onInput:this.handleInput,onChange:this.handleChange,onScroll:this.handleTextAreaScroll})),this.showPlaceholder1?w("div",{class:`${e}-input__placeholder`,style:[this.placeholderStyle,n],key:"placeholder"},this.mergedPlaceholder[0]):null,this.autosize?w(Vt,{onResize:this.handleTextAreaMirrorResize},{default:()=>w("div",{ref:"textareaMirrorElRef",class:`${e}-input__textarea-mirror`,key:"mirror"})}):null)}}):w("div",{class:`${e}-input__input`},w("input",Object.assign({type:this.type==="password"&&this.mergedShowPasswordOn&&this.passwordVisible?"text":this.type},this.inputProps,{ref:"inputElRef",class:`${e}-input__input-el`,style:this.textDecorationStyle[0],tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[0],disabled:this.mergedDisabled,maxlength:this.maxlength,minlength:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[0]:this.mergedValue,readonly:this.readonly,autofocus:this.autofocus,size:this.attrSize,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,onInput:l=>this.handleInput(l,0),onChange:l=>this.handleChange(l,0)})),this.showPlaceholder1?w("div",{class:`${e}-input__placeholder`},w("span",null,this.mergedPlaceholder[0])):null,this.autosize?w("div",{class:`${e}-input__input-mirror`,key:"mirror",ref:"inputMirrorElRef"},"\xA0"):null),!this.pair&&tr(a.suffix,l=>l||this.clearable||this.showCount||this.mergedShowPasswordOn||this.loading!==void 0?w("div",{class:`${e}-input__suffix`},[tr(a.clear,n=>(this.clearable||n)&&w(Ca,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{default:()=>n})),this.internalLoadingBeforeSuffix?null:l,this.loading!==void 0?w(nd,{clsPrefix:e,loading:this.loading,showArrow:!1,showClear:!1,style:this.cssVars}):null,this.internalLoadingBeforeSuffix?l:null,this.showCount&&this.type!=="textarea"?w(xu,null,{default:n=>{var i;return(i=a.count)===null||i===void 0?void 0:i.call(a,n)}}):null,this.mergedShowPasswordOn&&this.type==="password"?w(Lt,{clsPrefix:e,class:`${e}-input__eye`,onMousedown:this.handlePasswordToggleMousedown,onClick:this.handlePasswordToggleClick},{default:()=>this.passwordVisible?or(a["password-visible-icon"],()=>[w(Zs,null)]):or(a["password-invisible-icon"],()=>[w(Ys,null)])}):null]):null)),this.pair?w("span",{class:`${e}-input__separator`},or(a.separator,()=>[this.separator])):null,this.pair?w("div",{class:`${e}-input-wrapper`},w("div",{class:`${e}-input__input`},w("input",{ref:"inputEl2Ref",type:this.type,class:`${e}-input__input-el`,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[1],disabled:this.mergedDisabled,maxlength:this.maxlength,minlength:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[1]:void 0,readonly:this.readonly,style:this.textDecorationStyle[1],onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,onInput:l=>this.handleInput(l,1),onChange:l=>this.handleChange(l,1)}),this.showPlaceholder2?w("div",{class:`${e}-input__placeholder`},w("span",null,this.mergedPlaceholder[1])):null),tr(a.suffix,l=>(this.clearable||l)&&w("div",{class:`${e}-input__suffix`},[this.clearable&&w(Ca,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{default:()=>{var n;return(n=a.clear)===null||n===void 0?void 0:n.call(a)}}),l]))):null,this.mergedBordered?w("div",{class:`${e}-input__border`}):null,this.mergedBordered?w("div",{class:`${e}-input__state-border`}):null,this.showCount&&this.type==="textarea"?w(xu,null,{default:l=>{var n;return(n=a.count)===null||n===void 0?void 0:n.call(a,l)}}):null)}});function gu(e){let{boxShadow2:o}=e;return{menuBoxShadow:o}}var K4=Ie({name:"AutoComplete",common:Se,peers:{InternalSelectMenu:Oa,Input:Ct},self:gu});var UA={name:"AutoComplete",common:M,peers:{InternalSelectMenu:Wt,Input:Ao},self:gu},wu=UA;var Pg=e=>{let{borderRadius:o,avatarColor:t,cardColor:r,fontSize:a,heightTiny:l,heightSmall:n,heightMedium:i,heightLarge:d,heightHuge:s,modalColor:u,popoverColor:f}=e;return{borderRadius:o,fontSize:a,border:`2px solid ${r}`,heightTiny:l,heightSmall:n,heightMedium:i,heightLarge:d,heightHuge:s,color:ge(r,t),colorModal:ge(u,t),colorPopover:ge(f,t)}};var KA={name:"Avatar",common:M,self:Pg},ln=KA;var GA={name:"AvatarGroup",common:M,peers:{Avatar:ln}},Tu=GA;var Mg={width:"44px",height:"44px",borderRadius:"22px",iconSize:"26px"};var qA={name:"BackTop",common:M,self(e){let{popoverColor:o,textColor2:t,primaryColorHover:r,primaryColorPressed:a}=e;return Object.assign(Object.assign({},Mg),{color:o,textColor:t,iconColor:t,iconColorHover:r,iconColorPressed:a,boxShadow:"0 2px 8px 0px rgba(0, 0, 0, .12)",boxShadowHover:"0 2px 12px 0px rgba(0, 0, 0, .18)",boxShadowPressed:"0 2px 12px 0px rgba(0, 0, 0, .18)"})}},Ru=qA;var QA={name:"Badge",common:M,self(e){let{errorColorSuppl:o,infoColorSuppl:t,successColorSuppl:r,warningColorSuppl:a,fontFamily:l}=e;return{color:o,colorInfo:t,colorSuccess:r,colorError:o,colorWarning:a,fontSize:"12px",fontFamily:l}}},Ou=QA;var Bg={fontWeightActive:"400"};var Eg=e=>{let{fontSize:o,textColor3:t,primaryColorHover:r,primaryColorPressed:a,textColor2:l}=e;return Object.assign(Object.assign({},Bg),{fontSize:o,itemTextColor:t,itemTextColorHover:r,itemTextColorPressed:a,itemTextColorActive:l,separatorColor:t})};var ZA={name:"Breadcrumb",common:M,self:Eg},Fu=ZA;function Xr(e){return ge(e,[255,255,255,.16])}function nn(e){return ge(e,[0,0,0,.12])}var Lg={paddingTiny:"0 6px",paddingSmall:"0 10px",paddingMedium:"0 14px",paddingLarge:"0 18px",paddingRoundTiny:"0 10px",paddingRoundSmall:"0 14px",paddingRoundMedium:"0 18px",paddingRoundLarge:"0 22px",iconMarginTiny:"6px",iconMarginSmall:"6px",iconMarginMedium:"6px",iconMarginLarge:"6px",iconSizeTiny:"14px",iconSizeSmall:"18px",iconSizeMedium:"18px",iconSizeLarge:"20px",rippleDuration:".6s"};var Cu=e=>{let{heightTiny:o,heightSmall:t,heightMedium:r,heightLarge:a,borderRadius:l,fontSizeTiny:n,fontSizeSmall:i,fontSizeMedium:d,fontSizeLarge:s,opacityDisabled:u,textColor2:f,textColor3:m,primaryColorHover:p,primaryColorPressed:c,borderColor:R,primaryColor:y,baseColor:h,infoColor:A,infoColorHover:z,infoColorPressed:F,successColor:g,successColorHover:k,successColorPressed:S,warningColor:b,warningColorHover:B,warningColorPressed:v,errorColor:_,errorColorHover:E,errorColorPressed:se,fontWeight:Fe,buttonColor2:Ee,buttonColor2Hover:pe,buttonColor2Pressed:fe,fontWeightStrong:Re}=e;return Object.assign(Object.assign({},Lg),{heightTiny:o,heightSmall:t,heightMedium:r,heightLarge:a,borderRadiusTiny:l,borderRadiusSmall:l,borderRadiusMedium:l,borderRadiusLarge:l,fontSizeTiny:n,fontSizeSmall:i,fontSizeMedium:d,fontSizeLarge:s,opacityDisabled:u,colorOpacitySecondary:"0.16",colorOpacitySecondaryHover:"0.22",colorOpacitySecondaryPressed:"0.28",colorSecondary:Ee,colorSecondaryHover:pe,colorSecondaryPressed:fe,colorTertiary:Ee,colorTertiaryHover:pe,colorTertiaryPressed:fe,colorQuaternary:"#0000",colorQuaternaryHover:pe,colorQuaternaryPressed:fe,color:"#0000",colorHover:"#0000",colorPressed:"#0000",colorFocus:"#0000",colorDisabled:"#0000",textColor:f,textColorTertiary:m,textColorHover:p,textColorPressed:c,textColorFocus:p,textColorDisabled:f,textColorText:f,textColorTextHover:p,textColorTextPressed:c,textColorTextFocus:p,textColorTextDisabled:f,textColorGhost:f,textColorGhostHover:p,textColorGhostPressed:c,textColorGhostFocus:p,textColorGhostDisabled:f,border:`1px solid ${R}`,borderHover:`1px solid ${p}`,borderPressed:`1px solid ${c}`,borderFocus:`1px solid ${p}`,borderDisabled:`1px solid ${R}`,rippleColor:y,colorPrimary:y,colorHoverPrimary:p,colorPressedPrimary:c,colorFocusPrimary:p,colorDisabledPrimary:y,textColorPrimary:h,textColorHoverPrimary:h,textColorPressedPrimary:h,textColorFocusPrimary:h,textColorDisabledPrimary:h,textColorTextPrimary:y,textColorTextHoverPrimary:p,textColorTextPressedPrimary:c,textColorTextFocusPrimary:p,textColorTextDisabledPrimary:f,textColorGhostPrimary:y,textColorGhostHoverPrimary:p,textColorGhostPressedPrimary:c,textColorGhostFocusPrimary:p,textColorGhostDisabledPrimary:y,borderPrimary:`1px solid ${y}`,borderHoverPrimary:`1px solid ${p}`,borderPressedPrimary:`1px solid ${c}`,borderFocusPrimary:`1px solid ${p}`,borderDisabledPrimary:`1px solid ${y}`,rippleColorPrimary:y,colorInfo:A,colorHoverInfo:z,colorPressedInfo:F,colorFocusInfo:z,colorDisabledInfo:A,textColorInfo:h,textColorHoverInfo:h,textColorPressedInfo:h,textColorFocusInfo:h,textColorDisabledInfo:h,textColorTextInfo:A,textColorTextHoverInfo:z,textColorTextPressedInfo:F,textColorTextFocusInfo:z,textColorTextDisabledInfo:f,textColorGhostInfo:A,textColorGhostHoverInfo:z,textColorGhostPressedInfo:F,textColorGhostFocusInfo:z,textColorGhostDisabledInfo:A,borderInfo:`1px solid ${A}`,borderHoverInfo:`1px solid ${z}`,borderPressedInfo:`1px solid ${F}`,borderFocusInfo:`1px solid ${z}`,borderDisabledInfo:`1px solid ${A}`,rippleColorInfo:A,colorSuccess:g,colorHoverSuccess:k,colorPressedSuccess:S,colorFocusSuccess:k,colorDisabledSuccess:g,textColorSuccess:h,textColorHoverSuccess:h,textColorPressedSuccess:h,textColorFocusSuccess:h,textColorDisabledSuccess:h,textColorTextSuccess:g,textColorTextHoverSuccess:k,textColorTextPressedSuccess:S,textColorTextFocusSuccess:k,textColorTextDisabledSuccess:f,textColorGhostSuccess:g,textColorGhostHoverSuccess:k,textColorGhostPressedSuccess:S,textColorGhostFocusSuccess:k,textColorGhostDisabledSuccess:g,borderSuccess:`1px solid ${g}`,borderHoverSuccess:`1px solid ${k}`,borderPressedSuccess:`1px solid ${S}`,borderFocusSuccess:`1px solid ${k}`,borderDisabledSuccess:`1px solid ${g}`,rippleColorSuccess:g,colorWarning:b,colorHoverWarning:B,colorPressedWarning:v,colorFocusWarning:B,colorDisabledWarning:b,textColorWarning:h,textColorHoverWarning:h,textColorPressedWarning:h,textColorFocusWarning:h,textColorDisabledWarning:h,textColorTextWarning:b,textColorTextHoverWarning:B,textColorTextPressedWarning:v,textColorTextFocusWarning:B,textColorTextDisabledWarning:f,textColorGhostWarning:b,textColorGhostHoverWarning:B,textColorGhostPressedWarning:v,textColorGhostFocusWarning:B,textColorGhostDisabledWarning:b,borderWarning:`1px solid ${b}`,borderHoverWarning:`1px solid ${B}`,borderPressedWarning:`1px solid ${v}`,borderFocusWarning:`1px solid ${B}`,borderDisabledWarning:`1px solid ${b}`,rippleColorWarning:b,colorError:_,colorHoverError:E,colorPressedError:se,colorFocusError:E,colorDisabledError:_,textColorError:h,textColorHoverError:h,textColorPressedError:h,textColorFocusError:h,textColorDisabledError:h,textColorTextError:_,textColorTextHoverError:E,textColorTextPressedError:se,textColorTextFocusError:E,textColorTextDisabledError:f,textColorGhostError:_,textColorGhostHoverError:E,textColorGhostPressedError:se,textColorGhostFocusError:E,textColorGhostDisabledError:_,borderError:`1px solid ${_}`,borderHoverError:`1px solid ${E}`,borderPressedError:`1px solid ${se}`,borderFocusError:`1px solid ${E}`,borderDisabledError:`1px solid ${_}`,rippleColorError:_,waveOpacity:"0.6",fontWeight:Fe,fontWeightStrong:Re})},YA={name:"Button",common:Se,self:Cu},zo=YA;var XA={name:"Button",common:M,self(e){let o=Cu(e);return o.waveOpacity="0.8",o.colorOpacitySecondary="0.16",o.colorOpacitySecondaryHover="0.2",o.colorOpacitySecondaryPressed="0.12",o}},wo=XA;var Ng=So("n-button-group");var _g=J([$("button",` + `)])])]))]);var OT=Object.assign(Object.assign({},Ct.props),{bordered:{type:Boolean,default:void 0},type:{type:String,default:"text"},placeholder:[Array,String],defaultValue:{type:[String,Array],default:null},value:[String,Array],disabled:{type:Boolean,default:void 0},size:String,rows:{type:[Number,String],default:3},round:Boolean,minlength:[String,Number],maxlength:[String,Number],clearable:Boolean,autosize:{type:[Boolean,Object],default:!1},pair:Boolean,separator:String,readonly:{type:[String,Boolean],default:!1},passivelyActivated:Boolean,showPasswordOn:String,stateful:{type:Boolean,default:!0},autofocus:Boolean,inputProps:Object,resizable:{type:Boolean,default:!0},showCount:Boolean,loading:{type:Boolean,default:void 0},onMousedown:Function,onKeydown:Function,onKeyup:Function,onInput:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClick:[Function,Array],onChange:[Function,Array],onClear:[Function,Array],status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],textDecoration:[String,Array],attrSize:{type:Number,default:20},onInputBlur:[Function,Array],onInputFocus:[Function,Array],onDeactivate:[Function,Array],onActivate:[Function,Array],onWrapperFocus:[Function,Array],onWrapperBlur:[Function,Array],internalDeactivateOnEnter:Boolean,internalForceFocus:Boolean,internalLoadingBeforeSuffix:Boolean,showPasswordToggle:Boolean}),Ad=ue({name:"Input",props:OT,setup(e){let{mergedClsPrefixRef:t,mergedBorderedRef:o,inlineThemeDisabled:r,mergedRtlRef:n}=Mt(e),i=Ct("Input","-input",Gv,po,e,t),a=X(null),l=X(null),s=X(null),c=X(null),d=X(null),u=X(null),p=X(null),{localeRef:f}=Qn("Input"),m=X(e.defaultValue),y=Re(e,"value"),w=Xt(y,m),g=Co(e),{mergedSizeRef:O,mergedDisabledRef:j,mergedStatusRef:S}=g,v=X(!1),D=X(!1),x=X(!1),k=X(!1),A=null,E=F(()=>{let{placeholder:T,pair:ie}=e;return ie?Array.isArray(T)?T:T===void 0?["",""]:[T,T]:T===void 0?[f.value.placeholder]:[T]}),z=F(()=>{let{value:T}=x,{value:ie}=w,{value:Oe}=E;return!T&&(ia(ie)||Array.isArray(ie)&&ia(ie[0]))&&Oe[0]}),M=F(()=>{let{value:T}=x,{value:ie}=w,{value:Oe}=E;return!T&&Oe[1]&&(ia(ie)||Array.isArray(ie)&&ia(ie[1]))}),se=Qe(()=>e.internalForceFocus||v.value),ye=Qe(()=>{if(j.value||e.readonly||!e.clearable||!se.value&&!D.value)return!1;let{value:T}=w,{value:ie}=se;return e.pair?!!(Array.isArray(T)&&(T[0]||T[1]))&&(D.value||ie):!!T&&(D.value||ie)}),Ie=F(()=>{let{showPasswordOn:T}=e;if(T)return T;if(e.showPasswordToggle)return"click"}),fe=X(!1),ce=F(()=>{let{textDecoration:T}=e;return T?Array.isArray(T)?T.map(ie=>({textDecoration:ie})):[{textDecoration:T}]:["",""]}),we=X(void 0),Me=()=>{var T,ie;if(e.type==="textarea"){let{autosize:Oe}=e;if(Oe&&(we.value=(ie=(T=p.value)===null||T===void 0?void 0:T.$el)===null||ie===void 0?void 0:ie.offsetWidth),!l.value||typeof Oe=="boolean")return;let{paddingTop:dt,paddingBottom:I,lineHeight:G}=window.getComputedStyle(l.value),de=Number(dt.slice(0,-2)),me=Number(I.slice(0,-2)),$e=Number(G.slice(0,-2)),{value:Lt}=s;if(!Lt)return;if(Oe.minRows){let bt=Math.max(Oe.minRows,1),nr=`${de+me+$e*bt}px`;Lt.style.minHeight=nr}if(Oe.maxRows){let bt=`${de+me+$e*Oe.maxRows}px`;Lt.style.maxHeight=bt}}},Be=F(()=>{let{maxlength:T}=e;return T===void 0?void 0:Number(T)});tt(()=>{let{value:T}=w;Array.isArray(T)||qe(T)});let Le=Uo().proxy;function Je(T){let{onUpdateValue:ie,"onUpdate:value":Oe,onInput:dt}=e,{nTriggerFormInput:I}=g;ie&&Se(ie,T),Oe&&Se(Oe,T),dt&&Se(dt,T),m.value=T,I()}function Xe(T){let{onChange:ie}=e,{nTriggerFormChange:Oe}=g;ie&&Se(ie,T),m.value=T,Oe()}function ct(T){let{onBlur:ie}=e,{nTriggerFormBlur:Oe}=g;ie&&Se(ie,T),Oe()}function wt(T){let{onFocus:ie}=e,{nTriggerFormFocus:Oe}=g;ie&&Se(ie,T),Oe()}function ze(T){let{onClear:ie}=e;ie&&Se(ie,T)}function We(T){let{onInputBlur:ie}=e;ie&&Se(ie,T)}function vt(T){let{onInputFocus:ie}=e;ie&&Se(ie,T)}function Pe(){let{onDeactivate:T}=e;T&&Se(T)}function ot(){let{onActivate:T}=e;T&&Se(T)}function rt(T){let{onClick:ie}=e;ie&&Se(ie,T)}function Dt(T){let{onWrapperFocus:ie}=e;ie&&Se(ie,T)}function h(T){let{onWrapperBlur:ie}=e;ie&&Se(ie,T)}function C(){x.value=!0}function L(T){x.value=!1,T.target===u.value?q(T,1):q(T,0)}function q(T,ie=0,Oe="input"){let dt=T.target.value;if(qe(dt),e.type==="textarea"){let{value:G}=p;G&&G.syncUnifiedContainer()}if(A=dt,x.value)return;let I=dt;if(!e.pair)Oe==="input"?Je(I):Xe(I);else{let{value:G}=w;Array.isArray(G)?G=[...G]:G=["",""],G[ie]=I,Oe==="input"?Je(G):Xe(G)}Le.$forceUpdate()}function K(T){We(T),T.relatedTarget===a.value&&Pe(),T.relatedTarget!==null&&(T.relatedTarget===d.value||T.relatedTarget===u.value||T.relatedTarget===l.value)||(k.value=!1),Q(T,"blur")}function ne(T){vt(T),v.value=!0,k.value=!0,ot(),Q(T,"focus")}function oe(T){e.passivelyActivated&&(h(T),Q(T,"blur"))}function H(T){e.passivelyActivated&&(v.value=!0,Dt(T),Q(T,"focus"))}function Q(T,ie){T.relatedTarget!==null&&(T.relatedTarget===d.value||T.relatedTarget===u.value||T.relatedTarget===l.value||T.relatedTarget===a.value)||(ie==="focus"?(wt(T),v.value=!0):ie==="blur"&&(ct(T),v.value=!1))}function Y(T,ie){q(T,ie,"change")}function N(T){rt(T)}function $(T){ze(T),e.pair?(Je(["",""]),Xe(["",""])):(Je(""),Xe(""))}function V(T){let{onMousedown:ie}=e;ie&&ie(T);let{tagName:Oe}=T.target;if(Oe!=="INPUT"&&Oe!=="TEXTAREA"){if(e.resizable){let{value:dt}=a;if(dt){let{left:I,top:G,width:de,height:me}=dt.getBoundingClientRect(),$e=14;if(I+de-$e{dt.preventDefault(),ht("mouseup",document,ie)};if(gt("mouseup",document,ie),Ie.value!=="mousedown")return;fe.value=!0;let Oe=()=>{fe.value=!1,ht("mouseup",document,Oe)};gt("mouseup",document,Oe)}function re(T){var ie;switch((ie=e.onKeydown)===null||ie===void 0||ie.call(e,T),T.code){case"Escape":Z();break;case"Enter":case"NumpadEnter":P(T);break}}function P(T){var ie,Oe;if(e.passivelyActivated){let{value:dt}=k;if(dt){e.internalDeactivateOnEnter&&Z();return}T.preventDefault(),e.type==="textarea"?(ie=l.value)===null||ie===void 0||ie.focus():(Oe=d.value)===null||Oe===void 0||Oe.focus()}}function Z(){e.passivelyActivated&&(k.value=!1,Bt(()=>{var T;(T=a.value)===null||T===void 0||T.focus()}))}function le(){var T,ie,Oe;j.value||(e.passivelyActivated?(T=a.value)===null||T===void 0||T.focus():((ie=l.value)===null||ie===void 0||ie.focus(),(Oe=d.value)===null||Oe===void 0||Oe.focus()))}function Ce(){var T;!((T=a.value)===null||T===void 0)&&T.contains(document.activeElement)&&document.activeElement.blur()}function Ke(){var T,ie;(T=l.value)===null||T===void 0||T.select(),(ie=d.value)===null||ie===void 0||ie.select()}function He(){j.value||(l.value?l.value.focus():d.value&&d.value.focus())}function Fe(){let{value:T}=a;T?.contains(document.activeElement)&&T!==document.activeElement&&Z()}function qe(T){let{type:ie,pair:Oe,autosize:dt}=e;if(!Oe&&dt)if(ie==="textarea"){let{value:I}=s;I&&(I.textContent=(T??"")+`\r +`)}else{let{value:I}=c;I&&(T?I.textContent=T:I.innerHTML=" ")}}function Tt(){Me()}let ho=X({top:"0"});function ii(T){var ie;let{scrollTop:Oe}=T.target;ho.value.top=`${-Oe}px`,(ie=p.value)===null||ie===void 0||ie.syncUnifiedContainer()}let hr=null;At(()=>{let{autosize:T,type:ie}=e;T&&ie==="textarea"?hr=Ze(w,Oe=>{!Array.isArray(Oe)&&Oe!==A&&qe(Oe)}):hr?.()});let gr=null;At(()=>{e.type==="textarea"?gr=Ze(w,T=>{var ie;!Array.isArray(T)&&T!==A&&((ie=p.value)===null||ie===void 0||ie.syncUnifiedContainer())}):gr?.()}),Yt(ds,{mergedValueRef:w,maxlengthRef:Be,mergedClsPrefixRef:t});let wn={wrapperElRef:a,inputElRef:d,textareaElRef:l,isCompositing:x,focus:le,blur:Ce,select:Ke,deactivate:Fe,activate:He},ai=bn("Input",n,t),kn=F(()=>{let{value:T}=O,{common:{cubicBezierEaseInOut:ie},self:{color:Oe,borderRadius:dt,textColor:I,caretColor:G,caretColorError:de,caretColorWarning:me,textDecorationColor:$e,border:Lt,borderDisabled:bt,borderHover:nr,borderFocus:ir,placeholderColor:Ot,placeholderColorDisabled:It,lineHeightTextarea:no,colorDisabled:cp,colorFocus:Ls,textColorDisabled:et,boxShadowFocus:Ft,iconSize:li,colorFocusWarning:Ea,boxShadowFocusWarning:Da,borderWarning:Ta,borderFocusWarning:si,borderHoverWarning:gy,colorFocusError:xy,boxShadowFocusError:vy,borderError:by,borderFocusError:yy,borderHoverError:Cy,clearSize:wy,clearColor:ky,clearColorHover:Sy,clearColorPressed:_y,iconColor:Ey,iconColorDisabled:Dy,suffixTextColor:Ty,countTextColor:Oy,iconColorHover:Py,iconColorPressed:Ny,loadingColor:Ry,loadingColorError:Iy,loadingColorWarning:Ay,[Te("padding",T)]:My,[Te("fontSize",T)]:$y,[Te("height",T)]:Ly}}=i.value,{left:zy,right:By}=$n(My);return{"--n-bezier":ie,"--n-count-text-color":Oy,"--n-color":Oe,"--n-font-size":$y,"--n-border-radius":dt,"--n-height":Ly,"--n-padding-left":zy,"--n-padding-right":By,"--n-text-color":I,"--n-caret-color":G,"--n-text-decoration-color":$e,"--n-border":Lt,"--n-border-disabled":bt,"--n-border-hover":nr,"--n-border-focus":ir,"--n-placeholder-color":Ot,"--n-placeholder-color-disabled":It,"--n-icon-size":li,"--n-line-height-textarea":no,"--n-color-disabled":cp,"--n-color-focus":Ls,"--n-text-color-disabled":et,"--n-box-shadow-focus":Ft,"--n-loading-color":Ry,"--n-caret-color-warning":me,"--n-color-focus-warning":Ea,"--n-box-shadow-focus-warning":Da,"--n-border-warning":Ta,"--n-border-focus-warning":si,"--n-border-hover-warning":gy,"--n-loading-color-warning":Ay,"--n-caret-color-error":de,"--n-color-focus-error":xy,"--n-box-shadow-focus-error":vy,"--n-border-error":by,"--n-border-focus-error":yy,"--n-border-hover-error":Cy,"--n-loading-color-error":Iy,"--n-clear-color":ky,"--n-clear-size":wy,"--n-clear-color-hover":Sy,"--n-clear-color-pressed":_y,"--n-icon-color":Ey,"--n-icon-color-hover":Py,"--n-icon-color-pressed":Ny,"--n-icon-color-disabled":Dy,"--n-suffix-text-color":Ty}}),xr=r?qt("input",F(()=>{let{value:T}=O;return T[0]}),kn,e):void 0;return Object.assign(Object.assign({},wn),{wrapperElRef:a,inputElRef:d,inputMirrorElRef:c,inputEl2Ref:u,textareaElRef:l,textareaMirrorElRef:s,textareaScrollbarInstRef:p,rtlEnabled:ai,uncontrolledValue:m,mergedValue:w,passwordVisible:fe,mergedPlaceholder:E,showPlaceholder1:z,showPlaceholder2:M,mergedFocus:se,isComposing:x,activated:k,showClearButton:ye,mergedSize:O,mergedDisabled:j,textDecorationStyle:ce,mergedClsPrefix:t,mergedBordered:o,mergedShowPasswordOn:Ie,placeholderStyle:ho,mergedStatus:S,textAreaScrollContainerWidth:we,handleTextAreaScroll:ii,handleCompositionStart:C,handleCompositionEnd:L,handleInput:q,handleInputBlur:K,handleInputFocus:ne,handleWrapperBlur:oe,handleWrapperFocus:H,handleMouseEnter:ae,handleMouseLeave:pe,handleMouseDown:V,handleChange:Y,handleClick:N,handleClear:$,handlePasswordToggleClick:_,handlePasswordToggleMousedown:W,handleWrapperKeyDown:re,handleTextAreaMirrorResize:Tt,getTextareaScrollContainer:()=>l.value,mergedTheme:i,cssVars:r?void 0:kn,themeClass:xr?.themeClass,onRender:xr?.onRender})},render(){let{mergedClsPrefix:e,mergedStatus:t,themeClass:o,onRender:r,$slots:n}=this;return r?.(),b("div",{ref:"wrapperElRef",class:[`${e}-input`,o,t&&`${e}-input--${t}-status`,{[`${e}-input--rtl`]:this.rtlEnabled,[`${e}-input--disabled`]:this.mergedDisabled,[`${e}-input--textarea`]:this.type==="textarea",[`${e}-input--resizable`]:this.resizable&&!this.autosize,[`${e}-input--autosize`]:this.autosize,[`${e}-input--round`]:this.round&&this.type!=="textarea",[`${e}-input--pair`]:this.pair,[`${e}-input--focus`]:this.mergedFocus,[`${e}-input--stateful`]:this.stateful}],style:this.cssVars,tabindex:!this.mergedDisabled&&this.passivelyActivated&&!this.activated?0:void 0,onFocus:this.handleWrapperFocus,onBlur:this.handleWrapperBlur,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd,onKeyup:this.onKeyup,onKeydown:this.handleWrapperKeyDown},b("div",{class:`${e}-input-wrapper`},Xo(n.prefix,i=>i&&b("div",{class:`${e}-input__prefix`},i)),this.type==="textarea"?b(is,{ref:"textareaScrollbarInstRef",class:`${e}-input__textarea`,container:this.getTextareaScrollContainer,triggerDisplayManually:!0,useUnifiedContainer:!0},{default:()=>{let{textAreaScrollContainerWidth:i}=this,a={width:this.autosize&&i&&`${i}px`};return b(St,null,b("textarea",Object.assign({},this.inputProps,{ref:"textareaElRef",class:`${e}-input__textarea-el`,autofocus:this.autofocus,rows:Number(this.rows),placeholder:this.placeholder,value:this.mergedValue,disabled:this.mergedDisabled,maxlength:this.maxlength,minlength:this.minlength,readonly:this.readonly,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,style:[this.textDecorationStyle[0],a],onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,onInput:this.handleInput,onChange:this.handleChange,onScroll:this.handleTextAreaScroll})),this.showPlaceholder1?b("div",{class:`${e}-input__placeholder`,style:[this.placeholderStyle,a],key:"placeholder"},this.mergedPlaceholder[0]):null,this.autosize?b(Po,{onResize:this.handleTextAreaMirrorResize},{default:()=>b("div",{ref:"textareaMirrorElRef",class:`${e}-input__textarea-mirror`,key:"mirror"})}):null)}}):b("div",{class:`${e}-input__input`},b("input",Object.assign({type:this.type==="password"&&this.mergedShowPasswordOn&&this.passwordVisible?"text":this.type},this.inputProps,{ref:"inputElRef",class:`${e}-input__input-el`,style:this.textDecorationStyle[0],tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[0],disabled:this.mergedDisabled,maxlength:this.maxlength,minlength:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[0]:this.mergedValue,readonly:this.readonly,autofocus:this.autofocus,size:this.attrSize,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,onInput:i=>this.handleInput(i,0),onChange:i=>this.handleChange(i,0)})),this.showPlaceholder1?b("div",{class:`${e}-input__placeholder`},b("span",null,this.mergedPlaceholder[0])):null,this.autosize?b("div",{class:`${e}-input__input-mirror`,key:"mirror",ref:"inputMirrorElRef"},"\xA0"):null),!this.pair&&Xo(n.suffix,i=>i||this.clearable||this.showCount||this.mergedShowPasswordOn||this.loading!==void 0?b("div",{class:`${e}-input__suffix`},[Xo(n.clear,a=>(this.clearable||a)&&b(yn,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{default:()=>a})),this.internalLoadingBeforeSuffix?null:i,this.loading!==void 0?b(ls,{clsPrefix:e,loading:this.loading,showArrow:!1,showClear:!1,style:this.cssVars}):null,this.internalLoadingBeforeSuffix?i:null,this.showCount&&this.type!=="textarea"?b(Id,null,{default:a=>{var l;return(l=n.count)===null||l===void 0?void 0:l.call(n,a)}}):null,this.mergedShowPasswordOn&&this.type==="password"?b(_o,{clsPrefix:e,class:`${e}-input__eye`,onMousedown:this.handlePasswordToggleMousedown,onClick:this.handlePasswordToggleClick},{default:()=>this.passwordVisible?Yo(n["password-visible-icon"],()=>[b(fd,null)]):Yo(n["password-invisible-icon"],()=>[b(pd,null)])}):null]):null)),this.pair?b("span",{class:`${e}-input__separator`},Yo(n.separator,()=>[this.separator])):null,this.pair?b("div",{class:`${e}-input-wrapper`},b("div",{class:`${e}-input__input`},b("input",{ref:"inputEl2Ref",type:this.type,class:`${e}-input__input-el`,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[1],disabled:this.mergedDisabled,maxlength:this.maxlength,minlength:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[1]:void 0,readonly:this.readonly,style:this.textDecorationStyle[1],onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,onInput:i=>this.handleInput(i,1),onChange:i=>this.handleChange(i,1)}),this.showPlaceholder2?b("div",{class:`${e}-input__placeholder`},b("span",null,this.mergedPlaceholder[1])):null),Xo(n.suffix,i=>(this.clearable||i)&&b("div",{class:`${e}-input__suffix`},[this.clearable&&b(yn,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{default:()=>{var a;return(a=n.clear)===null||a===void 0?void 0:a.call(n)}}),i]))):null,this.mergedBordered?b("div",{class:`${e}-input__border`}):null,this.mergedBordered?b("div",{class:`${e}-input__state-border`}):null,this.showCount&&this.type==="textarea"?b(Id,null,{default:i=>{var a;return(a=n.count)===null||a===void 0?void 0:a.call(n,i)}}):null)}});function Md(e){let{boxShadow2:t}=e;return{menuBoxShadow:t}}var hj={name:"AutoComplete",common:ge,peers:{InternalSelectMenu:vn,Input:po},self:Md};var PT={name:"AutoComplete",common:R,peers:{InternalSelectMenu:No,Input:xt},self:Md},$d=PT;var Yv=e=>{let{borderRadius:t,avatarColor:o,cardColor:r,fontSize:n,heightTiny:i,heightSmall:a,heightMedium:l,heightLarge:s,heightHuge:c,modalColor:d,popoverColor:u}=e;return{borderRadius:t,fontSize:n,border:`2px solid ${r}`,heightTiny:i,heightSmall:a,heightMedium:l,heightLarge:s,heightHuge:c,color:xe(r,o),colorModal:xe(d,o),colorPopover:xe(u,o)}};var NT={name:"Avatar",common:R,self:Yv},aa=NT;var RT={name:"AvatarGroup",common:R,peers:{Avatar:aa}},Ld=RT;var Xv={width:"44px",height:"44px",borderRadius:"22px",iconSize:"26px"};var IT={name:"BackTop",common:R,self(e){let{popoverColor:t,textColor2:o,primaryColorHover:r,primaryColorPressed:n}=e;return Object.assign(Object.assign({},Xv),{color:t,textColor:o,iconColor:o,iconColorHover:r,iconColorPressed:n,boxShadow:"0 2px 8px 0px rgba(0, 0, 0, .12)",boxShadowHover:"0 2px 12px 0px rgba(0, 0, 0, .18)",boxShadowPressed:"0 2px 12px 0px rgba(0, 0, 0, .18)"})}},zd=IT;var AT={name:"Badge",common:R,self(e){let{errorColorSuppl:t,infoColorSuppl:o,successColorSuppl:r,warningColorSuppl:n,fontFamily:i}=e;return{color:t,colorInfo:o,colorSuccess:r,colorError:t,colorWarning:n,fontSize:"12px",fontFamily:i}}},Bd=AT;var Zv={fontWeightActive:"400"};var Qv=e=>{let{fontSize:t,textColor3:o,primaryColorHover:r,primaryColorPressed:n,textColor2:i}=e;return Object.assign(Object.assign({},Zv),{fontSize:t,itemTextColor:o,itemTextColorHover:r,itemTextColorPressed:n,itemTextColorActive:i,separatorColor:o})};var MT={name:"Breadcrumb",common:R,self:Qv},Hd=MT;function Kr(e){return xe(e,[255,255,255,.16])}function la(e){return xe(e,[0,0,0,.12])}var Jv={paddingTiny:"0 6px",paddingSmall:"0 10px",paddingMedium:"0 14px",paddingLarge:"0 18px",paddingRoundTiny:"0 10px",paddingRoundSmall:"0 14px",paddingRoundMedium:"0 18px",paddingRoundLarge:"0 22px",iconMarginTiny:"6px",iconMarginSmall:"6px",iconMarginMedium:"6px",iconMarginLarge:"6px",iconSizeTiny:"14px",iconSizeSmall:"18px",iconSizeMedium:"18px",iconSizeLarge:"20px",rippleDuration:".6s"};var Vd=e=>{let{heightTiny:t,heightSmall:o,heightMedium:r,heightLarge:n,borderRadius:i,fontSizeTiny:a,fontSizeSmall:l,fontSizeMedium:s,fontSizeLarge:c,opacityDisabled:d,textColor2:u,textColor3:p,primaryColorHover:f,primaryColorPressed:m,borderColor:y,primaryColor:w,baseColor:g,infoColor:O,infoColorHover:j,infoColorPressed:S,successColor:v,successColorHover:D,successColorPressed:x,warningColor:k,warningColorHover:A,warningColorPressed:E,errorColor:z,errorColorHover:M,errorColorPressed:se,fontWeight:ye,buttonColor2:Ie,buttonColor2Hover:fe,buttonColor2Pressed:ce,fontWeightStrong:we}=e;return Object.assign(Object.assign({},Jv),{heightTiny:t,heightSmall:o,heightMedium:r,heightLarge:n,borderRadiusTiny:i,borderRadiusSmall:i,borderRadiusMedium:i,borderRadiusLarge:i,fontSizeTiny:a,fontSizeSmall:l,fontSizeMedium:s,fontSizeLarge:c,opacityDisabled:d,colorOpacitySecondary:"0.16",colorOpacitySecondaryHover:"0.22",colorOpacitySecondaryPressed:"0.28",colorSecondary:Ie,colorSecondaryHover:fe,colorSecondaryPressed:ce,colorTertiary:Ie,colorTertiaryHover:fe,colorTertiaryPressed:ce,colorQuaternary:"#0000",colorQuaternaryHover:fe,colorQuaternaryPressed:ce,color:"#0000",colorHover:"#0000",colorPressed:"#0000",colorFocus:"#0000",colorDisabled:"#0000",textColor:u,textColorTertiary:p,textColorHover:f,textColorPressed:m,textColorFocus:f,textColorDisabled:u,textColorText:u,textColorTextHover:f,textColorTextPressed:m,textColorTextFocus:f,textColorTextDisabled:u,textColorGhost:u,textColorGhostHover:f,textColorGhostPressed:m,textColorGhostFocus:f,textColorGhostDisabled:u,border:`1px solid ${y}`,borderHover:`1px solid ${f}`,borderPressed:`1px solid ${m}`,borderFocus:`1px solid ${f}`,borderDisabled:`1px solid ${y}`,rippleColor:w,colorPrimary:w,colorHoverPrimary:f,colorPressedPrimary:m,colorFocusPrimary:f,colorDisabledPrimary:w,textColorPrimary:g,textColorHoverPrimary:g,textColorPressedPrimary:g,textColorFocusPrimary:g,textColorDisabledPrimary:g,textColorTextPrimary:w,textColorTextHoverPrimary:f,textColorTextPressedPrimary:m,textColorTextFocusPrimary:f,textColorTextDisabledPrimary:u,textColorGhostPrimary:w,textColorGhostHoverPrimary:f,textColorGhostPressedPrimary:m,textColorGhostFocusPrimary:f,textColorGhostDisabledPrimary:w,borderPrimary:`1px solid ${w}`,borderHoverPrimary:`1px solid ${f}`,borderPressedPrimary:`1px solid ${m}`,borderFocusPrimary:`1px solid ${f}`,borderDisabledPrimary:`1px solid ${w}`,rippleColorPrimary:w,colorInfo:O,colorHoverInfo:j,colorPressedInfo:S,colorFocusInfo:j,colorDisabledInfo:O,textColorInfo:g,textColorHoverInfo:g,textColorPressedInfo:g,textColorFocusInfo:g,textColorDisabledInfo:g,textColorTextInfo:O,textColorTextHoverInfo:j,textColorTextPressedInfo:S,textColorTextFocusInfo:j,textColorTextDisabledInfo:u,textColorGhostInfo:O,textColorGhostHoverInfo:j,textColorGhostPressedInfo:S,textColorGhostFocusInfo:j,textColorGhostDisabledInfo:O,borderInfo:`1px solid ${O}`,borderHoverInfo:`1px solid ${j}`,borderPressedInfo:`1px solid ${S}`,borderFocusInfo:`1px solid ${j}`,borderDisabledInfo:`1px solid ${O}`,rippleColorInfo:O,colorSuccess:v,colorHoverSuccess:D,colorPressedSuccess:x,colorFocusSuccess:D,colorDisabledSuccess:v,textColorSuccess:g,textColorHoverSuccess:g,textColorPressedSuccess:g,textColorFocusSuccess:g,textColorDisabledSuccess:g,textColorTextSuccess:v,textColorTextHoverSuccess:D,textColorTextPressedSuccess:x,textColorTextFocusSuccess:D,textColorTextDisabledSuccess:u,textColorGhostSuccess:v,textColorGhostHoverSuccess:D,textColorGhostPressedSuccess:x,textColorGhostFocusSuccess:D,textColorGhostDisabledSuccess:v,borderSuccess:`1px solid ${v}`,borderHoverSuccess:`1px solid ${D}`,borderPressedSuccess:`1px solid ${x}`,borderFocusSuccess:`1px solid ${D}`,borderDisabledSuccess:`1px solid ${v}`,rippleColorSuccess:v,colorWarning:k,colorHoverWarning:A,colorPressedWarning:E,colorFocusWarning:A,colorDisabledWarning:k,textColorWarning:g,textColorHoverWarning:g,textColorPressedWarning:g,textColorFocusWarning:g,textColorDisabledWarning:g,textColorTextWarning:k,textColorTextHoverWarning:A,textColorTextPressedWarning:E,textColorTextFocusWarning:A,textColorTextDisabledWarning:u,textColorGhostWarning:k,textColorGhostHoverWarning:A,textColorGhostPressedWarning:E,textColorGhostFocusWarning:A,textColorGhostDisabledWarning:k,borderWarning:`1px solid ${k}`,borderHoverWarning:`1px solid ${A}`,borderPressedWarning:`1px solid ${E}`,borderFocusWarning:`1px solid ${A}`,borderDisabledWarning:`1px solid ${k}`,rippleColorWarning:k,colorError:z,colorHoverError:M,colorPressedError:se,colorFocusError:M,colorDisabledError:z,textColorError:g,textColorHoverError:g,textColorPressedError:g,textColorFocusError:g,textColorDisabledError:g,textColorTextError:z,textColorTextHoverError:M,textColorTextPressedError:se,textColorTextFocusError:M,textColorTextDisabledError:u,textColorGhostError:z,textColorGhostHoverError:M,textColorGhostPressedError:se,textColorGhostFocusError:M,textColorGhostDisabledError:z,borderError:`1px solid ${z}`,borderHoverError:`1px solid ${M}`,borderPressedError:`1px solid ${se}`,borderFocusError:`1px solid ${M}`,borderDisabledError:`1px solid ${z}`,rippleColorError:z,waveOpacity:"0.6",fontWeight:ye,fontWeightStrong:we})},$T={name:"Button",common:ge,self:Vd},Nt=$T;var LT={name:"Button",common:R,self(e){let t=Vd(e);return t.waveOpacity="0.8",t.colorOpacitySecondary="0.16",t.colorOpacitySecondaryHover="0.2",t.colorOpacitySecondaryPressed="0.12",t}},lt=LT;var eb="n-button-group";var tb=J([U("button",` margin: 0; font-weight: var(--n-font-weight); line-height: 1; @@ -570,7 +570,7 @@ ${o} background-color .3s var(--n-bezier), opacity .3s var(--n-bezier), border-color .3s var(--n-bezier); - `,[Te("color",[oe("border",{borderColor:"var(--n-border-color)"}),Te("disabled",[oe("border",{borderColor:"var(--n-border-color-disabled)"})]),ct("disabled",[J("&:focus",[oe("state-border",{borderColor:"var(--n-border-color-focus)"})]),J("&:hover",[oe("state-border",{borderColor:"var(--n-border-color-hover)"})]),J("&:active",[oe("state-border",{borderColor:"var(--n-border-color-pressed)"})]),Te("pressed",[oe("state-border",{borderColor:"var(--n-border-color-pressed)"})])])]),Te("disabled",{backgroundColor:"var(--n-color-disabled)",color:"var(--n-text-color-disabled)"},[oe("border",{border:"var(--n-border-disabled)"})]),ct("disabled",[J("&:focus",{backgroundColor:"var(--n-color-focus)",color:"var(--n-text-color-focus)"},[oe("state-border",{border:"var(--n-border-focus)"})]),J("&:hover",{backgroundColor:"var(--n-color-hover)",color:"var(--n-text-color-hover)"},[oe("state-border",{border:"var(--n-border-hover)"})]),J("&:active",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[oe("state-border",{border:"var(--n-border-pressed)"})]),Te("pressed",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[oe("state-border",{border:"var(--n-border-pressed)"})])]),Te("loading",{"pointer-events":"none"}),$("base-wave",` + `,[be("color",[ee("border",{borderColor:"var(--n-border-color)"}),be("disabled",[ee("border",{borderColor:"var(--n-border-color-disabled)"})]),oo("disabled",[J("&:focus",[ee("state-border",{borderColor:"var(--n-border-color-focus)"})]),J("&:hover",[ee("state-border",{borderColor:"var(--n-border-color-hover)"})]),J("&:active",[ee("state-border",{borderColor:"var(--n-border-color-pressed)"})]),be("pressed",[ee("state-border",{borderColor:"var(--n-border-color-pressed)"})])])]),be("disabled",{backgroundColor:"var(--n-color-disabled)",color:"var(--n-text-color-disabled)"},[ee("border",{border:"var(--n-border-disabled)"})]),oo("disabled",[J("&:focus",{backgroundColor:"var(--n-color-focus)",color:"var(--n-text-color-focus)"},[ee("state-border",{border:"var(--n-border-focus)"})]),J("&:hover",{backgroundColor:"var(--n-color-hover)",color:"var(--n-text-color-hover)"},[ee("state-border",{border:"var(--n-border-hover)"})]),J("&:active",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[ee("state-border",{border:"var(--n-border-pressed)"})]),be("pressed",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[ee("state-border",{border:"var(--n-border-pressed)"})])]),be("loading",{"pointer-events":"none"}),U("base-wave",` pointer-events: none; top: 0; right: 0; @@ -579,7 +579,7 @@ ${o} animation-iteration-count: 1; animation-duration: var(--n-ripple-duration); animation-timing-function: var(--n-bezier-ease-out), var(--n-bezier-ease-out); - `,[Te("active",{zIndex:1,animationName:"button-wave-spread, button-wave-opacity"})]),typeof window!="undefined"&&"MozBoxSizing"in document.createElement("div").style?J("&::moz-focus-inner",{border:0}):null,oe("border, state-border",` + `,[be("active",{zIndex:1,animationName:"button-wave-spread, button-wave-opacity"})]),typeof window<"u"&&"MozBoxSizing"in document.createElement("div").style?J("&::moz-focus-inner",{border:0}):null,ee("border, state-border",` position: absolute; left: 0; top: 0; @@ -588,7 +588,7 @@ ${o} border-radius: inherit; transition: border-color .3s var(--n-bezier); pointer-events: none; - `),oe("border",{border:"var(--n-border)"}),oe("state-border",{border:"var(--n-border)",borderColor:"#0000",zIndex:1}),oe("icon",` + `),ee("border",{border:"var(--n-border)"}),ee("state-border",{border:"var(--n-border)",borderColor:"#0000",zIndex:1}),ee("icon",` margin: var(--n-icon-margin); margin-left: 0; height: var(--n-icon-size); @@ -597,7 +597,7 @@ ${o} font-size: var(--n-icon-size); position: relative; flex-shrink: 0; - `,[$("icon-slot",` + `,[U("icon-slot",` height: var(--n-icon-size); width: var(--n-icon-size); position: absolute; @@ -605,14 +605,14 @@ ${o} top: 50%; transform: translateY(-50%); display: flex; - `,[Rt({top:"50%",originalTransform:"translateY(-50%)"})]),bg()]),oe("content",` + `,[co({top:"50%",originalTransform:"translateY(-50%)"})]),jv()]),ee("content",` display: flex; align-items: center; flex-wrap: nowrap; - `,[J("~",[oe("icon",{margin:"var(--n-icon-margin)",marginRight:0})])]),Te("block",` + `,[J("~",[ee("icon",{margin:"var(--n-icon-margin)",marginRight:0})])]),be("block",` display: flex; width: 100%; - `),Te("dashed",[oe("border, state-border",{borderStyle:"dashed !important"})]),Te("disabled",{cursor:"not-allowed",opacity:"var(--n-opacity-disabled)"})]),J("@keyframes button-wave-spread",{from:{boxShadow:"0 0 0.5px 0 var(--n-ripple-color)"},to:{boxShadow:"0 0 0.5px 4.5px var(--n-ripple-color)"}}),J("@keyframes button-wave-opacity",{from:{opacity:"var(--n-wave-opacity)"},to:{opacity:0}})]);var JA=Object.assign(Object.assign({},Mo.props),{color:String,textColor:String,text:Boolean,block:Boolean,loading:Boolean,disabled:Boolean,circle:Boolean,size:String,ghost:Boolean,round:Boolean,secondary:Boolean,tertiary:Boolean,quaternary:Boolean,strong:Boolean,focusable:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},tag:{type:String,default:"button"},type:{type:String,default:"default"},dashed:Boolean,iconPlacement:{type:String,default:"left"},attrType:{type:String,default:"button"},bordered:{type:Boolean,default:!0},onClick:[Function,Array],internalAutoFocus:Boolean}),eD=ae({name:"Button",props:JA,setup(e){let o=Z(null),t=Z(null),r=Z(!1);so(()=>{let{value:F}=o;F&&!e.disabled&&e.focusable&&e.internalAutoFocus&&F.focus({preventScroll:!0})});let a=po(()=>!e.quaternary&&!e.tertiary&&!e.secondary&&!e.text&&(!e.color||e.ghost||e.dashed)&&e.bordered),l=Ce(Ng,{}),{mergedSizeRef:n}=Pt({},{defaultSize:"medium",mergedSize:F=>{let{size:g}=e;if(g)return g;let{size:k}=l;if(k)return k;let{mergedSize:S}=F||{};return S?S.value:"medium"}}),i=W(()=>e.focusable&&!e.disabled),d=F=>{var g;F.preventDefault(),!e.disabled&&i.value&&((g=o.value)===null||g===void 0||g.focus({preventScroll:!0}))},s=F=>{var g;if(!e.disabled&&!e.loading){let{onClick:k}=e;k&&be(k,F),e.text||(g=t.value)===null||g===void 0||g.play()}},u=F=>{switch(F.code){case"Enter":case"NumpadEnter":if(!e.keyboard)return;r.value=!1}},f=F=>{switch(F.code){case"Enter":case"NumpadEnter":if(!e.keyboard||e.loading){F.preventDefault();return}r.value=!0}},m=()=>{r.value=!1},{inlineThemeDisabled:p,mergedClsPrefixRef:c,mergedRtlRef:R}=Ko(e),y=Mo("Button","-button",_g,zo,e,c),h=Fa("Button",R,c),A=W(()=>{let F=y.value,{common:{cubicBezierEaseInOut:g,cubicBezierEaseOut:k},self:S}=F,{rippleDuration:b,opacityDisabled:B,fontWeight:v,fontWeightStrong:_}=S,E=n.value,{dashed:se,type:Fe,ghost:Ee,text:pe,color:fe,round:Re,circle:eo,textColor:oo,secondary:Qe,tertiary:fo,quaternary:no,strong:Bo}=e,Eo={"font-weight":Bo?_:v},Ke={"--n-color":"initial","--n-color-hover":"initial","--n-color-pressed":"initial","--n-color-focus":"initial","--n-color-disabled":"initial","--n-ripple-color":"initial","--n-text-color":"initial","--n-text-color-hover":"initial","--n-text-color-pressed":"initial","--n-text-color-focus":"initial","--n-text-color-disabled":"initial"},Ve=Fe==="tertiary",ao=Fe==="default",Ae=Ve?"default":Fe;if(pe){let V=oo||fe,Y=V||S[Be("textColorText",Ae)];Ke={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":"#0000","--n-text-color":Y,"--n-text-color-hover":V?Xr(V):S[Be("textColorTextHover",Ae)],"--n-text-color-pressed":V?nn(V):S[Be("textColorTextPressed",Ae)],"--n-text-color-focus":V?Xr(V):S[Be("textColorTextHover",Ae)],"--n-text-color-disabled":V||S[Be("textColorTextDisabled",Ae)]}}else if(Ee||se){let V=oo||fe;Ke={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":fe||S[Be("rippleColor",Ae)],"--n-text-color":V||S[Be("textColorGhost",Ae)],"--n-text-color-hover":V?Xr(V):S[Be("textColorGhostHover",Ae)],"--n-text-color-pressed":V?nn(V):S[Be("textColorGhostPressed",Ae)],"--n-text-color-focus":V?Xr(V):S[Be("textColorGhostHover",Ae)],"--n-text-color-disabled":V||S[Be("textColorGhostDisabled",Ae)]}}else if(Qe){let V=ao?S.textColor:Ve?S.textColorTertiary:S[Be("color",Ae)],Y=fe||V,G=Fe!=="default"&&Fe!=="tertiary";Ke={"--n-color":G?te(Y,{alpha:Number(S.colorOpacitySecondary)}):S.colorSecondary,"--n-color-hover":G?te(Y,{alpha:Number(S.colorOpacitySecondaryHover)}):S.colorSecondaryHover,"--n-color-pressed":G?te(Y,{alpha:Number(S.colorOpacitySecondaryPressed)}):S.colorSecondaryPressed,"--n-color-focus":G?te(Y,{alpha:Number(S.colorOpacitySecondaryHover)}):S.colorSecondaryHover,"--n-color-disabled":S.colorSecondary,"--n-ripple-color":"#0000","--n-text-color":Y,"--n-text-color-hover":Y,"--n-text-color-pressed":Y,"--n-text-color-focus":Y,"--n-text-color-disabled":Y}}else if(fo||no){let V=ao?S.textColor:Ve?S.textColorTertiary:S[Be("color",Ae)],Y=fe||V;fo?(Ke["--n-color"]=S.colorTertiary,Ke["--n-color-hover"]=S.colorTertiaryHover,Ke["--n-color-pressed"]=S.colorTertiaryPressed,Ke["--n-color-focus"]=S.colorSecondaryHover,Ke["--n-color-disabled"]=S.colorTertiary):(Ke["--n-color"]=S.colorQuaternary,Ke["--n-color-hover"]=S.colorQuaternaryHover,Ke["--n-color-pressed"]=S.colorQuaternaryPressed,Ke["--n-color-focus"]=S.colorQuaternaryHover,Ke["--n-color-disabled"]=S.colorQuaternary),Ke["--n-ripple-color"]="#0000",Ke["--n-text-color"]=Y,Ke["--n-text-color-hover"]=Y,Ke["--n-text-color-pressed"]=Y,Ke["--n-text-color-focus"]=Y,Ke["--n-text-color-disabled"]=Y}else Ke={"--n-color":fe||S[Be("color",Ae)],"--n-color-hover":fe?Xr(fe):S[Be("colorHover",Ae)],"--n-color-pressed":fe?nn(fe):S[Be("colorPressed",Ae)],"--n-color-focus":fe?Xr(fe):S[Be("colorFocus",Ae)],"--n-color-disabled":fe||S[Be("colorDisabled",Ae)],"--n-ripple-color":fe||S[Be("rippleColor",Ae)],"--n-text-color":oo||(fe?S.textColorPrimary:Ve?S.textColorTertiary:S[Be("textColor",Ae)]),"--n-text-color-hover":oo||(fe?S.textColorHoverPrimary:S[Be("textColorHover",Ae)]),"--n-text-color-pressed":oo||(fe?S.textColorPressedPrimary:S[Be("textColorPressed",Ae)]),"--n-text-color-focus":oo||(fe?S.textColorFocusPrimary:S[Be("textColorFocus",Ae)]),"--n-text-color-disabled":oo||(fe?S.textColorDisabledPrimary:S[Be("textColorDisabled",Ae)])};let mo={"--n-border":"initial","--n-border-hover":"initial","--n-border-pressed":"initial","--n-border-focus":"initial","--n-border-disabled":"initial"};pe?mo={"--n-border":"none","--n-border-hover":"none","--n-border-pressed":"none","--n-border-focus":"none","--n-border-disabled":"none"}:mo={"--n-border":S[Be("border",Ae)],"--n-border-hover":S[Be("borderHover",Ae)],"--n-border-pressed":S[Be("borderPressed",Ae)],"--n-border-focus":S[Be("borderFocus",Ae)],"--n-border-disabled":S[Be("borderDisabled",Ae)]};let{[Be("height",E)]:Lo,[Be("fontSize",E)]:bo,[Be("padding",E)]:x,[Be("paddingRound",E)]:O,[Be("iconSize",E)]:N,[Be("borderRadius",E)]:U,[Be("iconMargin",E)]:K,waveOpacity:le}=S,ee={"--n-width":eo&&!pe?Lo:"initial","--n-height":pe?"initial":Lo,"--n-font-size":bo,"--n-padding":eo||pe?"initial":Re?O:x,"--n-icon-size":N,"--n-icon-margin":K,"--n-border-radius":pe?"initial":eo||Re?Lo:U};return Object.assign(Object.assign(Object.assign(Object.assign({"--n-bezier":g,"--n-bezier-ease-out":k,"--n-ripple-duration":b,"--n-opacity-disabled":B,"--n-wave-opacity":le},Eo),Ke),mo),ee)}),z=p?at("button",W(()=>{let F="",{dashed:g,type:k,ghost:S,text:b,color:B,round:v,circle:_,textColor:E,secondary:se,tertiary:Fe,quaternary:Ee,strong:pe}=e;g&&(F+="a"),S&&(F+="b"),b&&(F+="c"),v&&(F+="d"),_&&(F+="e"),se&&(F+="f"),Fe&&(F+="g"),Ee&&(F+="h"),pe&&(F+="i"),B&&(F+="j"+Ml(B)),E&&(F+="k"+Ml(E));let{value:fe}=n;return F+="l"+fe[0],F+="m"+k[0],F}),A,e):void 0;return{selfElRef:o,waveElRef:t,mergedClsPrefix:c,mergedFocusable:i,mergedSize:n,showBorder:a,enterPressed:r,rtlEnabled:h,handleMousedown:d,handleKeydown:f,handleBlur:m,handleKeyup:u,handleClick:s,customColorCssVars:W(()=>{let{color:F}=e;if(!F)return null;let g=Xr(F);return{"--n-border-color":F,"--n-border-color-hover":g,"--n-border-color-pressed":nn(F),"--n-border-color-focus":g,"--n-border-color-disabled":F}}),cssVars:p?void 0:A,themeClass:z==null?void 0:z.themeClass,onRender:z==null?void 0:z.onRender}},render(){let{mergedClsPrefix:e,tag:o,onRender:t}=this;t==null||t();let r=tr(this.$slots.default,a=>a&&w("span",{class:`${e}-button__content`},a));return w(o,{ref:"selfElRef",class:[this.themeClass,`${e}-button`,`${e}-button--${this.type}-type`,`${e}-button--${this.mergedSize}-type`,this.rtlEnabled&&`${e}-button--rtl`,this.disabled&&`${e}-button--disabled`,this.block&&`${e}-button--block`,this.enterPressed&&`${e}-button--pressed`,!this.text&&this.dashed&&`${e}-button--dashed`,this.color&&`${e}-button--color`,this.secondary&&`${e}-button--secondary`,this.loading&&`${e}-button--loading`,this.ghost&&`${e}-button--ghost`],tabindex:this.mergedFocusable?0:-1,type:this.attrType,style:this.cssVars,disabled:this.disabled,onClick:this.handleClick,onBlur:this.handleBlur,onMousedown:this.handleMousedown,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},this.iconPlacement==="right"&&r,w(tl,{width:!0},{default:()=>tr(this.$slots.icon,a=>(this.loading||a)&&w("span",{class:`${e}-button__icon`,style:{margin:ui(this.$slots.default)?"0":""}},w(Et,null,{default:()=>this.loading?w(Zr,{clsPrefix:e,key:"loading",class:`${e}-icon-slot`,strokeWidth:20}):w("div",{key:"icon",class:`${e}-icon-slot`,role:"none"},a)})))}),this.iconPlacement==="left"&&r,this.text?null:w(ld,{ref:"waveElRef",clsPrefix:e}),this.showBorder?w("div",{"aria-hidden":!0,class:`${e}-button__border`,style:this.customColorCssVars}):null,this.showBorder?w("div",{"aria-hidden":!0,class:`${e}-button__state-border`,style:this.customColorCssVars}):null)}}),bu=eD;var Ig={titleFontSize:"22px"};var yu=e=>{let{borderRadius:o,fontSize:t,lineHeight:r,textColor2:a,textColor1:l,textColorDisabled:n,dividerColor:i,fontWeightStrong:d,primaryColor:s,baseColor:u,hoverColor:f,cardColor:m,modalColor:p,popoverColor:c}=e;return Object.assign(Object.assign({},Ig),{borderRadius:o,borderColor:ge(m,i),borderColorModal:ge(p,i),borderColorPopover:ge(c,i),textColor:a,titleFontWeight:d,titleTextColor:l,dayTextColor:n,fontSize:t,lineHeight:r,dateColorCurrent:s,dateTextColorCurrent:u,cellColorHover:ge(m,f),cellColorHoverModal:ge(p,f),cellColorHoverPopover:ge(c,f),cellColor:m,cellColorModal:p,cellColorPopover:c,barColor:s})},gK=Ie({name:"Calendar",common:Se,peers:{Button:zo},self:yu});var oD={name:"Calendar",common:M,peers:{Button:wo},self:yu},vu=oD;var ku=e=>{let{fontSize:o,boxShadow2:t,popoverColor:r,textColor2:a,borderRadius:l,borderColor:n,heightSmall:i,heightMedium:d,heightLarge:s,fontSizeSmall:u,fontSizeMedium:f,fontSizeLarge:m,dividerColor:p}=e;return{panelFontSize:o,boxShadow:t,color:r,textColor:a,borderRadius:l,border:`1px solid ${n}`,heightSmall:i,heightMedium:d,heightLarge:s,fontSizeSmall:u,fontSizeMedium:f,fontSizeLarge:m,dividerColor:p}},DK=Ie({name:"ColorPicker",common:Se,peers:{Input:Ct,Button:zo},self:ku});var tD={name:"ColorPicker",common:M,peers:{Input:Ao,Button:wo},self:ku},Au=tD;var Hg={paddingSmall:"12px 16px 12px",paddingMedium:"19px 24px 20px",paddingLarge:"23px 32px 24px",paddingHuge:"27px 40px 28px",titleFontSizeSmall:"16px",titleFontSizeMedium:"18px",titleFontSizeLarge:"18px",titleFontSizeHuge:"18px",closeSize:"18px"};var Du=e=>{let{primaryColor:o,borderRadius:t,lineHeight:r,fontSize:a,cardColor:l,textColor2:n,textColor1:i,dividerColor:d,fontWeightStrong:s,closeColor:u,closeColorHover:f,closeColorPressed:m,modalColor:p,boxShadow1:c,popoverColor:R,actionColor:y}=e;return Object.assign(Object.assign({},Hg),{lineHeight:r,color:l,colorModal:p,colorPopover:R,colorTarget:o,colorEmbedded:y,textColor:n,titleTextColor:i,borderColor:d,actionColor:y,titleFontWeight:s,closeColor:u,closeColorHover:f,closeColorPressed:m,fontSizeSmall:a,fontSizeMedium:a,fontSizeLarge:a,fontSizeHuge:a,boxShadow:c,borderRadius:t})},rD={name:"Card",common:Se,self:Du},Pu=rD;var aD={name:"Card",common:M,self(e){let o=Du(e),{cardColor:t}=e;return o.colorEmbedded=t,o}},dn=aD;var Vg=e=>({dotSize:"8px",dotColor:"rgba(255, 255, 255, .3)",dotColorActive:"rgba(255, 255, 255, 1)",dotColorFocus:"rgba(255, 255, 255, .5)",dotLineWidth:"16px",dotLineWidthActive:"24px",arrowColor:"#eee"});var lD={name:"Carousel",common:M,self:Vg},Mu=lD;var Wg={sizeSmall:"14px",sizeMedium:"16px",sizeLarge:"18px",labelPadding:"0 8px"};var Bu=e=>{let{baseColor:o,inputColorDisabled:t,cardColor:r,modalColor:a,popoverColor:l,textColorDisabled:n,borderColor:i,primaryColor:d,textColor2:s,fontSizeSmall:u,fontSizeMedium:f,fontSizeLarge:m,borderRadiusSmall:p,lineHeight:c}=e;return Object.assign(Object.assign({},Wg),{labelLineHeight:c,fontSizeSmall:u,fontSizeMedium:f,fontSizeLarge:m,borderRadius:p,color:o,colorChecked:d,colorDisabled:t,colorDisabledChecked:t,colorTableHeader:r,colorTableHeaderModal:a,colorTableHeaderPopover:l,checkMarkColor:o,checkMarkColorDisabled:n,checkMarkColorDisabledChecked:n,border:`1px solid ${i}`,borderDisabled:`1px solid ${i}`,borderDisabledChecked:`1px solid ${i}`,borderChecked:`1px solid ${d}`,borderFocus:`1px solid ${d}`,boxShadowFocus:`0 0 0 2px ${te(d,{alpha:.3})}`,textColor:s,textColorDisabled:n})},nD={name:"Checkbox",common:Se,self:Bu},Cr=nD;var iD={name:"Checkbox",common:M,self(e){let{cardColor:o}=e,t=Bu(e);return t.color="#0000",t.checkMarkColor=o,t}},jt=iD;var Eu=e=>{let{borderRadius:o,boxShadow2:t,popoverColor:r,textColor2:a,textColor3:l,primaryColor:n,textColorDisabled:i,dividerColor:d,hoverColor:s,fontSizeMedium:u,heightMedium:f}=e;return{menuBorderRadius:o,menuColor:r,menuBoxShadow:t,menuDividerColor:d,menuHeight:"calc(var(--n-option-height) * 6.6)",optionArrowColor:l,optionHeight:f,optionFontSize:u,optionColorHover:s,optionTextColor:a,optionTextColorActive:n,optionTextColorDisabled:i,optionCheckMarkColor:n,loadingColor:n,columnWidth:"180px"}},w6=Ie({name:"Cascader",common:Se,peers:{InternalSelectMenu:Oa,InternalSelection:rn,Scrollbar:Io,Checkbox:Cr,Empty:Ot},self:Eu});var dD={name:"Cascader",common:M,peers:{InternalSelectMenu:Wt,InternalSelection:ba,Scrollbar:go,Checkbox:jt,Empty:Ot},self:Eu},Lu=dD;var zg=w("svg",{viewBox:"0 0 64 64",class:"check-icon"},w("path",{d:"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51 c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92 C54.13,15.78,51.93,15.55,50.42,16.76z"}));var jg=w("svg",{viewBox:"0 0 100 100",class:"line-icon"},w("path",{d:"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z"}));var Nu=So("n-checkbox-group"),sD={min:Number,max:Number,size:String,value:Array,defaultValue:{type:Array,default:null},disabled:{type:Boolean,default:void 0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:{type:[Function,Array],validator:()=>!0,default:void 0}},V6=ae({name:"CheckboxGroup",props:sD,setup(e){let{mergedClsPrefixRef:o}=Ko(e),t=Pt(e),{mergedSizeRef:r,mergedDisabledRef:a}=t,l=Z(e.defaultValue),n=W(()=>e.value),i=dt(n,l),d=W(()=>{var f;return((f=i.value)===null||f===void 0?void 0:f.length)||0}),s=W(()=>Array.isArray(i.value)?new Set(i.value):new Set);function u(f,m){let{nTriggerFormInput:p,nTriggerFormChange:c}=t,{onChange:R,"onUpdate:value":y,onUpdateValue:h}=e;if(Array.isArray(i.value)){let A=Array.from(i.value),z=A.findIndex(F=>F===m);f?~z||(A.push(m),h&&be(h,A),y&&be(y,A),p(),c(),l.value=A,R&&be(R,A)):~z&&(A.splice(z,1),h&&be(h,A),y&&be(y,A),R&&be(R,A),l.value=A,p(),c())}else f?(h&&be(h,[m]),y&&be(y,[m]),R&&be(R,[m]),l.value=[m],p(),c()):(h&&be(h,[]),y&&be(y,[]),R&&be(R,[]),l.value=[],p(),c())}return nt(Nu,{checkedCountRef:d,maxRef:_e(e,"max"),minRef:_e(e,"min"),valueSetRef:s,disabledRef:a,mergedSizeRef:r,toggleCheckbox:u}),{mergedClsPrefix:o}},render(){return w("div",{class:`${this.mergedClsPrefix}-checkbox-group`,role:"group"},this.$slots)}});var $g=J([$("checkbox",` + `),be("dashed",[ee("border, state-border",{borderStyle:"dashed !important"})]),be("disabled",{cursor:"not-allowed",opacity:"var(--n-opacity-disabled)"})]),J("@keyframes button-wave-spread",{from:{boxShadow:"0 0 0.5px 0 var(--n-ripple-color)"},to:{boxShadow:"0 0 0.5px 4.5px var(--n-ripple-color)"}}),J("@keyframes button-wave-opacity",{from:{opacity:"var(--n-wave-opacity)"},to:{opacity:0}})]);var zT=Object.assign(Object.assign({},Ct.props),{color:String,textColor:String,text:Boolean,block:Boolean,loading:Boolean,disabled:Boolean,circle:Boolean,size:String,ghost:Boolean,round:Boolean,secondary:Boolean,tertiary:Boolean,quaternary:Boolean,strong:Boolean,focusable:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},tag:{type:String,default:"button"},type:{type:String,default:"default"},dashed:Boolean,iconPlacement:{type:String,default:"left"},attrType:{type:String,default:"button"},bordered:{type:Boolean,default:!0},onClick:[Function,Array],internalAutoFocus:Boolean}),BT=ue({name:"Button",props:zT,setup(e){let t=X(null),o=X(null),r=X(!1);tt(()=>{let{value:S}=t;S&&!e.disabled&&e.focusable&&e.internalAutoFocus&&S.focus({preventScroll:!0})});let n=Qe(()=>!e.quaternary&&!e.tertiary&&!e.secondary&&!e.text&&(!e.color||e.ghost||e.dashed)&&e.bordered),i=ke(eb,{}),{mergedSizeRef:a}=Co({},{defaultSize:"medium",mergedSize:S=>{let{size:v}=e;if(v)return v;let{size:D}=i;if(D)return D;let{mergedSize:x}=S||{};return x?x.value:"medium"}}),l=F(()=>e.focusable&&!e.disabled),s=S=>{var v;S.preventDefault(),!e.disabled&&l.value&&((v=t.value)===null||v===void 0||v.focus({preventScroll:!0}))},c=S=>{var v;if(!e.disabled&&!e.loading){let{onClick:D}=e;D&&Se(D,S),e.text||(v=o.value)===null||v===void 0||v.play()}},d=S=>{switch(S.code){case"Enter":case"NumpadEnter":if(!e.keyboard)return;r.value=!1}},u=S=>{switch(S.code){case"Enter":case"NumpadEnter":if(!e.keyboard||e.loading){S.preventDefault();return}r.value=!0}},p=()=>{r.value=!1},{inlineThemeDisabled:f,mergedClsPrefixRef:m,mergedRtlRef:y}=Mt(e),w=Ct("Button","-button",tb,Nt,e,m),g=bn("Button",y,m),O=F(()=>{let S=w.value,{common:{cubicBezierEaseInOut:v,cubicBezierEaseOut:D},self:x}=S,{rippleDuration:k,opacityDisabled:A,fontWeight:E,fontWeightStrong:z}=x,M=a.value,{dashed:se,type:ye,ghost:Ie,text:fe,color:ce,round:we,circle:Me,textColor:Be,secondary:Le,tertiary:Je,quaternary:Xe,strong:ct}=e,wt={"font-weight":ct?z:E},ze={"--n-color":"initial","--n-color-hover":"initial","--n-color-pressed":"initial","--n-color-focus":"initial","--n-color-disabled":"initial","--n-ripple-color":"initial","--n-text-color":"initial","--n-text-color-hover":"initial","--n-text-color-pressed":"initial","--n-text-color-focus":"initial","--n-text-color-disabled":"initial"},We=ye==="tertiary",vt=ye==="default",Pe=We?"default":ye;if(fe){let H=Be||ce;ze={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":"#0000","--n-text-color":H||x[Te("textColorText",Pe)],"--n-text-color-hover":H?Kr(H):x[Te("textColorTextHover",Pe)],"--n-text-color-pressed":H?la(H):x[Te("textColorTextPressed",Pe)],"--n-text-color-focus":H?Kr(H):x[Te("textColorTextHover",Pe)],"--n-text-color-disabled":H||x[Te("textColorTextDisabled",Pe)]}}else if(Ie||se){let H=Be||ce;ze={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":ce||x[Te("rippleColor",Pe)],"--n-text-color":H||x[Te("textColorGhost",Pe)],"--n-text-color-hover":H?Kr(H):x[Te("textColorGhostHover",Pe)],"--n-text-color-pressed":H?la(H):x[Te("textColorGhostPressed",Pe)],"--n-text-color-focus":H?Kr(H):x[Te("textColorGhostHover",Pe)],"--n-text-color-disabled":H||x[Te("textColorGhostDisabled",Pe)]}}else if(Le){let H=vt?x.textColor:We?x.textColorTertiary:x[Te("color",Pe)],Q=ce||H,Y=ye!=="default"&&ye!=="tertiary";ze={"--n-color":Y?te(Q,{alpha:Number(x.colorOpacitySecondary)}):x.colorSecondary,"--n-color-hover":Y?te(Q,{alpha:Number(x.colorOpacitySecondaryHover)}):x.colorSecondaryHover,"--n-color-pressed":Y?te(Q,{alpha:Number(x.colorOpacitySecondaryPressed)}):x.colorSecondaryPressed,"--n-color-focus":Y?te(Q,{alpha:Number(x.colorOpacitySecondaryHover)}):x.colorSecondaryHover,"--n-color-disabled":x.colorSecondary,"--n-ripple-color":"#0000","--n-text-color":Q,"--n-text-color-hover":Q,"--n-text-color-pressed":Q,"--n-text-color-focus":Q,"--n-text-color-disabled":Q}}else if(Je||Xe){let H=vt?x.textColor:We?x.textColorTertiary:x[Te("color",Pe)],Q=ce||H;Je?(ze["--n-color"]=x.colorTertiary,ze["--n-color-hover"]=x.colorTertiaryHover,ze["--n-color-pressed"]=x.colorTertiaryPressed,ze["--n-color-focus"]=x.colorSecondaryHover,ze["--n-color-disabled"]=x.colorTertiary):(ze["--n-color"]=x.colorQuaternary,ze["--n-color-hover"]=x.colorQuaternaryHover,ze["--n-color-pressed"]=x.colorQuaternaryPressed,ze["--n-color-focus"]=x.colorQuaternaryHover,ze["--n-color-disabled"]=x.colorQuaternary),ze["--n-ripple-color"]="#0000",ze["--n-text-color"]=Q,ze["--n-text-color-hover"]=Q,ze["--n-text-color-pressed"]=Q,ze["--n-text-color-focus"]=Q,ze["--n-text-color-disabled"]=Q}else ze={"--n-color":ce||x[Te("color",Pe)],"--n-color-hover":ce?Kr(ce):x[Te("colorHover",Pe)],"--n-color-pressed":ce?la(ce):x[Te("colorPressed",Pe)],"--n-color-focus":ce?Kr(ce):x[Te("colorFocus",Pe)],"--n-color-disabled":ce||x[Te("colorDisabled",Pe)],"--n-ripple-color":ce||x[Te("rippleColor",Pe)],"--n-text-color":Be||(ce?x.textColorPrimary:We?x.textColorTertiary:x[Te("textColor",Pe)]),"--n-text-color-hover":Be||(ce?x.textColorHoverPrimary:x[Te("textColorHover",Pe)]),"--n-text-color-pressed":Be||(ce?x.textColorPressedPrimary:x[Te("textColorPressed",Pe)]),"--n-text-color-focus":Be||(ce?x.textColorFocusPrimary:x[Te("textColorFocus",Pe)]),"--n-text-color-disabled":Be||(ce?x.textColorDisabledPrimary:x[Te("textColorDisabled",Pe)])};let ot={"--n-border":"initial","--n-border-hover":"initial","--n-border-pressed":"initial","--n-border-focus":"initial","--n-border-disabled":"initial"};fe?ot={"--n-border":"none","--n-border-hover":"none","--n-border-pressed":"none","--n-border-focus":"none","--n-border-disabled":"none"}:ot={"--n-border":x[Te("border",Pe)],"--n-border-hover":x[Te("borderHover",Pe)],"--n-border-pressed":x[Te("borderPressed",Pe)],"--n-border-focus":x[Te("borderFocus",Pe)],"--n-border-disabled":x[Te("borderDisabled",Pe)]};let{[Te("height",M)]:rt,[Te("fontSize",M)]:Dt,[Te("padding",M)]:h,[Te("paddingRound",M)]:C,[Te("iconSize",M)]:L,[Te("borderRadius",M)]:q,[Te("iconMargin",M)]:K,waveOpacity:ne}=x,oe={"--n-width":Me&&!fe?rt:"initial","--n-height":fe?"initial":rt,"--n-font-size":Dt,"--n-padding":Me||fe?"initial":we?C:h,"--n-icon-size":L,"--n-icon-margin":K,"--n-border-radius":fe?"initial":Me||we?rt:q};return Object.assign(Object.assign(Object.assign(Object.assign({"--n-bezier":v,"--n-bezier-ease-out":D,"--n-ripple-duration":k,"--n-opacity-disabled":A,"--n-wave-opacity":ne},wt),ze),ot),oe)}),j=f?qt("button",F(()=>{let S="",{dashed:v,type:D,ghost:x,text:k,color:A,round:E,circle:z,textColor:M,secondary:se,tertiary:ye,quaternary:Ie,strong:fe}=e;v&&(S+="a"),x&&(S+="b"),k&&(S+="c"),E&&(S+="d"),z&&(S+="e"),se&&(S+="f"),ye&&(S+="g"),Ie&&(S+="h"),fe&&(S+="i"),A&&(S+="j"+Ri(A)),M&&(S+="k"+Ri(M));let{value:ce}=a;return S+="l"+ce[0],S+="m"+D[0],S}),O,e):void 0;return{selfElRef:t,waveElRef:o,mergedClsPrefix:m,mergedFocusable:l,mergedSize:a,showBorder:n,enterPressed:r,rtlEnabled:g,handleMousedown:s,handleKeydown:u,handleBlur:p,handleKeyup:d,handleClick:c,customColorCssVars:F(()=>{let{color:S}=e;if(!S)return null;let v=Kr(S);return{"--n-border-color":S,"--n-border-color-hover":v,"--n-border-color-pressed":la(S),"--n-border-color-focus":v,"--n-border-color-disabled":S}}),cssVars:f?void 0:O,themeClass:j?.themeClass,onRender:j?.onRender}},render(){let{mergedClsPrefix:e,tag:t,onRender:o}=this;o?.();let r=Xo(this.$slots.default,n=>n&&b("span",{class:`${e}-button__content`},n));return b(t,{ref:"selfElRef",class:[this.themeClass,`${e}-button`,`${e}-button--${this.type}-type`,`${e}-button--${this.mergedSize}-type`,this.rtlEnabled&&`${e}-button--rtl`,this.disabled&&`${e}-button--disabled`,this.block&&`${e}-button--block`,this.enterPressed&&`${e}-button--pressed`,!this.text&&this.dashed&&`${e}-button--dashed`,this.color&&`${e}-button--color`,this.secondary&&`${e}-button--secondary`,this.loading&&`${e}-button--loading`,this.ghost&&`${e}-button--ghost`],tabindex:this.mergedFocusable?0:-1,type:this.attrType,style:this.cssVars,disabled:this.disabled,onClick:this.handleClick,onBlur:this.handleBlur,onMousedown:this.handleMousedown,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},this.iconPlacement==="right"&&r,b(Jn,{width:!0},{default:()=>Xo(this.$slots.icon,n=>(this.loading||n)&&b("span",{class:`${e}-button__icon`,style:{margin:fl(this.$slots.default)?"0":""}},b(So,null,{default:()=>this.loading?b(jr,{clsPrefix:e,key:"loading",class:`${e}-icon-slot`,strokeWidth:20}):b("div",{key:"icon",class:`${e}-icon-slot`,role:"none"},n)})))}),this.iconPlacement==="left"&&r,this.text?null:b(as,{ref:"waveElRef",clsPrefix:e}),this.showBorder?b("div",{"aria-hidden":!0,class:`${e}-button__border`,style:this.customColorCssVars}):null,this.showBorder?b("div",{"aria-hidden":!0,class:`${e}-button__state-border`,style:this.customColorCssVars}):null)}}),Fd=BT;var ob={titleFontSize:"22px"};var jd=e=>{let{borderRadius:t,fontSize:o,lineHeight:r,textColor2:n,textColor1:i,textColorDisabled:a,dividerColor:l,fontWeightStrong:s,primaryColor:c,baseColor:d,hoverColor:u,cardColor:p,modalColor:f,popoverColor:m}=e;return Object.assign(Object.assign({},ob),{borderRadius:t,borderColor:xe(p,l),borderColorModal:xe(f,l),borderColorPopover:xe(m,l),textColor:n,titleFontWeight:s,titleTextColor:i,dayTextColor:a,fontSize:o,lineHeight:r,dateColorCurrent:c,dateTextColorCurrent:d,cellColorHover:xe(p,u),cellColorHoverModal:xe(f,u),cellColorHoverPopover:xe(m,u),cellColor:p,cellColorModal:f,cellColorPopover:m,barColor:c})},BW={name:"Calendar",common:ge,peers:{Button:Nt},self:jd};var HT={name:"Calendar",common:R,peers:{Button:lt},self:jd},Wd=HT;var Kd=e=>{let{fontSize:t,boxShadow2:o,popoverColor:r,textColor2:n,borderRadius:i,borderColor:a,heightSmall:l,heightMedium:s,heightLarge:c,fontSizeSmall:d,fontSizeMedium:u,fontSizeLarge:p,dividerColor:f}=e;return{panelFontSize:t,boxShadow:o,color:r,textColor:n,borderRadius:i,border:`1px solid ${a}`,heightSmall:l,heightMedium:s,heightLarge:c,fontSizeSmall:d,fontSizeMedium:u,fontSizeLarge:p,dividerColor:f}},XW={name:"ColorPicker",common:ge,peers:{Input:po,Button:Nt},self:Kd};var VT={name:"ColorPicker",common:R,peers:{Input:xt,Button:lt},self:Kd},Ud=VT;var rb={paddingSmall:"12px 16px 12px",paddingMedium:"19px 24px 20px",paddingLarge:"23px 32px 24px",paddingHuge:"27px 40px 28px",titleFontSizeSmall:"16px",titleFontSizeMedium:"18px",titleFontSizeLarge:"18px",titleFontSizeHuge:"18px",closeSize:"18px"};var qd=e=>{let{primaryColor:t,borderRadius:o,lineHeight:r,fontSize:n,cardColor:i,textColor2:a,textColor1:l,dividerColor:s,fontWeightStrong:c,closeColor:d,closeColorHover:u,closeColorPressed:p,modalColor:f,boxShadow1:m,popoverColor:y,actionColor:w}=e;return Object.assign(Object.assign({},rb),{lineHeight:r,color:i,colorModal:f,colorPopover:y,colorTarget:t,colorEmbedded:w,textColor:a,titleTextColor:l,borderColor:s,actionColor:w,titleFontWeight:c,closeColor:d,closeColorHover:u,closeColorPressed:p,fontSizeSmall:n,fontSizeMedium:n,fontSizeLarge:n,fontSizeHuge:n,boxShadow:m,borderRadius:o})},FT={name:"Card",common:ge,self:qd},Gd=FT;var jT={name:"Card",common:R,self(e){let t=qd(e),{cardColor:o}=e;return t.colorEmbedded=o,t}},sa=jT;var nb=e=>({dotSize:"8px",dotColor:"rgba(255, 255, 255, .3)",dotColorActive:"rgba(255, 255, 255, 1)",dotColorFocus:"rgba(255, 255, 255, .5)",dotLineWidth:"16px",dotLineWidthActive:"24px",arrowColor:"#eee"});var WT={name:"Carousel",common:R,self:nb},Yd=WT;var ib={sizeSmall:"14px",sizeMedium:"16px",sizeLarge:"18px",labelPadding:"0 8px"};var Xd=e=>{let{baseColor:t,inputColorDisabled:o,cardColor:r,modalColor:n,popoverColor:i,textColorDisabled:a,borderColor:l,primaryColor:s,textColor2:c,fontSizeSmall:d,fontSizeMedium:u,fontSizeLarge:p,borderRadiusSmall:f,lineHeight:m}=e;return Object.assign(Object.assign({},ib),{labelLineHeight:m,fontSizeSmall:d,fontSizeMedium:u,fontSizeLarge:p,borderRadius:f,color:t,colorChecked:s,colorDisabled:o,colorDisabledChecked:o,colorTableHeader:r,colorTableHeaderModal:n,colorTableHeaderPopover:i,checkMarkColor:t,checkMarkColorDisabled:a,checkMarkColorDisabledChecked:a,border:`1px solid ${l}`,borderDisabled:`1px solid ${l}`,borderDisabledChecked:`1px solid ${l}`,borderChecked:`1px solid ${s}`,borderFocus:`1px solid ${s}`,boxShadowFocus:`0 0 0 2px ${te(s,{alpha:.3})}`,textColor:c,textColorDisabled:a})},KT={name:"Checkbox",common:ge,self:Xd},mr=KT;var UT={name:"Checkbox",common:R,self(e){let{cardColor:t}=e,o=Xd(e);return o.color="#0000",o.checkMarkColor=t,o}},Io=UT;var Zd=e=>{let{borderRadius:t,boxShadow2:o,popoverColor:r,textColor2:n,textColor3:i,primaryColor:a,textColorDisabled:l,dividerColor:s,hoverColor:c,fontSizeMedium:d,heightMedium:u}=e;return{menuBorderRadius:t,menuColor:r,menuBoxShadow:o,menuDividerColor:s,menuHeight:"calc(var(--n-option-height) * 6.6)",optionArrowColor:i,optionHeight:u,optionFontSize:d,optionColorHover:c,optionTextColor:n,optionTextColorActive:a,optionTextColorDisabled:l,optionCheckMarkColor:a,loadingColor:a,columnWidth:"180px"}},z9={name:"Cascader",common:ge,peers:{InternalSelectMenu:vn,InternalSelection:na,Scrollbar:_t,Checkbox:mr,Empty:uo},self:Zd};var qT={name:"Cascader",common:R,peers:{InternalSelectMenu:No,InternalSelection:Cn,Scrollbar:at,Checkbox:Io,Empty:uo},self:Zd},Qd=qT;var ab=b("svg",{viewBox:"0 0 64 64",class:"check-icon"},b("path",{d:"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51 c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92 C54.13,15.78,51.93,15.55,50.42,16.76z"}));var lb=b("svg",{viewBox:"0 0 100 100",class:"line-icon"},b("path",{d:"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z"}));var Jd="n-checkbox-group",GT={min:Number,max:Number,size:String,value:Array,defaultValue:{type:Array,default:null},disabled:{type:Boolean,default:void 0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:{type:[Function,Array],validator:()=>!0,default:void 0}},iK=ue({name:"CheckboxGroup",props:GT,setup(e){let{mergedClsPrefixRef:t}=Mt(e),o=Co(e),{mergedSizeRef:r,mergedDisabledRef:n}=o,i=X(e.defaultValue),a=F(()=>e.value),l=Xt(a,i),s=F(()=>{var u;return((u=l.value)===null||u===void 0?void 0:u.length)||0}),c=F(()=>Array.isArray(l.value)?new Set(l.value):new Set);function d(u,p){let{nTriggerFormInput:f,nTriggerFormChange:m}=o,{onChange:y,"onUpdate:value":w,onUpdateValue:g}=e;if(Array.isArray(l.value)){let O=Array.from(l.value),j=O.findIndex(S=>S===p);u?~j||(O.push(p),g&&Se(g,O),w&&Se(w,O),f(),m(),i.value=O,y&&Se(y,O)):~j&&(O.splice(j,1),g&&Se(g,O),w&&Se(w,O),y&&Se(y,O),i.value=O,f(),m())}else u?(g&&Se(g,[p]),w&&Se(w,[p]),y&&Se(y,[p]),i.value=[p],f(),m()):(g&&Se(g,[]),w&&Se(w,[]),y&&Se(y,[]),i.value=[],f(),m())}return Yt(Jd,{checkedCountRef:s,maxRef:Re(e,"max"),minRef:Re(e,"min"),valueSetRef:c,disabledRef:n,mergedSizeRef:r,toggleCheckbox:d}),{mergedClsPrefix:t}},render(){return b("div",{class:`${this.mergedClsPrefix}-checkbox-group`,role:"group"},this.$slots)}});var sb=J([U("checkbox",` line-height: var(--n-label-line-height); font-size: var(--n-font-size); outline: none; @@ -622,39 +622,39 @@ ${o} align-items: flex-start; word-break: break-word; --n-merged-color-table: var(--n-color-table); - `,[J("&:hover",[$("checkbox-box",[oe("border",{border:"var(--n-border-checked)"})])]),J("&:focus:not(:active)",[$("checkbox-box",[oe("border",` + `,[J("&:hover",[U("checkbox-box",[ee("border",{border:"var(--n-border-checked)"})])]),J("&:focus:not(:active)",[U("checkbox-box",[ee("border",` border: var(--n-border-focus); box-shadow: var(--n-box-shadow-focus); - `)])]),Te("inside-table",[$("checkbox-box",` + `)])]),be("inside-table",[U("checkbox-box",` background-color: var(--n-merged-color-table); - `)]),Te("checked",[$("checkbox-box",` + `)]),be("checked",[U("checkbox-box",` background-color: var(--n-color-checked); - `,[$("checkbox-icon",[J(".check-icon",` + `,[U("checkbox-icon",[J(".check-icon",` opacity: 1; transform: scale(1); - `)])])]),Te("indeterminate",[$("checkbox-box",[$("checkbox-icon",[J(".check-icon",` + `)])])]),be("indeterminate",[U("checkbox-box",[U("checkbox-icon",[J(".check-icon",` opacity: 0; transform: scale(.5); `),J(".line-icon",` opacity: 1; transform: scale(1); - `)])])]),Te("checked, indeterminate",[J("&:focus:not(:active)",[$("checkbox-box",[oe("border",` + `)])])]),be("checked, indeterminate",[J("&:focus:not(:active)",[U("checkbox-box",[ee("border",` border: var(--n-border-checked); box-shadow: var(--n-box-shadow-focus); - `)])]),$("checkbox-box",` + `)])]),U("checkbox-box",` background-color: var(--n-color-checked); border-left: 0; border-top: 0; - `,[oe("border",{border:"var(--n-border-checked)"})])]),Te("disabled",{cursor:"not-allowed"},[Te("checked",[$("checkbox-box",` + `,[ee("border",{border:"var(--n-border-checked)"})])]),be("disabled",{cursor:"not-allowed"},[be("checked",[U("checkbox-box",` background-color: var(--n-color-disabled-checked); - `,[oe("border",{border:"var(--n-border-disabled-checked)"}),$("checkbox-icon",[J(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled-checked)"})])])]),$("checkbox-box",` + `,[ee("border",{border:"var(--n-border-disabled-checked)"}),U("checkbox-icon",[J(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled-checked)"})])])]),U("checkbox-box",` background-color: var(--n-color-disabled); - `,[oe("border",{border:"var(--n-border-disabled)"}),$("checkbox-icon",[J(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled)"})])]),oe("label",{color:"var(--n-text-color-disabled)"})]),$("checkbox-box-wrapper",` + `,[ee("border",{border:"var(--n-border-disabled)"}),U("checkbox-icon",[J(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled)"})])]),ee("label",{color:"var(--n-text-color-disabled)"})]),U("checkbox-box-wrapper",` position: relative; width: var(--n-size); flex-shrink: 0; flex-grow: 0; - `),$("checkbox-box",` + `),U("checkbox-box",` position: absolute; left: 0; top: 50%; @@ -666,7 +666,7 @@ ${o} border-radius: var(--n-border-radius); background-color: var(--n-color); transition: background-color 0.3s var(--n-bezier); - `,[oe("border",` + `,[ee("border",` transition: border-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier); @@ -677,7 +677,7 @@ ${o} top: 0; bottom: 0; border: var(--n-border); - `),$("checkbox-icon",` + `),U("checkbox-icon",` display: flex; align-items: center; justify-content: center; @@ -697,16 +697,16 @@ ${o} transform 0.3s var(--n-bezier), opacity 0.3s var(--n-bezier), border-color 0.3s var(--n-bezier); - `),Rt({left:"1px",top:"1px"})])]),oe("label",` + `),co({left:"1px",top:"1px"})])]),ee("label",` color: var(--n-text-color); transition: color .3s var(--n-bezier); user-select: none; padding: var(--n-label-padding); - `,[J("&:empty",{display:"none"})])]),ci($("checkbox",` + `,[J("&:empty",{display:"none"})])]),gl(U("checkbox",` --n-merged-color-table: var(--n-color-table-modal); - `)),hi($("checkbox",` + `)),xl(U("checkbox",` --n-merged-color-table: var(--n-color-table-popover); - `))]);var uD=Object.assign(Object.assign({},Mo.props),{size:String,checked:{type:[Boolean,String,Number],default:void 0},defaultChecked:{type:[Boolean,String,Number],default:!1},value:[String,Number],disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:String,focusable:{type:Boolean,default:!0},checkedValue:{type:[Boolean,String,Number],default:!0},uncheckedValue:{type:[Boolean,String,Number],default:!1},"onUpdate:checked":[Function,Array],onUpdateChecked:[Function,Array],privateInsideTable:Boolean,onChange:[Function,Array]}),_u=ae({name:"Checkbox",props:uD,setup(e){let o=Z(null),{mergedClsPrefixRef:t,inlineThemeDisabled:r,mergedRtlRef:a}=Ko(e),l=Pt(e,{mergedSize(k){let{size:S}=e;if(S!==void 0)return S;if(d){let{value:b}=d.mergedSizeRef;if(b!==void 0)return b}if(k){let{mergedSize:b}=k;if(b!==void 0)return b.value}return"medium"},mergedDisabled(k){let{disabled:S}=e;if(S!==void 0)return S;if(d){if(d.disabledRef.value)return!0;let{maxRef:{value:b},checkedCountRef:B}=d;if(b!==void 0&&B.value>=b&&!m.value)return!0;let{minRef:{value:v}}=d;if(v!==void 0&&B.value<=v&&m.value)return!0}return k?k.disabled.value:!1}}),{mergedDisabledRef:n,mergedSizeRef:i}=l,d=Ce(Nu,null),s=Z(e.defaultChecked),u=_e(e,"checked"),f=dt(u,s),m=po(()=>{if(d){let k=d.valueSetRef.value;return k&&e.value!==void 0?k.has(e.value):!1}else return f.value===e.checkedValue}),p=Mo("Checkbox","-checkbox",$g,Cr,e,t);function c(k){if(d&&e.value!==void 0)d.toggleCheckbox(!m.value,e.value);else{let{onChange:S,"onUpdate:checked":b,onUpdateChecked:B}=e,{nTriggerFormInput:v,nTriggerFormChange:_}=l,E=m.value?e.uncheckedValue:e.checkedValue;b&&be(b,E,k),B&&be(B,E,k),S&&be(S,E,k),v(),_(),s.value=E}}function R(k){n.value||c(k)}function y(k){if(!n.value)switch(k.code){case"Space":case"Enter":case"NumpadEnter":c(k)}}function h(k){switch(k.code){case"Space":k.preventDefault()}}let A={focus:()=>{var k;(k=o.value)===null||k===void 0||k.focus()},blur:()=>{var k;(k=o.value)===null||k===void 0||k.blur()}},z=Fa("Checkbox",a,t),F=W(()=>{let{value:k}=i,{common:{cubicBezierEaseInOut:S},self:{borderRadius:b,color:B,colorChecked:v,colorDisabled:_,colorTableHeader:E,colorTableHeaderModal:se,colorTableHeaderPopover:Fe,checkMarkColor:Ee,checkMarkColorDisabled:pe,border:fe,borderFocus:Re,borderDisabled:eo,borderChecked:oo,boxShadowFocus:Qe,textColor:fo,textColorDisabled:no,checkMarkColorDisabledChecked:Bo,colorDisabledChecked:Eo,borderDisabledChecked:Ke,labelPadding:Ve,labelLineHeight:ao,[Be("fontSize",k)]:Ae,[Be("size",k)]:mo}}=p.value;return{"--n-label-line-height":ao,"--n-size":mo,"--n-bezier":S,"--n-border-radius":b,"--n-border":fe,"--n-border-checked":oo,"--n-border-focus":Re,"--n-border-disabled":eo,"--n-border-disabled-checked":Ke,"--n-box-shadow-focus":Qe,"--n-color":B,"--n-color-checked":v,"--n-color-table":E,"--n-color-table-modal":se,"--n-color-table-popover":Fe,"--n-color-disabled":_,"--n-color-disabled-checked":Eo,"--n-text-color":fo,"--n-text-color-disabled":no,"--n-check-mark-color":Ee,"--n-check-mark-color-disabled":pe,"--n-check-mark-color-disabled-checked":Bo,"--n-font-size":Ae,"--n-label-padding":Ve}}),g=r?at("checkbox",W(()=>i.value[0]),F,e):void 0;return Object.assign(l,A,{rtlEnabled:z,selfRef:o,mergedClsPrefix:t,mergedDisabled:n,renderedChecked:m,mergedTheme:p,labelId:ws(),handleClick:R,handleKeyUp:y,handleKeyDown:h,cssVars:r?void 0:F,themeClass:g==null?void 0:g.themeClass,onRender:g==null?void 0:g.onRender})},render(){var e;let{$slots:o,renderedChecked:t,mergedDisabled:r,indeterminate:a,privateInsideTable:l,cssVars:n,labelId:i,label:d,mergedClsPrefix:s,focusable:u,handleKeyUp:f,handleKeyDown:m,handleClick:p}=this;return(e=this.onRender)===null||e===void 0||e.call(this),w("div",{ref:"selfRef",class:[`${s}-checkbox`,this.themeClass,this.rtlEnabled&&`${s}-checkbox--rtl`,t&&`${s}-checkbox--checked`,r&&`${s}-checkbox--disabled`,a&&`${s}-checkbox--indeterminate`,l&&`${s}-checkbox--inside-table`],tabindex:r||!u?void 0:0,role:"checkbox","aria-checked":a?"mixed":t,"aria-labelledby":i,style:n,onKeyup:f,onKeydown:m,onClick:p,onMousedown:()=>{ko("selectstart",window,c=>{c.preventDefault()},{once:!0})}},w("div",{class:`${s}-checkbox-box-wrapper`},"\xA0",w("div",{class:`${s}-checkbox-box`},w(Et,null,{default:()=>this.indeterminate?w("div",{key:"indeterminate",class:`${s}-checkbox-icon`},jg):w("div",{key:"check",class:`${s}-checkbox-icon`},zg)}),w("div",{class:`${s}-checkbox-box__border`}))),d!==null||o.default?w("span",{class:`${s}-checkbox__label`,id:i},o.default?o.default():d):null)}});var fD={name:"Code",common:M,self(e){let{textColor2:o,fontSize:t,fontWeightStrong:r}=e;return{textColor:o,fontSize:t,fontWeightStrong:r,"mono-3":"#5c6370","hue-1":"#56b6c2","hue-2":"#61aeee","hue-3":"#c678dd","hue-4":"#98c379","hue-5":"#e06c75","hue-5-2":"#be5046","hue-6":"#d19a66","hue-6-2":"#e6c07b"}}},sn=fD;var Ug=e=>{let{fontWeight:o,textColor1:t,textColor2:r,dividerColor:a,fontSize:l}=e;return{titleFontSize:l,titleFontWeight:o,dividerColor:a,titleTextColor:t,fontSize:l,textColor:r,arrowColor:r}};var pD={name:"Collapse",common:M,self:Ug},Iu=pD;var Kg=e=>{let{cubicBezierEaseInOut:o}=e;return{bezier:o}};var mD={name:"CollapseTransition",common:M,self:Kg},Hu=mD;var Gg={abstract:Boolean,bordered:{type:Boolean,default:void 0},clsPrefix:String,locale:Object,dateLocale:Object,namespace:String,rtl:Array,tag:{type:String,default:"div"},hljs:Object,theme:Object,themeOverrides:Object,componentOptions:Object,icons:Object,breakpoints:Object,inlineThemeDisabled:{type:Boolean,default:void 0},as:{type:String,validator:()=>(ii("config-provider","`as` is deprecated, please use `tag` instead."),!0),default:void 0}},Vu=ae({name:"ConfigProvider",alias:["App"],props:Gg,setup(e){let o=Ce(st,null),t=W(()=>{let{theme:p}=e;if(p===null)return;let c=o==null?void 0:o.mergedThemeRef.value;return p===void 0?c:c===void 0?p:Object.assign({},c,p)}),r=W(()=>{let{themeOverrides:p}=e;if(p!==null){if(p===void 0)return o==null?void 0:o.mergedThemeOverridesRef.value;{let c=o==null?void 0:o.mergedThemeOverridesRef.value;return c===void 0?p:qr({},c,p)}}}),a=po(()=>{let{namespace:p}=e;return p===void 0?o==null?void 0:o.mergedNamespaceRef.value:p}),l=po(()=>{let{bordered:p}=e;return p===void 0?o==null?void 0:o.mergedBorderedRef.value:p}),n=W(()=>{let{icons:p}=e;return p===void 0?o==null?void 0:o.mergedIconsRef.value:p}),i=W(()=>{let{componentOptions:p}=e;return p!==void 0?p:o==null?void 0:o.mergedComponentPropsRef.value}),d=W(()=>{let{clsPrefix:p}=e;return p!==void 0?p:o==null?void 0:o.mergedClsPrefixRef.value}),s=W(()=>{var p;let{rtl:c}=e;if(c===void 0)return o==null?void 0:o.mergedRtlRef.value;let R={};for(let y of c)R[y.name]=aa(y),(p=y.peers)===null||p===void 0||p.forEach(h=>{h.name in R||(R[h.name]=aa(h))});return R}),u=W(()=>e.breakpoints||(o==null?void 0:o.mergedBreakpointsRef.value)),f=e.inlineThemeDisabled||(o==null?void 0:o.inlineThemeDisabled),m=W(()=>{let{value:p}=t,{value:c}=r,R=c&&Object.keys(c).length!==0,y=p==null?void 0:p.name;return y?R?`${y}-${Tt(JSON.stringify(r.value))}`:y:R?Tt(JSON.stringify(r.value)):""});return nt(st,{mergedThemeHashRef:m,mergedBreakpointsRef:u,mergedRtlRef:s,mergedIconsRef:n,mergedComponentPropsRef:i,mergedBorderedRef:l,mergedNamespaceRef:a,mergedClsPrefixRef:d,mergedLocaleRef:W(()=>{let{locale:p}=e;if(p!==null)return p===void 0?o==null?void 0:o.mergedLocaleRef.value:p}),mergedDateLocaleRef:W(()=>{let{dateLocale:p}=e;if(p!==null)return p===void 0?o==null?void 0:o.mergedDateLocaleRef.value:p}),mergedHljsRef:W(()=>{let{hljs:p}=e;return p===void 0?o==null?void 0:o.mergedHljsRef.value:p}),mergedThemeRef:t,mergedThemeOverridesRef:r,inlineThemeDisabled:f||!1}),{mergedClsPrefix:d,mergedBordered:l,mergedNamespace:a,mergedTheme:t,mergedThemeOverrides:r}},render(){var e,o,t,r;return this.abstract?(r=(t=this.$slots).default)===null||r===void 0?void 0:r.call(t):w(this.as||this.tag,{class:`${this.mergedClsPrefix||qi}-config-provider`},(o=(e=this.$slots).default)===null||o===void 0?void 0:o.call(e))}});function Wu(e){let{boxShadow2:o}=e;return{menuBoxShadow:o}}var cD=Ie({name:"Select",common:Se,peers:{InternalSelection:rn,InternalSelectMenu:Oa},self:Wu}),zu=cD;var hD={name:"Select",common:M,peers:{InternalSelection:ba,InternalSelectMenu:Wt},self:Wu},un=hD;var qg={itemSize:"28px",itemPadding:"0 4px",itemMargin:"0 0 0 8px",itemMarginRtl:"0 8px 0 0",buttonIconSize:"16px",inputWidth:"60px",selectWidth:"unset",inputMargin:"0 0 0 8px",inputMarginRtl:"0 8px 0 0",selectMargin:"0 0 0 8px",prefixMargin:"0 8px 0 0",suffixMargin:"0 0 0 8px",jumperFontSize:"14px"};var ju=e=>{let{textColor2:o,primaryColor:t,primaryColorHover:r,primaryColorPressed:a,inputColorDisabled:l,textColorDisabled:n,borderColor:i,borderRadius:d,fontSize:s}=e;return Object.assign(Object.assign({},qg),{buttonColor:"#0000",buttonColorHover:"#0000",buttonColorPressed:"#0000",buttonBorder:`1px solid ${i}`,buttonBorderHover:`1px solid ${i}`,buttonBorderPressed:`1px solid ${i}`,buttonIconColor:o,buttonIconColorHover:o,buttonIconColorPressed:o,itemTextColor:o,itemTextColorHover:r,itemTextColorPressed:a,itemTextColorActive:t,itemTextColorDisabled:n,itemColor:"#0000",itemColorHover:"#0000",itemColorPressed:"#0000",itemColorActive:"#0000",itemColorActiveHover:"#0000",itemColorDisabled:l,itemBorder:"1px solid #0000",itemBorderHover:"1px solid #0000",itemBorderPressed:"1px solid #0000",itemBorderActive:`1px solid ${t}`,itemBorderDisabled:`1px solid ${i}`,itemBorderRadius:d,itemFontSize:s,jumperTextColor:o,jumperTextColorDisabled:n})},xD=Ie({name:"Pagination",common:Se,peers:{Select:zu,Input:Ct},self:ju}),$u=xD;var SD={name:"Pagination",common:M,peers:{Select:un,Input:Ao},self(e){let{primaryColor:o,opacity3:t}=e,r=te(o,{alpha:Number(t)}),a=ju(e);return a.itemBorderActive=`1px solid ${r}`,a.itemBorderDisabled="1px solid #0000",a}},fn=SD;var ud={padding:"8px 14px"};var gD={name:"Tooltip",common:M,peers:{Popover:ut},self(e){let{borderRadius:o,boxShadow2:t,popoverColor:r,textColor2:a}=e;return Object.assign(Object.assign({},ud),{borderRadius:o,boxShadow:t,color:r,textColor:a})}},dr=gD;var wD=e=>{let{borderRadius:o,boxShadow2:t,baseColor:r}=e;return Object.assign(Object.assign({},ud),{borderRadius:o,boxShadow:t,color:ge(r,"rgba(0, 0, 0, .85)"),textColor:r})},TD=Ie({name:"Tooltip",common:Se,peers:{Popover:zt},self:wD}),pn=TD;var RD={name:"Ellipsis",common:M,peers:{Tooltip:dr}},mn=RD;var OD=Ie({name:"Ellipsis",common:Se,peers:{Tooltip:pn}}),Uu=OD;var fd={radioSizeSmall:"14px",radioSizeMedium:"16px",radioSizeLarge:"18px",labelPadding:"0 8px"};var FD={name:"Radio",common:M,self(e){let{borderColor:o,primaryColor:t,baseColor:r,textColorDisabled:a,inputColorDisabled:l,textColor2:n,opacityDisabled:i,borderRadius:d,fontSizeSmall:s,fontSizeMedium:u,fontSizeLarge:f,heightSmall:m,heightMedium:p,heightLarge:c,lineHeight:R}=e;return Object.assign(Object.assign({},fd),{labelLineHeight:R,buttonHeightSmall:m,buttonHeightMedium:p,buttonHeightLarge:c,fontSizeSmall:s,fontSizeMedium:u,fontSizeLarge:f,boxShadow:`inset 0 0 0 1px ${o}`,boxShadowActive:`inset 0 0 0 1px ${t}`,boxShadowFocus:`inset 0 0 0 1px ${t}, 0 0 0 2px ${te(t,{alpha:.3})}`,boxShadowHover:`inset 0 0 0 1px ${t}`,boxShadowDisabled:`inset 0 0 0 1px ${o}`,color:"#0000",colorDisabled:l,textColor:n,textColorDisabled:a,dotColorActive:t,dotColorDisabled:o,buttonBorderColor:o,buttonBorderColorActive:t,buttonBorderColorHover:t,buttonColor:"#0000",buttonColorActive:t,buttonTextColor:n,buttonTextColorActive:r,buttonTextColorHover:t,opacityDisabled:i,buttonBoxShadowFocus:`inset 0 0 0 1px ${t}, 0 0 0 2px ${te(t,{alpha:.3})}`,buttonBoxShadowHover:`inset 0 0 0 1px ${t}`,buttonBoxShadow:"inset 0 0 0 1px #0000",buttonBorderRadius:d})}},cn=FD;var CD=e=>{let{borderColor:o,primaryColor:t,baseColor:r,textColorDisabled:a,inputColorDisabled:l,textColor2:n,opacityDisabled:i,borderRadius:d,fontSizeSmall:s,fontSizeMedium:u,fontSizeLarge:f,heightSmall:m,heightMedium:p,heightLarge:c,lineHeight:R}=e;return Object.assign(Object.assign({},fd),{labelLineHeight:R,buttonHeightSmall:m,buttonHeightMedium:p,buttonHeightLarge:c,fontSizeSmall:s,fontSizeMedium:u,fontSizeLarge:f,boxShadow:`inset 0 0 0 1px ${o}`,boxShadowActive:`inset 0 0 0 1px ${t}`,boxShadowFocus:`inset 0 0 0 1px ${t}, 0 0 0 2px ${te(t,{alpha:.2})}`,boxShadowHover:`inset 0 0 0 1px ${t}`,boxShadowDisabled:`inset 0 0 0 1px ${o}`,color:r,colorDisabled:l,textColor:n,textColorDisabled:a,dotColorActive:t,dotColorDisabled:o,buttonBorderColor:o,buttonBorderColorActive:t,buttonBorderColorHover:o,buttonColor:r,buttonColorActive:r,buttonTextColor:n,buttonTextColorActive:t,buttonTextColorHover:t,opacityDisabled:i,buttonBoxShadowFocus:`inset 0 0 0 1px ${t}, 0 0 0 2px ${te(t,{alpha:.3})}`,buttonBoxShadowHover:"inset 0 0 0 1px #0000",buttonBoxShadow:"inset 0 0 0 1px #0000",buttonBorderRadius:d})},bD={name:"Radio",common:Se,self:CD},Ku=bD;var Qg={thPaddingSmall:"8px",thPaddingMedium:"12px",thPaddingLarge:"12px",tdPaddingSmall:"8px",tdPaddingMedium:"12px",tdPaddingLarge:"12px",sorterSize:"15px",filterSize:"15px",paginationMargin:"12px 0 0 0",emptyPadding:"48px 0",actionPadding:"8px 12px",actionButtonMargin:"0 8px 0 0"};var Gu=e=>{let{cardColor:o,modalColor:t,popoverColor:r,textColor2:a,textColor1:l,tableHeaderColor:n,tableColorHover:i,iconColor:d,primaryColor:s,fontWeightStrong:u,borderRadius:f,lineHeight:m,fontSizeSmall:p,fontSizeMedium:c,fontSizeLarge:R,dividerColor:y,heightSmall:h,opacityDisabled:A,tableColorStriped:z}=e;return Object.assign(Object.assign({},Qg),{actionDividerColor:y,lineHeight:m,borderRadius:f,fontSizeSmall:p,fontSizeMedium:c,fontSizeLarge:R,borderColor:ge(o,y),tdColorHover:ge(o,i),tdColorStriped:ge(o,z),thColor:ge(o,n),thColorHover:ge(ge(o,n),i),tdColor:o,tdTextColor:a,thTextColor:l,thFontWeight:u,thButtonColorHover:i,thIconColor:d,thIconColorActive:s,borderColorModal:ge(t,y),tdColorHoverModal:ge(t,i),tdColorStripedModal:ge(t,z),thColorModal:ge(t,n),thColorHoverModal:ge(ge(t,n),i),tdColorModal:t,borderColorPopover:ge(r,y),tdColorHoverPopover:ge(r,i),tdColorStripedPopover:ge(r,z),thColorPopover:ge(r,n),thColorHoverPopover:ge(ge(r,n),i),tdColorPopover:r,boxShadowBefore:"inset -12px 0 8px -12px rgba(0, 0, 0, .18)",boxShadowAfter:"inset 12px 0 8px -12px rgba(0, 0, 0, .18)",loadingColor:s,loadingSize:h,opacityLoading:A})},n9=Ie({name:"DataTable",common:Se,peers:{Button:zo,Checkbox:Cr,Radio:Ku,Pagination:$u,Scrollbar:Io,Empty:Ot,Popover:zt,Ellipsis:Uu},self:Gu});var yD={name:"DataTable",common:M,peers:{Button:wo,Checkbox:jt,Radio:cn,Pagination:fn,Scrollbar:go,Empty:Ft,Popover:ut,Ellipsis:mn},self(e){let o=Gu(e);return o.boxShadowAfter="inset 12px 0 8px -12px rgba(0, 0, 0, .36)",o.boxShadowBefore="inset -12px 0 8px -12px rgba(0, 0, 0, .36)",o}},qu=yD;var Zg={padding:"4px 0",optionIconSizeSmall:"14px",optionIconSizeMedium:"16px",optionIconSizeLarge:"16px",optionIconSizeHuge:"18px",optionSuffixWidthSmall:"14px",optionSuffixWidthMedium:"14px",optionSuffixWidthLarge:"16px",optionSuffixWidthHuge:"16px",optionIconSuffixWidthSmall:"32px",optionIconSuffixWidthMedium:"32px",optionIconSuffixWidthLarge:"36px",optionIconSuffixWidthHuge:"36px",optionPrefixWidthSmall:"14px",optionPrefixWidthMedium:"14px",optionPrefixWidthLarge:"16px",optionPrefixWidthHuge:"16px",optionIconPrefixWidthSmall:"36px",optionIconPrefixWidthMedium:"36px",optionIconPrefixWidthLarge:"40px",optionIconPrefixWidthHuge:"40px"};var Qu=e=>{let{primaryColor:o,textColor2:t,dividerColor:r,hoverColor:a,popoverColor:l,invertedColor:n,borderRadius:i,fontSizeSmall:d,fontSizeMedium:s,fontSizeLarge:u,fontSizeHuge:f,heightSmall:m,heightMedium:p,heightLarge:c,heightHuge:R,textColor3:y,opacityDisabled:h}=e;return Object.assign(Object.assign({},Zg),{optionHeightSmall:m,optionHeightMedium:p,optionHeightLarge:c,optionHeightHuge:R,borderRadius:i,fontSizeSmall:d,fontSizeMedium:s,fontSizeLarge:u,fontSizeHuge:f,optionTextColor:t,optionTextColorHover:t,optionTextColorActive:o,optionTextColorChildActive:o,color:l,dividerColor:r,suffixColor:t,prefixColor:t,optionColorHover:a,optionColorActive:te(o,{alpha:.1}),groupHeaderTextColor:y,optionTextColorInverted:"#BBB",optionTextColorHoverInverted:"#FFF",optionTextColorActiveInverted:"#FFF",optionTextColorChildActiveInverted:"#FFF",colorInverted:n,dividerColorInverted:"#BBB",suffixColorInverted:"#BBB",prefixColorInverted:"#BBB",optionColorHoverInverted:o,optionColorActiveInverted:o,groupHeaderTextColorInverted:"#AAA",optionOpacityDisabled:h})},vD=Ie({name:"Dropdown",common:Se,peers:{Popover:zt},self:Qu}),Zu=vD;var kD={name:"Dropdown",common:M,peers:{Popover:ut},self(e){let{primaryColorSuppl:o,primaryColor:t,popoverColor:r}=e,a=Qu(e);return a.colorInverted=r,a.optionColorActive=te(t,{alpha:.15}),a.optionColorActiveInverted=o,a.optionColorHoverInverted=o,a}},hn=kD;var Yg=e=>{let{textColorBase:o,opacity1:t,opacity2:r,opacity3:a,opacity4:l,opacity5:n}=e;return{color:o,opacity1Depth:t,opacity2Depth:r,opacity3Depth:a,opacity4Depth:l,opacity5Depth:n}};var AD={name:"Icon",common:M,self:Yg},Yu=AD;var Xg={itemFontSize:"12px",itemHeight:"36px",itemWidth:"52px",panelActionPadding:"8px 0"};var Xu=e=>{let{popoverColor:o,textColor2:t,primaryColor:r,hoverColor:a,dividerColor:l,opacityDisabled:n,boxShadow2:i,borderRadius:d,iconColor:s,iconColorDisabled:u}=e;return Object.assign(Object.assign({},Xg),{panelColor:o,panelBoxShadow:i,panelDividerColor:l,itemTextColor:t,itemTextColorActive:r,itemColorHover:a,itemOpacityDisabled:n,itemBorderRadius:d,borderRadius:d,iconColor:s,iconColorDisabled:u})},DD=Ie({name:"TimePicker",common:Se,peers:{Scrollbar:Io,Button:zo,Input:Ct},self:Xu}),Ju=DD;var PD={name:"TimePicker",common:M,peers:{Scrollbar:go,Button:wo,Input:Ao},self:Xu},xn=PD;var Jg={itemSize:"24px",itemCellWidth:"38px",itemCellHeight:"32px",scrollItemWidth:"80px",scrollItemHeight:"40px",panelExtraFooterPadding:"8px 12px",panelActionPadding:"8px 12px",calendarTitlePadding:"0",calendarTitleHeight:"28px",arrowSize:"14px",panelHeaderPadding:"8px 12px",calendarDaysHeight:"32px",calendarTitleGridTempateColumns:"28px 28px 1fr 28px 28px",calendarLeftPaddingDate:"6px 12px 4px 12px",calendarLeftPaddingDatetime:"4px 12px",calendarLeftPaddingDaterange:"6px 12px 4px 12px",calendarLeftPaddingDatetimerange:"4px 12px",calendarLeftPaddingMonth:"0",calendarLeftPaddingYear:"0",calendarLeftPaddingQuarter:"0",calendarRightPaddingDate:"6px 12px 4px 12px",calendarRightPaddingDatetime:"4px 12px",calendarRightPaddingDaterange:"6px 12px 4px 12px",calendarRightPaddingDatetimerange:"4px 12px",calendarRightPaddingMonth:"0",calendarRightPaddingYear:"0",calendarRightPaddingQuarter:"0"};var ef=e=>{let{hoverColor:o,fontSize:t,textColor2:r,textColorDisabled:a,popoverColor:l,primaryColor:n,borderRadiusSmall:i,iconColor:d,iconColorDisabled:s,textColor1:u,dividerColor:f,boxShadow2:m,borderRadius:p,fontWeightStrong:c}=e;return Object.assign(Object.assign({},Jg),{itemFontSize:t,calendarDaysFontSize:t,calendarTitleFontSize:t,itemTextColor:r,itemTextColorDisabled:a,itemTextColorActive:l,itemTextColorCurrent:n,itemColorIncluded:te(n,{alpha:.1}),itemColorHover:o,itemColorDisabled:o,itemColorActive:n,itemBorderRadius:i,panelColor:l,panelTextColor:r,arrowColor:d,calendarTitleTextColor:u,calendarTitleColorHover:o,calendarDaysTextColor:r,panelHeaderDividerColor:f,calendarDaysDividerColor:f,calendarDividerColor:f,panelActionDividerColor:f,panelBoxShadow:m,panelBorderRadius:p,calendarTitleFontWeight:c,scrollItemBorderRadius:p,iconColor:d,iconColorDisabled:s})},c7=Ie({name:"DatePicker",common:Se,peers:{Input:Ct,Button:zo,TimePicker:Ju,Scrollbar:Io},self:ef});var MD={name:"DatePicker",common:M,peers:{Input:Ao,Button:wo,TimePicker:xn,Scrollbar:go},self(e){let{popoverColor:o,hoverColor:t,primaryColor:r}=e,a=ef(e);return a.itemColorDisabled=ge(o,t),a.itemColorIncluded=te(r,{alpha:.15}),a.itemColorHover=ge(o,t),a}},of=MD;var ew={thPaddingBorderedSmall:"8px 12px",thPaddingBorderedMedium:"12px 16px",thPaddingBorderedLarge:"16px 24px",thPaddingSmall:"0",thPaddingMedium:"0",thPaddingLarge:"0",tdPaddingBorderedSmall:"8px 12px",tdPaddingBorderedMedium:"12px 16px",tdPaddingBorderedLarge:"16px 24px",tdPaddingSmall:"0 0 8px 0",tdPaddingMedium:"0 0 12px 0",tdPaddingLarge:"0 0 16px 0"};var ow=e=>{let{tableHeaderColor:o,textColor2:t,textColor1:r,cardColor:a,modalColor:l,popoverColor:n,dividerColor:i,borderRadius:d,fontWeightStrong:s,lineHeight:u,fontSizeSmall:f,fontSizeMedium:m,fontSizeLarge:p}=e;return Object.assign(Object.assign({},ew),{lineHeight:u,fontSizeSmall:f,fontSizeMedium:m,fontSizeLarge:p,titleTextColor:r,thColor:ge(a,o),thColorModal:ge(l,o),thColorPopover:ge(n,o),thTextColor:r,thFontWeight:s,tdTextColor:t,tdColor:a,tdColorModal:l,tdColorPopover:n,borderColor:ge(a,i),borderColorModal:ge(l,i),borderColorPopover:ge(n,i),borderRadius:d})};var BD={name:"Descriptions",common:M,self:ow},tf=BD;var tw={titleFontSize:"18px",padding:"16px 28px 20px 28px",iconSize:"28px",actionSpace:"12px",contentMargin:"8px 0 16px 0",iconMargin:"0 4px 0 0",iconMarginIconTop:"4px 0 8px 0",closeSize:"18px",closeMargin:"22px 28px 0 0",closeMarginIconTop:"12px 18px 0 0"};var rf=e=>{let{textColor1:o,textColor2:t,modalColor:r,closeColor:a,closeColorHover:l,closeColorPressed:n,infoColor:i,successColor:d,warningColor:s,errorColor:u,primaryColor:f,dividerColor:m,borderRadius:p,fontWeightStrong:c,lineHeight:R,fontSize:y}=e;return Object.assign(Object.assign({},tw),{fontSize:y,lineHeight:R,border:`1px solid ${m}`,titleTextColor:o,textColor:t,color:r,closeColor:a,closeColorHover:l,closeColorPressed:n,iconColor:f,iconColorInfo:i,iconColorSuccess:d,iconColorWarning:s,iconColorError:u,borderRadius:p,titleFontWeight:c})},ED=Ie({name:"Dialog",common:Se,peers:{Button:zo},self:rf}),af=ED;var LD={name:"Dialog",common:M,peers:{Button:wo},self:rf},Sn=LD;var lf=e=>{let{modalColor:o,textColor2:t,boxShadow3:r}=e;return{color:o,textColor:t,boxShadow:r}},J7=Ie({name:"Modal",common:Se,peers:{Scrollbar:Io,Dialog:af,Card:Pu},self:lf});var ND={name:"Modal",common:M,peers:{Scrollbar:go,Dialog:Sn,Card:dn},self:lf},nf=ND;var rw=e=>{let{textColor1:o,dividerColor:t,fontWeightStrong:r}=e;return{textColor:o,color:t,fontWeight:r}};var _D={name:"Divider",common:M,self:rw},df=_D;var sf=e=>{let{modalColor:o,textColor1:t,textColor2:r,boxShadow3:a,lineHeight:l,fontWeightStrong:n,dividerColor:i,closeColor:d,closeColorHover:s,closeColorPressed:u}=e;return{bodyPadding:"16px 24px",headerPadding:"16px 24px",footerPadding:"16px 24px",color:o,textColor:r,titleTextColor:t,titleFontSize:"18px",titleFontWeight:n,boxShadow:a,lineHeight:l,headerBorderBottom:`1px solid ${i}`,footerBorderTop:`1px solid ${i}`,closeColor:d,closeColorHover:s,closeColorPressed:u,closeSize:"18px"}},gq=Ie({name:"Drawer",common:Se,peers:{Scrollbar:Io},self:sf});var ID={name:"Drawer",common:M,peers:{Scrollbar:go},self:sf},uf=ID;var aw={actionMargin:"0 0 0 20px",actionMarginRtl:"0 20px 0 0"};var HD={name:"DynamicInput",common:M,peers:{Input:Ao,Button:wo},self(){return aw}},ff=HD;var lw={gapSmall:"4px 8px",gapMedium:"8px 12px",gapLarge:"12px 16px"};var VD={name:"Space",self(){return lw}},gn=VD;var WD={name:"DynamicTags",common:M,peers:{Input:Ao,Button:wo,Tag:tn,Space:gn},self(){return{inputWidth:"64px"}}},pf=WD;var zD={name:"Element",common:M},mf=zD;var nw={feedbackPadding:"4px 0 0 2px",feedbackHeightSmall:"24px",feedbackHeightMedium:"24px",feedbackHeightLarge:"26px",feedbackFontSizeSmall:"13px",feedbackFontSizeMedium:"14px",feedbackFontSizeLarge:"14px",labelFontSizeLeftSmall:"14px",labelFontSizeLeftMedium:"14px",labelFontSizeLeftLarge:"15px",labelFontSizeTopSmall:"13px",labelFontSizeTopMedium:"14px",labelFontSizeTopLarge:"14px",labelHeightSmall:"24px",labelHeightMedium:"26px",labelHeightLarge:"28px",labelPaddingVertical:"0 0 8px 2px",labelPaddingHorizontal:"0 12px 0 0",labelTextAlignVertical:"left",labelTextAlignHorizontal:"right"};var iw=e=>{let{heightSmall:o,heightMedium:t,heightLarge:r,textColor1:a,errorColor:l,warningColor:n,lineHeight:i,textColor3:d}=e;return Object.assign(Object.assign({},nw),{blankHeightSmall:o,blankHeightMedium:t,blankHeightLarge:r,lineHeight:i,labelTextColor:a,asteriskColor:l,feedbackTextColorError:l,feedbackTextColorWarning:n,feedbackTextColor:d})};var jD={name:"Form",common:M,self:iw},cf=jD;var $D={name:"GradientText",common:M,self(e){let{primaryColor:o,successColor:t,warningColor:r,errorColor:a,infoColor:l,primaryColorSuppl:n,successColorSuppl:i,warningColorSuppl:d,errorColorSuppl:s,infoColorSuppl:u,fontWeightStrong:f}=e;return{fontWeight:f,rotate:"252deg",colorStartPrimary:o,colorEndPrimary:n,colorStartInfo:l,colorEndInfo:u,colorStartWarning:r,colorEndWarning:d,colorStartError:a,colorEndError:s,colorStartSuccess:t,colorEndSuccess:i}}},hf=$D;var dw=e=>{let{primaryColor:o,baseColor:t}=e;return{color:o,iconColor:t}};var UD={name:"IconWrapper",common:M,self:dw},xf=UD;var KD={name:"ButtonGroup",common:M},Sf=KD;var GD={name:"InputNumber",common:M,peers:{Button:wo,Input:Ao},self(e){let{textColorDisabled:o}=e;return{iconColorDisabled:o}}},gf=GD;var qD={name:"Layout",common:M,peers:{Scrollbar:go},self(e){let{textColor2:o,bodyColor:t,popoverColor:r,cardColor:a,dividerColor:l,scrollbarColor:n,scrollbarColorHover:i}=e;return{textColor:o,textColorInverted:o,color:t,colorEmbedded:t,headerColor:a,headerColorInverted:a,footerColor:a,footerColorInverted:a,headerBorderColor:l,headerBorderColorInverted:l,footerBorderColor:l,footerBorderColorInverted:l,siderBorderColor:l,siderBorderColorInverted:l,siderColor:a,siderColorInverted:a,siderToggleButtonBorder:"1px solid transparent",siderToggleButtonColor:r,siderToggleButtonIconColor:o,siderToggleButtonIconColorInverted:o,siderToggleBarColor:ge(t,n),siderToggleBarColorHover:ge(t,i),__invertScrollbar:"false"}}},wf=qD;var sw=e=>{let{textColor2:o,cardColor:t,modalColor:r,popoverColor:a,dividerColor:l,borderRadius:n,fontSize:i}=e;return{textColor:o,color:t,colorModal:r,colorPopover:a,borderColor:l,borderColorModal:ge(r,l),borderColorPopover:ge(a,l),borderRadius:n,fontSize:i}};var QD={name:"List",common:M,self:sw},Tf=QD;var ZD={name:"LoadingBar",common:M,self(e){let{primaryColor:o}=e;return{colorError:"red",colorLoading:o,height:"2px"}}},Rf=ZD;var YD={name:"Log",common:M,peers:{Scrollbar:go,Code:sn},self(e){let{textColor2:o,inputColor:t,fontSize:r,primaryColor:a}=e;return{loaderFontSize:r,loaderTextColor:o,loaderColor:t,loaderBorder:"1px solid #0000",loadingColor:a}}},Of=YD;var XD={name:"Mention",common:M,peers:{InternalSelectMenu:Wt,Input:Ao},self(e){let{boxShadow2:o}=e;return{menuBoxShadow:o}}},Ff=XD;function JD(e,o,t,r){return{itemColorHoverInverted:"#0000",itemColorActiveInverted:o,itemColorActiveHoverInverted:o,itemColorActiveCollapsedInverted:o,itemTextColorInverted:e,itemTextColorHoverInverted:t,itemTextColorChildActiveInverted:t,itemTextColorActiveInverted:t,itemTextColorActiveHoverInverted:t,itemTextColorHorizontalInverted:e,itemTextColorHoverHorizontalInverted:t,itemTextColorChildActiveHorizontalInverted:t,itemTextColorActiveHorizontalInverted:t,itemTextColorActiveHoverHorizontalInverted:t,itemIconColorInverted:e,itemIconColorHoverInverted:t,itemIconColorActiveInverted:t,itemIconColorActiveHoverInverted:t,itemIconColorChildActiveInverted:t,itemIconColorCollapsedInverted:e,itemIconColorHorizontalInverted:e,itemIconColorHoverHorizontalInverted:t,itemIconColorActiveHorizontalInverted:t,itemIconColorActiveHoverHorizontalInverted:t,itemIconColorChildActiveHorizontalInverted:t,arrowColorInverted:e,arrowColorHoverInverted:t,arrowColorActiveInverted:t,arrowColorActiveHoverInverted:t,arrowColorChildActiveInverted:t,groupTextColorInverted:r}}var Cf=e=>{let{borderRadius:o,textColor3:t,primaryColor:r,textColor2:a,textColor1:l,fontSize:n,dividerColor:i,hoverColor:d,primaryColorHover:s}=e;return Object.assign({borderRadius:o,color:"#0000",groupTextColor:t,itemColorHover:d,itemColorActive:te(r,{alpha:.1}),itemColorActiveHover:te(r,{alpha:.1}),itemColorActiveCollapsed:te(r,{alpha:.1}),itemTextColor:a,itemTextColorHover:a,itemTextColorActive:r,itemTextColorActiveHover:r,itemTextColorChildActive:r,itemTextColorHorizontal:a,itemTextColorHoverHorizontal:s,itemTextColorActiveHorizontal:r,itemTextColorActiveHoverHorizontal:r,itemTextColorChildActiveHorizontal:r,itemIconColor:l,itemIconColorHover:l,itemIconColorActive:r,itemIconColorActiveHover:r,itemIconColorChildActive:r,itemIconColorCollapsed:l,itemIconColorHorizontal:l,itemIconColorHoverHorizontal:s,itemIconColorActiveHorizontal:r,itemIconColorActiveHoverHorizontal:r,itemIconColorChildActiveHorizontal:r,itemHeight:"42px",arrowColor:a,arrowColorHover:a,arrowColorActive:r,arrowColorActiveHover:r,arrowColorChildActive:r,colorInverted:"#0000",borderColorHorizontal:"#0000",fontSize:n,dividerColor:i},JD("#BBB",r,"#FFF","#AAA"))},lZ=Ie({name:"Menu",common:Se,peers:{Tooltip:pn,Dropdown:Zu},self:Cf});var eP={name:"Menu",common:M,peers:{Tooltip:dr,Dropdown:hn},self(e){let{primaryColor:o,primaryColorSuppl:t}=e,r=Cf(e);return r.itemColorActive=te(o,{alpha:.15}),r.itemColorActiveHover=te(o,{alpha:.15}),r.itemColorActiveCollapsed=te(o,{alpha:.15}),r.itemColorActiveInverted=t,r.itemColorActiveHoverInverted=t,r.itemColorActiveCollapsedInverted=t,r}},bf=eP;var uw={margin:"0 0 8px 0",padding:"10px 20px",maxWidth:"720px",minWidth:"420px",iconMargin:"0 10px 0 0",closeMargin:"0 0 0 12px",closeSize:"16px",iconSize:"20px",fontSize:"14px"};var fw=e=>{let{textColor2:o,closeColor:t,closeColorHover:r,closeColorPressed:a,infoColor:l,successColor:n,errorColor:i,warningColor:d,popoverColor:s,boxShadow2:u,primaryColor:f,lineHeight:m,borderRadius:p}=e;return Object.assign(Object.assign({},uw),{textColor:o,textColorInfo:o,textColorSuccess:o,textColorError:o,textColorWarning:o,textColorLoading:o,color:s,colorInfo:s,colorSuccess:s,colorError:s,colorWarning:s,colorLoading:s,boxShadow:u,boxShadowInfo:u,boxShadowSuccess:u,boxShadowError:u,boxShadowWarning:u,boxShadowLoading:u,iconColor:o,iconColorInfo:l,iconColorSuccess:n,iconColorWarning:d,iconColorError:i,iconColorLoading:f,closeColor:t,closeColorHover:r,closeColorPressed:a,closeColorInfo:t,closeColorHoverInfo:r,closeColorPressedInfo:a,closeColorSuccess:t,closeColorHoverSuccess:r,closeColorPressedSuccess:a,closeColorError:t,closeColorHoverError:r,closeColorPressedError:a,closeColorWarning:t,closeColorHoverWarning:r,closeColorPressedWarning:a,closeColorLoading:t,closeColorHoverLoading:r,closeColorPressedLoading:a,loadingColor:f,lineHeight:m,borderRadius:p})};var oP={name:"Message",common:M,self:fw},yf=oP;var pw={closeMargin:"18px 14px",closeSize:"16px",width:"365px",padding:"16px"};var vf=e=>{let{textColor2:o,successColor:t,infoColor:r,warningColor:a,errorColor:l,popoverColor:n,closeColor:i,closeColorHover:d,textColor1:s,textColor3:u,borderRadius:f,fontWeightStrong:m,boxShadow2:p,lineHeight:c,fontSize:R}=e;return Object.assign(Object.assign({},pw),{borderRadius:f,lineHeight:c,fontSize:R,headerFontWeight:m,iconColor:o,iconColorSuccess:t,iconColorInfo:r,iconColorWarning:a,iconColorError:l,color:n,textColor:o,closeColor:i,closeColorHover:d,closeColorPressed:i,headerTextColor:s,descriptionTextColor:u,actionTextColor:o,boxShadow:p})},kZ=Ie({name:"Notification",common:Se,peers:{Scrollbar:Io},self:vf});var tP={name:"Notification",common:M,peers:{Scrollbar:go},self:vf},kf=tP;var mw={titleFontSize:"18px",backSize:"22px"};function Af(e){let{textColor1:o,textColor2:t,textColor3:r,fontSize:a,fontWeightStrong:l,primaryColorHover:n,primaryColorPressed:i}=e;return Object.assign(Object.assign({},mw),{titleFontWeight:l,fontSize:a,titleTextColor:o,backColor:t,backColorHover:n,backColorPressed:i,subtitleTextColor:r})}var VZ=Ie({name:"PageHeader",common:Se,self:Af});var Df={name:"PageHeader",common:M,self:Af};var cw={iconSize:"22px"};var Pf=e=>{let{fontSize:o,warningColor:t}=e;return Object.assign(Object.assign({},cw),{fontSize:o,iconColor:t})},JZ=Ie({name:"Popconfirm",common:Se,peers:{Button:zo,Popover:zt},self:Pf});var rP={name:"Popconfirm",common:M,peers:{Button:wo,Popover:ut},self:Pf},Mf=rP;var aP={name:"Popselect",common:M,peers:{Popover:ut,InternalSelectMenu:Wt}},Bf=aP;var Ef=e=>{let{infoColor:o,successColor:t,warningColor:r,errorColor:a,textColor2:l,progressRailColor:n,fontSize:i,fontWeight:d}=e;return{fontSize:i,fontSizeCircle:"28px",fontWeightCircle:d,railColor:n,railHeight:"8px",iconSizeCircle:"36px",iconSizeLine:"18px",iconColor:o,iconColorInfo:o,iconColorSuccess:t,iconColorWarning:r,iconColorError:a,textColorCircle:l,textColorLineInner:"rgb(255, 255, 255)",textColorLineOuter:l,fillColor:o,fillColorInfo:o,fillColorSuccess:t,fillColorWarning:r,fillColorError:a,lineBgProcessing:"linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)"}},lP={name:"Progress",common:Se,self:Ef},Lf=lP;var nP={name:"Progress",common:M,self(e){let o=Ef(e);return o.textColorLineInner="rgb(0, 0, 0)",o.lineBgProcessing="linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)",o}},wn=nP;var iP={name:"Rate",common:M,self(e){let{railColor:o}=e;return{itemColor:o,itemColorActive:"#CCAA33",itemSize:"20px",sizeSmall:"16px",sizeMedium:"20px",sizeLarge:"24px"}}},Nf=iP;var hw={titleFontSizeSmall:"26px",titleFontSizeMedium:"32px",titleFontSizeLarge:"40px",titleFontSizeHuge:"48px",fontSizeSmall:"14px",fontSizeMedium:"14px",fontSizeLarge:"15px",fontSizeHuge:"16px",iconSizeSmall:"64px",iconSizeMedium:"80px",iconSizeLarge:"100px",iconSizeHuge:"125px",iconColor418:void 0,iconColor404:void 0,iconColor403:void 0,iconColor500:void 0};var xw=e=>{let{textColor2:o,textColor1:t,errorColor:r,successColor:a,infoColor:l,warningColor:n,lineHeight:i,fontWeightStrong:d}=e;return Object.assign(Object.assign({},hw),{lineHeight:i,titleFontWeight:d,titleTextColor:t,textColor:o,iconColorError:r,iconColorSuccess:a,iconColorInfo:l,iconColorWarning:n})};var dP={name:"Result",common:M,self:xw},_f=dP;var pd={railHeight:"4px",railWidthVertical:"4px",handleSize:"18px",dotHeight:"8px",dotWidth:"8px",dotBorderRadius:"4px"};var sP={name:"Slider",common:M,self(e){let o="0 2px 8px 0 rgba(0, 0, 0, 0.12)",{railColor:t,modalColor:r,primaryColorSuppl:a,popoverColor:l,textColor2:n,cardColor:i,borderRadius:d,fontSize:s,opacityDisabled:u}=e;return Object.assign(Object.assign({},pd),{fontSize:s,railColor:t,railColorHover:t,fillColor:a,fillColorHover:a,opacityDisabled:u,handleColor:"#FFF",dotColor:i,dotColorModal:r,dotColorPopover:l,handleBoxShadow:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowHover:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowActive:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowFocus:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",indicatorColor:l,indicatorBoxShadow:o,indicatorTextColor:n,indicatorBorderRadius:d,dotBorder:`2px solid ${t}`,dotBorderActive:`2px solid ${a}`,dotBoxShadow:""})}},If=sP;var uP=e=>{let o="rgba(0, 0, 0, .85)",t="0 2px 8px 0 rgba(0, 0, 0, 0.12)",{railColor:r,primaryColor:a,baseColor:l,cardColor:n,modalColor:i,popoverColor:d,borderRadius:s,fontSize:u,opacityDisabled:f}=e;return Object.assign(Object.assign({},pd),{fontSize:u,railColor:r,railColorHover:r,fillColor:a,fillColorHover:a,opacityDisabled:f,handleColor:"#FFF",dotColor:n,dotColorModal:i,dotColorPopover:d,handleBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowHover:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowActive:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowFocus:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",indicatorColor:o,indicatorBoxShadow:t,indicatorTextColor:l,indicatorBorderRadius:s,dotBorder:`2px solid ${r}`,dotBorderActive:`2px solid ${a}`,dotBoxShadow:""})},fP={name:"Slider",common:Se,self:uP},Hf=fP;var Sw=e=>{let{opacityDisabled:o,heightTiny:t,heightSmall:r,heightMedium:a,heightLarge:l,heightHuge:n,primaryColor:i,fontSize:d}=e;return{fontSize:d,textColor:i,sizeTiny:t,sizeSmall:r,sizeMedium:a,sizeLarge:l,sizeHuge:n,color:i,opacitySpinning:o}};var pP={name:"Spin",common:M,self:Sw},Vf=pP;var gw=e=>{let{textColor2:o,textColor3:t,fontSize:r,fontWeight:a}=e;return{labelFontSize:r,labelFontWeight:a,valueFontWeight:a,labelTextColor:t,valuePrefixTextColor:o,valueSuffixTextColor:o,valueTextColor:o}};var mP={name:"Statistic",common:M,self:gw},Wf=mP;var ww={stepHeaderFontSizeSmall:"14px",stepHeaderFontSizeMedium:"16px",indicatorIndexFontSizeSmall:"14px",indicatorIndexFontSizeMedium:"16px",indicatorSizeSmall:"22px",indicatorSizeMedium:"28px",indicatorIconSizeSmall:"14px",indicatorIconSizeMedium:"18px"};var Tw=e=>{let{fontWeightStrong:o,baseColor:t,textColorDisabled:r,primaryColor:a,errorColor:l,textColor1:n,textColor2:i}=e;return Object.assign(Object.assign({},ww),{stepHeaderFontWeight:o,indicatorTextColorProcess:t,indicatorTextColorWait:r,indicatorTextColorFinish:a,indicatorTextColorError:l,indicatorBorderColorProcess:a,indicatorBorderColorWait:r,indicatorBorderColorFinish:a,indicatorBorderColorError:l,indicatorColorProcess:a,indicatorColorWait:"#0000",indicatorColorFinish:"#0000",indicatorColorError:"#0000",splitorColorProcess:r,splitorColorWait:r,splitorColorFinish:a,splitorColorError:r,headerTextColorProcess:n,headerTextColorWait:r,headerTextColorFinish:r,headerTextColorError:l,descriptionTextColorProcess:i,descriptionTextColorWait:r,descriptionTextColorFinish:r,descriptionTextColorError:l})};var cP={name:"Steps",common:M,self:Tw},zf=cP;var Rw={buttonHeightSmall:"14px",buttonHeightMedium:"18px",buttonHeightLarge:"22px",buttonWidthSmall:"14px",buttonWidthMedium:"18px",buttonWidthLarge:"22px",buttonWidthPressedSmall:"20px",buttonWidthPressedMedium:"24px",buttonWidthPressedLarge:"28px",railHeightSmall:"18px",railHeightMedium:"22px",railHeightLarge:"26px",railWidthSmall:"32px",railWidthMedium:"40px",railWidthLarge:"48px"};var hP={name:"Switch",common:M,self(e){let{primaryColorSuppl:o,opacityDisabled:t,borderRadius:r,primaryColor:a,textColor2:l,baseColor:n}=e,i="rgba(255, 255, 255, .20)";return Object.assign(Object.assign({},Rw),{iconColor:n,textColor:l,loadingColor:o,opacityDisabled:t,railColor:i,railColorActive:o,buttonBoxShadow:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",buttonColor:"#FFF",railBorderRadiusSmall:r,railBorderRadiusMedium:r,railBorderRadiusLarge:r,buttonBorderRadiusSmall:r,buttonBorderRadiusMedium:r,buttonBorderRadiusLarge:r,boxShadowFocus:`0 0 8px 0 ${te(a,{alpha:.3})}`})}},jf=hP;var Ow={thPaddingSmall:"6px",thPaddingMedium:"12px",thPaddingLarge:"12px",tdPaddingSmall:"6px",tdPaddingMedium:"12px",tdPaddingLarge:"12px"};var Fw=e=>{let{dividerColor:o,cardColor:t,modalColor:r,popoverColor:a,tableHeaderColor:l,tableColorStriped:n,textColor1:i,textColor2:d,borderRadius:s,fontWeightStrong:u,lineHeight:f,fontSizeSmall:m,fontSizeMedium:p,fontSizeLarge:c}=e;return Object.assign(Object.assign({},Ow),{fontSizeSmall:m,fontSizeMedium:p,fontSizeLarge:c,lineHeight:f,borderRadius:s,borderColor:ge(t,o),borderColorModal:ge(r,o),borderColorPopover:ge(a,o),tdColor:t,tdColorModal:r,tdColorPopover:a,tdColorStriped:ge(t,n),tdColorStripedModal:ge(r,n),tdColorStripedPopover:ge(a,n),thColor:ge(t,l),thColorModal:ge(r,l),thColorPopover:ge(a,l),thTextColor:i,tdTextColor:d,thFontWeight:u})};var xP={name:"Table",common:M,self:Fw},$f=xP;var Cw={tabFontSizeSmall:"14px",tabFontSizeMedium:"14px",tabFontSizeLarge:"16px",tabGapSmallLine:"36px",tabGapMediumLine:"36px",tabGapLargeLine:"36px",tabPaddingSmallLine:"6px 0",tabPaddingMediumLine:"10px 0",tabPaddingLargeLine:"14px 0",tabGapSmallBar:"36px",tabGapMediumBar:"36px",tabGapLargeBar:"36px",tabPaddingSmallBar:"4px 0",tabPaddingMediumBar:"6px 0",tabPaddingLargeBar:"10px 0",tabGapSmallCard:"4px",tabGapMediumCard:"4px",tabGapLargeCard:"4px",tabPaddingSmallCard:"6px 10px",tabPaddingMediumCard:"8px 12px",tabPaddingLargeCard:"8px 16px",tabPaddingSmallSegment:"4px 0",tabPaddingMediumSegment:"6px 0",tabPaddingLargeSegment:"8px 0",tabGapSmallSegment:"0",tabGapMediumSegment:"0",tabGapLargeSegment:"0",panePaddingSmall:"8px 0 0 0",panePaddingMedium:"12px 0 0 0",panePaddingLarge:"16px 0 0 0"};var bw=e=>{let{textColor2:o,primaryColor:t,textColorDisabled:r,closeColor:a,closeColorHover:l,closeColorPressed:n,tabColor:i,baseColor:d,dividerColor:s,fontWeight:u,textColor1:f,borderRadius:m,fontSize:p,fontWeightStrong:c}=e;return Object.assign(Object.assign({},Cw),{colorSegment:i,tabFontSizeCard:p,tabTextColorLine:f,tabTextColorActiveLine:t,tabTextColorHoverLine:t,tabTextColorDisabledLine:r,tabTextColorSegment:f,tabTextColorActiveSegment:o,tabTextColorHoverSegment:o,tabTextColorDisabledSegment:r,tabTextColorBar:f,tabTextColorActiveBar:t,tabTextColorHoverBar:t,tabTextColorDisabledBar:r,tabTextColorCard:f,tabTextColorHoverCard:f,tabTextColorActiveCard:t,tabTextColorDisabledCard:r,barColor:t,closeColor:a,closeColorHover:l,closeColorPressed:n,tabColor:i,tabColorSegment:d,tabBorderColor:s,tabFontWeightActive:u,tabFontWeight:u,tabBorderRadius:m,paneTextColor:o,fontWeightStrong:c})};var SP={name:"Tabs",common:M,self(e){let o=bw(e),{inputColor:t}=e;return o.colorSegment=t,o.tabColorSegment=t,o}},Uf=SP;var yw=e=>{let{textColor1:o,textColor2:t,fontWeightStrong:r,fontSize:a}=e;return{fontSize:a,titleTextColor:o,textColor:t,titleFontWeight:r}};var gP={name:"Thing",common:M,self:yw},Kf=gP;var vw={titleMarginMedium:"0",titleMarginLarge:"-2px 0 0 0",titleFontSizeMedium:"14px",titleFontSizeLarge:"16px",iconSizeMedium:"14px",iconSizeLarge:"14px"};var wP={name:"Timeline",common:M,self(e){let{textColor3:o,infoColorSuppl:t,errorColorSuppl:r,successColorSuppl:a,warningColorSuppl:l,textColor1:n,textColor2:i,railColor:d,fontWeightStrong:s,fontSize:u}=e;return Object.assign(Object.assign({},vw),{contentFontSize:u,titleFontWeight:s,circleBorder:`2px solid ${o}`,circleBorderInfo:`2px solid ${t}`,circleBorderError:`2px solid ${r}`,circleBorderSuccess:`2px solid ${a}`,circleBorderWarning:`2px solid ${l}`,iconColor:o,iconColorInfo:t,iconColorError:r,iconColorSuccess:a,iconColorWarning:l,titleTextColor:n,contentTextColor:i,metaTextColor:o,lineColor:d})}},Gf=wP;var kw={extraFontSize:"12px",width:"440px"};var TP={name:"Transfer",common:M,peers:{Checkbox:jt,Scrollbar:go,Input:Ao,Empty:Ft,Button:wo},self(e){let{iconColorDisabled:o,iconColor:t,fontWeight:r,fontSizeLarge:a,fontSizeMedium:l,fontSizeSmall:n,heightLarge:i,heightMedium:d,heightSmall:s,borderRadius:u,inputColor:f,tableHeaderColor:m,textColor1:p,textColorDisabled:c,textColor2:R,hoverColor:y}=e;return Object.assign(Object.assign({},kw),{itemHeightSmall:s,itemHeightMedium:d,itemHeightLarge:i,fontSizeSmall:n,fontSizeMedium:l,fontSizeLarge:a,borderRadius:u,borderColor:"#0000",listColor:f,headerColor:m,titleTextColor:p,titleTextColorDisabled:c,extraTextColor:R,filterDividerColor:"#0000",itemTextColor:R,itemTextColorDisabled:c,itemColorPending:y,titleFontWeight:r,iconColor:t,iconColorDisabled:o})}},qf=TP;var Qf=e=>{let{borderRadiusSmall:o,hoverColor:t,pressedColor:r,primaryColor:a,textColor3:l,textColor2:n,textColorDisabled:i,fontSize:d}=e;return{fontSize:d,nodeBorderRadius:o,nodeColorHover:t,nodeColorPressed:r,nodeColorActive:te(a,{alpha:.1}),arrowColor:l,nodeTextColor:n,nodeTextColorDisabled:i,loadingColor:a,dropMarkColor:a}},RP=Ie({name:"Tree",common:Se,peers:{Checkbox:Cr,Scrollbar:Io,Empty:Ot},self:Qf}),Zf=RP;var OP={name:"Tree",common:M,peers:{Checkbox:jt,Scrollbar:go,Empty:Ft},self(e){let{primaryColor:o}=e,t=Qf(e);return t.nodeColorActive=te(o,{alpha:.15}),t}},Tn=OP;var FP={name:"TreeSelect",common:M,peers:{Tree:Tn,Empty:Ft,InternalSelection:ba}},Yf=FP;var Aw={headerFontSize1:"30px",headerFontSize2:"22px",headerFontSize3:"18px",headerFontSize4:"16px",headerFontSize5:"16px",headerFontSize6:"16px",headerMargin1:"28px 0 20px 0",headerMargin2:"28px 0 20px 0",headerMargin3:"28px 0 20px 0",headerMargin4:"28px 0 18px 0",headerMargin5:"28px 0 18px 0",headerMargin6:"28px 0 18px 0",headerPrefixWidth1:"16px",headerPrefixWidth2:"16px",headerPrefixWidth3:"12px",headerPrefixWidth4:"12px",headerPrefixWidth5:"12px",headerPrefixWidth6:"12px",headerBarWidth1:"4px",headerBarWidth2:"4px",headerBarWidth3:"3px",headerBarWidth4:"3px",headerBarWidth5:"3px",headerBarWidth6:"3px",pMargin:"16px 0 16px 0",liMargin:".25em 0 0 0",olPadding:"0 0 0 2em",ulPadding:"0 0 0 2em"};var Dw=e=>{let{primaryColor:o,textColor2:t,borderColor:r,lineHeight:a,fontSize:l,borderRadiusSmall:n,dividerColor:i,fontWeightStrong:d,textColor1:s,textColor3:u,infoColor:f,warningColor:m,errorColor:p,successColor:c,codeColor:R}=e;return Object.assign(Object.assign({},Aw),{aTextColor:o,blockquoteTextColor:t,blockquotePrefixColor:r,blockquoteLineHeight:a,blockquoteFontSize:l,codeBorderRadius:n,liTextColor:t,liLineHeight:a,liFontSize:l,hrColor:i,headerFontWeight:d,headerTextColor:s,pTextColor:t,pTextColor1Depth:s,pTextColor2Depth:t,pTextColor3Depth:u,pLineHeight:a,pFontSize:l,headerBarColor:o,headerBarColorPrimary:o,headerBarColorInfo:f,headerBarColorError:p,headerBarColorWarning:m,headerBarColorSuccess:c,textColor:t,textColor1Depth:s,textColor2Depth:t,textColor3Depth:u,textColorPrimary:o,textColorInfo:f,textColorSuccess:c,textColorWarning:m,textColorError:p,codeTextColor:t,codeColor:R,codeBorder:"1px solid #0000"})};var CP={name:"Typography",common:M,self:Dw},Xf=CP;var Jf=e=>{let{iconColor:o,primaryColor:t,errorColor:r,textColor2:a,successColor:l,opacityDisabled:n,actionColor:i,borderColor:d,hoverColor:s,lineHeight:u,borderRadius:f,fontSize:m}=e;return{fontSize:m,lineHeight:u,borderRadius:f,draggerColor:i,draggerBorder:`1px dashed ${d}`,draggerBorderHover:`1px dashed ${t}`,itemColorHover:s,itemColorHoverError:te(r,{alpha:.06}),itemTextColor:a,itemTextColorError:r,itemTextColorSuccess:l,itemIconColor:o,itemDisabledOpacity:n,itemBorderImageCardError:`1px solid ${r}`,itemBorderImageCard:`1px solid ${d}`}},VJ=Ie({name:"Upload",common:Se,peers:{Button:zo,Progress:Lf},self:Jf});var bP={name:"Upload",common:M,peers:{Button:wo,Progress:wn},self(e){let{errorColor:o}=e,t=Jf(e);return t.itemColorHoverError=te(o,{alpha:.09}),t}},ep=bP;var yP={name:"Watermark",common:M,self(e){let{fontFamily:o}=e;return{fontFamily:o}}},op=yP;var tp={name:"Image",common:M,peers:{Tooltip:dr},self:e=>{let{textColor2:o}=e;return{toolbarIconColor:o,toolbarColor:"rgba(0, 0, 0, .35)",toolbarBoxShadow:"none",toolbarBorderRadius:"24px"}}};var rp={name:"Skeleton",common:M,self(e){let{heightSmall:o,heightMedium:t,heightLarge:r,borderRadius:a}=e;return{color:"rgba(255, 255, 255, 0.12)",colorEnd:"rgba(255, 255, 255, 0.18)",borderRadius:a,heightSmall:o,heightMedium:t,heightLarge:r}}};function ap(e){return window.TouchEvent&&e instanceof window.TouchEvent}function lp(){let e=Z(new Map),o=t=>r=>{e.value.set(t,r)};return Yd(()=>e.value.clear()),[e,o]}var Pw=J([$("slider",` + `))]);var YT=Object.assign(Object.assign({},Ct.props),{size:String,checked:{type:[Boolean,String,Number],default:void 0},defaultChecked:{type:[Boolean,String,Number],default:!1},value:[String,Number],disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:String,focusable:{type:Boolean,default:!0},checkedValue:{type:[Boolean,String,Number],default:!0},uncheckedValue:{type:[Boolean,String,Number],default:!1},"onUpdate:checked":[Function,Array],onUpdateChecked:[Function,Array],privateInsideTable:Boolean,onChange:[Function,Array]}),eu=ue({name:"Checkbox",props:YT,setup(e){let t=X(null),{mergedClsPrefixRef:o,inlineThemeDisabled:r,mergedRtlRef:n}=Mt(e),i=Co(e,{mergedSize(D){let{size:x}=e;if(x!==void 0)return x;if(s){let{value:k}=s.mergedSizeRef;if(k!==void 0)return k}if(D){let{mergedSize:k}=D;if(k!==void 0)return k.value}return"medium"},mergedDisabled(D){let{disabled:x}=e;if(x!==void 0)return x;if(s){if(s.disabledRef.value)return!0;let{maxRef:{value:k},checkedCountRef:A}=s;if(k!==void 0&&A.value>=k&&!p.value)return!0;let{minRef:{value:E}}=s;if(E!==void 0&&A.value<=E&&p.value)return!0}return D?D.disabled.value:!1}}),{mergedDisabledRef:a,mergedSizeRef:l}=i,s=ke(Jd,null),c=X(e.defaultChecked),d=Re(e,"checked"),u=Xt(d,c),p=Qe(()=>{if(s){let D=s.valueSetRef.value;return D&&e.value!==void 0?D.has(e.value):!1}else return u.value===e.checkedValue}),f=Ct("Checkbox","-checkbox",sb,mr,e,o);function m(D){if(s&&e.value!==void 0)s.toggleCheckbox(!p.value,e.value);else{let{onChange:x,"onUpdate:checked":k,onUpdateChecked:A}=e,{nTriggerFormInput:E,nTriggerFormChange:z}=i,M=p.value?e.uncheckedValue:e.checkedValue;k&&Se(k,M,D),A&&Se(A,M,D),x&&Se(x,M,D),E(),z(),c.value=M}}function y(D){a.value||m(D)}function w(D){if(!a.value)switch(D.code){case"Space":case"Enter":case"NumpadEnter":m(D)}}function g(D){switch(D.code){case"Space":D.preventDefault()}}let O={focus:()=>{var D;(D=t.value)===null||D===void 0||D.focus()},blur:()=>{var D;(D=t.value)===null||D===void 0||D.blur()}},j=bn("Checkbox",n,o),S=F(()=>{let{value:D}=l,{common:{cubicBezierEaseInOut:x},self:{borderRadius:k,color:A,colorChecked:E,colorDisabled:z,colorTableHeader:M,colorTableHeaderModal:se,colorTableHeaderPopover:ye,checkMarkColor:Ie,checkMarkColorDisabled:fe,border:ce,borderFocus:we,borderDisabled:Me,borderChecked:Be,boxShadowFocus:Le,textColor:Je,textColorDisabled:Xe,checkMarkColorDisabledChecked:ct,colorDisabledChecked:wt,borderDisabledChecked:ze,labelPadding:We,labelLineHeight:vt,[Te("fontSize",D)]:Pe,[Te("size",D)]:ot}}=f.value;return{"--n-label-line-height":vt,"--n-size":ot,"--n-bezier":x,"--n-border-radius":k,"--n-border":ce,"--n-border-checked":Be,"--n-border-focus":we,"--n-border-disabled":Me,"--n-border-disabled-checked":ze,"--n-box-shadow-focus":Le,"--n-color":A,"--n-color-checked":E,"--n-color-table":M,"--n-color-table-modal":se,"--n-color-table-popover":ye,"--n-color-disabled":z,"--n-color-disabled-checked":wt,"--n-text-color":Je,"--n-text-color-disabled":Xe,"--n-check-mark-color":Ie,"--n-check-mark-color-disabled":fe,"--n-check-mark-color-disabled-checked":ct,"--n-font-size":Pe,"--n-label-padding":We}}),v=r?qt("checkbox",F(()=>l.value[0]),S,e):void 0;return Object.assign(i,O,{rtlEnabled:j,selfRef:t,mergedClsPrefix:o,mergedDisabled:a,renderedChecked:p,mergedTheme:f,labelId:Ic(),handleClick:y,handleKeyUp:w,handleKeyDown:g,cssVars:r?void 0:S,themeClass:v?.themeClass,onRender:v?.onRender})},render(){var e;let{$slots:t,renderedChecked:o,mergedDisabled:r,indeterminate:n,privateInsideTable:i,cssVars:a,labelId:l,label:s,mergedClsPrefix:c,focusable:d,handleKeyUp:u,handleKeyDown:p,handleClick:f}=this;return(e=this.onRender)===null||e===void 0||e.call(this),b("div",{ref:"selfRef",class:[`${c}-checkbox`,this.themeClass,this.rtlEnabled&&`${c}-checkbox--rtl`,o&&`${c}-checkbox--checked`,r&&`${c}-checkbox--disabled`,n&&`${c}-checkbox--indeterminate`,i&&`${c}-checkbox--inside-table`],tabindex:r||!d?void 0:0,role:"checkbox","aria-checked":n?"mixed":o,"aria-labelledby":l,style:a,onKeyup:u,onKeydown:p,onClick:f,onMousedown:()=>{gt("selectstart",window,m=>{m.preventDefault()},{once:!0})}},b("div",{class:`${c}-checkbox-box-wrapper`},"\xA0",b("div",{class:`${c}-checkbox-box`},b(So,null,{default:()=>this.indeterminate?b("div",{key:"indeterminate",class:`${c}-checkbox-icon`},lb):b("div",{key:"check",class:`${c}-checkbox-icon`},ab)}),b("div",{class:`${c}-checkbox-box__border`}))),s!==null||t.default?b("span",{class:`${c}-checkbox__label`,id:l},t.default?t.default():s):null)}});var XT={name:"Code",common:R,self(e){let{textColor2:t,fontSize:o,fontWeightStrong:r}=e;return{textColor:t,fontSize:o,fontWeightStrong:r,"mono-3":"#5c6370","hue-1":"#56b6c2","hue-2":"#61aeee","hue-3":"#c678dd","hue-4":"#98c379","hue-5":"#e06c75","hue-5-2":"#be5046","hue-6":"#d19a66","hue-6-2":"#e6c07b"}}},ca=XT;var cb=e=>{let{fontWeight:t,textColor1:o,textColor2:r,dividerColor:n,fontSize:i}=e;return{titleFontSize:i,titleFontWeight:t,dividerColor:n,titleTextColor:o,fontSize:i,textColor:r,arrowColor:r}};var ZT={name:"Collapse",common:R,self:cb},tu=ZT;var db=e=>{let{cubicBezierEaseInOut:t}=e;return{bezier:t}};var QT={name:"CollapseTransition",common:R,self:db},ou=QT;var ub={abstract:Boolean,bordered:{type:Boolean,default:void 0},clsPrefix:String,locale:Object,dateLocale:Object,namespace:String,rtl:Array,tag:{type:String,default:"div"},hljs:Object,theme:Object,themeOverrides:Object,componentOptions:Object,icons:Object,breakpoints:Object,inlineThemeDisabled:{type:Boolean,default:void 0},as:{type:String,validator:()=>(cl("config-provider","`as` is deprecated, please use `tag` instead."),!0),default:void 0}},ru=ue({name:"ConfigProvider",alias:["App"],props:ub,setup(e){let t=ke(Zt,null),o=F(()=>{let{theme:f}=e;if(f===null)return;let m=t?.mergedThemeRef.value;return f===void 0?m:m===void 0?f:Object.assign({},m,f)}),r=F(()=>{let{themeOverrides:f}=e;if(f!==null){if(f===void 0)return t?.mergedThemeOverridesRef.value;{let m=t?.mergedThemeOverridesRef.value;return m===void 0?f:Vr({},m,f)}}}),n=Qe(()=>{let{namespace:f}=e;return f===void 0?t?.mergedNamespaceRef.value:f}),i=Qe(()=>{let{bordered:f}=e;return f===void 0?t?.mergedBorderedRef.value:f}),a=F(()=>{let{icons:f}=e;return f===void 0?t?.mergedIconsRef.value:f}),l=F(()=>{let{componentOptions:f}=e;return f!==void 0?f:t?.mergedComponentPropsRef.value}),s=F(()=>{let{clsPrefix:f}=e;return f!==void 0?f:t?.mergedClsPrefixRef.value}),c=F(()=>{var f;let{rtl:m}=e;if(m===void 0)return t?.mergedRtlRef.value;let y={};for(let w of m)y[w.name]=Qr(w),(f=w.peers)===null||f===void 0||f.forEach(g=>{g.name in y||(y[g.name]=Qr(g))});return y}),d=F(()=>e.breakpoints||t?.mergedBreakpointsRef.value),u=e.inlineThemeDisabled||t?.inlineThemeDisabled,p=F(()=>{let{value:f}=o,{value:m}=r,y=m&&Object.keys(m).length!==0,w=f?.name;return w?y?`${w}-${so(JSON.stringify(r.value))}`:w:y?so(JSON.stringify(r.value)):""});return Yt(Zt,{mergedThemeHashRef:p,mergedBreakpointsRef:d,mergedRtlRef:c,mergedIconsRef:a,mergedComponentPropsRef:l,mergedBorderedRef:i,mergedNamespaceRef:n,mergedClsPrefixRef:s,mergedLocaleRef:F(()=>{let{locale:f}=e;if(f!==null)return f===void 0?t?.mergedLocaleRef.value:f}),mergedDateLocaleRef:F(()=>{let{dateLocale:f}=e;if(f!==null)return f===void 0?t?.mergedDateLocaleRef.value:f}),mergedHljsRef:F(()=>{let{hljs:f}=e;return f===void 0?t?.mergedHljsRef.value:f}),mergedThemeRef:o,mergedThemeOverridesRef:r,inlineThemeDisabled:u||!1}),{mergedClsPrefix:s,mergedBordered:i,mergedNamespace:n,mergedTheme:o,mergedThemeOverrides:r}},render(){var e,t,o,r;return this.abstract?(r=(o=this.$slots).default)===null||r===void 0?void 0:r.call(o):b(this.as||this.tag,{class:`${this.mergedClsPrefix||Yl}-config-provider`},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))}});function nu(e){let{boxShadow2:t}=e;return{menuBoxShadow:t}}var JT={name:"Select",common:ge,peers:{InternalSelection:na,InternalSelectMenu:vn},self:nu},iu=JT;var e2={name:"Select",common:R,peers:{InternalSelection:Cn,InternalSelectMenu:No},self:nu},da=e2;var fb={itemSize:"28px",itemPadding:"0 4px",itemMargin:"0 0 0 8px",itemMarginRtl:"0 8px 0 0",buttonIconSize:"16px",inputWidth:"60px",selectWidth:"unset",inputMargin:"0 0 0 8px",inputMarginRtl:"0 8px 0 0",selectMargin:"0 0 0 8px",prefixMargin:"0 8px 0 0",suffixMargin:"0 0 0 8px",jumperFontSize:"14px"};var au=e=>{let{textColor2:t,primaryColor:o,primaryColorHover:r,primaryColorPressed:n,inputColorDisabled:i,textColorDisabled:a,borderColor:l,borderRadius:s,fontSize:c}=e;return Object.assign(Object.assign({},fb),{buttonColor:"#0000",buttonColorHover:"#0000",buttonColorPressed:"#0000",buttonBorder:`1px solid ${l}`,buttonBorderHover:`1px solid ${l}`,buttonBorderPressed:`1px solid ${l}`,buttonIconColor:t,buttonIconColorHover:t,buttonIconColorPressed:t,itemTextColor:t,itemTextColorHover:r,itemTextColorPressed:n,itemTextColorActive:o,itemTextColorDisabled:a,itemColor:"#0000",itemColorHover:"#0000",itemColorPressed:"#0000",itemColorActive:"#0000",itemColorActiveHover:"#0000",itemColorDisabled:i,itemBorder:"1px solid #0000",itemBorderHover:"1px solid #0000",itemBorderPressed:"1px solid #0000",itemBorderActive:`1px solid ${o}`,itemBorderDisabled:`1px solid ${l}`,itemBorderRadius:s,itemFontSize:c,jumperTextColor:t,jumperTextColorDisabled:a})},t2={name:"Pagination",common:ge,peers:{Select:iu,Input:po},self:au},lu=t2;var o2={name:"Pagination",common:R,peers:{Select:da,Input:xt},self(e){let{primaryColor:t,opacity3:o}=e,r=te(t,{alpha:Number(o)}),n=au(e);return n.itemBorderActive=`1px solid ${r}`,n.itemBorderDisabled="1px solid #0000",n}},ua=o2;var us={padding:"8px 14px"};var r2={name:"Tooltip",common:R,peers:{Popover:Qt},self(e){let{borderRadius:t,boxShadow2:o,popoverColor:r,textColor2:n}=e;return Object.assign(Object.assign({},us),{borderRadius:t,boxShadow:o,color:r,textColor:n})}},or=r2;var n2=e=>{let{borderRadius:t,boxShadow2:o,baseColor:r}=e;return Object.assign(Object.assign({},us),{borderRadius:t,boxShadow:o,color:xe(r,"rgba(0, 0, 0, .85)"),textColor:r})},i2={name:"Tooltip",common:ge,peers:{Popover:Ro},self:n2},fa=i2;var a2={name:"Ellipsis",common:R,peers:{Tooltip:or}},pa=a2;var l2={name:"Ellipsis",common:ge,peers:{Tooltip:fa}},su=l2;var fs={radioSizeSmall:"14px",radioSizeMedium:"16px",radioSizeLarge:"18px",labelPadding:"0 8px"};var s2={name:"Radio",common:R,self(e){let{borderColor:t,primaryColor:o,baseColor:r,textColorDisabled:n,inputColorDisabled:i,textColor2:a,opacityDisabled:l,borderRadius:s,fontSizeSmall:c,fontSizeMedium:d,fontSizeLarge:u,heightSmall:p,heightMedium:f,heightLarge:m,lineHeight:y}=e;return Object.assign(Object.assign({},fs),{labelLineHeight:y,buttonHeightSmall:p,buttonHeightMedium:f,buttonHeightLarge:m,fontSizeSmall:c,fontSizeMedium:d,fontSizeLarge:u,boxShadow:`inset 0 0 0 1px ${t}`,boxShadowActive:`inset 0 0 0 1px ${o}`,boxShadowFocus:`inset 0 0 0 1px ${o}, 0 0 0 2px ${te(o,{alpha:.3})}`,boxShadowHover:`inset 0 0 0 1px ${o}`,boxShadowDisabled:`inset 0 0 0 1px ${t}`,color:"#0000",colorDisabled:i,textColor:a,textColorDisabled:n,dotColorActive:o,dotColorDisabled:t,buttonBorderColor:t,buttonBorderColorActive:o,buttonBorderColorHover:o,buttonColor:"#0000",buttonColorActive:o,buttonTextColor:a,buttonTextColorActive:r,buttonTextColorHover:o,opacityDisabled:l,buttonBoxShadowFocus:`inset 0 0 0 1px ${o}, 0 0 0 2px ${te(o,{alpha:.3})}`,buttonBoxShadowHover:`inset 0 0 0 1px ${o}`,buttonBoxShadow:"inset 0 0 0 1px #0000",buttonBorderRadius:s})}},ma=s2;var c2=e=>{let{borderColor:t,primaryColor:o,baseColor:r,textColorDisabled:n,inputColorDisabled:i,textColor2:a,opacityDisabled:l,borderRadius:s,fontSizeSmall:c,fontSizeMedium:d,fontSizeLarge:u,heightSmall:p,heightMedium:f,heightLarge:m,lineHeight:y}=e;return Object.assign(Object.assign({},fs),{labelLineHeight:y,buttonHeightSmall:p,buttonHeightMedium:f,buttonHeightLarge:m,fontSizeSmall:c,fontSizeMedium:d,fontSizeLarge:u,boxShadow:`inset 0 0 0 1px ${t}`,boxShadowActive:`inset 0 0 0 1px ${o}`,boxShadowFocus:`inset 0 0 0 1px ${o}, 0 0 0 2px ${te(o,{alpha:.2})}`,boxShadowHover:`inset 0 0 0 1px ${o}`,boxShadowDisabled:`inset 0 0 0 1px ${t}`,color:r,colorDisabled:i,textColor:a,textColorDisabled:n,dotColorActive:o,dotColorDisabled:t,buttonBorderColor:t,buttonBorderColorActive:o,buttonBorderColorHover:t,buttonColor:r,buttonColorActive:r,buttonTextColor:a,buttonTextColorActive:o,buttonTextColorHover:o,opacityDisabled:l,buttonBoxShadowFocus:`inset 0 0 0 1px ${o}, 0 0 0 2px ${te(o,{alpha:.3})}`,buttonBoxShadowHover:"inset 0 0 0 1px #0000",buttonBoxShadow:"inset 0 0 0 1px #0000",buttonBorderRadius:s})},d2={name:"Radio",common:ge,self:c2},cu=d2;var pb={thPaddingSmall:"8px",thPaddingMedium:"12px",thPaddingLarge:"12px",tdPaddingSmall:"8px",tdPaddingMedium:"12px",tdPaddingLarge:"12px",sorterSize:"15px",filterSize:"15px",paginationMargin:"12px 0 0 0",emptyPadding:"48px 0",actionPadding:"8px 12px",actionButtonMargin:"0 8px 0 0"};var du=e=>{let{cardColor:t,modalColor:o,popoverColor:r,textColor2:n,textColor1:i,tableHeaderColor:a,tableColorHover:l,iconColor:s,primaryColor:c,fontWeightStrong:d,borderRadius:u,lineHeight:p,fontSizeSmall:f,fontSizeMedium:m,fontSizeLarge:y,dividerColor:w,heightSmall:g,opacityDisabled:O,tableColorStriped:j}=e;return Object.assign(Object.assign({},pb),{actionDividerColor:w,lineHeight:p,borderRadius:u,fontSizeSmall:f,fontSizeMedium:m,fontSizeLarge:y,borderColor:xe(t,w),tdColorHover:xe(t,l),tdColorStriped:xe(t,j),thColor:xe(t,a),thColorHover:xe(xe(t,a),l),tdColor:t,tdTextColor:n,thTextColor:i,thFontWeight:d,thButtonColorHover:l,thIconColor:s,thIconColorActive:c,borderColorModal:xe(o,w),tdColorHoverModal:xe(o,l),tdColorStripedModal:xe(o,j),thColorModal:xe(o,a),thColorHoverModal:xe(xe(o,a),l),tdColorModal:o,borderColorPopover:xe(r,w),tdColorHoverPopover:xe(r,l),tdColorStripedPopover:xe(r,j),thColorPopover:xe(r,a),thColorHoverPopover:xe(xe(r,a),l),tdColorPopover:r,boxShadowBefore:"inset -12px 0 8px -12px rgba(0, 0, 0, .18)",boxShadowAfter:"inset 12px 0 8px -12px rgba(0, 0, 0, .18)",loadingColor:c,loadingSize:g,opacityLoading:O})},y7={name:"DataTable",common:ge,peers:{Button:Nt,Checkbox:mr,Radio:cu,Pagination:lu,Scrollbar:_t,Empty:uo,Popover:Ro,Ellipsis:su},self:du};var u2={name:"DataTable",common:R,peers:{Button:lt,Checkbox:Io,Radio:ma,Pagination:ua,Scrollbar:at,Empty:fo,Popover:Qt,Ellipsis:pa},self(e){let t=du(e);return t.boxShadowAfter="inset 12px 0 8px -12px rgba(0, 0, 0, .36)",t.boxShadowBefore="inset -12px 0 8px -12px rgba(0, 0, 0, .36)",t}},uu=u2;var mb={padding:"4px 0",optionIconSizeSmall:"14px",optionIconSizeMedium:"16px",optionIconSizeLarge:"16px",optionIconSizeHuge:"18px",optionSuffixWidthSmall:"14px",optionSuffixWidthMedium:"14px",optionSuffixWidthLarge:"16px",optionSuffixWidthHuge:"16px",optionIconSuffixWidthSmall:"32px",optionIconSuffixWidthMedium:"32px",optionIconSuffixWidthLarge:"36px",optionIconSuffixWidthHuge:"36px",optionPrefixWidthSmall:"14px",optionPrefixWidthMedium:"14px",optionPrefixWidthLarge:"16px",optionPrefixWidthHuge:"16px",optionIconPrefixWidthSmall:"36px",optionIconPrefixWidthMedium:"36px",optionIconPrefixWidthLarge:"40px",optionIconPrefixWidthHuge:"40px"};var fu=e=>{let{primaryColor:t,textColor2:o,dividerColor:r,hoverColor:n,popoverColor:i,invertedColor:a,borderRadius:l,fontSizeSmall:s,fontSizeMedium:c,fontSizeLarge:d,fontSizeHuge:u,heightSmall:p,heightMedium:f,heightLarge:m,heightHuge:y,textColor3:w,opacityDisabled:g}=e;return Object.assign(Object.assign({},mb),{optionHeightSmall:p,optionHeightMedium:f,optionHeightLarge:m,optionHeightHuge:y,borderRadius:l,fontSizeSmall:s,fontSizeMedium:c,fontSizeLarge:d,fontSizeHuge:u,optionTextColor:o,optionTextColorHover:o,optionTextColorActive:t,optionTextColorChildActive:t,color:i,dividerColor:r,suffixColor:o,prefixColor:o,optionColorHover:n,optionColorActive:te(t,{alpha:.1}),groupHeaderTextColor:w,optionTextColorInverted:"#BBB",optionTextColorHoverInverted:"#FFF",optionTextColorActiveInverted:"#FFF",optionTextColorChildActiveInverted:"#FFF",colorInverted:a,dividerColorInverted:"#BBB",suffixColorInverted:"#BBB",prefixColorInverted:"#BBB",optionColorHoverInverted:t,optionColorActiveInverted:t,groupHeaderTextColorInverted:"#AAA",optionOpacityDisabled:g})},f2={name:"Dropdown",common:ge,peers:{Popover:Ro},self:fu},pu=f2;var p2={name:"Dropdown",common:R,peers:{Popover:Qt},self(e){let{primaryColorSuppl:t,primaryColor:o,popoverColor:r}=e,n=fu(e);return n.colorInverted=r,n.optionColorActive=te(o,{alpha:.15}),n.optionColorActiveInverted=t,n.optionColorHoverInverted=t,n}},ha=p2;var hb=e=>{let{textColorBase:t,opacity1:o,opacity2:r,opacity3:n,opacity4:i,opacity5:a}=e;return{color:t,opacity1Depth:o,opacity2Depth:r,opacity3Depth:n,opacity4Depth:i,opacity5Depth:a}};var m2={name:"Icon",common:R,self:hb},mu=m2;var gb={itemFontSize:"12px",itemHeight:"36px",itemWidth:"52px",panelActionPadding:"8px 0"};var hu=e=>{let{popoverColor:t,textColor2:o,primaryColor:r,hoverColor:n,dividerColor:i,opacityDisabled:a,boxShadow2:l,borderRadius:s,iconColor:c,iconColorDisabled:d}=e;return Object.assign(Object.assign({},gb),{panelColor:t,panelBoxShadow:l,panelDividerColor:i,itemTextColor:o,itemTextColorActive:r,itemColorHover:n,itemOpacityDisabled:a,itemBorderRadius:s,borderRadius:s,iconColor:c,iconColorDisabled:d})},h2={name:"TimePicker",common:ge,peers:{Scrollbar:_t,Button:Nt,Input:po},self:hu},gu=h2;var g2={name:"TimePicker",common:R,peers:{Scrollbar:at,Button:lt,Input:xt},self:hu},ga=g2;var xb={itemSize:"24px",itemCellWidth:"38px",itemCellHeight:"32px",scrollItemWidth:"80px",scrollItemHeight:"40px",panelExtraFooterPadding:"8px 12px",panelActionPadding:"8px 12px",calendarTitlePadding:"0",calendarTitleHeight:"28px",arrowSize:"14px",panelHeaderPadding:"8px 12px",calendarDaysHeight:"32px",calendarTitleGridTempateColumns:"28px 28px 1fr 28px 28px",calendarLeftPaddingDate:"6px 12px 4px 12px",calendarLeftPaddingDatetime:"4px 12px",calendarLeftPaddingDaterange:"6px 12px 4px 12px",calendarLeftPaddingDatetimerange:"4px 12px",calendarLeftPaddingMonth:"0",calendarLeftPaddingYear:"0",calendarLeftPaddingQuarter:"0",calendarRightPaddingDate:"6px 12px 4px 12px",calendarRightPaddingDatetime:"4px 12px",calendarRightPaddingDaterange:"6px 12px 4px 12px",calendarRightPaddingDatetimerange:"4px 12px",calendarRightPaddingMonth:"0",calendarRightPaddingYear:"0",calendarRightPaddingQuarter:"0"};var xu=e=>{let{hoverColor:t,fontSize:o,textColor2:r,textColorDisabled:n,popoverColor:i,primaryColor:a,borderRadiusSmall:l,iconColor:s,iconColorDisabled:c,textColor1:d,dividerColor:u,boxShadow2:p,borderRadius:f,fontWeightStrong:m}=e;return Object.assign(Object.assign({},xb),{itemFontSize:o,calendarDaysFontSize:o,calendarTitleFontSize:o,itemTextColor:r,itemTextColorDisabled:n,itemTextColorActive:i,itemTextColorCurrent:a,itemColorIncluded:te(a,{alpha:.1}),itemColorHover:t,itemColorDisabled:t,itemColorActive:a,itemBorderRadius:l,panelColor:i,panelTextColor:r,arrowColor:s,calendarTitleTextColor:d,calendarTitleColorHover:t,calendarDaysTextColor:r,panelHeaderDividerColor:u,calendarDaysDividerColor:u,calendarDividerColor:u,panelActionDividerColor:u,panelBoxShadow:p,panelBorderRadius:f,calendarTitleFontWeight:m,scrollItemBorderRadius:f,iconColor:s,iconColorDisabled:c})},_q={name:"DatePicker",common:ge,peers:{Input:po,Button:Nt,TimePicker:gu,Scrollbar:_t},self:xu};var x2={name:"DatePicker",common:R,peers:{Input:xt,Button:lt,TimePicker:ga,Scrollbar:at},self(e){let{popoverColor:t,hoverColor:o,primaryColor:r}=e,n=xu(e);return n.itemColorDisabled=xe(t,o),n.itemColorIncluded=te(r,{alpha:.15}),n.itemColorHover=xe(t,o),n}},vu=x2;var vb={thPaddingBorderedSmall:"8px 12px",thPaddingBorderedMedium:"12px 16px",thPaddingBorderedLarge:"16px 24px",thPaddingSmall:"0",thPaddingMedium:"0",thPaddingLarge:"0",tdPaddingBorderedSmall:"8px 12px",tdPaddingBorderedMedium:"12px 16px",tdPaddingBorderedLarge:"16px 24px",tdPaddingSmall:"0 0 8px 0",tdPaddingMedium:"0 0 12px 0",tdPaddingLarge:"0 0 16px 0"};var bb=e=>{let{tableHeaderColor:t,textColor2:o,textColor1:r,cardColor:n,modalColor:i,popoverColor:a,dividerColor:l,borderRadius:s,fontWeightStrong:c,lineHeight:d,fontSizeSmall:u,fontSizeMedium:p,fontSizeLarge:f}=e;return Object.assign(Object.assign({},vb),{lineHeight:d,fontSizeSmall:u,fontSizeMedium:p,fontSizeLarge:f,titleTextColor:r,thColor:xe(n,t),thColorModal:xe(i,t),thColorPopover:xe(a,t),thTextColor:r,thFontWeight:c,tdTextColor:o,tdColor:n,tdColorModal:i,tdColorPopover:a,borderColor:xe(n,l),borderColorModal:xe(i,l),borderColorPopover:xe(a,l),borderRadius:s})};var v2={name:"Descriptions",common:R,self:bb},bu=v2;var yb={titleFontSize:"18px",padding:"16px 28px 20px 28px",iconSize:"28px",actionSpace:"12px",contentMargin:"8px 0 16px 0",iconMargin:"0 4px 0 0",iconMarginIconTop:"4px 0 8px 0",closeSize:"18px",closeMargin:"22px 28px 0 0",closeMarginIconTop:"12px 18px 0 0"};var yu=e=>{let{textColor1:t,textColor2:o,modalColor:r,closeColor:n,closeColorHover:i,closeColorPressed:a,infoColor:l,successColor:s,warningColor:c,errorColor:d,primaryColor:u,dividerColor:p,borderRadius:f,fontWeightStrong:m,lineHeight:y,fontSize:w}=e;return Object.assign(Object.assign({},yb),{fontSize:w,lineHeight:y,border:`1px solid ${p}`,titleTextColor:t,textColor:o,color:r,closeColor:n,closeColorHover:i,closeColorPressed:a,iconColor:u,iconColorInfo:l,iconColorSuccess:s,iconColorWarning:c,iconColorError:d,borderRadius:f,titleFontWeight:m})},b2={name:"Dialog",common:ge,peers:{Button:Nt},self:yu},Cu=b2;var y2={name:"Dialog",common:R,peers:{Button:lt},self:yu},xa=y2;var wu=e=>{let{modalColor:t,textColor2:o,boxShadow3:r}=e;return{color:t,textColor:o,boxShadow:r}},sG={name:"Modal",common:ge,peers:{Scrollbar:_t,Dialog:Cu,Card:Gd},self:wu};var C2={name:"Modal",common:R,peers:{Scrollbar:at,Dialog:xa,Card:sa},self:wu},ku=C2;var Cb=e=>{let{textColor1:t,dividerColor:o,fontWeightStrong:r}=e;return{textColor:t,color:o,fontWeight:r}};var w2={name:"Divider",common:R,self:Cb},Su=w2;var _u=e=>{let{modalColor:t,textColor1:o,textColor2:r,boxShadow3:n,lineHeight:i,fontWeightStrong:a,dividerColor:l,closeColor:s,closeColorHover:c,closeColorPressed:d}=e;return{bodyPadding:"16px 24px",headerPadding:"16px 24px",footerPadding:"16px 24px",color:t,textColor:r,titleTextColor:o,titleFontSize:"18px",titleFontWeight:a,boxShadow:n,lineHeight:i,headerBorderBottom:`1px solid ${l}`,footerBorderTop:`1px solid ${l}`,closeColor:s,closeColorHover:c,closeColorPressed:d,closeSize:"18px"}},EG={name:"Drawer",common:ge,peers:{Scrollbar:_t},self:_u};var k2={name:"Drawer",common:R,peers:{Scrollbar:at},self:_u},Eu=k2;var wb={actionMargin:"0 0 0 20px",actionMarginRtl:"0 20px 0 0"};var S2={name:"DynamicInput",common:R,peers:{Input:xt,Button:lt},self(){return wb}},Du=S2;var kb={gapSmall:"4px 8px",gapMedium:"8px 12px",gapLarge:"12px 16px"};var _2={name:"Space",self(){return kb}},va=_2;var E2={name:"DynamicTags",common:R,peers:{Input:xt,Button:lt,Tag:ra,Space:va},self(){return{inputWidth:"64px"}}},Tu=E2;var D2={name:"Element",common:R},Ou=D2;var Sb={feedbackPadding:"4px 0 0 2px",feedbackHeightSmall:"24px",feedbackHeightMedium:"24px",feedbackHeightLarge:"26px",feedbackFontSizeSmall:"13px",feedbackFontSizeMedium:"14px",feedbackFontSizeLarge:"14px",labelFontSizeLeftSmall:"14px",labelFontSizeLeftMedium:"14px",labelFontSizeLeftLarge:"15px",labelFontSizeTopSmall:"13px",labelFontSizeTopMedium:"14px",labelFontSizeTopLarge:"14px",labelHeightSmall:"24px",labelHeightMedium:"26px",labelHeightLarge:"28px",labelPaddingVertical:"0 0 8px 2px",labelPaddingHorizontal:"0 12px 0 0",labelTextAlignVertical:"left",labelTextAlignHorizontal:"right"};var _b=e=>{let{heightSmall:t,heightMedium:o,heightLarge:r,textColor1:n,errorColor:i,warningColor:a,lineHeight:l,textColor3:s}=e;return Object.assign(Object.assign({},Sb),{blankHeightSmall:t,blankHeightMedium:o,blankHeightLarge:r,lineHeight:l,labelTextColor:n,asteriskColor:i,feedbackTextColorError:i,feedbackTextColorWarning:a,feedbackTextColor:s})};var T2={name:"Form",common:R,self:_b},Pu=T2;var O2={name:"GradientText",common:R,self(e){let{primaryColor:t,successColor:o,warningColor:r,errorColor:n,infoColor:i,primaryColorSuppl:a,successColorSuppl:l,warningColorSuppl:s,errorColorSuppl:c,infoColorSuppl:d,fontWeightStrong:u}=e;return{fontWeight:u,rotate:"252deg",colorStartPrimary:t,colorEndPrimary:a,colorStartInfo:i,colorEndInfo:d,colorStartWarning:r,colorEndWarning:s,colorStartError:n,colorEndError:c,colorStartSuccess:o,colorEndSuccess:l}}},Nu=O2;var Eb=e=>{let{primaryColor:t,baseColor:o}=e;return{color:t,iconColor:o}};var P2={name:"IconWrapper",common:R,self:Eb},Ru=P2;var N2={name:"ButtonGroup",common:R},Iu=N2;var R2={name:"InputNumber",common:R,peers:{Button:lt,Input:xt},self(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}},Au=R2;var I2={name:"Layout",common:R,peers:{Scrollbar:at},self(e){let{textColor2:t,bodyColor:o,popoverColor:r,cardColor:n,dividerColor:i,scrollbarColor:a,scrollbarColorHover:l}=e;return{textColor:t,textColorInverted:t,color:o,colorEmbedded:o,headerColor:n,headerColorInverted:n,footerColor:n,footerColorInverted:n,headerBorderColor:i,headerBorderColorInverted:i,footerBorderColor:i,footerBorderColorInverted:i,siderBorderColor:i,siderBorderColorInverted:i,siderColor:n,siderColorInverted:n,siderToggleButtonBorder:"1px solid transparent",siderToggleButtonColor:r,siderToggleButtonIconColor:t,siderToggleButtonIconColorInverted:t,siderToggleBarColor:xe(o,a),siderToggleBarColorHover:xe(o,l),__invertScrollbar:"false"}}},Mu=I2;var Db=e=>{let{textColor2:t,cardColor:o,modalColor:r,popoverColor:n,dividerColor:i,borderRadius:a,fontSize:l}=e;return{textColor:t,color:o,colorModal:r,colorPopover:n,borderColor:i,borderColorModal:xe(r,i),borderColorPopover:xe(n,i),borderRadius:a,fontSize:l}};var A2={name:"List",common:R,self:Db},$u=A2;var M2={name:"LoadingBar",common:R,self(e){let{primaryColor:t}=e;return{colorError:"red",colorLoading:t,height:"2px"}}},Lu=M2;var $2={name:"Log",common:R,peers:{Scrollbar:at,Code:ca},self(e){let{textColor2:t,inputColor:o,fontSize:r,primaryColor:n}=e;return{loaderFontSize:r,loaderTextColor:t,loaderColor:o,loaderBorder:"1px solid #0000",loadingColor:n}}},zu=$2;var L2={name:"Mention",common:R,peers:{InternalSelectMenu:No,Input:xt},self(e){let{boxShadow2:t}=e;return{menuBoxShadow:t}}},Bu=L2;function z2(e,t,o,r){return{itemColorHoverInverted:"#0000",itemColorActiveInverted:t,itemColorActiveHoverInverted:t,itemColorActiveCollapsedInverted:t,itemTextColorInverted:e,itemTextColorHoverInverted:o,itemTextColorChildActiveInverted:o,itemTextColorActiveInverted:o,itemTextColorActiveHoverInverted:o,itemTextColorHorizontalInverted:e,itemTextColorHoverHorizontalInverted:o,itemTextColorChildActiveHorizontalInverted:o,itemTextColorActiveHorizontalInverted:o,itemTextColorActiveHoverHorizontalInverted:o,itemIconColorInverted:e,itemIconColorHoverInverted:o,itemIconColorActiveInverted:o,itemIconColorActiveHoverInverted:o,itemIconColorChildActiveInverted:o,itemIconColorCollapsedInverted:e,itemIconColorHorizontalInverted:e,itemIconColorHoverHorizontalInverted:o,itemIconColorActiveHorizontalInverted:o,itemIconColorActiveHoverHorizontalInverted:o,itemIconColorChildActiveHorizontalInverted:o,arrowColorInverted:e,arrowColorHoverInverted:o,arrowColorActiveInverted:o,arrowColorActiveHoverInverted:o,arrowColorChildActiveInverted:o,groupTextColorInverted:r}}var Hu=e=>{let{borderRadius:t,textColor3:o,primaryColor:r,textColor2:n,textColor1:i,fontSize:a,dividerColor:l,hoverColor:s,primaryColorHover:c}=e;return Object.assign({borderRadius:t,color:"#0000",groupTextColor:o,itemColorHover:s,itemColorActive:te(r,{alpha:.1}),itemColorActiveHover:te(r,{alpha:.1}),itemColorActiveCollapsed:te(r,{alpha:.1}),itemTextColor:n,itemTextColorHover:n,itemTextColorActive:r,itemTextColorActiveHover:r,itemTextColorChildActive:r,itemTextColorHorizontal:n,itemTextColorHoverHorizontal:c,itemTextColorActiveHorizontal:r,itemTextColorActiveHoverHorizontal:r,itemTextColorChildActiveHorizontal:r,itemIconColor:i,itemIconColorHover:i,itemIconColorActive:r,itemIconColorActiveHover:r,itemIconColorChildActive:r,itemIconColorCollapsed:i,itemIconColorHorizontal:i,itemIconColorHoverHorizontal:c,itemIconColorActiveHorizontal:r,itemIconColorActiveHoverHorizontal:r,itemIconColorChildActiveHorizontal:r,itemHeight:"42px",arrowColor:n,arrowColorHover:n,arrowColorActive:r,arrowColorActiveHover:r,arrowColorChildActive:r,colorInverted:"#0000",borderColorHorizontal:"#0000",fontSize:a,dividerColor:l},z2("#BBB",r,"#FFF","#AAA"))},fX={name:"Menu",common:ge,peers:{Tooltip:fa,Dropdown:pu},self:Hu};var B2={name:"Menu",common:R,peers:{Tooltip:or,Dropdown:ha},self(e){let{primaryColor:t,primaryColorSuppl:o}=e,r=Hu(e);return r.itemColorActive=te(t,{alpha:.15}),r.itemColorActiveHover=te(t,{alpha:.15}),r.itemColorActiveCollapsed=te(t,{alpha:.15}),r.itemColorActiveInverted=o,r.itemColorActiveHoverInverted=o,r.itemColorActiveCollapsedInverted=o,r}},Vu=B2;var Tb={margin:"0 0 8px 0",padding:"10px 20px",maxWidth:"720px",minWidth:"420px",iconMargin:"0 10px 0 0",closeMargin:"0 0 0 12px",closeSize:"16px",iconSize:"20px",fontSize:"14px"};var Ob=e=>{let{textColor2:t,closeColor:o,closeColorHover:r,closeColorPressed:n,infoColor:i,successColor:a,errorColor:l,warningColor:s,popoverColor:c,boxShadow2:d,primaryColor:u,lineHeight:p,borderRadius:f}=e;return Object.assign(Object.assign({},Tb),{textColor:t,textColorInfo:t,textColorSuccess:t,textColorError:t,textColorWarning:t,textColorLoading:t,color:c,colorInfo:c,colorSuccess:c,colorError:c,colorWarning:c,colorLoading:c,boxShadow:d,boxShadowInfo:d,boxShadowSuccess:d,boxShadowError:d,boxShadowWarning:d,boxShadowLoading:d,iconColor:t,iconColorInfo:i,iconColorSuccess:a,iconColorWarning:s,iconColorError:l,iconColorLoading:u,closeColor:o,closeColorHover:r,closeColorPressed:n,closeColorInfo:o,closeColorHoverInfo:r,closeColorPressedInfo:n,closeColorSuccess:o,closeColorHoverSuccess:r,closeColorPressedSuccess:n,closeColorError:o,closeColorHoverError:r,closeColorPressedError:n,closeColorWarning:o,closeColorHoverWarning:r,closeColorPressedWarning:n,closeColorLoading:o,closeColorHoverLoading:r,closeColorPressedLoading:n,loadingColor:u,lineHeight:p,borderRadius:f})};var H2={name:"Message",common:R,self:Ob},Fu=H2;var Pb={closeMargin:"18px 14px",closeSize:"16px",width:"365px",padding:"16px"};var ju=e=>{let{textColor2:t,successColor:o,infoColor:r,warningColor:n,errorColor:i,popoverColor:a,closeColor:l,closeColorHover:s,textColor1:c,textColor3:d,borderRadius:u,fontWeightStrong:p,boxShadow2:f,lineHeight:m,fontSize:y}=e;return Object.assign(Object.assign({},Pb),{borderRadius:u,lineHeight:m,fontSize:y,headerFontWeight:p,iconColor:t,iconColorSuccess:o,iconColorInfo:r,iconColorWarning:n,iconColorError:i,color:a,textColor:t,closeColor:l,closeColorHover:s,closeColorPressed:l,headerTextColor:c,descriptionTextColor:d,actionTextColor:t,boxShadow:f})},AX={name:"Notification",common:ge,peers:{Scrollbar:_t},self:ju};var V2={name:"Notification",common:R,peers:{Scrollbar:at},self:ju},Wu=V2;var Nb={titleFontSize:"18px",backSize:"22px"};function Ku(e){let{textColor1:t,textColor2:o,textColor3:r,fontSize:n,fontWeightStrong:i,primaryColorHover:a,primaryColorPressed:l}=e;return Object.assign(Object.assign({},Nb),{titleFontWeight:i,fontSize:n,titleTextColor:t,backColor:o,backColorHover:a,backColorPressed:l,subtitleTextColor:r})}var KX={name:"PageHeader",common:ge,self:Ku};var Uu={name:"PageHeader",common:R,self:Ku};var Rb={iconSize:"22px"};var qu=e=>{let{fontSize:t,warningColor:o}=e;return Object.assign(Object.assign({},Rb),{fontSize:t,iconColor:o})},rZ={name:"Popconfirm",common:ge,peers:{Button:Nt,Popover:Ro},self:qu};var F2={name:"Popconfirm",common:R,peers:{Button:lt,Popover:Qt},self:qu},Gu=F2;var j2={name:"Popselect",common:R,peers:{Popover:Qt,InternalSelectMenu:No}},Yu=j2;var Xu=e=>{let{infoColor:t,successColor:o,warningColor:r,errorColor:n,textColor2:i,progressRailColor:a,fontSize:l,fontWeight:s}=e;return{fontSize:l,fontSizeCircle:"28px",fontWeightCircle:s,railColor:a,railHeight:"8px",iconSizeCircle:"36px",iconSizeLine:"18px",iconColor:t,iconColorInfo:t,iconColorSuccess:o,iconColorWarning:r,iconColorError:n,textColorCircle:i,textColorLineInner:"rgb(255, 255, 255)",textColorLineOuter:i,fillColor:t,fillColorInfo:t,fillColorSuccess:o,fillColorWarning:r,fillColorError:n,lineBgProcessing:"linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)"}},W2={name:"Progress",common:ge,self:Xu},Zu=W2;var K2={name:"Progress",common:R,self(e){let t=Xu(e);return t.textColorLineInner="rgb(0, 0, 0)",t.lineBgProcessing="linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)",t}},ba=K2;var U2={name:"Rate",common:R,self(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:"#CCAA33",itemSize:"20px",sizeSmall:"16px",sizeMedium:"20px",sizeLarge:"24px"}}},Qu=U2;var Ib={titleFontSizeSmall:"26px",titleFontSizeMedium:"32px",titleFontSizeLarge:"40px",titleFontSizeHuge:"48px",fontSizeSmall:"14px",fontSizeMedium:"14px",fontSizeLarge:"15px",fontSizeHuge:"16px",iconSizeSmall:"64px",iconSizeMedium:"80px",iconSizeLarge:"100px",iconSizeHuge:"125px",iconColor418:void 0,iconColor404:void 0,iconColor403:void 0,iconColor500:void 0};var Ab=e=>{let{textColor2:t,textColor1:o,errorColor:r,successColor:n,infoColor:i,warningColor:a,lineHeight:l,fontWeightStrong:s}=e;return Object.assign(Object.assign({},Ib),{lineHeight:l,titleFontWeight:s,titleTextColor:o,textColor:t,iconColorError:r,iconColorSuccess:n,iconColorInfo:i,iconColorWarning:a})};var q2={name:"Result",common:R,self:Ab},Ju=q2;var ps={railHeight:"4px",railWidthVertical:"4px",handleSize:"18px",dotHeight:"8px",dotWidth:"8px",dotBorderRadius:"4px"};var G2={name:"Slider",common:R,self(e){let t="0 2px 8px 0 rgba(0, 0, 0, 0.12)",{railColor:o,modalColor:r,primaryColorSuppl:n,popoverColor:i,textColor2:a,cardColor:l,borderRadius:s,fontSize:c,opacityDisabled:d}=e;return Object.assign(Object.assign({},ps),{fontSize:c,railColor:o,railColorHover:o,fillColor:n,fillColorHover:n,opacityDisabled:d,handleColor:"#FFF",dotColor:l,dotColorModal:r,dotColorPopover:i,handleBoxShadow:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowHover:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowActive:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowFocus:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",indicatorColor:i,indicatorBoxShadow:t,indicatorTextColor:a,indicatorBorderRadius:s,dotBorder:`2px solid ${o}`,dotBorderActive:`2px solid ${n}`,dotBoxShadow:""})}},ef=G2;var Y2=e=>{let t="rgba(0, 0, 0, .85)",o="0 2px 8px 0 rgba(0, 0, 0, 0.12)",{railColor:r,primaryColor:n,baseColor:i,cardColor:a,modalColor:l,popoverColor:s,borderRadius:c,fontSize:d,opacityDisabled:u}=e;return Object.assign(Object.assign({},ps),{fontSize:d,railColor:r,railColorHover:r,fillColor:n,fillColorHover:n,opacityDisabled:u,handleColor:"#FFF",dotColor:a,dotColorModal:l,dotColorPopover:s,handleBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowHover:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowActive:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowFocus:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",indicatorColor:t,indicatorBoxShadow:o,indicatorTextColor:i,indicatorBorderRadius:c,dotBorder:`2px solid ${r}`,dotBorderActive:`2px solid ${n}`,dotBoxShadow:""})},X2={name:"Slider",common:ge,self:Y2},tf=X2;var Mb=e=>{let{opacityDisabled:t,heightTiny:o,heightSmall:r,heightMedium:n,heightLarge:i,heightHuge:a,primaryColor:l,fontSize:s}=e;return{fontSize:s,textColor:l,sizeTiny:o,sizeSmall:r,sizeMedium:n,sizeLarge:i,sizeHuge:a,color:l,opacitySpinning:t}};var Z2={name:"Spin",common:R,self:Mb},of=Z2;var $b=e=>{let{textColor2:t,textColor3:o,fontSize:r,fontWeight:n}=e;return{labelFontSize:r,labelFontWeight:n,valueFontWeight:n,labelTextColor:o,valuePrefixTextColor:t,valueSuffixTextColor:t,valueTextColor:t}};var Q2={name:"Statistic",common:R,self:$b},rf=Q2;var Lb={stepHeaderFontSizeSmall:"14px",stepHeaderFontSizeMedium:"16px",indicatorIndexFontSizeSmall:"14px",indicatorIndexFontSizeMedium:"16px",indicatorSizeSmall:"22px",indicatorSizeMedium:"28px",indicatorIconSizeSmall:"14px",indicatorIconSizeMedium:"18px"};var zb=e=>{let{fontWeightStrong:t,baseColor:o,textColorDisabled:r,primaryColor:n,errorColor:i,textColor1:a,textColor2:l}=e;return Object.assign(Object.assign({},Lb),{stepHeaderFontWeight:t,indicatorTextColorProcess:o,indicatorTextColorWait:r,indicatorTextColorFinish:n,indicatorTextColorError:i,indicatorBorderColorProcess:n,indicatorBorderColorWait:r,indicatorBorderColorFinish:n,indicatorBorderColorError:i,indicatorColorProcess:n,indicatorColorWait:"#0000",indicatorColorFinish:"#0000",indicatorColorError:"#0000",splitorColorProcess:r,splitorColorWait:r,splitorColorFinish:n,splitorColorError:r,headerTextColorProcess:a,headerTextColorWait:r,headerTextColorFinish:r,headerTextColorError:i,descriptionTextColorProcess:l,descriptionTextColorWait:r,descriptionTextColorFinish:r,descriptionTextColorError:i})};var J2={name:"Steps",common:R,self:zb},nf=J2;var Bb={buttonHeightSmall:"14px",buttonHeightMedium:"18px",buttonHeightLarge:"22px",buttonWidthSmall:"14px",buttonWidthMedium:"18px",buttonWidthLarge:"22px",buttonWidthPressedSmall:"20px",buttonWidthPressedMedium:"24px",buttonWidthPressedLarge:"28px",railHeightSmall:"18px",railHeightMedium:"22px",railHeightLarge:"26px",railWidthSmall:"32px",railWidthMedium:"40px",railWidthLarge:"48px"};var eO={name:"Switch",common:R,self(e){let{primaryColorSuppl:t,opacityDisabled:o,borderRadius:r,primaryColor:n,textColor2:i,baseColor:a}=e,l="rgba(255, 255, 255, .20)";return Object.assign(Object.assign({},Bb),{iconColor:a,textColor:i,loadingColor:t,opacityDisabled:o,railColor:l,railColorActive:t,buttonBoxShadow:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",buttonColor:"#FFF",railBorderRadiusSmall:r,railBorderRadiusMedium:r,railBorderRadiusLarge:r,buttonBorderRadiusSmall:r,buttonBorderRadiusMedium:r,buttonBorderRadiusLarge:r,boxShadowFocus:`0 0 8px 0 ${te(n,{alpha:.3})}`})}},af=eO;var Hb={thPaddingSmall:"6px",thPaddingMedium:"12px",thPaddingLarge:"12px",tdPaddingSmall:"6px",tdPaddingMedium:"12px",tdPaddingLarge:"12px"};var Vb=e=>{let{dividerColor:t,cardColor:o,modalColor:r,popoverColor:n,tableHeaderColor:i,tableColorStriped:a,textColor1:l,textColor2:s,borderRadius:c,fontWeightStrong:d,lineHeight:u,fontSizeSmall:p,fontSizeMedium:f,fontSizeLarge:m}=e;return Object.assign(Object.assign({},Hb),{fontSizeSmall:p,fontSizeMedium:f,fontSizeLarge:m,lineHeight:u,borderRadius:c,borderColor:xe(o,t),borderColorModal:xe(r,t),borderColorPopover:xe(n,t),tdColor:o,tdColorModal:r,tdColorPopover:n,tdColorStriped:xe(o,a),tdColorStripedModal:xe(r,a),tdColorStripedPopover:xe(n,a),thColor:xe(o,i),thColorModal:xe(r,i),thColorPopover:xe(n,i),thTextColor:l,tdTextColor:s,thFontWeight:d})};var tO={name:"Table",common:R,self:Vb},lf=tO;var Fb={tabFontSizeSmall:"14px",tabFontSizeMedium:"14px",tabFontSizeLarge:"16px",tabGapSmallLine:"36px",tabGapMediumLine:"36px",tabGapLargeLine:"36px",tabPaddingSmallLine:"6px 0",tabPaddingMediumLine:"10px 0",tabPaddingLargeLine:"14px 0",tabGapSmallBar:"36px",tabGapMediumBar:"36px",tabGapLargeBar:"36px",tabPaddingSmallBar:"4px 0",tabPaddingMediumBar:"6px 0",tabPaddingLargeBar:"10px 0",tabGapSmallCard:"4px",tabGapMediumCard:"4px",tabGapLargeCard:"4px",tabPaddingSmallCard:"6px 10px",tabPaddingMediumCard:"8px 12px",tabPaddingLargeCard:"8px 16px",tabPaddingSmallSegment:"4px 0",tabPaddingMediumSegment:"6px 0",tabPaddingLargeSegment:"8px 0",tabGapSmallSegment:"0",tabGapMediumSegment:"0",tabGapLargeSegment:"0",panePaddingSmall:"8px 0 0 0",panePaddingMedium:"12px 0 0 0",panePaddingLarge:"16px 0 0 0"};var jb=e=>{let{textColor2:t,primaryColor:o,textColorDisabled:r,closeColor:n,closeColorHover:i,closeColorPressed:a,tabColor:l,baseColor:s,dividerColor:c,fontWeight:d,textColor1:u,borderRadius:p,fontSize:f,fontWeightStrong:m}=e;return Object.assign(Object.assign({},Fb),{colorSegment:l,tabFontSizeCard:f,tabTextColorLine:u,tabTextColorActiveLine:o,tabTextColorHoverLine:o,tabTextColorDisabledLine:r,tabTextColorSegment:u,tabTextColorActiveSegment:t,tabTextColorHoverSegment:t,tabTextColorDisabledSegment:r,tabTextColorBar:u,tabTextColorActiveBar:o,tabTextColorHoverBar:o,tabTextColorDisabledBar:r,tabTextColorCard:u,tabTextColorHoverCard:u,tabTextColorActiveCard:o,tabTextColorDisabledCard:r,barColor:o,closeColor:n,closeColorHover:i,closeColorPressed:a,tabColor:l,tabColorSegment:s,tabBorderColor:c,tabFontWeightActive:d,tabFontWeight:d,tabBorderRadius:p,paneTextColor:t,fontWeightStrong:m})};var oO={name:"Tabs",common:R,self(e){let t=jb(e),{inputColor:o}=e;return t.colorSegment=o,t.tabColorSegment=o,t}},sf=oO;var Wb=e=>{let{textColor1:t,textColor2:o,fontWeightStrong:r,fontSize:n}=e;return{fontSize:n,titleTextColor:t,textColor:o,titleFontWeight:r}};var rO={name:"Thing",common:R,self:Wb},cf=rO;var Kb={titleMarginMedium:"0",titleMarginLarge:"-2px 0 0 0",titleFontSizeMedium:"14px",titleFontSizeLarge:"16px",iconSizeMedium:"14px",iconSizeLarge:"14px"};var nO={name:"Timeline",common:R,self(e){let{textColor3:t,infoColorSuppl:o,errorColorSuppl:r,successColorSuppl:n,warningColorSuppl:i,textColor1:a,textColor2:l,railColor:s,fontWeightStrong:c,fontSize:d}=e;return Object.assign(Object.assign({},Kb),{contentFontSize:d,titleFontWeight:c,circleBorder:`2px solid ${t}`,circleBorderInfo:`2px solid ${o}`,circleBorderError:`2px solid ${r}`,circleBorderSuccess:`2px solid ${n}`,circleBorderWarning:`2px solid ${i}`,iconColor:t,iconColorInfo:o,iconColorError:r,iconColorSuccess:n,iconColorWarning:i,titleTextColor:a,contentTextColor:l,metaTextColor:t,lineColor:s})}},df=nO;var Ub={extraFontSize:"12px",width:"440px"};var iO={name:"Transfer",common:R,peers:{Checkbox:Io,Scrollbar:at,Input:xt,Empty:fo,Button:lt},self(e){let{iconColorDisabled:t,iconColor:o,fontWeight:r,fontSizeLarge:n,fontSizeMedium:i,fontSizeSmall:a,heightLarge:l,heightMedium:s,heightSmall:c,borderRadius:d,inputColor:u,tableHeaderColor:p,textColor1:f,textColorDisabled:m,textColor2:y,hoverColor:w}=e;return Object.assign(Object.assign({},Ub),{itemHeightSmall:c,itemHeightMedium:s,itemHeightLarge:l,fontSizeSmall:a,fontSizeMedium:i,fontSizeLarge:n,borderRadius:d,borderColor:"#0000",listColor:u,headerColor:p,titleTextColor:f,titleTextColorDisabled:m,extraTextColor:y,filterDividerColor:"#0000",itemTextColor:y,itemTextColorDisabled:m,itemColorPending:w,titleFontWeight:r,iconColor:o,iconColorDisabled:t})}},uf=iO;var ff=e=>{let{borderRadiusSmall:t,hoverColor:o,pressedColor:r,primaryColor:n,textColor3:i,textColor2:a,textColorDisabled:l,fontSize:s}=e;return{fontSize:s,nodeBorderRadius:t,nodeColorHover:o,nodeColorPressed:r,nodeColorActive:te(n,{alpha:.1}),arrowColor:i,nodeTextColor:a,nodeTextColorDisabled:l,loadingColor:n,dropMarkColor:n}},aO={name:"Tree",common:ge,peers:{Checkbox:mr,Scrollbar:_t,Empty:uo},self:ff},pf=aO;var lO={name:"Tree",common:R,peers:{Checkbox:Io,Scrollbar:at,Empty:fo},self(e){let{primaryColor:t}=e,o=ff(e);return o.nodeColorActive=te(t,{alpha:.15}),o}},ya=lO;var sO={name:"TreeSelect",common:R,peers:{Tree:ya,Empty:fo,InternalSelection:Cn}},mf=sO;var qb={headerFontSize1:"30px",headerFontSize2:"22px",headerFontSize3:"18px",headerFontSize4:"16px",headerFontSize5:"16px",headerFontSize6:"16px",headerMargin1:"28px 0 20px 0",headerMargin2:"28px 0 20px 0",headerMargin3:"28px 0 20px 0",headerMargin4:"28px 0 18px 0",headerMargin5:"28px 0 18px 0",headerMargin6:"28px 0 18px 0",headerPrefixWidth1:"16px",headerPrefixWidth2:"16px",headerPrefixWidth3:"12px",headerPrefixWidth4:"12px",headerPrefixWidth5:"12px",headerPrefixWidth6:"12px",headerBarWidth1:"4px",headerBarWidth2:"4px",headerBarWidth3:"3px",headerBarWidth4:"3px",headerBarWidth5:"3px",headerBarWidth6:"3px",pMargin:"16px 0 16px 0",liMargin:".25em 0 0 0",olPadding:"0 0 0 2em",ulPadding:"0 0 0 2em"};var Gb=e=>{let{primaryColor:t,textColor2:o,borderColor:r,lineHeight:n,fontSize:i,borderRadiusSmall:a,dividerColor:l,fontWeightStrong:s,textColor1:c,textColor3:d,infoColor:u,warningColor:p,errorColor:f,successColor:m,codeColor:y}=e;return Object.assign(Object.assign({},qb),{aTextColor:t,blockquoteTextColor:o,blockquotePrefixColor:r,blockquoteLineHeight:n,blockquoteFontSize:i,codeBorderRadius:a,liTextColor:o,liLineHeight:n,liFontSize:i,hrColor:l,headerFontWeight:s,headerTextColor:c,pTextColor:o,pTextColor1Depth:c,pTextColor2Depth:o,pTextColor3Depth:d,pLineHeight:n,pFontSize:i,headerBarColor:t,headerBarColorPrimary:t,headerBarColorInfo:u,headerBarColorError:f,headerBarColorWarning:p,headerBarColorSuccess:m,textColor:o,textColor1Depth:c,textColor2Depth:o,textColor3Depth:d,textColorPrimary:t,textColorInfo:u,textColorSuccess:m,textColorWarning:p,textColorError:f,codeTextColor:o,codeColor:y,codeBorder:"1px solid #0000"})};var cO={name:"Typography",common:R,self:Gb},hf=cO;var gf=e=>{let{iconColor:t,primaryColor:o,errorColor:r,textColor2:n,successColor:i,opacityDisabled:a,actionColor:l,borderColor:s,hoverColor:c,lineHeight:d,borderRadius:u,fontSize:p}=e;return{fontSize:p,lineHeight:d,borderRadius:u,draggerColor:l,draggerBorder:`1px dashed ${s}`,draggerBorderHover:`1px dashed ${o}`,itemColorHover:c,itemColorHoverError:te(r,{alpha:.06}),itemTextColor:n,itemTextColorError:r,itemTextColorSuccess:i,itemIconColor:t,itemDisabledOpacity:a,itemBorderImageCardError:`1px solid ${r}`,itemBorderImageCard:`1px solid ${s}`}},FJ={name:"Upload",common:ge,peers:{Button:Nt,Progress:Zu},self:gf};var dO={name:"Upload",common:R,peers:{Button:lt,Progress:ba},self(e){let{errorColor:t}=e,o=gf(e);return o.itemColorHoverError=te(t,{alpha:.09}),o}},xf=dO;var uO={name:"Watermark",common:R,self(e){let{fontFamily:t}=e;return{fontFamily:t}}},vf=uO;var bf={name:"Image",common:R,peers:{Tooltip:or},self:e=>{let{textColor2:t}=e;return{toolbarIconColor:t,toolbarColor:"rgba(0, 0, 0, .35)",toolbarBoxShadow:"none",toolbarBorderRadius:"24px"}}};var yf={name:"Skeleton",common:R,self(e){let{heightSmall:t,heightMedium:o,heightLarge:r,borderRadius:n}=e;return{color:"rgba(255, 255, 255, 0.12)",colorEnd:"rgba(255, 255, 255, 0.18)",borderRadius:n,heightSmall:t,heightMedium:o,heightLarge:r}}};function Cf(e){return window.TouchEvent&&e instanceof window.TouchEvent}function wf(){let e=X(new Map),t=o=>r=>{e.value.set(o,r)};return vc(()=>e.value.clear()),[e,t]}var Yb=J([U("slider",` display: block; padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0; position: relative; @@ -714,88 +714,88 @@ ${o} width: 100%; cursor: pointer; user-select: none; - `,[Te("reverse",[$("slider-handles",[$("slider-handle",` + `,[be("reverse",[U("slider-handles",[U("slider-handle",` transform: translate(50%, -50%); - `)]),$("slider-dots",[$("slider-dot",` + `)]),U("slider-dots",[U("slider-dot",` transform: translateX(50%, -50%); - `)]),Te("vertical",[$("slider-handles",[$("slider-handle",` + `)]),be("vertical",[U("slider-handles",[U("slider-handle",` transform: translate(-50%, -50%); - `)]),$("slider-marks",[$("slider-mark",` + `)]),U("slider-marks",[U("slider-mark",` transform: translateY(calc(-50% + var(--n-dot-height) / 2)); - `)]),$("slider-dots",[$("slider-dot",` + `)]),U("slider-dots",[U("slider-dot",` transform: translateX(-50%) translateY(0); - `)])])]),Te("vertical",` + `)])])]),be("vertical",` padding: 0 calc((var(--n-handle-size) - var(--n-rail-height)) / 2); width: var(--n-rail-width-vertical); height: 100%; - `,[$("slider-handles",` + `,[U("slider-handles",` top: calc(var(--n-handle-size) / 2); right: 0; bottom: calc(var(--n-handle-size) / 2); left: 0; - `,[$("slider-handle",` + `,[U("slider-handle",` top: unset; left: 50%; transform: translate(-50%, 50%); - `)]),$("slider-rail",` + `)]),U("slider-rail",` height: 100%; - `,[oe("fill",` + `,[ee("fill",` top: unset; right: 0; bottom: unset; left: 0; - `)]),Te("with-mark",` + `)]),be("with-mark",` width: var(--n-rail-width-vertical); margin: 0 32px 0 8px; - `),$("slider-marks",` + `),U("slider-marks",` top: calc(var(--n-handle-size) / 2); right: unset; bottom: calc(var(--n-handle-size) / 2); left: 22px; - `,[$("slider-mark",` + `,[U("slider-mark",` transform: translateY(50%); white-space: nowrap; - `)]),$("slider-dots",` + `)]),U("slider-dots",` top: calc(var(--n-handle-size) / 2); right: unset; bottom: calc(var(--n-handle-size) / 2); left: 50%; - `,[$("slider-dot",` + `,[U("slider-dot",` transform: translateX(-50%) translateY(50%); - `)])]),Te("disabled",` + `)])]),be("disabled",` cursor: not-allowed; opacity: var(--n-opacity-disabled); - `,[$("slider-handle",` + `,[U("slider-handle",` cursor: not-allowed; - `)]),Te("with-mark",` + `)]),be("with-mark",` width: 100%; margin: 8px 0 32px 0; - `),J("&:hover",[$("slider-rail",{backgroundColor:"var(--n-rail-color-hover)"},[oe("fill",{backgroundColor:"var(--n-fill-color-hover)"})]),$("slider-handle",{boxShadow:"var(--n-handle-box-shadow-hover)"})]),Te("active",[$("slider-rail",{backgroundColor:"var(--n-rail-color-hover)"},[oe("fill",{backgroundColor:"var(--n-fill-color-hover)"})]),$("slider-handle",{boxShadow:"var(--n-handle-box-shadow-hover)"})]),$("slider-marks",` + `),J("&:hover",[U("slider-rail",{backgroundColor:"var(--n-rail-color-hover)"},[ee("fill",{backgroundColor:"var(--n-fill-color-hover)"})]),U("slider-handle",{boxShadow:"var(--n-handle-box-shadow-hover)"})]),be("active",[U("slider-rail",{backgroundColor:"var(--n-rail-color-hover)"},[ee("fill",{backgroundColor:"var(--n-fill-color-hover)"})]),U("slider-handle",{boxShadow:"var(--n-handle-box-shadow-hover)"})]),U("slider-marks",` position: absolute; top: 18px; left: calc(var(--n-handle-size) / 2); right: calc(var(--n-handle-size) / 2); - `,[$("slider-mark",{position:"absolute",transform:"translateX(-50%)"})]),$("slider-rail",` + `,[U("slider-mark",{position:"absolute",transform:"translateX(-50%)"})]),U("slider-rail",` width: 100%; position: relative; height: var(--n-rail-height); background-color: var(--n-rail-color); transition: background-color .3s var(--n-bezier); border-radius: calc(var(--n-rail-height) / 2); - `,[oe("fill",` + `,[ee("fill",` position: absolute; top: 0; bottom: 0; border-radius: calc(var(--n-rail-height) / 2); transition: background-color .3s var(--n-bezier); background-color: var(--n-fill-color); - `)]),$("slider-handles",` + `)]),U("slider-handles",` position: absolute; top: 0; right: calc(var(--n-handle-size) / 2); bottom: 0; left: calc(var(--n-handle-size) / 2); - `,[$("slider-handle",` + `,[U("slider-handle",` outline: none; height: var(--n-handle-size); width: var(--n-handle-size); @@ -808,12 +808,12 @@ ${o} cursor: pointer; background-color: var(--n-handle-color); box-shadow: var(--n-handle-box-shadow); - `,[J("&:hover",{boxShadow:"var(--n-handle-box-shadow-hover)"}),J("&:hover:focus",{boxShadow:"var(--n-handle-box-shadow-active)"}),J("&:focus",{boxShadow:"var(--n-handle-box-shadow-focus)"})])]),$("slider-dots",` + `,[J("&:hover",{boxShadow:"var(--n-handle-box-shadow-hover)"}),J("&:hover:focus",{boxShadow:"var(--n-handle-box-shadow-active)"}),J("&:focus",{boxShadow:"var(--n-handle-box-shadow-focus)"})])]),U("slider-dots",` position: absolute; top: 50%; left: calc(var(--n-handle-size) / 2); right: calc(var(--n-handle-size) / 2); - `,[Te("transition-disabled",[$("slider-dot",{transition:"none"})]),$("slider-dot",` + `,[be("transition-disabled",[U("slider-dot",{transition:"none"})]),U("slider-dot",` transition: border-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier), @@ -827,59 +827,59 @@ ${o} box-sizing: border-box; border: var(--n-dot-border); background-color: var(--n-dot-color); - `,[Te("active",{border:"var(--n-dot-border-active)"})])])]),$("slider-handle-indicator",` + `,[be("active",{border:"var(--n-dot-border-active)"})])])]),U("slider-handle-indicator",` font-size: var(--n-font-size); padding: 6px 10px; border-radius: var(--n-indicator-border-radius); color: var(--n-indicator-text-color); background-color: var(--n-indicator-color); box-shadow: var(--n-indicator-box-shadow); - `,[fu()]),$("slider-handle-indicator",` + `,[Td()]),U("slider-handle-indicator",` font-size: var(--n-font-size); padding: 6px 10px; border-radius: var(--n-indicator-border-radius); color: var(--n-indicator-text-color); background-color: var(--n-indicator-color); box-shadow: var(--n-indicator-box-shadow); - `,[Te("top",` + `,[be("top",` margin-bottom: 12px; - `),Te("right",` + `),be("right",` margin-left: 12px; - `),Te("bottom",` + `),be("bottom",` margin-top: 12px; - `),Te("left",` + `),be("left",` margin-right: 12px; - `),fu()]),ci($("slider",[$("slider-dot",{backgroundColor:"var(--n-dot-color-modal)"})])),hi($("slider",[$("slider-dot",{backgroundColor:"var(--n-dot-color-popover)"})]))]);var vP=0,kP=Object.assign(Object.assign({},Mo.props),{to:ga.propTo,defaultValue:{type:[Number,Array],default:0},marks:Object,disabled:{type:Boolean,default:void 0},formatTooltip:Function,min:{type:Number,default:0},max:{type:Number,default:100},step:{type:[Number,String],default:1},range:Boolean,value:[Number,Array],placement:String,showTooltip:{type:Boolean,default:void 0},tooltip:{type:Boolean,default:!0},vertical:Boolean,reverse:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array]}),np=ae({name:"Slider",props:kP,setup(e){let{mergedClsPrefixRef:o,namespaceRef:t,inlineThemeDisabled:r}=Ko(e),a=Mo("Slider","-slider",Pw,Hf,e,o),l=Z(null),[n,i]=lp(),[d,s]=lp(),u=Z(new Set),f=Pt(e),{mergedDisabledRef:m}=f,p=W(()=>{let{step:D}=e;if(D<=0||D==="mark")return 0;let L=D.toString(),I=0;return L.includes(".")&&(I=L.length-L.indexOf(".")-1),I}),c=Z(e.defaultValue),R=_e(e,"value"),y=dt(R,c),h=W(()=>{let{value:D}=y;return(e.range?D:[D]).map(fo)}),A=W(()=>h.value.length>2),z=W(()=>e.placement===void 0?e.vertical?"right":"top":e.placement),F=W(()=>{let{marks:D}=e;return D?Object.keys(D).map(parseFloat):null}),g=Z(-1),k=Z(-1),S=Z(-1),b=Z(!1),B=Z(!1),v=W(()=>{let{vertical:D,reverse:L}=e;return D?L?"top":"bottom":L?"right":"left"}),_=W(()=>{if(A.value)return;let D=h.value,L=no(e.range?Math.min(...D):e.min),I=no(e.range?Math.max(...D):D[0]),{value:ne}=v;return e.vertical?{[ne]:`${L}%`,height:`${I-L}%`}:{[ne]:`${L}%`,width:`${I-L}%`}}),E=W(()=>{let D=[],{marks:L}=e;if(L){let I=h.value.slice();I.sort((Le,Q)=>Le-Q);let{value:ne}=v,{value:me}=A,{range:ye}=e,ke=me?()=>!1:Le=>ye?Le>=I[0]&&Le<=I[I.length-1]:Le<=I[0];for(let Le of Object.keys(L)){let Q=Number(Le);D.push({active:ke(Q),label:L[Le],style:{[ne]:`${no(Q)}%`}})}}return D});function se(D,L){let I=no(D),{value:ne}=v;return{[ne]:`${I}%`,zIndex:L===g.value?1:0}}function Fe(D){return e.showTooltip||S.value===D||g.value===D&&b.value}function Ee(D){return!(g.value===D&&k.value===D)}function pe(D){var L;~D&&(g.value=D,(L=n.value.get(D))===null||L===void 0||L.focus())}function fe(){d.value.forEach((D,L)=>{Fe(L)&&D.syncPosition()})}function Re(D){let{"onUpdate:value":L,onUpdateValue:I}=e,{nTriggerFormInput:ne,nTriggerFormChange:me}=f;I&&be(I,D),L&&be(L,D),c.value=D,ne(),me()}function eo(D){let{range:L}=e;if(L){if(Array.isArray(D)){let{value:I}=h;D.join()!==I.join()&&Re(D)}}else Array.isArray(D)||h.value[0]!==D&&Re(D)}function oo(D,L){if(e.range){let I=h.value.slice();I.splice(L,1,D),eo(I)}else eo(D)}function Qe(D,L,I){let ne=I!==void 0;I||(I=D-L>0?1:-1);let me=F.value||[],{step:ye}=e;if(ye==="mark"){let Q=Ke(D,me.concat(L),ne?I:void 0);return Q?Q.value:L}if(ye<=0)return L;let{value:ke}=p,Le;if(ne){let Q=Number((L/ye).toFixed(ke)),ie=Math.floor(Q),Oe=Q>ie?ie:ie-1,He=Q0)&&(ne===null||ke0?1:-1),L)}function mo(D){var L,I;if(m.value||!ap(D)&&D.button!==vP)return;let ne=Ve(D);if(ne===void 0)return;let me=h.value.slice(),ye=e.range?(I=(L=Ke(ne,me))===null||L===void 0?void 0:L.index)!==null&&I!==void 0?I:-1:0;ye!==-1&&(D.preventDefault(),pe(ye),Lo(),oo(Qe(ne,h.value[ye]),ye))}function Lo(){b.value||(b.value=!0,ko("touchend",document,O),ko("mouseup",document,O),ko("touchmove",document,x),ko("mousemove",document,x))}function bo(){b.value&&(b.value=!1,yo("touchend",document,O),yo("mouseup",document,O),yo("touchmove",document,x),yo("mousemove",document,x))}function x(D){let{value:L}=g;if(!b.value||L===-1){bo();return}let I=Ve(D);oo(Qe(I,h.value[L]),L)}function O(){bo()}function N(D){g.value=D,m.value||(S.value=D)}function U(D){g.value===D&&(g.value=-1,bo()),S.value===D&&(S.value=-1)}function K(D){S.value=D}function le(D){S.value===D&&(S.value=-1)}io(g,(D,L)=>void Qo(()=>k.value=L)),io(y,()=>{if(e.marks){if(B.value)return;B.value=!0,Qo(()=>{B.value=!1})}Qo(fe)});let ee=W(()=>{let{self:{railColor:D,railColorHover:L,fillColor:I,fillColorHover:ne,handleColor:me,opacityDisabled:ye,dotColor:ke,dotColorModal:Le,handleBoxShadow:Q,handleBoxShadowHover:ie,handleBoxShadowActive:Oe,handleBoxShadowFocus:He,dotBorder:lo,dotBoxShadow:Ze,railHeight:Ye,railWidthVertical:Xe,handleSize:vo,dotHeight:lt,dotWidth:T,dotBorderRadius:H,fontSize:re,dotBorderActive:de,dotColorPopover:Ge},common:{cubicBezierEaseInOut:Me}}=a.value;return{"--n-bezier":Me,"--n-dot-border":lo,"--n-dot-border-active":de,"--n-dot-border-radius":H,"--n-dot-box-shadow":Ze,"--n-dot-color":ke,"--n-dot-color-modal":Le,"--n-dot-color-popover":Ge,"--n-dot-height":lt,"--n-dot-width":T,"--n-fill-color":I,"--n-fill-color-hover":ne,"--n-font-size":re,"--n-handle-box-shadow":Q,"--n-handle-box-shadow-active":Oe,"--n-handle-box-shadow-focus":He,"--n-handle-box-shadow-hover":ie,"--n-handle-color":me,"--n-handle-size":vo,"--n-opacity-disabled":ye,"--n-rail-color":D,"--n-rail-color-hover":L,"--n-rail-height":Ye,"--n-rail-width-vertical":Xe}}),V=r?at("slider",void 0,ee,e):void 0,Y=W(()=>{let{self:{fontSize:D,indicatorColor:L,indicatorBoxShadow:I,indicatorTextColor:ne,indicatorBorderRadius:me}}=a.value;return{"--n-font-size":D,"--n-indicator-border-radius":me,"--n-indicator-box-shadow":I,"--n-indicator-color":L,"--n-indicator-text-color":ne}}),G=r?at("slider-indicator",void 0,Y,e):void 0;return{mergedClsPrefix:o,namespace:t,uncontrolledValue:c,mergedValue:y,mergedDisabled:m,mergedPlacement:z,isMounted:zr(),adjustedTo:ga(e),dotTransitionDisabled:B,markInfos:E,isShowTooltip:Fe,isSkipCSSDetection:Ee,handleRailRef:l,setHandleRefs:i,setFollowerRefs:s,fillStyle:_,getHandleStyle:se,activeIndex:g,arrifiedValues:h,followerEnabledIndexSet:u,handleRailMouseDown:mo,handleHandleFocus:N,handleHandleBlur:U,handleHandleMouseEnter:K,handleHandleMouseLeave:le,handleRailKeyDown:ao,indicatorCssVars:r?void 0:Y,indicatorThemeClass:G==null?void 0:G.themeClass,indicatorOnRender:G==null?void 0:G.onRender,cssVars:r?void 0:ee,themeClass:V==null?void 0:V.themeClass,onRender:V==null?void 0:V.onRender}},render(){var e;let{mergedClsPrefix:o,themeClass:t,formatTooltip:r}=this;return(e=this.onRender)===null||e===void 0||e.call(this),w("div",{class:[`${o}-slider`,t,{[`${o}-slider--disabled`]:this.mergedDisabled,[`${o}-slider--active`]:this.activeIndex!==-1,[`${o}-slider--with-mark`]:this.marks,[`${o}-slider--vertical`]:this.vertical,[`${o}-slider--reverse`]:this.reverse}],style:this.cssVars,onKeydown:this.handleRailKeyDown,onMousedown:this.handleRailMouseDown,onTouchstart:this.handleRailMouseDown},w("div",{class:`${o}-slider-rail`},w("div",{class:`${o}-slider-rail__fill`,style:this.fillStyle}),this.marks?w("div",{class:[`${o}-slider-dots`,this.dotTransitionDisabled&&`${o}-slider-dots--transition-disabled`]},this.markInfos.map(a=>w("div",{key:a.label,class:[`${o}-slider-dot`,{[`${o}-slider-dot--active`]:a.active}],style:a.style}))):null,w("div",{ref:"handleRailRef",class:`${o}-slider-handles`},this.arrifiedValues.map((a,l)=>{let n=this.isShowTooltip(l);return w(Ti,null,{default:()=>[w(Ri,null,{default:()=>w("div",{ref:this.setHandleRefs(l),class:`${o}-slider-handle`,tabindex:this.mergedDisabled?-1:0,style:this.getHandleStyle(a,l),onFocus:()=>this.handleHandleFocus(l),onBlur:()=>this.handleHandleBlur(l),onMouseenter:()=>this.handleHandleMouseEnter(l),onMouseleave:()=>this.handleHandleMouseLeave(l)})}),this.tooltip&&w(yi,{ref:this.setFollowerRefs(l),show:n,to:this.adjustedTo,enabled:this.showTooltip&&!this.range||this.followerEnabledIndexSet.has(l),teleportDisabled:this.adjustedTo===ga.tdkey,placement:this.mergedPlacement,containerClass:this.namespace},{default:()=>w(It,{name:"fade-in-scale-up-transition",appear:this.isMounted,css:this.isSkipCSSDetection(l),onEnter:()=>this.followerEnabledIndexSet.add(l),onAfterLeave:()=>this.followerEnabledIndexSet.delete(l)},{default:()=>{var i;return n?((i=this.indicatorOnRender)===null||i===void 0||i.call(this),w("div",{class:[`${o}-slider-handle-indicator`,this.indicatorThemeClass,`${o}-slider-handle-indicator--${this.mergedPlacement}`],style:this.indicatorCssVars},typeof r=="function"?r(a):a)):null}})})]})})),this.marks?w("div",{class:`${o}-slider-marks`},this.markInfos.map(a=>w("div",{key:a.label,class:`${o}-slider-mark`,style:a.style},a.label))):null))}});var md=So("n-tree-select");var sr=So("n-tree");var Mw=ae({name:"NTreeSwitcher",props:{clsPrefix:{type:String,required:!0},expanded:Boolean,hide:Boolean,loading:Boolean,onClick:Function},setup(e){let{renderSwitcherIconRef:o}=Ce(sr,null);return()=>{let{clsPrefix:t}=e;return w("span",{"data-switcher":!0,class:[`${t}-tree-node-switcher`,{[`${t}-tree-node-switcher--expanded`]:e.expanded,[`${t}-tree-node-switcher--hide`]:e.hide}],onClick:e.onClick},w("div",{class:`${t}-tree-node-switcher__icon`},w(Et,null,{default:()=>{if(e.loading)return w(Zr,{clsPrefix:t,key:"loading",radius:85,strokeWidth:20});let{value:r}=o;return r?r():w(Lt,{clsPrefix:t,key:"switcher"},{default:()=>w(Js,null)})}})))}}});var Bw=ae({name:"NTreeNodeCheckbox",props:{clsPrefix:{type:String,required:!0},focusable:Boolean,disabled:Boolean,checked:Boolean,indeterminate:Boolean,onCheck:Function},setup(e){let o=Ce(sr);function t(a){let{onCheck:l}=e;if(l)return l(a)}function r(a){e.indeterminate?t(!1):t(a)}return{handleUpdateValue:r,mergedTheme:o.mergedThemeRef}},render(){let{clsPrefix:e,mergedTheme:o,checked:t,indeterminate:r,disabled:a,focusable:l,handleUpdateValue:n}=this;return w("span",{class:`${e}-tree-node-checkbox`,"data-checkbox":!0},w(_u,{focusable:l,disabled:a,theme:o.peers.Checkbox,themeOverrides:o.peerOverrides.Checkbox,checked:t,indeterminate:r,onUpdateChecked:n}))}});var Ew=ae({name:"TreeNodeContent",props:{clsPrefix:{type:String,required:!0},disabled:Boolean,checked:Boolean,selected:Boolean,onClick:Function,onDragstart:Function,tmNode:{type:Object,required:!0},nodeProps:Object},setup(e){let{renderLabelRef:o,renderPrefixRef:t,renderSuffixRef:r,labelFieldRef:a}=Ce(sr),l=Z(null);function n(d){let{onClick:s}=e;s&&s(d)}function i(d){n(d)}return{selfRef:l,renderLabel:o,renderPrefix:t,renderSuffix:r,labelField:a,handleClick:i}},render(){let{clsPrefix:e,labelField:o,nodeProps:t,checked:r=!1,selected:a=!1,renderLabel:l,renderPrefix:n,renderSuffix:i,handleClick:d,onDragstart:s,tmNode:{rawNode:u,rawNode:{prefix:f,suffix:m,[o]:p}}}=this;return w("span",Object.assign({},t,{ref:"selfRef",class:[`${e}-tree-node-content`,t==null?void 0:t.class],onClick:d,draggable:s===void 0?void 0:!0,onDragstart:s}),n||f?w("div",{class:`${e}-tree-node-content__prefix`},n?n({option:u,selected:a,checked:r}):Wa(f)):null,w("div",{class:`${e}-tree-node-content__text`},l?l({option:u,selected:a,checked:r}):Wa(p)),i||m?w("div",{class:`${e}-tree-node-content__suffix`},i?i({option:u,selected:a,checked:r}):Wa(m)):null)}});function ip({position:e,offsetLevel:o,indent:t,el:r}){let a={position:"absolute",boxSizing:"border-box",right:0};if(e==="inside")a.left=0,a.top=0,a.bottom=0,a.borderRadius="inherit",a.boxShadow="inset 0 0 0 2px var(--n-drop-mark-color)";else{let l=e==="before"?"top":"bottom";a[l]=0,a.left=`${r.offsetLeft+6-o*t}px`,a.height="2px",a.backgroundColor="var(--n-drop-mark-color)",a.transformOrigin=l,a.borderRadius="1px",a.transform=e==="before"?"translateY(-4px)":"translateY(4px)"}return w("div",{style:a})}function Lw({dropPosition:e,node:o}){return o.isLeaf===!1||o.children?!0:e!=="inside"}var AP=ae({name:"TreeNode",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(e){let o=Ce(sr),{droppingNodeParentRef:t,droppingMouseNodeRef:r,draggingNodeRef:a,droppingPositionRef:l,droppingOffsetLevelRef:n,nodePropsRef:i,indentRef:d,blockLineRef:s}=o,u=W(()=>o.disabledRef.value||e.tmNode.disabled),f=W(()=>{let{value:v}=i;if(!!v)return v({option:e.tmNode.rawNode})}),m=Z(null),p={value:null};so(()=>{p.value=m.value.$el});function c(){let{tmNode:v}=e;if(!v.isLeaf&&!v.shallowLoaded){o.loadingKeysRef.value.has(v.key)||o.loadingKeysRef.value.add(v.key);let{onLoadRef:{value:_}}=o;_&&_(v.rawNode).then(()=>{o.handleSwitcherClick(v)}).finally(()=>{o.loadingKeysRef.value.delete(v.key)})}else o.handleSwitcherClick(v)}let R=po(()=>!e.tmNode.disabled&&o.selectableRef.value&&(o.internalTreeSelect?o.mergedCheckStrategyRef.value!=="child"||o.multipleRef.value&&o.cascadeRef.value||e.tmNode.isLeaf:!0));function y(v){!R.value||li(v,"checkbox")||li(v,"switcher")||o.handleSelect(e.tmNode)}function h(v){var _,E;s.value||(u.value||y(v),(E=(_=f.value)===null||_===void 0?void 0:_.onClick)===null||E===void 0||E.call(_,v))}function A(v){var _,E;!s.value||(u.value||y(v),(E=(_=f.value)===null||_===void 0?void 0:_.onClick)===null||E===void 0||E.call(_,v))}function z(v){o.handleCheck(e.tmNode,v)}function F(v){o.handleDragStart({event:v,node:e.tmNode})}function g(v){v.currentTarget===v.target&&o.handleDragEnter({event:v,node:e.tmNode})}function k(v){v.preventDefault(),o.handleDragOver({event:v,node:e.tmNode})}function S(v){o.handleDragEnd({event:v,node:e.tmNode})}function b(v){v.currentTarget===v.target&&o.handleDragLeave({event:v,node:e.tmNode})}function B(v){v.preventDefault(),l.value!==null&&o.handleDrop({event:v,node:e.tmNode,dropPosition:l.value})}return{showDropMark:po(()=>{let{value:v}=a;if(!v)return;let{value:_}=l;if(!_)return;let{value:E}=r;if(!E)return;let{tmNode:se}=e;return se.key===E.key}),showDropMarkAsParent:po(()=>{let{value:v}=t;if(!v)return!1;let{tmNode:_}=e,{value:E}=l;return E==="before"||E==="after"?v.key===_.key:!1}),pending:po(()=>o.pendingNodeKeyRef.value===e.tmNode.key),loading:po(()=>o.loadingKeysRef.value.has(e.tmNode.key)),highlight:po(()=>{var v;return(v=o.highlightKeySetRef.value)===null||v===void 0?void 0:v.has(e.tmNode.key)}),checked:po(()=>o.displayedCheckedKeysRef.value.includes(e.tmNode.key)),indeterminate:po(()=>o.displayedIndeterminateKeysRef.value.includes(e.tmNode.key)),selected:po(()=>o.mergedSelectedKeysRef.value.includes(e.tmNode.key)),expanded:po(()=>o.mergedExpandedKeysRef.value.includes(e.tmNode.key)),disabled:u,checkable:W(()=>o.checkableRef.value&&(o.cascadeRef.value||o.mergedCheckStrategyRef.value!=="child"||e.tmNode.isLeaf)),checkboxDisabled:W(()=>!!e.tmNode.rawNode.checkboxDisabled),selectable:R,internalScrollable:o.internalScrollableRef,draggable:o.draggableRef,blockLine:s,nodeProps:f,checkboxFocusable:o.internalCheckboxFocusableRef,droppingPosition:l,droppingOffsetLevel:n,indent:d,contentInstRef:m,contentElRef:p,handleCheck:z,handleDrop:B,handleDragStart:F,handleDragEnter:g,handleDragOver:k,handleDragEnd:S,handleDragLeave:b,handleLineClick:A,handleContentClick:h,handleSwitcherClick:c}},render(){let{tmNode:e,clsPrefix:o,checkable:t,selectable:r,selected:a,checked:l,highlight:n,draggable:i,blockLine:d,indent:s,disabled:u,pending:f,internalScrollable:m,nodeProps:p}=this,c=i&&!u?{onDragenter:this.handleDragEnter,onDragleave:this.handleDragLeave,onDragend:this.handleDragEnd,onDrop:this.handleDrop,onDragover:this.handleDragOver}:void 0,R=m?za(e.key):void 0;return w("div",Object.assign({class:`${o}-tree-node-wrapper`},c),w("div",Object.assign({},d?p:void 0,{class:[`${o}-tree-node`,{[`${o}-tree-node--selected`]:a,[`${o}-tree-node--checkable`]:t,[`${o}-tree-node--highlight`]:n,[`${o}-tree-node--pending`]:f,[`${o}-tree-node--disabled`]:u,[`${o}-tree-node--selectable`]:r},p==null?void 0:p.class],"data-key":R,draggable:i&&d,onClick:this.handleLineClick,onDragstart:i&&d&&!u?this.handleDragStart:void 0}),Ts(e.level,w("div",{class:`${o}-tree-node-indent`,style:{flex:`0 0 ${s}px`}})),w(Mw,{clsPrefix:o,expanded:this.expanded,loading:this.loading,hide:e.isLeaf,onClick:this.handleSwitcherClick}),t?w(Bw,{focusable:this.checkboxFocusable,disabled:u||this.checkboxDisabled,clsPrefix:o,checked:this.checked,indeterminate:this.indeterminate,onCheck:this.handleCheck}):null,w(Ew,{ref:"contentInstRef",clsPrefix:o,checked:l,selected:a,onClick:this.handleContentClick,nodeProps:d?void 0:p,onDragstart:i&&!d&&!u?this.handleDragStart:void 0,tmNode:e}),i?this.showDropMark?ip({el:this.contentElRef.value,position:this.droppingPosition,offsetLevel:this.droppingOffsetLevel,indent:s}):this.showDropMarkAsParent?ip({el:this.contentElRef.value,position:"inside",offsetLevel:this.droppingOffsetLevel,indent:s}):null:null))}}),cd=AP;function Nw(e,o,t,r){e==null||e.forEach(a=>{t(a),Nw(a[o],o,t,r),r(a)})}function _w(e,o,t,r,a){let l=new Set,n=new Set,i=[];return Nw(e,r,d=>{if(i.push(d),a(o,d)){n.add(d[t]);for(let s=i.length-2;s>=0;--s)if(!l.has(i[s][t]))l.add(i[s][t]);else return}},()=>{i.pop()}),{expandedKeys:Array.from(l),highlightKeySet:n}}var dp=null;if(typeof window!="undefined"&&Image){let e=new Image;e.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}function Iw(e,o,t,r,a){let l=new Set,n=new Set,i=new Set,d=[],s=[],u=[];function f(p){p.forEach(c=>{if(u.push(c),o(t,c)){l.add(c[r]),i.add(c[r]);for(let y=u.length-2;y>=0;--y){let h=u[y][r];if(!n.has(h))n.add(h),l.has(h)&&l.delete(h);else break}}let R=c[a];R&&f(R),u.pop()})}f(e);function m(p,c){p.forEach(R=>{let y=R[r],h=l.has(y),A=n.has(y);if(!h&&!A)return;let z=R[a];if(z)if(h)c.push(R);else{d.push(y);let F=Object.assign(Object.assign({},R),{[a]:[]});c.push(F),m(z,F[a])}else c.push(R)})}return m(e,s),{filteredTree:s,highlightKeySet:i,expandedKeys:d}}function Hw({fNodesRef:e,mergedExpandedKeysRef:o,mergedSelectedKeysRef:t,handleSelect:r,handleSwitcherClick:a}){let{value:l}=t,n=Ce(md,null),i=n?n.pendingNodeKeyRef:Z(l.length?l[l.length-1]:null);function d(u){let{value:f}=i;if(f===null){if(["ArrowDown","ArrowUp","ArrowLeft","ArrowRight"].includes(u.code)&&f===null){let{value:m}=e,p=0;for(;pc.key===f);if(!~p)return;if(u.code==="Enter"||u.code==="NumpadEnter")r(m[p]);else if(u.code==="ArrowDown")for(p+=1;p=0;){if(!m[p].disabled){i.value=m[p].key;break}p-=1}else if(u.code==="ArrowLeft"){let c=m[p];if(c.isLeaf||!o.value.includes(f)){let R=c.getParent();R&&(i.value=R.key)}else a(c)}else if(u.code==="ArrowRight"){let c=m[p];if(c.isLeaf)return;if(!o.value.includes(f))a(c);else for(p+=1;pw("div",{class:[`${e}-tree-motion-wrapper`,`${e}-tree-motion-wrapper--${this.mode}`],style:{height:Vr(this.height)}},this.nodes.map(o=>w(cd,{clsPrefix:e,tmNode:o})))})}});var Ww=$("tree",` + `),Td()]),gl(U("slider",[U("slider-dot",{backgroundColor:"var(--n-dot-color-modal)"})])),xl(U("slider",[U("slider-dot",{backgroundColor:"var(--n-dot-color-popover)"})]))]);var fO=0,pO=Object.assign(Object.assign({},Ct.props),{to:mn.propTo,defaultValue:{type:[Number,Array],default:0},marks:Object,disabled:{type:Boolean,default:void 0},formatTooltip:Function,min:{type:Number,default:0},max:{type:Number,default:100},step:{type:[Number,String],default:1},range:Boolean,value:[Number,Array],placement:String,showTooltip:{type:Boolean,default:void 0},tooltip:{type:Boolean,default:!0},vertical:Boolean,reverse:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array]}),kf=ue({name:"Slider",props:pO,setup(e){let{mergedClsPrefixRef:t,namespaceRef:o,inlineThemeDisabled:r}=Mt(e),n=Ct("Slider","-slider",Yb,tf,e,t),i=X(null),[a,l]=wf(),[s,c]=wf(),d=X(new Set),u=Co(e),{mergedDisabledRef:p}=u,f=F(()=>{let{step:N}=e;if(N<=0||N==="mark")return 0;let $=N.toString(),V=0;return $.includes(".")&&(V=$.length-$.indexOf(".")-1),V}),m=X(e.defaultValue),y=Re(e,"value"),w=Xt(y,m),g=F(()=>{let{value:N}=w;return(e.range?N:[N]).map(Je)}),O=F(()=>g.value.length>2),j=F(()=>e.placement===void 0?e.vertical?"right":"top":e.placement),S=F(()=>{let{marks:N}=e;return N?Object.keys(N).map(parseFloat):null}),v=X(-1),D=X(-1),x=X(-1),k=X(!1),A=X(!1),E=F(()=>{let{vertical:N,reverse:$}=e;return N?$?"top":"bottom":$?"right":"left"}),z=F(()=>{if(O.value)return;let N=g.value,$=Xe(e.range?Math.min(...N):e.min),V=Xe(e.range?Math.max(...N):N[0]),{value:ae}=E;return e.vertical?{[ae]:`${$}%`,height:`${V-$}%`}:{[ae]:`${$}%`,width:`${V-$}%`}}),M=F(()=>{let N=[],{marks:$}=e;if($){let V=g.value.slice();V.sort((re,P)=>re-P);let{value:ae}=E,{value:pe}=O,{range:_}=e,W=pe?()=>!1:re=>_?re>=V[0]&&re<=V[V.length-1]:re<=V[0];for(let re of Object.keys($)){let P=Number(re);N.push({active:W(P),label:$[re],style:{[ae]:`${Xe(P)}%`}})}}return N});function se(N,$){let V=Xe(N),{value:ae}=E;return{[ae]:`${V}%`,zIndex:$===v.value?1:0}}function ye(N){return e.showTooltip||x.value===N||v.value===N&&k.value}function Ie(N){return!(v.value===N&&D.value===N)}function fe(N){var $;~N&&(v.value=N,($=a.value.get(N))===null||$===void 0||$.focus())}function ce(){s.value.forEach((N,$)=>{ye($)&&N.syncPosition()})}function we(N){let{"onUpdate:value":$,onUpdateValue:V}=e,{nTriggerFormInput:ae,nTriggerFormChange:pe}=u;V&&Se(V,N),$&&Se($,N),m.value=N,ae(),pe()}function Me(N){let{range:$}=e;if($){if(Array.isArray(N)){let{value:V}=g;N.join()!==V.join()&&we(N)}}else Array.isArray(N)||g.value[0]!==N&&we(N)}function Be(N,$){if(e.range){let V=g.value.slice();V.splice($,1,N),Me(V)}else Me(N)}function Le(N,$,V){let ae=V!==void 0;V||(V=N-$>0?1:-1);let pe=S.value||[],{step:_}=e;if(_==="mark"){let P=ze(N,pe.concat($),ae?V:void 0);return P?P.value:$}if(_<=0)return $;let{value:W}=f,re;if(ae){let P=Number(($/_).toFixed(W)),Z=Math.floor(P),le=P>Z?Z:Z-1,Ce=P0)&&(ae===null||W0?1:-1),$)}function ot(N){var $,V;if(p.value||!Cf(N)&&N.button!==fO)return;let ae=We(N);if(ae===void 0)return;let pe=g.value.slice(),_=e.range?(V=($=ze(ae,pe))===null||$===void 0?void 0:$.index)!==null&&V!==void 0?V:-1:0;_!==-1&&(N.preventDefault(),fe(_),rt(),Be(Le(ae,g.value[_]),_))}function rt(){k.value||(k.value=!0,gt("touchend",document,C),gt("mouseup",document,C),gt("touchmove",document,h),gt("mousemove",document,h))}function Dt(){k.value&&(k.value=!1,ht("touchend",document,C),ht("mouseup",document,C),ht("touchmove",document,h),ht("mousemove",document,h))}function h(N){let{value:$}=v;if(!k.value||$===-1){Dt();return}let V=We(N);Be(Le(V,g.value[$]),$)}function C(){Dt()}function L(N){v.value=N,p.value||(x.value=N)}function q(N){v.value===N&&(v.value=-1,Dt()),x.value===N&&(x.value=-1)}function K(N){x.value=N}function ne(N){x.value===N&&(x.value=-1)}Ze(v,(N,$)=>void Bt(()=>D.value=$)),Ze(w,()=>{if(e.marks){if(A.value)return;A.value=!0,Bt(()=>{A.value=!1})}Bt(ce)});let oe=F(()=>{let{self:{railColor:N,railColorHover:$,fillColor:V,fillColorHover:ae,handleColor:pe,opacityDisabled:_,dotColor:W,dotColorModal:re,handleBoxShadow:P,handleBoxShadowHover:Z,handleBoxShadowActive:le,handleBoxShadowFocus:Ce,dotBorder:Ke,dotBoxShadow:He,railHeight:Fe,railWidthVertical:qe,handleSize:Tt,dotHeight:ho,dotWidth:ii,dotBorderRadius:hr,fontSize:gr,dotBorderActive:wn,dotColorPopover:ai},common:{cubicBezierEaseInOut:kn}}=n.value;return{"--n-bezier":kn,"--n-dot-border":Ke,"--n-dot-border-active":wn,"--n-dot-border-radius":hr,"--n-dot-box-shadow":He,"--n-dot-color":W,"--n-dot-color-modal":re,"--n-dot-color-popover":ai,"--n-dot-height":ho,"--n-dot-width":ii,"--n-fill-color":V,"--n-fill-color-hover":ae,"--n-font-size":gr,"--n-handle-box-shadow":P,"--n-handle-box-shadow-active":le,"--n-handle-box-shadow-focus":Ce,"--n-handle-box-shadow-hover":Z,"--n-handle-color":pe,"--n-handle-size":Tt,"--n-opacity-disabled":_,"--n-rail-color":N,"--n-rail-color-hover":$,"--n-rail-height":Fe,"--n-rail-width-vertical":qe}}),H=r?qt("slider",void 0,oe,e):void 0,Q=F(()=>{let{self:{fontSize:N,indicatorColor:$,indicatorBoxShadow:V,indicatorTextColor:ae,indicatorBorderRadius:pe}}=n.value;return{"--n-font-size":N,"--n-indicator-border-radius":pe,"--n-indicator-box-shadow":V,"--n-indicator-color":$,"--n-indicator-text-color":ae}}),Y=r?qt("slider-indicator",void 0,Q,e):void 0;return{mergedClsPrefix:t,namespace:o,uncontrolledValue:m,mergedValue:w,mergedDisabled:p,mergedPlacement:j,isMounted:Mr(),adjustedTo:mn(e),dotTransitionDisabled:A,markInfos:M,isShowTooltip:ye,isSkipCSSDetection:Ie,handleRailRef:i,setHandleRefs:l,setFollowerRefs:c,fillStyle:z,getHandleStyle:se,activeIndex:v,arrifiedValues:g,followerEnabledIndexSet:d,handleRailMouseDown:ot,handleHandleFocus:L,handleHandleBlur:q,handleHandleMouseEnter:K,handleHandleMouseLeave:ne,handleRailKeyDown:vt,indicatorCssVars:r?void 0:Q,indicatorThemeClass:Y?.themeClass,indicatorOnRender:Y?.onRender,cssVars:r?void 0:oe,themeClass:H?.themeClass,onRender:H?.onRender}},render(){var e;let{mergedClsPrefix:t,themeClass:o,formatTooltip:r}=this;return(e=this.onRender)===null||e===void 0||e.call(this),b("div",{class:[`${t}-slider`,o,{[`${t}-slider--disabled`]:this.mergedDisabled,[`${t}-slider--active`]:this.activeIndex!==-1,[`${t}-slider--with-mark`]:this.marks,[`${t}-slider--vertical`]:this.vertical,[`${t}-slider--reverse`]:this.reverse}],style:this.cssVars,onKeydown:this.handleRailKeyDown,onMousedown:this.handleRailMouseDown,onTouchstart:this.handleRailMouseDown},b("div",{class:`${t}-slider-rail`},b("div",{class:`${t}-slider-rail__fill`,style:this.fillStyle}),this.marks?b("div",{class:[`${t}-slider-dots`,this.dotTransitionDisabled&&`${t}-slider-dots--transition-disabled`]},this.markInfos.map(n=>b("div",{key:n.label,class:[`${t}-slider-dot`,{[`${t}-slider-dot--active`]:n.active}],style:n.style}))):null,b("div",{ref:"handleRailRef",class:`${t}-slider-handles`},this.arrifiedValues.map((n,i)=>{let a=this.isShowTooltip(i);return b(wl,null,{default:()=>[b(kl,null,{default:()=>b("div",{ref:this.setHandleRefs(i),class:`${t}-slider-handle`,tabindex:this.mergedDisabled?-1:0,style:this.getHandleStyle(n,i),onFocus:()=>this.handleHandleFocus(i),onBlur:()=>this.handleHandleBlur(i),onMouseenter:()=>this.handleHandleMouseEnter(i),onMouseleave:()=>this.handleHandleMouseLeave(i)})}),this.tooltip&&b(Dl,{ref:this.setFollowerRefs(i),show:a,to:this.adjustedTo,enabled:this.showTooltip&&!this.range||this.followerEnabledIndexSet.has(i),teleportDisabled:this.adjustedTo===mn.tdkey,placement:this.mergedPlacement,containerClass:this.namespace},{default:()=>b(To,{name:"fade-in-scale-up-transition",appear:this.isMounted,css:this.isSkipCSSDetection(i),onEnter:()=>this.followerEnabledIndexSet.add(i),onAfterLeave:()=>this.followerEnabledIndexSet.delete(i)},{default:()=>{var l;return a?((l=this.indicatorOnRender)===null||l===void 0||l.call(this),b("div",{class:[`${t}-slider-handle-indicator`,this.indicatorThemeClass,`${t}-slider-handle-indicator--${this.mergedPlacement}`],style:this.indicatorCssVars},typeof r=="function"?r(n):n)):null}})})]})})),this.marks?b("div",{class:`${t}-slider-marks`},this.markInfos.map(n=>b("div",{key:n.label,class:`${t}-slider-mark`,style:n.style},n.label))):null))}});var ms="n-tree-select";var rr="n-tree";var Xb=ue({name:"NTreeSwitcher",props:{clsPrefix:{type:String,required:!0},expanded:Boolean,hide:Boolean,loading:Boolean,onClick:Function},setup(e){let{renderSwitcherIconRef:t}=ke(rr,null);return()=>{let{clsPrefix:o}=e;return b("span",{"data-switcher":!0,class:[`${o}-tree-node-switcher`,{[`${o}-tree-node-switcher--expanded`]:e.expanded,[`${o}-tree-node-switcher--hide`]:e.hide}],onClick:e.onClick},b("div",{class:`${o}-tree-node-switcher__icon`},b(So,null,{default:()=>{if(e.loading)return b(jr,{clsPrefix:o,key:"loading",radius:85,strokeWidth:20});let{value:r}=t;return r?r():b(_o,{clsPrefix:o,key:"switcher"},{default:()=>b(hd,null)})}})))}}});var Zb=ue({name:"NTreeNodeCheckbox",props:{clsPrefix:{type:String,required:!0},focusable:Boolean,disabled:Boolean,checked:Boolean,indeterminate:Boolean,onCheck:Function},setup(e){let t=ke(rr);function o(n){let{onCheck:i}=e;if(i)return i(n)}function r(n){e.indeterminate?o(!1):o(n)}return{handleUpdateValue:r,mergedTheme:t.mergedThemeRef}},render(){let{clsPrefix:e,mergedTheme:t,checked:o,indeterminate:r,disabled:n,focusable:i,handleUpdateValue:a}=this;return b("span",{class:`${e}-tree-node-checkbox`,"data-checkbox":!0},b(eu,{focusable:i,disabled:n,theme:t.peers.Checkbox,themeOverrides:t.peerOverrides.Checkbox,checked:o,indeterminate:r,onUpdateChecked:a}))}});var Qb=ue({name:"TreeNodeContent",props:{clsPrefix:{type:String,required:!0},disabled:Boolean,checked:Boolean,selected:Boolean,onClick:Function,onDragstart:Function,tmNode:{type:Object,required:!0},nodeProps:Object},setup(e){let{renderLabelRef:t,renderPrefixRef:o,renderSuffixRef:r,labelFieldRef:n}=ke(rr),i=X(null);function a(s){let{onClick:c}=e;c&&c(s)}function l(s){a(s)}return{selfRef:i,renderLabel:t,renderPrefix:o,renderSuffix:r,labelField:n,handleClick:l}},render(){let{clsPrefix:e,labelField:t,nodeProps:o,checked:r=!1,selected:n=!1,renderLabel:i,renderPrefix:a,renderSuffix:l,handleClick:s,onDragstart:c,tmNode:{rawNode:d,rawNode:{prefix:u,suffix:p,[t]:f}}}=this;return b("span",Object.assign({},o,{ref:"selfRef",class:[`${e}-tree-node-content`,o?.class],onClick:s,draggable:c===void 0?void 0:!0,onDragstart:c}),a||u?b("div",{class:`${e}-tree-node-content__prefix`},a?a({option:d,selected:n,checked:r}):zn(u)):null,b("div",{class:`${e}-tree-node-content__text`},i?i({option:d,selected:n,checked:r}):zn(f)),l||p?b("div",{class:`${e}-tree-node-content__suffix`},l?l({option:d,selected:n,checked:r}):zn(p)):null)}});function Sf({position:e,offsetLevel:t,indent:o,el:r}){let n={position:"absolute",boxSizing:"border-box",right:0};if(e==="inside")n.left=0,n.top=0,n.bottom=0,n.borderRadius="inherit",n.boxShadow="inset 0 0 0 2px var(--n-drop-mark-color)";else{let i=e==="before"?"top":"bottom";n[i]=0,n.left=`${r.offsetLeft+6-t*o}px`,n.height="2px",n.backgroundColor="var(--n-drop-mark-color)",n.transformOrigin=i,n.borderRadius="1px",n.transform=e==="before"?"translateY(-4px)":"translateY(4px)"}return b("div",{style:n})}function Jb({dropPosition:e,node:t}){return t.isLeaf===!1||t.children?!0:e!=="inside"}var mO=ue({name:"TreeNode",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(e){let t=ke(rr),{droppingNodeParentRef:o,droppingMouseNodeRef:r,draggingNodeRef:n,droppingPositionRef:i,droppingOffsetLevelRef:a,nodePropsRef:l,indentRef:s,blockLineRef:c}=t,d=F(()=>t.disabledRef.value||e.tmNode.disabled),u=F(()=>{let{value:E}=l;if(E)return E({option:e.tmNode.rawNode})}),p=X(null),f={value:null};tt(()=>{f.value=p.value.$el});function m(){let{tmNode:E}=e;if(!E.isLeaf&&!E.shallowLoaded){t.loadingKeysRef.value.has(E.key)||t.loadingKeysRef.value.add(E.key);let{onLoadRef:{value:z}}=t;z&&z(E.rawNode).then(()=>{t.handleSwitcherClick(E)}).finally(()=>{t.loadingKeysRef.value.delete(E.key)})}else t.handleSwitcherClick(E)}let y=Qe(()=>!e.tmNode.disabled&&t.selectableRef.value&&(t.internalTreeSelect?t.mergedCheckStrategyRef.value!=="child"||t.multipleRef.value&&t.cascadeRef.value||e.tmNode.isLeaf:!0));function w(E){y.value&&(ll(E,"checkbox")||ll(E,"switcher")||t.handleSelect(e.tmNode))}function g(E){var z,M;c.value||(d.value||w(E),(M=(z=u.value)===null||z===void 0?void 0:z.onClick)===null||M===void 0||M.call(z,E))}function O(E){var z,M;c.value&&(d.value||w(E),(M=(z=u.value)===null||z===void 0?void 0:z.onClick)===null||M===void 0||M.call(z,E))}function j(E){t.handleCheck(e.tmNode,E)}function S(E){t.handleDragStart({event:E,node:e.tmNode})}function v(E){E.currentTarget===E.target&&t.handleDragEnter({event:E,node:e.tmNode})}function D(E){E.preventDefault(),t.handleDragOver({event:E,node:e.tmNode})}function x(E){t.handleDragEnd({event:E,node:e.tmNode})}function k(E){E.currentTarget===E.target&&t.handleDragLeave({event:E,node:e.tmNode})}function A(E){E.preventDefault(),i.value!==null&&t.handleDrop({event:E,node:e.tmNode,dropPosition:i.value})}return{showDropMark:Qe(()=>{let{value:E}=n;if(!E)return;let{value:z}=i;if(!z)return;let{value:M}=r;if(!M)return;let{tmNode:se}=e;return se.key===M.key}),showDropMarkAsParent:Qe(()=>{let{value:E}=o;if(!E)return!1;let{tmNode:z}=e,{value:M}=i;return M==="before"||M==="after"?E.key===z.key:!1}),pending:Qe(()=>t.pendingNodeKeyRef.value===e.tmNode.key),loading:Qe(()=>t.loadingKeysRef.value.has(e.tmNode.key)),highlight:Qe(()=>{var E;return(E=t.highlightKeySetRef.value)===null||E===void 0?void 0:E.has(e.tmNode.key)}),checked:Qe(()=>t.displayedCheckedKeysRef.value.includes(e.tmNode.key)),indeterminate:Qe(()=>t.displayedIndeterminateKeysRef.value.includes(e.tmNode.key)),selected:Qe(()=>t.mergedSelectedKeysRef.value.includes(e.tmNode.key)),expanded:Qe(()=>t.mergedExpandedKeysRef.value.includes(e.tmNode.key)),disabled:d,checkable:F(()=>t.checkableRef.value&&(t.cascadeRef.value||t.mergedCheckStrategyRef.value!=="child"||e.tmNode.isLeaf)),checkboxDisabled:F(()=>!!e.tmNode.rawNode.checkboxDisabled),selectable:y,internalScrollable:t.internalScrollableRef,draggable:t.draggableRef,blockLine:c,nodeProps:u,checkboxFocusable:t.internalCheckboxFocusableRef,droppingPosition:i,droppingOffsetLevel:a,indent:s,contentInstRef:p,contentElRef:f,handleCheck:j,handleDrop:A,handleDragStart:S,handleDragEnter:v,handleDragOver:D,handleDragEnd:x,handleDragLeave:k,handleLineClick:O,handleContentClick:g,handleSwitcherClick:m}},render(){let{tmNode:e,clsPrefix:t,checkable:o,selectable:r,selected:n,checked:i,highlight:a,draggable:l,blockLine:s,indent:c,disabled:d,pending:u,internalScrollable:p,nodeProps:f}=this,m=l&&!d?{onDragenter:this.handleDragEnter,onDragleave:this.handleDragLeave,onDragend:this.handleDragEnd,onDrop:this.handleDrop,onDragover:this.handleDragOver}:void 0,y=p?Bn(e.key):void 0;return b("div",Object.assign({class:`${t}-tree-node-wrapper`},m),b("div",Object.assign({},s?f:void 0,{class:[`${t}-tree-node`,{[`${t}-tree-node--selected`]:n,[`${t}-tree-node--checkable`]:o,[`${t}-tree-node--highlight`]:a,[`${t}-tree-node--pending`]:u,[`${t}-tree-node--disabled`]:d,[`${t}-tree-node--selectable`]:r},f?.class],"data-key":y,draggable:l&&s,onClick:this.handleLineClick,onDragstart:l&&s&&!d?this.handleDragStart:void 0}),Ac(e.level,b("div",{class:`${t}-tree-node-indent`,style:{flex:`0 0 ${c}px`}})),b(Xb,{clsPrefix:t,expanded:this.expanded,loading:this.loading,hide:e.isLeaf,onClick:this.handleSwitcherClick}),o?b(Zb,{focusable:this.checkboxFocusable,disabled:d||this.checkboxDisabled,clsPrefix:t,checked:this.checked,indeterminate:this.indeterminate,onCheck:this.handleCheck}):null,b(Qb,{ref:"contentInstRef",clsPrefix:t,checked:i,selected:n,onClick:this.handleContentClick,nodeProps:s?void 0:f,onDragstart:l&&!s&&!d?this.handleDragStart:void 0,tmNode:e}),l?this.showDropMark?Sf({el:this.contentElRef.value,position:this.droppingPosition,offsetLevel:this.droppingOffsetLevel,indent:c}):this.showDropMarkAsParent?Sf({el:this.contentElRef.value,position:"inside",offsetLevel:this.droppingOffsetLevel,indent:c}):null:null))}}),hs=mO;function e0(e,t,o,r){e?.forEach(n=>{o(n),e0(n[t],t,o,r),r(n)})}function t0(e,t,o,r,n){let i=new Set,a=new Set,l=[];return e0(e,r,s=>{if(l.push(s),n(t,s)){a.add(s[o]);for(let c=l.length-2;c>=0;--c)if(!i.has(l[c][o]))i.add(l[c][o]);else return}},()=>{l.pop()}),{expandedKeys:Array.from(i),highlightKeySet:a}}var _f=null;if(typeof window<"u"&&Image){let e=new Image;e.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}function o0(e,t,o,r,n){let i=new Set,a=new Set,l=new Set,s=[],c=[],d=[];function u(f){f.forEach(m=>{if(d.push(m),t(o,m)){i.add(m[r]),l.add(m[r]);for(let w=d.length-2;w>=0;--w){let g=d[w][r];if(!a.has(g))a.add(g),i.has(g)&&i.delete(g);else break}}let y=m[n];y&&u(y),d.pop()})}u(e);function p(f,m){f.forEach(y=>{let w=y[r],g=i.has(w),O=a.has(w);if(!g&&!O)return;let j=y[n];if(j)if(g)m.push(y);else{s.push(w);let S=Object.assign(Object.assign({},y),{[n]:[]});m.push(S),p(j,S[n])}else m.push(y)})}return p(e,c),{filteredTree:c,highlightKeySet:l,expandedKeys:s}}function r0({fNodesRef:e,mergedExpandedKeysRef:t,mergedSelectedKeysRef:o,handleSelect:r,handleSwitcherClick:n}){let{value:i}=o,a=ke(ms,null),l=a?a.pendingNodeKeyRef:X(i.length?i[i.length-1]:null);function s(d){let{value:u}=l;if(u===null){if(["ArrowDown","ArrowUp","ArrowLeft","ArrowRight"].includes(d.code)&&u===null){let{value:p}=e,f=0;for(;fm.key===u);if(!~f)return;if(d.code==="Enter"||d.code==="NumpadEnter")r(p[f]);else if(d.code==="ArrowDown")for(f+=1;f=0;){if(!p[f].disabled){l.value=p[f].key;break}f-=1}else if(d.code==="ArrowLeft"){let m=p[f];if(m.isLeaf||!t.value.includes(u)){let y=m.getParent();y&&(l.value=y.key)}else n(m)}else if(d.code==="ArrowRight"){let m=p[f];if(m.isLeaf)return;if(!t.value.includes(u))n(m);else for(f+=1;fb("div",{class:[`${e}-tree-motion-wrapper`,`${e}-tree-motion-wrapper--${this.mode}`],style:{height:Ir(this.height)}},this.nodes.map(t=>b(hs,{clsPrefix:e,tmNode:t})))})}});var i0=U("tree",` font-size: var(--n-font-size); outline: none; `,[J("ul, li",` margin: 0; padding: 0; list-style: none; - `),J(">",[$("tree-node",[J("&:first-child",{marginTop:0})])]),$("tree-node-indent",` + `),J(">",[U("tree-node",[J("&:first-child",{marginTop:0})])]),U("tree-node-indent",` height: 0; - `),$("tree-motion-wrapper",[Te("expand",[cu({duration:"0.2s"})]),Te("collapse",[cu({duration:"0.2s",reverse:!0})])]),$("tree-node-wrapper",` + `),U("tree-motion-wrapper",[be("expand",[Nd({duration:"0.2s"})]),be("collapse",[Nd({duration:"0.2s",reverse:!0})])]),U("tree-node-wrapper",` box-sizing: border-box; padding: 3px 0; - `),$("tree-node",` + `),U("tree-node",` position: relative; display: flex; border-radius: var(--n-node-border-radius); transition: background-color .3s var(--n-bezier); - `,[Te("highlight",[$("tree-node-content",[oe("text",{borderBottomColor:"var(--n-node-text-color-disabled)"})])]),Te("disabled",[$("tree-node-content",` + `,[be("highlight",[U("tree-node-content",[ee("text",{borderBottomColor:"var(--n-node-text-color-disabled)"})])]),be("disabled",[U("tree-node-content",` color: var(--n-node-text-color-disabled); cursor: not-allowed; - `)]),ct("disabled",[Te("selectable",[$("tree-node-content",` + `)]),oo("disabled",[be("selectable",[U("tree-node-content",` cursor: pointer; - `)])])]),Te("block-node",[$("tree-node-content",` + `)])])]),be("block-node",[U("tree-node-content",` width: 100%; - `)]),ct("block-line",[$("tree-node",[ct("disabled",[$("tree-node-content",[J("&:hover",{backgroundColor:"var(--n-node-color-hover)"})]),Te("selectable",[$("tree-node-content",[J("&:active",{backgroundColor:"var(--n-node-color-pressed)"})])]),Te("pending",[$("tree-node-content",` + `)]),oo("block-line",[U("tree-node",[oo("disabled",[U("tree-node-content",[J("&:hover",{backgroundColor:"var(--n-node-color-hover)"})]),be("selectable",[U("tree-node-content",[J("&:active",{backgroundColor:"var(--n-node-color-pressed)"})])]),be("pending",[U("tree-node-content",` background-color: var(--n-node-color-hover); - `)]),Te("selected",[$("tree-node-content",{backgroundColor:"var(--n-node-color-active)"})])])])]),Te("block-line",[$("tree-node",[ct("disabled",[J("&:hover",{backgroundColor:"var(--n-node-color-hover)"}),Te("selectable",[J("&:active",{backgroundColor:"var(--n-node-color-pressed)"})]),Te("pending",` + `)]),be("selected",[U("tree-node-content",{backgroundColor:"var(--n-node-color-active)"})])])])]),be("block-line",[U("tree-node",[oo("disabled",[J("&:hover",{backgroundColor:"var(--n-node-color-hover)"}),be("selectable",[J("&:active",{backgroundColor:"var(--n-node-color-pressed)"})]),be("pending",` background-color: var(--n-node-color-hover); - `),Te("selected",{backgroundColor:"var(--n-node-color-active)"})]),Te("disabled",` + `),be("selected",{backgroundColor:"var(--n-node-color-active)"})]),be("disabled",` cursor: not-allowed; - `)])]),$("tree-node-switcher",` + `)])]),U("tree-node-switcher",` cursor: pointer; display: inline-flex; flex-shrink: 0; @@ -889,7 +889,7 @@ ${o} justify-content: center; transition: transform .15s var(--n-bezier); vertical-align: bottom; - `,[oe("icon",` + `,[ee("icon",` position: relative; height: 14px; width: 14px; @@ -897,14 +897,14 @@ ${o} color: var(--n-arrow-color); transition: color .3s var(--n-bezier); font-size: 14px; - `,[$("icon",[Rt()]),$("base-loading",` + `,[U("icon",[co()]),U("base-loading",` color: var(--n-loading-color); position: absolute; left: 0; top: 0; right: 0; bottom: 0; - `,[Rt()]),$("base-icon",[Rt()])]),Te("hide",{visibility:"hidden"}),Te("expanded",{transform:"rotate(90deg)"})]),$("tree-node-checkbox",` + `,[co()]),U("base-icon",[co()])]),be("hide",{visibility:"hidden"}),be("expanded",{transform:"rotate(90deg)"})]),U("tree-node-checkbox",` display: inline-flex; height: 24px; width: 16px; @@ -912,9 +912,9 @@ ${o} align-items: center; justify-content: center; margin-right: 4px; - `),Te("checkable",[$("tree-node-content",` + `),be("checkable",[U("tree-node-content",` padding: 0 6px; - `)]),$("tree-node-content",` + `)]),U("tree-node-content",` position: relative; display: inline-flex; align-items: center; @@ -933,87 +933,92 @@ ${o} text-decoration-color .3s var(--n-bezier), background-color .3s var(--n-bezier), border-color .3s var(--n-bezier); - `,[J("&:last-child",{marginBottom:0}),oe("prefix",` + `,[J("&:last-child",{marginBottom:0}),ee("prefix",` display: inline-flex; margin-right: 8px; - `),oe("text",` + `),ee("text",` border-bottom: 1px solid #0000; transition: border-color .3s var(--n-bezier); flex-grow:1; - `),oe("suffix",` + `),ee("suffix",` display: inline-flex; - `)]),oe("empty","margin: auto;")]);var DP=function(e,o,t,r){function a(l){return l instanceof t?l:new t(function(n){n(l)})}return new(t||(t=Promise))(function(l,n){function i(u){try{s(r.next(u))}catch(f){n(f)}}function d(u){try{s(r.throw(u))}catch(f){n(f)}}function s(u){u.done?l(u.value):a(u.value).then(i,d)}s((r=r.apply(e,o||[])).next())})},hd=30;function PP(e,o){return{getKey(t){return t[e]},getChildren(t){return t[o]},getDisabled(t){return!!(t.disabled||t.checkboxDisabled)}}}var MP={allowCheckingNotLoaded:Boolean,filter:Function,defaultExpandAll:Boolean,expandedKeys:Array,keyField:{type:String,default:"key"},labelField:{type:String,default:"label"},childrenField:{type:String,default:"children"},defaultExpandedKeys:{type:Array,default:()=>[]},indeterminateKeys:Array,onUpdateIndeterminateKeys:[Function,Array],"onUpdate:indeterminateKeys":[Function,Array],onUpdateExpandedKeys:[Function,Array],"onUpdate:expandedKeys":[Function,Array]},BP=Object.assign(Object.assign(Object.assign(Object.assign({},Mo.props),{showIrrelevantNodes:{type:Boolean,default:!0},data:{type:Array,default:()=>[]},expandOnDragenter:{type:Boolean,default:!0},cancelable:{type:Boolean,default:!0},checkable:Boolean,draggable:Boolean,blockNode:Boolean,blockLine:Boolean,disabled:Boolean,checkedKeys:Array,defaultCheckedKeys:{type:Array,default:()=>[]},selectedKeys:Array,defaultSelectedKeys:{type:Array,default:()=>[]},multiple:Boolean,pattern:{type:String,default:""},onLoad:Function,cascade:Boolean,selectable:{type:Boolean,default:!0},indent:{type:Number,default:16},allowDrop:{type:Function,default:Lw},animated:{type:Boolean,default:!0},virtualScroll:Boolean,watchProps:Array,renderLabel:Function,renderPrefix:Function,renderSuffix:Function,renderSwitcherIcon:Function,nodeProps:Function,onDragenter:[Function,Array],onDragleave:[Function,Array],onDragend:[Function,Array],onDragstart:[Function,Array],onDragover:[Function,Array],onDrop:[Function,Array],onUpdateCheckedKeys:[Function,Array],"onUpdate:checkedKeys":[Function,Array],onUpdateSelectedKeys:[Function,Array],"onUpdate:selectedKeys":[Function,Array]}),MP),{internalTreeSelect:Boolean,internalScrollable:Boolean,internalScrollablePadding:String,internalRenderEmpty:Function,internalHighlightKeySet:Object,internalUnifySelectCheck:Boolean,internalCheckboxFocusable:{type:Boolean,default:!0},internalFocusable:{type:Boolean,default:!0},checkStrategy:{type:String,default:"all"},leafOnly:Boolean}),sp=ae({name:"Tree",props:BP,setup(e){let{mergedClsPrefixRef:o,inlineThemeDisabled:t}=Ko(e),r=Mo("Tree","-tree",Ww,Zf,e,o),a=Z(null),l=Z(null),n=Z(null);function i(){var P;return(P=n.value)===null||P===void 0?void 0:P.listElRef}function d(){var P;return(P=n.value)===null||P===void 0?void 0:P.itemsElRef}let s=W(()=>{let{pattern:P}=e;return P?!P.length||!mo.value?{filteredTree:e.data,highlightKeySet:null,expandedKeys:void 0}:Iw(e.data,mo.value,P,e.keyField,e.childrenField):{filteredTree:e.data,highlightKeySet:null,expandedKeys:void 0}}),u=W(()=>nu(e.showIrrelevantNodes?e.data:s.value.filteredTree,PP(e.keyField,e.childrenField))),f=Ce(md,null),m=e.internalTreeSelect?f.dataTreeMate:u,{watchProps:p}=e,c=Z([]);(p==null?void 0:p.includes("defaultCheckedKeys"))?Uo(()=>{c.value=e.defaultCheckedKeys}):c.value=e.defaultCheckedKeys;let R=_e(e,"checkedKeys"),y=dt(R,c),h=W(()=>m.value.getCheckedKeys(y.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded})),A=W(()=>e.leafOnly?"child":e.checkStrategy),z=W(()=>h.value.checkedKeys),F=W(()=>{let{indeterminateKeys:P}=e;return P!==void 0?P:h.value.indeterminateKeys}),g=Z([]);(p==null?void 0:p.includes("defaultSelectedKeys"))?Uo(()=>{g.value=e.defaultSelectedKeys}):g.value=e.defaultSelectedKeys;let k=_e(e,"selectedKeys"),S=dt(k,g),b=Z([]),B=P=>{b.value=e.defaultExpandAll?m.value.getNonLeafKeys():P===void 0?e.defaultExpandedKeys:P};(p==null?void 0:p.includes("defaultExpandedKeys"))?Uo(()=>B(void 0)):Uo(()=>B(e.defaultExpandedKeys));let v=_e(e,"expandedKeys"),_=dt(v,b),E=W(()=>u.value.getFlattenedNodes(_.value)),{pendingNodeKeyRef:se,handleKeyup:Fe,handleKeydown:Ee}=Hw({mergedSelectedKeysRef:S,fNodesRef:E,mergedExpandedKeysRef:_,handleSelect:Ye,handleSwitcherClick:Ze}),pe=null,fe=null,Re=Z(new Set),eo=W(()=>e.internalHighlightKeySet||s.value.highlightKeySet),oo=dt(eo,Re),Qe=Z(new Set),fo=W(()=>_.value.filter(P=>!Qe.value.has(P))),no=0,Bo=Z(null),Eo=Z(null),Ke=Z(null),Ve=Z(null),ao=Z(0),Ae=W(()=>{let{value:P}=Eo;return P?P.parent:null}),mo=W(()=>{let{filter:P}=e;if(P)return P;let{labelField:q}=e;return(ue,he)=>ue.length?he[q].toLowerCase().includes(ue.toLowerCase()):!0});io(_e(e,"data"),()=>{Qe.value.clear(),se.value=null,Le()},{deep:!1});let Lo;io(_e(e,"pattern"),(P,q)=>{if(e.showIrrelevantNodes)if(Lo=void 0,P){let{expandedKeys:ue,highlightKeySet:he}=_w(e.data,e.pattern,e.keyField,e.childrenField,mo.value);Re.value=he,V(ue,ee(ue))}else Re.value=new Set;else if(!P.length)Lo!==void 0&&V(Lo,ee(Lo));else{q.length||(Lo=_.value);let{expandedKeys:ue}=s.value;ue!==void 0&&V(ue,ee(ue))}});function bo(P){return DP(this,void 0,void 0,function*(){let{onLoad:q}=e;if(!q)return yield Promise.resolve();let{value:ue}=Qe;return yield new Promise(he=>{ue.has(P.key)||(ue.add(P.key),q(P.rawNode).then(()=>{ue.delete(P.key),he()}).catch(je=>{console.error(je),Oe()}))})})}Uo(()=>{var P;let{value:q}=u;if(!q)return;let{getNode:ue}=q;(P=_.value)===null||P===void 0||P.forEach(he=>{let je=ue(he);je&&!je.shallowLoaded&&bo(je)})});let x=Z(!1),O=Z([]);io(fo,(P,q)=>{if(!e.animated){Qo(K);return}let ue=new Set(q),he=null,je=null;for(let Vo of P)if(!ue.has(Vo)){if(he!==null)return;he=Vo}let qo=new Set(P);for(let Vo of q)if(!qo.has(Vo)){if(je!==null)return;je=Vo}if(he!==null&&je!==null||he===null&&je===null)return;let{virtualScroll:Do}=e,mr=(Do?n.value.listElRef:a.value).offsetHeight,cr=Math.ceil(mr/hd)+1;if(he!==null){x.value=!0,O.value=u.value.getFlattenedNodes(q);let Vo=O.value.findIndex($o=>$o.key===he);if(~Vo){let $o=rl(O.value[Vo].children,P);O.value.splice(Vo+1,0,{__motion:!0,mode:"expand",height:Do?$o.length*hd:void 0,nodes:Do?$o.slice(0,cr):$o})}}if(je!==null){O.value=u.value.getFlattenedNodes(P);let Vo=O.value.findIndex($o=>$o.key===je);if(~Vo){let $o=O.value[Vo].children;if(!$o)return;x.value=!0;let xt=rl($o,P);O.value.splice(Vo+1,0,{__motion:!0,mode:"collapse",height:Do?xt.length*hd:void 0,nodes:Do?xt.slice(0,cr):xt})}}});let N=W(()=>au(E.value)),U=W(()=>x.value?O.value:E.value);function K(){let{value:P}=l;P&&P.sync()}function le(){x.value=!1,e.virtualScroll&&Qo(K)}function ee(P){let{getNode:q}=m.value;return P.map(ue=>{var he;return((he=q(ue))===null||he===void 0?void 0:he.rawNode)||null})}function V(P,q){let{"onUpdate:expandedKeys":ue,onUpdateExpandedKeys:he}=e;b.value=P,ue&&be(ue,P,q),he&&be(he,P,q)}function Y(P,q){let{"onUpdate:checkedKeys":ue,onUpdateCheckedKeys:he}=e;c.value=P,he&&be(he,P,q),ue&&be(ue,P,q)}function G(P,q){let{"onUpdate:indeterminateKeys":ue,onUpdateIndeterminateKeys:he}=e;ue&&be(ue,P,q),he&&be(he,P,q)}function D(P,q){let{"onUpdate:selectedKeys":ue,onUpdateSelectedKeys:he}=e;g.value=P,he&&be(he,P,q),ue&&be(ue,P,q)}function L(P){let{onDragenter:q}=e;q&&be(q,P)}function I(P){let{onDragleave:q}=e;q&&be(q,P)}function ne(P){let{onDragend:q}=e;q&&be(q,P)}function me(P){let{onDragstart:q}=e;q&&be(q,P)}function ye(P){let{onDragover:q}=e;q&&be(q,P)}function ke(P){let{onDrop:q}=e;q&&be(q,P)}function Le(){Q(),ie()}function Q(){Bo.value=null}function ie(){ao.value=0,Eo.value=null,Ke.value=null,Ve.value=null,Oe()}function Oe(){pe&&(window.clearTimeout(pe),pe=null),fe=null}function He(P,q){if(e.disabled||P.disabled)return;if(e.internalUnifySelectCheck&&!e.multiple){Ye(P);return}let{checkedKeys:ue,indeterminateKeys:he}=m.value[q?"check":"uncheck"](P.key,z.value,{cascade:e.cascade,checkStrategy:A.value,allowNotLoaded:e.allowCheckingNotLoaded});Y(ue,ee(ue)),G(he,ee(he))}function lo(P){if(e.disabled)return;let{value:q}=_,ue=q.findIndex(he=>he===P);if(~ue){let he=Array.from(q);he.splice(ue,1),V(he,ee(he))}else{let he=u.value.getNode(P);if(!he||he.isLeaf)return;let je=q.concat(P);V(je,ee(je))}}function Ze(P){e.disabled||x.value||lo(P.key)}function Ye(P){if(!(e.disabled||!e.selectable)){if(se.value=P.key,e.internalUnifySelectCheck){let{value:{checkedKeys:q,indeterminateKeys:ue}}=h;e.multiple?He(P,!(q.includes(P.key)||ue.includes(P.key))):Y([P.key],ee([P.key]))}if(e.multiple){let q=Array.from(S.value),ue=q.findIndex(he=>he===P.key);~ue?e.cancelable&&q.splice(ue,1):~ue||q.push(P.key),D(q,ee(q))}else S.value.includes(P.key)?e.cancelable&&D([],[]):D([P.key],ee([P.key]))}}function Xe(P){if(pe&&(window.clearTimeout(pe),pe=null),P.isLeaf)return;fe=P.key;let q=()=>{if(fe!==P.key)return;let{value:ue}=Ke;if(ue&&ue.key===P.key&&!_.value.includes(P.key)){let he=_.value.concat(P.key);V(he,ee(he))}pe=null,fe=null};P.shallowLoaded?pe=window.setTimeout(()=>{q()},1e3):pe=window.setTimeout(()=>{bo(P).then(()=>{q()})},1e3)}function vo({event:P,node:q}){!e.draggable||e.disabled||q.disabled||(de({event:P,node:q},!1),L({event:P,node:q.rawNode}))}function lt({event:P,node:q}){!e.draggable||e.disabled||q.disabled||I({event:P,node:q.rawNode})}function T(P){P.target===P.currentTarget&&ie()}function H({event:P,node:q}){Le(),!(!e.draggable||e.disabled||q.disabled)&&ne({event:P,node:q.rawNode})}function re({event:P,node:q}){var ue;!e.draggable||e.disabled||q.disabled||(dp&&((ue=P.dataTransfer)===null||ue===void 0||ue.setDragImage(dp,0,0)),no=P.clientX,Bo.value=q,me({event:P,node:q.rawNode}))}function de({event:P,node:q},ue=!0){var he;if(!e.draggable||e.disabled||q.disabled)return;let{value:je}=Bo;if(!je)return;let{allowDrop:qo,indent:Do}=e;ue&&ye({event:P,node:q.rawNode});let mr=P.currentTarget,{height:cr,top:Vo}=mr.getBoundingClientRect(),$o=P.clientY-Vo,xt;qo({node:q.rawNode,dropPosition:"inside",phase:"drag"})?$o<=8?xt="before":$o>=cr-8?xt="after":xt="inside":$o<=cr/2?xt="before":xt="after";let{value:yd}=N,co,Jo,dl=yd(q.key);if(dl===null){ie();return}let Fn=!1;xt==="inside"?(co=q,Jo="inside"):xt==="before"?q.isFirstChild?(co=q,Jo="before"):(co=E.value[dl-1],Jo="after"):(co=q,Jo="after"),!co.isLeaf&&_.value.includes(co.key)&&(Fn=!0,Jo==="after"&&(co=E.value[dl+1],co?Jo="before":(co=q,Jo="inside")));let Cn=co;if(Ke.value=Cn,!Fn&&je.isLastChild&&je.key===co.key&&(Jo="after"),Jo==="after"){let bn=no-P.clientX,sl=0;for(;bn>=Do/2&&co.parent!==null&&co.isLastChild&&sl<1;)bn-=Do,sl+=1,co=co.parent;ao.value=sl}else ao.value=0;if((je.contains(co)||Jo==="inside"&&((he=je.parent)===null||he===void 0?void 0:he.key)===co.key)&&!(je.key===Cn.key&&je.key===co.key)){ie();return}if(!qo({node:co.rawNode,dropPosition:Jo,phase:"drag"})){ie();return}if(je.key===co.key)Oe();else if(fe!==co.key)if(Jo==="inside"){if(e.expandOnDragenter){if(Xe(co),!co.shallowLoaded&&fe!==co.key){Le();return}}else if(!co.shallowLoaded){Le();return}}else Oe();else Jo!=="inside"&&Oe();Ve.value=Jo,Eo.value=co}function Ge({event:P,node:q,dropPosition:ue}){if(!e.draggable||e.disabled||q.disabled)return;let{value:he}=Bo,{value:je}=Eo,{value:qo}=Ve;if(!(!he||!je||!qo)&&!!e.allowDrop({node:je.rawNode,dropPosition:qo,phase:"drag"})&&he.key!==je.key){if(qo==="before"){let Do=he.getNext({includeDisabled:!0});if(Do&&Do.key===je.key){ie();return}}if(qo==="after"){let Do=he.getPrev({includeDisabled:!0});if(Do&&Do.key===je.key){ie();return}}ke({event:P,node:je.rawNode,dragNode:he.rawNode,dropPosition:ue}),Le()}}function Me(){K()}function We(){K()}function C(P){var q;if(e.virtualScroll||e.internalScrollable){let{value:ue}=l;if((q=ue==null?void 0:ue.containerRef)===null||q===void 0?void 0:q.contains(P.relatedTarget))return;se.value=null}else{let{value:ue}=a;if(ue==null?void 0:ue.contains(P.relatedTarget))return;se.value=null}}io(se,P=>{var q,ue;if(P!==null){if(e.virtualScroll)(q=n.value)===null||q===void 0||q.scrollTo({key:P});else if(e.internalScrollable){let{value:he}=l;if(he===null)return;let je=(ue=he.contentRef)===null||ue===void 0?void 0:ue.querySelector(`[data-key="${za(P)}"]`);if(!je)return;he.scrollTo({el:je})}}}),nt(sr,{loadingKeysRef:Qe,highlightKeySetRef:oo,displayedCheckedKeysRef:z,displayedIndeterminateKeysRef:F,mergedSelectedKeysRef:S,mergedExpandedKeysRef:_,mergedThemeRef:r,mergedCheckStrategyRef:A,nodePropsRef:_e(e,"nodeProps"),disabledRef:_e(e,"disabled"),checkableRef:_e(e,"checkable"),selectableRef:_e(e,"selectable"),onLoadRef:_e(e,"onLoad"),draggableRef:_e(e,"draggable"),blockLineRef:_e(e,"blockLine"),indentRef:_e(e,"indent"),cascadeRef:_e(e,"cascade"),droppingMouseNodeRef:Ke,droppingNodeParentRef:Ae,draggingNodeRef:Bo,droppingPositionRef:Ve,droppingOffsetLevelRef:ao,fNodesRef:E,pendingNodeKeyRef:se,internalScrollableRef:_e(e,"internalScrollable"),internalCheckboxFocusableRef:_e(e,"internalCheckboxFocusable"),internalTreeSelect:e.internalTreeSelect,renderLabelRef:_e(e,"renderLabel"),renderPrefixRef:_e(e,"renderPrefix"),renderSuffixRef:_e(e,"renderSuffix"),renderSwitcherIconRef:_e(e,"renderSwitcherIcon"),labelFieldRef:_e(e,"labelField"),multipleRef:_e(e,"multiple"),handleSwitcherClick:Ze,handleDragEnd:H,handleDragEnter:vo,handleDragLeave:lt,handleDragStart:re,handleDrop:Ge,handleDragOver:de,handleSelect:Ye,handleCheck:He});let X={handleKeydown:Ee,handleKeyup:Fe},ce=W(()=>{let{common:{cubicBezierEaseInOut:P},self:{fontSize:q,nodeBorderRadius:ue,nodeColorHover:he,nodeColorPressed:je,nodeColorActive:qo,arrowColor:Do,loadingColor:mr,nodeTextColor:cr,nodeTextColorDisabled:Vo,dropMarkColor:$o}}=r.value;return{"--n-arrow-color":Do,"--n-loading-color":mr,"--n-bezier":P,"--n-font-size":q,"--n-node-border-radius":ue,"--n-node-color-active":qo,"--n-node-color-hover":he,"--n-node-color-pressed":je,"--n-node-text-color":cr,"--n-node-text-color-disabled":Vo,"--n-drop-mark-color":$o}}),$e=t?at("tree",void 0,ce,e):void 0;return{mergedClsPrefix:o,mergedTheme:r,fNodes:U,aip:x,selfElRef:a,virtualListInstRef:n,scrollbarInstRef:l,handleFocusout:C,handleDragLeaveTree:T,handleScroll:Me,getScrollContainer:i,getScrollContent:d,handleAfterEnter:le,handleResize:We,handleKeydown:X.handleKeydown,handleKeyup:X.handleKeyup,cssVars:t?void 0:ce,themeClass:$e==null?void 0:$e.themeClass,onRender:$e==null?void 0:$e.onRender}},render(){var e;let{fNodes:o,internalRenderEmpty:t}=this;if(!o.length&&t)return t();let{mergedClsPrefix:r,blockNode:a,blockLine:l,draggable:n,disabled:i,internalFocusable:d,checkable:s,handleKeyup:u,handleKeydown:f,handleFocusout:m}=this,p=d&&!i,c=p?"0":void 0,R=[`${r}-tree`,s&&`${r}-tree--checkable`,(l||a)&&`${r}-tree--block-node`,l&&`${r}-tree--block-line`],y=A=>"__motion"in A?w(Vw,{height:A.height,nodes:A.nodes,clsPrefix:r,mode:A.mode,onAfterEnter:this.handleAfterEnter}):w(cd,{key:A.key,tmNode:A,clsPrefix:r});if(this.virtualScroll){let{mergedTheme:A,internalScrollablePadding:z}=this,F=Ha(z||"0");return w(on,{ref:"scrollbarInstRef",onDragleave:n?this.handleDragLeaveTree:void 0,container:this.getScrollContainer,content:this.getScrollContent,class:R,theme:A.peers.Scrollbar,themeOverrides:A.peerOverrides.Scrollbar,tabindex:c,onKeyup:p?u:void 0,onKeydown:p?f:void 0,onFocusout:p?m:void 0},{default:()=>{var g;return(g=this.onRender)===null||g===void 0||g.call(this),w(Vl,{ref:"virtualListInstRef",items:this.fNodes,itemSize:hd,ignoreItemResize:this.aip,paddingTop:F.top,paddingBottom:F.bottom,class:this.themeClass,style:[this.cssVars,{paddingLeft:F.left,paddingRight:F.right}],onScroll:this.handleScroll,onResize:this.handleResize,showScrollbar:!1,itemResizable:!0},{default:({item:k})=>y(k)})}})}let{internalScrollable:h}=this;return R.push(this.themeClass),(e=this.onRender)===null||e===void 0||e.call(this),h?w(on,{class:R,tabindex:c,onKeyup:p?u:void 0,onKeydown:p?f:void 0,onFocusout:p?m:void 0,style:this.cssVars,contentStyle:{padding:this.internalScrollablePadding}},{default:()=>w("div",{onDragleave:n?this.handleDragLeaveTree:void 0,ref:"selfElRef"},this.fNodes.map(y))}):w("div",{class:R,tabindex:c,ref:"selfElRef",style:this.cssVars,onKeyup:p?u:void 0,onKeydown:p?f:void 0,onFocusout:p?m:void 0,onDragleave:n?this.handleDragLeaveTree:void 0},o.length?o.map(y):or(this.$slots.empty,()=>{var A,z,F,g;return[w(du,{class:`${r}-tree__empty`,theme:(z=(A=this.theme)===null||A===void 0?void 0:A.peers)===null||z===void 0?void 0:z.Empty,themeOverrides:(g=(F=this.themeOverrides)===null||F===void 0?void 0:F.peers)===null||g===void 0?void 0:g.Empty})]}))}});var xd={name:"dark",common:M,Alert:mu,Anchor:hu,AutoComplete:wu,Avatar:ln,AvatarGroup:Tu,BackTop:Ru,Badge:Ou,Breadcrumb:Fu,Button:wo,ButtonGroup:Sf,Calendar:vu,Card:dn,Carousel:Mu,Cascader:Lu,Checkbox:jt,Code:sn,Collapse:Iu,CollapseTransition:Hu,ColorPicker:Au,DataTable:qu,DatePicker:of,Descriptions:tf,Dialog:Sn,Divider:df,Drawer:uf,Dropdown:hn,DynamicInput:ff,DynamicTags:pf,Element:mf,Empty:Ft,Ellipsis:mn,Form:cf,GradientText:hf,Icon:Yu,IconWrapper:xf,Image:tp,Input:Ao,InputNumber:gf,Layout:wf,List:Tf,LoadingBar:Rf,Log:Of,Menu:bf,Mention:Ff,Message:yf,Modal:nf,Notification:kf,PageHeader:Df,Pagination:fn,Popconfirm:Mf,Popover:ut,Popselect:Bf,Progress:wn,Radio:cn,Rate:Nf,Result:_f,Scrollbar:go,Select:un,Skeleton:rp,Slider:If,Space:gn,Spin:Vf,Statistic:Wf,Steps:zf,Switch:jf,Table:$f,Tabs:Uf,Tag:tn,Thing:Kf,TimePicker:xn,Timeline:Gf,Tooltip:dr,Transfer:qf,Tree:Tn,TreeSelect:Yf,Typography:Xf,Upload:ep,Watermark:op};var EP={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},LP=Oo("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8s-8-3.59-8-8s3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10s10-4.48 10-10S17.52 2 12 2zm1 10V9c0-.55-.45-1-1-1s-1 .45-1 1v3H9.21c-.45 0-.67.54-.35.85l2.79 2.79c.2.2.51.2.71 0l2.79-2.79a.5.5 0 0 0-.35-.85H13z",fill:"currentColor"},null,-1),NP=[LP],up=ae({name:"ArrowCircleDownRound",render:function(o,t){return uo(),Ro("svg",EP,NP)}});var _P={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},IP=Oo("path",{d:"M7.38 21.01c.49.49 1.28.49 1.77 0l8.31-8.31a.996.996 0 0 0 0-1.41L9.15 2.98c-.49-.49-1.28-.49-1.77 0s-.49 1.28 0 1.77L14.62 12l-7.25 7.25c-.48.48-.48 1.28.01 1.76z",fill:"currentColor"},null,-1),HP=[IP],fp=ae({name:"ArrowForwardIosRound",render:function(o,t){return uo(),Ro("svg",_P,HP)}});var VP={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},WP=Oo("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z",fill:"currentColor"},null,-1),zP=Oo("path",{d:"M14 17H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z",fill:"currentColor"},null,-1),jP=[WP,zP],pp=ae({name:"ArticleOutlined",render:function(o,t){return uo(),Ro("svg",VP,jP)}});var $P={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},UP=Oo("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55c-2.21 0-4 1.79-4 4s1.79 4 4 4s4-1.79 4-4V7h4V3h-6zm-2 16c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2z",fill:"currentColor"},null,-1),KP=[UP],mp=ae({name:"AudiotrackOutlined",render:function(o,t){return uo(),Ro("svg",$P,KP)}});var GP={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},qP=Oo("path",{d:"M12 2l-5.5 9h11L12 2zm0 3.84L13.93 9h-3.87L12 5.84zM17.5 13c-2.49 0-4.5 2.01-4.5 4.5s2.01 4.5 4.5 4.5s4.5-2.01 4.5-4.5s-2.01-4.5-4.5-4.5zm0 7a2.5 2.5 0 0 1 0-5a2.5 2.5 0 0 1 0 5zM3 21.5h8v-8H3v8zm2-6h4v4H5v-4z",fill:"currentColor"},null,-1),QP=[qP],cp=ae({name:"CategoryOutlined",render:function(o,t){return uo(),Ro("svg",GP,QP)}});var ZP={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},YP=Oo("path",{d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h8v4h4v12zm-6-3c-1.1 0-2-.9-2-2V9.5c0-.28.22-.5.5-.5s.5.22.5.5V15h2V9.5a2.5 2.5 0 0 0-5 0V15c0 2.21 1.79 4 4 4s4-1.79 4-4v-4h-2v4c0 1.1-.9 2-2 2z",fill:"currentColor"},null,-1),XP=[YP],hp=ae({name:"FilePresentOutlined",render:function(o,t){return uo(),Ro("svg",ZP,XP)}});var JP={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},e0=Oo("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14L6 17h12l-3.86-5.14z",fill:"currentColor"},null,-1),o0=[e0],xp=ae({name:"ImageOutlined",render:function(o,t){return uo(),Ro("svg",JP,o0)}});var t0={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},r0=Oo("path",{d:"M9 7v8l7-4zm12-4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z",fill:"currentColor"},null,-1),a0=[r0],Sp=ae({name:"OndemandVideoOutlined",render:function(o,t){return uo(),Ro("svg",t0,a0)}});var l0={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},n0=Oo("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10s10-4.48 10-10S17.52 2 12 2zM4 12c0-.61.08-1.21.21-1.78L8.99 15v1c0 1.1.9 2 2 2v1.93C7.06 19.43 4 16.07 4 12zm13.89 5.4c-.26-.81-1-1.4-1.9-1.4h-1v-3c0-.55-.45-1-1-1h-6v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41C17.92 5.77 20 8.65 20 12c0 2.08-.81 3.98-2.11 5.4z",fill:"currentColor"},null,-1),i0=[n0],gp=ae({name:"PublicOutlined",render:function(o,t){return uo(),Ro("svg",l0,i0)}});var d0={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},s0=Oo("path",{d:"M11.77 3c-2.65.07-5 1.28-6.6 3.16L3.85 4.85a.5.5 0 0 0-.85.36V9.5c0 .28.22.5.5.5h4.29c.45 0 .67-.54.35-.85L6.59 7.59C7.88 6.02 9.82 5 12 5c4.32 0 7.74 3.94 6.86 8.41c-.54 2.77-2.81 4.98-5.58 5.47c-3.8.68-7.18-1.74-8.05-5.16c-.12-.42-.52-.72-.96-.72c-.65 0-1.14.61-.98 1.23C4.28 18.12 7.8 21 12 21c5.06 0 9.14-4.17 9-9.26c-.14-4.88-4.35-8.86-9.23-8.74zM14 12c0-1.1-.9-2-2-2s-2 .9-2 2s.9 2 2 2s2-.9 2-2z",fill:"currentColor"},null,-1),u0=[s0],wp=ae({name:"SettingsBackupRestoreRound",render:function(o,t){return uo(),Ro("svg",d0,u0)}});var f0={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},p0=Oo("path",{d:"M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z",fill:"currentColor"},null,-1),m0=[p0],Tp=ae({name:"TextFieldsOutlined",render:function(o,t){return uo(),Ro("svg",f0,m0)}});function c0(e){let o=0;for(let t=0;t{let a=c0(r);if(a){if(a===1){e.forEach(n=>{t.push(r.replace("&",n))});return}}else{e.forEach(n=>{t.push((n&&n+" ")+r)});return}let l=[r];for(;a--;){let n=[];l.forEach(i=>{e.forEach(d=>{n.push(i.replace("&",d))})}),l=n}l.forEach(n=>t.push(n))}),t}function S0(e,o){let t=[];return o.split(zw).forEach(r=>{e.forEach(a=>{t.push((a&&a+" ")+r)})}),t}function jw(e){let o=[""];return e.forEach(t=>{t=t&&t.trim(),!!t&&(t.includes("&")?o=x0(o,t):o=S0(o,t))}),o.join(", ").replace(h0," ")}var g0=/[A-Z]/g;function $w(e){return e.replace(g0,o=>"-"+o.toLowerCase())}function w0(e,o=" "){return typeof e=="object"&&e!==null?` { -`+Object.entries(e).map(t=>o+` ${$w(t[0])}: ${t[1]};`).join(` + `)]),ee("empty","margin: auto;")]);var hO=function(e,t,o,r){function n(i){return i instanceof o?i:new o(function(a){a(i)})}return new(o||(o=Promise))(function(i,a){function l(d){try{c(r.next(d))}catch(u){a(u)}}function s(d){try{c(r.throw(d))}catch(u){a(u)}}function c(d){d.done?i(d.value):n(d.value).then(l,s)}c((r=r.apply(e,t||[])).next())})},gs=30;function gO(e,t){return{getKey(o){return o[e]},getChildren(o){return o[t]},getDisabled(o){return!!(o.disabled||o.checkboxDisabled)}}}var xO={allowCheckingNotLoaded:Boolean,filter:Function,defaultExpandAll:Boolean,expandedKeys:Array,keyField:{type:String,default:"key"},labelField:{type:String,default:"label"},childrenField:{type:String,default:"children"},defaultExpandedKeys:{type:Array,default:()=>[]},indeterminateKeys:Array,onUpdateIndeterminateKeys:[Function,Array],"onUpdate:indeterminateKeys":[Function,Array],onUpdateExpandedKeys:[Function,Array],"onUpdate:expandedKeys":[Function,Array]},vO=Object.assign(Object.assign(Object.assign(Object.assign({},Ct.props),{showIrrelevantNodes:{type:Boolean,default:!0},data:{type:Array,default:()=>[]},expandOnDragenter:{type:Boolean,default:!0},cancelable:{type:Boolean,default:!0},checkable:Boolean,draggable:Boolean,blockNode:Boolean,blockLine:Boolean,disabled:Boolean,checkedKeys:Array,defaultCheckedKeys:{type:Array,default:()=>[]},selectedKeys:Array,defaultSelectedKeys:{type:Array,default:()=>[]},multiple:Boolean,pattern:{type:String,default:""},onLoad:Function,cascade:Boolean,selectable:{type:Boolean,default:!0},indent:{type:Number,default:16},allowDrop:{type:Function,default:Jb},animated:{type:Boolean,default:!0},virtualScroll:Boolean,watchProps:Array,renderLabel:Function,renderPrefix:Function,renderSuffix:Function,renderSwitcherIcon:Function,nodeProps:Function,onDragenter:[Function,Array],onDragleave:[Function,Array],onDragend:[Function,Array],onDragstart:[Function,Array],onDragover:[Function,Array],onDrop:[Function,Array],onUpdateCheckedKeys:[Function,Array],"onUpdate:checkedKeys":[Function,Array],onUpdateSelectedKeys:[Function,Array],"onUpdate:selectedKeys":[Function,Array]}),xO),{internalTreeSelect:Boolean,internalScrollable:Boolean,internalScrollablePadding:String,internalRenderEmpty:Function,internalHighlightKeySet:Object,internalUnifySelectCheck:Boolean,internalCheckboxFocusable:{type:Boolean,default:!0},internalFocusable:{type:Boolean,default:!0},checkStrategy:{type:String,default:"all"},leafOnly:Boolean}),Ef=ue({name:"Tree",props:vO,setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:o}=Mt(e),r=Ct("Tree","-tree",i0,pf,e,t),n=X(null),i=X(null),a=X(null);function l(){var I;return(I=a.value)===null||I===void 0?void 0:I.listElRef}function s(){var I;return(I=a.value)===null||I===void 0?void 0:I.itemsElRef}let c=F(()=>{let{pattern:I}=e;return I?!I.length||!ot.value?{filteredTree:e.data,highlightKeySet:null,expandedKeys:void 0}:o0(e.data,ot.value,I,e.keyField,e.childrenField):{filteredTree:e.data,highlightKeySet:null,expandedKeys:void 0}}),d=F(()=>kd(e.showIrrelevantNodes?e.data:c.value.filteredTree,gO(e.keyField,e.childrenField))),u=ke(ms,null),p=e.internalTreeSelect?u.dataTreeMate:d,{watchProps:f}=e,m=X([]);f?.includes("defaultCheckedKeys")?At(()=>{m.value=e.defaultCheckedKeys}):m.value=e.defaultCheckedKeys;let y=Re(e,"checkedKeys"),w=Xt(y,m),g=F(()=>p.value.getCheckedKeys(w.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded})),O=F(()=>e.leafOnly?"child":e.checkStrategy),j=F(()=>g.value.checkedKeys),S=F(()=>{let{indeterminateKeys:I}=e;return I!==void 0?I:g.value.indeterminateKeys}),v=X([]);f?.includes("defaultSelectedKeys")?At(()=>{v.value=e.defaultSelectedKeys}):v.value=e.defaultSelectedKeys;let D=Re(e,"selectedKeys"),x=Xt(D,v),k=X([]),A=I=>{k.value=e.defaultExpandAll?p.value.getNonLeafKeys():I===void 0?e.defaultExpandedKeys:I};f?.includes("defaultExpandedKeys")?At(()=>A(void 0)):At(()=>A(e.defaultExpandedKeys));let E=Re(e,"expandedKeys"),z=Xt(E,k),M=F(()=>d.value.getFlattenedNodes(z.value)),{pendingNodeKeyRef:se,handleKeyup:ye,handleKeydown:Ie}=r0({mergedSelectedKeysRef:x,fNodesRef:M,mergedExpandedKeysRef:z,handleSelect:Fe,handleSwitcherClick:He}),fe=null,ce=null,we=X(new Set),Me=F(()=>e.internalHighlightKeySet||c.value.highlightKeySet),Be=Xt(Me,we),Le=X(new Set),Je=F(()=>z.value.filter(I=>!Le.value.has(I))),Xe=0,ct=X(null),wt=X(null),ze=X(null),We=X(null),vt=X(0),Pe=F(()=>{let{value:I}=wt;return I?I.parent:null}),ot=F(()=>{let{filter:I}=e;if(I)return I;let{labelField:G}=e;return(de,me)=>de.length?me[G].toLowerCase().includes(de.toLowerCase()):!0});Ze(Re(e,"data"),()=>{Le.value.clear(),se.value=null,re()},{deep:!1});let rt;Ze(Re(e,"pattern"),(I,G)=>{if(e.showIrrelevantNodes)if(rt=void 0,I){let{expandedKeys:de,highlightKeySet:me}=t0(e.data,e.pattern,e.keyField,e.childrenField,ot.value);we.value=me,H(de,oe(de))}else we.value=new Set;else if(!I.length)rt!==void 0&&H(rt,oe(rt));else{G.length||(rt=z.value);let{expandedKeys:de}=c.value;de!==void 0&&H(de,oe(de))}});function Dt(I){return hO(this,void 0,void 0,function*(){let{onLoad:G}=e;if(!G)return yield Promise.resolve();let{value:de}=Le;return yield new Promise(me=>{de.has(I.key)||(de.add(I.key),G(I.rawNode).then(()=>{de.delete(I.key),me()}).catch($e=>{console.error($e),le()}))})})}At(()=>{var I;let{value:G}=d;if(!G)return;let{getNode:de}=G;(I=z.value)===null||I===void 0||I.forEach(me=>{let $e=de(me);$e&&!$e.shallowLoaded&&Dt($e)})});let h=X(!1),C=X([]);Ze(Je,(I,G)=>{if(!e.animated){Bt(K);return}let de=new Set(G),me=null,$e=null;for(let Ot of I)if(!de.has(Ot)){if(me!==null)return;me=Ot}let Lt=new Set(I);for(let Ot of G)if(!Lt.has(Ot)){if($e!==null)return;$e=Ot}if(me!==null&&$e!==null||me===null&&$e===null)return;let{virtualScroll:bt}=e,nr=(bt?a.value.listElRef:n.value).offsetHeight,ir=Math.ceil(nr/gs)+1;if(me!==null){h.value=!0,C.value=d.value.getFlattenedNodes(G);let Ot=C.value.findIndex(It=>It.key===me);if(~Ot){let It=ei(C.value[Ot].children,I);C.value.splice(Ot+1,0,{__motion:!0,mode:"expand",height:bt?It.length*gs:void 0,nodes:bt?It.slice(0,ir):It})}}if($e!==null){C.value=d.value.getFlattenedNodes(I);let Ot=C.value.findIndex(It=>It.key===$e);if(~Ot){let It=C.value[Ot].children;if(!It)return;h.value=!0;let no=ei(It,I);C.value.splice(Ot+1,0,{__motion:!0,mode:"collapse",height:bt?no.length*gs:void 0,nodes:bt?no.slice(0,ir):no})}}});let L=F(()=>yd(M.value)),q=F(()=>h.value?C.value:M.value);function K(){let{value:I}=i;I&&I.sync()}function ne(){h.value=!1,e.virtualScroll&&Bt(K)}function oe(I){let{getNode:G}=p.value;return I.map(de=>{var me;return((me=G(de))===null||me===void 0?void 0:me.rawNode)||null})}function H(I,G){let{"onUpdate:expandedKeys":de,onUpdateExpandedKeys:me}=e;k.value=I,de&&Se(de,I,G),me&&Se(me,I,G)}function Q(I,G){let{"onUpdate:checkedKeys":de,onUpdateCheckedKeys:me}=e;m.value=I,me&&Se(me,I,G),de&&Se(de,I,G)}function Y(I,G){let{"onUpdate:indeterminateKeys":de,onUpdateIndeterminateKeys:me}=e;de&&Se(de,I,G),me&&Se(me,I,G)}function N(I,G){let{"onUpdate:selectedKeys":de,onUpdateSelectedKeys:me}=e;v.value=I,me&&Se(me,I,G),de&&Se(de,I,G)}function $(I){let{onDragenter:G}=e;G&&Se(G,I)}function V(I){let{onDragleave:G}=e;G&&Se(G,I)}function ae(I){let{onDragend:G}=e;G&&Se(G,I)}function pe(I){let{onDragstart:G}=e;G&&Se(G,I)}function _(I){let{onDragover:G}=e;G&&Se(G,I)}function W(I){let{onDrop:G}=e;G&&Se(G,I)}function re(){P(),Z()}function P(){ct.value=null}function Z(){vt.value=0,wt.value=null,ze.value=null,We.value=null,le()}function le(){fe&&(window.clearTimeout(fe),fe=null),ce=null}function Ce(I,G){if(e.disabled||I.disabled)return;if(e.internalUnifySelectCheck&&!e.multiple){Fe(I);return}let{checkedKeys:de,indeterminateKeys:me}=p.value[G?"check":"uncheck"](I.key,j.value,{cascade:e.cascade,checkStrategy:O.value,allowNotLoaded:e.allowCheckingNotLoaded});Q(de,oe(de)),Y(me,oe(me))}function Ke(I){if(e.disabled)return;let{value:G}=z,de=G.findIndex(me=>me===I);if(~de){let me=Array.from(G);me.splice(de,1),H(me,oe(me))}else{let me=d.value.getNode(I);if(!me||me.isLeaf)return;let $e=G.concat(I);H($e,oe($e))}}function He(I){e.disabled||h.value||Ke(I.key)}function Fe(I){if(!(e.disabled||!e.selectable)){if(se.value=I.key,e.internalUnifySelectCheck){let{value:{checkedKeys:G,indeterminateKeys:de}}=g;e.multiple?Ce(I,!(G.includes(I.key)||de.includes(I.key))):Q([I.key],oe([I.key]))}if(e.multiple){let G=Array.from(x.value),de=G.findIndex(me=>me===I.key);~de?e.cancelable&&G.splice(de,1):~de||G.push(I.key),N(G,oe(G))}else x.value.includes(I.key)?e.cancelable&&N([],[]):N([I.key],oe([I.key]))}}function qe(I){if(fe&&(window.clearTimeout(fe),fe=null),I.isLeaf)return;ce=I.key;let G=()=>{if(ce!==I.key)return;let{value:de}=ze;if(de&&de.key===I.key&&!z.value.includes(I.key)){let me=z.value.concat(I.key);H(me,oe(me))}fe=null,ce=null};I.shallowLoaded?fe=window.setTimeout(()=>{G()},1e3):fe=window.setTimeout(()=>{Dt(I).then(()=>{G()})},1e3)}function Tt({event:I,node:G}){!e.draggable||e.disabled||G.disabled||(wn({event:I,node:G},!1),$({event:I,node:G.rawNode}))}function ho({event:I,node:G}){!e.draggable||e.disabled||G.disabled||V({event:I,node:G.rawNode})}function ii(I){I.target===I.currentTarget&&Z()}function hr({event:I,node:G}){re(),!(!e.draggable||e.disabled||G.disabled)&&ae({event:I,node:G.rawNode})}function gr({event:I,node:G}){var de;!e.draggable||e.disabled||G.disabled||(_f&&((de=I.dataTransfer)===null||de===void 0||de.setDragImage(_f,0,0)),Xe=I.clientX,ct.value=G,pe({event:I,node:G.rawNode}))}function wn({event:I,node:G},de=!0){var me;if(!e.draggable||e.disabled||G.disabled)return;let{value:$e}=ct;if(!$e)return;let{allowDrop:Lt,indent:bt}=e;de&&_({event:I,node:G.rawNode});let nr=I.currentTarget,{height:ir,top:Ot}=nr.getBoundingClientRect(),It=I.clientY-Ot,no;Lt({node:G.rawNode,dropPosition:"inside",phase:"drag"})?It<=8?no="before":It>=ir-8?no="after":no="inside":It<=ir/2?no="before":no="after";let{value:Ls}=L,et,Ft,li=Ls(G.key);if(li===null){Z();return}let Ea=!1;no==="inside"?(et=G,Ft="inside"):no==="before"?G.isFirstChild?(et=G,Ft="before"):(et=M.value[li-1],Ft="after"):(et=G,Ft="after"),!et.isLeaf&&z.value.includes(et.key)&&(Ea=!0,Ft==="after"&&(et=M.value[li+1],et?Ft="before":(et=G,Ft="inside")));let Da=et;if(ze.value=Da,!Ea&&$e.isLastChild&&$e.key===et.key&&(Ft="after"),Ft==="after"){let Ta=Xe-I.clientX,si=0;for(;Ta>=bt/2&&et.parent!==null&&et.isLastChild&&si<1;)Ta-=bt,si+=1,et=et.parent;vt.value=si}else vt.value=0;if(($e.contains(et)||Ft==="inside"&&((me=$e.parent)===null||me===void 0?void 0:me.key)===et.key)&&!($e.key===Da.key&&$e.key===et.key)){Z();return}if(!Lt({node:et.rawNode,dropPosition:Ft,phase:"drag"})){Z();return}if($e.key===et.key)le();else if(ce!==et.key)if(Ft==="inside"){if(e.expandOnDragenter){if(qe(et),!et.shallowLoaded&&ce!==et.key){re();return}}else if(!et.shallowLoaded){re();return}}else le();else Ft!=="inside"&&le();We.value=Ft,wt.value=et}function ai({event:I,node:G,dropPosition:de}){if(!e.draggable||e.disabled||G.disabled)return;let{value:me}=ct,{value:$e}=wt,{value:Lt}=We;if(!(!me||!$e||!Lt)&&e.allowDrop({node:$e.rawNode,dropPosition:Lt,phase:"drag"})&&me.key!==$e.key){if(Lt==="before"){let bt=me.getNext({includeDisabled:!0});if(bt&&bt.key===$e.key){Z();return}}if(Lt==="after"){let bt=me.getPrev({includeDisabled:!0});if(bt&&bt.key===$e.key){Z();return}}W({event:I,node:$e.rawNode,dragNode:me.rawNode,dropPosition:de}),re()}}function kn(){K()}function xr(){K()}function T(I){var G;if(e.virtualScroll||e.internalScrollable){let{value:de}=i;if(!((G=de?.containerRef)===null||G===void 0)&&G.contains(I.relatedTarget))return;se.value=null}else{let{value:de}=n;if(de?.contains(I.relatedTarget))return;se.value=null}}Ze(se,I=>{var G,de;if(I!==null){if(e.virtualScroll)(G=a.value)===null||G===void 0||G.scrollTo({key:I});else if(e.internalScrollable){let{value:me}=i;if(me===null)return;let $e=(de=me.contentRef)===null||de===void 0?void 0:de.querySelector(`[data-key="${Bn(I)}"]`);if(!$e)return;me.scrollTo({el:$e})}}}),Yt(rr,{loadingKeysRef:Le,highlightKeySetRef:Be,displayedCheckedKeysRef:j,displayedIndeterminateKeysRef:S,mergedSelectedKeysRef:x,mergedExpandedKeysRef:z,mergedThemeRef:r,mergedCheckStrategyRef:O,nodePropsRef:Re(e,"nodeProps"),disabledRef:Re(e,"disabled"),checkableRef:Re(e,"checkable"),selectableRef:Re(e,"selectable"),onLoadRef:Re(e,"onLoad"),draggableRef:Re(e,"draggable"),blockLineRef:Re(e,"blockLine"),indentRef:Re(e,"indent"),cascadeRef:Re(e,"cascade"),droppingMouseNodeRef:ze,droppingNodeParentRef:Pe,draggingNodeRef:ct,droppingPositionRef:We,droppingOffsetLevelRef:vt,fNodesRef:M,pendingNodeKeyRef:se,internalScrollableRef:Re(e,"internalScrollable"),internalCheckboxFocusableRef:Re(e,"internalCheckboxFocusable"),internalTreeSelect:e.internalTreeSelect,renderLabelRef:Re(e,"renderLabel"),renderPrefixRef:Re(e,"renderPrefix"),renderSuffixRef:Re(e,"renderSuffix"),renderSwitcherIconRef:Re(e,"renderSwitcherIcon"),labelFieldRef:Re(e,"labelField"),multipleRef:Re(e,"multiple"),handleSwitcherClick:He,handleDragEnd:hr,handleDragEnter:Tt,handleDragLeave:ho,handleDragStart:gr,handleDrop:ai,handleDragOver:wn,handleSelect:Fe,handleCheck:Ce});let ie={handleKeydown:Ie,handleKeyup:ye},Oe=F(()=>{let{common:{cubicBezierEaseInOut:I},self:{fontSize:G,nodeBorderRadius:de,nodeColorHover:me,nodeColorPressed:$e,nodeColorActive:Lt,arrowColor:bt,loadingColor:nr,nodeTextColor:ir,nodeTextColorDisabled:Ot,dropMarkColor:It}}=r.value;return{"--n-arrow-color":bt,"--n-loading-color":nr,"--n-bezier":I,"--n-font-size":G,"--n-node-border-radius":de,"--n-node-color-active":Lt,"--n-node-color-hover":me,"--n-node-color-pressed":$e,"--n-node-text-color":ir,"--n-node-text-color-disabled":Ot,"--n-drop-mark-color":It}}),dt=o?qt("tree",void 0,Oe,e):void 0;return{mergedClsPrefix:t,mergedTheme:r,fNodes:q,aip:h,selfElRef:n,virtualListInstRef:a,scrollbarInstRef:i,handleFocusout:T,handleDragLeaveTree:ii,handleScroll:kn,getScrollContainer:l,getScrollContent:s,handleAfterEnter:ne,handleResize:xr,handleKeydown:ie.handleKeydown,handleKeyup:ie.handleKeyup,cssVars:o?void 0:Oe,themeClass:dt?.themeClass,onRender:dt?.onRender}},render(){var e;let{fNodes:t,internalRenderEmpty:o}=this;if(!t.length&&o)return o();let{mergedClsPrefix:r,blockNode:n,blockLine:i,draggable:a,disabled:l,internalFocusable:s,checkable:c,handleKeyup:d,handleKeydown:u,handleFocusout:p}=this,f=s&&!l,m=f?"0":void 0,y=[`${r}-tree`,c&&`${r}-tree--checkable`,(i||n)&&`${r}-tree--block-node`,i&&`${r}-tree--block-line`],w=O=>"__motion"in O?b(n0,{height:O.height,nodes:O.nodes,clsPrefix:r,mode:O.mode,onAfterEnter:this.handleAfterEnter}):b(hs,{key:O.key,tmNode:O,clsPrefix:r});if(this.virtualScroll){let{mergedTheme:O,internalScrollablePadding:j}=this,S=$n(j||"0");return b(oa,{ref:"scrollbarInstRef",onDragleave:a?this.handleDragLeaveTree:void 0,container:this.getScrollContainer,content:this.getScrollContent,class:y,theme:O.peers.Scrollbar,themeOverrides:O.peerOverrides.Scrollbar,tabindex:m,onKeyup:f?d:void 0,onKeydown:f?u:void 0,onFocusout:f?p:void 0},{default:()=>{var v;return(v=this.onRender)===null||v===void 0||v.call(this),b(Vi,{ref:"virtualListInstRef",items:this.fNodes,itemSize:gs,ignoreItemResize:this.aip,paddingTop:S.top,paddingBottom:S.bottom,class:this.themeClass,style:[this.cssVars,{paddingLeft:S.left,paddingRight:S.right}],onScroll:this.handleScroll,onResize:this.handleResize,showScrollbar:!1,itemResizable:!0},{default:({item:D})=>w(D)})}})}let{internalScrollable:g}=this;return y.push(this.themeClass),(e=this.onRender)===null||e===void 0||e.call(this),g?b(oa,{class:y,tabindex:m,onKeyup:f?d:void 0,onKeydown:f?u:void 0,onFocusout:f?p:void 0,style:this.cssVars,contentStyle:{padding:this.internalScrollablePadding}},{default:()=>b("div",{onDragleave:a?this.handleDragLeaveTree:void 0,ref:"selfElRef"},this.fNodes.map(w))}):b("div",{class:y,tabindex:m,ref:"selfElRef",style:this.cssVars,onKeyup:f?d:void 0,onKeydown:f?u:void 0,onFocusout:f?p:void 0,onDragleave:a?this.handleDragLeaveTree:void 0},t.length?t.map(w):Yo(this.$slots.empty,()=>{var O,j,S,v;return[b(_d,{class:`${r}-tree__empty`,theme:(j=(O=this.theme)===null||O===void 0?void 0:O.peers)===null||j===void 0?void 0:j.Empty,themeOverrides:(v=(S=this.themeOverrides)===null||S===void 0?void 0:S.peers)===null||v===void 0?void 0:v.Empty})]}))}});var xs={name:"dark",common:R,Alert:Pd,Anchor:Rd,AutoComplete:$d,Avatar:aa,AvatarGroup:Ld,BackTop:zd,Badge:Bd,Breadcrumb:Hd,Button:lt,ButtonGroup:Iu,Calendar:Wd,Card:sa,Carousel:Yd,Cascader:Qd,Checkbox:Io,Code:ca,Collapse:tu,CollapseTransition:ou,ColorPicker:Ud,DataTable:uu,DatePicker:vu,Descriptions:bu,Dialog:xa,Divider:Su,Drawer:Eu,Dropdown:ha,DynamicInput:Du,DynamicTags:Tu,Element:Ou,Empty:fo,Ellipsis:pa,Form:Pu,GradientText:Nu,Icon:mu,IconWrapper:Ru,Image:bf,Input:xt,InputNumber:Au,Layout:Mu,List:$u,LoadingBar:Lu,Log:zu,Menu:Vu,Mention:Bu,Message:Fu,Modal:ku,Notification:Wu,PageHeader:Uu,Pagination:ua,Popconfirm:Gu,Popover:Qt,Popselect:Yu,Progress:ba,Radio:ma,Rate:Qu,Result:Ju,Scrollbar:at,Select:da,Skeleton:yf,Slider:ef,Space:va,Spin:of,Statistic:rf,Steps:nf,Switch:af,Table:lf,Tabs:sf,Tag:ra,Thing:cf,TimePicker:ga,Timeline:df,Tooltip:or,Transfer:uf,Tree:ya,TreeSelect:mf,Typography:hf,Upload:xf,Watermark:vf};var bO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},yO=pt("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8s-8-3.59-8-8s3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10s10-4.48 10-10S17.52 2 12 2zm1 10V9c0-.55-.45-1-1-1s-1 .45-1 1v3H9.21c-.45 0-.67.54-.35.85l2.79 2.79c.2.2.51.2.71 0l2.79-2.79a.5.5 0 0 0-.35-.85H13z",fill:"currentColor"},null,-1),CO=[yO];function a0(e,t){return Ye(),ut("svg",bO,CO)}var Df={};Df.render=a0;Df.__file="src/ui/icons/ArrowCircleDownRound.vue";var Tf=Df;var wO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},kO=pt("path",{d:"M11.77 3c-2.65.07-5 1.28-6.6 3.16L3.85 4.85a.5.5 0 0 0-.85.36V9.5c0 .28.22.5.5.5h4.29c.45 0 .67-.54.35-.85L6.59 7.59C7.88 6.02 9.82 5 12 5c4.32 0 7.74 3.94 6.86 8.41c-.54 2.77-2.81 4.98-5.58 5.47c-3.8.68-7.18-1.74-8.05-5.16c-.12-.42-.52-.72-.96-.72c-.65 0-1.14.61-.98 1.23C4.28 18.12 7.8 21 12 21c5.06 0 9.14-4.17 9-9.26c-.14-4.88-4.35-8.86-9.23-8.74zM14 12c0-1.1-.9-2-2-2s-2 .9-2 2s.9 2 2 2s2-.9 2-2z",fill:"currentColor"},null,-1),SO=[kO];function l0(e,t){return Ye(),ut("svg",wO,SO)}var Of={};Of.render=l0;Of.__file="src/ui/icons/SettingsBackupRestoreRound.vue";var Pf=Of;var _O={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},EO=pt("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z",fill:"currentColor"},null,-1),DO=pt("path",{d:"M14 17H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z",fill:"currentColor"},null,-1),TO=[EO,DO];function s0(e,t){return Ye(),ut("svg",_O,TO)}var Nf={};Nf.render=s0;Nf.__file="src/ui/icons/ArticleOutlined.vue";var Rf=Nf;var OO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},PO=pt("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55c-2.21 0-4 1.79-4 4s1.79 4 4 4s4-1.79 4-4V7h4V3h-6zm-2 16c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2z",fill:"currentColor"},null,-1),NO=[PO];function c0(e,t){return Ye(),ut("svg",OO,NO)}var If={};If.render=c0;If.__file="src/ui/icons/AudiotrackOutlined.vue";var Af=If;var RO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},IO=pt("path",{d:"M12 2l-5.5 9h11L12 2zm0 3.84L13.93 9h-3.87L12 5.84zM17.5 13c-2.49 0-4.5 2.01-4.5 4.5s2.01 4.5 4.5 4.5s4.5-2.01 4.5-4.5s-2.01-4.5-4.5-4.5zm0 7a2.5 2.5 0 0 1 0-5a2.5 2.5 0 0 1 0 5zM3 21.5h8v-8H3v8zm2-6h4v4H5v-4z",fill:"currentColor"},null,-1),AO=[IO];function d0(e,t){return Ye(),ut("svg",RO,AO)}var Mf={};Mf.render=d0;Mf.__file="src/ui/icons/CategoryOutlined.vue";var $f=Mf;var MO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},$O=pt("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14L6 17h12l-3.86-5.14z",fill:"currentColor"},null,-1),LO=[$O];function u0(e,t){return Ye(),ut("svg",MO,LO)}var Lf={};Lf.render=u0;Lf.__file="src/ui/icons/ImageOutlined.vue";var zf=Lf;var zO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},BO=pt("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10s10-4.48 10-10S17.52 2 12 2zM4 12c0-.61.08-1.21.21-1.78L8.99 15v1c0 1.1.9 2 2 2v1.93C7.06 19.43 4 16.07 4 12zm13.89 5.4c-.26-.81-1-1.4-1.9-1.4h-1v-3c0-.55-.45-1-1-1h-6v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41C17.92 5.77 20 8.65 20 12c0 2.08-.81 3.98-2.11 5.4z",fill:"currentColor"},null,-1),HO=[BO];function f0(e,t){return Ye(),ut("svg",zO,HO)}var Bf={};Bf.render=f0;Bf.__file="src/ui/icons/PublicOutlined.vue";var Hf=Bf;var VO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},FO=pt("path",{d:"M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z",fill:"currentColor"},null,-1),jO=[FO];function p0(e,t){return Ye(),ut("svg",VO,jO)}var Vf={};Vf.render=p0;Vf.__file="src/ui/icons/TextFieldsOutlined.vue";var Ff=Vf;var WO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},KO=pt("path",{d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h8v4h4v12zm-6-3c-1.1 0-2-.9-2-2V9.5c0-.28.22-.5.5-.5s.5.22.5.5V15h2V9.5a2.5 2.5 0 0 0-5 0V15c0 2.21 1.79 4 4 4s4-1.79 4-4v-4h-2v4c0 1.1-.9 2-2 2z",fill:"currentColor"},null,-1),UO=[KO];function m0(e,t){return Ye(),ut("svg",WO,UO)}var jf={};jf.render=m0;jf.__file="src/ui/icons/FilePresentOutlined.vue";var Wf=jf;var qO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},GO=pt("path",{d:"M7.38 21.01c.49.49 1.28.49 1.77 0l8.31-8.31a.996.996 0 0 0 0-1.41L9.15 2.98c-.49-.49-1.28-.49-1.77 0s-.49 1.28 0 1.77L14.62 12l-7.25 7.25c-.48.48-.48 1.28.01 1.76z",fill:"currentColor"},null,-1),YO=[GO];function h0(e,t){return Ye(),ut("svg",qO,YO)}var Kf={};Kf.render=h0;Kf.__file="src/ui/icons/ArrowForwardIosRound.vue";var Uf=Kf;var XO={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},ZO=pt("path",{d:"M9 7v8l7-4zm12-4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z",fill:"currentColor"},null,-1),QO=[ZO];function g0(e,t){return Ye(),ut("svg",XO,QO)}var qf={};qf.render=g0;qf.__file="src/ui/icons/OndemandVideoOutlined.vue";var Gf=qf;function JO(e){let t=0;for(let o=0;o{let n=JO(r);if(n){if(n===1){e.forEach(a=>{o.push(r.replace("&",a))});return}}else{e.forEach(a=>{o.push((a&&a+" ")+r)});return}let i=[r];for(;n--;){let a=[];i.forEach(l=>{e.forEach(s=>{a.push(l.replace("&",s))})}),i=a}i.forEach(a=>o.push(a))}),o}function oP(e,t){let o=[];return t.split(x0).forEach(r=>{e.forEach(n=>{o.push((n&&n+" ")+r)})}),o}function v0(e){let t=[""];return e.forEach(o=>{o=o&&o.trim(),o&&(o.includes("&")?t=tP(t,o):t=oP(t,o))}),t.join(", ").replace(eP," ")}var rP=/[A-Z]/g;function y0(e){return e.replace(rP,t=>"-"+t.toLowerCase())}function nP(e,t=" "){return typeof e=="object"&&e!==null?` { +`+Object.entries(e).map(o=>t+` ${y0(o[0])}: ${o[1]};`).join(` `)+` -`+o+"}":`: ${e};`}function T0(e,o,t){return typeof e=="function"?e({context:o.context,props:t}):e}function Uw(e,o,t,r){if(!o)return"";let a=T0(o,t,r);if(!a)return"";if(typeof a=="string")return`${e} { -${a} -}`;let l=Object.keys(a);if(l.length===0)return t.config.keepEmptyBlock?e+` { -}`:"";let n=e?[e+" {"]:[];return l.forEach(i=>{let d=a[i];if(i==="raw"){n.push(` -`+d+` -`);return}i=$w(i),d!=null&&n.push(` ${i}${w0(d)}`)}),e&&n.push("}"),n.join(` -`)}function Rp(e,o,t){!e||e.forEach(r=>{if(Array.isArray(r))Rp(r,o,t);else if(typeof r=="function"){let a=r(o);Array.isArray(a)?Rp(a,o,t):a&&t(a)}else r&&t(r)})}function Kw(e,o,t,r,a,l){let n=e.$;!n||typeof n=="string"?o.push(n):typeof n=="function"?o.push(n({context:r.context,props:a})):(n.before&&n.before(r.context),!n.$||typeof n.$=="string"?o.push(n.$):n.$&&o.push(n.$({context:r.context,props:a})));let i=jw(o),d=Uw(i,e.props,r,a);l&&d&&l.insertRule(d),!l&&d.length&&t.push(d),e.children&&Rp(e.children,{context:r.context,props:a},s=>{if(typeof s=="string"){let u=Uw(i,{raw:s},r,a);l?l.insertRule(u):t.push(u)}else Kw(s,o,t,r,a,l)}),o.pop(),n&&n.after&&n.after(r.context)}function Sd(e,o,t,r=!1){let a=[];return Kw(e,[],a,o,t,r?e.instance.__styleSheet:void 0),r?"":a.join(` +`+t+"}":`: ${e};`}function iP(e,t,o){return typeof e=="function"?e({context:t.context,props:o}):e}function b0(e,t,o,r){if(!t)return"";let n=iP(t,o,r);if(!n)return"";if(typeof n=="string")return`${e} { +${n} +}`;let i=Object.keys(n);if(i.length===0)return o.config.keepEmptyBlock?e+` { +}`:"";let a=e?[e+" {"]:[];return i.forEach(l=>{let s=n[l];if(l==="raw"){a.push(` +`+s+` +`);return}l=y0(l),s!=null&&a.push(` ${l}${nP(s)}`)}),e&&a.push("}"),a.join(` +`)}function Yf(e,t,o){e&&e.forEach(r=>{if(Array.isArray(r))Yf(r,t,o);else if(typeof r=="function"){let n=r(t);Array.isArray(n)?Yf(n,t,o):n&&o(n)}else r&&o(r)})}function C0(e,t,o,r,n,i){let a=e.$;!a||typeof a=="string"?t.push(a):typeof a=="function"?t.push(a({context:r.context,props:n})):(a.before&&a.before(r.context),!a.$||typeof a.$=="string"?t.push(a.$):a.$&&t.push(a.$({context:r.context,props:n})));let l=v0(t),s=b0(l,e.props,r,n);i&&s&&i.insertRule(s),!i&&s.length&&o.push(s),e.children&&Yf(e.children,{context:r.context,props:n},c=>{if(typeof c=="string"){let d=b0(l,{raw:c},r,n);i?i.insertRule(d):o.push(d)}else C0(c,t,o,r,n,i)}),t.pop(),a&&a.after&&a.after(r.context)}function vs(e,t,o,r=!1){let n=[];return C0(e,[],n,t,o,r?e.instance.__styleSheet:void 0),r?"":n.join(` -`)}function gd(e){if(!e)return;let o=e.parentElement;o&&o.removeChild(e)}function Rn(e){return document.querySelector(`style[cssr-id="${e}"]`)}function Gw(e){let o=document.createElement("style");return o.setAttribute("cssr-id",e),o}window&&(window.__cssrContext={});function qw(e){let o=e.getAttribute("mount-count");return o===null?null:Number(o)}function Op(e,o){e.setAttribute("mount-count",String(o))}function Fp(e,o,t,r){let{els:a}=o;if(t===void 0)a.forEach(gd),o.els=[];else{let l=Rn(t);if(l&&a.includes(l)){let n=qw(l);r?n===null?console.error(`[css-render/unmount]: The style with target='${t}' is mounted in count mode.`):n<=1?(gd(l),o.els=a.filter(i=>i!==l)):Op(l,n-1):n!==null?console.error(`[css-render/unmount]: The style with target='${t}' is mounted in no-count mode.`):(gd(l),o.els=a.filter(i=>i!==l))}}}function R0(e,o){e.push(o)}function Qw(e,o,t,r,a,l,n,i,d){if(n&&!d){if(t===void 0){console.error("[css-render/mount]: `id` is required in `boost` mode.");return}let p=window.__cssrContext;p[t]||(p[t]=!0,Sd(o,e,r,n));return}let s,{els:u}=o,f;if(t===void 0&&(f=o.render(r),t=Tt(f)),d){d(t,f!=null?f:o.render(r));return}let m=Rn(t);if(i||m===null){if(s=m===null?Gw(t):m,f===void 0&&(f=o.render(r)),s.textContent=f,m!==null)return;if(a){let p=document.head.getElementsByTagName("style")[0]||null;document.head.insertBefore(s,p)}else document.head.appendChild(s);l&&Op(s,1),R0(u,s)}else{let p=qw(m);l?p===null?console.error(`[css-render/mount]: The style with id='${t}' has been mounted in no-count mode.`):Op(m,p+1):p!==null&&console.error(`[css-render/mount]: The style with id='${t}' has been mounted in count mode.`)}return m!=null?m:s}function O0(e){return Sd(this,this.instance,e)}function F0(e={}){let{target:o,id:t,ssr:r,props:a,count:l=!1,head:n=!1,boost:i=!1,force:d=!1}=e;return Qw(this.instance,this,t!=null?t:o,a,n,l,i,d,r)}function C0(e={}){let{id:o,target:t,delay:r=0,count:a=!1}=e;r===0?Fp(this.instance,this,o!=null?o:t,a):setTimeout(()=>Fp(this.instance,this,o!=null?o:t,a),r)}var wd=function(e,o,t,r){return{instance:e,$:o,props:t,children:r,els:[],render:O0,mount:F0,unmount:C0}},Zw=function(e,o,t,r){return Array.isArray(o)?wd(e,{$:null},null,o):Array.isArray(t)?wd(e,o,null,t):Array.isArray(r)?wd(e,o,t,r):wd(e,o,t,null)};function Cp(e={}){let o=null,t={c:(...r)=>Zw(t,...r),use:(r,...a)=>r.install(t,...a),find:Rn,context:{},config:e,get __styleSheet(){if(!o){let r=document.createElement("style");return document.head.appendChild(r),o=document.styleSheets[document.styleSheets.length-1],o}return o}};return t}var{c:bp}=Cp(),b0=bp(".xicon",{width:"1em",height:"1em",display:"inline-flex"},[bp("svg",{width:"1em",height:"1em"}),bp("svg:not([fill])",{fill:"currentColor"})]),yp=()=>{b0.mount({id:"xicons-icon"})};var vp={size:[String,Number],color:String,tag:String},kp=Symbol("IconConfigInjection"),y0=ae({name:"IconConfigProvider",props:vp,setup(e,{slots:o}){return nt(kp,e),()=>La(o,"default")}});var Yw="span";var On=ae({name:"Icon",props:vp,setup(e,{slots:o}){let t=Ce(kp,null),r=W(()=>{var n;let i=(n=e.size)!==null&&n!==void 0?n:t==null?void 0:t.size;if(i!==void 0)return typeof i=="number"||/^\d+$/.test(i)?`${i}px`:i}),a=W(()=>{let{color:n}=e;return n===void 0?t?t.color:void 0:n}),l=W(()=>{var n;let{tag:i}=e;return i===void 0?(n=t==null?void 0:t.tag)!==null&&n!==void 0?n:Yw:i});return gr(()=>{yp()}),()=>w(l.value,{class:"xicon",style:{color:a.value,fontSize:r.value}},[La(o,"default")])}});function Xw(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}var al=Xw();function v0(e){al=e}var k0=/[&<>"']/,A0=/[&<>"']/g,D0=/[<>"']|&(?!#?\w+;)/,P0=/[<>"']|&(?!#?\w+;)/g,M0={"&":"&","<":"<",">":">",'"':""","'":"'"},Jw=e=>M0[e];function Go(e,o){if(o){if(k0.test(e))return e.replace(A0,Jw)}else if(D0.test(e))return e.replace(P0,Jw);return e}var B0=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function eT(e){return e.replace(B0,(o,t)=>(t=t.toLowerCase(),t==="colon"?":":t.charAt(0)==="#"?t.charAt(1)==="x"?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}var E0=/(^|[^\[])\^/g;function To(e,o){e=e.source||e,o=o||"";let t={replace:(r,a)=>(a=a.source||a,a=a.replace(E0,"$1"),e=e.replace(r,a),t),getRegex:()=>new RegExp(e,o)};return t}var L0=/[^\w:]/g,N0=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function oT(e,o,t){if(e){let r;try{r=decodeURIComponent(eT(t)).replace(L0,"").toLowerCase()}catch(a){return null}if(r.indexOf("javascript:")===0||r.indexOf("vbscript:")===0||r.indexOf("data:")===0)return null}o&&!N0.test(t)&&(t=V0(o,t));try{t=encodeURI(t).replace(/%25/g,"%")}catch(r){return null}return t}var Td={},_0=/^[^:]+:\/*[^/]*$/,I0=/^([^:]+:)[\s\S]*$/,H0=/^([^:]+:\/*[^/]*)[\s\S]*$/;function V0(e,o){Td[" "+e]||(_0.test(e)?Td[" "+e]=e+"/":Td[" "+e]=Od(e,"/",!0)),e=Td[" "+e];let t=e.indexOf(":")===-1;return o.substring(0,2)==="//"?t?o:e.replace(I0,"$1")+o:o.charAt(0)==="/"?t?o:e.replace(H0,"$1")+o:e+o}var Rd={exec:function(){}};function $t(e){let o=1,t,r;for(;o{let d=!1,s=n;for(;--s>=0&&i[s]==="\\";)d=!d;return d?"|":" |"}),r=t.split(/ \|/),a=0;if(r[0].trim()||r.shift(),r.length>0&&!r[r.length-1].trim()&&r.pop(),r.length>o)r.splice(o);else for(;r.length1;)o&1&&(t+=e),o>>=1,e+=e;return t+e}function lT(e,o,t,r){let a=o.href,l=o.title?Go(o.title):null,n=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){r.state.inLink=!0;let i={type:"link",raw:t,href:a,title:l,text:n,tokens:r.inlineTokens(n,[])};return r.state.inLink=!1,i}else return{type:"image",raw:t,href:a,title:l,text:Go(n)}}function z0(e,o){let t=e.match(/^(\s+)(?:```)/);if(t===null)return o;let r=t[1];return o.split(` -`).map(a=>{let l=a.match(/^\s+/);if(l===null)return a;let[n]=l;return n.length>=r.length?a.slice(r.length):a}).join(` -`)}var Fd=class{constructor(o){this.options=o||al}space(o){let t=this.rules.block.newline.exec(o);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(o){let t=this.rules.block.code.exec(o);if(t){let r=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?r:Od(r,` -`)}}}fences(o){let t=this.rules.block.fences.exec(o);if(t){let r=t[0],a=z0(r,t[3]||"");return{type:"code",raw:r,lang:t[2]?t[2].trim():t[2],text:a}}}heading(o){let t=this.rules.block.heading.exec(o);if(t){let r=t[2].trim();if(/#$/.test(r)){let l=Od(r,"#");(this.options.pedantic||!l||/ $/.test(l))&&(r=l.trim())}let a={type:"heading",raw:t[0],depth:t[1].length,text:r,tokens:[]};return this.lexer.inline(a.text,a.tokens),a}}hr(o){let t=this.rules.block.hr.exec(o);if(t)return{type:"hr",raw:t[0]}}blockquote(o){let t=this.rules.block.blockquote.exec(o);if(t){let r=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(r,[]),text:r}}}list(o){let t=this.rules.block.list.exec(o);if(t){let r,a,l,n,i,d,s,u,f,m,p,c,R=t[1].trim(),y=R.length>1,h={type:"list",raw:"",ordered:y,start:y?+R.slice(0,-1):"",loose:!1,items:[]};R=y?`\\d{1,9}\\${R.slice(-1)}`:`\\${R}`,this.options.pedantic&&(R=y?R:"[*+-]");let A=new RegExp(`^( {0,3}${R})((?: [^\\n]*)?(?:\\n|$))`);for(;o&&(c=!1,!(!(t=A.exec(o))||this.rules.block.hr.test(o)));){if(r=t[0],o=o.substring(r.length),u=t[2].split(` -`,1)[0],f=o.split(` -`,1)[0],this.options.pedantic?(n=2,p=u.trimLeft()):(n=t[2].search(/[^ ]/),n=n>4?1:n,p=u.slice(n),n+=t[1].length),d=!1,!u&&/^ *$/.test(f)&&(r+=f+` -`,o=o.substring(f.length+1),c=!0),!c){let F=new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;o&&(m=o.split(` -`,1)[0],u=m,this.options.pedantic&&(u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!F.test(u));){if(u.search(/[^ ]/)>=n||!u.trim())p+=` -`+u.slice(n);else if(!d)p+=` -`+u;else break;!d&&!u.trim()&&(d=!0),r+=m+` -`,o=o.substring(m.length+1)}}h.loose||(s?h.loose=!0:/\n *\n *$/.test(r)&&(s=!0)),this.options.gfm&&(a=/^\[[ xX]\] /.exec(p),a&&(l=a[0]!=="[ ] ",p=p.replace(/^\[[ xX]\] +/,""))),h.items.push({type:"list_item",raw:r,task:!!a,checked:l,loose:!1,text:p}),h.raw+=r}h.items[h.items.length-1].raw=r.trimRight(),h.items[h.items.length-1].text=p.trimRight(),h.raw=h.raw.trimRight();let z=h.items.length;for(i=0;ik.type==="space"),g=F.every(k=>{let S=k.raw.split(""),b=0;for(let B of S)if(B===` -`&&(b+=1),b>1)return!0;return!1});!h.loose&&F.length&&g&&(h.loose=!0,h.items[i].loose=!0)}return h}}html(o){let t=this.rules.block.html.exec(o);if(t){let r={type:"html",raw:t[0],pre:!this.options.sanitizer&&(t[1]==="pre"||t[1]==="script"||t[1]==="style"),text:t[0]};return this.options.sanitize&&(r.type="paragraph",r.text=this.options.sanitizer?this.options.sanitizer(t[0]):Go(t[0]),r.tokens=[],this.lexer.inline(r.text,r.tokens)),r}}def(o){let t=this.rules.block.def.exec(o);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));let r=t[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:r,raw:t[0],href:t[2],title:t[3]}}}table(o){let t=this.rules.block.table.exec(o);if(t){let r={type:"table",header:tT(t[1]).map(a=>({text:a})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split(` -`):[]};if(r.header.length===r.align.length){r.raw=t[0];let a=r.align.length,l,n,i,d;for(l=0;l({text:s}));for(a=r.header.length,n=0;n/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):Go(t[0]):t[0]}}link(o){let t=this.rules.inline.link.exec(o);if(t){let r=t[2].trim();if(!this.options.pedantic&&/^$/.test(r))return;let n=Od(r.slice(0,-1),"\\");if((r.length-n.length)%2==0)return}else{let n=W0(t[2],"()");if(n>-1){let d=(t[0].indexOf("!")===0?5:4)+t[1].length+n;t[2]=t[2].substring(0,n),t[0]=t[0].substring(0,d).trim(),t[3]=""}}let a=t[2],l="";if(this.options.pedantic){let n=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a);n&&(a=n[1],l=n[3])}else l=t[3]?t[3].slice(1,-1):"";return a=a.trim(),/^$/.test(r)?a=a.slice(1):a=a.slice(1,-1)),lT(t,{href:a&&a.replace(this.rules.inline._escapes,"$1"),title:l&&l.replace(this.rules.inline._escapes,"$1")},t[0],this.lexer)}}reflink(o,t){let r;if((r=this.rules.inline.reflink.exec(o))||(r=this.rules.inline.nolink.exec(o))){let a=(r[2]||r[1]).replace(/\s+/g," ");if(a=t[a.toLowerCase()],!a||!a.href){let l=r[0].charAt(0);return{type:"text",raw:l,text:l}}return lT(r,a,r[0],this.lexer)}}emStrong(o,t,r=""){let a=this.rules.inline.emStrong.lDelim.exec(o);if(!a||a[3]&&r.match(/[\p{L}\p{N}]/u))return;let l=a[1]||a[2]||"";if(!l||l&&(r===""||this.rules.inline.punctuation.exec(r))){let n=a[0].length-1,i,d,s=n,u=0,f=a[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(f.lastIndex=0,t=t.slice(-1*o.length+n);(a=f.exec(t))!=null;){if(i=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!i)continue;if(d=i.length,a[3]||a[4]){s+=d;continue}else if((a[5]||a[6])&&n%3&&!((n+d)%3)){u+=d;continue}if(s-=d,s>0)continue;if(d=Math.min(d,d+s+u),Math.min(n,d)%2){let p=o.slice(1,n+a.index+d);return{type:"em",raw:o.slice(0,n+a.index+d+1),text:p,tokens:this.lexer.inlineTokens(p,[])}}let m=o.slice(2,n+a.index+d-1);return{type:"strong",raw:o.slice(0,n+a.index+d+1),text:m,tokens:this.lexer.inlineTokens(m,[])}}}}codespan(o){let t=this.rules.inline.code.exec(o);if(t){let r=t[2].replace(/\n/g," "),a=/[^ ]/.test(r),l=/^ /.test(r)&&/ $/.test(r);return a&&l&&(r=r.substring(1,r.length-1)),r=Go(r,!0),{type:"codespan",raw:t[0],text:r}}}br(o){let t=this.rules.inline.br.exec(o);if(t)return{type:"br",raw:t[0]}}del(o){let t=this.rules.inline.del.exec(o);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}}autolink(o,t){let r=this.rules.inline.autolink.exec(o);if(r){let a,l;return r[2]==="@"?(a=Go(this.options.mangle?t(r[1]):r[1]),l="mailto:"+a):(a=Go(r[1]),l=a),{type:"link",raw:r[0],text:a,href:l,tokens:[{type:"text",raw:a,text:a}]}}}url(o,t){let r;if(r=this.rules.inline.url.exec(o)){let a,l;if(r[2]==="@")a=Go(this.options.mangle?t(r[0]):r[0]),l="mailto:"+a;else{let n;do n=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])[0];while(n!==r[0]);a=Go(r[0]),r[1]==="www."?l="http://"+a:l=a}return{type:"link",raw:r[0],text:a,href:l,tokens:[{type:"text",raw:a,text:a}]}}}inlineText(o,t){let r=this.rules.inline.text.exec(o);if(r){let a;return this.lexer.state.inRawBlock?a=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):Go(r[0]):r[0]:a=Go(this.options.smartypants?t(r[0]):r[0]),{type:"text",raw:r[0],text:a}}}},De={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:Rd,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};De._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;De._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;De.def=To(De.def).replace("label",De._label).replace("title",De._title).getRegex();De.bullet=/(?:[*+-]|\d{1,9}[.)])/;De.listItemStart=To(/^( *)(bull) */).replace("bull",De.bullet).getRegex();De.list=To(De.list).replace(/bull/g,De.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+De.def.source+")").getRegex();De._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";De._comment=/|$)/;De.html=To(De.html,"i").replace("comment",De._comment).replace("tag",De._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();De.paragraph=To(De._paragraph).replace("hr",De.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",De._tag).getRegex();De.blockquote=To(De.blockquote).replace("paragraph",De.paragraph).getRegex();De.normal=$t({},De);De.gfm=$t({},De.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});De.gfm.table=To(De.gfm.table).replace("hr",De.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",De._tag).getRegex();De.gfm.paragraph=To(De._paragraph).replace("hr",De.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",De.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",De._tag).getRegex();De.pedantic=$t({},De.normal,{html:To(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",De._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Rd,paragraph:To(De.normal._paragraph).replace("hr",De.hr).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",De.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var we={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Rd,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Rd,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~";we.punctuation=To(we.punctuation).replace(/punctuation/g,we._punctuation).getRegex();we.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;we.escapedEmSt=/\\\*|\\_/g;we._comment=To(De._comment).replace("(?:-->|$)","-->").getRegex();we.emStrong.lDelim=To(we.emStrong.lDelim).replace(/punct/g,we._punctuation).getRegex();we.emStrong.rDelimAst=To(we.emStrong.rDelimAst,"g").replace(/punct/g,we._punctuation).getRegex();we.emStrong.rDelimUnd=To(we.emStrong.rDelimUnd,"g").replace(/punct/g,we._punctuation).getRegex();we._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;we._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;we._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;we.autolink=To(we.autolink).replace("scheme",we._scheme).replace("email",we._email).getRegex();we._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;we.tag=To(we.tag).replace("comment",we._comment).replace("attribute",we._attribute).getRegex();we._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;we._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;we._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;we.link=To(we.link).replace("label",we._label).replace("href",we._href).replace("title",we._title).getRegex();we.reflink=To(we.reflink).replace("label",we._label).replace("ref",De._label).getRegex();we.nolink=To(we.nolink).replace("ref",De._label).getRegex();we.reflinkSearch=To(we.reflinkSearch,"g").replace("reflink",we.reflink).replace("nolink",we.nolink).getRegex();we.normal=$t({},we);we.pedantic=$t({},we.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:To(/^!?\[(label)\]\((.*?)\)/).replace("label",we._label).getRegex(),reflink:To(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",we._label).getRegex()});we.gfm=$t({},we.normal,{escape:To(we.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(r="x"+r.toString(16)),o+="&#"+r+";";return o}var ur=class{constructor(o){this.tokens=[],this.tokens.links=Object.create(null),this.options=o||al,this.options.tokenizer=this.options.tokenizer||new Fd,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={block:De.normal,inline:we.normal};this.options.pedantic?(t.block=De.pedantic,t.inline=we.pedantic):this.options.gfm&&(t.block=De.gfm,this.options.breaks?t.inline=we.breaks:t.inline=we.gfm),this.tokenizer.rules=t}static get rules(){return{block:De,inline:we}}static lex(o,t){return new ur(t).lex(o)}static lexInline(o,t){return new ur(t).inlineTokens(o)}lex(o){o=o.replace(/\r\n|\r/g,` -`).replace(/\t/g," "),this.blockTokens(o,this.tokens);let t;for(;t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens}blockTokens(o,t=[]){this.options.pedantic&&(o=o.replace(/^ +$/gm,""));let r,a,l,n;for(;o;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(i=>(r=i.call({lexer:this},o,t))?(o=o.substring(r.raw.length),t.push(r),!0):!1))){if(r=this.tokenizer.space(o)){o=o.substring(r.raw.length),r.raw.length===1&&t.length>0?t[t.length-1].raw+=` -`:t.push(r);continue}if(r=this.tokenizer.code(o)){o=o.substring(r.raw.length),a=t[t.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` -`+r.raw,a.text+=` -`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(r);continue}if(r=this.tokenizer.fences(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(o)){o=o.substring(r.raw.length),a=t[t.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` -`+r.raw,a.text+=` -`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=a.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(o)){o=o.substring(r.raw.length),t.push(r);continue}if(l=o,this.options.extensions&&this.options.extensions.startBlock){let i=1/0,d=o.slice(1),s;this.options.extensions.startBlock.forEach(function(u){s=u.call({lexer:this},d),typeof s=="number"&&s>=0&&(i=Math.min(i,s))}),i<1/0&&i>=0&&(l=o.substring(0,i+1))}if(this.state.top&&(r=this.tokenizer.paragraph(l))){a=t[t.length-1],n&&a.type==="paragraph"?(a.raw+=` -`+r.raw,a.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(r),n=l.length!==o.length,o=o.substring(r.raw.length);continue}if(r=this.tokenizer.text(o)){o=o.substring(r.raw.length),a=t[t.length-1],a&&a.type==="text"?(a.raw+=` -`+r.raw,a.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(r);continue}if(o){let i="Infinite loop on byte: "+o.charCodeAt(0);if(this.options.silent){console.error(i);break}else throw new Error(i)}}return this.state.top=!0,t}inline(o,t){this.inlineQueue.push({src:o,tokens:t})}inlineTokens(o,t=[]){let r,a,l,n=o,i,d,s;if(this.tokens.links){let u=Object.keys(this.tokens.links);if(u.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)u.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,i.index)+"["+aT("a",i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,i.index)+"["+aT("a",i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(i=this.tokenizer.rules.inline.escapedEmSt.exec(n))!=null;)n=n.slice(0,i.index)+"++"+n.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;o;)if(d||(s=""),d=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(u=>(r=u.call({lexer:this},o,t))?(o=o.substring(r.raw.length),t.push(r),!0):!1))){if(r=this.tokenizer.escape(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(o)){o=o.substring(r.raw.length),a=t[t.length-1],a&&r.type==="text"&&a.type==="text"?(a.raw+=r.raw,a.text+=r.text):t.push(r);continue}if(r=this.tokenizer.link(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(o,this.tokens.links)){o=o.substring(r.raw.length),a=t[t.length-1],a&&r.type==="text"&&a.type==="text"?(a.raw+=r.raw,a.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(o,n,s)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(o)){o=o.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(o,nT)){o=o.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(o,nT))){o=o.substring(r.raw.length),t.push(r);continue}if(l=o,this.options.extensions&&this.options.extensions.startInline){let u=1/0,f=o.slice(1),m;this.options.extensions.startInline.forEach(function(p){m=p.call({lexer:this},f),typeof m=="number"&&m>=0&&(u=Math.min(u,m))}),u<1/0&&u>=0&&(l=o.substring(0,u+1))}if(r=this.tokenizer.inlineText(l,j0)){o=o.substring(r.raw.length),r.raw.slice(-1)!=="_"&&(s=r.raw.slice(-1)),d=!0,a=t[t.length-1],a&&a.type==="text"?(a.raw+=r.raw,a.text+=r.text):t.push(r);continue}if(o){let u="Infinite loop on byte: "+o.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return t}},Cd=class{constructor(o){this.options=o||al}code(o,t,r){let a=(t||"").match(/\S*/)[0];if(this.options.highlight){let l=this.options.highlight(o,a);l!=null&&l!==o&&(r=!0,o=l)}return o=o.replace(/\n$/,"")+` -`,a?'
'+(r?o:Go(o,!0))+`
-`:"
"+(r?o:Go(o,!0))+`
-`}blockquote(o){return`
-`+o+`
-`}html(o){return o}heading(o,t,r,a){return this.options.headerIds?"'+o+" -`:""+o+" +`)}function bs(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function Ca(e){return document.querySelector(`style[cssr-id="${e}"]`)}function w0(e){let t=document.createElement("style");return t.setAttribute("cssr-id",e),t}window&&(window.__cssrContext={});function k0(e){let t=e.getAttribute("mount-count");return t===null?null:Number(t)}function Xf(e,t){e.setAttribute("mount-count",String(t))}function Zf(e,t,o,r){let{els:n}=t;if(o===void 0)n.forEach(bs),t.els=[];else{let i=Ca(o);if(i&&n.includes(i)){let a=k0(i);r?a===null?console.error(`[css-render/unmount]: The style with target='${o}' is mounted in count mode.`):a<=1?(bs(i),t.els=n.filter(l=>l!==i)):Xf(i,a-1):a!==null?console.error(`[css-render/unmount]: The style with target='${o}' is mounted in no-count mode.`):(bs(i),t.els=n.filter(l=>l!==i))}}}function aP(e,t){e.push(t)}function S0(e,t,o,r,n,i,a,l,s){if(a&&!s){if(o===void 0){console.error("[css-render/mount]: `id` is required in `boost` mode.");return}let f=window.__cssrContext;f[o]||(f[o]=!0,vs(t,e,r,a));return}let c,{els:d}=t,u;if(o===void 0&&(u=t.render(r),o=so(u)),s){s(o,u??t.render(r));return}let p=Ca(o);if(l||p===null){if(c=p===null?w0(o):p,u===void 0&&(u=t.render(r)),c.textContent=u,p!==null)return;if(n){let f=document.head.getElementsByTagName("style")[0]||null;document.head.insertBefore(c,f)}else document.head.appendChild(c);i&&Xf(c,1),aP(d,c)}else{let f=k0(p);i?f===null?console.error(`[css-render/mount]: The style with id='${o}' has been mounted in no-count mode.`):Xf(p,f+1):f!==null&&console.error(`[css-render/mount]: The style with id='${o}' has been mounted in count mode.`)}return p??c}function lP(e){return vs(this,this.instance,e)}function sP(e={}){let{target:t,id:o,ssr:r,props:n,count:i=!1,head:a=!1,boost:l=!1,force:s=!1}=e;return S0(this.instance,this,o??t,n,a,i,l,s,r)}function cP(e={}){let{id:t,target:o,delay:r=0,count:n=!1}=e;r===0?Zf(this.instance,this,t??o,n):setTimeout(()=>Zf(this.instance,this,t??o,n),r)}var ys=function(e,t,o,r){return{instance:e,$:t,props:o,children:r,els:[],render:lP,mount:sP,unmount:cP}},_0=function(e,t,o,r){return Array.isArray(t)?ys(e,{$:null},null,t):Array.isArray(o)?ys(e,t,null,o):Array.isArray(r)?ys(e,t,o,r):ys(e,t,o,null)};function Qf(e={}){let t=null,o={c:(...r)=>_0(o,...r),use:(r,...n)=>r.install(o,...n),find:Ca,context:{},config:e,get __styleSheet(){if(!t){let r=document.createElement("style");return document.head.appendChild(r),t=document.styleSheets[document.styleSheets.length-1],t}return t}};return o}var{c:Jf}=Qf(),dP=Jf(".xicon",{width:"1em",height:"1em",display:"inline-flex"},[Jf("svg",{width:"1em",height:"1em"}),Jf("svg:not([fill])",{fill:"currentColor"})]),ep=()=>{dP.mount({id:"xicons-icon"})};var tp={size:[String,Number],color:String,tag:String},op=Symbol("IconConfigInjection"),uP=ue({name:"IconConfigProvider",props:tp,setup(e,{slots:t}){return Yt(op,e),()=>An(t,"default")}});var E0="span";var wa=ue({name:"Icon",props:tp,setup(e,{slots:t}){let o=ke(op,null),r=F(()=>{var a;let l=(a=e.size)!==null&&a!==void 0?a:o?.size;if(l!==void 0)return typeof l=="number"||/^\d+$/.test(l)?`${l}px`:l}),n=F(()=>{let{color:a}=e;return a===void 0?o?o.color:void 0:a}),i=F(()=>{var a;let{tag:l}=e;return l===void 0?(a=o?.tag)!==null&&a!==void 0?a:E0:l});return cr(()=>{ep()}),()=>b(i.value,{class:"xicon",style:{color:n.value,fontSize:r.value}},[An(t,"default")])}});function I0(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}var ti=I0();function fP(e){ti=e}var pP=/[&<>"']/,mP=/[&<>"']/g,hP=/[<>"']|&(?!#?\w+;)/,gP=/[<>"']|&(?!#?\w+;)/g,xP={"&":"&","<":"<",">":">",'"':""","'":"'"},D0=e=>xP[e];function $t(e,t){if(t){if(pP.test(e))return e.replace(mP,D0)}else if(hP.test(e))return e.replace(gP,D0);return e}var vP=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function A0(e){return e.replace(vP,(t,o)=>(o=o.toLowerCase(),o==="colon"?":":o.charAt(0)==="#"?o.charAt(1)==="x"?String.fromCharCode(parseInt(o.substring(2),16)):String.fromCharCode(+o.substring(1)):""))}var bP=/(^|[^\[])\^/g;function st(e,t){e=e.source||e,t=t||"";let o={replace:(r,n)=>(n=n.source||n,n=n.replace(bP,"$1"),e=e.replace(r,n),o),getRegex:()=>new RegExp(e,t)};return o}var yP=/[^\w:]/g,CP=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function T0(e,t,o){if(e){let r;try{r=decodeURIComponent(A0(o)).replace(yP,"").toLowerCase()}catch{return null}if(r.indexOf("javascript:")===0||r.indexOf("vbscript:")===0||r.indexOf("data:")===0)return null}t&&!CP.test(o)&&(o=_P(t,o));try{o=encodeURI(o).replace(/%25/g,"%")}catch{return null}return o}var Cs={},wP=/^[^:]+:\/*[^/]*$/,kP=/^([^:]+:)[\s\S]*$/,SP=/^([^:]+:\/*[^/]*)[\s\S]*$/;function _P(e,t){Cs[" "+e]||(wP.test(e)?Cs[" "+e]=e+"/":Cs[" "+e]=ws(e,"/",!0)),e=Cs[" "+e];let o=e.indexOf(":")===-1;return t.substring(0,2)==="//"?o?t:e.replace(kP,"$1")+t:t.charAt(0)==="/"?o?t:e.replace(SP,"$1")+t:e+t}var ks={exec:function(){}};function $o(e){let t=1,o,r;for(;t{let s=!1,c=a;for(;--c>=0&&l[c]==="\\";)s=!s;return s?"|":" |"}),r=o.split(/ \|/),n=0;if(r[0].trim()||r.shift(),r.length>0&&!r[r.length-1].trim()&&r.pop(),r.length>t)r.splice(t);else for(;r.length1;)t&1&&(o+=e),t>>=1,e+=e;return o+e}function N0(e,t,o,r){let n=t.href,i=t.title?$t(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){r.state.inLink=!0;let l={type:"link",raw:o,href:n,title:i,text:a,tokens:r.inlineTokens(a,[])};return r.state.inLink=!1,l}else return{type:"image",raw:o,href:n,title:i,text:$t(a)}}function DP(e,t){let o=e.match(/^(\s+)(?:```)/);if(o===null)return t;let r=o[1];return t.split(` +`).map(n=>{let i=n.match(/^\s+/);if(i===null)return n;let[a]=i;return a.length>=r.length?n.slice(r.length):n}).join(` +`)}var ka=class{constructor(t){this.options=t||ti}space(t){let o=this.rules.block.newline.exec(t);if(o&&o[0].length>0)return{type:"space",raw:o[0]}}code(t){let o=this.rules.block.code.exec(t);if(o){let r=o[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:o[0],codeBlockStyle:"indented",text:this.options.pedantic?r:ws(r,` +`)}}}fences(t){let o=this.rules.block.fences.exec(t);if(o){let r=o[0],n=DP(r,o[3]||"");return{type:"code",raw:r,lang:o[2]?o[2].trim():o[2],text:n}}}heading(t){let o=this.rules.block.heading.exec(t);if(o){let r=o[2].trim();if(/#$/.test(r)){let i=ws(r,"#");(this.options.pedantic||!i||/ $/.test(i))&&(r=i.trim())}let n={type:"heading",raw:o[0],depth:o[1].length,text:r,tokens:[]};return this.lexer.inline(n.text,n.tokens),n}}hr(t){let o=this.rules.block.hr.exec(t);if(o)return{type:"hr",raw:o[0]}}blockquote(t){let o=this.rules.block.blockquote.exec(t);if(o){let r=o[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:o[0],tokens:this.lexer.blockTokens(r,[]),text:r}}}list(t){let o=this.rules.block.list.exec(t);if(o){let r,n,i,a,l,s,c,d,u,p,f,m,y=o[1].trim(),w=y.length>1,g={type:"list",raw:"",ordered:w,start:w?+y.slice(0,-1):"",loose:!1,items:[]};y=w?`\\d{1,9}\\${y.slice(-1)}`:`\\${y}`,this.options.pedantic&&(y=w?y:"[*+-]");let O=new RegExp(`^( {0,3}${y})((?: [^\\n]*)?(?:\\n|$))`);for(;t&&(m=!1,!(!(o=O.exec(t))||this.rules.block.hr.test(t)));){if(r=o[0],t=t.substring(r.length),d=o[2].split(` +`,1)[0],u=t.split(` +`,1)[0],this.options.pedantic?(a=2,f=d.trimLeft()):(a=o[2].search(/[^ ]/),a=a>4?1:a,f=d.slice(a),a+=o[1].length),s=!1,!d&&/^ *$/.test(u)&&(r+=u+` +`,t=t.substring(u.length+1),m=!0),!m){let S=new RegExp(`^ {0,${Math.min(3,a-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;t&&(p=t.split(` +`,1)[0],d=p,this.options.pedantic&&(d=d.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!S.test(d));){if(d.search(/[^ ]/)>=a||!d.trim())f+=` +`+d.slice(a);else if(!s)f+=` +`+d;else break;!s&&!d.trim()&&(s=!0),r+=p+` +`,t=t.substring(p.length+1)}}g.loose||(c?g.loose=!0:/\n *\n *$/.test(r)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(f),n&&(i=n[0]!=="[ ] ",f=f.replace(/^\[[ xX]\] +/,""))),g.items.push({type:"list_item",raw:r,task:!!n,checked:i,loose:!1,text:f}),g.raw+=r}g.items[g.items.length-1].raw=r.trimRight(),g.items[g.items.length-1].text=f.trimRight(),g.raw=g.raw.trimRight();let j=g.items.length;for(l=0;lD.type==="space"),v=S.every(D=>{let x=D.raw.split(""),k=0;for(let A of x)if(A===` +`&&(k+=1),k>1)return!0;return!1});!g.loose&&S.length&&v&&(g.loose=!0,g.items[l].loose=!0)}return g}}html(t){let o=this.rules.block.html.exec(t);if(o){let r={type:"html",raw:o[0],pre:!this.options.sanitizer&&(o[1]==="pre"||o[1]==="script"||o[1]==="style"),text:o[0]};return this.options.sanitize&&(r.type="paragraph",r.text=this.options.sanitizer?this.options.sanitizer(o[0]):$t(o[0]),r.tokens=[],this.lexer.inline(r.text,r.tokens)),r}}def(t){let o=this.rules.block.def.exec(t);if(o)return o[3]&&(o[3]=o[3].substring(1,o[3].length-1)),{type:"def",tag:o[1].toLowerCase().replace(/\s+/g," "),raw:o[0],href:o[2],title:o[3]}}table(t){let o=this.rules.block.table.exec(t);if(o){let r={type:"table",header:O0(o[1]).map(n=>({text:n})),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:o[3]&&o[3].trim()?o[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(r.header.length===r.align.length){r.raw=o[0];let n=r.align.length,i,a,l,s;for(i=0;i({text:c}));for(n=r.header.length,a=0;a/i.test(o[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(o[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(o[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:o[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):$t(o[0]):o[0]}}link(t){let o=this.rules.inline.link.exec(t);if(o){let r=o[2].trim();if(!this.options.pedantic&&/^$/.test(r))return;let a=ws(r.slice(0,-1),"\\");if((r.length-a.length)%2===0)return}else{let a=EP(o[2],"()");if(a>-1){let s=(o[0].indexOf("!")===0?5:4)+o[1].length+a;o[2]=o[2].substring(0,a),o[0]=o[0].substring(0,s).trim(),o[3]=""}}let n=o[2],i="";if(this.options.pedantic){let a=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);a&&(n=a[1],i=a[3])}else i=o[3]?o[3].slice(1,-1):"";return n=n.trim(),/^$/.test(r)?n=n.slice(1):n=n.slice(1,-1)),N0(o,{href:n&&n.replace(this.rules.inline._escapes,"$1"),title:i&&i.replace(this.rules.inline._escapes,"$1")},o[0],this.lexer)}}reflink(t,o){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let n=(r[2]||r[1]).replace(/\s+/g," ");if(n=o[n.toLowerCase()],!n||!n.href){let i=r[0].charAt(0);return{type:"text",raw:i,text:i}}return N0(r,n,r[0],this.lexer)}}emStrong(t,o,r=""){let n=this.rules.inline.emStrong.lDelim.exec(t);if(!n||n[3]&&r.match(/[\p{L}\p{N}]/u))return;let i=n[1]||n[2]||"";if(!i||i&&(r===""||this.rules.inline.punctuation.exec(r))){let a=n[0].length-1,l,s,c=a,d=0,u=n[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,o=o.slice(-1*t.length+a);(n=u.exec(o))!=null;){if(l=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!l)continue;if(s=l.length,n[3]||n[4]){c+=s;continue}else if((n[5]||n[6])&&a%3&&!((a+s)%3)){d+=s;continue}if(c-=s,c>0)continue;if(s=Math.min(s,s+c+d),Math.min(a,s)%2){let f=t.slice(1,a+n.index+s);return{type:"em",raw:t.slice(0,a+n.index+s+1),text:f,tokens:this.lexer.inlineTokens(f,[])}}let p=t.slice(2,a+n.index+s-1);return{type:"strong",raw:t.slice(0,a+n.index+s+1),text:p,tokens:this.lexer.inlineTokens(p,[])}}}}codespan(t){let o=this.rules.inline.code.exec(t);if(o){let r=o[2].replace(/\n/g," "),n=/[^ ]/.test(r),i=/^ /.test(r)&&/ $/.test(r);return n&&i&&(r=r.substring(1,r.length-1)),r=$t(r,!0),{type:"codespan",raw:o[0],text:r}}}br(t){let o=this.rules.inline.br.exec(t);if(o)return{type:"br",raw:o[0]}}del(t){let o=this.rules.inline.del.exec(t);if(o)return{type:"del",raw:o[0],text:o[2],tokens:this.lexer.inlineTokens(o[2],[])}}autolink(t,o){let r=this.rules.inline.autolink.exec(t);if(r){let n,i;return r[2]==="@"?(n=$t(this.options.mangle?o(r[1]):r[1]),i="mailto:"+n):(n=$t(r[1]),i=n),{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(t,o){let r;if(r=this.rules.inline.url.exec(t)){let n,i;if(r[2]==="@")n=$t(this.options.mangle?o(r[0]):r[0]),i="mailto:"+n;else{let a;do a=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])[0];while(a!==r[0]);n=$t(r[0]),r[1]==="www."?i="http://"+n:i=n}return{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t,o){let r=this.rules.inline.text.exec(t);if(r){let n;return this.lexer.state.inRawBlock?n=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):$t(r[0]):r[0]:n=$t(this.options.smartypants?o(r[0]):r[0]),{type:"text",raw:r[0],text:n}}}},Ee={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:ks,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};Ee._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;Ee._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;Ee.def=st(Ee.def).replace("label",Ee._label).replace("title",Ee._title).getRegex();Ee.bullet=/(?:[*+-]|\d{1,9}[.)])/;Ee.listItemStart=st(/^( *)(bull) */).replace("bull",Ee.bullet).getRegex();Ee.list=st(Ee.list).replace(/bull/g,Ee.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ee.def.source+")").getRegex();Ee._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";Ee._comment=/|$)/;Ee.html=st(Ee.html,"i").replace("comment",Ee._comment).replace("tag",Ee._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();Ee.paragraph=st(Ee._paragraph).replace("hr",Ee.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ee._tag).getRegex();Ee.blockquote=st(Ee.blockquote).replace("paragraph",Ee.paragraph).getRegex();Ee.normal=$o({},Ee);Ee.gfm=$o({},Ee.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});Ee.gfm.table=st(Ee.gfm.table).replace("hr",Ee.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ee._tag).getRegex();Ee.gfm.paragraph=st(Ee._paragraph).replace("hr",Ee.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",Ee.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ee._tag).getRegex();Ee.pedantic=$o({},Ee.normal,{html:st(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ee._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ks,paragraph:st(Ee.normal._paragraph).replace("hr",Ee.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",Ee.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var ve={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:ks,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:ks,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~";ve.punctuation=st(ve.punctuation).replace(/punctuation/g,ve._punctuation).getRegex();ve.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;ve.escapedEmSt=/\\\*|\\_/g;ve._comment=st(Ee._comment).replace("(?:-->|$)","-->").getRegex();ve.emStrong.lDelim=st(ve.emStrong.lDelim).replace(/punct/g,ve._punctuation).getRegex();ve.emStrong.rDelimAst=st(ve.emStrong.rDelimAst,"g").replace(/punct/g,ve._punctuation).getRegex();ve.emStrong.rDelimUnd=st(ve.emStrong.rDelimUnd,"g").replace(/punct/g,ve._punctuation).getRegex();ve._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;ve._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;ve._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;ve.autolink=st(ve.autolink).replace("scheme",ve._scheme).replace("email",ve._email).getRegex();ve._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;ve.tag=st(ve.tag).replace("comment",ve._comment).replace("attribute",ve._attribute).getRegex();ve._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;ve._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;ve._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;ve.link=st(ve.link).replace("label",ve._label).replace("href",ve._href).replace("title",ve._title).getRegex();ve.reflink=st(ve.reflink).replace("label",ve._label).replace("ref",Ee._label).getRegex();ve.nolink=st(ve.nolink).replace("ref",Ee._label).getRegex();ve.reflinkSearch=st(ve.reflinkSearch,"g").replace("reflink",ve.reflink).replace("nolink",ve.nolink).getRegex();ve.normal=$o({},ve);ve.pedantic=$o({},ve.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:st(/^!?\[(label)\]\((.*?)\)/).replace("label",ve._label).getRegex(),reflink:st(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ve._label).getRegex()});ve.gfm=$o({},ve.normal,{escape:st(ve.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(r="x"+r.toString(16)),t+="&#"+r+";";return t}var Ao=class{constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||ti,this.options.tokenizer=this.options.tokenizer||new ka,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let o={block:Ee.normal,inline:ve.normal};this.options.pedantic?(o.block=Ee.pedantic,o.inline=ve.pedantic):this.options.gfm&&(o.block=Ee.gfm,this.options.breaks?o.inline=ve.breaks:o.inline=ve.gfm),this.tokenizer.rules=o}static get rules(){return{block:Ee,inline:ve}}static lex(t,o){return new Ao(o).lex(t)}static lexInline(t,o){return new Ao(o).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,` +`).replace(/\t/g," "),this.blockTokens(t,this.tokens);let o;for(;o=this.inlineQueue.shift();)this.inlineTokens(o.src,o.tokens);return this.tokens}blockTokens(t,o=[]){this.options.pedantic&&(t=t.replace(/^ +$/gm,""));let r,n,i,a;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(r=l.call({lexer:this},t,o))?(t=t.substring(r.raw.length),o.push(r),!0):!1))){if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length),r.raw.length===1&&o.length>0?o[o.length-1].raw+=` +`:o.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length),n=o[o.length-1],n&&(n.type==="paragraph"||n.type==="text")?(n.raw+=` +`+r.raw,n.text+=` +`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text):o.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length),n=o[o.length-1],n&&(n.type==="paragraph"||n.type==="text")?(n.raw+=` +`+r.raw,n.text+=` +`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),o.push(r);continue}if(i=t,this.options.extensions&&this.options.extensions.startBlock){let l=1/0,s=t.slice(1),c;this.options.extensions.startBlock.forEach(function(d){c=d.call({lexer:this},s),typeof c=="number"&&c>=0&&(l=Math.min(l,c))}),l<1/0&&l>=0&&(i=t.substring(0,l+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){n=o[o.length-1],a&&n.type==="paragraph"?(n.raw+=` +`+r.raw,n.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):o.push(r),a=i.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length),n=o[o.length-1],n&&n.type==="text"?(n.raw+=` +`+r.raw,n.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):o.push(r);continue}if(t){let l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,o}inline(t,o){this.inlineQueue.push({src:t,tokens:o})}inlineTokens(t,o=[]){let r,n,i,a=t,l,s,c;if(this.tokens.links){let d=Object.keys(this.tokens.links);if(d.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)d.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,l.index)+"["+P0("a",l[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)a=a.slice(0,l.index)+"["+P0("a",l[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.escapedEmSt.exec(a))!=null;)a=a.slice(0,l.index)+"++"+a.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;t;)if(s||(c=""),s=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(d=>(r=d.call({lexer:this},t,o))?(t=t.substring(r.raw.length),o.push(r),!0):!1))){if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length),n=o[o.length-1],n&&r.type==="text"&&n.type==="text"?(n.raw+=r.raw,n.text+=r.text):o.push(r);continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length),n=o[o.length-1],n&&r.type==="text"&&n.type==="text"?(n.raw+=r.raw,n.text+=r.text):o.push(r);continue}if(r=this.tokenizer.emStrong(t,a,c)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.codespan(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.br(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.del(t)){t=t.substring(r.raw.length),o.push(r);continue}if(r=this.tokenizer.autolink(t,R0)){t=t.substring(r.raw.length),o.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(t,R0))){t=t.substring(r.raw.length),o.push(r);continue}if(i=t,this.options.extensions&&this.options.extensions.startInline){let d=1/0,u=t.slice(1),p;this.options.extensions.startInline.forEach(function(f){p=f.call({lexer:this},u),typeof p=="number"&&p>=0&&(d=Math.min(d,p))}),d<1/0&&d>=0&&(i=t.substring(0,d+1))}if(r=this.tokenizer.inlineText(i,TP)){t=t.substring(r.raw.length),r.raw.slice(-1)!=="_"&&(c=r.raw.slice(-1)),s=!0,n=o[o.length-1],n&&n.type==="text"?(n.raw+=r.raw,n.text+=r.text):o.push(r);continue}if(t){let d="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(d);break}else throw new Error(d)}}return o}},Sa=class{constructor(t){this.options=t||ti}code(t,o,r){let n=(o||"").match(/\S*/)[0];if(this.options.highlight){let i=this.options.highlight(t,n);i!=null&&i!==t&&(r=!0,t=i)}return t=t.replace(/\n$/,"")+` +`,n?'
'+(r?t:$t(t,!0))+`
+`:"
"+(r?t:$t(t,!0))+`
+`}blockquote(t){return`
+`+t+`
+`}html(t){return t}heading(t,o,r,n){return this.options.headerIds?"'+t+" +`:""+t+" `}hr(){return this.options.xhtml?`
`:`
-`}list(o,t,r){let a=t?"ol":"ul",l=t&&r!==1?' start="'+r+'"':"";return"<"+a+l+`> -`+o+" -`}listitem(o){return"
  • "+o+`
  • -`}checkbox(o){return" "}paragraph(o){return"

    "+o+`

    -`}table(o,t){return t&&(t=""+t+""),` +`}list(t,o,r){let n=o?"ol":"ul",i=o&&r!==1?' start="'+r+'"':"";return"<"+n+i+`> +`+t+" +`}listitem(t){return"
  • "+t+`
  • +`}checkbox(t){return" "}paragraph(t){return"

    "+t+`

    +`}table(t,o){return o&&(o=""+o+""),`
    -`+o+` -`+t+`
    -`}tablerow(o){return` -`+o+` -`}tablecell(o,t){let r=t.header?"th":"td";return(t.align?"<"+r+' align="'+t.align+'">':"<"+r+">")+o+" -`}strong(o){return""+o+""}em(o){return""+o+""}codespan(o){return""+o+""}br(){return this.options.xhtml?"
    ":"
    "}del(o){return""+o+""}link(o,t,r){if(o=oT(this.options.sanitize,this.options.baseUrl,o),o===null)return r;let a='",a}image(o,t,r){if(o=oT(this.options.sanitize,this.options.baseUrl,o),o===null)return r;let a=''+r+'":">",a}text(o){return o}},Ap=class{strong(o){return o}em(o){return o}codespan(o){return o}del(o){return o}html(o){return o}text(o){return o}link(o,t,r){return""+r}image(o,t,r){return""+r}br(){return""}},Dp=class{constructor(){this.seen={}}serialize(o){return o.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(o,t){let r=o,a=0;if(this.seen.hasOwnProperty(r)){a=this.seen[o];do a++,r=o+"-"+a;while(this.seen.hasOwnProperty(r))}return t||(this.seen[o]=a,this.seen[r]=0),r}slug(o,t={}){let r=this.serialize(o);return this.getNextSafeSlug(r,t.dryrun)}},fr=class{constructor(o){this.options=o||al,this.options.renderer=this.options.renderer||new Cd,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Ap,this.slugger=new Dp}static parse(o,t){return new fr(t).parse(o)}static parseInline(o,t){return new fr(t).parseInline(o)}parse(o,t=!0){let r="",a,l,n,i,d,s,u,f,m,p,c,R,y,h,A,z,F,g,k,S=o.length;for(a=0;a0&&A.tokens[0].type==="paragraph"?(A.tokens[0].text=g+" "+A.tokens[0].text,A.tokens[0].tokens&&A.tokens[0].tokens.length>0&&A.tokens[0].tokens[0].type==="text"&&(A.tokens[0].tokens[0].text=g+" "+A.tokens[0].tokens[0].text)):A.tokens.unshift({type:"text",text:g}):h+=g),h+=this.parse(A.tokens,y),m+=this.renderer.listitem(h,F,z);r+=this.renderer.list(m,c,R);continue}case"html":{r+=this.renderer.html(p.text);continue}case"paragraph":{r+=this.renderer.paragraph(this.parseInline(p.tokens));continue}case"text":{for(m=p.tokens?this.parseInline(p.tokens):p.text;a+1{r(i.text,i.lang,function(d,s){if(d)return l(d);s!=null&&s!==i.text&&(i.text=s,i.escaped=!0),n--,n===0&&l()})},0))}),n===0&&l();return}try{let r=ur.lex(e,o);return o.walkTokens&&Pe.walkTokens(r,o.walkTokens),fr.parse(r,o)}catch(r){if(r.message+=` -Please report this to https://github.com/markedjs/marked.`,o.silent)return"

    An error occurred:

    "+Go(r.message+"",!0)+"
    ";throw r}}Pe.options=Pe.setOptions=function(e){return $t(Pe.defaults,e),v0(Pe.defaults),Pe};Pe.getDefaults=Xw;Pe.defaults=al;Pe.use=function(...e){let o=$t({},...e),t=Pe.defaults.extensions||{renderers:{},childTokens:{}},r;e.forEach(a=>{if(a.extensions&&(r=!0,a.extensions.forEach(l=>{if(!l.name)throw new Error("extension name required");if(l.renderer){let n=t.renderers?t.renderers[l.name]:null;n?t.renderers[l.name]=function(...i){let d=l.renderer.apply(this,i);return d===!1&&(d=n.apply(this,i)),d}:t.renderers[l.name]=l.renderer}if(l.tokenizer){if(!l.level||l.level!=="block"&&l.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");t[l.level]?t[l.level].unshift(l.tokenizer):t[l.level]=[l.tokenizer],l.start&&(l.level==="block"?t.startBlock?t.startBlock.push(l.start):t.startBlock=[l.start]:l.level==="inline"&&(t.startInline?t.startInline.push(l.start):t.startInline=[l.start]))}l.childTokens&&(t.childTokens[l.name]=l.childTokens)})),a.renderer){let l=Pe.defaults.renderer||new Cd;for(let n in a.renderer){let i=l[n];l[n]=(...d)=>{let s=a.renderer[n].apply(l,d);return s===!1&&(s=i.apply(l,d)),s}}o.renderer=l}if(a.tokenizer){let l=Pe.defaults.tokenizer||new Fd;for(let n in a.tokenizer){let i=l[n];l[n]=(...d)=>{let s=a.tokenizer[n].apply(l,d);return s===!1&&(s=i.apply(l,d)),s}}o.tokenizer=l}if(a.walkTokens){let l=Pe.defaults.walkTokens;o.walkTokens=function(n){a.walkTokens.call(this,n),l&&l.call(this,n)}}r&&(o.extensions=t),Pe.setOptions(o)})};Pe.walkTokens=function(e,o){for(let t of e)switch(o.call(Pe,t),t.type){case"table":{for(let r of t.header)Pe.walkTokens(r.tokens,o);for(let r of t.rows)for(let a of r)Pe.walkTokens(a.tokens,o);break}case"list":{Pe.walkTokens(t.items,o);break}default:Pe.defaults.extensions&&Pe.defaults.extensions.childTokens&&Pe.defaults.extensions.childTokens[t.type]?Pe.defaults.extensions.childTokens[t.type].forEach(function(r){Pe.walkTokens(t[r],o)}):t.tokens&&Pe.walkTokens(t.tokens,o)}};Pe.parseInline=function(e,o){if(typeof e=="undefined"||e===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");o=$t({},Pe.defaults,o||{}),rT(o);try{let t=ur.lexInline(e,o);return o.walkTokens&&Pe.walkTokens(t,o.walkTokens),fr.parseInline(t,o)}catch(t){if(t.message+=` -Please report this to https://github.com/markedjs/marked.`,o.silent)return"

    An error occurred:

    "+Go(t.message+"",!0)+"
    ";throw t}};Pe.Parser=fr;Pe.parser=fr.parse;Pe.Renderer=Cd;Pe.TextRenderer=Ap;Pe.Lexer=ur;Pe.lexer=ur.lex;Pe.Tokenizer=Fd;Pe.Slugger=Dp;Pe.parse=Pe;var Lae=Pe.options,Nae=Pe.setOptions,_ae=Pe.use,Iae=Pe.walkTokens,Hae=Pe.parseInline;var Vae=fr.parse,Wae=ur.lex;var nl=Jr(require("obsidian"));var ll=Jr(require("obsidian"));var j=Qt({activeView(){this.plugin.activateView(),this.refreshTree()},headers:[],jumpBy:Pp,onPosChange:(e,o,t)=>{},dark:!0,cssChange:!1,markdown:!0,ellipsis:!1,labelDirection:"left",leafChange:!1,searchSupport:!0,levelSwitch:!0,hideUnsearched:!0,regexSearch:!1,modifyKeys:{},dragModify:!1,refreshTree(){this.leafChange=!this.leafChange},patchColor:!1,primaryColorLight:"",primaryColorDark:"",rainbowLine:!1,rainbowColor1:"",rainbowColor2:"",rainbowColor3:"",rainbowColor4:"",rainbowColor5:"",currentNote:null});var iT={name:"formula",level:"inline",start(e){var o;return(o=e.match(/\$/))==null?void 0:o.index},tokenizer(e,o){let r=/^\$([^\$]+)\$/.exec(e);if(r)return{type:"formula",raw:r[0],formula:r[1].trim()}},renderer(e){try{let o=(0,ll.renderMath)(e.formula,!1).outerHTML;return(0,ll.finishRenderMath)(),o}catch(o){return(0,ll.loadMathJax)().then(()=>{j.refreshTree()}),!1}}},dT={name:"internal",level:"inline",start(e){var o;return(o=e.match(/\[\[/))==null?void 0:o.index},tokenizer(e,o){let r=/^\[\[([^\[\]]+?)\]\]/.exec(e);if(r){let a=/.*\|(.*)/.exec(r[1]);return{type:"internal",raw:r[0],internal:a?a[1]:r[1]}}},renderer(e){return`${e.internal}`}},sT={name:"ref",level:"inline",start(e){var o;return(o=e.match(/\^/))==null?void 0:o.index},tokenizer(e,o){let r=/^(\^[A-Za-z0-9\-]+)|^(\^\[.*\])/.exec(e);if(r)return{type:"ref",raw:r[0],ref:(r[1]||r[2]).trim()}},renderer(e){return""}},uT={name:"highlight",level:"inline",start(e){var o;return(o=e.match(/==/))==null?void 0:o.index},tokenizer(e,o){let r=/^==([^=]+)==/.exec(e);if(r)return{type:"highlight",raw:r[0],internal:r[1]}},renderer(e){return`${e.internal}`}},fT={name:"tag",level:"inline",start(e){var o;return(o=e.match(/^#|(?<=\s)#/))==null?void 0:o.index},tokenizer(e,o){let r=/^#([^\[\]{}:;'"`~,.<>?|\\!@#$%^&*()=+\d\s][^\[\]{}:;'"`~,.<>?|\\!@#$%^&*()=+\s]*)/.exec(e);if(r)return{type:"tag",raw:r[0],internal:r[1]}},renderer(e){return`
    #${e.internal}`}},pT=e=>{e.type==="link"&&(e.href="javascript:void(0);")},mT={listitem(e,o,t){return`${e}`}},cT={name:"nolist",level:"block",start(e){var o;return(o=e.match(/^([+\-*]|\d+[\.)]) /))==null?void 0:o.index},tokenizer(e,o){let r=/^(([+\-*])|(\d+[\.)])) (.*)/.exec(e),a;return r&&r[2]?a={type:"nolist",raw:r[0],ordered:!1,marker:r[2],start:"",body:r[4],tokens:[]}:r&&r[3]&&(a={type:"nolist",raw:r[0],ordered:!0,marker:"",start:r[3],body:r[4],tokens:[]}),a&&this.lexer.inline(a.body,a.tokens),a},renderer(e){let o=this.parser.parseInline(e.tokens,null);return e.ordered?`

    ${e.start} ${o}

    `:`

    ${e.marker} ${o}

    `}};function hT(e,o,t){so(()=>{bt(e).addEventListener(o,t)}),Wo(()=>{bt(e).removeEventListener(o,t)})}var bd=ae({__name:"Outline",setup(e,{expose:o}){o(),pc(T=>({"8de97876-rainbowColor1":bt(d),"8de97876-rainbowColor2":bt(s),"8de97876-rainbowColor3":bt(u),"8de97876-rainbowColor4":bt(f),"8de97876-rainbowColor5":bt(m),"8de97876-locatedColor":bt(i)}));let t=Qt({common:{primaryColor:"",primaryColorHover:""},Slider:{handleSize:"10px",fillColor:"",fillColorHover:"",dotBorderActive:""},Tree:{nodeTextColor:"var(--nav-item-color)"}}),r=Qt({common:{primaryColor:"",primaryColorHover:""},Slider:{handleSize:"10px",fillColor:"",fillColorHover:"",dotBorderActive:""},Tree:{nodeTextColor:"var(--nav-item-color)"}}),a=W(()=>j.dark?xd:null),l=W(()=>j.dark?{color:"var(--icon-color)"}:{color:"var(--icon-color)"});function n(){let T=document.body.createEl("button",{cls:"mod-cta",attr:{style:"width: 0px; height: 0px;"}}),H=getComputedStyle(T,null).getPropertyValue("background-color");return T.remove(),H}let i=Z(n());Uo(()=>{if(j.patchColor){t.common.primaryColor=t.common.primaryColorHover=t.Slider.fillColor=t.Slider.fillColorHover=j.primaryColorLight,t.Slider.dotBorderActive=`2px solid ${j.primaryColorLight}`,r.common.primaryColor=r.common.primaryColorHover=r.Slider.fillColor=r.Slider.fillColorHover=j.primaryColorDark,r.Slider.dotBorderActive=`2px solid ${j.primaryColorDark}`;return}if(j.cssChange===j.cssChange){let T=n();t.common.primaryColor=t.common.primaryColorHover=t.Slider.fillColor=t.Slider.fillColorHover=r.common.primaryColor=r.common.primaryColorHover=r.Slider.fillColor=r.Slider.fillColorHover=T,t.Slider.dotBorderActive=r.Slider.dotBorderActive=`2px solid ${T}`,i.value=T}});let d=Z(""),s=Z(""),u=Z(""),f=Z(""),m=Z("");function p(T){return`${parseInt(T.slice(1,3),16)},${parseInt(T.slice(3,5),16)},${parseInt(T.slice(5,7),16)}`}Uo(()=>{if(j.rainbowLine){d.value=`rgba(${p(j.rainbowColor1)}, 0.6)`,s.value=`rgba(${p(j.rainbowColor2)}, 0.6)`,u.value=`rgba(${p(j.rainbowColor3)}, 0.6)`,f.value=`rgba(${p(j.rainbowColor4)}, 0.6)`,m.value=`rgba(${p(j.rainbowColor5)}, 0.6)`;return}j.cssChange===j.cssChange&&(d.value=s.value=u.value=f.value=m.value="var(--nav-indentation-guide-color)")});function c(){return w(On,{size:"12px"},{default:()=>w(fp)})}function R({option:T}){let H=null;switch(T.icon){case"ArticleOutlined":{H=w(pp);break}case"AudiotrackOutlined":{H=w(mp);break}case"OndemandVideoOutlined":{H=w(Sp);break}case"CategoryOutlined":{H=w(cp);break}case"FilePresentOutlined":{H=w(hp);break}case"ImageOutlined":{H=w(xp);break}case"PublicOutlined":{H=w(gp);break}case"TextFieldsOutlined":{H=w(Tp);break}default:return null}return w(On,{size:"1.2em"},{default:()=>H})}so(()=>{addEventListener("quiet-outline-reset",ie)}),wr(()=>{removeEventListener("quiet-outline-reset",ie)});let y=vt(),h=y.appContext.config.globalProperties.plugin,A=y.appContext.config.globalProperties.container;so(()=>{document.addEventListener("scroll",g,!0)}),wr(()=>{document.removeEventListener("scroll",g,!0)}),h.app.workspace.on("window-open",(T,H)=>{T.doc.addEventListener("scroll",g,!0)}),h.app.workspace.on("window-close",(T,H)=>{T.doc.removeEventListener("scroll",g,!0)});let z=(T,H)=>"item-"+T.level+"-"+H,F=T=>parseInt(T.split("-")[2]),g=(0,nl.debounce)(k,200,!0);function k(T){if(!h.allow_scroll)return;if(h.jumping){h.jumping=!1;return}let H=T.target;if(!H.classList.contains("markdown-preview-view")&&!H.classList.contains("cm-scroller")&&!H.classList.contains("outliner-plugin-list-lines-scroller"))return;let re=h.current_note.getMode()==="source";S(!0,re)}function S(T,H,re){if(T||re===void 0){let de=B(T,H);if(re=E(de),re===void 0)return}Fe(re),pe(re)}j.onPosChange=S,io(()=>j.headers,()=>{var T;((T=h.current_view_type)==null?void 0:T.contains("markdown"))&&S(!1,!0)}),so(()=>{document.addEventListener("quiet-outline-cursorchange",b)}),wr(()=>{document.removeEventListener("quiet-outline-cursorchange",b)});function b(T){!h.allow_cursor_change||h.jumping||(T==null?void 0:T.detail.docChanged)||h.settings.locate_by_cursor&&(h.block_scroll(),S(!1,!0))}function B(T,H){let re=h.current_note;if(!re||h.current_view_type!=="markdown")return;let de=re;return h.settings.locate_by_cursor&&!T?H?de.editor.getCursor("from").line:Math.ceil(de.previewMode.getScroll()):H?v(de.editor.cm):_(de)}function v(T){let{y:H,height:re}=T.dom.getBoundingClientRect(),de=H+re/2,Ge=T.viewportLineBlocks,Me;return Ge.forEach(We=>{let C=T.domAtPos(We.from).node,ce=(C.nodeName=="#text"?C.parentNode:C).getBoundingClientRect();ce.y+ce.height/2<=de&&(Me=T.state.doc.lineAt(We.from).number)}),Math.max(Me-2,0)}function _(T){let H=T.previewMode.renderer,re=H.previewEl,de=re.getBoundingClientRect(),Ge=de.y+de.height/2,Me=re.querySelectorAll(".markdown-preview-sizer>div:not(.markdown-preview-pusher)"),We;return Me.forEach(C=>{let{y:X}=C.getBoundingClientRect();X<=Ge&&(We=H.getSectionForElement(C).lineStart)}),We}function E(T){let H=null,re=j.headers.length;for(;--re>=0;)if(j.headers[re].position.start.line<=T){H=j.headers[re];break}if(!!H)return re}function se(){var H,re;let T;if((H=h.current_note)==null?void 0:H.file){let de=h.app.metadataCache.getFileCache(h.current_note.file);T=(re=de==null?void 0:de.frontmatter)==null?void 0:re["qo-default-level"],typeof T=="string"&&(T=parseInt(T))}return T||parseInt(h.settings.expand_level)}function Fe(T){if(h.settings.auto_expand_ext!=="disable"){let H=j.headers[T],re=T0&&(j.headers[Ge].level!ao.value.contains(z(j.headers[de],de)));re=re===void 0?H[H.length-1]:re,Ee.value=re,setTimeout(()=>{let de=A.querySelector(`#no-${re}`);de&&de.scrollIntoView({block:"center",behavior:"smooth"})},100)}let fe=W(()=>T=>{let H=parseInt(T.option.key.split("-")[1]),re=parseInt(T.option.key.split("-")[2]),de=T.option.label,Ge=Ee.value===re?"located":"";return{class:`level-${H} ${Ge}`,id:`no-${re}`,"aria-label":j.ellipsis?T.option.label:"","aria-label-position":j.labelDirection,raw:de}}),Re,eo,oo="";function Qe(T){let re=T.target.closest(".n-tree-node");!re||(Re=re,eo=T,addEventListener("keydown",Eo))}function fo(T){removeEventListener("keydown",Eo)}let no=T=>h.settings.show_popover_key==="ctrlKey"&&T.ctrlKey||h.settings.show_popover_key==="altKey"&&T.altKey||h.settings.show_popover_key==="metaKey"&&T.metaKey;function Bo(T){var H;no(T)&&h.app.workspace.trigger("hover-link",{event:eo,source:"preview",targetEl:Re,hoverParent:{hoverPopover:null},linktext:"#"+Re.getAttribute("raw"),sourcePath:(H=h.current_note.file)==null?void 0:H.path})}let Eo=Ke(Bo,100);function Ke(T,H){let re=!0,de;return function(...Ge){let Me=this,We=Re==null?void 0:Re.getAttribute("raw");if(We!==oo||re){T.apply(Me,Ge),re=!1,oo=We;return}de&&clearTimeout(de),de=setTimeout(()=>{re=!0},H)}}so(()=>{A.addEventListener("mouseover",Qe),A.addEventListener("mouseout",fo)}),wr(()=>{A.removeEventListener("mouseover",Qe),A.removeEventListener("mouseout",fo),removeEventListener("keydown",Eo)});let Ve=Z(se()),ao=Z([]);bo(Ve.value);function Ae(T,H="replace"){if(H==="replace")ao.value=T;else{let re=new Set([...ao.value,...T]);ao.value=[...re]}mo()}function mo(){!h.current_file||(h.heading_states[h.current_file]=qe(ao.value))}function Lo(T,H){Ae(T)}function bo(T){Ve.value=T;let H=x(T);Ae(H)}hT(window,"quiet-outline-levelchange",T=>{typeof T.detail.level=="number"?bo(T.detail.level):T.detail.level==="inc"?bo(Math.clamp(Ve.value+1,0,5)):T.detail.level==="dec"&&bo(Math.clamp(Ve.value-1,0,5))});function x(T){return j.headers.map((re,de)=>({level:re.level,no:de})).filter((re,de,Ge)=>de===Ge.length-1||Ge[de].level>=Ge[de+1].level?!1:Ge[de].level<=T).map(re=>"item-"+re.level+"-"+re.no)}function O(T,H){let re=T.split("-");return`item-${re[1]}-${parseInt(re[2])+H}`}io(()=>qe(j.modifyKeys),({offsetModifies:T,removes:H,adds:re,modifies:de})=>{let Ge=ao.value.filter(Me=>{let We=F(Me),C=!H.some(ce=>ce.begin<=We&&Wece.oldBegin===We&&ce.levelChangeType==="parent2child");return C&&X}).map(Me=>{let We=F(Me),C=de.find(P=>P.oldBegin===We),X=T.findLastIndex(P=>P.begin<=We),ce=X===-1?Me:O(Me,T[X].offset),$e=F(ce);return C?`item-${j.headers[C.newBegin].level}-${$e}`:ce});de.filter(Me=>Me.levelChangeType==="child2parent").forEach(Me=>{Ge.push(`item-${j.headers[Me.newBegin].level}-${Me.newBegin}`)}),re.forEach(Me=>{let We=ke(Me.begin);(Me.begin>=j.headers.length-1||j.headers[Me.begin].level>=j.headers[Me.begin+1].level)&&We.pop(),We.forEach(C=>{Ge.push(`item-${j.headers[C].level}-${C}`)})}),Ae([...new Set(Ge)])});let N=Z(0);io(()=>j.leafChange,()=>{let T=ee.value;ee.value="",Ve.value=se();let H=h.heading_states[h.current_file];h.settings.remember_state&&H?Ae(H):bo(Ve.value),Qo(()=>{b(),ee.value=T})});let U={0:"",1:"",2:"",3:"",4:"",5:""};function K(T){let H=j.headers.filter(re=>re.level===T).length;return T>0?`H${T}: ${H}`:"No expand"}let le=W(()=>j.markdown?Le:null),ee=Z("");function V(T,H){let re=/.*/;try{re=RegExp(T,"i")}catch(de){}finally{return re.test(H.label)}}function Y(T,H){return H.label.toLowerCase().contains(T.toLowerCase())}let G=W(()=>j.regexSearch?V:Y),D=W(()=>j.headers.filter(T=>{let H={label:T.heading};return G.value(ee.value,H)}).length);function L(T,H){return Ue(this,null,function*(){if(H[0]===void 0)return;let re=H[0].key.split("-"),de=parseInt(re[2]);j.jumpBy(h,de)})}let I=W(()=>ne(j.headers));function ne(T){return me(T)}function me(T){let H={children:[]},re=[{node:H,level:-1}];return T.forEach((de,Ge)=>{let Me={label:de.heading,key:"item-"+de.level+"-"+Ge,line:de.position.start.line,icon:de.icon};for(;de.level<=re.last().level;)re.pop();let We=re.last().node;We.children===void 0&&(We.children=[]),We.children.push(Me),re.push({node:Me,level:de.level})}),H.children}function ye(T){let H=[];function re(de){if(!de||de.length===0)return;let Ge=0;for(let Me=de.length-1;Me>=0;Me--){let We=F(de[Me].key);if(We<=T){H.push(We),Ge=Me;break}}re(de[Ge].children)}return re(I.value),H}function ke(T){let H=[],re=j.headers[T].level+1;for(let de=T;de>=0;de--)j.headers[de].level.*?<\/mjx-container>/g);return H=H.replace(/.*?<\/mjx-container>/g,()=>""),H=(0,nl.sanitizeHTMLToDom)(`
    ${H}
    `).children[0].innerHTML,H=H.replace(/.*?<\/math>/g,()=>de[re++]),w("div",{innerHTML:H})}function Q(){return Ue(this,null,function*(){let T=h.current_note.data;T===void 0&&(T=h.current_note.text);let H=T.split(` -`),re=h.current_note,de=()=>{re instanceof nl.FileView?re.setEphemeralState({line:H.length-5}):Mp(re,{line:H.length-5})};de(),setTimeout(de,100)})}function ie(){ee.value="",Ve.value=se(),bo(Ve.value)}function Oe(de){return Ue(this,arguments,function*({node:T,dragNode:H,dropPosition:re}){if(!h.current_note||h.current_view_type!=="markdown")return;let Ge=h.current_note.file,Me=(yield h.app.vault.read(Ge)).split(` -`),We=qe(ao.value),C=Ye(H),X=C+vo(H)-1,ce=0,$e=0;switch(re){case"inside":T=T.children.last();case"after":{C>Ye(T)+vo(T)?(ce=Ye(T)+vo(T),$e=C-1):(ce=X+1,$e=Ye(T)+vo(T)-1);break}case"before":{C>Ye(T)?(ce=Ye(T),$e=C-1):(ce=C+vo(H),$e=Ye(T)-1);break}}let P=Xe(T)-Xe(H);Ze(We,C,X,ce,$e,P),lo(Me,He(C)[0],He(X)[1]||Me.length-1,He(ce)[0],He($e)[1]||Me.length-1,P),h.app.vault.modify(Ge,Me.join(` -`))})}function He(T){var H;return[j.headers[T].position.start.line,((H=j.headers[T+1])==null?void 0:H.position.start.line)-1]}function lo(T,H,re,de,Ge,Me){let We=0;if(H0?T[C]=Array(Me).fill("#").join("")+T[C]:T[C]=T[C].slice(-Me))}function Ze(T,H,re,de,Ge,Me){let We=0,C=0;H{let $e=Ye(X);H<=$e&&$e<=re&&(T[ce]=`item-${Xe(X)+Me}-${We+($e-H)}`),de<=$e&&$e<=Ge&&(T[ce]=`item-${Xe(X)}-${C+($e-de)}`)}),mo()}function Ye(T){return typeof T!="string"&&(T=T.key),parseInt(T.split("-")[2])}function Xe(T){return typeof T!="string"&&(T=T.key),parseInt(T.split("-")[1])}function vo(T){return T.children?T.children.reduce((H,re)=>H+vo(re),1):1}let lt={lightThemeConfig:t,darkThemeConfig:r,get theme(){return a},set theme(T){a=T},get iconColor(){return l},set iconColor(T){l=T},getDefaultColor:n,get locatedColor(){return i},set locatedColor(T){i=T},get rainbowColor1(){return d},set rainbowColor1(T){d=T},get rainbowColor2(){return s},set rainbowColor2(T){s=T},get rainbowColor3(){return u},set rainbowColor3(T){u=T},get rainbowColor4(){return f},set rainbowColor4(T){f=T},get rainbowColor5(){return m},set rainbowColor5(T){m=T},hexToRGB:p,renderSwitcherIcon:c,renderPrefix:R,get compomentSelf(){return y},set compomentSelf(T){y=T},get plugin(){return h},set plugin(T){h=T},get container(){return A},set container(T){A=T},get toKey(){return z},set toKey(T){z=T},get fromKey(){return F},set fromKey(T){F=T},get handleScroll(){return g},set handleScroll(T){g=T},_handleScroll:k,onPosChange:S,handleCursorChange:b,currentLine:B,getCurrentLineFromEditor:v,getCurrentLineFromPreview:_,nearestHeading:E,getDefaultLevel:se,autoExpand:Fe,get locateIdx(){return Ee},set locateIdx(T){Ee=T},resetLocated:pe,setAttrs:fe,get triggerNode(){return Re},set triggerNode(T){Re=T},get mouseEvent(){return eo},set mouseEvent(T){eo=T},get prevShowed(){return oo},set prevShowed(T){oo=T},onMouseEnter:Qe,onMouseLeave:fo,funcKeyPressed:no,_openPopover:Bo,openPopover:Eo,customDebounce:Ke,get level(){return Ve},set level(T){Ve=T},get expanded(){return ao},set expanded(T){ao=T},modifyExpandKeys:Ae,syncExpandKeys:mo,expand:Lo,switchLevel:bo,filterKeysLessThanEqual:x,offset:O,get update_tree(){return N},set update_tree(T){N=T},marks:U,formatTooltip:K,get renderMethod(){return le},set renderMethod(T){le=T},get pattern(){return ee},set pattern(T){ee=T},regexFilter:V,simpleFilter:Y,get filter(){return G},set filter(T){G=T},get matchCount(){return D},set matchCount(T){D=T},jump:L,get data2(){return I},set data2(T){I=T},makeTree:ne,arrToTree:me,getPath:ye,getPathFromArr:ke,renderLabel:Le,toBottom:Q,reset:ie,onDrop:Oe,getLine:He,moveSection:lo,changeExpandKey:Ze,getNo:Ye,getLevel:Xe,countTree:vo,get NTree(){return sp},get NButton(){return bu},get NInput(){return Su},get NSlider(){return np},get NConfigProvider(){return Vu},get SettingsBackupRestoreRound(){return wp},get ArrowCircleDownRound(){return up},get Icon(){return On},get store(){return j}};return Object.defineProperty(lt,"__isScriptSetup",{enumerable:!1,value:!0}),lt}});var $0={id:"container"},U0={key:0,class:"function-bar"},K0={key:2};function xT(e,o,t,r,a,l){return uo(),Ro("div",$0,[Fo(r.NConfigProvider,{theme:r.theme,"theme-overrides":r.theme===null?r.lightThemeConfig:r.darkThemeConfig},{default:na(()=>[r.store.searchSupport?(uo(),Ro("div",U0,[Fo(r.NButton,{size:"small",circle:"",onClick:r.toBottom,"aria-label":"To Bottom"},{icon:na(()=>[Fo(r.Icon,null,{default:na(()=>[Fo(r.ArrowCircleDownRound,{style:br(r.iconColor)},null,8,["style"])]),_:1})]),_:1}),Fo(r.NButton,{size:"small",circle:"",onClick:r.reset,"aria-label":"Reset"},{icon:na(()=>[Fo(r.Icon,null,{default:na(()=>[Fo(r.SettingsBackupRestoreRound,{style:br(r.iconColor)},null,8,["style"])]),_:1})]),_:1}),Fo(r.NInput,{value:r.pattern,"onUpdate:value":o[0]||(o[0]=n=>r.pattern=n),placeholder:"Input to search",size:"small",clearable:""},null,8,["value"])])):ti("v-if",!0),r.store.levelSwitch?(uo(),yl(r.NSlider,{key:1,value:r.level,"on-update:value":r.switchLevel,marks:r.marks,step:"mark",min:0,max:5,style:{margin:"4px 0"},"format-tooltip":r.formatTooltip},null,8,["value"])):ti("v-if",!0),r.pattern?(uo(),Ro("code",K0,kd(r.matchCount)+" result(s): ",1)):ti("v-if",!0),(uo(),yl(r.NTree,{"block-line":"",pattern:r.pattern,data:r.data2,"on-update:selected-keys":r.jump,"render-label":r.renderMethod,"render-prefix":r.renderPrefix,"node-props":r.setAttrs,"expanded-keys":r.expanded,"render-switcher-icon":r.renderSwitcherIcon,"on-update:expanded-keys":r.expand,key:r.update_tree,filter:r.filter,"show-irrelevant-nodes":!r.store.hideUnsearched,class:ea({ellipsis:r.store.ellipsis}),draggable:r.store.dragModify,onDrop:r.onDrop},null,8,["pattern","data","render-label","node-props","expanded-keys","filter","show-irrelevant-nodes","class","draggable"]))]),_:1},8,["theme","theme-overrides"])])}bd.render=xT;bd.__file="src/Outline.vue";var ST=bd;var il="quiet-outline",Bp=class extends gT.ItemView{constructor(o,t){super(o);this.plugin=t}getViewType(){return il}getDisplayText(){return"Quiet Outline"}getIcon(){return"lines-of-text"}onOpen(){return Ue(this,null,function*(){let o=this.containerEl.children[1];o.empty();let t=o.createEl("div",{cls:"quiet-outline"});this.vueApp=yc(ST),this.vueApp.config.globalProperties.plugin=this.plugin,this.vueApp.config.globalProperties.container=t,this.vueApp.mount(t)})}onClose(){return Ue(this,null,function*(){})}onunload(){this.vueApp.unmount()}};function wT(e,o){return Ue(this,null,function*(){return yield e.internalPlugins.plugins.canvas._children[0].parseText(o)})}var G0=5;function q0(e,o){let t=0,r=0,a=[];for(;td.length-s.length),i[0].type=="add"&&i[1].type=="remove"&&i[0].length===i[1].length?i[1]:i[0]}function TT(e,o,t){let r=o.slice(t),a=r.findIndex(l=>l.heading===e.heading&&l.level===e.level);return a=a<0?r.length:a,a}function Z0(e,o,t,r){let a=Math.min(e.length-t-1,o.length-r-1,G0);for(let l=1;a>0&&l<=a;l++)if(e[t+l].heading===o[r+l].heading&&e[t+l].level===o[r+l].level)return l;return Number.MAX_VALUE}function RT(e,o){let t=q0(e,o),r={offsetModifies:[],removes:[],adds:[],modifies:[]},a=0;return t.forEach(l=>{switch(l.type){case"add":{r.adds.push({begin:a+l.begin}),a+=l.length,r.offsetModifies.push({begin:l.begin,offset:a});break}case"remove":{a-=l.length,r.offsetModifies.push({begin:l.begin+l.length,offset:a}),r.removes.push({begin:l.begin,length:l.length});break}case"modify":{if(!l.levelChange||l.levelChangeType==="child2child")break;r.modifies.push({oldBegin:l.begin,newBegin:l.begin+a,levelChangeType:l.levelChangeType});break}}}),r}function Ep(e,o,t){let r=-1;return()=>{e(),window.clearTimeout(r),r=window.setTimeout(t,o)}}var jo=Jr(require("obsidian"));var OT={"Settings for Quiet Outline.":"Quiet Outline \u7684\u8BBE\u7F6E\u9875\u9762","Set Primary Color":"\u8BBE\u7F6E\u4E3B\u989C\u8272 \u660E/\u6697","Patch default color":"\u7528\u8BBE\u7F6E\u8986\u76D6\u9ED8\u8BA4\u4E3B\u989C\u8272","Set Rainbow Line Color":"\u8BBE\u7F6E\u5F69\u8679\u5927\u7EB2\u7EBF\u989C\u8272","Render Markdown":"\u6E32\u67D3markdown\u5143\u7D20","Render heading string as markdown format.":"\u4EE5markdown\u683C\u5F0F\u6E32\u67D3\u6807\u9898\u6587\u672C","Search Support":"\u5F00\u542F\u641C\u7D22","Add a searching area on the top":"\u5728\u9876\u90E8\u6DFB\u52A0\u4E00\u4E2A\u641C\u7D22\u6846","Level Switch":"\u5C42\u7EA7\u5207\u6362\u5668","Expand headings to certain level.":"\u5C55\u5F00\u6807\u9898\u5230\u7279\u5B9A\u5C42\u7EA7","Default Level":"\u9ED8\u8BA4\u5C42\u7EA7","Default expand level when opening a new note.":"\u6253\u5F00\u65B0\u7B14\u8BB0\u65F6\uFF0C\u6807\u9898\u5C55\u5F00\u5230\u7684\u9ED8\u8BA4\u5C42\u7EA7","No expand":"\u4E0D\u5C55\u5F00","Hide Unsearched":"\u8FC7\u6EE4\u672A\u641C\u7D22\u7684\u6807\u9898","Hide irrelevant headings when searching":"\u641C\u7D22\u65F6\uFF0C\u9690\u85CF\u672A\u547D\u4E2D\u7684\u6807\u9898","Regex Search":"\u6B63\u5219\u641C\u7D22","Search headings using regular expression":"\u652F\u6301\u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F\u6765\u641C\u7D22","Auto Expand":"\u81EA\u52A8\u5C55\u5F00","Auto expand and collapse headings when scrolling and cursor position change":"\u5F53\u6EDA\u52A8\u9875\u9762\u65F6\uFF0C\u81EA\u52A8\u8DDF\u8E2A\u5F53\u524D\u6240\u5728\u6807\u9898\u5E76\u5C55\u5F00","Only Expand":"\u4EC5\u5C55\u5F00\u5F53\u524D\u6807\u9898","Expand and Collapse Rest":"\u5C55\u5F00\u540C\u65F6\u6298\u53E0\u5269\u4F59\u6807\u9898","Expand and Collapse Rest to Default":"\u5C55\u5F00\u540C\u65F6\u6298\u53E0\u5269\u4F59\u6807\u9898\u81F3\u9ED8\u8BA4\u5C42\u7EA7","Expand and Collapse Rest to Setting Level (Level Switch)":"\u5C55\u5F00\u540C\u65F6\u6298\u53E0\u5269\u4F59\u6807\u9898\u81F3\u8BBE\u7F6E\u5C42\u7EA7(\u5C42\u7EA7\u5207\u6362\u5668)",Disabled:"\u5173\u95ED\u81EA\u52A8\u5C55\u5F00","Locate By Cursor":"\u5B9A\u4F4D\u5230\u5149\u6807\u5904","Highlight and Auto expand postion will be determined by cursor position":"\u9AD8\u4EAE\u548C\u81EA\u52A8\u5C55\u5F00\u4F4D\u7F6E\u5C06\u7531\u5149\u6807\u4F4D\u7F6E\u51B3\u5B9A","Show Popover on hover":"\u9F20\u6807\u60AC\u505C\u5728\u6807\u9898\u65F6\u663E\u793A\u7B14\u8BB0\u5185\u5BB9","Press functional key and move cursor to heading":"\u6309\u4F4F\u529F\u80FD\u952E\uFF0C\u79FB\u52A8\u5149\u6807\u5230\u6807\u9898\u5904",Disable:"\u5173\u95ED",Ellipsis:"\u7701\u7565\u957F\u6807\u9898","Tooltip direction":"\u5B8C\u6574\u6807\u9898\u663E\u793A\u65B9\u5411","Keep one line per heading":"\u4FDD\u6301\u6807\u9898\u53EA\u6709\u4E00\u884C,\u7701\u7565\u591A\u4F59\u90E8\u5206","Remember States":"\u8BB0\u5FC6\u5C55\u5F00\u72B6\u6001","Remember expanded/collapsed state of headings of opened notes":"\u8BB0\u5FC6\u5DF2\u6253\u5F00\u7B14\u8BB0\u7684\u6807\u9898\u5C55\u5F00\u72B6\u6001","Drag headings to modify note":"\u542F\u7528\u62D6\u62FD\u6807\u9898\u6765\u8C03\u6574\u6587\u6863\u7ED3\u679C","\u2757 This will modify note content, be careful.":"\u2757 \u62D6\u62FD\u64CD\u4F5C\u4F1A\u6539\u53D8\u6587\u6863\u5185\u5BB9\uFF0C\u5C0F\u5FC3\u4F7F\u7528","Export Format":"\u6807\u9898\u8F93\u51FA\u683C\u5F0F"};var Lp={"Settings for Quiet Outline.":"Settings for Quiet Outline.","Set Primary Color":"Set Primary Color Light/Dark","Patch default color":"Patch default color","Set Rainbow Line Color":"Set Rainbow Line Color","Render Markdown":"Render Markdown","Render heading string as markdown format.":"Render heading string as markdown format","Search Support":"Search Support","Add a searching area on the top":"Add a search area on the top","Level Switch":"Level Switch","Expand headings to certain level.":"Expand headings to certain level","Default Level":"Default Level","Default expand level when opening a new note.":"Default expand level","No expand":"No expand","Hide Unsearched":"Hide Unsearched","Hide irrelevant headings when searching":"Hide irrelevant headings when searching","Regex Search":"Regex Search","Search headings using regular expression":"Search headings using regular expression","Auto Expand":"Auto Expand","Auto expand and collapse headings when scrolling and cursor position change":"Auto expand and collapse headings when scrolling and cursor position change","Only Expand":"Only Expand","Expand and Collapse Rest":"Expand and Collapse Rest","Expand and Collapse Rest to Default":"Expand and Collapse Rest to Default","Expand and Collapse Rest to Setting Level (Level Switch)":"Expand and Collapse Rest to Setting Level (Level Switch)",Disabled:"Disabled","Locate By Cursor":"Locate By Cursor","Show Popover on hover":"Show Popover on hover","Press functional key and move cursor to heading":"Press functional key and move cursor to heading",Disable:"Disable","Highlight and Auto expand postion will be determined by cursor position":"Highlight and Auto expand postion will be determined by cursor position",Ellipsis:"Ellipsis","Tooltip direction":"Tooltip direction","Keep one line per heading":"Keep one line per heading","Remember States":"Remember States","Remember expanded/collapsed state of headings of opened notes":"Remember expanded/collapsed state of headings of opened notes","Drag headings to modify note":"Drag headings to modify note","\u2757 This will modify note content, be careful.":"\u2757 This will modify note content, be careful","Export Format":"Export Format"};var FT={"Settings for Quiet Outline.":"Quiet Outline \u7684\u8A2D\u5B9A\u9801\u9762","Render Markdown":"\u6E32\u67D3markdown\u5143\u7D20","Render heading string as markdown format.":"\u4EE5markdown\u683C\u5F0F\u6E32\u67D3\u6A19\u984C\u6587\u5B57","Search Support":"\u958B\u555F\u641C\u7D22","Add a searching area on the top":"\u5728\u9802\u90E8\u65B0\u589E\u4E00\u500B\u641C\u7D22\u6846","Level Switch":"\u5C64\u7D1A\u5207\u63DB","Expand headings to certain level.":"\u5C55\u958B\u6A19\u984C\u5230\u7279\u5B9A\u5C64\u7D1A","Default Level":"\u9810\u8A2D\u5C64\u7D1A","Default expand level when opening a new note.":"\u6253\u958B\u65B0\u7B46\u8A18\u6642\uFF0C\u6A19\u984C\u5C55\u958B\u5230\u7684\u9810\u8A2D\u5C64\u7D1A","No expand":"\u4E0D\u5C55\u958B","Hide Unsearched":"\u904E\u6FFE\u672A\u641C\u7D22\u7684\u6A19\u984C","Hide irrelevant headings when searching":"\u641C\u7D22\u6642\uFF0C\u96B1\u85CF\u672A\u547D\u4E2D\u7684\u6A19\u984C","Regex Search":"\u6B63\u5247\u641C\u7D22","Search headings using regular expression":"\u652F\u63F4\u4F7F\u7528\u6B63\u5247\u904B\u7B97\u5F0F\u4F86\u641C\u7D22","Auto Expand":"\u81EA\u52D5\u5C55\u958B","Auto expand and collapse headings when scrolling and cursor position change":"\u7576\u6372\u52D5\u9801\u9762\u6216\u5149\u6A19\u6539\u8B8A\u6642\uFF0C\u81EA\u52D5\u8DDF\u96A8\u76EE\u524D\u6240\u5728\u6A19\u984C\u4E26\u5C55\u958B",Ellipsis:"\u7701\u7565\u9577\u6A19\u984C","Keep one line per heading":"\u4FDD\u6301\u6A19\u984C\u53EA\u6709\u4E00\u884C\uFF0C\u7701\u7565\u591A\u9918\u90E8\u5206"};var Y0={en:Lp,zh:OT,"zh-TW":FT},X0=window.localStorage.getItem("language"),CT=Y0[X0||"en"];function Je(e){return CT&&CT[e]||Lp[e]}var bT={patch_color:!0,primary_color_light:"#18a058",primary_color_dark:"#63e2b7",rainbow_line:!1,rainbow_color_1:"#FD8B1F",rainbow_color_2:"#FFDF00",rainbow_color_3:"#07EB23",rainbow_color_4:"#2D8FF0",rainbow_color_5:"#BC01E2",search_support:!0,level_switch:!0,markdown:!0,expand_level:"0",hide_unsearched:!0,auto_expand_ext:"only-expand",regex_search:!1,ellipsis:!1,label_direction:"left",drag_modify:!1,locate_by_cursor:!1,show_popover_key:"ctrlKey",remember_state:!0,export_format:"{title}"},Np=class extends jo.PluginSettingTab{constructor(o,t){super(o,t);this.plugin=t}display(){let{containerEl:o}=this;o.empty(),o.createEl("h2",{text:Je("Settings for Quiet Outline.")}),new jo.Setting(o).setName(Je("Set Primary Color")).addToggle(t=>t.setTooltip(Je("Patch default color")).setValue(this.plugin.settings.patch_color).onChange(r=>Ue(this,null,function*(){this.plugin.settings.patch_color=r,j.patchColor=r,this.plugin.saveSettings()}))).addColorPicker(t=>t.setValue(this.plugin.settings.primary_color_light).onChange(r=>Ue(this,null,function*(){this.plugin.settings.primary_color_light=r,j.primaryColorLight=r,this.plugin.saveSettings()}))).addColorPicker(t=>t.setValue(this.plugin.settings.primary_color_dark).onChange(r=>Ue(this,null,function*(){this.plugin.settings.primary_color_dark=r,j.primaryColorDark=r,this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Set Rainbow Line Color")).addToggle(t=>t.setTooltip(Je("Patch default color")).setValue(this.plugin.settings.rainbow_line).onChange(r=>Ue(this,null,function*(){this.plugin.settings.rainbow_line=r,j.rainbowLine=r,this.plugin.saveSettings()}))).addColorPicker(t=>t.setValue(this.plugin.settings.rainbow_color_1).onChange(r=>Ue(this,null,function*(){this.plugin.settings.rainbow_color_1=r,j.rainbowColor1=r,this.plugin.saveSettings()}))).addColorPicker(t=>t.setValue(this.plugin.settings.rainbow_color_2).onChange(r=>Ue(this,null,function*(){this.plugin.settings.rainbow_color_2=r,j.rainbowColor2=r,this.plugin.saveSettings()}))).addColorPicker(t=>t.setValue(this.plugin.settings.rainbow_color_3).onChange(r=>Ue(this,null,function*(){this.plugin.settings.rainbow_color_3=r,j.rainbowColor3=r,this.plugin.saveSettings()}))).addColorPicker(t=>t.setValue(this.plugin.settings.rainbow_color_4).onChange(r=>Ue(this,null,function*(){this.plugin.settings.rainbow_color_4=r,j.rainbowColor4=r,this.plugin.saveSettings()}))).addColorPicker(t=>t.setValue(this.plugin.settings.rainbow_color_5).onChange(r=>Ue(this,null,function*(){this.plugin.settings.rainbow_color_5=r,j.rainbowColor5=r,this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Render Markdown")).setDesc(Je("Render heading string as markdown format.")).addToggle(t=>t.setValue(this.plugin.settings.markdown).onChange(r=>Ue(this,null,function*(){this.plugin.settings.markdown=r,j.markdown=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Ellipsis")).setDesc(Je("Keep one line per heading")).addToggle(t=>t.setValue(this.plugin.settings.ellipsis).onChange(r=>Ue(this,null,function*(){this.plugin.settings.ellipsis=r,j.ellipsis=r,yield this.plugin.saveSettings(),j.refreshTree(),this.display()}))),this.plugin.settings.ellipsis&&new jo.Setting(o).setName(Je("Tooltip direction")).addDropdown(t=>t.addOption("left","Left").addOption("right","Right").addOption("top","Top").addOption("bottom","Bottom").setValue(this.plugin.settings.label_direction).onChange(r=>Ue(this,null,function*(){this.plugin.settings.label_direction=r,j.labelDirection=r,yield this.plugin.saveSettings(),j.refreshTree()}))),new jo.Setting(o).setName(Je("Search Support")).setDesc(Je("Add a searching area on the top")).addToggle(t=>t.setValue(this.plugin.settings.search_support).onChange(r=>Ue(this,null,function*(){this.plugin.settings.search_support=r,j.searchSupport=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Level Switch")).setDesc(Je("Expand headings to certain level.")).addToggle(t=>t.setValue(this.plugin.settings.level_switch).onChange(r=>Ue(this,null,function*(){this.plugin.settings.level_switch=r,j.levelSwitch=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Default Level")).setDesc(Je("Default expand level when opening a new note.")).addDropdown(t=>t.addOption("0",Je("No expand")).addOption("1","H1").addOption("2","H2").addOption("3","H3").addOption("4","H4").addOption("5","H5").setValue(this.plugin.settings.expand_level).onChange(r=>Ue(this,null,function*(){this.plugin.settings.expand_level=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Hide Unsearched")).setDesc(Je("Hide irrelevant headings when searching")).addToggle(t=>t.setValue(this.plugin.settings.hide_unsearched).onChange(r=>Ue(this,null,function*(){this.plugin.settings.hide_unsearched=r,j.hideUnsearched=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Regex Search")).setDesc(Je("Search headings using regular expression")).addToggle(t=>t.setValue(this.plugin.settings.regex_search).onChange(r=>Ue(this,null,function*(){this.plugin.settings.regex_search=r,j.regexSearch=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Auto Expand")).setDesc(Je("Auto expand and collapse headings when scrolling and cursor position change")).addDropdown(t=>t.addOption("only-expand",Je("Only Expand")).addOption("expand-and-collapse-rest-to-default",Je("Expand and Collapse Rest to Default")).addOption("expand-and-collapse-rest-to-setting",Je("Expand and Collapse Rest to Setting Level (Level Switch)")).addOption("disable",Je("Disabled")).setValue(this.plugin.settings.auto_expand_ext).onChange(r=>Ue(this,null,function*(){this.plugin.settings.auto_expand_ext=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Locate By Cursor")).setDesc(Je("Highlight and Auto expand postion will be determined by cursor position")).addToggle(t=>t.setValue(this.plugin.settings.locate_by_cursor).onChange(r=>Ue(this,null,function*(){this.plugin.settings.locate_by_cursor=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Show Popover on hover")).setDesc(Je("Press functional key and move cursor to heading")).addDropdown(t=>t.addOption("ctrlKey","Ctrl").addOption("altKey","Alt").addOption("metaKey","Meta").addOption("disable",Je("Disable")).setValue(this.plugin.settings.show_popover_key).onChange(r=>Ue(this,null,function*(){this.plugin.settings.show_popover_key=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Remember States")).setDesc(Je("Remember expanded/collapsed state of headings of opened notes")).addToggle(t=>t.setValue(this.plugin.settings.remember_state).onChange(r=>Ue(this,null,function*(){this.plugin.settings.remember_state=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Drag headings to modify note")).setDesc(Je("\u2757 This will modify note content, be careful.")).addToggle(t=>t.setValue(this.plugin.settings.drag_modify).onChange(r=>Ue(this,null,function*(){this.plugin.settings.drag_modify=r,j.dragModify=r,yield this.plugin.saveSettings()}))),new jo.Setting(o).setName(Je("Export Format")).addText(t=>t.setValue(this.plugin.settings.export_format).onChange(r=>Ue(this,null,function*(){this.plugin.settings.export_format=r,yield this.plugin.saveSettings()})).inputEl.setAttribute("style","width: 100%;"))}};var yT=Jr(require("@codemirror/view")),vT=class{constructor(o){}update(o){o.selectionSet&&document.dispatchEvent(new CustomEvent("quiet-outline-cursorchange",{detail:{docChanged:o.docChanged}}))}destroy(){}},kT=yT.ViewPlugin.fromClass(vT);function AT(e,o){let t=Object.keys(o).map(r=>J0(e,r,o[r]));return t.length===1?t[0]:function(){t.forEach(r=>r())}}function J0(e,o,t){let r=e[o],a=e.hasOwnProperty(o),l=a?r:function(){return Object.getPrototypeOf(e)[o].apply(this,arguments)},n=t(l);return r&&Object.setPrototypeOf(n,r),Object.setPrototypeOf(i,n),e[o]=i,d;function i(...s){return n===l&&e[o]===i&&d(),n.apply(this,s)}function d(){e[o]===i&&(a?e[o]=l:delete e[o]),n!==l&&(n=l,Object.setPrototypeOf(i,r||Function))}}var _p=class extends pr.Plugin{constructor(){super(...arguments);this.heading_states={};this.klasses={};this.allow_scroll=!0;this.allow_cursor_change=!0;this.refresh_outline=o=>Ue(this,null,function*(){let t=this.current_note,r=this.current_view_type;if(r==="markdown"||r==="kanban"||r==="embed-markdown-file"){let a=t.file,l=this.app.metadataCache.getFileCache(a);if(l&&l.headings){o==="file-modify"&&(j.modifyKeys=RT(j.headers,l.headings)),j.headers=l.headings;return}}else if(r==="canvas"){let a=t.canvas.data.nodes;if(a){j.headers=rM(a);return}}else if(r==="embed-markdown-text"){let{headings:a}=yield wT(this.app,t.text);j.headers=a;return}j.headers=[]})}onload(){return Ue(this,null,function*(){yield this.loadSettings(),this.initStore(),this.registerView(il,o=>new Bp(o,this)),this.registerListener(),this.registerCommand(),this.addSettingTab(new Np(this.app,this)),this.registerExt(),(yield this.firstTimeInstall())&&this.activateView(),this.block_scroll=Ep(()=>{this.allow_scroll=!1},300,()=>{this.allow_scroll=!0}),this.block_cursor_change=Ep(()=>{this.allow_cursor_change=!1},300,()=>{this.allow_cursor_change=!0})})}firstTimeInstall(){return Ue(this,null,function*(){return!(yield this.app.vault.adapter.exists(this.manifest.dir+"/data.json"))})}initStore(){j.headers=[],j.dark=document.body.hasClass("theme-dark"),j.markdown=this.settings.markdown,j.ellipsis=this.settings.ellipsis,j.labelDirection=this.settings.label_direction,j.leafChange=!1,j.searchSupport=this.settings.search_support,j.levelSwitch=this.settings.level_switch,j.hideUnsearched=this.settings.hide_unsearched,j.regexSearch=this.settings.regex_search,j.dragModify=this.settings.drag_modify,j.patchColor=this.settings.patch_color,j.primaryColorLight=this.settings.primary_color_light,j.primaryColorDark=this.settings.primary_color_dark,j.rainbowLine=this.settings.rainbow_line,j.rainbowColor1=this.settings.rainbow_color_1,j.rainbowColor2=this.settings.rainbow_color_2,j.rainbowColor3=this.settings.rainbow_color_3,j.rainbowColor4=this.settings.rainbow_color_4,j.rainbowColor5=this.settings.rainbow_color_5}patchCanvas(o){let t=this;this.register(AT(o.constructor.prototype,{requestSave(r){return function(...a){return t.app.workspace.trigger("quiet-outline:canvas-change"),r.apply(this,a)}},updateSelection(r){return function(...a){r.apply(this,a),t.app.workspace.trigger("quiet-outline:canvas-selection-change",this.selection)}}}))}registerListener(){this.registerEvent(this.app.workspace.on("css-change",()=>{j.dark=document.body.hasClass("theme-dark"),j.cssChange=!j.cssChange})),this.registerEvent(this.app.workspace.on("layout-change",()=>{let t=this.app.workspace.getLeavesOfType("markdown"),r={};t.forEach(a=>{if(a.view.file===void 0)return;let l=a.view.file.path;this.heading_states[l]&&(r[l]=this.heading_states[l])}),this.heading_states=r}));let o=(0,pr.debounce)(this.refresh_outline,300,!0);this.registerEvent(this.app.metadataCache.on("changed",(t,r,a)=>{o("file-modify")})),this.registerEvent(this.app.workspace.on("quiet-outline:canvas-change",()=>{o()})),this.registerEvent(this.app.workspace.on("quiet-outline:canvas-selection-change",t=>{if(t.size===0||t.size>1){let l=this.app.workspace.getActiveFileView();if(!l)return;this.changeCurrentView(l,l.getViewType());return}let r=[...t][0];if(!r.hasOwnProperty("nodeEl"))return;let a=r;if(a.unknownData.type==="file"&&a.file.extension==="md"){let l=a.child;this.changeCurrentView(l,"embed-markdown-file");return}if(a.unknownData.type==="text"){let l=a.child;this.changeCurrentView(l,"embed-markdown-text");return}})),this.registerEvent(this.app.workspace.on("active-leaf-change",t=>Ue(this,null,function*(){let r=this.app.workspace.getActiveFileView();!r||r!==t.view||(this.block_cursor_change(),this.changeCurrentView(r,r.getViewType()))})))}changeCurrentView(o,t){return Ue(this,null,function*(){var l;switch(t){case"markdown":{j.jumpBy=eM;break}case"kanban":{j.jumpBy=oM;break}case"canvas":{this.klasses.canvas||(this.patchCanvas(o.canvas),this.klasses.canvas=o.constructor),j.jumpBy=tM;break}case"embed-markdown-file":case"embed-markdown-text":{j.jumpBy=dM;break}default:{j.jumpBy=Pp;break}}let r=(l=o.file)==null?void 0:l.path;if(!this.current_note){this.current_note=o,this.current_file=r,this.current_view_type=t,yield this.refresh_outline(),j.refreshTree();return}r===this.current_file||j.refreshTree(),this.current_note=o,this.current_file=r,this.current_view_type=t,this.refresh_outline()})}registerCommand(){this.addCommand({id:"quiet-outline",name:"Quiet Outline",callback:()=>{this.activateView()}}),this.addCommand({id:"quiet-outline-reset",name:"Reset expanding level",callback:()=>{dispatchEvent(new CustomEvent("quiet-outline-reset"))}}),this.addCommand({id:"quiet-outline-focus-input",name:"Focus on input",callback:()=>{let o=document.querySelector("input.n-input__input-el");o&&o.focus()}}),this.addCommand({id:"quiet-outline-copy-as-text",name:"Copy Current Headings As Text",callback:()=>Ue(this,null,function*(){function o(i,d){return Array(i.length+d.length).fill("").map((s,u)=>u%2==0?i[u/2]:d[(u-1)/2])}let t=this.settings.export_format.split(/\{.*?\}/),r=this.settings.export_format.match(/(?<={)(.*?)(?=})/g)||[];function a(i){let d=l[i.level-1],s=r.map(u=>{switch(u){case"title":return i.heading;case"path":return"#"+i.heading.replace(/ /g,"%20");case"bullet":return"-";case"num":return d.toString();case"num-nest":return d.toString()}let f=u.match(/num-nest\[(.*?)\]/);if(f){let m=f[1];return l.slice(0,i.level).join(m)}return""});return o(t,s).join("")}let l=[0,0,0,0,0,0],n=[];j.headers.forEach(i=>{l.forEach((s,u)=>{u>i.level-1&&(l[u]=0)}),l[i.level-1]++;let d=" ".repeat(i.level-1)+a(i);n.push(d)}),yield navigator.clipboard.writeText(n.join(` -`)),new pr.Notice("Headings copied")})}),this.addCommand({id:"inc-level",name:"Increase Level",callback:()=>{dispatchEvent(new CustomEvent("quiet-outline-levelchange",{detail:{level:"inc"}}))}}),this.addCommand({id:"dec-level",name:"Decrease Level",callback:()=>{dispatchEvent(new CustomEvent("quiet-outline-levelchange",{detail:{level:"dec"}}))}}),this.addCommand({id:"prev-heading",name:"To previous heading",callback:()=>{if(this.current_view_type!="markdown")return;let t=this.current_note.editor.getCursor().line,r=j.headers.findLastIndex(a=>a.position.start.line{if(this.current_view_type!="markdown")return;let t=this.current_note.editor.getCursor().line,r=j.headers.findIndex(a=>a.position.start.line>t);r!=-1&&j.jumpBy(this,r)}})}registerExt(){this.registerEditorExtension([kT])}onunload(){}loadSettings(){return Ue(this,null,function*(){this.settings=Object.assign({},bT,yield this.loadData())})}saveSettings(){return Ue(this,null,function*(){yield this.saveData(this.settings)})}activateView(){return Ue(this,null,function*(){this.app.workspace.rightSplit!==null&&(this.app.workspace.getLeavesOfType(il).length===0&&(yield this.app.workspace.getRightLeaf(!1).setViewState({type:il,active:!0})),this.app.workspace.revealLeaf(this.app.workspace.getLeavesOfType(il)[0]))})}};function Pp(e,o){}function eM(e,o){let t=j.headers[o].position.start.line,r=e.current_note;if(r){let l={line:t,cursor:{from:{line:t,ch:0},to:{line:t,ch:0}}};e.jumping=!0,j.onPosChange(!1,r.getMode()=="source",o),setTimeout(()=>{r.setEphemeralState(l)})}}function oM(e,o){var r;(r=document.querySelectorAll('.workspace-leaf[style=""] .kanban-plugin__lane-wrapper')[o])==null||r.scrollIntoView({block:"center",inline:"center",behavior:"smooth"})}function tM(e,o){let t=e.current_note;if(!(t instanceof pr.FileView)||t.getViewType()!=="canvas")throw new Error("Not in canvas view");let a=e.current_note.canvas.nodes.get(j.headers[o].id);a!==void 0&&e.current_note.canvas.zoomToBbox(a.bbox)}function rM(e){let o=e.slice().sort((a,l)=>-lM(a,l)),t=[];for(let a=0;a{r.push({level:l,heading:nM(a),id:a.id,icon:aM(a),position:{start:{line:0,col:0,offset:0},end:{line:0,col:0,offset:0}}})}),r}function aM(e){if(e.type==="group")return"CategoryOutlined";if(e.type==="text")return"TextFieldsOutlined";if(e.type==="link")return"PublicOutlined";if(e.type==="file"){if(e.file.endsWith(".md"))return"ArticleOutlined";if(e.file.endsWith(".mp3"))return"AudiotrackOutlined";if(e.file.endsWith(".mp4"))return"OndemandVideoOutlined";if(e.file.endsWith(".png")||e.file.endsWith(".jpg"))return"ImageOutlined"}return"FilePresentOutlined"}var DT=e=>e.height*e.width;function lM(e,o){return DT(e)-DT(o)}var Ip={};function nM(e){let o;switch(e.type){case"text":{o=e.text.split(` -`)[0],o=o.slice(o.search(/[^#\s].*/)),o.length>20&&(o=o.substring(0,20)+"...");break}case"file":{o=e.file.split("/").slice(-1)[0];break}case"link":{Ip[e.url]?o=Ip[e.url]:(o=e.url,(0,pr.request)(e.url).then(t=>{Ip[e.url]=/(.*)<\/title>/.exec(t)[1]}).catch(()=>{}));break}case"group":{o=e.label;break}}return o}function PT(e,o,t){for(let r=0;r<e.length;r++)t(e[r].node,o),PT(e[r].children,o+1,t)}function MT(e,o){let t=!1;for(let r=0;r<e.length;r++)e[r].node.type==="group"&&iM(o,e[r].node)&&(t=!0,MT(e[r].children,o));t||e.push({node:o,children:[]})}function iM(e,o){return e.x>=o.x&&e.y>=o.y&&e.x+e.width<=o.x+o.width&&e.y+e.height<=o.y+o.height}function dM(e,o){let t=e.current_note,r=j.headers[o].position.start.line;Mp(t,{line:r})}function Mp(e,o){e.getMode()==="source"?sM(e.editMode.editor,o.line):uM(e.previewMode.renderer,o.line)}function sM(e,o){let t={from:{line:o,ch:0},to:{line:o,ch:e.getLine(o).length}};e.addHighlights([t],"is-flashing",!0,!0),e.setCursor(t.from),e.scrollIntoView(t,!0)}function uM(e,o){e.applyScroll(o,{highlight:!0,center:!0})}var fM=_p; -/** - * @license - * Lodash (Custom Build) <https://lodash.com/> - * Build: `lodash modularize exports="es" -o ./` - * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> - * Released under MIT license <https://lodash.com/license> - * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ +`+t+`</thead> +`+o+`</table> +`}tablerow(t){return`<tr> +`+t+`</tr> +`}tablecell(t,o){let r=o.header?"th":"td";return(o.align?"<"+r+' align="'+o.align+'">':"<"+r+">")+t+"</"+r+`> +`}strong(t){return"<strong>"+t+"</strong>"}em(t){return"<em>"+t+"</em>"}codespan(t){return"<code>"+t+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(t){return"<del>"+t+"</del>"}link(t,o,r){if(t=T0(this.options.sanitize,this.options.baseUrl,t),t===null)return r;let n='<a href="'+$t(t)+'"';return o&&(n+=' title="'+o+'"'),n+=">"+r+"</a>",n}image(t,o,r){if(t=T0(this.options.sanitize,this.options.baseUrl,t),t===null)return r;let n='<img src="'+t+'" alt="'+r+'"';return o&&(n+=' title="'+o+'"'),n+=this.options.xhtml?"/>":">",n}text(t){return t}},Ss=class{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,o,r){return""+r}image(t,o,r){return""+r}br(){return""}},_s=class{constructor(){this.seen={}}serialize(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(t,o){let r=t,n=0;if(this.seen.hasOwnProperty(r)){n=this.seen[t];do n++,r=t+"-"+n;while(this.seen.hasOwnProperty(r))}return o||(this.seen[t]=n,this.seen[r]=0),r}slug(t,o={}){let r=this.serialize(t);return this.getNextSafeSlug(r,o.dryrun)}},Mo=class{constructor(t){this.options=t||ti,this.options.renderer=this.options.renderer||new Sa,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Ss,this.slugger=new _s}static parse(t,o){return new Mo(o).parse(t)}static parseInline(t,o){return new Mo(o).parseInline(t)}parse(t,o=!0){let r="",n,i,a,l,s,c,d,u,p,f,m,y,w,g,O,j,S,v,D,x=t.length;for(n=0;n<x;n++){if(f=t[n],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[f.type]&&(D=this.options.extensions.renderers[f.type].call({parser:this},f),D!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(f.type))){r+=D||"";continue}switch(f.type){case"space":continue;case"hr":{r+=this.renderer.hr();continue}case"heading":{r+=this.renderer.heading(this.parseInline(f.tokens),f.depth,A0(this.parseInline(f.tokens,this.textRenderer)),this.slugger);continue}case"code":{r+=this.renderer.code(f.text,f.lang,f.escaped);continue}case"table":{for(u="",d="",l=f.header.length,i=0;i<l;i++)d+=this.renderer.tablecell(this.parseInline(f.header[i].tokens),{header:!0,align:f.align[i]});for(u+=this.renderer.tablerow(d),p="",l=f.rows.length,i=0;i<l;i++){for(c=f.rows[i],d="",s=c.length,a=0;a<s;a++)d+=this.renderer.tablecell(this.parseInline(c[a].tokens),{header:!1,align:f.align[a]});p+=this.renderer.tablerow(d)}r+=this.renderer.table(u,p);continue}case"blockquote":{p=this.parse(f.tokens),r+=this.renderer.blockquote(p);continue}case"list":{for(m=f.ordered,y=f.start,w=f.loose,l=f.items.length,p="",i=0;i<l;i++)O=f.items[i],j=O.checked,S=O.task,g="",O.task&&(v=this.renderer.checkbox(j),w?O.tokens.length>0&&O.tokens[0].type==="paragraph"?(O.tokens[0].text=v+" "+O.tokens[0].text,O.tokens[0].tokens&&O.tokens[0].tokens.length>0&&O.tokens[0].tokens[0].type==="text"&&(O.tokens[0].tokens[0].text=v+" "+O.tokens[0].tokens[0].text)):O.tokens.unshift({type:"text",text:v}):g+=v),g+=this.parse(O.tokens,w),p+=this.renderer.listitem(g,S,j);r+=this.renderer.list(p,m,y);continue}case"html":{r+=this.renderer.html(f.text);continue}case"paragraph":{r+=this.renderer.paragraph(this.parseInline(f.tokens));continue}case"text":{for(p=f.tokens?this.parseInline(f.tokens):f.text;n+1<x&&t[n+1].type==="text";)f=t[++n],p+=` +`+(f.tokens?this.parseInline(f.tokens):f.text);r+=o?this.renderer.paragraph(p):p;continue}default:{let k='Token with "'+f.type+'" type was not found.';if(this.options.silent){console.error(k);return}else throw new Error(k)}}}return r}parseInline(t,o){o=o||this.renderer;let r="",n,i,a,l=t.length;for(n=0;n<l;n++){if(i=t[n],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]&&(a=this.options.extensions.renderers[i.type].call({parser:this},i),a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type))){r+=a||"";continue}switch(i.type){case"escape":{r+=o.text(i.text);break}case"html":{r+=o.html(i.text);break}case"link":{r+=o.link(i.href,i.title,this.parseInline(i.tokens,o));break}case"image":{r+=o.image(i.href,i.title,i.text);break}case"strong":{r+=o.strong(this.parseInline(i.tokens,o));break}case"em":{r+=o.em(this.parseInline(i.tokens,o));break}case"codespan":{r+=o.codespan(i.text);break}case"br":{r+=o.br();break}case"del":{r+=o.del(this.parseInline(i.tokens,o));break}case"text":{r+=o.text(i.text);break}default:{let s='Token with "'+i.type+'" type was not found.';if(this.options.silent){console.error(s);return}else throw new Error(s)}}}return r}};function De(e,t,o){if(typeof e>"u"||e===null)throw new Error("marked(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(typeof t=="function"&&(o=t,t=null),t=$o({},De.defaults,t||{}),M0(t),o){let r=t.highlight,n;try{n=Ao.lex(e,t)}catch(l){return o(l)}let i=function(l){let s;if(!l)try{t.walkTokens&&De.walkTokens(n,t.walkTokens),s=Mo.parse(n,t)}catch(c){l=c}return t.highlight=r,l?o(l):o(null,s)};if(!r||r.length<3||(delete t.highlight,!n.length))return i();let a=0;De.walkTokens(n,function(l){l.type==="code"&&(a++,setTimeout(()=>{r(l.text,l.lang,function(s,c){if(s)return i(s);c!=null&&c!==l.text&&(l.text=c,l.escaped=!0),a--,a===0&&i()})},0))}),a===0&&i();return}try{let r=Ao.lex(e,t);return t.walkTokens&&De.walkTokens(r,t.walkTokens),Mo.parse(r,t)}catch(r){if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,t.silent)return"<p>An error occurred:</p><pre>"+$t(r.message+"",!0)+"</pre>";throw r}}De.options=De.setOptions=function(e){return $o(De.defaults,e),fP(De.defaults),De};De.getDefaults=I0;De.defaults=ti;De.use=function(...e){let t=$o({},...e),o=De.defaults.extensions||{renderers:{},childTokens:{}},r;e.forEach(n=>{if(n.extensions&&(r=!0,n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if(i.renderer){let a=o.renderers?o.renderers[i.name]:null;a?o.renderers[i.name]=function(...l){let s=i.renderer.apply(this,l);return s===!1&&(s=a.apply(this,l)),s}:o.renderers[i.name]=i.renderer}if(i.tokenizer){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");o[i.level]?o[i.level].unshift(i.tokenizer):o[i.level]=[i.tokenizer],i.start&&(i.level==="block"?o.startBlock?o.startBlock.push(i.start):o.startBlock=[i.start]:i.level==="inline"&&(o.startInline?o.startInline.push(i.start):o.startInline=[i.start]))}i.childTokens&&(o.childTokens[i.name]=i.childTokens)})),n.renderer){let i=De.defaults.renderer||new Sa;for(let a in n.renderer){let l=i[a];i[a]=(...s)=>{let c=n.renderer[a].apply(i,s);return c===!1&&(c=l.apply(i,s)),c}}t.renderer=i}if(n.tokenizer){let i=De.defaults.tokenizer||new ka;for(let a in n.tokenizer){let l=i[a];i[a]=(...s)=>{let c=n.tokenizer[a].apply(i,s);return c===!1&&(c=l.apply(i,s)),c}}t.tokenizer=i}if(n.walkTokens){let i=De.defaults.walkTokens;t.walkTokens=function(a){n.walkTokens.call(this,a),i&&i.call(this,a)}}r&&(t.extensions=o),De.setOptions(t)})};De.walkTokens=function(e,t){for(let o of e)switch(t.call(De,o),o.type){case"table":{for(let r of o.header)De.walkTokens(r.tokens,t);for(let r of o.rows)for(let n of r)De.walkTokens(n.tokens,t);break}case"list":{De.walkTokens(o.items,t);break}default:De.defaults.extensions&&De.defaults.extensions.childTokens&&De.defaults.extensions.childTokens[o.type]?De.defaults.extensions.childTokens[o.type].forEach(function(r){De.walkTokens(o[r],t)}):o.tokens&&De.walkTokens(o.tokens,t)}};De.parseInline=function(e,t){if(typeof e>"u"||e===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");t=$o({},De.defaults,t||{}),M0(t);try{let o=Ao.lexInline(e,t);return t.walkTokens&&De.walkTokens(o,t.walkTokens),Mo.parseInline(o,t)}catch(o){if(o.message+=` +Please report this to https://github.com/markedjs/marked.`,t.silent)return"<p>An error occurred:</p><pre>"+$t(o.message+"",!0)+"</pre>";throw o}};De.Parser=Mo;De.parser=Mo.parse;De.Renderer=Sa;De.TextRenderer=Ss;De.Lexer=Ao;De.lexer=Ao.lex;De.Tokenizer=ka;De.Slugger=_s;De.parse=De;var rie=De.options,nie=De.setOptions,iie=De.use,aie=De.walkTokens,lie=De.parseInline;var sie=Mo.parse,cie=Ao.lex;var K0=require("obsidian");var oi=require("obsidian");var B=Fo({activeView(){this.plugin.activateView(),this.refreshTree()},headers:[],onPosChange:e=>{},dark:!0,cssChange:!1,markdown:!0,ellipsis:!1,labelDirection:"left",leafChange:!1,searchSupport:!0,levelSwitch:!0,hideUnsearched:!0,regexSearch:!1,modifyKeys:{},dragModify:!1,refreshTree(){this.leafChange=!this.leafChange},patchColor:!1,primaryColorLight:"",primaryColorDark:"",rainbowLine:!1,rainbowColor1:"",rainbowColor2:"",rainbowColor3:"",rainbowColor4:"",rainbowColor5:""});var $0={name:"formula",level:"inline",start(e){return e.match(/\$/)?.index||-1},tokenizer(e,t){let r=/^\$([^\$]+)\$/.exec(e);if(r)return{type:"formula",raw:r[0],formula:r[1].trim()}},renderer(e){try{let t=(0,oi.renderMath)(e.formula,!1).outerHTML;return(0,oi.finishRenderMath)(),t}catch{return(0,oi.loadMathJax)().then(()=>{B.refreshTree()}),!1}}},L0={name:"internal",level:"inline",start(e){let t=e.match(/!?\[\[/);return t?t.index:-1},tokenizer(e,t){let r=/^!?\[\[([^\[\]]+?)\]\]/.exec(e);if(r){let n=/.*\|(.*)/.exec(r[1]);return{type:"internal",raw:r[0],internal:n?n[1]:r[1]}}},renderer(e){return`<span class="internal-link">${e.internal}</span>`}},z0={name:"ref",level:"inline",start(e){let t=e.match(/\^|\[/);return t?t.index:-1},tokenizer(e,t){let r=/^(\^[A-Za-z0-9\-]+)|^(\^\[[^\]]*\])|^(\[\^[^\]]*\])/.exec(e);if(r)return{type:"ref",raw:r[0],ref:(r[1]||r[2]||r[3]).trim()}},renderer(e){return""}},B0={name:"highlight",level:"inline",start(e){let t=e.match(/==/);return t?t.index:-1},tokenizer(e,t){let r=/^==([^=]+)==/.exec(e);if(r)return{type:"highlight",raw:r[0],internal:r[1]}},renderer(e){return`<mark>${e.internal}</mark>`}},H0={name:"tag",level:"inline",start(e){let t=e.match(/^#|(?<=\s)#/);return t?t.index:-1},tokenizer(e,t){let r=/^#([^\[\]{}:;'"`~,.<>?|\\!@#$%^&*()=+\d\s][^\[\]{}:;'"`~,.<>?|\\!@#$%^&*()=+\s]*)/.exec(e);if(r)return{type:"tag",raw:r[0],internal:r[1]}},renderer(e){return`<a href="" class="tag" target="_blank" rel="noopener">#${e.internal}</a>`}},V0=e=>{e.type==="link"&&(e.href="javascript:void(0);")},F0={listitem(e,t,o){return`${e}`}},j0={name:"nolist",level:"block",start(e){let t=e.match(/^(\d+[\.)\-+*]|[+\-*]) /);return t?t.index:-1},tokenizer(e,t){let r=/^(([+\-*])|(\d+[\.\-)+*])) (.*)/.exec(e),n;return r&&r[2]?n={type:"nolist",raw:r[0],ordered:!1,marker:r[2],start:"",body:r[4],tokens:[]}:r&&r[3]&&(n={type:"nolist",raw:r[0],ordered:!0,marker:"",start:r[3],body:r[4],tokens:[]}),n&&this.lexer.inline(n.body,n.tokens),n},renderer(e){let t=this.parser.parseInline(e.tokens,null);return e.ordered?`<p>${e.start} ${t}</p>`:`<p>${e.marker} ${t}</p>`}};function W0(e,t,o){tt(()=>{go(e).addEventListener(t,o)}),Pt(()=>{go(e).removeEventListener(t,o)})}var Es=ue({__name:"Outline",setup(e,{expose:t}){t(),Bm(_=>({"61117f8c-rainbowColor1":go(s),"61117f8c-rainbowColor2":go(c),"61117f8c-rainbowColor3":go(d),"61117f8c-rainbowColor4":go(u),"61117f8c-rainbowColor5":go(p),"61117f8c-locatedColor":go(l)}));let o=Fo({common:{primaryColor:"",primaryColorHover:""},Slider:{handleSize:"10px",fillColor:"",fillColorHover:"",dotBorderActive:""},Tree:{nodeTextColor:"var(--nav-item-color)"}}),r=Fo({common:{primaryColor:"",primaryColorHover:""},Slider:{handleSize:"10px",fillColor:"",fillColorHover:"",dotBorderActive:""},Tree:{nodeTextColor:"var(--nav-item-color)"}}),n=F(()=>B.dark?xs:null),i=F(()=>B.dark?{color:"var(--icon-color)"}:{color:"var(--icon-color)"});function a(){let _=document.body.createEl("button",{cls:"mod-cta",attr:{style:"width: 0px; height: 0px;"}}),W=getComputedStyle(_,null).getPropertyValue("background-color");return _.remove(),W}let l=X(a());At(()=>{if(B.patchColor){o.common.primaryColor=o.common.primaryColorHover=o.Slider.fillColor=o.Slider.fillColorHover=B.primaryColorLight,o.Slider.dotBorderActive=`2px solid ${B.primaryColorLight}`,r.common.primaryColor=r.common.primaryColorHover=r.Slider.fillColor=r.Slider.fillColorHover=B.primaryColorDark,r.Slider.dotBorderActive=`2px solid ${B.primaryColorDark}`;return}if(B.cssChange===B.cssChange){let _=a();o.common.primaryColor=o.common.primaryColorHover=o.Slider.fillColor=o.Slider.fillColorHover=r.common.primaryColor=r.common.primaryColorHover=r.Slider.fillColor=r.Slider.fillColorHover=_,o.Slider.dotBorderActive=r.Slider.dotBorderActive=`2px solid ${_}`,l.value=_}});let s=X(""),c=X(""),d=X(""),u=X(""),p=X("");function f(_){return`${parseInt(_.slice(1,3),16)},${parseInt(_.slice(3,5),16)},${parseInt(_.slice(5,7),16)}`}At(()=>{if(B.rainbowLine){s.value=`rgba(${f(B.rainbowColor1)}, 0.6)`,c.value=`rgba(${f(B.rainbowColor2)}, 0.6)`,d.value=`rgba(${f(B.rainbowColor3)}, 0.6)`,u.value=`rgba(${f(B.rainbowColor4)}, 0.6)`,p.value=`rgba(${f(B.rainbowColor5)}, 0.6)`;return}B.cssChange===B.cssChange&&(s.value=c.value=d.value=u.value=p.value="var(--nav-indentation-guide-color)")});function m(){return b(wa,{size:"12px"},{default:()=>b(Uf)})}function y({option:_}){let W=null;switch(_.icon){case"ArticleOutlined":{W=b(Rf);break}case"AudiotrackOutlined":{W=b(Af);break}case"OndemandVideoOutlined":{W=b(Gf);break}case"CategoryOutlined":{W=b($f);break}case"FilePresentOutlined":{W=b(Wf);break}case"ImageOutlined":{W=b(zf);break}case"PublicOutlined":{W=b(Hf);break}case"TextFieldsOutlined":{W=b(Ff);break}default:return null}return b(wa,{size:"1.2em"},{default:()=>W})}tt(()=>{addEventListener("quiet-outline-reset",$)}),sn(()=>{removeEventListener("quiet-outline-reset",$)});let w=ke("plugin"),g=ke("container"),O=(_,W)=>"item-"+_.level+"-"+W,j=_=>parseInt(_.split("-")[2]);function S(_){D(_),k(_)}B.onPosChange=S;function v(){return w.navigator.getDefaultLevel()}function D(_){if(w.settings.auto_expand_ext!=="disable"){let W=B.headers[_],re=_<B.headers.length-1&&B.headers[_].level<B.headers[_+1].level?[O(W,_)]:[],P=W.level,Z=_;for(;Z-- >0&&(B.headers[Z].level<P&&(re.push(O(B.headers[Z],Z)),P=B.headers[Z].level),P!==1););if(w.settings.auto_expand_ext==="expand-and-collapse-rest-to-setting")Be.value=wt(Me.value);else if(w.settings.auto_expand_ext==="expand-and-collapse-rest-to-default"){let le=v();Be.value=wt(le)}Le(re,"add")}}let x=X(0);function k(_){let W=H(_),re=W.find(P=>!Be.value.contains(O(B.headers[P],P)));re=re===void 0?W[W.length-1]:re,x.value=re,setTimeout(()=>{let P=g.querySelector(`#no-${re}`);P&&P.scrollIntoView({block:"center",behavior:"smooth"})},100)}let A=F(()=>_=>{let W=parseInt(_.option.key.split("-")[1]),re=parseInt(_.option.key.split("-")[2]),P=_.option.label||"",Z=x.value===re?"located":"";return{class:`level-${W} ${Z}`,id:`no-${re}`,"aria-label":B.ellipsis?_.option.label:"","aria-label-position":B.labelDirection,raw:P}}),E,z,M="";function se(_){let re=_.target.closest(".n-tree-node");re&&(E=re,z=_,addEventListener("keydown",ce))}function ye(_){removeEventListener("keydown",ce)}let Ie=_=>w.settings.show_popover_key==="ctrlKey"&&_.ctrlKey||w.settings.show_popover_key==="altKey"&&_.altKey||w.settings.show_popover_key==="metaKey"&&_.metaKey;function fe(_){Ie(_)&&w.app.workspace.trigger("hover-link",{event:z,source:"preview",targetEl:E,hoverParent:{hoverPopover:null},linktext:"#"+E?.getAttribute("raw"),sourcePath:w.navigator.getPath()})}let ce=we(fe,100);function we(_,W){let re=!0,P;return function(...Z){let le=this,Ce=E?.getAttribute("raw")||"";if(Ce!==M||re){_.apply(le,Z),re=!1,M=Ce;return}P&&clearTimeout(P),P=setTimeout(()=>{re=!0},W)}}tt(()=>{g.addEventListener("mouseover",se),g.addEventListener("mouseout",ye)}),sn(()=>{g.removeEventListener("mouseover",se),g.removeEventListener("mouseout",ye),removeEventListener("keydown",ce)});let Me=X(v()),Be=X([]);ct(Me.value);function Le(_,W="replace"){if(W==="replace")Be.value=_;else{let re=new Set([...Be.value,..._]);Be.value=[...re]}Je()}function Je(){let _=w.navigator.getPath();_&&(w.heading_states[_]=Ve(Be.value))}function Xe(_,W){Le(_)}function ct(_){Me.value=_;let W=wt(_);Le(W)}W0(window,"quiet-outline-levelchange",_=>{typeof _.detail.level=="number"?ct(_.detail.level):_.detail.level==="inc"?ct(Math.clamp(Me.value+1,0,5)):_.detail.level==="dec"&&ct(Math.clamp(Me.value-1,0,5))});function wt(_){return B.headers.map((re,P)=>({level:re.level,no:P})).filter((re,P,Z)=>P===Z.length-1||Z[P].level>=Z[P+1].level?!1:Z[P].level<=_).map(re=>"item-"+re.level+"-"+re.no)}function ze(_,W){let re=_.split("-");return`item-${re[1]}-${parseInt(re[2])+W}`}Ze(()=>Ve(B.modifyKeys),({offsetModifies:_,removes:W,adds:re,modifies:P})=>{let Z=Be.value.filter(le=>{let Ce=j(le),Ke=!W.some(Fe=>Fe.begin<=Ce&&Ce<Fe.begin+Fe.length),He=!P.some(Fe=>Fe.oldBegin===Ce&&Fe.levelChangeType==="parent2child");return Ke&&He}).map(le=>{let Ce=j(le),Ke=P.find(Tt=>Tt.oldBegin===Ce),He=_.findLastIndex(Tt=>Tt.begin<=Ce),Fe=He===-1?le:ze(le,_[He].offset),qe=j(Fe);return Ke?`item-${B.headers[Ke.newBegin].level}-${qe}`:Fe});P.filter(le=>le.levelChangeType==="child2parent").forEach(le=>{Z.push(`item-${B.headers[le.newBegin].level}-${le.newBegin}`)}),re.forEach(le=>{let Ce=Q(le.begin);(le.begin>=B.headers.length-1||B.headers[le.begin].level>=B.headers[le.begin+1].level)&&Ce.pop(),Ce.forEach(Ke=>{Z.push(`item-${B.headers[Ke].level}-${Ke}`)})}),Le([...new Set(Z)])});let We=X(0);Ze(()=>B.leafChange,()=>{let _=rt.value;rt.value="",Me.value=v();let W=w.heading_states[w.navigator.getPath()];w.settings.remember_state&&W?Le(W):ct(Me.value),Bt(()=>{rt.value=_})});let vt={0:"",1:"",2:"",3:"",4:"",5:""};function Pe(_){let W=B.headers.filter(re=>re.level===_).length;return _>0?`H${_}: ${W}`:"No expand"}let ot=F(()=>{if(B.markdown)return Y}),rt=X("");function Dt(_,W){let re=/.*/;try{re=RegExp(_,"i")}catch{}finally{return re.test(W.label||"")}}function h(_,W){return(W.label||"").toLowerCase().contains(_.toLowerCase())}let C=F(()=>B.regexSearch?Dt:h),L=F(()=>B.headers.filter(_=>{let W={label:_.heading};return C.value(rt.value,W)}).length);async function q(_,W){if(W[0]===void 0)return;let re=W[0].key.split("-"),P=parseInt(re[2]);w.navigator.jump(P)}let K=F(()=>ne(B.headers));function ne(_){return oe(_)}function oe(_){let W={children:[]},re=[{node:W,level:-1}];return _.forEach((P,Z)=>{let le={label:P.heading,key:"item-"+P.level+"-"+Z,line:P.position.start.line,icon:P.icon};for(;P.level<=re.last().level;)re.pop();let Ce=re.last().node;Ce.children===void 0&&(Ce.children=[]),Ce.children.push(le),re.push({node:le,level:P.level})}),W.children}function H(_){let W=[];function re(P){if(!P||P.length===0)return;let Z=0;for(let le=P.length-1;le>=0;le--){let Ce=j(P[le].key);if(Ce<=_){W.push(Ce),Z=le;break}}re(P[Z].children)}return re(K.value),W}function Q(_){let W=[],re=B.headers[_].level+1;for(let P=_;P>=0;P--)B.headers[P].level<re&&(W.push(P),re--);return W.reverse()}De.use({extensions:[$0,L0,B0,H0,z0,j0]}),De.use({walkTokens:V0}),De.use({renderer:F0});function Y({option:_}){let W=De.parse(_.label||"").trim(),re=0,P=W.match(/<mjx-container.*?>.*?<\/mjx-container>/g)||[];return W=W.replace(/<mjx-container.*?>.*?<\/mjx-container>/g,()=>"<math></math>"),W=(0,K0.sanitizeHTMLToDom)(`<div>${W}</div>`).children[0].innerHTML,W=W.replace(/<math.*?>.*?<\/math>/g,()=>P[re++]),b("div",{innerHTML:W})}async function N(){w.navigator.toBottom()}function $(){rt.value="",Me.value=v(),ct(Me.value)}async function V({node:_,dragNode:W,dropPosition:re}){if(!w.navigator.canDrop)return;let P=ae(W),Z=ae(_);await w.navigator.handleDrop(P,Z,re)}function ae(_){return typeof _!="string"&&(_=_.key),parseInt(_.split("-")[2])}let pe={lightThemeConfig:o,darkThemeConfig:r,get theme(){return n},set theme(_){n=_},get iconColor(){return i},set iconColor(_){i=_},getDefaultColor:a,get locatedColor(){return l},set locatedColor(_){l=_},get rainbowColor1(){return s},set rainbowColor1(_){s=_},get rainbowColor2(){return c},set rainbowColor2(_){c=_},get rainbowColor3(){return d},set rainbowColor3(_){d=_},get rainbowColor4(){return u},set rainbowColor4(_){u=_},get rainbowColor5(){return p},set rainbowColor5(_){p=_},hexToRGB:f,renderSwitcherIcon:m,renderPrefix:y,plugin:w,container:g,get toKey(){return O},set toKey(_){O=_},get fromKey(){return j},set fromKey(_){j=_},onPosChange:S,getDefaultLevel:v,autoExpand:D,get locateIdx(){return x},set locateIdx(_){x=_},resetLocated:k,setAttrs:A,get triggerNode(){return E},set triggerNode(_){E=_},get mouseEvent(){return z},set mouseEvent(_){z=_},get prevShowed(){return M},set prevShowed(_){M=_},onMouseEnter:se,onMouseLeave:ye,funcKeyPressed:Ie,_openPopover:fe,openPopover:ce,customDebounce:we,get level(){return Me},set level(_){Me=_},get expanded(){return Be},set expanded(_){Be=_},modifyExpandKeys:Le,syncExpandKeys:Je,expand:Xe,switchLevel:ct,filterKeysLessThanEqual:wt,offset:ze,get update_tree(){return We},set update_tree(_){We=_},marks:vt,formatTooltip:Pe,get renderMethod(){return ot},set renderMethod(_){ot=_},get pattern(){return rt},set pattern(_){rt=_},regexFilter:Dt,simpleFilter:h,get filter(){return C},set filter(_){C=_},get matchCount(){return L},set matchCount(_){L=_},jump:q,get data2(){return K},set data2(_){K=_},makeTree:ne,arrToTree:oe,getPath:H,getPathFromArr:Q,renderLabel:Y,toBottom:N,reset:$,onDrop:V,getNo:ae,get NTree(){return Ef},get NButton(){return Fd},get NInput(){return Ad},get NSlider(){return kf},get NConfigProvider(){return ru},get SettingsBackupRestoreRound(){return Pf},get ArrowCircleDownRound(){return Tf},get Icon(){return wa},get store(){return B}};return Object.defineProperty(pe,"__isScriptSetup",{enumerable:!1,value:!0}),pe}});var OP={id:"container"},PP={key:0,class:"function-bar"},NP={key:2};function U0(e,t,o,r,n,i){return Ye(),ut("div",OP,[ft(r.NConfigProvider,{theme:r.theme,"theme-overrides":r.theme===null?r.lightThemeConfig:r.darkThemeConfig},{default:ln(()=>[r.store.searchSupport?(Ye(),ut("div",PP,[ft(r.NButton,{size:"small",circle:"",onClick:r.toBottom,"aria-label":"To Bottom"},{icon:ln(()=>[ft(r.Icon,null,{default:ln(()=>[ft(r.ArrowCircleDownRound,{style:vr(r.iconColor)},null,8,["style"])]),_:1})]),_:1}),ft(r.NButton,{size:"small",circle:"",onClick:r.reset,"aria-label":"Reset"},{icon:ln(()=>[ft(r.Icon,null,{default:ln(()=>[ft(r.SettingsBackupRestoreRound,{style:vr(r.iconColor)},null,8,["style"])]),_:1})]),_:1}),ft(r.NInput,{value:r.pattern,"onUpdate:value":t[0]||(t[0]=a=>r.pattern=a),placeholder:"Input to search",size:"small",clearable:""},null,8,["value"])])):nl("v-if",!0),r.store.levelSwitch?(Ye(),Di(r.NSlider,{key:1,value:r.level,"on-update:value":r.switchLevel,marks:r.marks,step:"mark",min:0,max:5,style:{margin:"4px 0"},"format-tooltip":r.formatTooltip},null,8,["value"])):nl("v-if",!0),r.pattern?(Ye(),ut("code",NP,Bs(r.matchCount)+" result(s): ",1)):nl("v-if",!0),(Ye(),Di(r.NTree,{"block-line":"",pattern:r.pattern,data:r.data2,"on-update:selected-keys":r.jump,"render-label":r.renderMethod,"render-prefix":r.renderPrefix,"node-props":r.setAttrs,"expanded-keys":r.expanded,"render-switcher-icon":r.renderSwitcherIcon,"on-update:expanded-keys":r.expand,key:r.update_tree,filter:r.filter,"show-irrelevant-nodes":!r.store.hideUnsearched,class:qr({ellipsis:r.store.ellipsis}),draggable:r.store.dragModify,onDrop:r.onDrop,"allow-drop":()=>r.plugin.navigator.canDrop},null,8,["pattern","data","render-label","node-props","expanded-keys","filter","show-irrelevant-nodes","class","draggable","allow-drop"]))]),_:1},8,["theme","theme-overrides"])])}Es.render=U0;Es.__file="src/ui/Outline.vue";var q0=Es;var ri="quiet-outline",Ds=class extends G0.ItemView{vueApp;plugin;constructor(t,o){super(t),this.plugin=o}getViewType(){return ri}getDisplayText(){return"Quiet Outline"}getIcon(){return"lines-of-text"}async onOpen(){let t=this.containerEl.children[1];t.empty();let o=t.createEl("div",{cls:"quiet-outline"});this.vueApp=qm(q0),this.vueApp.provide("plugin",this.plugin),this.vueApp.provide("container",o),this.vueApp.mount(o)}async onClose(){}onunload(){this.vueApp.unmount()}};var Y0=require("obsidian");var Lo=class extends Y0.Component{_loaded=!1;canDrop=!1;plugin;constructor(t){super(),this.plugin=t}async load(){this._loaded||(this._loaded=!0,this.constructor._installed||(await this.install(),this.constructor._installed=!0),await this.onload())}async unload(){if(this._loaded){for(this._loaded=!1;this._events.length>0;)this._events.pop()();await this.onunload()}}getDefaultLevel(){return parseInt(this.plugin.settings.expand_level)}getPath(){return""}async install(){}async onload(){}async onunload(){}async handleDrop(t,o,r){}toBottom(){}},Ts=class extends Lo{getId(){return"dummy"}async jump(t){}async getHeaders(){return[]}async setHeaders(){B.headers=[]}async updateHeaders(){}};var ry=require("obsidian");var X0=require("@codemirror/view"),rp=class{constructor(t){}update(t){t.selectionSet&&document.dispatchEvent(new CustomEvent("quiet-outline-cursorchange",{detail:{docChanged:t.docChanged}}))}destroy(){}},Z0=X0.ViewPlugin.fromClass(rp);function RP(e,t){let o=0,r=0,n=[];for(;o<e.length&&r<t.length;){if(e[o].heading===t[r].heading&&e[o].level===t[r].level){o++,r++;continue}let i=IP(e,t,o,r);if(i.type=="modify"){let a=e[o].level<e[o+1].level?t[r].level<t[r+1].level?"parent2parent":"parent2child":t[r].level<t[r+1].level?"child2parent":"child2child";n.push({type:i.type,begin:o,length:i.length,levelChange:e[o].level!==t[r].level,levelChangeType:a})}else n.push({type:i.type,begin:o,length:i.length});i.type==="add"?r+=i.length:i.type==="remove"?o+=i.length:(o+=i.length,r+=i.length)}return o===e.length&&r!==t.length&&n.push({type:"add",begin:o,length:t.length-r}),o!==e.length&&r===t.length&&n.push({type:"remove",begin:o,length:e.length-o}),n}function IP(e,t,o,r){let n=Q0(e[o],t,r),i=Q0(t[r],e,o),a=AP(e,t,o,r),l=[{type:"add",length:n},{type:"remove",length:i},{type:"modify",length:a}];return l.sort((s,c)=>s.length-c.length),l[0].type=="add"&&l[1].type=="remove"&&l[0].length===l[1].length?l[1]:l[0]}function Q0(e,t,o){let r=t.slice(o),n=r.findIndex(i=>i.heading===e.heading&&i.level===e.level);return n=n<0?r.length:n,n}function AP(e,t,o,r){let n=Math.min(e.length-o-1,t.length-r-1,5);for(let i=1;n>0&&i<=n;i++)if(e[o+i].heading===t[r+i].heading&&e[o+i].level===t[r+i].level)return i;return Number.MAX_VALUE}function _a(e,t){let o=RP(e,t),r={offsetModifies:[],removes:[],adds:[],modifies:[]},n=0;return o.forEach(i=>{switch(i.type){case"add":{r.adds.push({begin:n+i.begin}),n+=i.length,r.offsetModifies.push({begin:i.begin,offset:n});break}case"remove":{n-=i.length,r.offsetModifies.push({begin:i.begin+i.length,offset:n}),r.removes.push({begin:i.begin,length:i.length});break}case"modify":{if(!i.levelChange||i.levelChangeType==="child2child")break;r.modifies.push({oldBegin:i.begin,newBegin:i.begin+n,levelChangeType:i.levelChangeType});break}}}),r}async function np(e,t){return await e.metadataCache.computeMetadataAsync(new TextEncoder().encode(t).buffer)}async function ey(e){let t=await np(app,e),o=t.headings||[],r=t.sections||[],i=[{heading:"",headingLevel:0,headingExpaned:!1,id:-1,content:{preContent:"",children:[]},type:"section"}],a=0,l=0,s=0;for(let d of r)if(d.type==="heading"){for(l=Math.max(d.position.start.offset,0),i.last().content.preContent=e.slice(a,l);o[s].level<=i.last().headingLevel;)i.pop();let u={heading:o[s].heading,headingLevel:o[s].level,headingExpaned:!1,id:s,content:{preContent:"",children:[]},type:"section"};i.last().content.children.push(u),i.push(u),a=o[s].position.end.offset+1,s++}let c=e.slice(a);return i.length>1&&!c.endsWith(` +`)&&(c+=` +`),i.last().content.preContent=c,i[0]}function ty(e,t,o,r){let[n,i]=J0(e,t),[a,l]=J0(e,o),s=structuredClone(i);switch(r){case"before":a.content.children.splice(a.content.children.indexOf(l),0,s),Os(s,l.headingLevel-i.headingLevel);break;case"after":a.content.children.splice(a.content.children.indexOf(l)+1,0,s),Os(s,l.headingLevel-i.headingLevel);break;case"inside":l.content.children.push(s),Os(s,l.headingLevel-i.headingLevel+1);break}n.content.children.splice(n.content.children.indexOf(i),1)}function J0(e,t){let o=oy(e,e,t);if(!o)throw new Error(`section ${t} not found`);return o}function oy(e,t,o){if(e.id===o)return[t,e];for(let r of e.content.children){let n=oy(r,e,o);if(n)return n}}function MP(e){return e.preContent+e.children.map(ip).join("")}function ip(e){let t="#".repeat(e.headingLevel)+" "+e.heading,o=MP(e.content);return e.id<0?o:`${t} +${o}`}function Os(e,t){e.headingLevel+=t,e.content.children.forEach(o=>{Os(o,t)})}var mo,Ur=class extends Lo{view;canDrop=!0;constructor(t,o){super(t),mo=t,this.view=o}getId(){return"markdown"}async getHeaders(){return this.plugin.app.metadataCache.getFileCache(this.view.file)?.headings||[]}async setHeaders(){let t=await this.getHeaders();B.headers=t}async updateHeaders(){let t=await this.getHeaders();B.modifyKeys=_a(B.headers,t),B.headers=t}async jump(t){let o=B.headers[t].position.start.line,n={line:o,cursor:{from:{line:o,ch:0},to:{line:o,ch:0}}};this.plugin.jumping=!0,B.onPosChange(t),setTimeout(()=>{this.view.setEphemeralState(n)})}async install(){this.plugin.registerEditorExtension([Z0])}async onload(){this.registerDomEvent(document,"quiet-outline-cursorchange",$P),this.registerDomEvent(this.view.contentEl,"scroll",BP,!0)}async onunload(){}toBottom(){let t=this.view.data.split(` +`),o=()=>{this.view.setEphemeralState({line:t.length-5})};o(),setTimeout(o,100)}getDefaultLevel(){let t;return t=this.plugin.app.metadataCache.getFileCache(this.view.file)?.frontmatter?.["qo-default-level"],typeof t=="string"&&(t=parseInt(t)),t||parseInt(mo.settings.expand_level)}getPath(){return this.view.file.path}async handleDrop(t,o,r){let n=await ey(this.view.data);ty(n,t,o,r),await mo.app.vault.modify(this.view.file,ip(n))}};function $P(e){if(!(!mo.allow_cursor_change||mo.jumping||e?.detail.docChanged)&&mo.settings.locate_by_cursor){mo.block_scroll();let t=ny(!1,!0),o=iy(t);if(o===void 0)return;B.onPosChange(o)}}function ny(e,t){let r=mo.navigator.view;return mo.settings.locate_by_cursor&&!e?t?r.editor.getCursor("from").line:Math.ceil(r.previewMode.getScroll()):t?LP(r.editor.cm):zP(r)}function LP(e){let{y:t,height:o}=e.dom.getBoundingClientRect(),r=t+o/2,n=e.viewportLineBlocks,i=0;return n.forEach(a=>{let l=e.domAtPos(a.from).node,c=(l.nodeName=="#text"?l.parentNode:l).getBoundingClientRect();c.y+c.height/2<=r&&(i=e.state.doc.lineAt(a.from).number)}),Math.max(i-2,0)}function zP(e){let t=e.previewMode.renderer,o=t.previewEl,r=o.getBoundingClientRect(),n=r.y+r.height/2,i=o.querySelectorAll(".markdown-preview-sizer>div:not(.markdown-preview-pusher)"),a=0;return i.forEach(l=>{let{y:s}=l.getBoundingClientRect();s<=n&&(a=t.getSectionForElement(l).lineStart)}),a}function iy(e){let t=null,o=B.headers.length;for(;--o>=0;)if(B.headers[o].position.start.line<=e){t=B.headers[o];break}if(t)return o}var BP=(0,ry.debounce)(HP,200,!0);function HP(e){if(!mo.allow_scroll)return;if(mo.jumping){mo.jumping=!1;return}let t=e.target;if(!t.classList.contains("markdown-preview-view")&&!t.classList.contains("cm-scroller")&&!t.classList.contains("outliner-plugin-list-lines-scroller"))return;let o=mo.navigator.view.getMode()==="source",r=ny(!0,o),n=iy(r);n!==void 0&&B.onPosChange(n)}var sy=require("obsidian");function ay(e,t){let o=Object.keys(t).map(r=>VP(e,r,t[r]));return o.length===1?o[0]:function(){o.forEach(r=>r())}}function VP(e,t,o){let r=e[t],n=e.hasOwnProperty(t),i=n?r:function(){return Object.getPrototypeOf(e)[t].apply(this,arguments)},a=o(i);return r&&Object.setPrototypeOf(a,r),Object.setPrototypeOf(l,a),e[t]=l,s;function l(...c){return a===i&&e[t]===l&&s(),a.apply(this,c)}function s(){e[t]===l&&(n?e[t]=i:delete e[t]),a!==i&&(a=i,Object.setPrototypeOf(l,r||Function))}}var Ps=class extends Lo{view;constructor(t,o){super(t),this.view=o}async onload(){}async install(){let t=this.plugin;t.klasses.canvas||(this.patchCanvas(this.view.canvas),t.klasses.canvas=this.view.constructor),t.registerEvent(t.app.workspace.on("quiet-outline:canvas-change",()=>{t.refresh()})),t.registerEvent(t.app.workspace.on("quiet-outline:canvas-selection-change",async o=>{if(o.size===0||o.size>1){let i=t.app.workspace.getActiveFileView();if(!i)return;await t.updateNav(i.getViewType(),i),await t.refresh_outline(),B.refreshTree();return}let r=[...o][0];if(!r.hasOwnProperty("nodeEl"))return;let n=r;if(n.unknownData.type==="file"&&n.file.extension==="md"){let i=n.child;await t.updateNav("embed-markdown-file",i),await t.refresh_outline(),B.refreshTree();return}if(n.unknownData.type==="text"){let i=n.child;await t.updateNav("embed-markdown-text",i),await t.refresh_outline(),B.refreshTree();return}}))}async jump(t){let r=this.view.canvas.nodes.get(B.headers[t].id);r!==void 0&&this.view.canvas.zoomToBbox(r.bbox)}async setHeaders(){B.headers=await this.getHeaders()}async getHeaders(){let t=this.view.canvas.data.nodes;return t?FP(t):[]}async updateHeaders(){await this.setHeaders()}getPath(){return this.view.file.path}getId(){return"canvas"}patchCanvas(t){let o=this.plugin;o.register(ay(t.constructor.prototype,{requestSave(r){return function(...n){return o.app.workspace.trigger("quiet-outline:canvas-change"),r.apply(this,n)}},updateSelection(r){return function(...n){r.apply(this,n),o.app.workspace.trigger("quiet-outline:canvas-selection-change",this.selection)}}}))}};function FP(e){let t=e.slice().sort((n,i)=>-WP(n,i)),o=[];for(let n=0;n<t.length;n++)dy(o,t[n]);let r=[];return cy(o,1,(n,i)=>{r.push({level:i,heading:KP(n),id:n.id,icon:jP(n),position:{start:{line:0,col:0,offset:0},end:{line:0,col:0,offset:0}}})}),r}function jP(e){if(e.type==="group")return"CategoryOutlined";if(e.type==="text")return"TextFieldsOutlined";if(e.type==="link")return"PublicOutlined";if(e.type==="file"){if(e.file.endsWith(".md"))return"ArticleOutlined";if(e.file.endsWith(".mp3"))return"AudiotrackOutlined";if(e.file.endsWith(".mp4"))return"OndemandVideoOutlined";if(e.file.endsWith(".png")||e.file.endsWith(".jpg"))return"ImageOutlined"}return"FilePresentOutlined"}var ly=e=>e.height*e.width;function WP(e,t){return ly(e)-ly(t)}var ap={};function KP(e){let t;switch(e.type){case"text":{t=e.text.split(` +`)[0],t=t.slice(t.search(/[^#\s].*/)),t.length>20&&(t=t.substring(0,20)+"...");break}case"file":{t=e.file.split("/").slice(-1)[0];break}case"link":{ap[e.url]?t=ap[e.url]:(t=e.url,(0,sy.request)(e.url).then(o=>{ap[e.url]=/<title>(.*)<\/title>/.exec(o)?.[1]||""}).catch(()=>{}));break}case"group":{t=e.label||"Unnamed Group";break}}return t}function cy(e,t,o){for(let r=0;r<e.length;r++)o(e[r].node,t),cy(e[r].children,t+1,o)}function dy(e,t){let o=!1;for(let r=0;r<e.length;r++)e[r].node.type==="group"&&UP(t,e[r].node)&&(o=!0,dy(e[r].children,t));o||e.push({node:t,children:[]})}function UP(e,t){return e.x>=t.x&&e.y>=t.y&&e.x+e.width<=t.x+t.width&&e.y+e.height<=t.y+t.height}var Ns=class extends Ur{getId(){return"kanban"}canDrop=!1;async install(){Ur._installed||(await super.install(),Ur._installed=!0)}async jump(t){document.querySelectorAll('.workspace-leaf[style=""] .kanban-plugin__lane-wrapper')[t]?.scrollIntoView({block:"center",inline:"center",behavior:"smooth"})}};var Rs=class extends Lo{view;constructor(t,o){super(t),this.view=o}getId(){return"embed-markdown-file"}async jump(t){let o=B.headers[t].position.start.line;this.plugin.jumping=!0,B.onPosChange(t),setTimeout(()=>{uy(this.view,{line:o})})}async getHeaders(){return this.plugin.app.metadataCache.getFileCache(this.view.file)?.headings||[]}async setHeaders(){let t=await this.getHeaders();B.headers=t}async updateHeaders(){let t=await this.getHeaders();B.modifyKeys=_a(B.headers,t),B.headers=t}},Is=class extends Lo{view;constructor(t,o){super(t),this.view=o}getId(){return"embed-markdown-text"}async jump(t){let o=B.headers[t].position.start.line;uy(this.view,{line:o})}async getHeaders(){let{headings:t}=await np(this.plugin.app,this.view.text);return t||[]}async setHeaders(){B.headers=await this.getHeaders()}async updateHeaders(){let t=await this.getHeaders();B.modifyKeys=_a(B.headers,t),B.headers=t}};function uy(e,t){e.getMode()==="source"?qP(e.editMode.editor,t.line):GP(e.previewMode.renderer,t.line)}function qP(e,t){let o={from:{line:t,ch:0},to:{line:t,ch:e.getLine(t).length}};e.addHighlights([o],"is-flashing",!0,!0),e.setCursor(o.from),e.scrollIntoView(o,!0)}function GP(e,t){e.applyScroll(t,{highlight:!0,center:!0})}var As={dummy:Ts,markdown:Ur,kanban:Ns,canvas:Ps,"embed-markdown-file":Rs,"embed-markdown-text":Is};function lp(e,t,o){let r=-1;return()=>{e(),window.clearTimeout(r),r=window.setTimeout(o,t)}}var Rt=require("obsidian");var fy={"Settings for Quiet Outline.":"Quiet Outline \u7684\u8BBE\u7F6E\u9875\u9762","Set Primary Color":"\u8BBE\u7F6E\u4E3B\u989C\u8272 \u660E/\u6697","Patch default color":"\u7528\u8BBE\u7F6E\u8986\u76D6\u9ED8\u8BA4\u4E3B\u989C\u8272","Set Rainbow Line Color":"\u8BBE\u7F6E\u5F69\u8679\u5927\u7EB2\u7EBF\u989C\u8272","Render Markdown":"\u6E32\u67D3markdown\u5143\u7D20","Render heading string as markdown format.":"\u4EE5markdown\u683C\u5F0F\u6E32\u67D3\u6807\u9898\u6587\u672C","Search Support":"\u5F00\u542F\u641C\u7D22","Add a searching area on the top":"\u5728\u9876\u90E8\u6DFB\u52A0\u4E00\u4E2A\u641C\u7D22\u6846","Level Switch":"\u5C42\u7EA7\u5207\u6362\u5668","Expand headings to certain level.":"\u5C55\u5F00\u6807\u9898\u5230\u7279\u5B9A\u5C42\u7EA7","Default Level":"\u9ED8\u8BA4\u5C42\u7EA7","Default expand level when opening a new note.":"\u6253\u5F00\u65B0\u7B14\u8BB0\u65F6\uFF0C\u6807\u9898\u5C55\u5F00\u5230\u7684\u9ED8\u8BA4\u5C42\u7EA7","No expand":"\u4E0D\u5C55\u5F00","Hide Unsearched":"\u8FC7\u6EE4\u672A\u641C\u7D22\u7684\u6807\u9898","Hide irrelevant headings when searching":"\u641C\u7D22\u65F6\uFF0C\u9690\u85CF\u672A\u547D\u4E2D\u7684\u6807\u9898","Regex Search":"\u6B63\u5219\u641C\u7D22","Search headings using regular expression":"\u652F\u6301\u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F\u6765\u641C\u7D22","Auto Expand":"\u81EA\u52A8\u5C55\u5F00","Auto expand and collapse headings when scrolling and cursor position change":"\u5F53\u6EDA\u52A8\u9875\u9762\u65F6\uFF0C\u81EA\u52A8\u8DDF\u8E2A\u5F53\u524D\u6240\u5728\u6807\u9898\u5E76\u5C55\u5F00","Only Expand":"\u4EC5\u5C55\u5F00\u5F53\u524D\u6807\u9898","Expand and Collapse Rest":"\u5C55\u5F00\u540C\u65F6\u6298\u53E0\u5269\u4F59\u6807\u9898","Expand and Collapse Rest to Default":"\u5C55\u5F00\u540C\u65F6\u6298\u53E0\u5269\u4F59\u6807\u9898\u81F3\u9ED8\u8BA4\u5C42\u7EA7","Expand and Collapse Rest to Setting Level (Level Switch)":"\u5C55\u5F00\u540C\u65F6\u6298\u53E0\u5269\u4F59\u6807\u9898\u81F3\u8BBE\u7F6E\u5C42\u7EA7(\u5C42\u7EA7\u5207\u6362\u5668)",Disabled:"\u5173\u95ED\u81EA\u52A8\u5C55\u5F00","Locate By Cursor":"\u5B9A\u4F4D\u5230\u5149\u6807\u5904","Highlight and Auto expand postion will be determined by cursor position":"\u9AD8\u4EAE\u548C\u81EA\u52A8\u5C55\u5F00\u4F4D\u7F6E\u5C06\u7531\u5149\u6807\u4F4D\u7F6E\u51B3\u5B9A","Show Popover on hover":"\u9F20\u6807\u60AC\u505C\u5728\u6807\u9898\u65F6\u663E\u793A\u7B14\u8BB0\u5185\u5BB9","Press functional key and move cursor to heading":"\u6309\u4F4F\u529F\u80FD\u952E\uFF0C\u79FB\u52A8\u5149\u6807\u5230\u6807\u9898\u5904",Disable:"\u5173\u95ED",Ellipsis:"\u7701\u7565\u957F\u6807\u9898","Tooltip direction":"\u5B8C\u6574\u6807\u9898\u663E\u793A\u65B9\u5411","Keep one line per heading":"\u4FDD\u6301\u6807\u9898\u53EA\u6709\u4E00\u884C,\u7701\u7565\u591A\u4F59\u90E8\u5206","Remember States":"\u8BB0\u5FC6\u5C55\u5F00\u72B6\u6001","Remember expanded/collapsed state of headings of opened notes":"\u8BB0\u5FC6\u5DF2\u6253\u5F00\u7B14\u8BB0\u7684\u6807\u9898\u5C55\u5F00\u72B6\u6001","Drag headings to modify note":"\u542F\u7528\u62D6\u62FD\u6807\u9898\u6765\u8C03\u6574\u6587\u6863\u7ED3\u679C","\u2757 This will modify note content, be careful.":"\u2757 \u62D6\u62FD\u64CD\u4F5C\u4F1A\u6539\u53D8\u6587\u6863\u5185\u5BB9\uFF0C\u5C0F\u5FC3\u4F7F\u7528","Export Format":"\u6807\u9898\u8F93\u51FA\u683C\u5F0F"};var sp={"Settings for Quiet Outline.":"Settings for Quiet Outline.","Set Primary Color":"Set Primary Color Light/Dark","Patch default color":"Patch default color","Set Rainbow Line Color":"Set Rainbow Line Color","Render Markdown":"Render Markdown","Render heading string as markdown format.":"Render heading string as markdown format","Search Support":"Search Support","Add a searching area on the top":"Add a search area on the top","Level Switch":"Level Switch","Expand headings to certain level.":"Expand headings to certain level","Default Level":"Default Level","Default expand level when opening a new note.":"Default expand level","No expand":"No expand","Hide Unsearched":"Hide Unsearched","Hide irrelevant headings when searching":"Hide irrelevant headings when searching","Regex Search":"Regex Search","Search headings using regular expression":"Search headings using regular expression","Auto Expand":"Auto Expand","Auto expand and collapse headings when scrolling and cursor position change":"Auto expand and collapse headings when scrolling and cursor position change","Only Expand":"Only Expand","Expand and Collapse Rest":"Expand and Collapse Rest","Expand and Collapse Rest to Default":"Expand and Collapse Rest to Default","Expand and Collapse Rest to Setting Level (Level Switch)":"Expand and Collapse Rest to Setting Level (Level Switch)",Disabled:"Disabled","Locate By Cursor":"Locate By Cursor","Show Popover on hover":"Show Popover on hover","Press functional key and move cursor to heading":"Press functional key and move cursor to heading",Disable:"Disable","Highlight and Auto expand postion will be determined by cursor position":"Highlight and Auto expand postion will be determined by cursor position",Ellipsis:"Ellipsis","Tooltip direction":"Tooltip direction","Keep one line per heading":"Keep one line per heading","Remember States":"Remember States","Remember expanded/collapsed state of headings of opened notes":"Remember expanded/collapsed state of headings of opened notes","Drag headings to modify note":"Drag headings to modify note","\u2757 This will modify note content, be careful.":"\u2757 This will modify note content, be careful","Export Format":"Export Format"};var py={"Settings for Quiet Outline.":"Quiet Outline \u7684\u8A2D\u5B9A\u9801\u9762","Render Markdown":"\u6E32\u67D3markdown\u5143\u7D20","Render heading string as markdown format.":"\u4EE5markdown\u683C\u5F0F\u6E32\u67D3\u6A19\u984C\u6587\u5B57","Search Support":"\u958B\u555F\u641C\u7D22","Add a searching area on the top":"\u5728\u9802\u90E8\u65B0\u589E\u4E00\u500B\u641C\u7D22\u6846","Level Switch":"\u5C64\u7D1A\u5207\u63DB","Expand headings to certain level.":"\u5C55\u958B\u6A19\u984C\u5230\u7279\u5B9A\u5C64\u7D1A","Default Level":"\u9810\u8A2D\u5C64\u7D1A","Default expand level when opening a new note.":"\u6253\u958B\u65B0\u7B46\u8A18\u6642\uFF0C\u6A19\u984C\u5C55\u958B\u5230\u7684\u9810\u8A2D\u5C64\u7D1A","No expand":"\u4E0D\u5C55\u958B","Hide Unsearched":"\u904E\u6FFE\u672A\u641C\u7D22\u7684\u6A19\u984C","Hide irrelevant headings when searching":"\u641C\u7D22\u6642\uFF0C\u96B1\u85CF\u672A\u547D\u4E2D\u7684\u6A19\u984C","Regex Search":"\u6B63\u5247\u641C\u7D22","Search headings using regular expression":"\u652F\u63F4\u4F7F\u7528\u6B63\u5247\u904B\u7B97\u5F0F\u4F86\u641C\u7D22","Auto Expand":"\u81EA\u52D5\u5C55\u958B","Auto expand and collapse headings when scrolling and cursor position change":"\u7576\u6372\u52D5\u9801\u9762\u6216\u5149\u6A19\u6539\u8B8A\u6642\uFF0C\u81EA\u52D5\u8DDF\u96A8\u76EE\u524D\u6240\u5728\u6A19\u984C\u4E26\u5C55\u958B",Ellipsis:"\u7701\u7565\u9577\u6A19\u984C","Keep one line per heading":"\u4FDD\u6301\u6A19\u984C\u53EA\u6709\u4E00\u884C\uFF0C\u7701\u7565\u591A\u9918\u90E8\u5206"};var YP={en:sp,zh:fy,"zh-TW":py},XP=window.localStorage.getItem("language"),my=YP[XP||"en"];function je(e){return my&&my[e]||sp[e]}var hy={patch_color:!0,primary_color_light:"#18a058",primary_color_dark:"#63e2b7",rainbow_line:!1,rainbow_color_1:"#FD8B1F",rainbow_color_2:"#FFDF00",rainbow_color_3:"#07EB23",rainbow_color_4:"#2D8FF0",rainbow_color_5:"#BC01E2",search_support:!0,level_switch:!0,markdown:!0,expand_level:"0",hide_unsearched:!0,auto_expand_ext:"only-expand",regex_search:!1,ellipsis:!1,label_direction:"left",drag_modify:!1,locate_by_cursor:!1,show_popover_key:"ctrlKey",remember_state:!0,export_format:"{title}"},Ms=class extends Rt.PluginSettingTab{plugin;constructor(t,o){super(t,o),this.plugin=o}display(){let{containerEl:t}=this;t.empty(),t.createEl("h2",{text:je("Settings for Quiet Outline.")}),new Rt.Setting(t).setName(je("Set Primary Color")).addToggle(o=>o.setTooltip(je("Patch default color")).setValue(this.plugin.settings.patch_color).onChange(async r=>{this.plugin.settings.patch_color=r,B.patchColor=r,this.plugin.saveSettings()})).addColorPicker(o=>o.setValue(this.plugin.settings.primary_color_light).onChange(async r=>{this.plugin.settings.primary_color_light=r,B.primaryColorLight=r,this.plugin.saveSettings()})).addColorPicker(o=>o.setValue(this.plugin.settings.primary_color_dark).onChange(async r=>{this.plugin.settings.primary_color_dark=r,B.primaryColorDark=r,this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Set Rainbow Line Color")).addToggle(o=>o.setTooltip(je("Patch default color")).setValue(this.plugin.settings.rainbow_line).onChange(async r=>{this.plugin.settings.rainbow_line=r,B.rainbowLine=r,this.plugin.saveSettings()})).addColorPicker(o=>o.setValue(this.plugin.settings.rainbow_color_1).onChange(async r=>{this.plugin.settings.rainbow_color_1=r,B.rainbowColor1=r,this.plugin.saveSettings()})).addColorPicker(o=>o.setValue(this.plugin.settings.rainbow_color_2).onChange(async r=>{this.plugin.settings.rainbow_color_2=r,B.rainbowColor2=r,this.plugin.saveSettings()})).addColorPicker(o=>o.setValue(this.plugin.settings.rainbow_color_3).onChange(async r=>{this.plugin.settings.rainbow_color_3=r,B.rainbowColor3=r,this.plugin.saveSettings()})).addColorPicker(o=>o.setValue(this.plugin.settings.rainbow_color_4).onChange(async r=>{this.plugin.settings.rainbow_color_4=r,B.rainbowColor4=r,this.plugin.saveSettings()})).addColorPicker(o=>o.setValue(this.plugin.settings.rainbow_color_5).onChange(async r=>{this.plugin.settings.rainbow_color_5=r,B.rainbowColor5=r,this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Render Markdown")).setDesc(je("Render heading string as markdown format.")).addToggle(o=>o.setValue(this.plugin.settings.markdown).onChange(async r=>{this.plugin.settings.markdown=r,B.markdown=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Ellipsis")).setDesc(je("Keep one line per heading")).addToggle(o=>o.setValue(this.plugin.settings.ellipsis).onChange(async r=>{this.plugin.settings.ellipsis=r,B.ellipsis=r,await this.plugin.saveSettings(),B.refreshTree(),this.display()})),this.plugin.settings.ellipsis&&new Rt.Setting(t).setName(je("Tooltip direction")).addDropdown(o=>o.addOption("left","Left").addOption("right","Right").addOption("top","Top").addOption("bottom","Bottom").setValue(this.plugin.settings.label_direction).onChange(async r=>{this.plugin.settings.label_direction=r,B.labelDirection=r,await this.plugin.saveSettings(),B.refreshTree()})),new Rt.Setting(t).setName(je("Search Support")).setDesc(je("Add a searching area on the top")).addToggle(o=>o.setValue(this.plugin.settings.search_support).onChange(async r=>{this.plugin.settings.search_support=r,B.searchSupport=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Level Switch")).setDesc(je("Expand headings to certain level.")).addToggle(o=>o.setValue(this.plugin.settings.level_switch).onChange(async r=>{this.plugin.settings.level_switch=r,B.levelSwitch=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Default Level")).setDesc(je("Default expand level when opening a new note.")).addDropdown(o=>o.addOption("0",je("No expand")).addOption("1","H1").addOption("2","H2").addOption("3","H3").addOption("4","H4").addOption("5","H5").setValue(this.plugin.settings.expand_level).onChange(async r=>{this.plugin.settings.expand_level=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Hide Unsearched")).setDesc(je("Hide irrelevant headings when searching")).addToggle(o=>o.setValue(this.plugin.settings.hide_unsearched).onChange(async r=>{this.plugin.settings.hide_unsearched=r,B.hideUnsearched=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Regex Search")).setDesc(je("Search headings using regular expression")).addToggle(o=>o.setValue(this.plugin.settings.regex_search).onChange(async r=>{this.plugin.settings.regex_search=r,B.regexSearch=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Auto Expand")).setDesc(je("Auto expand and collapse headings when scrolling and cursor position change")).addDropdown(o=>o.addOption("only-expand",je("Only Expand")).addOption("expand-and-collapse-rest-to-default",je("Expand and Collapse Rest to Default")).addOption("expand-and-collapse-rest-to-setting",je("Expand and Collapse Rest to Setting Level (Level Switch)")).addOption("disable",je("Disabled")).setValue(this.plugin.settings.auto_expand_ext).onChange(async r=>{this.plugin.settings.auto_expand_ext=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Locate By Cursor")).setDesc(je("Highlight and Auto expand postion will be determined by cursor position")).addToggle(o=>o.setValue(this.plugin.settings.locate_by_cursor).onChange(async r=>{this.plugin.settings.locate_by_cursor=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Show Popover on hover")).setDesc(je("Press functional key and move cursor to heading")).addDropdown(o=>o.addOption("ctrlKey","Ctrl").addOption("altKey","Alt").addOption("metaKey","Meta").addOption("disable",je("Disable")).setValue(this.plugin.settings.show_popover_key).onChange(async r=>{this.plugin.settings.show_popover_key=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Remember States")).setDesc(je("Remember expanded/collapsed state of headings of opened notes")).addToggle(o=>o.setValue(this.plugin.settings.remember_state).onChange(async r=>{this.plugin.settings.remember_state=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Drag headings to modify note")).setDesc(je("\u2757 This will modify note content, be careful.")).addToggle(o=>o.setValue(this.plugin.settings.drag_modify).onChange(async r=>{this.plugin.settings.drag_modify=r,B.dragModify=r,await this.plugin.saveSettings()})),new Rt.Setting(t).setName(je("Export Format")).addText(o=>o.setValue(this.plugin.settings.export_format).onChange(async r=>{this.plugin.settings.export_format=r,await this.plugin.saveSettings()}).inputEl.setAttribute("style","width: 100%;"))}};var $s=class extends ni.Plugin{settings;navigator=new As.dummy(this,null);jumping;heading_states={};klasses={};allow_scroll=!0;block_scroll;allow_cursor_change=!0;block_cursor_change;async onload(){await this.loadSettings(),this.initStore(),this.registerView(ri,t=>new Ds(t,this)),this.registerListener(),this.registerCommand(),this.addSettingTab(new Ms(this.app,this)),await this.firstTimeInstall()&&this.activateView(),this.block_scroll=lp(()=>{this.allow_scroll=!1},300,()=>{this.allow_scroll=!0}),this.block_cursor_change=lp(()=>{this.allow_cursor_change=!1},300,()=>{this.allow_cursor_change=!0})}async firstTimeInstall(){return!await this.app.vault.adapter.exists(this.manifest.dir+"/data.json")}initStore(){B.headers=[],B.dark=document.body.hasClass("theme-dark"),B.markdown=this.settings.markdown,B.ellipsis=this.settings.ellipsis,B.labelDirection=this.settings.label_direction,B.leafChange=!1,B.searchSupport=this.settings.search_support,B.levelSwitch=this.settings.level_switch,B.hideUnsearched=this.settings.hide_unsearched,B.regexSearch=this.settings.regex_search,B.dragModify=this.settings.drag_modify,B.patchColor=this.settings.patch_color,B.primaryColorLight=this.settings.primary_color_light,B.primaryColorDark=this.settings.primary_color_dark,B.rainbowLine=this.settings.rainbow_line,B.rainbowColor1=this.settings.rainbow_color_1,B.rainbowColor2=this.settings.rainbow_color_2,B.rainbowColor3=this.settings.rainbow_color_3,B.rainbowColor4=this.settings.rainbow_color_4,B.rainbowColor5=this.settings.rainbow_color_5}registerListener(){this.registerEvent(this.app.workspace.on("css-change",()=>{B.dark=document.body.hasClass("theme-dark"),B.cssChange=!B.cssChange})),this.registerEvent(this.app.workspace.on("layout-change",()=>{let t=this.app.workspace.getLeavesOfType("markdown"),o={};t.forEach(r=>{if(r.view.file===void 0)return;let n=r.view.file.path;this.heading_states[n]&&(o[n]=this.heading_states[n])}),this.heading_states=o})),this.registerEvent(this.app.metadataCache.on("changed",(t,o,r)=>{this.refresh("file-modify")})),this.registerEvent(this.app.workspace.on("active-leaf-change",async t=>{let o=this.app.workspace.getActiveFileView();if(!o){await this.updateNav("dummy",null),await this.refresh_outline(),B.refreshTree();return}!t||o&&o!==t.view||(this.block_cursor_change(),await this.updateNav(o.getViewType(),o),await this.refresh_outline(),B.refreshTree())}))}refresh_outline=async t=>{t==="file-modify"?await this.navigator.updateHeaders():await this.navigator.setHeaders()};refresh=(0,ni.debounce)(this.refresh_outline,300,!0);async onunload(){await this.navigator.unload()}async updateNav(t,o){await this.navigator.unload();let r=As[t]||As.dummy;this.navigator=new r(this,o),await this.navigator.load()}async loadSettings(){this.settings=Object.assign({},hy,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}async activateView(){this.app.workspace.rightSplit!==null&&(this.app.workspace.getLeavesOfType(ri).length===0&&await this.app.workspace.getRightLeaf(!1)?.setViewState({type:ri,active:!0}),this.app.workspace.revealLeaf(this.app.workspace.getLeavesOfType(ri)[0]))}registerCommand(){this.addCommand({id:"quiet-outline",name:"Quiet Outline",callback:()=>{this.activateView()}}),this.addCommand({id:"quiet-outline-reset",name:"Reset expanding level",callback:()=>{dispatchEvent(new CustomEvent("quiet-outline-reset"))}}),this.addCommand({id:"quiet-outline-focus-input",name:"Focus on input",callback:()=>{let t=document.querySelector("input.n-input__input-el");t&&t.focus()}}),this.addCommand({id:"quiet-outline-copy-as-text",name:"Copy Current Headings As Text",callback:async()=>{function t(l,s){return Array(l.length+s.length).fill("").map((c,d)=>d%2===0?l[d/2]:s[(d-1)/2])}let o=this.settings.export_format.split(/\{.*?\}/),r=this.settings.export_format.match(/(?<={)(.*?)(?=})/g)||[];function n(l){let s=i[l.level-1],c=r.map(d=>{switch(d){case"title":return l.heading;case"path":return"#"+l.heading.replace(/ /g,"%20");case"bullet":return"-";case"num":return s.toString();case"num-nest":return s.toString()}let u=d.match(/num-nest\[(.*?)\]/);if(u){let p=u[1];return i.slice(0,l.level).join(p)}return""});return t(o,c).join("")}let i=[0,0,0,0,0,0],a=[];B.headers.forEach(l=>{i.forEach((c,d)=>{d>l.level-1&&(i[d]=0)}),i[l.level-1]++;let s=" ".repeat(l.level-1)+n(l);a.push(s)}),await navigator.clipboard.writeText(a.join(` +`)),new ni.Notice("Headings copied")}}),this.addCommand({id:"inc-level",name:"Increase Level",callback:()=>{dispatchEvent(new CustomEvent("quiet-outline-levelchange",{detail:{level:"inc"}}))}}),this.addCommand({id:"dec-level",name:"Decrease Level",callback:()=>{dispatchEvent(new CustomEvent("quiet-outline-levelchange",{detail:{level:"dec"}}))}}),this.addCommand({id:"prev-heading",name:"To previous heading",editorCallback:t=>{let o=t.getCursor().line,r=B.headers.findLastIndex(n=>n.position.start.line<o);r!=-1&&this.navigator.jump(r)}}),this.addCommand({id:"next-heading",name:"To next heading",editorCallback:t=>{let o=t.getCursor().line,r=B.headers.findIndex(n=>n.position.start.line>o);r!=-1&&this.navigator.jump(r)}})}};var ZP=$s; +/*! Bundled license information: + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) <https://lodash.com/> + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> + * Released under MIT license <https://lodash.com/license> + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) +*/ /* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-quiet-outline/manifest.json b/.obsidian/plugins/obsidian-quiet-outline/manifest.json index 8f36f59..2f1ec9f 100644 --- a/.obsidian/plugins/obsidian-quiet-outline/manifest.json +++ b/.obsidian/plugins/obsidian-quiet-outline/manifest.json @@ -1,11 +1,11 @@ { - "id": "obsidian-quiet-outline", - "name": "Quiet Outline", - "version": "0.3.40", - "minAppVersion": "0.15.6", - "description": "Make outline quiet and more powerful, including no-auto-expand, rendering heading as markdown, and search support.", - "author": "the_tree", - "authorUrl": "", - "fundingUrl": "https://www.buymeacoffee.com/thtree", - "isDesktopOnly": false -} \ No newline at end of file + "id": "obsidian-quiet-outline", + "name": "Quiet Outline", + "version": "0.3.43", + "minAppVersion": "0.15.6", + "description": "Make outline quiet and more powerful, including no-auto-expand, rendering heading as markdown, and search support.", + "author": "the_tree", + "authorUrl": "", + "fundingUrl": "https://www.buymeacoffee.com/thtree", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-quiet-outline/styles.css b/.obsidian/plugins/obsidian-quiet-outline/styles.css index 40ffc50..dafb912 100644 --- a/.obsidian/plugins/obsidian-quiet-outline/styles.css +++ b/.obsidian/plugins/obsidian-quiet-outline/styles.css @@ -27,10 +27,11 @@ white-space: nowrap; } .quiet-outline .n-tree.ellipsis .n-tree-node-content__text { - width: 100%; + overflow: hidden; } .quiet-outline .n-tree.ellipsis .n-tree-node-content { - width: 90%; + overflow: hidden; + flex: 1; } .quiet-outline .n-tree.n-tree--block-line .n-tree-node:not(.n-tree-node--disabled):hover { color: var(--nav-item-color-active); @@ -133,6 +134,9 @@ } /* main.css */ +.quiet-outline .n-tree { + padding-top: 5px; +} .quiet-outline .n-tree .n-tree-node-indent { content: ""; height: unset; @@ -143,28 +147,28 @@ .quiet-outline .level-4 .n-tree-node-indent:first-child, .quiet-outline .level-5 .n-tree-node-indent:first-child, .quiet-outline .level-6 .n-tree-node-indent:first-child { - border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor1); + border-right: var(--nav-indentation-guide-width) solid var(--61117f8c-rainbowColor1); } .quiet-outline .level-3 .n-tree-node-indent, .quiet-outline .level-4 .n-tree-node-indent:nth-child(2), .quiet-outline .level-5 .n-tree-node-indent:nth-child(2), .quiet-outline .level-6 .n-tree-node-indent:nth-child(2) { - border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor2); + border-right: var(--nav-indentation-guide-width) solid var(--61117f8c-rainbowColor2); } .quiet-outline .level-4 .n-tree-node-indent, .quiet-outline .level-5 .n-tree-node-indent:nth-child(3), .quiet-outline .level-6 .n-tree-node-indent:nth-child(3) { - border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor3); + border-right: var(--nav-indentation-guide-width) solid var(--61117f8c-rainbowColor3); } .quiet-outline .level-5 .n-tree-node-indent, .quiet-outline .level-6 .n-tree-node-indent:nth-child(4) { - border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor4); + border-right: var(--nav-indentation-guide-width) solid var(--61117f8c-rainbowColor4); } .quiet-outline .level-6 .n-tree-node-indent { - border-right: var(--nav-indentation-guide-width) solid var(--8de97876-rainbowColor5); + border-right: var(--nav-indentation-guide-width) solid var(--61117f8c-rainbowColor5); } .n-tree-node.located p { - color: var(--8de97876-locatedColor); + color: var(--61117f8c-locatedColor); } .quiet-outline .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__prefix { margin-right: 0; diff --git a/.obsidian/plugins/obsidian-tasks-plugin/main.js b/.obsidian/plugins/obsidian-tasks-plugin/main.js index 2007a2b..1c030e7 100644 --- a/.obsidian/plugins/obsidian-tasks-plugin/main.js +++ b/.obsidian/plugins/obsidian-tasks-plugin/main.js @@ -161,29 +161,29 @@ MIT License Copyright (c) 2022 Elias Mangoro */ -"use strict";var Ox=Object.create;var $o=Object.defineProperty,Cx=Object.defineProperties,Mx=Object.getOwnPropertyDescriptor,Rx=Object.getOwnPropertyDescriptors,Ax=Object.getOwnPropertyNames,Pu=Object.getOwnPropertySymbols,Px=Object.getPrototypeOf,Af=Object.prototype.hasOwnProperty,vb=Object.prototype.propertyIsEnumerable;var _b=(n,t,e)=>t in n?$o(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,U=(n,t)=>{for(var e in t||(t={}))Af.call(t,e)&&_b(n,e,t[e]);if(Pu)for(var e of Pu(t))vb.call(t,e)&&_b(n,e,t[e]);return n},me=(n,t)=>Cx(n,Rx(t));var pa=(n,t)=>{var e={};for(var r in n)Af.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&Pu)for(var r of Pu(n))t.indexOf(r)<0&&vb.call(n,r)&&(e[r]=n[r]);return e};var ee=(n,t)=>()=>(n&&(t=n(n=0)),t);var x=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),wb=(n,t)=>{for(var e in t)$o(n,e,{get:t[e],enumerable:!0})},kb=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ax(t))!Af.call(n,i)&&i!==e&&$o(n,i,{get:()=>t[i],enumerable:!(r=Mx(t,i))||r.enumerable});return n};var qo=(n,t,e)=>(e=n!=null?Ox(Px(n)):{},kb(t||!n||!n.__esModule?$o(e,"default",{value:n,enumerable:!0}):e,n)),Sb=n=>kb($o({},"__esModule",{value:!0}),n);var L=(n,t,e)=>new Promise((r,i)=>{var s=l=>{try{o(e.next(l))}catch(u){i(u)}},a=l=>{try{o(e.throw(l))}catch(u){i(u)}},o=l=>l.done?r(l.value):Promise.resolve(l.value).then(s,a);o((e=e.apply(n,t)).next())});var Te,Ho,Eb,Nx,Ix,Db,xb,Go,Ob,Fx,Iu,Lx,Ib,ma,Ux,Yx,Nf,jx,Wx,$x,If,Fu,qx,ga,Ur,ya,Lu,Fb,Cb,ba,Uu,Mb,Rb,Ff,Ab,Pf,Lf,Hx,ha,Uf,Gx,Yf,Pb,Nb,Nu,Bx,hs,yt,BY,VY,zY,KY,QY,XY,ZY,JY,ej,tj,nj,rj,ij,sj,Lb=ee(()=>{Te=n=>typeof n=="string",Ho=()=>{let n,t,e=new Promise((r,i)=>{n=r,t=i});return e.resolve=n,e.reject=t,e},Eb=n=>n==null?"":""+n,Nx=(n,t,e)=>{n.forEach(r=>{t[r]&&(e[r]=t[r])})},Ix=/###/g,Db=n=>n&&n.indexOf("###")>-1?n.replace(Ix,"."):n,xb=n=>!n||Te(n),Go=(n,t,e)=>{let r=Te(t)?t.split("."):t,i=0;for(;i<r.length-1;){if(xb(n))return{};let s=Db(r[i]);!n[s]&&e&&(n[s]=new e),Object.prototype.hasOwnProperty.call(n,s)?n=n[s]:n={},++i}return xb(n)?{}:{obj:n,k:Db(r[i])}},Ob=(n,t,e)=>{let{obj:r,k:i}=Go(n,t,Object);if(r!==void 0||t.length===1){r[i]=e;return}let s=t[t.length-1],a=t.slice(0,t.length-1),o=Go(n,a,Object);for(;o.obj===void 0&&a.length;)s=`${a[a.length-1]}.${s}`,a=a.slice(0,a.length-1),o=Go(n,a,Object),(o==null?void 0:o.obj)&&typeof o.obj[`${o.k}.${s}`]!="undefined"&&(o.obj=void 0);o.obj[`${o.k}.${s}`]=e},Fx=(n,t,e,r)=>{let{obj:i,k:s}=Go(n,t,Object);i[s]=i[s]||[],i[s].push(e)},Iu=(n,t)=>{let{obj:e,k:r}=Go(n,t);if(!!e&&!!Object.prototype.hasOwnProperty.call(e,r))return e[r]},Lx=(n,t,e)=>{let r=Iu(n,e);return r!==void 0?r:Iu(t,e)},Ib=(n,t,e)=>{for(let r in t)r!=="__proto__"&&r!=="constructor"&&(r in n?Te(n[r])||n[r]instanceof String||Te(t[r])||t[r]instanceof String?e&&(n[r]=t[r]):Ib(n[r],t[r],e):n[r]=t[r]);return n},ma=n=>n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),Ux={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},Yx=n=>Te(n)?n.replace(/[&<>"'\/]/g,t=>Ux[t]):n,Nf=class{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){let e=this.regExpMap.get(t);if(e!==void 0)return e;let r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}},jx=[" ",",","?","!",";"],Wx=new Nf(20),$x=(n,t,e)=>{t=t||"",e=e||"";let r=jx.filter(a=>t.indexOf(a)<0&&e.indexOf(a)<0);if(r.length===0)return!0;let i=Wx.getRegExp(`(${r.map(a=>a==="?"?"\\?":a).join("|")})`),s=!i.test(n);if(!s){let a=n.indexOf(e);a>0&&!i.test(n.substring(0,a))&&(s=!0)}return s},If=function(n,t){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!n)return;if(n[t])return Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0;let r=t.split(e),i=n;for(let s=0;s<r.length;){if(!i||typeof i!="object")return;let a,o="";for(let l=s;l<r.length;++l)if(l!==s&&(o+=e),o+=r[l],a=i[o],a!==void 0){if(["string","number","boolean"].indexOf(typeof a)>-1&&l<r.length-1)continue;s+=l-s+1;break}i=a}return i},Fu=n=>n==null?void 0:n.replace("_","-"),qx={type:"logger",log(n){this.output("log",n)},warn(n){this.output("warn",n)},error(n){this.output("error",n)},output(n,t){var e,r;(r=(e=console==null?void 0:console[n])==null?void 0:e.apply)==null||r.call(e,console,t)}},ga=class{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,e)}init(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||qx,this.options=e,this.debug=e.debug}log(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return this.forward(e,"log","",!0)}warn(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return this.forward(e,"warn","",!0)}error(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return this.forward(e,"error","")}deprecate(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(t,e,r,i){return i&&!this.debug?null:(Te(t[0])&&(t[0]=`${r}${this.prefix} ${t[0]}`),this.logger[e](t))}create(t){return new ga(this.logger,U({prefix:`${this.prefix}:${t}:`},this.options))}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new ga(this.logger,t)}},Ur=new ga,ya=class{constructor(){this.observers={}}on(t,e){return t.split(" ").forEach(r=>{this.observers[r]||(this.observers[r]=new Map);let i=this.observers[r].get(e)||0;this.observers[r].set(e,i+1)}),this}off(t,e){if(!!this.observers[t]){if(!e){delete this.observers[t];return}this.observers[t].delete(e)}}emit(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];this.observers[t]&&Array.from(this.observers[t].entries()).forEach(a=>{let[o,l]=a;for(let u=0;u<l;u++)o(...r)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(a=>{let[o,l]=a;for(let u=0;u<l;u++)o.apply(o,[t,...r])})}},Lu=class extends ya{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=e,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){let e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)}getResource(t,e,r){var u,c;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,a=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure,o;t.indexOf(".")>-1?o=t.split("."):(o=[t,e],r&&(Array.isArray(r)?o.push(...r):Te(r)&&s?o.push(...r.split(s)):o.push(r)));let l=Iu(this.data,o);return!l&&!e&&!r&&t.indexOf(".")>-1&&(t=o[0],e=o[1],r=o.slice(2).join(".")),l||!a||!Te(r)?l:If((c=(u=this.data)==null?void 0:u[t])==null?void 0:c[e],r,s)}addResource(t,e,r,i){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1},a=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,o=[t,e];r&&(o=o.concat(a?r.split(a):r)),t.indexOf(".")>-1&&(o=t.split("."),i=e,e=o[1]),this.addNamespaces(e),Ob(this.data,o,i),s.silent||this.emit("added",t,e,r,i)}addResources(t,e,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(let s in r)(Te(r[s])||Array.isArray(r[s]))&&this.addResource(t,e,s,r[s],{silent:!0});i.silent||this.emit("added",t,e,r)}addResourceBundle(t,e,r,i,s){let a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},o=[t,e];t.indexOf(".")>-1&&(o=t.split("."),i=r,r=e,e=o[1]),this.addNamespaces(e);let l=Iu(this.data,o)||{};a.skipCopy||(r=JSON.parse(JSON.stringify(r))),i?Ib(l,r,s):l=U(U({},l),r),Ob(this.data,o,l),a.silent||this.emit("added",t,e,r)}removeResourceBundle(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)}hasResourceBundle(t,e){return this.getResource(t,e)!==void 0}getResourceBundle(t,e){return e||(e=this.options.defaultNS),this.getResource(t,e)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){let e=this.getDataByLanguage(t);return!!(e&&Object.keys(e)||[]).find(i=>e[i]&&Object.keys(e[i]).length>0)}toJSON(){return this.data}},Fb={processors:{},addPostProcessor(n){this.processors[n.name]=n},handle(n,t,e,r,i){return n.forEach(s=>{var a,o;t=(o=(a=this.processors[s])==null?void 0:a.process(t,e,r,i))!=null?o:t}),t}},Cb={},ba=class extends ya{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Nx(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=e,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ur.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;let r=this.resolve(t,e);return(r==null?void 0:r.res)!==void 0}extractFromKey(t,e){let r=e.nsSeparator!==void 0?e.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");let i=e.keySeparator!==void 0?e.keySeparator:this.options.keySeparator,s=e.ns||this.options.defaultNS||[],a=r&&t.indexOf(r)>-1,o=!this.options.userDefinedKeySeparator&&!e.keySeparator&&!this.options.userDefinedNsSeparator&&!e.nsSeparator&&!$x(t,r,i);if(a&&!o){let l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:Te(s)?[s]:s};let u=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(u[0])>-1)&&(s=u.shift()),t=u.join(i)}return{key:t,namespaces:Te(s)?[s]:s}}translate(t,e,r){if(typeof e!="object"&&this.options.overloadTranslationOptionHandler&&(e=this.options.overloadTranslationOptionHandler(arguments)),typeof e=="object"&&(e=U({},e)),e||(e={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);let i=e.returnDetails!==void 0?e.returnDetails:this.options.returnDetails,s=e.keySeparator!==void 0?e.keySeparator:this.options.keySeparator,{key:a,namespaces:o}=this.extractFromKey(t[t.length-1],e),l=o[o.length-1],u=e.lng||this.language,c=e.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if((u==null?void 0:u.toLowerCase())==="cimode"){if(c){let Y=e.nsSeparator||this.options.nsSeparator;return i?{res:`${l}${Y}${a}`,usedKey:a,exactUsedKey:a,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(e)}:`${l}${Y}${a}`}return i?{res:a,usedKey:a,exactUsedKey:a,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(e)}:a}let d=this.resolve(t,e),f=d==null?void 0:d.res,p=(d==null?void 0:d.usedKey)||a,b=(d==null?void 0:d.exactUsedKey)||a,T=Object.prototype.toString.apply(f),_=["[object Number]","[object Function]","[object RegExp]"],O=e.joinArrays!==void 0?e.joinArrays:this.options.joinArrays,D=!this.i18nFormat||this.i18nFormat.handleAsObject,A=!Te(f)&&typeof f!="boolean"&&typeof f!="number";if(D&&f&&A&&_.indexOf(T)<0&&!(Te(O)&&Array.isArray(f))){if(!e.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");let Y=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,f,me(U({},e),{ns:o})):`key '${a} (${this.language})' returned an object instead of string.`;return i?(d.res=Y,d.usedParams=this.getUsedParamsDetails(e),d):Y}if(s){let Y=Array.isArray(f),q=Y?[]:{},se=Y?b:p;for(let H in f)if(Object.prototype.hasOwnProperty.call(f,H)){let Z=`${se}${s}${H}`;q[H]=this.translate(Z,me(U({},e),{joinArrays:!1,ns:o})),q[H]===Z&&(q[H]=f[H])}f=q}}else if(D&&Te(O)&&Array.isArray(f))f=f.join(O),f&&(f=this.extendTranslation(f,t,e,r));else{let Y=!1,q=!1,se=e.count!==void 0&&!Te(e.count),H=ba.hasDefaultValue(e),Z=se?this.pluralResolver.getSuffix(u,e.count,e):"",ye=e.ordinal&&se?this.pluralResolver.getSuffix(u,e.count,{ordinal:!1}):"",we=se&&!e.ordinal&&e.count===0,V=we&&e[`defaultValue${this.options.pluralSeparator}zero`]||e[`defaultValue${Z}`]||e[`defaultValue${ye}`]||e.defaultValue;!this.isValidLookup(f)&&H&&(Y=!0,f=V),this.isValidLookup(f)||(q=!0,f=a);let C=(e.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&q?void 0:f,J=H&&V!==f&&this.options.updateMissing;if(q||Y||J){if(this.logger.log(J?"updateKey":"missingKey",u,l,a,J?V:f),s){let y=this.resolve(a,me(U({},e),{keySeparator:!1}));y&&y.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let $=[],oe=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if(this.options.saveMissingTo==="fallback"&&oe&&oe[0])for(let y=0;y<oe.length;y++)$.push(oe[y]);else this.options.saveMissingTo==="all"?$=this.languageUtils.toResolveHierarchy(e.lng||this.language):$.push(e.lng||this.language);let m=(y,v,w)=>{var M;let S=H&&w!==f?w:C;this.options.missingKeyHandler?this.options.missingKeyHandler(y,l,v,S,J,e):(M=this.backendConnector)!=null&&M.saveMissing&&this.backendConnector.saveMissing(y,l,v,S,J,e),this.emit("missingKey",y,l,v,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&se?$.forEach(y=>{let v=this.pluralResolver.getSuffixes(y,e);we&&e[`defaultValue${this.options.pluralSeparator}zero`]&&v.indexOf(`${this.options.pluralSeparator}zero`)<0&&v.push(`${this.options.pluralSeparator}zero`),v.forEach(w=>{m([y],a+w,e[`defaultValue${w}`]||V)})}):m($,a,V))}f=this.extendTranslation(f,t,e,d,r),q&&f===a&&this.options.appendNamespaceToMissingKey&&(f=`${l}:${a}`),(q||Y)&&this.options.parseMissingKeyHandler&&(f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${a}`:a,Y?f:void 0))}return i?(d.res=f,d.usedParams=this.getUsedParamsDetails(e),d):f}extendTranslation(t,e,r,i,s){var u,c;var a=this;if((u=this.i18nFormat)!=null&&u.parse)t=this.i18nFormat.parse(t,U(U({},this.options.interpolation.defaultVariables),r),r.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init(me(U({},r),{interpolation:U(U({},this.options.interpolation),r.interpolation)}));let d=Te(t)&&(((c=r==null?void 0:r.interpolation)==null?void 0:c.skipOnVariables)!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables),f;if(d){let b=t.match(this.interpolator.nestingRegexp);f=b&&b.length}let p=r.replace&&!Te(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(p=U(U({},this.options.interpolation.defaultVariables),p)),t=this.interpolator.interpolate(t,p,r.lng||this.language||i.usedLng,r),d){let b=t.match(this.interpolator.nestingRegexp),T=b&&b.length;f<T&&(r.nest=!1)}!r.lng&&i&&i.res&&(r.lng=this.language||i.usedLng),r.nest!==!1&&(t=this.interpolator.nest(t,function(){for(var b=arguments.length,T=new Array(b),_=0;_<b;_++)T[_]=arguments[_];return(s==null?void 0:s[0])===T[0]&&!r.context?(a.logger.warn(`It seems you are nesting recursively key: ${T[0]} in key: ${e[0]}`),null):a.translate(...T,e)},r)),r.interpolation&&this.interpolator.reset()}let o=r.postProcess||this.options.postProcess,l=Te(o)?[o]:o;return t!=null&&(l==null?void 0:l.length)&&r.applyPostProcessor!==!1&&(t=Fb.handle(l,t,e,this.options&&this.options.postProcessPassResolved?U({i18nResolved:me(U({},i),{usedParams:this.getUsedParamsDetails(r)})},r):r,this)),t}resolve(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r,i,s,a,o;return Te(t)&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(r))return;let u=this.extractFromKey(l,e),c=u.key;i=c;let d=u.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));let f=e.count!==void 0&&!Te(e.count),p=f&&!e.ordinal&&e.count===0,b=e.context!==void 0&&(Te(e.context)||typeof e.context=="number")&&e.context!=="",T=e.lngs?e.lngs:this.languageUtils.toResolveHierarchy(e.lng||this.language,e.fallbackLng);d.forEach(_=>{var O,D;this.isValidLookup(r)||(o=_,!Cb[`${T[0]}-${_}`]&&((O=this.utils)==null?void 0:O.hasLoadedNamespace)&&!((D=this.utils)!=null&&D.hasLoadedNamespace(o))&&(Cb[`${T[0]}-${_}`]=!0,this.logger.warn(`key "${i}" for languages "${T.join(", ")}" won't get resolved as namespace "${o}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),T.forEach(A=>{var se;if(this.isValidLookup(r))return;a=A;let Y=[c];if((se=this.i18nFormat)!=null&&se.addLookupKeys)this.i18nFormat.addLookupKeys(Y,c,A,_,e);else{let H;f&&(H=this.pluralResolver.getSuffix(A,e.count,e));let Z=`${this.options.pluralSeparator}zero`,ye=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(f&&(Y.push(c+H),e.ordinal&&H.indexOf(ye)===0&&Y.push(c+H.replace(ye,this.options.pluralSeparator)),p&&Y.push(c+Z)),b){let we=`${c}${this.options.contextSeparator}${e.context}`;Y.push(we),f&&(Y.push(we+H),e.ordinal&&H.indexOf(ye)===0&&Y.push(we+H.replace(ye,this.options.pluralSeparator)),p&&Y.push(we+Z))}}let q;for(;q=Y.pop();)this.isValidLookup(r)||(s=q,r=this.getResource(A,_,q,e))}))})}),{res:r,usedKey:i,exactUsedKey:s,usedLng:a,usedNS:o}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,e,r){var s;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return(s=this.i18nFormat)!=null&&s.getResource?this.i18nFormat.getResource(t,e,r,i):this.resourceStore.getResource(t,e,r,i)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&!Te(t.replace),i=r?t.replace:t;if(r&&typeof t.count!="undefined"&&(i.count=t.count),this.options.interpolation.defaultVariables&&(i=U(U({},this.options.interpolation.defaultVariables),i)),!r){i=U({},i);for(let s of e)delete i[s]}return i}static hasDefaultValue(t){let e="defaultValue";for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e===r.substring(0,e.length)&&t[r]!==void 0)return!0;return!1}},Uu=class{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ur.create("languageUtils")}getScriptPartFromCode(t){if(t=Fu(t),!t||t.indexOf("-")<0)return null;let e=t.split("-");return e.length===2||(e.pop(),e[e.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(e.join("-"))}getLanguagePartFromCode(t){if(t=Fu(t),!t||t.indexOf("-")<0)return t;let e=t.split("-");return this.formatLanguageCode(e[0])}formatLanguageCode(t){if(Te(t)&&t.indexOf("-")>-1){let e;try{e=Intl.getCanonicalLocales(t)[0]}catch(r){}return e&&this.options.lowerCaseLng&&(e=e.toLowerCase()),e||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let e;return t.forEach(r=>{if(e)return;let i=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(i))&&(e=i)}),!e&&this.options.supportedLngs&&t.forEach(r=>{if(e)return;let i=this.getLanguagePartFromCode(r);if(this.isSupportedCode(i))return e=i;e=this.options.supportedLngs.find(s=>{if(s===i)return s;if(!(s.indexOf("-")<0&&i.indexOf("-")<0)&&(s.indexOf("-")>0&&i.indexOf("-")<0&&s.substring(0,s.indexOf("-"))===i||s.indexOf(i)===0&&i.length>1))return s})}),e||(e=this.getFallbackCodes(this.options.fallbackLng)[0]),e}getFallbackCodes(t,e){if(!t)return[];if(typeof t=="function"&&(t=t(e)),Te(t)&&(t=[t]),Array.isArray(t))return t;if(!e)return t.default||[];let r=t[e];return r||(r=t[this.getScriptPartFromCode(e)]),r||(r=t[this.formatLanguageCode(e)]),r||(r=t[this.getLanguagePartFromCode(e)]),r||(r=t.default),r||[]}toResolveHierarchy(t,e){let r=this.getFallbackCodes(e||this.options.fallbackLng||[],t),i=[],s=a=>{!a||(this.isSupportedCode(a)?i.push(a):this.logger.warn(`rejecting language code not found in supportedLngs: ${a}`))};return Te(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(t))):Te(t)&&s(this.formatLanguageCode(t)),r.forEach(a=>{i.indexOf(a)<0&&s(this.formatLanguageCode(a))}),i}},Mb={zero:0,one:1,two:2,few:3,many:4,other:5},Rb={select:n=>n===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})},Ff=class{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=e,this.logger=Ur.create("pluralResolver"),this.pluralRulesCache={}}addRule(t,e){this.rules[t]=e}clearCache(){this.pluralRulesCache={}}getRule(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=Fu(t==="dev"?"en":t),i=e.ordinal?"ordinal":"cardinal",s=JSON.stringify({cleanedCode:r,type:i});if(s in this.pluralRulesCache)return this.pluralRulesCache[s];let a;try{a=new Intl.PluralRules(r,{type:i})}catch(o){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Rb;if(!t.match(/-|_/))return Rb;let l=this.languageUtils.getLanguagePartFromCode(t);a=this.getRule(l,e)}return this.pluralRulesCache[s]=a,a}needsPlural(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=this.getRule(t,e);return r||(r=this.getRule("dev",e)),(r==null?void 0:r.resolvedOptions().pluralCategories.length)>1}getPluralFormsOfKey(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(i=>`${e}${i}`)}getSuffixes(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=this.getRule(t,e);return r||(r=this.getRule("dev",e)),r?r.resolvedOptions().pluralCategories.sort((i,s)=>Mb[i]-Mb[s]).map(i=>`${this.options.prepend}${e.ordinal?`ordinal${this.options.prepend}`:""}${i}`):[]}getSuffix(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=this.getRule(t,r);return i?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i.select(e)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",e,r))}},Ab=function(n,t,e){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=Lx(n,t,e);return!s&&i&&Te(e)&&(s=If(n,e,r),s===void 0&&(s=If(t,e,r))),s},Pf=n=>n.replace(/\$/g,"$$$$"),Lf=class{constructor(){var e;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ur.create("interpolator"),this.options=t,this.format=((e=t==null?void 0:t.interpolation)==null?void 0:e.format)||(r=>r),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});let{escape:e,escapeValue:r,useRawValueToEscape:i,prefix:s,prefixEscaped:a,suffix:o,suffixEscaped:l,formatSeparator:u,unescapeSuffix:c,unescapePrefix:d,nestingPrefix:f,nestingPrefixEscaped:p,nestingSuffix:b,nestingSuffixEscaped:T,nestingOptionsSeparator:_,maxReplaces:O,alwaysFormat:D}=t.interpolation;this.escape=e!==void 0?e:Yx,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=s?ma(s):a||"{{",this.suffix=o?ma(o):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=c?"":d||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=f?ma(f):p||ma("$t("),this.nestingSuffix=b?ma(b):T||ma(")"),this.nestingOptionsSeparator=_||",",this.maxReplaces=O||1e3,this.alwaysFormat=D!==void 0?D:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let t=(e,r)=>(e==null?void 0:e.source)===r?(e.lastIndex=0,e):new RegExp(r,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,e,r,i){var p;let s,a,o,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=b=>{if(b.indexOf(this.formatSeparator)<0){let D=Ab(e,l,b,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(D,void 0,r,me(U(U({},i),e),{interpolationkey:b})):D}let T=b.split(this.formatSeparator),_=T.shift().trim(),O=T.join(this.formatSeparator).trim();return this.format(Ab(e,l,_,this.options.keySeparator,this.options.ignoreJSONStructure),O,r,me(U(U({},i),e),{interpolationkey:_}))};this.resetRegExp();let c=(i==null?void 0:i.missingInterpolationHandler)||this.options.missingInterpolationHandler,d=((p=i==null?void 0:i.interpolation)==null?void 0:p.skipOnVariables)!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:b=>Pf(b)},{regex:this.regexp,safeValue:b=>this.escapeValue?Pf(this.escape(b)):Pf(b)}].forEach(b=>{for(o=0;s=b.regex.exec(t);){let T=s[1].trim();if(a=u(T),a===void 0)if(typeof c=="function"){let O=c(t,s,i);a=Te(O)?O:""}else if(i&&Object.prototype.hasOwnProperty.call(i,T))a="";else if(d){a=s[0];continue}else this.logger.warn(`missed to pass in variable ${T} for interpolating ${t}`),a="";else!Te(a)&&!this.useRawValueToEscape&&(a=Eb(a));let _=b.safeValue(a);if(t=t.replace(s[0],_),d?(b.regex.lastIndex+=a.length,b.regex.lastIndex-=s[0].length):b.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),t}nest(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i,s,a,o=(l,u)=>{var T;let c=this.nestingOptionsSeparator;if(l.indexOf(c)<0)return l;let d=l.split(new RegExp(`${c}[ ]*{`)),f=`{${d[1]}`;l=d[0],f=this.interpolate(f,a);let p=f.match(/'/g),b=f.match(/"/g);(((T=p==null?void 0:p.length)!=null?T:0)%2===0&&!b||b.length%2!==0)&&(f=f.replace(/'/g,'"'));try{a=JSON.parse(f),u&&(a=U(U({},u),a))}catch(_){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,_),`${l}${c}${f}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,l};for(;i=this.nestingRegexp.exec(t);){let l=[];a=U({},r),a=a.replace&&!Te(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let u=!1;if(i[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(i[1])){let c=i[1].split(this.formatSeparator).map(d=>d.trim());i[1]=c.shift(),l=c,u=!0}if(s=e(o.call(this,i[1].trim(),a),a),s&&i[0]===t&&!Te(s))return s;Te(s)||(s=Eb(s)),s||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${t}`),s=""),u&&(s=l.reduce((c,d)=>this.format(c,d,r.lng,me(U({},r),{interpolationkey:i[1].trim()})),s.trim())),t=t.replace(i[0],s),this.regexp.lastIndex=0}return t}},Hx=n=>{let t=n.toLowerCase().trim(),e={};if(n.indexOf("(")>-1){let r=n.split("(");t=r[0].toLowerCase().trim();let i=r[1].substring(0,r[1].length-1);t==="currency"&&i.indexOf(":")<0?e.currency||(e.currency=i.trim()):t==="relativetime"&&i.indexOf(":")<0?e.range||(e.range=i.trim()):i.split(";").forEach(a=>{if(a){let[o,...l]=a.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),c=o.trim();e[c]||(e[c]=u),u==="false"&&(e[c]=!1),u==="true"&&(e[c]=!0),isNaN(u)||(e[c]=parseInt(u,10))}})}return{formatName:t,formatOptions:e}},ha=n=>{let t={};return(e,r,i)=>{let s=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(s=me(U({},s),{[i.interpolationkey]:void 0}));let a=r+JSON.stringify(s),o=t[a];return o||(o=n(Fu(r),i),t[a]=o),o(e)}},Uf=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ur.create("formatter"),this.options=t,this.formats={number:ha((e,r)=>{let i=new Intl.NumberFormat(e,U({},r));return s=>i.format(s)}),currency:ha((e,r)=>{let i=new Intl.NumberFormat(e,me(U({},r),{style:"currency"}));return s=>i.format(s)}),datetime:ha((e,r)=>{let i=new Intl.DateTimeFormat(e,U({},r));return s=>i.format(s)}),relativetime:ha((e,r)=>{let i=new Intl.RelativeTimeFormat(e,U({},r));return s=>i.format(s,r.range||"day")}),list:ha((e,r)=>{let i=new Intl.ListFormat(e,U({},r));return s=>i.format(s)})},this.init(t)}init(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=e.interpolation.formatSeparator||","}add(t,e){this.formats[t.toLowerCase().trim()]=e}addCached(t,e){this.formats[t.toLowerCase().trim()]=ha(e)}format(t,e,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=e.split(this.formatSeparator);if(s.length>1&&s[0].indexOf("(")>1&&s[0].indexOf(")")<0&&s.find(o=>o.indexOf(")")>-1)){let o=s.findIndex(l=>l.indexOf(")")>-1);s[0]=[s[0],...s.splice(1,o)].join(this.formatSeparator)}return s.reduce((o,l)=>{var d;let{formatName:u,formatOptions:c}=Hx(l);if(this.formats[u]){let f=o;try{let p=((d=i==null?void 0:i.formatParams)==null?void 0:d[i.interpolationkey])||{},b=p.locale||p.lng||i.locale||i.lng||r;f=this.formats[u](o,b,U(U(U({},c),i),p))}catch(p){this.logger.warn(p)}return f}else this.logger.warn(`there was no format function for ${u}`);return o},t)}},Gx=(n,t)=>{n.pending[t]!==void 0&&(delete n.pending[t],n.pendingCount--)},Yf=class extends ya{constructor(t,e,r){var s,a;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=e,this.services=r,this.languageUtils=r.languageUtils,this.options=i,this.logger=Ur.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],(a=(s=this.backend)==null?void 0:s.init)==null||a.call(s,r,i.backend,i)}queueLoad(t,e,r,i){let s={},a={},o={},l={};return t.forEach(u=>{let c=!0;e.forEach(d=>{let f=`${u}|${d}`;!r.reload&&this.store.hasResourceBundle(u,d)?this.state[f]=2:this.state[f]<0||(this.state[f]===1?a[f]===void 0&&(a[f]=!0):(this.state[f]=1,c=!1,a[f]===void 0&&(a[f]=!0),s[f]===void 0&&(s[f]=!0),l[d]===void 0&&(l[d]=!0)))}),c||(o[u]=!0)}),(Object.keys(s).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(s),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(l)}}loaded(t,e,r){let i=t.split("|"),s=i[0],a=i[1];e&&this.emit("failedLoading",s,a,e),!e&&r&&this.store.addResourceBundle(s,a,r,void 0,void 0,{skipCopy:!0}),this.state[t]=e?-1:2,e&&r&&(this.state[t]=0);let o={};this.queue.forEach(l=>{Fx(l.loaded,[s],a),Gx(l,t),e&&l.errors.push(e),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{o[u]||(o[u]={});let c=l.loaded[u];c.length&&c.forEach(d=>{o[u][d]===void 0&&(o[u][d]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",o),this.queue=this.queue.filter(l=>!l.done)}read(t,e,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,a=arguments.length>5?arguments[5]:void 0;if(!t.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:e,fcName:r,tried:i,wait:s,callback:a});return}this.readingCalls++;let o=(u,c)=>{if(this.readingCalls--,this.waitingReads.length>0){let d=this.waitingReads.shift();this.read(d.lng,d.ns,d.fcName,d.tried,d.wait,d.callback)}if(u&&c&&i<this.maxRetries){setTimeout(()=>{this.read.call(this,t,e,r,i+1,s*2,a)},s);return}a(u,c)},l=this.backend[r].bind(this.backend);if(l.length===2){try{let u=l(t,e);u&&typeof u.then=="function"?u.then(c=>o(null,c)).catch(o):o(null,u)}catch(u){o(u)}return}return l(t,e,o)}prepareLoading(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();Te(t)&&(t=this.languageUtils.toResolveHierarchy(t)),Te(e)&&(e=[e]);let s=this.queueLoad(t,e,r,i);if(!s.toLoad.length)return s.pending.length||i(),null;s.toLoad.forEach(a=>{this.loadOne(a)})}load(t,e,r){this.prepareLoading(t,e,{},r)}reload(t,e,r){this.prepareLoading(t,e,{reload:!0},r)}loadOne(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=t.split("|"),i=r[0],s=r[1];this.read(i,s,"read",void 0,void 0,(a,o)=>{a&&this.logger.warn(`${e}loading namespace ${s} for language ${i} failed`,a),!a&&o&&this.logger.log(`${e}loaded namespace ${s} for language ${i}`,o),this.loaded(t,a,o)})}saveMissing(t,e,r,i,s){var l,u,c,d,f;let a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(((u=(l=this.services)==null?void 0:l.utils)==null?void 0:u.hasLoadedNamespace)&&!((d=(c=this.services)==null?void 0:c.utils)!=null&&d.hasLoadedNamespace(e))){this.logger.warn(`did not save key "${r}" as the namespace "${e}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if((f=this.backend)!=null&&f.create){let p=me(U({},a),{isUpdate:s}),b=this.backend.create.bind(this.backend);if(b.length<6)try{let T;b.length===5?T=b(t,e,r,i,p):T=b(t,e,r,i),T&&typeof T.then=="function"?T.then(_=>o(null,_)).catch(o):o(null,T)}catch(T){o(T)}else b(t,e,r,i,o,p)}!t||!t[0]||this.store.addResource(t[0],e,r,i)}}},Pb=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:n=>{let t={};if(typeof n[1]=="object"&&(t=n[1]),Te(n[1])&&(t.defaultValue=n[1]),Te(n[2])&&(t.tDescription=n[2]),typeof n[2]=="object"||typeof n[3]=="object"){let e=n[3]||n[2];Object.keys(e).forEach(r=>{t[r]=e[r]})}return t},interpolation:{escapeValue:!0,format:n=>n,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Nb=n=>{var t,e;return Te(n.ns)&&(n.ns=[n.ns]),Te(n.fallbackLng)&&(n.fallbackLng=[n.fallbackLng]),Te(n.fallbackNS)&&(n.fallbackNS=[n.fallbackNS]),((e=(t=n.supportedLngs)==null?void 0:t.indexOf)==null?void 0:e.call(t,"cimode"))<0&&(n.supportedLngs=n.supportedLngs.concat(["cimode"])),typeof n.initImmediate=="boolean"&&(n.initAsync=n.initImmediate),n},Nu=()=>{},Bx=n=>{Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach(e=>{typeof n[e]=="function"&&(n[e]=n[e].bind(n))})},hs=class extends ya{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Nb(t),this.services={},this.logger=Ur,this.modules={external:[]},Bx(this),e&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,e),this;setTimeout(()=>{this.init(t,e)},0)}}init(){var t=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof e=="function"&&(r=e,e={}),e.defaultNS==null&&e.ns&&(Te(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));let i=Pb();this.options=U(U(U({},i),this.options),Nb(e)),this.options.interpolation=U(U({},i.interpolation),this.options.interpolation),e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator);let s=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?Ur.init(s(this.modules.logger),this.options):Ur.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:c=Uf;let d=new Uu(this.options);this.store=new Lu(this.options.resources,this.options);let f=this.services;f.logger=Ur,f.resourceStore=this.store,f.languageUtils=d,f.pluralResolver=new Ff(d,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(f.formatter=s(c),f.formatter.init(f,this.options),this.options.interpolation.format=f.formatter.format.bind(f.formatter)),f.interpolator=new Lf(this.options),f.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},f.backendConnector=new Yf(s(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on("*",function(p){for(var b=arguments.length,T=new Array(b>1?b-1:0),_=1;_<b;_++)T[_-1]=arguments[_];t.emit(p,...T)}),this.modules.languageDetector&&(f.languageDetector=s(this.modules.languageDetector),f.languageDetector.init&&f.languageDetector.init(f,this.options.detection,this.options)),this.modules.i18nFormat&&(f.i18nFormat=s(this.modules.i18nFormat),f.i18nFormat.init&&f.i18nFormat.init(this)),this.translator=new ba(this.services,this.options),this.translator.on("*",function(p){for(var b=arguments.length,T=new Array(b>1?b-1:0),_=1;_<b;_++)T[_-1]=arguments[_];t.emit(p,...T)}),this.modules.external.forEach(p=>{p.init&&p.init(this)})}if(this.format=this.options.interpolation.format,r||(r=Nu),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=function(){return t.store[c](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=function(){return t.store[c](...arguments),t}});let l=Ho(),u=()=>{let c=(d,f)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(f),r(d,f)};if(this.languages&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initAsync?u():setTimeout(u,0),l}loadResources(t){var s,a;let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nu,i=Te(t)?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if((i==null?void 0:i.toLowerCase())==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();let o=[],l=u=>{if(!u||u==="cimode")return;this.services.languageUtils.toResolveHierarchy(u).forEach(d=>{d!=="cimode"&&o.indexOf(d)<0&&o.push(d)})};i?l(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(c=>l(c)),(a=(s=this.options.preload)==null?void 0:s.forEach)==null||a.call(s,u=>l(u)),this.services.backendConnector.load(o,this.options.ns,u=>{!u&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(u)})}else r(null)}reloadResources(t,e,r){let i=Ho();return typeof t=="function"&&(r=t,t=void 0),typeof e=="function"&&(r=e,e=void 0),t||(t=this.languages),e||(e=this.options.ns),r||(r=Nu),this.services.backendConnector.reload(t,e,s=>{i.resolve(),r(s)}),i}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Fb.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let e=0;e<this.languages.length;e++){let r=this.languages[e];if(!(["cimode","dev"].indexOf(r)>-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,e){var r=this;this.isLanguageChangingTo=t;let i=Ho();this.emit("languageChanging",t);let s=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},a=(l,u)=>{u?(s(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,i.resolve(function(){return r.t(...arguments)}),e&&e(l,function(){return r.t(...arguments)})},o=l=>{var c,d;!t&&!l&&this.services.languageDetector&&(l=[]);let u=Te(l)?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||s(u),this.translator.language||this.translator.changeLanguage(u),(d=(c=this.services.languageDetector)==null?void 0:c.cacheUserLanguage)==null||d.call(c,u)),this.loadResources(u,f=>{a(f,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?o(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(o):this.services.languageDetector.detect(o):o(t),i}getFixedT(t,e,r){var i=this;let s=function(a,o){let l;if(typeof o!="object"){for(var u=arguments.length,c=new Array(u>2?u-2:0),d=2;d<u;d++)c[d-2]=arguments[d];l=i.options.overloadTranslationOptionHandler([a,o].concat(c))}else l=U({},o);l.lng=l.lng||s.lng,l.lngs=l.lngs||s.lngs,l.ns=l.ns||s.ns,l.keyPrefix!==""&&(l.keyPrefix=l.keyPrefix||r||s.keyPrefix);let f=i.options.keySeparator||".",p;return l.keyPrefix&&Array.isArray(a)?p=a.map(b=>`${l.keyPrefix}${f}${b}`):p=l.keyPrefix?`${l.keyPrefix}${f}${a}`:a,i.t(p,l)};return Te(t)?s.lng=t:s.lngs=t,s.ns=e,s.keyPrefix=r,s}t(){var i;for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return(i=this.translator)==null?void 0:i.translate(...e)}exists(){var i;for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return(i=this.translator)==null?void 0:i.exists(...e)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;let r=e.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,s=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;let a=(o,l)=>{let u=this.services.backendConnector.state[`${o}|${l}`];return u===-1||u===0||u===2};if(e.precheck){let o=e.precheck(this,a);if(o!==void 0)return o}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(r,t)&&(!i||a(s,t)))}loadNamespaces(t,e){let r=Ho();return this.options.ns?(Te(t)&&(t=[t]),t.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{r.resolve(),e&&e(i)}),r):(e&&e(),Promise.resolve())}loadLanguages(t,e){let r=Ho();Te(t)&&(t=[t]);let i=this.options.preload||[],s=t.filter(a=>i.indexOf(a)<0&&this.services.languageUtils.isSupportedCode(a));return s.length?(this.options.preload=i.concat(s),this.loadResources(a=>{r.resolve(),e&&e(a)}),r):(e&&e(),Promise.resolve())}dir(t){var i,s;if(t||(t=this.resolvedLanguage||(((i=this.languages)==null?void 0:i.length)>0?this.languages[0]:this.language)),!t)return"rtl";let e=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=((s=this.services)==null?void 0:s.languageUtils)||new Uu(Pb());return e.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;return new hs(t,e)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nu,r=t.forkResourceStore;r&&delete t.forkResourceStore;let i=me(U(U({},this.options),t),{isClone:!0}),s=new hs(i);if((t.debug!==void 0||t.prefix!==void 0)&&(s.logger=s.logger.clone(t)),["store","services","language"].forEach(o=>{s[o]=this[o]}),s.services=U({},this.services),s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},r){let o=Object.keys(this.store.data).reduce((l,u)=>(l[u]=U({},this.store.data[u]),Object.keys(l[u]).reduce((c,d)=>(c[d]=U({},l[u][d]),c),{})),{});s.store=new Lu(o,i),s.services.resourceStore=s.store}return s.translator=new ba(s.services,i),s.translator.on("*",function(o){for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c<l;c++)u[c-1]=arguments[c];s.emit(o,...u)}),s.init(i,e),s.translator.options=i,s.translator.backendConnector.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},s}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}},yt=hs.createInstance();yt.createInstance=hs.createInstance;BY=yt.createInstance,VY=yt.dir,zY=yt.init,KY=yt.loadResources,QY=yt.reloadResources,XY=yt.use,ZY=yt.changeLanguage,JY=yt.getFixedT,ej=yt.t,tj=yt.exists,nj=yt.setDefaultNamespace,rj=yt.hasLoadedNamespace,ij=yt.loadNamespaces,sj=yt.loadLanguages});var Yb,Ub=ee(()=>{Yb={main:{loadingPlugin:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0456\u043D\u0430: {{name}} v{{version}}",unloadingPlugin:"\u0412\u044B\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0456\u043D\u0430: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\u041A\u0430\u043B\u0456 \u045E\u043A\u043B\u044E\u0447\u0430\u043D\u0430, \u0433\u044D\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0437\u0435 \u0434\u0430\u0441\u0442\u0443\u043F\u043D\u044B \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u043A\u0430\u043C\u0430\u043D\u0434\u044B, \u0442\u0430\u043A \u0448\u0442\u043E \u0432\u044B \u0437\u043C\u043E\u0436\u0430\u0446\u0435 \u043F\u0440\u044B\u0437\u043D\u0430\u0447\u044B\u0446\u044C \u0433\u0430\u0440\u0430\u0447\u0443\u044E \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u0456 \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u0430\u0446\u044C \u0441\u0442\u0430\u0442\u0443\u0441 \u0437 \u044F\u0435 \u0434\u0430\u043F\u0430\u043C\u043E\u0433\u0430\u0439.",name:"\u0414\u0430\u0441\u0442\u0443\u043F\u043D\u044B \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u043A\u0430\u043C\u0430\u043D\u0434\u044B"},editNextStatusSymbol:{description:"\u041F\u0440\u044B \u043D\u0430\u0446\u0456\u0441\u043A\u0443 \u0433\u044D\u0442\u0430 \u0441\u0456\u043C\u0432\u0430\u043B, \u044F\u043A\u0456 \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043D\u044B \u0434\u0430\u043B\u0435\u0439.",name:"\u0421\u0456\u043C\u0432\u0430\u043B \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0433\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B"},editStatusName:{description:"\u0413\u044D\u0442\u0430 \u0437\u0440\u0430\u0437\u0443\u043C\u0435\u043B\u0430\u0435 \u0456\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B.",name:"\u0406\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B"},editStatusSymbol:{description:"\u0413\u044D\u0442\u0430 \u0441\u0456\u043C\u0432\u0430\u043B \u043F\u0430\u043C\u0456\u0436 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u043C\u0456 \u0434\u0443\u0436\u043A\u0430\u043C\u0456. (\u042F\u0433\u043E \u043C\u043E\u0436\u043D\u0430 \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0442\u043E\u043B\u044C\u043A\u0456 \u0434\u043B\u044F \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E, \u0430 \u043D\u0435 \u0434\u043B\u044F \u0430\u0441\u043D\u043E\u045E\u043D\u044B\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E.)",name:"\u0421\u0456\u043C\u0432\u0430\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B"},editStatusType:{description:"\u041A\u0456\u0440\u0443\u0439\u0446\u0435 \u0442\u044B\u043C, \u044F\u043A \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0430\u0432\u043E\u0434\u0437\u0456\u0446\u044C \u0441\u044F\u0431\u0435 \u043F\u0440\u044B \u043F\u043E\u0448\u0443\u043A\u0443 \u0456 \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0456.",name:"\u0422\u044B\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B"},fixErrorsBeforeSaving:"\u0412\u044B\u043F\u0440\u0430\u045E\u0446\u0435 \u043F\u0430\u043C\u044B\u043B\u043A\u0456 \u043F\u0435\u0440\u0430\u0434 \u0437\u0430\u0445\u0430\u0432\u0430\u043D\u043D\u0435\u043C."}},reports:{statusRegistry:{about:{createdBy:"\u0413\u044D\u0442\u044B \u0444\u0430\u0439\u043B \u0431\u044B\u045E \u0441\u0442\u0432\u043E\u0440\u0430\u043D\u044B \u043F\u043B\u0430\u0433\u0456\u043D\u0430\u043C Obsidian Tasks (\u0432\u0435\u0440\u0441\u0456\u044F {{version}}) \u0434\u043B\u044F \u0432\u0456\u0437\u0443\u0430\u043B\u0456\u0437\u0430\u0446\u044B\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E \u0437\u0430\u0434\u0430\u0447 \u0443 \u0433\u044D\u0442\u044B\u043C \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u044B.",deleteFileAnyTime:"\u0412\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0432\u044B\u0434\u0430\u043B\u0456\u0446\u044C \u0433\u044D\u0442\u044B \u0444\u0430\u0439\u043B \u0443 \u043B\u044E\u0431\u044B \u043C\u043E\u043C\u0430\u043D\u0442.",title:"\u041F\u0440\u0430 \u0433\u044D\u0442\u044B \u0444\u0430\u0439\u043B",updateReport:{line1:"\u041A\u0430\u043B\u0456 \u0432\u044B \u0437\u043C\u044F\u043D\u044F\u0435\u0446\u0435 \u043D\u0430\u043B\u0430\u0434\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0443 Tasks, \u0432\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0430\u0442\u0440\u044B\u043C\u0430\u0446\u044C \u0430\u0431\u043D\u043E\u045E\u043B\u0435\u043D\u044B \u0441\u043F\u0440\u0430\u0432\u0430\u0437\u0434\u0430\u0447\u0443:",line2:"\u041F\u0435\u0440\u0430\u0439\u0448\u043E\u045E\u0448\u044B \u045E `\u041D\u0430\u043B\u0430\u0434\u044B` -> `Tasks`.",line3:"\u041D\u0430\u0446\u0456\u0441\u043D\u0443\u045E\u0448\u044B \u043D\u0430 `\u041F\u0440\u0430\u0433\u043B\u044F\u0434\u0437\u0435\u0446\u044C \u0456 \u043F\u0440\u0430\u0432\u0435\u0440\u044B\u0446\u044C \u0432\u0430\u0448\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u044B`."}},columnHeadings:{nextStatusSymbol:"\u0421\u0456\u043C\u0432\u0430\u043B \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0433\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443",problems:"\u041F\u0440\u0430\u0431\u043B\u0435\u043C\u044B (\u043A\u0430\u043B\u0456 \u0451\u0441\u0446\u044C)",statusName:"\u0406\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0443",statusSymbol:"\u0421\u0456\u043C\u0432\u0430\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0443",statusType:"\u0422\u044B\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0443"},loadedSettings:{settingsActuallyUsed:"\u0413\u044D\u0442\u0430 \u043D\u0430\u043B\u0430\u0434\u044B, \u044F\u043A\u0456\u044F \u0441\u0430\u043F\u0440\u0430\u045E\u0434\u044B \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u044E\u0446\u0446\u0430 Tasks.",switchToLivePreview:"\u041F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044B\u0446\u0435\u0441\u044F \u045E \u0440\u044D\u0436\u044B\u043C \u043F\u0430\u043F\u044F\u0440\u044D\u0434\u043D\u044F\u0433\u0430 \u043F\u0440\u0430\u0433\u043B\u044F\u0434\u0443 \u045E \u0440\u044D\u0430\u043B\u044C\u043D\u044B\u043C \u0447\u0430\u0441\u0435 \u0430\u0431\u043E \u0440\u044D\u0436\u044B\u043C \u0447\u044B\u0442\u0430\u043D\u043D\u044F, \u043A\u0430\u0431 \u0443\u0431\u0430\u0447\u044B\u0446\u044C \u0434\u044B\u044F\u0433\u0440\u0430\u043C\u0443.",title:"\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u043D\u044B\u044F \u043D\u0430\u043B\u0430\u0434\u044B"},messages:{cannotFindNextStatus:"\u041D\u0435\u0447\u0430\u043A\u0430\u043D\u0430\u044F \u043F\u0430\u043C\u044B\u043B\u043A\u0430 \u043F\u0440\u044B \u043F\u043E\u0448\u0443\u043A\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0433\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443.",duplicateSymbol:"\u0414\u0443\u0431\u043B\u0456\u043A\u0430\u0442 \u0441\u0456\u043C\u0432\u0430\u043B\u0430 '{{symbol}}': \u0433\u044D\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0437\u0435 \u043F\u0440\u0430\u0456\u0433\u043D\u0430\u0440\u0430\u0432\u0430\u043D\u044B.",emptySymbol:"\u041F\u0443\u0441\u0442\u044B \u0441\u0456\u043C\u0432\u0430\u043B: \u0433\u044D\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0437\u0435 \u043F\u0440\u0430\u0456\u0433\u043D\u0430\u0440\u0430\u0432\u0430\u043D\u044B.",nextSymbolUnknown:"\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u044B \u0441\u0456\u043C\u0432\u0430\u043B {{symbol}} \u043D\u0435\u0432\u044F\u0434\u043E\u043C\u044B: \u0441\u0442\u0432\u0430\u0440\u044B\u0446\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437 \u0441\u0456\u043C\u0432\u0430\u043B\u0430\u043C {{symbol}}.",notConventionalType:"\u0414\u043B\u044F \u0456\u043D\u0444\u0430\u0440\u043C\u0430\u0446\u044B\u0456, \u0437\u0432\u044B\u0447\u0430\u0439\u043D\u044B \u0442\u044B\u043F \u0434\u043B\u044F \u0441\u0456\u043C\u0432\u0430\u043B\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 {{symbol}} - {{type}}: \u0432\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u043F\u0435\u0440\u0430\u0433\u043B\u0435\u0434\u0437\u0435\u0446\u044C \u0433\u044D\u0442\u044B \u0442\u044B\u043F.",wrongTypeAfterDone:{line1:"\u041F\u0430\u0441\u043B\u044F \u0433\u044D\u0442\u0430\u0433\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 `DONE` \u0456\u0434\u0437\u0435 {{nextType}}, \u0430 \u043D\u0435 `TODO` \u0430\u0431\u043E `IN_PROGRESS`.",line2:"\u041F\u0440\u044B \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043D\u043D\u0456 \u0434\u043B\u044F \u0437\u0430\u0432\u044F\u0440\u0448\u044D\u043D\u043D\u044F \u043F\u0435\u0440\u044B\u044F\u0434\u044B\u0447\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B \u044F\u043D\u0430 \u0437\u0430\u043C\u0435\u0441\u0442 \u0433\u044D\u0442\u0430\u0433\u0430 \u0431\u0443\u0434\u0437\u0435 \u0441\u0443\u043F\u0440\u0430\u0432\u0430\u0434\u0436\u0430\u0446\u0446\u0430 `TODO` \u0430\u0431\u043E `IN_PROGRESS`, \u043A\u0430\u0431 \u0433\u0430\u0440\u0430\u043D\u0442\u0430\u0432\u0430\u0446\u044C, \u0448\u0442\u043E \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0435 \u0444\u0456\u043B\u044C\u0442\u0440\u0443 `\u043D\u0435 \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u0430`.",line3:"\u0413\u043B\u044F\u0434\u0437\u0456\u0446\u0435 [Recurring Tasks and Custom Statuses]({{helpURL}})."}},statusSettings:{comment:{line1:"\u041F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044B\u0446\u0435\u0441\u044F \u045E \u0440\u044D\u0436\u044B\u043C \u043F\u0430\u043F\u044F\u0440\u044D\u0434\u043D\u044F\u0433\u0430 \u043F\u0440\u0430\u0433\u043B\u044F\u0434\u0443 \u045E \u0440\u044D\u0430\u043B\u044C\u043D\u044B\u043C \u0447\u0430\u0441\u0435 \u0430\u0431\u043E \u0440\u044D\u0436\u044B\u043C \u0447\u044B\u0442\u0430\u043D\u043D\u044F, \u043A\u0430\u0431 \u0443\u0431\u0430\u0447\u044B\u0446\u044C \u0442\u0430\u0431\u043B\u0456\u0446\u0443.",line2:"\u041A\u0430\u043B\u0456 \u045E \u0456\u043C\u0451\u043D\u0430\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E \u0451\u0441\u0446\u044C \u044F\u043A\u0456\u044F-\u043D\u0435\u0431\u0443\u0434\u0437\u044C \u0441\u0456\u043C\u0432\u0430\u043B\u044B \u0444\u0430\u0440\u043C\u0430\u0442\u0430\u0432\u0430\u043D\u043D\u044F Markdown, \u0442\u0430\u043A\u0456\u044F \u044F\u043A '*' \u0430\u0431\u043E '_',",line3:"Obsidian \u043C\u043E\u0436\u0430 \u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430 \u0430\u0434\u043B\u044E\u0441\u0442\u0440\u0430\u0432\u0430\u0446\u044C \u0442\u0430\u0431\u043B\u0456\u0446\u0443 \u0442\u043E\u043B\u044C\u043A\u0456 \u045E \u0440\u044D\u0436\u044B\u043C\u0435 \u0447\u044B\u0442\u0430\u043D\u043D\u044F."},theseAreStatusValues:"\u0413\u044D\u0442\u0430 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u045E \u0440\u0430\u0437\u0434\u0437\u0435\u043B\u0430\u0445 Core \u0456 Custom statuses.",title:"\u041D\u0430\u043B\u0430\u0434\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0443"}}},settings:{autoSuggest:{heading:"\u0410\u045E\u0442\u0430\u043F\u0430\u0434\u043A\u0430\u0437\u043A\u0430",maxSuggestions:{description:"\u041A\u043E\u043B\u044C\u043A\u0456 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C \u043F\u0430\u043A\u0430\u0437\u0430\u043D\u0430 \u043F\u0440\u044B \u0437'\u044F\u045E\u043B\u0435\u043D\u043D\u0456 \u043C\u0435\u043D\u044E \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u044B\u0445 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E (\u0443\u043A\u043B\u044E\u0447\u0430\u044E\u0447\u044B \u043E\u043F\u0446\u044B\u044E \xAB\u23CE\xBB).",name:"\u041C\u0430\u043A\u0441\u0456\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u043A\u043E\u043B\u044C\u043A\u0430\u0441\u0446\u044C \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u044B\u0445 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E \u0434\u043B\u044F \u043F\u0430\u043A\u0430\u0437\u0443"},minLength:{description:"\u041A\u0430\u043B\u0456 \u0432\u044B\u0448\u044D\u0439 \u0437\u0430 0, \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u0432\u0430 \u0431\u0443\u0434\u0437\u0435 \u0441\u043F\u0440\u0430\u0446\u043E\u045E\u0432\u0430\u0446\u044C \u0442\u043E\u043B\u044C\u043A\u0456 \u0442\u0430\u0434\u044B, \u043A\u0430\u043B\u0456 \u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u0435\u0446\u0446\u0430 \u043F\u0430\u0447\u0430\u0442\u0430\u043A \u043B\u044E\u0431\u043E\u0433\u0430 \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043E\u045E\u0432\u0430\u043D\u0430\u0433\u0430 \u043A\u043B\u044E\u0447\u0430\u0432\u043E\u0433\u0430 \u0441\u043B\u043E\u0432\u0430.",name:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u0430\u045E\u0436\u044B\u043D\u044F \u0441\u0443\u043F\u0430\u0434\u0437\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u0430\u0439 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u0432\u044B"},toggle:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0430\u0434\u043A\u0440\u044B\u0435 \u0456\u043D\u0442\u044D\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u0430\u0435 \u043C\u0435\u043D\u044E \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E \u043F\u0440\u044B \u045E\u0432\u043E\u0434\u0437\u0435 \u0442\u044D\u043A\u0441\u0442\u0443 \u045E\u043D\u0443\u0442\u0440\u044B \u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u0430\u0439 \u043B\u0456\u043D\u0456\u0456 \u0437\u0430\u0434\u0430\u0447\u044B.",name:"\u0410\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u0430 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E\u0432\u0430\u0446\u044C \u0437\u043C\u0435\u0441\u0442 \u0437\u0430\u0434\u0430\u0447\u044B"}},changeRequiresRestart:"\u0417\u043C\u0435\u043D\u0430 \u043B\u044E\u0431\u044B\u0445 \u043D\u0430\u043B\u0430\u0434 \u043F\u0430\u0442\u0440\u0430\u0431\u0443\u0435 \u043F\u0435\u0440\u0430\u0437\u0430\u043F\u0443\u0441\u043A\u0443 Obsidian.",dates:{cancelledDate:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0434\u0430\u0434\u0430\u0441\u0446\u044C \u0447\u0430\u0441\u043E\u0432\u0443\u044E \u043F\u0430\u0437\u043D\u0430\u043A\u0443 \u274C YYYY-MM-DD \u045E \u043A\u0430\u043D\u0446\u044B, \u043A\u0430\u043B\u0456 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u0430\u0435\u0446\u0446\u0430 \u045E \u0430\u0434\u043C\u0435\u043D\u0435\u043D\u044B \u0441\u0442\u0430\u043D.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u0456\u0446\u044C \u0434\u0430\u0442\u0443 \u0430\u0434\u043C\u0435\u043D\u044B \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u0430\u0439 \u0430\u0434\u043C\u0435\u043D\u0435\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B"},createdDate:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0434\u0430\u0434\u0430\u0441\u0446\u044C \u0447\u0430\u0441\u043E\u0432\u0443\u044E \u043F\u0430\u0437\u043D\u0430\u043A\u0443 \u2795 YYYY-MM-DD \u043F\u0435\u0440\u0430\u0434 \u0456\u043D\u0448\u044B\u043C\u0456 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u044F\u043C\u0456 \u0434\u0430\u0442\u044B, \u043A\u0430\u043B\u0456 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0432\u0430\u0440\u0430\u0435\u0446\u0446\u0430 \u0437 \u0434\u0430\u043F\u0430\u043C\u043E\u0433\u0430\u0439 \xAB\u0421\u0442\u0432\u0430\u0440\u044B\u0446\u044C \u0430\u0431\u043E \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0437\u0430\u0434\u0430\u0447\u0443\xBB \u0430\u0431\u043E \u043F\u0440\u044B \u0437\u0430\u0432\u044F\u0440\u0448\u044D\u043D\u043D\u0456 \u043F\u0435\u0440\u044B\u044F\u0434\u044B\u0447\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u0456\u0446\u044C \u0434\u0430\u0442\u0443 \u0441\u0442\u0432\u0430\u0440\u044D\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u0430\u0439 \u0434\u0430\u0434\u0430\u0434\u0437\u0435\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B"},doneDate:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0434\u0430\u0434\u0430\u0441\u0446\u044C \u0447\u0430\u0441\u043E\u0432\u0443\u044E \u043F\u0430\u0437\u043D\u0430\u043A\u0443 \u2705 YYYY-MM-DD \u045E \u043A\u0430\u043D\u0446\u044B, \u043A\u0430\u043B\u0456 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u0430\u0435\u0446\u0446\u0430 \u045E \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u044B \u0441\u0442\u0430\u043D.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u0456\u0446\u044C \u0434\u0430\u0442\u0443 \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u0430\u0439 \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B"},heading:"\u0414\u0430\u0442\u044B"},datesFromFileNames:{heading:"\u0414\u0430\u0442\u044B \u0437 \u0456\u043C\u0451\u043D\u0430\u045E \u0444\u0430\u0439\u043B\u0430\u045E",scheduledDate:{extraFormat:{description:{line1:"\u0414\u0430\u0434\u0430\u0442\u043A\u043E\u0432\u044B \u0444\u0430\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B, \u044F\u043A\u0456 \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0431\u0443\u0434\u0437\u0435 \u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u0432\u0430\u0446\u044C \u043F\u0440\u044B \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043D\u043D\u0456 \u0456\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u0430\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u044B.",line2:"\u0414\u0430\u0432\u0435\u0434\u043A\u0430 \u043F\u0430 \u0441\u0456\u043D\u0442\u0430\u043A\u0441\u0456\u0441\u0435"},name:"\u0414\u0430\u0434\u0430\u0442\u043A\u043E\u0432\u044B \u0444\u0430\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B \u0456\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u0430\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u044B",placeholder:"\u043F\u0440\u044B\u043A\u043B\u0430\u0434: MMM DD YYYY"},folders:{description:"\u041F\u0430\u043A\u0456\u043D\u044C\u0446\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u043A\u0430\u043B\u0456 \u0445\u043E\u0447\u0430\u0446\u0435 \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0446\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u044B\u044F \u0434\u0430\u0442\u044B \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456 \u043F\u0430\u045E\u0441\u044E\u043B\u044C, \u0430\u0431\u043E \u045E\u0432\u044F\u0434\u0437\u0456\u0446\u0435 \u0441\u043F\u0456\u0441 \u0442\u044D\u0447\u0430\u043A, \u043F\u0430\u0434\u0437\u0435\u043B\u0435\u043D\u044B\u0445 \u043A\u043E\u0441\u043A\u0430\u043C\u0456.",name:"\u0422\u044D\u0447\u043A\u0456 \u0437 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u044B\u043C\u0456 \u0434\u0430\u0442\u0430\u043C\u0456 \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456"},toggle:{description:{line1:"\u042D\u043A\u0430\u043D\u043E\u043C\u0446\u0435 \u0447\u0430\u0441, \u0443\u0432\u043E\u0434\u0437\u044F\u0447\u044B \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u044B\u044F (\u23F3) \u0434\u0430\u0442\u044B.",line2:"\u041A\u0430\u043B\u0456 \u0433\u044D\u0442\u0430\u044F \u043E\u043F\u0446\u044B\u044F \u045E\u043A\u043B\u044E\u0447\u0430\u043D\u0430, \u043B\u044E\u0431\u044B\u043C \u0437\u0430\u0434\u0430\u0447\u0430\u043C \u0431\u0435\u0437 \u0434\u0430\u0442\u044B \u0431\u0443\u0434\u0437\u0435 \u043F\u0440\u044B\u0437\u043D\u0430\u0447\u0430\u043D\u0430 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456, \u0432\u044B\u043D\u044F\u0442\u0430\u044F \u0437 \u0456\u0445 \u0456\u043C\u044F \u0444\u0430\u0439\u043B\u0430.",line3:"\u041F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456 \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0431\u0443\u0434\u0437\u0435 \u0441\u0443\u043F\u0430\u0441\u0442\u0430\u045E\u043B\u044F\u0446\u044C \u0444\u0430\u0440\u043C\u0430\u0442\u044B \u0434\u0430\u0442\u044B <code>YYYY-MM-DD</code> \u0456 <code>YYYYMMDD</code>.",line4:"\u0417\u0430\u0434\u0430\u0447\u044B \u0431\u0435\u0437 \u0434\u0430\u0442\u044B \u043D\u0435 \u043C\u0430\u044E\u0446\u044C \u043D\u0456\u0432\u043E\u0434\u043D\u0430\u0439 \u0437 \u0434\u0430\u0442: Due (\u{1F4C5} ), Scheduled (\u23F3) \u0456 Start (\u{1F6EB})."},name:"\u0412\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0446\u044C \u0456\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u0430\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u044B"}}},dialogs:{accessKeys:{description:"\u041A\u0430\u043B\u0456 \u043A\u043B\u0430\u0432\u0456\u0448\u044B \u0434\u043E\u0441\u0442\u0443\u043F\u0443 (\u043A\u043B\u0430\u0432\u0456\u044F\u0442\u0443\u0440\u043D\u044B\u044F \u0441\u043A\u0430\u0440\u0430\u0447\u044D\u043D\u043D\u0456) \u0434\u043B\u044F \u0440\u043E\u0437\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E \u043A\u0456\u0440\u0430\u0432\u0430\u043D\u043D\u044F \u045E \u0434\u044B\u044F\u043B\u043E\u0433\u0430\u0432\u044B\u0445 \u0432\u043E\u043A\u043D\u0430\u0445 \u043A\u0430\u043D\u0444\u043B\u0456\u043A\u0442\u0443\u044E\u0446\u044C \u0437 \u0441\u0456\u0441\u0442\u044D\u043C\u043D\u044B\u043C\u0456 \u043A\u043B\u0430\u0432\u0456\u044F\u0442\u0443\u0440\u043D\u044B\u043C\u0456 \u0441\u043A\u0430\u0440\u0430\u0447\u044D\u043D\u043D\u044F\u043C\u0456 \u0430\u0431\u043E \u0444\u0443\u043D\u043A\u0446\u044B\u044F\u043C\u0456 \u0434\u0430\u043F\u0430\u043C\u043E\u0436\u043D\u0430\u0439 \u0442\u044D\u0445\u043D\u0430\u043B\u043E\u0433\u0456\u0456, \u044F\u043A\u0456\u044F \u0432\u0430\u0436\u043D\u044B\u044F \u0434\u043B\u044F \u0432\u0430\u0441, \u0432\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0430\u0434\u043A\u043B\u044E\u0447\u044B\u0446\u044C \u0456\u0445 \u0442\u0443\u0442.",name:"\u0417\u0430\u0431\u044F\u0441\u043F\u0435\u0447\u044B\u0446\u044C \u043A\u043B\u0430\u0432\u0456\u0448\u044B \u0434\u043E\u0441\u0442\u0443\u043F\u0443 \u045E \u0434\u044B\u044F\u043B\u043E\u0433\u0430\u0445"},heading:"\u0414\u044B\u044F\u043B\u043E\u0433\u0456"},format:{description:{line1:"\u0424\u0430\u0440\u043C\u0430\u0442, \u044F\u043A\u0456 Tasks \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0435 \u0434\u043B\u044F \u0447\u044B\u0442\u0430\u043D\u043D\u044F \u0456 \u0437\u0430\u043F\u0456\u0441\u0443 \u0437\u0430\u0434\u0430\u0447.",line2:"<b>\u0412\u0430\u0436\u043D\u0430:</b> Tasks \u0443 \u0446\u044F\u043F\u0435\u0440\u0430\u0448\u043D\u0456 \u0447\u0430\u0441 \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043B\u0456\u0432\u0430\u0435 \u0442\u043E\u043B\u044C\u043A\u0456 \u0430\u0434\u0437\u0456\u043D \u0444\u0430\u0440\u043C\u0430\u0442 \u0430\u0434\u043D\u0430\u0447\u0430\u0441\u043E\u0432\u0430. \u0412\u044B\u0431\u0430\u0440 Dataview \u0443 \u0446\u044F\u043F\u0435\u0440\u0430\u0448\u043D\u0456 \u0447\u0430\u0441 <b>\u0441\u043F\u044B\u043D\u0456\u0446\u044C \u0447\u044B\u0442\u0430\u043D\u043D\u0435 Tasks \u0441\u0432\u0430\u0456\u0445 \u0443\u043B\u0430\u0441\u043D\u044B\u0445 \u0437\u043D\u0430\u043A\u0430\u045E \u044D\u043C\u043E\u0434\u0437\u0456</b>."},displayName:{dataview:"Dataview",tasksEmojiFormat:"\u0424\u0430\u0440\u043C\u0430\u0442 \u044D\u043C\u043E\u0434\u0437\u0456 Tasks"},name:"\u0424\u0430\u0440\u043C\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u044B"},globalFilter:{filter:{description:{line1:"\u0420\u044D\u043A\u0430\u043C\u0435\u043D\u0434\u0443\u0435\u0446\u0446\u0430: \u043F\u0430\u043A\u0456\u043D\u044C\u0446\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u043A\u0430\u043B\u0456 \u0445\u043E\u0447\u0430\u0446\u0435, \u043A\u0430\u0431 \u0443\u0441\u0435 \u043F\u0443\u043D\u043A\u0442\u044B \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \u045E \u0432\u0430\u0448\u044B\u043C \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u044B \u0431\u044B\u043B\u0456 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0456, \u044F\u043A\u0456\u043C\u0456 \u043A\u0456\u0440\u0443\u0435 \u0433\u044D\u0442\u044B \u043F\u043B\u0430\u0433\u0456\u043D.",line2:"\u0412\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0439\u0446\u0435 \u0433\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440, \u043A\u0430\u043B\u0456 \u0432\u044B \u0445\u043E\u0447\u0430\u0446\u0435, \u043A\u0430\u0431 Tasks \u0434\u0437\u0435\u0439\u043D\u0456\u0447\u0430\u045E \u0442\u043E\u043B\u044C\u043A\u0456 \u043D\u0430 \u043F\u0430\u0434\u043C\u043D\u043E\u0441\u0442\u0432\u0430 \u0432\u0430\u0448\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \xAB<code>- [ ]</code>\xBB, \u0442\u0430\u043A\u0456\u043C \u0447\u044B\u043D\u0430\u043C, \u043A\u0430\u0431 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \u045E\u043A\u043B\u044E\u0447\u0430\u045E \u0443 \u0441\u0432\u0430\u0451 \u0430\u043F\u0456\u0441\u0430\u043D\u043D\u0435 \u0432\u044B\u0437\u043D\u0430\u0447\u0430\u043D\u044B \u0440\u0430\u0434\u043E\u043A, \u043A\u0430\u0431 \u043B\u0456\u0447\u044B\u0446\u0446\u0430 \u0437\u0430\u0434\u0430\u0447\u0430\u0439.",line3:"\u041D\u0430\u043F\u0440\u044B\u043A\u043B\u0430\u0434, \u043A\u0430\u043B\u0456 \u0432\u044B \u045E\u0441\u0442\u0430\u043B\u044E\u0435\u0446\u0435 \u0433\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440 \u043D\u0430 <code>#task</code>, \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0431\u0443\u0434\u0437\u0435 \u0430\u043F\u0440\u0430\u0446\u043E\u045E\u0432\u0430\u0446\u044C \u0442\u043E\u043B\u044C\u043A\u0456 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443, \u043F\u0430\u0437\u043D\u0430\u0447\u0430\u043D\u044B\u044F <code>#task</code>.",line4:"\u0406\u043D\u0448\u044B\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \u0437\u0430\u0441\u0442\u0430\u043D\u0443\u0446\u0446\u0430 \u0437\u0432\u044B\u0447\u0430\u0439\u043D\u044B\u043C\u0456 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0456 \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \u0456 \u043D\u0435 \u0431\u0443\u0434\u0443\u0446\u044C \u0437'\u044F\u045E\u043B\u044F\u0446\u0446\u0430 \u045E \u0437\u0430\u043F\u044B\u0442\u0430\u0445, \u0456 \u0434\u043B\u044F \u0456\u0445 \u043D\u0435 \u0431\u0443\u0434\u0437\u0435 \u045E\u0441\u0442\u0430\u043D\u043E\u045E\u043B\u0435\u043D\u0430 \u0434\u0430\u0442\u0430 \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u043D\u044F."},name:"\u0413\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440",placeholder:"\u043D\u0430\u043F\u0440\u044B\u043A\u043B\u0430\u0434 #task \u0430\u0431\u043E TODO"},heading:"\u0413\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440 \u0437\u0430\u0434\u0430\u0447",removeFilter:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0432\u044B\u0434\u0430\u043B\u0456\u0446\u044C \u0440\u0430\u0434\u043E\u043A, \u044F\u043A\u0456 \u0432\u044B \u045E\u0441\u0442\u0430\u043B\u044F\u0432\u0430\u043B\u0456 \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u0433\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u0430\u0433\u0430 \u0444\u0456\u043B\u044C\u0442\u0440\u0430, \u0437 \u0430\u043F\u0456\u0441\u0430\u043D\u043D\u044F \u0437\u0430\u0434\u0430\u0447\u044B \u043F\u0440\u044B \u0430\u0434\u043B\u044E\u0441\u0442\u0440\u0430\u0432\u0430\u043D\u043D\u0456 \u0437\u0430\u0434\u0430\u0447\u044B.",name:"\u0412\u044B\u0434\u0430\u043B\u0456\u0446\u044C \u0433\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440 \u0437 \u0430\u043F\u0456\u0441\u0430\u043D\u043D\u044F"}},globalQuery:{heading:"\u0413\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0437\u0430\u043F\u044B\u0442",query:{description:"\u0417\u0430\u043F\u044B\u0442, \u044F\u043A\u0456 \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u0430 \u045E\u043A\u043B\u044E\u0447\u0430\u0435\u0446\u0446\u0430 \u045E \u043F\u0430\u0447\u0430\u0442\u043A\u0443 \u043A\u043E\u0436\u043D\u0430\u0433\u0430 \u0431\u043B\u043E\u043A\u0430 Tasks \u0443 \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u044B. \u041A\u0430\u0440\u044B\u0441\u043D\u044B \u0434\u043B\u044F \u0434\u0430\u0434\u0430\u043D\u043D\u044F \u0444\u0456\u043B\u044C\u0442\u0440\u0430\u045E \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456 \u0430\u0431\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u045E \u043C\u0430\u043A\u0435\u0442\u0430.",placeholder:`\u041D\u0430\u043F\u0440\u044B\u043A\u043B\u0430\u0434... +"use strict";var Cx=Object.create;var $o=Object.defineProperty,Mx=Object.defineProperties,Rx=Object.getOwnPropertyDescriptor,Ax=Object.getOwnPropertyDescriptors,Px=Object.getOwnPropertyNames,Pu=Object.getOwnPropertySymbols,Nx=Object.getPrototypeOf,Af=Object.prototype.hasOwnProperty,vb=Object.prototype.propertyIsEnumerable;var _b=(n,t,e)=>t in n?$o(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,U=(n,t)=>{for(var e in t||(t={}))Af.call(t,e)&&_b(n,e,t[e]);if(Pu)for(var e of Pu(t))vb.call(t,e)&&_b(n,e,t[e]);return n},de=(n,t)=>Mx(n,Ax(t));var pa=(n,t)=>{var e={};for(var r in n)Af.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&Pu)for(var r of Pu(n))t.indexOf(r)<0&&vb.call(n,r)&&(e[r]=n[r]);return e};var ee=(n,t)=>()=>(n&&(t=n(n=0)),t);var x=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),wb=(n,t)=>{for(var e in t)$o(n,e,{get:t[e],enumerable:!0})},kb=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Px(t))!Af.call(n,i)&&i!==e&&$o(n,i,{get:()=>t[i],enumerable:!(r=Rx(t,i))||r.enumerable});return n};var qo=(n,t,e)=>(e=n!=null?Cx(Nx(n)):{},kb(t||!n||!n.__esModule?$o(e,"default",{value:n,enumerable:!0}):e,n)),Sb=n=>kb($o({},"__esModule",{value:!0}),n);var F=(n,t,e)=>new Promise((r,i)=>{var s=l=>{try{o(e.next(l))}catch(u){i(u)}},a=l=>{try{o(e.throw(l))}catch(u){i(u)}},o=l=>l.done?r(l.value):Promise.resolve(l.value).then(s,a);o((e=e.apply(n,t)).next())});var Te,Ho,Db,Ix,Fx,Eb,xb,Go,Ob,Lx,Iu,Ux,Ib,ma,Yx,jx,Nf,Wx,$x,qx,If,Fu,Hx,ga,Ur,ya,Lu,Fb,Cb,ba,Uu,Mb,Rb,Ff,Ab,Pf,Lf,Gx,ha,Uf,Bx,Yf,Pb,Nb,Nu,Vx,hs,yt,VY,zY,KY,QY,XY,ZY,JY,ej,tj,nj,rj,ij,sj,aj,Lb=ee(()=>{Te=n=>typeof n=="string",Ho=()=>{let n,t,e=new Promise((r,i)=>{n=r,t=i});return e.resolve=n,e.reject=t,e},Db=n=>n==null?"":""+n,Ix=(n,t,e)=>{n.forEach(r=>{t[r]&&(e[r]=t[r])})},Fx=/###/g,Eb=n=>n&&n.indexOf("###")>-1?n.replace(Fx,"."):n,xb=n=>!n||Te(n),Go=(n,t,e)=>{let r=Te(t)?t.split("."):t,i=0;for(;i<r.length-1;){if(xb(n))return{};let s=Eb(r[i]);!n[s]&&e&&(n[s]=new e),Object.prototype.hasOwnProperty.call(n,s)?n=n[s]:n={},++i}return xb(n)?{}:{obj:n,k:Eb(r[i])}},Ob=(n,t,e)=>{let{obj:r,k:i}=Go(n,t,Object);if(r!==void 0||t.length===1){r[i]=e;return}let s=t[t.length-1],a=t.slice(0,t.length-1),o=Go(n,a,Object);for(;o.obj===void 0&&a.length;)s=`${a[a.length-1]}.${s}`,a=a.slice(0,a.length-1),o=Go(n,a,Object),(o==null?void 0:o.obj)&&typeof o.obj[`${o.k}.${s}`]!="undefined"&&(o.obj=void 0);o.obj[`${o.k}.${s}`]=e},Lx=(n,t,e,r)=>{let{obj:i,k:s}=Go(n,t,Object);i[s]=i[s]||[],i[s].push(e)},Iu=(n,t)=>{let{obj:e,k:r}=Go(n,t);if(!!e&&!!Object.prototype.hasOwnProperty.call(e,r))return e[r]},Ux=(n,t,e)=>{let r=Iu(n,e);return r!==void 0?r:Iu(t,e)},Ib=(n,t,e)=>{for(let r in t)r!=="__proto__"&&r!=="constructor"&&(r in n?Te(n[r])||n[r]instanceof String||Te(t[r])||t[r]instanceof String?e&&(n[r]=t[r]):Ib(n[r],t[r],e):n[r]=t[r]);return n},ma=n=>n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),Yx={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},jx=n=>Te(n)?n.replace(/[&<>"'\/]/g,t=>Yx[t]):n,Nf=class{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){let e=this.regExpMap.get(t);if(e!==void 0)return e;let r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}},Wx=[" ",",","?","!",";"],$x=new Nf(20),qx=(n,t,e)=>{t=t||"",e=e||"";let r=Wx.filter(a=>t.indexOf(a)<0&&e.indexOf(a)<0);if(r.length===0)return!0;let i=$x.getRegExp(`(${r.map(a=>a==="?"?"\\?":a).join("|")})`),s=!i.test(n);if(!s){let a=n.indexOf(e);a>0&&!i.test(n.substring(0,a))&&(s=!0)}return s},If=function(n,t){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!n)return;if(n[t])return Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0;let r=t.split(e),i=n;for(let s=0;s<r.length;){if(!i||typeof i!="object")return;let a,o="";for(let l=s;l<r.length;++l)if(l!==s&&(o+=e),o+=r[l],a=i[o],a!==void 0){if(["string","number","boolean"].indexOf(typeof a)>-1&&l<r.length-1)continue;s+=l-s+1;break}i=a}return i},Fu=n=>n==null?void 0:n.replace("_","-"),Hx={type:"logger",log(n){this.output("log",n)},warn(n){this.output("warn",n)},error(n){this.output("error",n)},output(n,t){var e,r;(r=(e=console==null?void 0:console[n])==null?void 0:e.apply)==null||r.call(e,console,t)}},ga=class{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,e)}init(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||Hx,this.options=e,this.debug=e.debug}log(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return this.forward(e,"log","",!0)}warn(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return this.forward(e,"warn","",!0)}error(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return this.forward(e,"error","")}deprecate(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(t,e,r,i){return i&&!this.debug?null:(Te(t[0])&&(t[0]=`${r}${this.prefix} ${t[0]}`),this.logger[e](t))}create(t){return new ga(this.logger,U({prefix:`${this.prefix}:${t}:`},this.options))}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new ga(this.logger,t)}},Ur=new ga,ya=class{constructor(){this.observers={}}on(t,e){return t.split(" ").forEach(r=>{this.observers[r]||(this.observers[r]=new Map);let i=this.observers[r].get(e)||0;this.observers[r].set(e,i+1)}),this}off(t,e){if(!!this.observers[t]){if(!e){delete this.observers[t];return}this.observers[t].delete(e)}}emit(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];this.observers[t]&&Array.from(this.observers[t].entries()).forEach(a=>{let[o,l]=a;for(let u=0;u<l;u++)o(...r)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(a=>{let[o,l]=a;for(let u=0;u<l;u++)o.apply(o,[t,...r])})}},Lu=class extends ya{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=e,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){let e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)}getResource(t,e,r){var u,c;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,a=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure,o;t.indexOf(".")>-1?o=t.split("."):(o=[t,e],r&&(Array.isArray(r)?o.push(...r):Te(r)&&s?o.push(...r.split(s)):o.push(r)));let l=Iu(this.data,o);return!l&&!e&&!r&&t.indexOf(".")>-1&&(t=o[0],e=o[1],r=o.slice(2).join(".")),l||!a||!Te(r)?l:If((c=(u=this.data)==null?void 0:u[t])==null?void 0:c[e],r,s)}addResource(t,e,r,i){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1},a=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,o=[t,e];r&&(o=o.concat(a?r.split(a):r)),t.indexOf(".")>-1&&(o=t.split("."),i=e,e=o[1]),this.addNamespaces(e),Ob(this.data,o,i),s.silent||this.emit("added",t,e,r,i)}addResources(t,e,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(let s in r)(Te(r[s])||Array.isArray(r[s]))&&this.addResource(t,e,s,r[s],{silent:!0});i.silent||this.emit("added",t,e,r)}addResourceBundle(t,e,r,i,s){let a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},o=[t,e];t.indexOf(".")>-1&&(o=t.split("."),i=r,r=e,e=o[1]),this.addNamespaces(e);let l=Iu(this.data,o)||{};a.skipCopy||(r=JSON.parse(JSON.stringify(r))),i?Ib(l,r,s):l=U(U({},l),r),Ob(this.data,o,l),a.silent||this.emit("added",t,e,r)}removeResourceBundle(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)}hasResourceBundle(t,e){return this.getResource(t,e)!==void 0}getResourceBundle(t,e){return e||(e=this.options.defaultNS),this.getResource(t,e)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){let e=this.getDataByLanguage(t);return!!(e&&Object.keys(e)||[]).find(i=>e[i]&&Object.keys(e[i]).length>0)}toJSON(){return this.data}},Fb={processors:{},addPostProcessor(n){this.processors[n.name]=n},handle(n,t,e,r,i){return n.forEach(s=>{var a,o;t=(o=(a=this.processors[s])==null?void 0:a.process(t,e,r,i))!=null?o:t}),t}},Cb={},ba=class extends ya{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Ix(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=e,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ur.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;let r=this.resolve(t,e);return(r==null?void 0:r.res)!==void 0}extractFromKey(t,e){let r=e.nsSeparator!==void 0?e.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");let i=e.keySeparator!==void 0?e.keySeparator:this.options.keySeparator,s=e.ns||this.options.defaultNS||[],a=r&&t.indexOf(r)>-1,o=!this.options.userDefinedKeySeparator&&!e.keySeparator&&!this.options.userDefinedNsSeparator&&!e.nsSeparator&&!qx(t,r,i);if(a&&!o){let l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:Te(s)?[s]:s};let u=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(u[0])>-1)&&(s=u.shift()),t=u.join(i)}return{key:t,namespaces:Te(s)?[s]:s}}translate(t,e,r){if(typeof e!="object"&&this.options.overloadTranslationOptionHandler&&(e=this.options.overloadTranslationOptionHandler(arguments)),typeof e=="object"&&(e=U({},e)),e||(e={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);let i=e.returnDetails!==void 0?e.returnDetails:this.options.returnDetails,s=e.keySeparator!==void 0?e.keySeparator:this.options.keySeparator,{key:a,namespaces:o}=this.extractFromKey(t[t.length-1],e),l=o[o.length-1],u=e.lng||this.language,c=e.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if((u==null?void 0:u.toLowerCase())==="cimode"){if(c){let Y=e.nsSeparator||this.options.nsSeparator;return i?{res:`${l}${Y}${a}`,usedKey:a,exactUsedKey:a,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(e)}:`${l}${Y}${a}`}return i?{res:a,usedKey:a,exactUsedKey:a,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(e)}:a}let d=this.resolve(t,e),f=d==null?void 0:d.res,p=(d==null?void 0:d.usedKey)||a,b=(d==null?void 0:d.exactUsedKey)||a,T=Object.prototype.toString.apply(f),_=["[object Number]","[object Function]","[object RegExp]"],O=e.joinArrays!==void 0?e.joinArrays:this.options.joinArrays,E=!this.i18nFormat||this.i18nFormat.handleAsObject,A=!Te(f)&&typeof f!="boolean"&&typeof f!="number";if(E&&f&&A&&_.indexOf(T)<0&&!(Te(O)&&Array.isArray(f))){if(!e.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");let Y=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,f,de(U({},e),{ns:o})):`key '${a} (${this.language})' returned an object instead of string.`;return i?(d.res=Y,d.usedParams=this.getUsedParamsDetails(e),d):Y}if(s){let Y=Array.isArray(f),q=Y?[]:{},se=Y?b:p;for(let H in f)if(Object.prototype.hasOwnProperty.call(f,H)){let Z=`${se}${s}${H}`;q[H]=this.translate(Z,de(U({},e),{joinArrays:!1,ns:o})),q[H]===Z&&(q[H]=f[H])}f=q}}else if(E&&Te(O)&&Array.isArray(f))f=f.join(O),f&&(f=this.extendTranslation(f,t,e,r));else{let Y=!1,q=!1,se=e.count!==void 0&&!Te(e.count),H=ba.hasDefaultValue(e),Z=se?this.pluralResolver.getSuffix(u,e.count,e):"",ye=e.ordinal&&se?this.pluralResolver.getSuffix(u,e.count,{ordinal:!1}):"",we=se&&!e.ordinal&&e.count===0,V=we&&e[`defaultValue${this.options.pluralSeparator}zero`]||e[`defaultValue${Z}`]||e[`defaultValue${ye}`]||e.defaultValue;!this.isValidLookup(f)&&H&&(Y=!0,f=V),this.isValidLookup(f)||(q=!0,f=a);let C=(e.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&q?void 0:f,J=H&&V!==f&&this.options.updateMissing;if(q||Y||J){if(this.logger.log(J?"updateKey":"missingKey",u,l,a,J?V:f),s){let y=this.resolve(a,de(U({},e),{keySeparator:!1}));y&&y.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let $=[],oe=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if(this.options.saveMissingTo==="fallback"&&oe&&oe[0])for(let y=0;y<oe.length;y++)$.push(oe[y]);else this.options.saveMissingTo==="all"?$=this.languageUtils.toResolveHierarchy(e.lng||this.language):$.push(e.lng||this.language);let m=(y,v,w)=>{var M;let S=H&&w!==f?w:C;this.options.missingKeyHandler?this.options.missingKeyHandler(y,l,v,S,J,e):(M=this.backendConnector)!=null&&M.saveMissing&&this.backendConnector.saveMissing(y,l,v,S,J,e),this.emit("missingKey",y,l,v,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&se?$.forEach(y=>{let v=this.pluralResolver.getSuffixes(y,e);we&&e[`defaultValue${this.options.pluralSeparator}zero`]&&v.indexOf(`${this.options.pluralSeparator}zero`)<0&&v.push(`${this.options.pluralSeparator}zero`),v.forEach(w=>{m([y],a+w,e[`defaultValue${w}`]||V)})}):m($,a,V))}f=this.extendTranslation(f,t,e,d,r),q&&f===a&&this.options.appendNamespaceToMissingKey&&(f=`${l}:${a}`),(q||Y)&&this.options.parseMissingKeyHandler&&(f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${a}`:a,Y?f:void 0))}return i?(d.res=f,d.usedParams=this.getUsedParamsDetails(e),d):f}extendTranslation(t,e,r,i,s){var u,c;var a=this;if((u=this.i18nFormat)!=null&&u.parse)t=this.i18nFormat.parse(t,U(U({},this.options.interpolation.defaultVariables),r),r.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init(de(U({},r),{interpolation:U(U({},this.options.interpolation),r.interpolation)}));let d=Te(t)&&(((c=r==null?void 0:r.interpolation)==null?void 0:c.skipOnVariables)!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables),f;if(d){let b=t.match(this.interpolator.nestingRegexp);f=b&&b.length}let p=r.replace&&!Te(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(p=U(U({},this.options.interpolation.defaultVariables),p)),t=this.interpolator.interpolate(t,p,r.lng||this.language||i.usedLng,r),d){let b=t.match(this.interpolator.nestingRegexp),T=b&&b.length;f<T&&(r.nest=!1)}!r.lng&&i&&i.res&&(r.lng=this.language||i.usedLng),r.nest!==!1&&(t=this.interpolator.nest(t,function(){for(var b=arguments.length,T=new Array(b),_=0;_<b;_++)T[_]=arguments[_];return(s==null?void 0:s[0])===T[0]&&!r.context?(a.logger.warn(`It seems you are nesting recursively key: ${T[0]} in key: ${e[0]}`),null):a.translate(...T,e)},r)),r.interpolation&&this.interpolator.reset()}let o=r.postProcess||this.options.postProcess,l=Te(o)?[o]:o;return t!=null&&(l==null?void 0:l.length)&&r.applyPostProcessor!==!1&&(t=Fb.handle(l,t,e,this.options&&this.options.postProcessPassResolved?U({i18nResolved:de(U({},i),{usedParams:this.getUsedParamsDetails(r)})},r):r,this)),t}resolve(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r,i,s,a,o;return Te(t)&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(r))return;let u=this.extractFromKey(l,e),c=u.key;i=c;let d=u.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));let f=e.count!==void 0&&!Te(e.count),p=f&&!e.ordinal&&e.count===0,b=e.context!==void 0&&(Te(e.context)||typeof e.context=="number")&&e.context!=="",T=e.lngs?e.lngs:this.languageUtils.toResolveHierarchy(e.lng||this.language,e.fallbackLng);d.forEach(_=>{var O,E;this.isValidLookup(r)||(o=_,!Cb[`${T[0]}-${_}`]&&((O=this.utils)==null?void 0:O.hasLoadedNamespace)&&!((E=this.utils)!=null&&E.hasLoadedNamespace(o))&&(Cb[`${T[0]}-${_}`]=!0,this.logger.warn(`key "${i}" for languages "${T.join(", ")}" won't get resolved as namespace "${o}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),T.forEach(A=>{var se;if(this.isValidLookup(r))return;a=A;let Y=[c];if((se=this.i18nFormat)!=null&&se.addLookupKeys)this.i18nFormat.addLookupKeys(Y,c,A,_,e);else{let H;f&&(H=this.pluralResolver.getSuffix(A,e.count,e));let Z=`${this.options.pluralSeparator}zero`,ye=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(f&&(Y.push(c+H),e.ordinal&&H.indexOf(ye)===0&&Y.push(c+H.replace(ye,this.options.pluralSeparator)),p&&Y.push(c+Z)),b){let we=`${c}${this.options.contextSeparator}${e.context}`;Y.push(we),f&&(Y.push(we+H),e.ordinal&&H.indexOf(ye)===0&&Y.push(we+H.replace(ye,this.options.pluralSeparator)),p&&Y.push(we+Z))}}let q;for(;q=Y.pop();)this.isValidLookup(r)||(s=q,r=this.getResource(A,_,q,e))}))})}),{res:r,usedKey:i,exactUsedKey:s,usedLng:a,usedNS:o}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,e,r){var s;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return(s=this.i18nFormat)!=null&&s.getResource?this.i18nFormat.getResource(t,e,r,i):this.resourceStore.getResource(t,e,r,i)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&!Te(t.replace),i=r?t.replace:t;if(r&&typeof t.count!="undefined"&&(i.count=t.count),this.options.interpolation.defaultVariables&&(i=U(U({},this.options.interpolation.defaultVariables),i)),!r){i=U({},i);for(let s of e)delete i[s]}return i}static hasDefaultValue(t){let e="defaultValue";for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e===r.substring(0,e.length)&&t[r]!==void 0)return!0;return!1}},Uu=class{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ur.create("languageUtils")}getScriptPartFromCode(t){if(t=Fu(t),!t||t.indexOf("-")<0)return null;let e=t.split("-");return e.length===2||(e.pop(),e[e.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(e.join("-"))}getLanguagePartFromCode(t){if(t=Fu(t),!t||t.indexOf("-")<0)return t;let e=t.split("-");return this.formatLanguageCode(e[0])}formatLanguageCode(t){if(Te(t)&&t.indexOf("-")>-1){let e;try{e=Intl.getCanonicalLocales(t)[0]}catch(r){}return e&&this.options.lowerCaseLng&&(e=e.toLowerCase()),e||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let e;return t.forEach(r=>{if(e)return;let i=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(i))&&(e=i)}),!e&&this.options.supportedLngs&&t.forEach(r=>{if(e)return;let i=this.getLanguagePartFromCode(r);if(this.isSupportedCode(i))return e=i;e=this.options.supportedLngs.find(s=>{if(s===i)return s;if(!(s.indexOf("-")<0&&i.indexOf("-")<0)&&(s.indexOf("-")>0&&i.indexOf("-")<0&&s.substring(0,s.indexOf("-"))===i||s.indexOf(i)===0&&i.length>1))return s})}),e||(e=this.getFallbackCodes(this.options.fallbackLng)[0]),e}getFallbackCodes(t,e){if(!t)return[];if(typeof t=="function"&&(t=t(e)),Te(t)&&(t=[t]),Array.isArray(t))return t;if(!e)return t.default||[];let r=t[e];return r||(r=t[this.getScriptPartFromCode(e)]),r||(r=t[this.formatLanguageCode(e)]),r||(r=t[this.getLanguagePartFromCode(e)]),r||(r=t.default),r||[]}toResolveHierarchy(t,e){let r=this.getFallbackCodes(e||this.options.fallbackLng||[],t),i=[],s=a=>{!a||(this.isSupportedCode(a)?i.push(a):this.logger.warn(`rejecting language code not found in supportedLngs: ${a}`))};return Te(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(t))):Te(t)&&s(this.formatLanguageCode(t)),r.forEach(a=>{i.indexOf(a)<0&&s(this.formatLanguageCode(a))}),i}},Mb={zero:0,one:1,two:2,few:3,many:4,other:5},Rb={select:n=>n===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})},Ff=class{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=e,this.logger=Ur.create("pluralResolver"),this.pluralRulesCache={}}addRule(t,e){this.rules[t]=e}clearCache(){this.pluralRulesCache={}}getRule(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=Fu(t==="dev"?"en":t),i=e.ordinal?"ordinal":"cardinal",s=JSON.stringify({cleanedCode:r,type:i});if(s in this.pluralRulesCache)return this.pluralRulesCache[s];let a;try{a=new Intl.PluralRules(r,{type:i})}catch(o){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Rb;if(!t.match(/-|_/))return Rb;let l=this.languageUtils.getLanguagePartFromCode(t);a=this.getRule(l,e)}return this.pluralRulesCache[s]=a,a}needsPlural(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=this.getRule(t,e);return r||(r=this.getRule("dev",e)),(r==null?void 0:r.resolvedOptions().pluralCategories.length)>1}getPluralFormsOfKey(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(i=>`${e}${i}`)}getSuffixes(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=this.getRule(t,e);return r||(r=this.getRule("dev",e)),r?r.resolvedOptions().pluralCategories.sort((i,s)=>Mb[i]-Mb[s]).map(i=>`${this.options.prepend}${e.ordinal?`ordinal${this.options.prepend}`:""}${i}`):[]}getSuffix(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=this.getRule(t,r);return i?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i.select(e)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",e,r))}},Ab=function(n,t,e){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=Ux(n,t,e);return!s&&i&&Te(e)&&(s=If(n,e,r),s===void 0&&(s=If(t,e,r))),s},Pf=n=>n.replace(/\$/g,"$$$$"),Lf=class{constructor(){var e;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ur.create("interpolator"),this.options=t,this.format=((e=t==null?void 0:t.interpolation)==null?void 0:e.format)||(r=>r),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});let{escape:e,escapeValue:r,useRawValueToEscape:i,prefix:s,prefixEscaped:a,suffix:o,suffixEscaped:l,formatSeparator:u,unescapeSuffix:c,unescapePrefix:d,nestingPrefix:f,nestingPrefixEscaped:p,nestingSuffix:b,nestingSuffixEscaped:T,nestingOptionsSeparator:_,maxReplaces:O,alwaysFormat:E}=t.interpolation;this.escape=e!==void 0?e:jx,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=s?ma(s):a||"{{",this.suffix=o?ma(o):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=c?"":d||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=f?ma(f):p||ma("$t("),this.nestingSuffix=b?ma(b):T||ma(")"),this.nestingOptionsSeparator=_||",",this.maxReplaces=O||1e3,this.alwaysFormat=E!==void 0?E:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let t=(e,r)=>(e==null?void 0:e.source)===r?(e.lastIndex=0,e):new RegExp(r,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,e,r,i){var p;let s,a,o,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=b=>{if(b.indexOf(this.formatSeparator)<0){let E=Ab(e,l,b,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(E,void 0,r,de(U(U({},i),e),{interpolationkey:b})):E}let T=b.split(this.formatSeparator),_=T.shift().trim(),O=T.join(this.formatSeparator).trim();return this.format(Ab(e,l,_,this.options.keySeparator,this.options.ignoreJSONStructure),O,r,de(U(U({},i),e),{interpolationkey:_}))};this.resetRegExp();let c=(i==null?void 0:i.missingInterpolationHandler)||this.options.missingInterpolationHandler,d=((p=i==null?void 0:i.interpolation)==null?void 0:p.skipOnVariables)!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:b=>Pf(b)},{regex:this.regexp,safeValue:b=>this.escapeValue?Pf(this.escape(b)):Pf(b)}].forEach(b=>{for(o=0;s=b.regex.exec(t);){let T=s[1].trim();if(a=u(T),a===void 0)if(typeof c=="function"){let O=c(t,s,i);a=Te(O)?O:""}else if(i&&Object.prototype.hasOwnProperty.call(i,T))a="";else if(d){a=s[0];continue}else this.logger.warn(`missed to pass in variable ${T} for interpolating ${t}`),a="";else!Te(a)&&!this.useRawValueToEscape&&(a=Db(a));let _=b.safeValue(a);if(t=t.replace(s[0],_),d?(b.regex.lastIndex+=a.length,b.regex.lastIndex-=s[0].length):b.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),t}nest(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i,s,a,o=(l,u)=>{var T;let c=this.nestingOptionsSeparator;if(l.indexOf(c)<0)return l;let d=l.split(new RegExp(`${c}[ ]*{`)),f=`{${d[1]}`;l=d[0],f=this.interpolate(f,a);let p=f.match(/'/g),b=f.match(/"/g);(((T=p==null?void 0:p.length)!=null?T:0)%2===0&&!b||b.length%2!==0)&&(f=f.replace(/'/g,'"'));try{a=JSON.parse(f),u&&(a=U(U({},u),a))}catch(_){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,_),`${l}${c}${f}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,l};for(;i=this.nestingRegexp.exec(t);){let l=[];a=U({},r),a=a.replace&&!Te(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let u=!1;if(i[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(i[1])){let c=i[1].split(this.formatSeparator).map(d=>d.trim());i[1]=c.shift(),l=c,u=!0}if(s=e(o.call(this,i[1].trim(),a),a),s&&i[0]===t&&!Te(s))return s;Te(s)||(s=Db(s)),s||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${t}`),s=""),u&&(s=l.reduce((c,d)=>this.format(c,d,r.lng,de(U({},r),{interpolationkey:i[1].trim()})),s.trim())),t=t.replace(i[0],s),this.regexp.lastIndex=0}return t}},Gx=n=>{let t=n.toLowerCase().trim(),e={};if(n.indexOf("(")>-1){let r=n.split("(");t=r[0].toLowerCase().trim();let i=r[1].substring(0,r[1].length-1);t==="currency"&&i.indexOf(":")<0?e.currency||(e.currency=i.trim()):t==="relativetime"&&i.indexOf(":")<0?e.range||(e.range=i.trim()):i.split(";").forEach(a=>{if(a){let[o,...l]=a.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),c=o.trim();e[c]||(e[c]=u),u==="false"&&(e[c]=!1),u==="true"&&(e[c]=!0),isNaN(u)||(e[c]=parseInt(u,10))}})}return{formatName:t,formatOptions:e}},ha=n=>{let t={};return(e,r,i)=>{let s=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(s=de(U({},s),{[i.interpolationkey]:void 0}));let a=r+JSON.stringify(s),o=t[a];return o||(o=n(Fu(r),i),t[a]=o),o(e)}},Uf=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ur.create("formatter"),this.options=t,this.formats={number:ha((e,r)=>{let i=new Intl.NumberFormat(e,U({},r));return s=>i.format(s)}),currency:ha((e,r)=>{let i=new Intl.NumberFormat(e,de(U({},r),{style:"currency"}));return s=>i.format(s)}),datetime:ha((e,r)=>{let i=new Intl.DateTimeFormat(e,U({},r));return s=>i.format(s)}),relativetime:ha((e,r)=>{let i=new Intl.RelativeTimeFormat(e,U({},r));return s=>i.format(s,r.range||"day")}),list:ha((e,r)=>{let i=new Intl.ListFormat(e,U({},r));return s=>i.format(s)})},this.init(t)}init(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=e.interpolation.formatSeparator||","}add(t,e){this.formats[t.toLowerCase().trim()]=e}addCached(t,e){this.formats[t.toLowerCase().trim()]=ha(e)}format(t,e,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=e.split(this.formatSeparator);if(s.length>1&&s[0].indexOf("(")>1&&s[0].indexOf(")")<0&&s.find(o=>o.indexOf(")")>-1)){let o=s.findIndex(l=>l.indexOf(")")>-1);s[0]=[s[0],...s.splice(1,o)].join(this.formatSeparator)}return s.reduce((o,l)=>{var d;let{formatName:u,formatOptions:c}=Gx(l);if(this.formats[u]){let f=o;try{let p=((d=i==null?void 0:i.formatParams)==null?void 0:d[i.interpolationkey])||{},b=p.locale||p.lng||i.locale||i.lng||r;f=this.formats[u](o,b,U(U(U({},c),i),p))}catch(p){this.logger.warn(p)}return f}else this.logger.warn(`there was no format function for ${u}`);return o},t)}},Bx=(n,t)=>{n.pending[t]!==void 0&&(delete n.pending[t],n.pendingCount--)},Yf=class extends ya{constructor(t,e,r){var s,a;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=e,this.services=r,this.languageUtils=r.languageUtils,this.options=i,this.logger=Ur.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],(a=(s=this.backend)==null?void 0:s.init)==null||a.call(s,r,i.backend,i)}queueLoad(t,e,r,i){let s={},a={},o={},l={};return t.forEach(u=>{let c=!0;e.forEach(d=>{let f=`${u}|${d}`;!r.reload&&this.store.hasResourceBundle(u,d)?this.state[f]=2:this.state[f]<0||(this.state[f]===1?a[f]===void 0&&(a[f]=!0):(this.state[f]=1,c=!1,a[f]===void 0&&(a[f]=!0),s[f]===void 0&&(s[f]=!0),l[d]===void 0&&(l[d]=!0)))}),c||(o[u]=!0)}),(Object.keys(s).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(s),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(l)}}loaded(t,e,r){let i=t.split("|"),s=i[0],a=i[1];e&&this.emit("failedLoading",s,a,e),!e&&r&&this.store.addResourceBundle(s,a,r,void 0,void 0,{skipCopy:!0}),this.state[t]=e?-1:2,e&&r&&(this.state[t]=0);let o={};this.queue.forEach(l=>{Lx(l.loaded,[s],a),Bx(l,t),e&&l.errors.push(e),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{o[u]||(o[u]={});let c=l.loaded[u];c.length&&c.forEach(d=>{o[u][d]===void 0&&(o[u][d]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",o),this.queue=this.queue.filter(l=>!l.done)}read(t,e,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,a=arguments.length>5?arguments[5]:void 0;if(!t.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:e,fcName:r,tried:i,wait:s,callback:a});return}this.readingCalls++;let o=(u,c)=>{if(this.readingCalls--,this.waitingReads.length>0){let d=this.waitingReads.shift();this.read(d.lng,d.ns,d.fcName,d.tried,d.wait,d.callback)}if(u&&c&&i<this.maxRetries){setTimeout(()=>{this.read.call(this,t,e,r,i+1,s*2,a)},s);return}a(u,c)},l=this.backend[r].bind(this.backend);if(l.length===2){try{let u=l(t,e);u&&typeof u.then=="function"?u.then(c=>o(null,c)).catch(o):o(null,u)}catch(u){o(u)}return}return l(t,e,o)}prepareLoading(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();Te(t)&&(t=this.languageUtils.toResolveHierarchy(t)),Te(e)&&(e=[e]);let s=this.queueLoad(t,e,r,i);if(!s.toLoad.length)return s.pending.length||i(),null;s.toLoad.forEach(a=>{this.loadOne(a)})}load(t,e,r){this.prepareLoading(t,e,{},r)}reload(t,e,r){this.prepareLoading(t,e,{reload:!0},r)}loadOne(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=t.split("|"),i=r[0],s=r[1];this.read(i,s,"read",void 0,void 0,(a,o)=>{a&&this.logger.warn(`${e}loading namespace ${s} for language ${i} failed`,a),!a&&o&&this.logger.log(`${e}loaded namespace ${s} for language ${i}`,o),this.loaded(t,a,o)})}saveMissing(t,e,r,i,s){var l,u,c,d,f;let a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(((u=(l=this.services)==null?void 0:l.utils)==null?void 0:u.hasLoadedNamespace)&&!((d=(c=this.services)==null?void 0:c.utils)!=null&&d.hasLoadedNamespace(e))){this.logger.warn(`did not save key "${r}" as the namespace "${e}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if((f=this.backend)!=null&&f.create){let p=de(U({},a),{isUpdate:s}),b=this.backend.create.bind(this.backend);if(b.length<6)try{let T;b.length===5?T=b(t,e,r,i,p):T=b(t,e,r,i),T&&typeof T.then=="function"?T.then(_=>o(null,_)).catch(o):o(null,T)}catch(T){o(T)}else b(t,e,r,i,o,p)}!t||!t[0]||this.store.addResource(t[0],e,r,i)}}},Pb=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:n=>{let t={};if(typeof n[1]=="object"&&(t=n[1]),Te(n[1])&&(t.defaultValue=n[1]),Te(n[2])&&(t.tDescription=n[2]),typeof n[2]=="object"||typeof n[3]=="object"){let e=n[3]||n[2];Object.keys(e).forEach(r=>{t[r]=e[r]})}return t},interpolation:{escapeValue:!0,format:n=>n,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Nb=n=>{var t,e;return Te(n.ns)&&(n.ns=[n.ns]),Te(n.fallbackLng)&&(n.fallbackLng=[n.fallbackLng]),Te(n.fallbackNS)&&(n.fallbackNS=[n.fallbackNS]),((e=(t=n.supportedLngs)==null?void 0:t.indexOf)==null?void 0:e.call(t,"cimode"))<0&&(n.supportedLngs=n.supportedLngs.concat(["cimode"])),typeof n.initImmediate=="boolean"&&(n.initAsync=n.initImmediate),n},Nu=()=>{},Vx=n=>{Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach(e=>{typeof n[e]=="function"&&(n[e]=n[e].bind(n))})},hs=class extends ya{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Nb(t),this.services={},this.logger=Ur,this.modules={external:[]},Vx(this),e&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,e),this;setTimeout(()=>{this.init(t,e)},0)}}init(){var t=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof e=="function"&&(r=e,e={}),e.defaultNS==null&&e.ns&&(Te(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));let i=Pb();this.options=U(U(U({},i),this.options),Nb(e)),this.options.interpolation=U(U({},i.interpolation),this.options.interpolation),e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator);let s=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?Ur.init(s(this.modules.logger),this.options):Ur.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:c=Uf;let d=new Uu(this.options);this.store=new Lu(this.options.resources,this.options);let f=this.services;f.logger=Ur,f.resourceStore=this.store,f.languageUtils=d,f.pluralResolver=new Ff(d,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(f.formatter=s(c),f.formatter.init(f,this.options),this.options.interpolation.format=f.formatter.format.bind(f.formatter)),f.interpolator=new Lf(this.options),f.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},f.backendConnector=new Yf(s(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on("*",function(p){for(var b=arguments.length,T=new Array(b>1?b-1:0),_=1;_<b;_++)T[_-1]=arguments[_];t.emit(p,...T)}),this.modules.languageDetector&&(f.languageDetector=s(this.modules.languageDetector),f.languageDetector.init&&f.languageDetector.init(f,this.options.detection,this.options)),this.modules.i18nFormat&&(f.i18nFormat=s(this.modules.i18nFormat),f.i18nFormat.init&&f.i18nFormat.init(this)),this.translator=new ba(this.services,this.options),this.translator.on("*",function(p){for(var b=arguments.length,T=new Array(b>1?b-1:0),_=1;_<b;_++)T[_-1]=arguments[_];t.emit(p,...T)}),this.modules.external.forEach(p=>{p.init&&p.init(this)})}if(this.format=this.options.interpolation.format,r||(r=Nu),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=function(){return t.store[c](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=function(){return t.store[c](...arguments),t}});let l=Ho(),u=()=>{let c=(d,f)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(f),r(d,f)};if(this.languages&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initAsync?u():setTimeout(u,0),l}loadResources(t){var s,a;let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nu,i=Te(t)?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if((i==null?void 0:i.toLowerCase())==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();let o=[],l=u=>{if(!u||u==="cimode")return;this.services.languageUtils.toResolveHierarchy(u).forEach(d=>{d!=="cimode"&&o.indexOf(d)<0&&o.push(d)})};i?l(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(c=>l(c)),(a=(s=this.options.preload)==null?void 0:s.forEach)==null||a.call(s,u=>l(u)),this.services.backendConnector.load(o,this.options.ns,u=>{!u&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(u)})}else r(null)}reloadResources(t,e,r){let i=Ho();return typeof t=="function"&&(r=t,t=void 0),typeof e=="function"&&(r=e,e=void 0),t||(t=this.languages),e||(e=this.options.ns),r||(r=Nu),this.services.backendConnector.reload(t,e,s=>{i.resolve(),r(s)}),i}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Fb.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let e=0;e<this.languages.length;e++){let r=this.languages[e];if(!(["cimode","dev"].indexOf(r)>-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,e){var r=this;this.isLanguageChangingTo=t;let i=Ho();this.emit("languageChanging",t);let s=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},a=(l,u)=>{u?(s(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,i.resolve(function(){return r.t(...arguments)}),e&&e(l,function(){return r.t(...arguments)})},o=l=>{var c,d;!t&&!l&&this.services.languageDetector&&(l=[]);let u=Te(l)?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||s(u),this.translator.language||this.translator.changeLanguage(u),(d=(c=this.services.languageDetector)==null?void 0:c.cacheUserLanguage)==null||d.call(c,u)),this.loadResources(u,f=>{a(f,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?o(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(o):this.services.languageDetector.detect(o):o(t),i}getFixedT(t,e,r){var i=this;let s=function(a,o){let l;if(typeof o!="object"){for(var u=arguments.length,c=new Array(u>2?u-2:0),d=2;d<u;d++)c[d-2]=arguments[d];l=i.options.overloadTranslationOptionHandler([a,o].concat(c))}else l=U({},o);l.lng=l.lng||s.lng,l.lngs=l.lngs||s.lngs,l.ns=l.ns||s.ns,l.keyPrefix!==""&&(l.keyPrefix=l.keyPrefix||r||s.keyPrefix);let f=i.options.keySeparator||".",p;return l.keyPrefix&&Array.isArray(a)?p=a.map(b=>`${l.keyPrefix}${f}${b}`):p=l.keyPrefix?`${l.keyPrefix}${f}${a}`:a,i.t(p,l)};return Te(t)?s.lng=t:s.lngs=t,s.ns=e,s.keyPrefix=r,s}t(){var i;for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return(i=this.translator)==null?void 0:i.translate(...e)}exists(){var i;for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return(i=this.translator)==null?void 0:i.exists(...e)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;let r=e.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,s=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;let a=(o,l)=>{let u=this.services.backendConnector.state[`${o}|${l}`];return u===-1||u===0||u===2};if(e.precheck){let o=e.precheck(this,a);if(o!==void 0)return o}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(r,t)&&(!i||a(s,t)))}loadNamespaces(t,e){let r=Ho();return this.options.ns?(Te(t)&&(t=[t]),t.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{r.resolve(),e&&e(i)}),r):(e&&e(),Promise.resolve())}loadLanguages(t,e){let r=Ho();Te(t)&&(t=[t]);let i=this.options.preload||[],s=t.filter(a=>i.indexOf(a)<0&&this.services.languageUtils.isSupportedCode(a));return s.length?(this.options.preload=i.concat(s),this.loadResources(a=>{r.resolve(),e&&e(a)}),r):(e&&e(),Promise.resolve())}dir(t){var i,s;if(t||(t=this.resolvedLanguage||(((i=this.languages)==null?void 0:i.length)>0?this.languages[0]:this.language)),!t)return"rtl";let e=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=((s=this.services)==null?void 0:s.languageUtils)||new Uu(Pb());return e.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;return new hs(t,e)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nu,r=t.forkResourceStore;r&&delete t.forkResourceStore;let i=de(U(U({},this.options),t),{isClone:!0}),s=new hs(i);if((t.debug!==void 0||t.prefix!==void 0)&&(s.logger=s.logger.clone(t)),["store","services","language"].forEach(o=>{s[o]=this[o]}),s.services=U({},this.services),s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},r){let o=Object.keys(this.store.data).reduce((l,u)=>(l[u]=U({},this.store.data[u]),Object.keys(l[u]).reduce((c,d)=>(c[d]=U({},l[u][d]),c),{})),{});s.store=new Lu(o,i),s.services.resourceStore=s.store}return s.translator=new ba(s.services,i),s.translator.on("*",function(o){for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c<l;c++)u[c-1]=arguments[c];s.emit(o,...u)}),s.init(i,e),s.translator.options=i,s.translator.backendConnector.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},s}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}},yt=hs.createInstance();yt.createInstance=hs.createInstance;VY=yt.createInstance,zY=yt.dir,KY=yt.init,QY=yt.loadResources,XY=yt.reloadResources,ZY=yt.use,JY=yt.changeLanguage,ej=yt.getFixedT,tj=yt.t,nj=yt.exists,rj=yt.setDefaultNamespace,ij=yt.hasLoadedNamespace,sj=yt.loadNamespaces,aj=yt.loadLanguages});var Yb,Ub=ee(()=>{Yb={main:{loadingPlugin:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0456\u043D\u0430: {{name}} v{{version}}",unloadingPlugin:"\u0412\u044B\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0456\u043D\u0430: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\u041A\u0430\u043B\u0456 \u045E\u043A\u043B\u044E\u0447\u0430\u043D\u0430, \u0433\u044D\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0437\u0435 \u0434\u0430\u0441\u0442\u0443\u043F\u043D\u044B \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u043A\u0430\u043C\u0430\u043D\u0434\u044B, \u0442\u0430\u043A \u0448\u0442\u043E \u0432\u044B \u0437\u043C\u043E\u0436\u0430\u0446\u0435 \u043F\u0440\u044B\u0437\u043D\u0430\u0447\u044B\u0446\u044C \u0433\u0430\u0440\u0430\u0447\u0443\u044E \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u0456 \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u0430\u0446\u044C \u0441\u0442\u0430\u0442\u0443\u0441 \u0437 \u044F\u0435 \u0434\u0430\u043F\u0430\u043C\u043E\u0433\u0430\u0439.",name:"\u0414\u0430\u0441\u0442\u0443\u043F\u043D\u044B \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u043A\u0430\u043C\u0430\u043D\u0434\u044B"},editNextStatusSymbol:{description:"\u041F\u0440\u044B \u043D\u0430\u0446\u0456\u0441\u043A\u0443 \u0433\u044D\u0442\u0430 \u0441\u0456\u043C\u0432\u0430\u043B, \u044F\u043A\u0456 \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043D\u044B \u0434\u0430\u043B\u0435\u0439.",name:"\u0421\u0456\u043C\u0432\u0430\u043B \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0433\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B"},editStatusName:{description:"\u0413\u044D\u0442\u0430 \u0437\u0440\u0430\u0437\u0443\u043C\u0435\u043B\u0430\u0435 \u0456\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B.",name:"\u0406\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B"},editStatusSymbol:{description:"\u0413\u044D\u0442\u0430 \u0441\u0456\u043C\u0432\u0430\u043B \u043F\u0430\u043C\u0456\u0436 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u043C\u0456 \u0434\u0443\u0436\u043A\u0430\u043C\u0456. (\u042F\u0433\u043E \u043C\u043E\u0436\u043D\u0430 \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0442\u043E\u043B\u044C\u043A\u0456 \u0434\u043B\u044F \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E, \u0430 \u043D\u0435 \u0434\u043B\u044F \u0430\u0441\u043D\u043E\u045E\u043D\u044B\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E.)",name:"\u0421\u0456\u043C\u0432\u0430\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B"},editStatusType:{description:"\u041A\u0456\u0440\u0443\u0439\u0446\u0435 \u0442\u044B\u043C, \u044F\u043A \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0430\u0432\u043E\u0434\u0437\u0456\u0446\u044C \u0441\u044F\u0431\u0435 \u043F\u0440\u044B \u043F\u043E\u0448\u0443\u043A\u0443 \u0456 \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0456.",name:"\u0422\u044B\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u044B"},fixErrorsBeforeSaving:"\u0412\u044B\u043F\u0440\u0430\u045E\u0446\u0435 \u043F\u0430\u043C\u044B\u043B\u043A\u0456 \u043F\u0435\u0440\u0430\u0434 \u0437\u0430\u0445\u0430\u0432\u0430\u043D\u043D\u0435\u043C."}},reports:{statusRegistry:{about:{createdBy:"\u0413\u044D\u0442\u044B \u0444\u0430\u0439\u043B \u0431\u044B\u045E \u0441\u0442\u0432\u043E\u0440\u0430\u043D\u044B \u043F\u043B\u0430\u0433\u0456\u043D\u0430\u043C Obsidian Tasks (\u0432\u0435\u0440\u0441\u0456\u044F {{version}}) \u0434\u043B\u044F \u0432\u0456\u0437\u0443\u0430\u043B\u0456\u0437\u0430\u0446\u044B\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E \u0437\u0430\u0434\u0430\u0447 \u0443 \u0433\u044D\u0442\u044B\u043C \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u044B.",deleteFileAnyTime:"\u0412\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0432\u044B\u0434\u0430\u043B\u0456\u0446\u044C \u0433\u044D\u0442\u044B \u0444\u0430\u0439\u043B \u0443 \u043B\u044E\u0431\u044B \u043C\u043E\u043C\u0430\u043D\u0442.",title:"\u041F\u0440\u0430 \u0433\u044D\u0442\u044B \u0444\u0430\u0439\u043B",updateReport:{line1:"\u041A\u0430\u043B\u0456 \u0432\u044B \u0437\u043C\u044F\u043D\u044F\u0435\u0446\u0435 \u043D\u0430\u043B\u0430\u0434\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0443 Tasks, \u0432\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0430\u0442\u0440\u044B\u043C\u0430\u0446\u044C \u0430\u0431\u043D\u043E\u045E\u043B\u0435\u043D\u044B \u0441\u043F\u0440\u0430\u0432\u0430\u0437\u0434\u0430\u0447\u0443:",line2:"\u041F\u0435\u0440\u0430\u0439\u0448\u043E\u045E\u0448\u044B \u045E `\u041D\u0430\u043B\u0430\u0434\u044B` -> `Tasks`.",line3:"\u041D\u0430\u0446\u0456\u0441\u043D\u0443\u045E\u0448\u044B \u043D\u0430 `\u041F\u0440\u0430\u0433\u043B\u044F\u0434\u0437\u0435\u0446\u044C \u0456 \u043F\u0440\u0430\u0432\u0435\u0440\u044B\u0446\u044C \u0432\u0430\u0448\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u044B`."}},columnHeadings:{nextStatusSymbol:"\u0421\u0456\u043C\u0432\u0430\u043B \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0433\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443",problems:"\u041F\u0440\u0430\u0431\u043B\u0435\u043C\u044B (\u043A\u0430\u043B\u0456 \u0451\u0441\u0446\u044C)",statusName:"\u0406\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0443",statusSymbol:"\u0421\u0456\u043C\u0432\u0430\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0443",statusType:"\u0422\u044B\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0443"},loadedSettings:{settingsActuallyUsed:"\u0413\u044D\u0442\u0430 \u043D\u0430\u043B\u0430\u0434\u044B, \u044F\u043A\u0456\u044F \u0441\u0430\u043F\u0440\u0430\u045E\u0434\u044B \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u044E\u0446\u0446\u0430 Tasks.",switchToLivePreview:"\u041F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044B\u0446\u0435\u0441\u044F \u045E \u0440\u044D\u0436\u044B\u043C \u043F\u0430\u043F\u044F\u0440\u044D\u0434\u043D\u044F\u0433\u0430 \u043F\u0440\u0430\u0433\u043B\u044F\u0434\u0443 \u045E \u0440\u044D\u0430\u043B\u044C\u043D\u044B\u043C \u0447\u0430\u0441\u0435 \u0430\u0431\u043E \u0440\u044D\u0436\u044B\u043C \u0447\u044B\u0442\u0430\u043D\u043D\u044F, \u043A\u0430\u0431 \u0443\u0431\u0430\u0447\u044B\u0446\u044C \u0434\u044B\u044F\u0433\u0440\u0430\u043C\u0443.",title:"\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u043D\u044B\u044F \u043D\u0430\u043B\u0430\u0434\u044B"},messages:{cannotFindNextStatus:"\u041D\u0435\u0447\u0430\u043A\u0430\u043D\u0430\u044F \u043F\u0430\u043C\u044B\u043B\u043A\u0430 \u043F\u0440\u044B \u043F\u043E\u0448\u0443\u043A\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0433\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443.",duplicateSymbol:"\u0414\u0443\u0431\u043B\u0456\u043A\u0430\u0442 \u0441\u0456\u043C\u0432\u0430\u043B\u0430 '{{symbol}}': \u0433\u044D\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0437\u0435 \u043F\u0440\u0430\u0456\u0433\u043D\u0430\u0440\u0430\u0432\u0430\u043D\u044B.",emptySymbol:"\u041F\u0443\u0441\u0442\u044B \u0441\u0456\u043C\u0432\u0430\u043B: \u0433\u044D\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0437\u0435 \u043F\u0440\u0430\u0456\u0433\u043D\u0430\u0440\u0430\u0432\u0430\u043D\u044B.",nextSymbolUnknown:"\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u044B \u0441\u0456\u043C\u0432\u0430\u043B {{symbol}} \u043D\u0435\u0432\u044F\u0434\u043E\u043C\u044B: \u0441\u0442\u0432\u0430\u0440\u044B\u0446\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437 \u0441\u0456\u043C\u0432\u0430\u043B\u0430\u043C {{symbol}}.",notConventionalType:"\u0414\u043B\u044F \u0456\u043D\u0444\u0430\u0440\u043C\u0430\u0446\u044B\u0456, \u0437\u0432\u044B\u0447\u0430\u0439\u043D\u044B \u0442\u044B\u043F \u0434\u043B\u044F \u0441\u0456\u043C\u0432\u0430\u043B\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 {{symbol}} - {{type}}: \u0432\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u043F\u0435\u0440\u0430\u0433\u043B\u0435\u0434\u0437\u0435\u0446\u044C \u0433\u044D\u0442\u044B \u0442\u044B\u043F.",wrongTypeAfterDone:{line1:"\u041F\u0430\u0441\u043B\u044F \u0433\u044D\u0442\u0430\u0433\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 `DONE` \u0456\u0434\u0437\u0435 {{nextType}}, \u0430 \u043D\u0435 `TODO` \u0430\u0431\u043E `IN_PROGRESS`.",line2:"\u041F\u0440\u044B \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043D\u043D\u0456 \u0434\u043B\u044F \u0437\u0430\u0432\u044F\u0440\u0448\u044D\u043D\u043D\u044F \u043F\u0435\u0440\u044B\u044F\u0434\u044B\u0447\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B \u044F\u043D\u0430 \u0437\u0430\u043C\u0435\u0441\u0442 \u0433\u044D\u0442\u0430\u0433\u0430 \u0431\u0443\u0434\u0437\u0435 \u0441\u0443\u043F\u0440\u0430\u0432\u0430\u0434\u0436\u0430\u0446\u0446\u0430 `TODO` \u0430\u0431\u043E `IN_PROGRESS`, \u043A\u0430\u0431 \u0433\u0430\u0440\u0430\u043D\u0442\u0430\u0432\u0430\u0446\u044C, \u0448\u0442\u043E \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0435 \u0444\u0456\u043B\u044C\u0442\u0440\u0443 `\u043D\u0435 \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u0430`.",line3:"\u0413\u043B\u044F\u0434\u0437\u0456\u0446\u0435 [Recurring Tasks and Custom Statuses]({{helpURL}})."}},statusSettings:{comment:{line1:"\u041F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044B\u0446\u0435\u0441\u044F \u045E \u0440\u044D\u0436\u044B\u043C \u043F\u0430\u043F\u044F\u0440\u044D\u0434\u043D\u044F\u0433\u0430 \u043F\u0440\u0430\u0433\u043B\u044F\u0434\u0443 \u045E \u0440\u044D\u0430\u043B\u044C\u043D\u044B\u043C \u0447\u0430\u0441\u0435 \u0430\u0431\u043E \u0440\u044D\u0436\u044B\u043C \u0447\u044B\u0442\u0430\u043D\u043D\u044F, \u043A\u0430\u0431 \u0443\u0431\u0430\u0447\u044B\u0446\u044C \u0442\u0430\u0431\u043B\u0456\u0446\u0443.",line2:"\u041A\u0430\u043B\u0456 \u045E \u0456\u043C\u0451\u043D\u0430\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E \u0451\u0441\u0446\u044C \u044F\u043A\u0456\u044F-\u043D\u0435\u0431\u0443\u0434\u0437\u044C \u0441\u0456\u043C\u0432\u0430\u043B\u044B \u0444\u0430\u0440\u043C\u0430\u0442\u0430\u0432\u0430\u043D\u043D\u044F Markdown, \u0442\u0430\u043A\u0456\u044F \u044F\u043A '*' \u0430\u0431\u043E '_',",line3:"Obsidian \u043C\u043E\u0436\u0430 \u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430 \u0430\u0434\u043B\u044E\u0441\u0442\u0440\u0430\u0432\u0430\u0446\u044C \u0442\u0430\u0431\u043B\u0456\u0446\u0443 \u0442\u043E\u043B\u044C\u043A\u0456 \u045E \u0440\u044D\u0436\u044B\u043C\u0435 \u0447\u044B\u0442\u0430\u043D\u043D\u044F."},theseAreStatusValues:"\u0413\u044D\u0442\u0430 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u045E \u0440\u0430\u0437\u0434\u0437\u0435\u043B\u0430\u0445 Core \u0456 Custom statuses.",title:"\u041D\u0430\u043B\u0430\u0434\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0443"}}},settings:{autoSuggest:{heading:"\u0410\u045E\u0442\u0430\u043F\u0430\u0434\u043A\u0430\u0437\u043A\u0430",maxSuggestions:{description:"\u041A\u043E\u043B\u044C\u043A\u0456 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C \u043F\u0430\u043A\u0430\u0437\u0430\u043D\u0430 \u043F\u0440\u044B \u0437'\u044F\u045E\u043B\u0435\u043D\u043D\u0456 \u043C\u0435\u043D\u044E \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u044B\u0445 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E (\u0443\u043A\u043B\u044E\u0447\u0430\u044E\u0447\u044B \u043E\u043F\u0446\u044B\u044E \xAB\u23CE\xBB).",name:"\u041C\u0430\u043A\u0441\u0456\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u043A\u043E\u043B\u044C\u043A\u0430\u0441\u0446\u044C \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u044B\u0445 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E \u0434\u043B\u044F \u043F\u0430\u043A\u0430\u0437\u0443"},minLength:{description:"\u041A\u0430\u043B\u0456 \u0432\u044B\u0448\u044D\u0439 \u0437\u0430 0, \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u0432\u0430 \u0431\u0443\u0434\u0437\u0435 \u0441\u043F\u0440\u0430\u0446\u043E\u045E\u0432\u0430\u0446\u044C \u0442\u043E\u043B\u044C\u043A\u0456 \u0442\u0430\u0434\u044B, \u043A\u0430\u043B\u0456 \u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u0435\u0446\u0446\u0430 \u043F\u0430\u0447\u0430\u0442\u0430\u043A \u043B\u044E\u0431\u043E\u0433\u0430 \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043E\u045E\u0432\u0430\u043D\u0430\u0433\u0430 \u043A\u043B\u044E\u0447\u0430\u0432\u043E\u0433\u0430 \u0441\u043B\u043E\u0432\u0430.",name:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u0430\u045E\u0436\u044B\u043D\u044F \u0441\u0443\u043F\u0430\u0434\u0437\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u0430\u0439 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u0432\u044B"},toggle:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0430\u0434\u043A\u0440\u044B\u0435 \u0456\u043D\u0442\u044D\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u0430\u0435 \u043C\u0435\u043D\u044E \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E \u043F\u0440\u044B \u045E\u0432\u043E\u0434\u0437\u0435 \u0442\u044D\u043A\u0441\u0442\u0443 \u045E\u043D\u0443\u0442\u0440\u044B \u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u0430\u0439 \u043B\u0456\u043D\u0456\u0456 \u0437\u0430\u0434\u0430\u0447\u044B.",name:"\u0410\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u0430 \u043F\u0440\u0430\u043F\u0430\u043D\u043E\u045E\u0432\u0430\u0446\u044C \u0437\u043C\u0435\u0441\u0442 \u0437\u0430\u0434\u0430\u0447\u044B"}},changeRequiresRestart:"\u0417\u043C\u0435\u043D\u0430 \u043B\u044E\u0431\u044B\u0445 \u043D\u0430\u043B\u0430\u0434 \u043F\u0430\u0442\u0440\u0430\u0431\u0443\u0435 \u043F\u0435\u0440\u0430\u0437\u0430\u043F\u0443\u0441\u043A\u0443 Obsidian.",dates:{cancelledDate:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0434\u0430\u0434\u0430\u0441\u0446\u044C \u0447\u0430\u0441\u043E\u0432\u0443\u044E \u043F\u0430\u0437\u043D\u0430\u043A\u0443 \u274C YYYY-MM-DD \u045E \u043A\u0430\u043D\u0446\u044B, \u043A\u0430\u043B\u0456 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u0430\u0435\u0446\u0446\u0430 \u045E \u0430\u0434\u043C\u0435\u043D\u0435\u043D\u044B \u0441\u0442\u0430\u043D.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u0456\u0446\u044C \u0434\u0430\u0442\u0443 \u0430\u0434\u043C\u0435\u043D\u044B \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u0430\u0439 \u0430\u0434\u043C\u0435\u043D\u0435\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B"},createdDate:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0434\u0430\u0434\u0430\u0441\u0446\u044C \u0447\u0430\u0441\u043E\u0432\u0443\u044E \u043F\u0430\u0437\u043D\u0430\u043A\u0443 \u2795 YYYY-MM-DD \u043F\u0435\u0440\u0430\u0434 \u0456\u043D\u0448\u044B\u043C\u0456 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u044F\u043C\u0456 \u0434\u0430\u0442\u044B, \u043A\u0430\u043B\u0456 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0432\u0430\u0440\u0430\u0435\u0446\u0446\u0430 \u0437 \u0434\u0430\u043F\u0430\u043C\u043E\u0433\u0430\u0439 \xAB\u0421\u0442\u0432\u0430\u0440\u044B\u0446\u044C \u0430\u0431\u043E \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0437\u0430\u0434\u0430\u0447\u0443\xBB \u0430\u0431\u043E \u043F\u0440\u044B \u0437\u0430\u0432\u044F\u0440\u0448\u044D\u043D\u043D\u0456 \u043F\u0435\u0440\u044B\u044F\u0434\u044B\u0447\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u0456\u0446\u044C \u0434\u0430\u0442\u0443 \u0441\u0442\u0432\u0430\u0440\u044D\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u0430\u0439 \u0434\u0430\u0434\u0430\u0434\u0437\u0435\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B"},doneDate:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0434\u0430\u0434\u0430\u0441\u0446\u044C \u0447\u0430\u0441\u043E\u0432\u0443\u044E \u043F\u0430\u0437\u043D\u0430\u043A\u0443 \u2705 YYYY-MM-DD \u045E \u043A\u0430\u043D\u0446\u044B, \u043A\u0430\u043B\u0456 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u0430\u0435\u0446\u0446\u0430 \u045E \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u044B \u0441\u0442\u0430\u043D.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u0456\u0446\u044C \u0434\u0430\u0442\u0443 \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u0430\u0439 \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u044B"},heading:"\u0414\u0430\u0442\u044B"},datesFromFileNames:{heading:"\u0414\u0430\u0442\u044B \u0437 \u0456\u043C\u0451\u043D\u0430\u045E \u0444\u0430\u0439\u043B\u0430\u045E",scheduledDate:{extraFormat:{description:{line1:"\u0414\u0430\u0434\u0430\u0442\u043A\u043E\u0432\u044B \u0444\u0430\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B, \u044F\u043A\u0456 \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0431\u0443\u0434\u0437\u0435 \u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u0432\u0430\u0446\u044C \u043F\u0440\u044B \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043D\u043D\u0456 \u0456\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u0430\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u044B.",line2:"\u0414\u0430\u0432\u0435\u0434\u043A\u0430 \u043F\u0430 \u0441\u0456\u043D\u0442\u0430\u043A\u0441\u0456\u0441\u0435"},name:"\u0414\u0430\u0434\u0430\u0442\u043A\u043E\u0432\u044B \u0444\u0430\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B \u0456\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u0430\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u044B",placeholder:"\u043F\u0440\u044B\u043A\u043B\u0430\u0434: MMM DD YYYY"},folders:{description:"\u041F\u0430\u043A\u0456\u043D\u044C\u0446\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u043A\u0430\u043B\u0456 \u0445\u043E\u0447\u0430\u0446\u0435 \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0446\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u044B\u044F \u0434\u0430\u0442\u044B \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456 \u043F\u0430\u045E\u0441\u044E\u043B\u044C, \u0430\u0431\u043E \u045E\u0432\u044F\u0434\u0437\u0456\u0446\u0435 \u0441\u043F\u0456\u0441 \u0442\u044D\u0447\u0430\u043A, \u043F\u0430\u0434\u0437\u0435\u043B\u0435\u043D\u044B\u0445 \u043A\u043E\u0441\u043A\u0430\u043C\u0456.",name:"\u0422\u044D\u0447\u043A\u0456 \u0437 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u044B\u043C\u0456 \u0434\u0430\u0442\u0430\u043C\u0456 \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456"},toggle:{description:{line1:"\u042D\u043A\u0430\u043D\u043E\u043C\u0446\u0435 \u0447\u0430\u0441, \u0443\u0432\u043E\u0434\u0437\u044F\u0447\u044B \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u044B\u044F (\u23F3) \u0434\u0430\u0442\u044B.",line2:"\u041A\u0430\u043B\u0456 \u0433\u044D\u0442\u0430\u044F \u043E\u043F\u0446\u044B\u044F \u045E\u043A\u043B\u044E\u0447\u0430\u043D\u0430, \u043B\u044E\u0431\u044B\u043C \u0437\u0430\u0434\u0430\u0447\u0430\u043C \u0431\u0435\u0437 \u0434\u0430\u0442\u044B \u0431\u0443\u0434\u0437\u0435 \u043F\u0440\u044B\u0437\u043D\u0430\u0447\u0430\u043D\u0430 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456, \u0432\u044B\u043D\u044F\u0442\u0430\u044F \u0437 \u0456\u0445 \u0456\u043C\u044F \u0444\u0430\u0439\u043B\u0430.",line3:"\u041F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456 \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0431\u0443\u0434\u0437\u0435 \u0441\u0443\u043F\u0430\u0441\u0442\u0430\u045E\u043B\u044F\u0446\u044C \u0444\u0430\u0440\u043C\u0430\u0442\u044B \u0434\u0430\u0442\u044B <code>YYYY-MM-DD</code> \u0456 <code>YYYYMMDD</code>.",line4:"\u0417\u0430\u0434\u0430\u0447\u044B \u0431\u0435\u0437 \u0434\u0430\u0442\u044B \u043D\u0435 \u043C\u0430\u044E\u0446\u044C \u043D\u0456\u0432\u043E\u0434\u043D\u0430\u0439 \u0437 \u0434\u0430\u0442: Due (\u{1F4C5} ), Scheduled (\u23F3) \u0456 Start (\u{1F6EB})."},name:"\u0412\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0446\u044C \u0456\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u0437\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0430\u043D\u0430\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u044B"}}},dialogs:{accessKeys:{description:"\u041A\u0430\u043B\u0456 \u043A\u043B\u0430\u0432\u0456\u0448\u044B \u0434\u043E\u0441\u0442\u0443\u043F\u0443 (\u043A\u043B\u0430\u0432\u0456\u044F\u0442\u0443\u0440\u043D\u044B\u044F \u0441\u043A\u0430\u0440\u0430\u0447\u044D\u043D\u043D\u0456) \u0434\u043B\u044F \u0440\u043E\u0437\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E \u043A\u0456\u0440\u0430\u0432\u0430\u043D\u043D\u044F \u045E \u0434\u044B\u044F\u043B\u043E\u0433\u0430\u0432\u044B\u0445 \u0432\u043E\u043A\u043D\u0430\u0445 \u043A\u0430\u043D\u0444\u043B\u0456\u043A\u0442\u0443\u044E\u0446\u044C \u0437 \u0441\u0456\u0441\u0442\u044D\u043C\u043D\u044B\u043C\u0456 \u043A\u043B\u0430\u0432\u0456\u044F\u0442\u0443\u0440\u043D\u044B\u043C\u0456 \u0441\u043A\u0430\u0440\u0430\u0447\u044D\u043D\u043D\u044F\u043C\u0456 \u0430\u0431\u043E \u0444\u0443\u043D\u043A\u0446\u044B\u044F\u043C\u0456 \u0434\u0430\u043F\u0430\u043C\u043E\u0436\u043D\u0430\u0439 \u0442\u044D\u0445\u043D\u0430\u043B\u043E\u0433\u0456\u0456, \u044F\u043A\u0456\u044F \u0432\u0430\u0436\u043D\u044B\u044F \u0434\u043B\u044F \u0432\u0430\u0441, \u0432\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0430\u0434\u043A\u043B\u044E\u0447\u044B\u0446\u044C \u0456\u0445 \u0442\u0443\u0442.",name:"\u0417\u0430\u0431\u044F\u0441\u043F\u0435\u0447\u044B\u0446\u044C \u043A\u043B\u0430\u0432\u0456\u0448\u044B \u0434\u043E\u0441\u0442\u0443\u043F\u0443 \u045E \u0434\u044B\u044F\u043B\u043E\u0433\u0430\u0445"},heading:"\u0414\u044B\u044F\u043B\u043E\u0433\u0456"},format:{description:{line1:"\u0424\u0430\u0440\u043C\u0430\u0442, \u044F\u043A\u0456 Tasks \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0435 \u0434\u043B\u044F \u0447\u044B\u0442\u0430\u043D\u043D\u044F \u0456 \u0437\u0430\u043F\u0456\u0441\u0443 \u0437\u0430\u0434\u0430\u0447.",line2:"<b>\u0412\u0430\u0436\u043D\u0430:</b> Tasks \u0443 \u0446\u044F\u043F\u0435\u0440\u0430\u0448\u043D\u0456 \u0447\u0430\u0441 \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043B\u0456\u0432\u0430\u0435 \u0442\u043E\u043B\u044C\u043A\u0456 \u0430\u0434\u0437\u0456\u043D \u0444\u0430\u0440\u043C\u0430\u0442 \u0430\u0434\u043D\u0430\u0447\u0430\u0441\u043E\u0432\u0430. \u0412\u044B\u0431\u0430\u0440 Dataview \u0443 \u0446\u044F\u043F\u0435\u0440\u0430\u0448\u043D\u0456 \u0447\u0430\u0441 <b>\u0441\u043F\u044B\u043D\u0456\u0446\u044C \u0447\u044B\u0442\u0430\u043D\u043D\u0435 Tasks \u0441\u0432\u0430\u0456\u0445 \u0443\u043B\u0430\u0441\u043D\u044B\u0445 \u0437\u043D\u0430\u043A\u0430\u045E \u044D\u043C\u043E\u0434\u0437\u0456</b>."},displayName:{dataview:"Dataview",tasksEmojiFormat:"\u0424\u0430\u0440\u043C\u0430\u0442 \u044D\u043C\u043E\u0434\u0437\u0456 Tasks"},name:"\u0424\u0430\u0440\u043C\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u044B"},globalFilter:{filter:{description:{line1:"\u0420\u044D\u043A\u0430\u043C\u0435\u043D\u0434\u0443\u0435\u0446\u0446\u0430: \u043F\u0430\u043A\u0456\u043D\u044C\u0446\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u043A\u0430\u043B\u0456 \u0445\u043E\u0447\u0430\u0446\u0435, \u043A\u0430\u0431 \u0443\u0441\u0435 \u043F\u0443\u043D\u043A\u0442\u044B \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \u045E \u0432\u0430\u0448\u044B\u043C \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u044B \u0431\u044B\u043B\u0456 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0456, \u044F\u043A\u0456\u043C\u0456 \u043A\u0456\u0440\u0443\u0435 \u0433\u044D\u0442\u044B \u043F\u043B\u0430\u0433\u0456\u043D.",line2:"\u0412\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0439\u0446\u0435 \u0433\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440, \u043A\u0430\u043B\u0456 \u0432\u044B \u0445\u043E\u0447\u0430\u0446\u0435, \u043A\u0430\u0431 Tasks \u0434\u0437\u0435\u0439\u043D\u0456\u0447\u0430\u045E \u0442\u043E\u043B\u044C\u043A\u0456 \u043D\u0430 \u043F\u0430\u0434\u043C\u043D\u043E\u0441\u0442\u0432\u0430 \u0432\u0430\u0448\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \xAB<code>- [ ]</code>\xBB, \u0442\u0430\u043A\u0456\u043C \u0447\u044B\u043D\u0430\u043C, \u043A\u0430\u0431 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \u045E\u043A\u043B\u044E\u0447\u0430\u045E \u0443 \u0441\u0432\u0430\u0451 \u0430\u043F\u0456\u0441\u0430\u043D\u043D\u0435 \u0432\u044B\u0437\u043D\u0430\u0447\u0430\u043D\u044B \u0440\u0430\u0434\u043E\u043A, \u043A\u0430\u0431 \u043B\u0456\u0447\u044B\u0446\u0446\u0430 \u0437\u0430\u0434\u0430\u0447\u0430\u0439.",line3:"\u041D\u0430\u043F\u0440\u044B\u043A\u043B\u0430\u0434, \u043A\u0430\u043B\u0456 \u0432\u044B \u045E\u0441\u0442\u0430\u043B\u044E\u0435\u0446\u0435 \u0433\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440 \u043D\u0430 <code>#task</code>, \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0431\u0443\u0434\u0437\u0435 \u0430\u043F\u0440\u0430\u0446\u043E\u045E\u0432\u0430\u0446\u044C \u0442\u043E\u043B\u044C\u043A\u0456 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443, \u043F\u0430\u0437\u043D\u0430\u0447\u0430\u043D\u044B\u044F <code>#task</code>.",line4:"\u0406\u043D\u0448\u044B\u044F \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \u0437\u0430\u0441\u0442\u0430\u043D\u0443\u0446\u0446\u0430 \u0437\u0432\u044B\u0447\u0430\u0439\u043D\u044B\u043C\u0456 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0456 \u043A\u0430\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u0433\u0430 \u0441\u043F\u0456\u0441\u0443 \u0456 \u043D\u0435 \u0431\u0443\u0434\u0443\u0446\u044C \u0437'\u044F\u045E\u043B\u044F\u0446\u0446\u0430 \u045E \u0437\u0430\u043F\u044B\u0442\u0430\u0445, \u0456 \u0434\u043B\u044F \u0456\u0445 \u043D\u0435 \u0431\u0443\u0434\u0437\u0435 \u045E\u0441\u0442\u0430\u043D\u043E\u045E\u043B\u0435\u043D\u0430 \u0434\u0430\u0442\u0430 \u0432\u044B\u043A\u0430\u043D\u0430\u043D\u043D\u044F."},name:"\u0413\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440",placeholder:"\u043D\u0430\u043F\u0440\u044B\u043A\u043B\u0430\u0434 #task \u0430\u0431\u043E TODO"},heading:"\u0413\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440 \u0437\u0430\u0434\u0430\u0447",removeFilter:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0432\u044B\u0434\u0430\u043B\u0456\u0446\u044C \u0440\u0430\u0434\u043E\u043A, \u044F\u043A\u0456 \u0432\u044B \u045E\u0441\u0442\u0430\u043B\u044F\u0432\u0430\u043B\u0456 \u045E \u044F\u043A\u0430\u0441\u0446\u0456 \u0433\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u0430\u0433\u0430 \u0444\u0456\u043B\u044C\u0442\u0440\u0430, \u0437 \u0430\u043F\u0456\u0441\u0430\u043D\u043D\u044F \u0437\u0430\u0434\u0430\u0447\u044B \u043F\u0440\u044B \u0430\u0434\u043B\u044E\u0441\u0442\u0440\u0430\u0432\u0430\u043D\u043D\u0456 \u0437\u0430\u0434\u0430\u0447\u044B.",name:"\u0412\u044B\u0434\u0430\u043B\u0456\u0446\u044C \u0433\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0444\u0456\u043B\u044C\u0442\u0440 \u0437 \u0430\u043F\u0456\u0441\u0430\u043D\u043D\u044F"}},globalQuery:{heading:"\u0413\u043B\u0430\u0431\u0430\u043B\u044C\u043D\u044B \u0437\u0430\u043F\u044B\u0442",query:{description:"\u0417\u0430\u043F\u044B\u0442, \u044F\u043A\u0456 \u0430\u045E\u0442\u0430\u043C\u0430\u0442\u044B\u0447\u043D\u0430 \u045E\u043A\u043B\u044E\u0447\u0430\u0435\u0446\u0446\u0430 \u045E \u043F\u0430\u0447\u0430\u0442\u043A\u0443 \u043A\u043E\u0436\u043D\u0430\u0433\u0430 \u0431\u043B\u043E\u043A\u0430 Tasks \u0443 \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u044B. \u041A\u0430\u0440\u044B\u0441\u043D\u044B \u0434\u043B\u044F \u0434\u0430\u0434\u0430\u043D\u043D\u044F \u0444\u0456\u043B\u044C\u0442\u0440\u0430\u045E \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456 \u0430\u0431\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u045E \u043C\u0430\u043A\u0435\u0442\u0430.",placeholder:`\u041D\u0430\u043F\u0440\u044B\u043A\u043B\u0430\u0434... path does not include _templates/ limit 300 -show urgency`}},recurringTasks:{heading:"\u041F\u0435\u0440\u044B\u044F\u0434\u044B\u0447\u043D\u044B\u044F \u0437\u0430\u0434\u0430\u0447\u044B",nextLine:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0437\u0440\u043E\u0431\u0456\u0446\u044C \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437\u0430\u0434\u0430\u0447\u044B \u043D\u0430 \u0440\u0430\u0434\u043A\u0443 \u043D\u0456\u0436\u044D\u0439 \u0437\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043D\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443. \u0423 \u0430\u0434\u0432\u0430\u0440\u043E\u0442\u043D\u044B\u043C \u0432\u044B\u043F\u0430\u0434\u043A\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437'\u044F\u0432\u0456\u0446\u0446\u0430 \u043F\u0435\u0440\u0430\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u0430\u0439.",name:"\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437'\u044F\u045E\u043B\u044F\u0435\u0446\u0446\u0430 \u043D\u0430 \u0440\u0430\u0434\u043A\u0443 \u043D\u0456\u0436\u044D\u0439"}},seeTheDocumentation:"\u0413\u043B\u044F\u0434\u0437\u0456\u0446\u0435 \u0434\u0430\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u044B\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u044D\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u044D\u043C\u0430 Aura",borderTheme:"\u0422\u044D\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u0430\u0434\u0430\u0446\u044C {{numberOfStatuses}} \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043E\u045E\u0432\u0430\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B"}},ebullientworksTheme:"\u0422\u044D\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u044D\u043C\u0430 ITS \u0456 \u0441\u0446\u044F\u0436\u043A\u0456 SlRvb",lytModeTheme:"\u0422\u044D\u043C\u0430 LYT Mode (\u0442\u043E\u043B\u044C\u043A\u0456 \u0446\u0451\u043C\u043D\u044B \u0440\u044D\u0436\u044B\u043C)",minimalTheme:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0442\u044D\u043C\u0430",thingsTheme:"\u0422\u044D\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0440\u0430\u0433\u043B\u044F\u0434\u0437\u0435\u0446\u044C \u0456 \u043F\u0440\u0430\u0432\u0435\u0440\u044B\u0446\u044C \u0432\u0430\u0448\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u044B",tooltip:"\u0421\u0442\u0432\u0430\u0440\u044B\u0446\u044C \u043D\u043E\u0432\u044B \u0444\u0430\u0439\u043B \u0443 \u043A\u0430\u0440\u0430\u043D\u0451\u0432\u0430\u0439 \u0442\u044D\u0447\u0446\u044B \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u0430, \u044F\u043A\u0456 \u0437\u043C\u044F\u0448\u0447\u0430\u0435 \u0434\u044B\u044F\u0433\u0440\u0430\u043C\u0443 Mermaid \u0437 \u0431\u044F\u0433\u0443\u0447\u044B\u043C\u0456 \u043D\u0430\u043B\u0430\u0434\u0430\u043C\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0443."}},description:{line1:"\u0413\u044D\u0442\u0430 \u0430\u0441\u043D\u043E\u045E\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u044F\u043A\u0456\u044F Tasks \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043B\u0456\u0432\u0430\u0435 \u045E\u043B\u0430\u0441\u043D\u0430, \u0431\u0435\u0437 \u043F\u0430\u0442\u0440\u044D\u0431\u044B \u045E \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u043C CSS-\u0441\u0442\u044B\u043B\u0456 \u0430\u0431\u043E \u0442\u044D\u043C\u0430\u0442\u044B\u0437\u0430\u0446\u044B\u0456.",line2:"\u0412\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0456 \u0434\u0430\u0434\u0430\u0432\u0430\u0446\u044C \u0441\u0432\u0430\u0435 \u045E\u043B\u0430\u0441\u043D\u044B\u044F \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u045E \u0440\u0430\u0437\u0434\u0437\u0435\u043B\u0435 \u043D\u0456\u0436\u044D\u0439."},heading:"\u0410\u0441\u043D\u043E\u045E\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B"},customStatuses:{buttons:{addAllUnknown:{name:"\u0414\u0430\u0434\u0430\u0446\u044C \u0443\u0441\u0435 \u043D\u0435\u0432\u044F\u0434\u043E\u043C\u044B\u044F \u0442\u044B\u043F\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E"},addNewStatus:{name:"\u0414\u0430\u0434\u0430\u0446\u044C \u043D\u043E\u0432\u044B \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u044B"},resetCustomStatuses:{name:"\u0421\u043A\u0456\u043D\u0443\u0446\u044C \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0442\u044B\u043F\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E \u0434\u0430 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u044F\u045E \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456"}},description:{line1:"\u0421\u043F\u0430\u0447\u0430\u0442\u043A\u0443 \u0432\u044B \u043F\u0430\u0432\u0456\u043D\u043D\u044B <b>\u0432\u044B\u0431\u0440\u0430\u0446\u044C \u0456 \u045E\u0441\u0442\u0430\u043B\u044F\u0432\u0430\u0446\u044C CSS Snippet \u0430\u0431\u043E Theme</b>, \u043A\u0430\u0431 \u0441\u0442\u044B\u043B\u0456\u0437\u0430\u0432\u0430\u0446\u044C \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0441\u0446\u044F\u0436\u043A\u0456.",line2:"\u0417\u0430\u0442\u044B\u043C \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0439\u0446\u0435 \u043A\u043D\u043E\u043F\u043A\u0456 \u043D\u0456\u0436\u044D\u0439, \u043A\u0430\u0431 \u043D\u0430\u043B\u0430\u0434\u0437\u0456\u0446\u044C \u0441\u0432\u0430\u0435 \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u045E \u0430\u0434\u043F\u0430\u0432\u0435\u0434\u043D\u0430\u0441\u0446\u0456 \u0437 \u0432\u044B\u0431\u0440\u0430\u043D\u044B\u043C\u0456 CSS-\u0441\u0446\u044F\u0436\u043A\u0430\u043C\u0456.",line3:"<b>\u0417\u0430\u045E\u0432\u0430\u0433\u0430</b> \u041B\u044E\u0431\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0437 \u0442\u044B\u043C \u0436\u0430 \u0441\u0456\u043C\u0432\u0430\u043B\u0430\u043C, \u0448\u0442\u043E \u0456 \u045E \u043F\u0430\u043F\u044F\u0440\u044D\u0434\u043D\u0456\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E, \u0431\u0443\u0434\u0443\u0446\u044C \u043F\u0440\u0430\u0456\u0433\u043D\u0430\u0440\u0430\u0432\u0430\u043D\u044B\u044F. \u0412\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u043F\u0430\u0446\u0432\u0435\u0440\u0434\u0437\u0456\u0446\u044C \u0444\u0430\u043A\u0442\u044B\u0447\u043D\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u0437\u0430\u043F\u0443\u0441\u0446\u0456\u045E\u0448\u044B \u043A\u0430\u043C\u0430\u043D\u0434\u0443 \xAB\u0421\u0442\u0432\u0430\u0440\u044B\u0446\u044C \u0430\u0431\u043E \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0437\u0430\u0434\u0430\u0447\u0443\xBB \u0456 \u043F\u0430\u0433\u043B\u044F\u0434\u0437\u0435\u045E\u0448\u044B \u043D\u0430 \u0432\u044B\u043F\u0430\u0434\u0430\u043B\u044C\u043D\u044B \u0441\u043F\u0456\u0441 \u0421\u0442\u0430\u0442\u0443\u0441.",line4:"\u0413\u043B\u044F\u0434\u0437\u0456\u0446\u0435 \u0434\u0430\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u044B\u044E, \u043A\u0430\u0431 \u043F\u0430\u0447\u0430\u0446\u044C!"},heading:"\u041A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B"},heading:"\u0421\u0442\u0430\u0442\u0443\u0441\u044B \u0437\u0430\u0434\u0430\u0447"}}}});var Wb,jb=ee(()=>{Wb={main:{loadingPlugin:"Loading plugin: {{name}} v{{version}}",unloadingPlugin:"Unloading plugin: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"If enabled this status will be available as a command so you can assign a hotkey and toggle the status using it.",name:"Available as command"},editNextStatusSymbol:{description:"When clicked on this is the symbol that should be used next.",name:"Task Next Status Symbol"},editStatusName:{description:"This is the friendly name of the task status.",name:"Task Status Name"},editStatusSymbol:{description:"This is the character between the square braces. (It can only be edited for Custom statuses, and not Core statuses.)",name:"Task Status Symbol"},editStatusType:{description:"Control how the status behaves for searching and toggling.",name:"Task Status Type"},fixErrorsBeforeSaving:"Fix errors before saving."}},reports:{statusRegistry:{about:{createdBy:"This file was created by the Obsidian Tasks plugin (version {{version}}) to help visualise the task statuses in this vault.",deleteFileAnyTime:"You can delete this file any time.",title:"About this file",updateReport:{line1:"If you change the Tasks status settings, you can get an updated report by:",line2:"Going to `Settings` -> `Tasks`.",line3:"Clicking on `Review and check your Statuses`."}},columnHeadings:{nextStatusSymbol:"Next Status Symbol",problems:"Problems (if any)",statusName:"Status Name",statusSymbol:"Status Symbol",statusType:"Status Type"},loadedSettings:{settingsActuallyUsed:"These are the settings actually used by Tasks.",switchToLivePreview:"Switch to Live Preview or Reading Mode to see the diagram.",title:"Loaded Settings"},messages:{cannotFindNextStatus:"Unexpected failure to find the next status.",duplicateSymbol:"Duplicate symbol '{{symbol}}': this status will be ignored.",emptySymbol:"Empty symbol: this status will be ignored.",nextSymbolUnknown:"Next symbol {{symbol}} is unknown: create a status with symbol {{symbol}}.",notConventionalType:"For information, the conventional type for status symbol {{symbol}} is {{type}}: you may wish to review this type.",wrongTypeAfterDone:{line1:"This `DONE` status is followed by {{nextType}}, not `TODO` or `IN_PROGRESS`.",line2:"If used to complete a recurring task, it will instead be followed by `TODO` or `IN_PROGRESS`, to ensure the next task matches the `not done` filter.",line3:"See [Recurring Tasks and Custom Statuses]({{helpURL}})."}},statusSettings:{comment:{line1:"Switch to Live Preview or Reading Mode to see the table.",line2:"If there are any Markdown formatting characters in status names, such as '*' or '_',",line3:"Obsidian may only render the table correctly in Reading Mode."},theseAreStatusValues:"These are the status values in the Core and Custom statuses sections.",title:"Status Settings"}}},settings:{autoSuggest:{heading:"Auto-suggest",maxSuggestions:{description:'How many suggestions should be shown when an auto-suggest menu pops up (including the "\u23CE" option).',name:"Maximum number of auto-suggestions to show"},minLength:{description:"If higher than 0, auto-suggest will be triggered only when the beginning of any supported keywords is recognized.",name:"Minimum match length for auto-suggest"},toggle:{description:"Enabling this will open an intelligent suggest menu while typing inside a recognized task line.",name:"Auto-suggest task content"}},changeRequiresRestart:"Changing any settings requires a restart of obsidian.",dates:{cancelledDate:{description:"Enabling this will add a timestamp \u274C YYYY-MM-DD at the end when a task is toggled to cancelled.",name:"Set cancelled date on every cancelled task"},createdDate:{description:"Enabling this will add a timestamp \u2795 YYYY-MM-DD before other date values, when a task is created with 'Create or edit task', or by completing a recurring task.",name:"Set created date on every added task"},doneDate:{description:"Enabling this will add a timestamp \u2705 YYYY-MM-DD at the end when a task is toggled to done.",name:"Set done date on every completed task"},heading:"Dates"},datesFromFileNames:{heading:"Dates from file names",scheduledDate:{extraFormat:{description:{line1:"An additional date format that Tasks plugin will recogize when using the file name as the Scheduled date for undated tasks.",line2:"Syntax Reference"},name:"Additional filename date format as Scheduled date for undated tasks",placeholder:"example: MMM DD YYYY"},folders:{description:"Leave empty if you want to use default Scheduled dates everywhere, or enter a comma-separated list of folders.",name:"Folders with default Scheduled dates"},toggle:{description:{line1:"Save time entering Scheduled (\u23F3) dates.",line2:"If this option is enabled, any undated tasks will be given a default Scheduled date extracted from their file name.",line3:"By default, Tasks plugin will match both <code>YYYY-MM-DD</code> and <code>YYYYMMDD</code> date formats.",line4:"Undated tasks have none of Due (\u{1F4C5} ), Scheduled (\u23F3) and Start (\u{1F6EB}) dates."},name:"Use filename as Scheduled date for undated tasks"}}},dialogs:{accessKeys:{description:"If the access keys (keyboard shortcuts) for various controls in dialog boxes conflict with system keyboard shortcuts or assistive technology functionality that is important for you, you may want to deactivate them here.",name:"Provide access keys in dialogs"},heading:"Dialogs"},format:{description:{line1:"The format that Tasks uses to read and write tasks.",line2:"<b>Important:</b> Tasks currently only supports one format at a time. Selecting Dataview will currently <b>stop Tasks reading its own emoji signifiers</b>."},displayName:{dataview:"Dataview",tasksEmojiFormat:"Tasks Emoji Format"},name:"Task Format"},globalFilter:{filter:{description:{line1:"Recommended: Leave empty if you want all checklist items in your vault to be tasks managed by this plugin.",line2:'Use a global filter if you want Tasks to only act on a subset of your "<code>- [ ]</code>" checklist items, so that a checklist item must include the specified string in its description in order to be considered a task.',line3:"For example, if you set the global filter to <code>#task</code>, the Tasks plugin will only handle checklist items tagged with <code>#task</code>.",line4:"Other checklist items will remain normal checklist items and not appear in queries or get a done date set."},name:"Global filter",placeholder:"e.g. #task or TODO"},heading:"Global task filter",removeFilter:{description:"Enabling this removes the string that you set as global filter from the task description when displaying a task.",name:"Remove global filter from description"}},globalQuery:{heading:"Global Query",query:{description:"A query that is automatically included at the start of every Tasks block in the vault. Useful for adding default filters, or layout options.",placeholder:`For example... +show urgency`}},recurringTasks:{heading:"\u041F\u0435\u0440\u044B\u044F\u0434\u044B\u0447\u043D\u044B\u044F \u0437\u0430\u0434\u0430\u0447\u044B",nextLine:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0437\u0440\u043E\u0431\u0456\u0446\u044C \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437\u0430\u0434\u0430\u0447\u044B \u043D\u0430 \u0440\u0430\u0434\u043A\u0443 \u043D\u0456\u0436\u044D\u0439 \u0437\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043D\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443. \u0423 \u0430\u0434\u0432\u0430\u0440\u043E\u0442\u043D\u044B\u043C \u0432\u044B\u043F\u0430\u0434\u043A\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437'\u044F\u0432\u0456\u0446\u0446\u0430 \u043F\u0435\u0440\u0430\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u0430\u0439.",name:"\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437'\u044F\u045E\u043B\u044F\u0435\u0446\u0446\u0430 \u043D\u0430 \u0440\u0430\u0434\u043A\u0443 \u043D\u0456\u0436\u044D\u0439"},removeScheduledDate:{description:{line1:"",line2:""},name:""}},seeTheDocumentation:"\u0413\u043B\u044F\u0434\u0437\u0456\u0446\u0435 \u0434\u0430\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u044B\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u044D\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u044D\u043C\u0430 Aura",borderTheme:"\u0422\u044D\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u0430\u0434\u0430\u0446\u044C {{numberOfStatuses}} \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043E\u045E\u0432\u0430\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B"}},ebullientworksTheme:"\u0422\u044D\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u044D\u043C\u0430 ITS \u0456 \u0441\u0446\u044F\u0436\u043A\u0456 SlRvb",lytModeTheme:"\u0422\u044D\u043C\u0430 LYT Mode (\u0442\u043E\u043B\u044C\u043A\u0456 \u0446\u0451\u043C\u043D\u044B \u0440\u044D\u0436\u044B\u043C)",minimalTheme:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0442\u044D\u043C\u0430",thingsTheme:"\u0422\u044D\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0440\u0430\u0433\u043B\u044F\u0434\u0437\u0435\u0446\u044C \u0456 \u043F\u0440\u0430\u0432\u0435\u0440\u044B\u0446\u044C \u0432\u0430\u0448\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u044B",tooltip:"\u0421\u0442\u0432\u0430\u0440\u044B\u0446\u044C \u043D\u043E\u0432\u044B \u0444\u0430\u0439\u043B \u0443 \u043A\u0430\u0440\u0430\u043D\u0451\u0432\u0430\u0439 \u0442\u044D\u0447\u0446\u044B \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u0430, \u044F\u043A\u0456 \u0437\u043C\u044F\u0448\u0447\u0430\u0435 \u0434\u044B\u044F\u0433\u0440\u0430\u043C\u0443 Mermaid \u0437 \u0431\u044F\u0433\u0443\u0447\u044B\u043C\u0456 \u043D\u0430\u043B\u0430\u0434\u0430\u043C\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0443."}},description:{line1:"\u0413\u044D\u0442\u0430 \u0430\u0441\u043D\u043E\u045E\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u044F\u043A\u0456\u044F Tasks \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043B\u0456\u0432\u0430\u0435 \u045E\u043B\u0430\u0441\u043D\u0430, \u0431\u0435\u0437 \u043F\u0430\u0442\u0440\u044D\u0431\u044B \u045E \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u043C CSS-\u0441\u0442\u044B\u043B\u0456 \u0430\u0431\u043E \u0442\u044D\u043C\u0430\u0442\u044B\u0437\u0430\u0446\u044B\u0456.",line2:"\u0412\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0456 \u0434\u0430\u0434\u0430\u0432\u0430\u0446\u044C \u0441\u0432\u0430\u0435 \u045E\u043B\u0430\u0441\u043D\u044B\u044F \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u045E \u0440\u0430\u0437\u0434\u0437\u0435\u043B\u0435 \u043D\u0456\u0436\u044D\u0439."},heading:"\u0410\u0441\u043D\u043E\u045E\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B"},customStatuses:{buttons:{addAllUnknown:{name:"\u0414\u0430\u0434\u0430\u0446\u044C \u0443\u0441\u0435 \u043D\u0435\u0432\u044F\u0434\u043E\u043C\u044B\u044F \u0442\u044B\u043F\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E"},addNewStatus:{name:"\u0414\u0430\u0434\u0430\u0446\u044C \u043D\u043E\u0432\u044B \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u044B"},resetCustomStatuses:{name:"\u0421\u043A\u0456\u043D\u0443\u0446\u044C \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0442\u044B\u043F\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E \u0434\u0430 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u044F\u045E \u043F\u0430 \u0437\u043C\u0430\u045E\u0447\u0430\u043D\u043D\u0456"}},description:{line1:"\u0421\u043F\u0430\u0447\u0430\u0442\u043A\u0443 \u0432\u044B \u043F\u0430\u0432\u0456\u043D\u043D\u044B <b>\u0432\u044B\u0431\u0440\u0430\u0446\u044C \u0456 \u045E\u0441\u0442\u0430\u043B\u044F\u0432\u0430\u0446\u044C CSS Snippet \u0430\u0431\u043E Theme</b>, \u043A\u0430\u0431 \u0441\u0442\u044B\u043B\u0456\u0437\u0430\u0432\u0430\u0446\u044C \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0441\u0446\u044F\u0436\u043A\u0456.",line2:"\u0417\u0430\u0442\u044B\u043C \u0432\u044B\u043A\u0430\u0440\u044B\u0441\u0442\u043E\u045E\u0432\u0430\u0439\u0446\u0435 \u043A\u043D\u043E\u043F\u043A\u0456 \u043D\u0456\u0436\u044D\u0439, \u043A\u0430\u0431 \u043D\u0430\u043B\u0430\u0434\u0437\u0456\u0446\u044C \u0441\u0432\u0430\u0435 \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u045E \u0430\u0434\u043F\u0430\u0432\u0435\u0434\u043D\u0430\u0441\u0446\u0456 \u0437 \u0432\u044B\u0431\u0440\u0430\u043D\u044B\u043C\u0456 CSS-\u0441\u0446\u044F\u0436\u043A\u0430\u043C\u0456.",line3:"<b>\u0417\u0430\u045E\u0432\u0430\u0433\u0430</b> \u041B\u044E\u0431\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0437 \u0442\u044B\u043C \u0436\u0430 \u0441\u0456\u043C\u0432\u0430\u043B\u0430\u043C, \u0448\u0442\u043E \u0456 \u045E \u043F\u0430\u043F\u044F\u0440\u044D\u0434\u043D\u0456\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u045E, \u0431\u0443\u0434\u0443\u0446\u044C \u043F\u0440\u0430\u0456\u0433\u043D\u0430\u0440\u0430\u0432\u0430\u043D\u044B\u044F. \u0412\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u043F\u0430\u0446\u0432\u0435\u0440\u0434\u0437\u0456\u0446\u044C \u0444\u0430\u043A\u0442\u044B\u0447\u043D\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u0437\u0430\u043F\u0443\u0441\u0446\u0456\u045E\u0448\u044B \u043A\u0430\u043C\u0430\u043D\u0434\u0443 \xAB\u0421\u0442\u0432\u0430\u0440\u044B\u0446\u044C \u0430\u0431\u043E \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0437\u0430\u0434\u0430\u0447\u0443\xBB \u0456 \u043F\u0430\u0433\u043B\u044F\u0434\u0437\u0435\u045E\u0448\u044B \u043D\u0430 \u0432\u044B\u043F\u0430\u0434\u0430\u043B\u044C\u043D\u044B \u0441\u043F\u0456\u0441 \u0421\u0442\u0430\u0442\u0443\u0441.",line4:"\u0413\u043B\u044F\u0434\u0437\u0456\u0446\u0435 \u0434\u0430\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u044B\u044E, \u043A\u0430\u0431 \u043F\u0430\u0447\u0430\u0446\u044C!"},heading:"\u041A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B"},heading:"\u0421\u0442\u0430\u0442\u0443\u0441\u044B \u0437\u0430\u0434\u0430\u0447"}}}});var Wb,jb=ee(()=>{Wb={main:{loadingPlugin:"Loading plugin: {{name}} v{{version}}",unloadingPlugin:"Unloading plugin: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"If enabled this status will be available as a command so you can assign a hotkey and toggle the status using it.",name:"Available as command"},editNextStatusSymbol:{description:"When clicked on this is the symbol that should be used next.",name:"Task Next Status Symbol"},editStatusName:{description:"This is the friendly name of the task status.",name:"Task Status Name"},editStatusSymbol:{description:"This is the character between the square braces. (It can only be edited for Custom statuses, and not Core statuses.)",name:"Task Status Symbol"},editStatusType:{description:"Control how the status behaves for searching and toggling.",name:"Task Status Type"},fixErrorsBeforeSaving:"Fix errors before saving."}},reports:{statusRegistry:{about:{createdBy:"This file was created by the Obsidian Tasks plugin (version {{version}}) to help visualise the task statuses in this vault.",deleteFileAnyTime:"You can delete this file any time.",title:"About this file",updateReport:{line1:"If you change the Tasks status settings, you can get an updated report by:",line2:"Going to `Settings` -> `Tasks`.",line3:"Clicking on `Review and check your Statuses`."}},columnHeadings:{nextStatusSymbol:"Next Status Symbol",problems:"Problems (if any)",statusName:"Status Name",statusSymbol:"Status Symbol",statusType:"Status Type"},loadedSettings:{settingsActuallyUsed:"These are the settings actually used by Tasks.",switchToLivePreview:"Switch to Live Preview or Reading Mode to see the diagram.",title:"Loaded Settings"},messages:{cannotFindNextStatus:"Unexpected failure to find the next status.",duplicateSymbol:"Duplicate symbol '{{symbol}}': this status will be ignored.",emptySymbol:"Empty symbol: this status will be ignored.",nextSymbolUnknown:"Next symbol {{symbol}} is unknown: create a status with symbol {{symbol}}.",notConventionalType:"For information, the conventional type for status symbol {{symbol}} is {{type}}: you may wish to review this type.",wrongTypeAfterDone:{line1:"This `DONE` status is followed by {{nextType}}, not `TODO` or `IN_PROGRESS`.",line2:"If used to complete a recurring task, it will instead be followed by `TODO` or `IN_PROGRESS`, to ensure the next task matches the `not done` filter.",line3:"See [Recurring Tasks and Custom Statuses]({{helpURL}})."}},statusSettings:{comment:{line1:"Switch to Live Preview or Reading Mode to see the table.",line2:"If there are any Markdown formatting characters in status names, such as '*' or '_',",line3:"Obsidian may only render the table correctly in Reading Mode."},theseAreStatusValues:"These are the status values in the Core and Custom statuses sections.",title:"Status Settings"}}},settings:{autoSuggest:{heading:"Auto-suggest",maxSuggestions:{description:'How many suggestions should be shown when an auto-suggest menu pops up (including the "\u23CE" option).',name:"Maximum number of auto-suggestions to show"},minLength:{description:"If higher than 0, auto-suggest will be triggered only when the beginning of any supported keywords is recognized.",name:"Minimum match length for auto-suggest"},toggle:{description:"Enabling this will open an intelligent suggest menu while typing inside a recognized task line.",name:"Auto-suggest task content"}},changeRequiresRestart:"Changing any settings requires a restart of obsidian.",dates:{cancelledDate:{description:"Enabling this will add a timestamp \u274C YYYY-MM-DD at the end when a task is toggled to cancelled.",name:"Set cancelled date on every cancelled task"},createdDate:{description:"Enabling this will add a timestamp \u2795 YYYY-MM-DD before other date values, when a task is created with 'Create or edit task', or by completing a recurring task.",name:"Set created date on every added task"},doneDate:{description:"Enabling this will add a timestamp \u2705 YYYY-MM-DD at the end when a task is toggled to done.",name:"Set done date on every completed task"},heading:"Dates"},datesFromFileNames:{heading:"Dates from file names",scheduledDate:{extraFormat:{description:{line1:"An additional date format that Tasks plugin will recogize when using the file name as the Scheduled date for undated tasks.",line2:"Syntax Reference"},name:"Additional filename date format as Scheduled date for undated tasks",placeholder:"example: MMM DD YYYY"},folders:{description:"Leave empty if you want to use default Scheduled dates everywhere, or enter a comma-separated list of folders.",name:"Folders with default Scheduled dates"},toggle:{description:{line1:"Save time entering Scheduled (\u23F3) dates.",line2:"If this option is enabled, any undated tasks will be given a default Scheduled date extracted from their file name.",line3:"By default, Tasks plugin will match both <code>YYYY-MM-DD</code> and <code>YYYYMMDD</code> date formats.",line4:"Undated tasks have none of Due (\u{1F4C5} ), Scheduled (\u23F3) and Start (\u{1F6EB}) dates."},name:"Use filename as Scheduled date for undated tasks"}}},dialogs:{accessKeys:{description:"If the access keys (keyboard shortcuts) for various controls in dialog boxes conflict with system keyboard shortcuts or assistive technology functionality that is important for you, you may want to deactivate them here.",name:"Provide access keys in dialogs"},heading:"Dialogs"},format:{description:{line1:"The format that Tasks uses to read and write tasks.",line2:"<b>Important:</b> Tasks currently only supports one format at a time. Selecting Dataview will currently <b>stop Tasks reading its own emoji signifiers</b>."},displayName:{dataview:"Dataview",tasksEmojiFormat:"Tasks Emoji Format"},name:"Task Format"},globalFilter:{filter:{description:{line1:"Recommended: Leave empty if you want all checklist items in your vault to be tasks managed by this plugin.",line2:'Use a global filter if you want Tasks to only act on a subset of your "<code>- [ ]</code>" checklist items, so that a checklist item must include the specified string in its description in order to be considered a task.',line3:"For example, if you set the global filter to <code>#task</code>, the Tasks plugin will only handle checklist items tagged with <code>#task</code>.",line4:"Other checklist items will remain normal checklist items and not appear in queries or get a done date set."},name:"Global filter",placeholder:"e.g. #task or TODO"},heading:"Global task filter",removeFilter:{description:"Enabling this removes the string that you set as global filter from the task description when displaying a task.",name:"Remove global filter from description"}},globalQuery:{heading:"Global Query",query:{description:"A query that is automatically included at the start of every Tasks block in the vault. Useful for adding default filters, or layout options.",placeholder:`For example... path does not include _templates/ limit 300 -show urgency`}},recurringTasks:{heading:"Recurring tasks",nextLine:{description:"Enabling this will make the next recurrence of a task appear on the line below the completed task. Otherwise the next recurrence will appear before the completed one.",name:"Next recurrence appears on the line below"}},seeTheDocumentation:"See the documentation",statuses:{collections:{anuppuccinTheme:"AnuPpuccin Theme",auraTheme:"Aura Theme",borderTheme:"Border Theme",buttons:{addCollection:{name:"{{themeName}}: Add {{numberOfStatuses}} supported Statuses"}},ebullientworksTheme:"Ebullientworks Theme",itsThemeAndSlrvbCheckboxes:"ITS Theme & SlRvb Checkboxes",lytModeTheme:"LYT Mode Theme (Dark mode only)",minimalTheme:"Minimal Theme",thingsTheme:"Things Theme"},coreStatuses:{buttons:{checkStatuses:{name:"Review and check your Statuses",tooltip:"Create a new file in the root of the vault, containing a Mermaid diagram of the current status settings."}},description:{line1:"These are the core statuses that Tasks supports natively, with no need for custom CSS styling or theming.",line2:"You can add edit and add your own custom statuses in the section below."},heading:"Core Statuses"},customStatuses:{buttons:{addAllUnknown:{name:"Add All Unknown Status Types"},addNewStatus:{name:"Add New Task Status"},resetCustomStatuses:{name:"Reset Custom Status Types to Defaults"}},description:{line1:"You should first <b>select and install a CSS Snippet or Theme</b> to style custom checkboxes.",line2:"Then, use the buttons below to set up your custom statuses, to match your chosen CSS checkboxes.",line3:"<b>Note</b> Any statuses with the same symbol as any earlier statuses will be ignored. You can confirm the actually loaded statuses by running the 'Create or edit task' command and looking at the Status drop-down.",line4:"See the documentation to get started!"},heading:"Custom Statuses"},heading:"Task Statuses"}}}});var qb,$b=ee(()=>{qb={main:{loadingPlugin:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0438\u043D\u0430: {{name}} v{{version}}",unloadingPlugin:"\u0412\u044B\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0438\u043D\u0430: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\u0415\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u044D\u0442\u043E\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043A\u0430\u043A \u043A\u043E\u043C\u0430\u043D\u0434\u0430, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C \u0433\u043E\u0440\u044F\u0447\u0443\u044E \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u0438 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441 \u0441 \u0435\u0435 \u043F\u043E\u043C\u043E\u0449\u044C\u044E.",name:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u043A\u0430\u043A \u043A\u043E\u043C\u0430\u043D\u0434\u0430"},editNextStatusSymbol:{description:"\u041F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u044D\u0442\u043E \u0441\u0438\u043C\u0432\u043E\u043B, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u043C.",name:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},editStatusName:{description:"\u042D\u0442\u043E \u043F\u043E\u043D\u044F\u0442\u043D\u043E\u0435 \u0438\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438.",name:"\u0418\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},editStatusSymbol:{description:"\u042D\u0442\u043E \u0441\u0438\u043C\u0432\u043E\u043B \u043C\u0435\u0436\u0434\u0443 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u043C\u0438 \u0441\u043A\u043E\u0431\u043A\u0430\u043C\u0438. (\u0415\u0433\u043E \u043C\u043E\u0436\u043D\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432, \u043D\u043E \u043D\u0435 \u0434\u043B\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0445.)",name:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},editStatusType:{description:"\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u0438 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438.",name:"\u0422\u0438\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},fixErrorsBeforeSaving:"\u0418\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435 \u043E\u0448\u0438\u0431\u043A\u0438 \u043F\u0435\u0440\u0435\u0434 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u043C."}},reports:{statusRegistry:{about:{createdBy:"\u042D\u0442\u043E\u0442 \u0444\u0430\u0439\u043B \u0431\u044B\u043B \u0441\u043E\u0437\u0434\u0430\u043D \u043F\u043B\u0430\u0433\u0438\u043D\u043E\u043C Obsidian Tasks (\u0432\u0435\u0440\u0441\u0438\u044F {{version}}), \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043C\u043E\u0447\u044C \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0437\u0430\u0434\u0430\u0447 \u0432 \u044D\u0442\u043E\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435.",deleteFileAnyTime:"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0444\u0430\u0439\u043B \u0432 \u043B\u044E\u0431\u043E\u0435 \u0432\u0440\u0435\u043C\u044F.",title:"\u041E\u0431 \u044D\u0442\u043E\u043C \u0444\u0430\u0439\u043B\u0435",updateReport:{line1:"\u0415\u0441\u043B\u0438 \u0432\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 Tasks, \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043E\u0442\u0447\u0435\u0442, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F:",line2:"\u041F\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 `Settings` -> `Tasks`.",line3:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u043D\u0430 `Review and check your Statuses`."}},columnHeadings:{nextStatusSymbol:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0430",problems:"\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u044B (\u0435\u0441\u043B\u0438 \u0435\u0441\u0442\u044C)",statusName:"\u0418\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430",statusSymbol:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0430",statusType:"\u0422\u0438\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0430"},loadedSettings:{settingsActuallyUsed:"\u042D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F Tasks.",switchToLivePreview:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u0441\u044C \u0432 \u0440\u0435\u0436\u0438\u043C Live Preview \u0438\u043B\u0438 Reading Mode, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443.",title:"\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438"},messages:{cannotFindNextStatus:"\u041D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0430.",duplicateSymbol:"\u0414\u0443\u0431\u043B\u0438\u0440\u0443\u044E\u0449\u0438\u0439\u0441\u044F \u0441\u0438\u043C\u0432\u043E\u043B '{{symbol}}': \u044D\u0442\u043E\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u043F\u0440\u043E\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D.",emptySymbol:"\u041F\u0443\u0441\u0442\u043E\u0439 \u0441\u0438\u043C\u0432\u043E\u043B: \u044D\u0442\u043E\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u043F\u0440\u043E\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D.",nextSymbolUnknown:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B {{symbol}} \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0441 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C {{symbol}}.",notConventionalType:"\u0414\u043B\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438, \u043E\u0431\u044B\u0447\u043D\u044B\u0439 \u0442\u0438\u043F \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 {{symbol}} - {{type}}: \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u0445\u043E\u0442\u0435\u0442\u044C \u043F\u0435\u0440\u0435\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u044D\u0442\u043E\u0442 \u0442\u0438\u043F.",wrongTypeAfterDone:{line1:"\u0417\u0430 \u044D\u0442\u0438\u043C \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u043C `DONE` \u0441\u043B\u0435\u0434\u0443\u0435\u0442 {{nextType}}, \u0430 \u043D\u0435 `TODO` \u0438\u043B\u0438 `IN_PROGRESS`.",line2:"\u0415\u0441\u043B\u0438 \u043E\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u0442\u043E \u0432\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u0437\u0430 \u043D\u0438\u043C \u0431\u0443\u0434\u0435\u0442 \u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u044C `TODO` \u0438\u043B\u0438 `IN_PROGRESS`, \u0447\u0442\u043E\u0431\u044B \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u043B\u0430 \u0444\u0438\u043B\u044C\u0442\u0440\u0443 `\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E`.",line3:"\u0421\u043C. [Recurring Tasks and Custom Statuses]({{helpURL}})."}},statusSettings:{comment:{line1:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u0441\u044C \u0432 \u0440\u0435\u0436\u0438\u043C Live Preview \u0438\u043B\u0438 Reading Mode, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u0443.",line2:"\u0415\u0441\u043B\u0438 \u0432 \u0438\u043C\u0435\u043D\u0430\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 \u0435\u0441\u0442\u044C \u043A\u0430\u043A\u0438\u0435-\u043B\u0438\u0431\u043E \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F Markdown, \u0442\u0430\u043A\u0438\u0435 \u043A\u0430\u043A '*' \u0438\u043B\u0438 '_',",line3:"Obsidian \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0437\u0438\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 Reading Mode."},theseAreStatusValues:"\u042D\u0442\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0430\u0445 Core \u0438 Custom \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432.",title:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432"}}},settings:{autoSuggest:{heading:"\u0410\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438",maxSuggestions:{description:'\u0421\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u0438 \u043F\u043E\u044F\u0432\u043B\u0435\u043D\u0438\u0438 \u043C\u0435\u043D\u044E \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A (\u0432\u043A\u043B\u044E\u0447\u0430\u044F \u043E\u043F\u0446\u0438\u044E "\u23CE").',name:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445 \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A"},minLength:{description:"\u0415\u0441\u043B\u0438 \u0431\u043E\u043B\u044C\u0448\u0435 0, \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E\u0433\u0434\u0430, \u043A\u043E\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043E \u043D\u0430\u0447\u0430\u043B\u043E \u043B\u044E\u0431\u043E\u0433\u043E \u0438\u0437 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0445 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0445 \u0441\u043B\u043E\u0432.",name:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u043B\u0438\u043D\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A"},toggle:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u043E\u0442\u043A\u0440\u043E\u0435\u0442 \u0438\u043D\u0442\u0435\u043B\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E\u0435 \u043C\u0435\u043D\u044E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432\u043D\u0443\u0442\u0440\u0438 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438.",name:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u0442\u044C \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0437\u0430\u0434\u0430\u0447\u0438"}},changeRequiresRestart:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u043B\u044E\u0431\u044B\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0430 Obsidian.",dates:{cancelledDate:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u274C YYYY-MM-DD \u0432 \u043A\u043E\u043D\u0446\u0435, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043D\u0443\u044E.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u043E\u0442\u043C\u0435\u043D\u044B \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438"},createdDate:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u2795 YYYY-MM-DD \u043F\u0435\u0440\u0435\u0434 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043C\u0438 \u0434\u0430\u0442\u044B, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043E\u0437\u0434\u0430\u0435\u0442\u0441\u044F \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E 'Create or edit task' \u0438\u043B\u0438 \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438"},doneDate:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u2705 YYYY-MM-DD \u0432 \u043A\u043E\u043D\u0446\u0435, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u0443\u044E.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438"},heading:"\u0414\u0430\u0442\u044B"},datesFromFileNames:{heading:"\u0414\u0430\u0442\u044B \u0438\u0437 \u0438\u043C\u0435\u043D \u0444\u0430\u0439\u043B\u043E\u0432",scheduledDate:{extraFormat:{description:{line1:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u043B\u0430\u0433\u0438\u043D Tasks \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0442\u044C \u043F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B.",line2:"\u0421\u043F\u0440\u0430\u0432\u043A\u0430 \u043F\u043E \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u0443"},name:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B \u0438\u0437 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B",placeholder:"\u043F\u0440\u0438\u043C\u0435\u0440: MMM DD YYYY"},folders:{description:"\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0435\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u0435\u0437\u0434\u0435, \u0438\u043B\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043F\u0438\u0441\u043E\u043A \u043F\u0430\u043F\u043E\u043A \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E.",name:"\u041F\u0430\u043F\u043A\u0438 \u0441 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0434\u0430\u0442\u0430\u043C\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"},toggle:{description:{line1:"\u042D\u043A\u043E\u043D\u043E\u043C\u044C\u0442\u0435 \u0432\u0440\u0435\u043C\u044F \u043D\u0430 \u0432\u0432\u043E\u0434\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 (\u23F3) \u0434\u0430\u0442.",line2:"\u0415\u0441\u043B\u0438 \u044D\u0442\u0430 \u043E\u043F\u0446\u0438\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430, \u0442\u043E \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430, \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u043D\u0430\u044F \u0438\u0437 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430.",line3:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043F\u043B\u0430\u0433\u0438\u043D Tasks \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0444\u043E\u0440\u043C\u0430\u0442\u044B \u0434\u0430\u0442 <code>YYYY-MM-DD</code> \u0438 <code>YYYYMMDD</code>.",line4:"\u0417\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u0434\u0430\u0442 Due (\u{1F4C5} ), Scheduled (\u23F3) \u0438 Start (\u{1F6EB})."},name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u043A\u0430\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B"}}},dialogs:{accessKeys:{description:"\u0415\u0441\u043B\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 (\u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448) \u0434\u043B\u044F \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0432 \u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0445 \u043E\u043A\u043D\u0430\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u044E\u0442 \u0441 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u043C\u0438 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F\u043C\u0438 \u043A\u043B\u0430\u0432\u0438\u0448 \u0438\u043B\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u043C\u0438 \u0432\u0441\u043F\u043E\u043C\u043E\u0433\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0439, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0432\u0430\u0436\u043D\u044B \u0434\u043B\u044F \u0432\u0430\u0441, \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0435\u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0437\u0434\u0435\u0441\u044C.",name:"\u041F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0432 \u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0445 \u043E\u043A\u043D\u0430\u0445"},heading:"\u0414\u0438\u0430\u043B\u043E\u0433\u0438"},format:{description:{line1:"\u0424\u043E\u0440\u043C\u0430\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 Tasks \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0434\u043B\u044F \u0447\u0442\u0435\u043D\u0438\u044F \u0438 \u0437\u0430\u043F\u0438\u0441\u0438 \u0437\u0430\u0434\u0430\u0447.",line2:"<b>\u0412\u0430\u0436\u043D\u043E:</b> Tasks \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0434\u0438\u043D \u0444\u043E\u0440\u043C\u0430\u0442 \u043E\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E. \u0412\u044B\u0431\u043E\u0440 Dataview \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F <b>\u043F\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043A \u0442\u043E\u043C\u0443, \u0447\u0442\u043E Tasks \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u043D\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044C \u0441\u0432\u043E\u0438 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u044D\u043C\u043E\u0434\u0437\u0438</b>."},displayName:{dataview:"Dataview",tasksEmojiFormat:"\u0424\u043E\u0440\u043C\u0430\u0442 \u044D\u043C\u043E\u0434\u0437\u0438 Tasks"},name:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u0430\u0434\u0430\u0447"},globalFilter:{filter:{description:{line1:"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F: \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0435\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0441\u043F\u0438\u0441\u043A\u0430 \u0432 \u0432\u0430\u0448\u0435\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u0431\u044B\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438, \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u043C\u0438 \u044D\u0442\u0438\u043C \u043F\u043B\u0430\u0433\u0438\u043D\u043E\u043C.",line2:'\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440, \u0435\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B Tasks \u0434\u0435\u0439\u0441\u0442\u0432\u043E\u0432\u0430\u043B \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0432\u0430\u0448\u0438\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u0430 "<code>- [ ]</code>", \u0442\u0430\u043A \u0447\u0442\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0441\u043F\u0438\u0441\u043A\u0430 \u0434\u043E\u043B\u0436\u0435\u043D \u0432\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0432 \u0441\u0432\u043E\u0435\u043C \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0438, \u0447\u0442\u043E\u0431\u044B \u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0435\u0439.',line3:"\u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0435\u0441\u043B\u0438 \u0432\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 \u043D\u0430 <code>#task</code>, \u043F\u043B\u0430\u0433\u0438\u043D Tasks \u0431\u0443\u0434\u0435\u0442 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0441\u043F\u0438\u0441\u043A\u0430, \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0435 \u0442\u0435\u0433\u043E\u043C <code>#task</code>.",line4:"\u0414\u0440\u0443\u0433\u0438\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0441\u043F\u0438\u0441\u043A\u0430 \u043E\u0441\u0442\u0430\u043D\u0443\u0442\u0441\u044F \u043E\u0431\u044B\u0447\u043D\u044B\u043C\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438 \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0430\u0445 \u0438\u043B\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F."},name:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440",placeholder:"\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, #task \u0438\u043B\u0438 TODO"},heading:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 \u0437\u0430\u0434\u0430\u0447",removeFilter:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u0443\u0434\u0430\u043B\u044F\u0435\u0442 \u0441\u0442\u0440\u043E\u043A\u0443, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0432\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043B\u0438 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0430, \u0438\u0437 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438.",name:"\u0423\u0434\u0430\u043B\u044F\u0442\u044C \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 \u0438\u0437 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F"}},globalQuery:{heading:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441",query:{description:"\u0417\u0430\u043F\u0440\u043E\u0441, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u043D\u0430\u0447\u0430\u043B\u043E \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430 Tasks \u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435. \u041F\u043E\u043B\u0435\u0437\u043D\u043E \u0434\u043B\u044F \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u043B\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u043C\u0430\u043A\u0435\u0442\u0430.",placeholder:`\u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440... +show urgency`}},recurringTasks:{heading:"Recurring tasks",nextLine:{description:"Enabling this will make the next recurrence of a task appear on the line below the completed task. Otherwise the next recurrence will appear before the completed one.",name:"Next recurrence appears on the line below"},removeScheduledDate:{description:{line1:"Enabling this will make the next recurrence of a task have no Scheduled (\u23F3) date, when at least one of Start (\u{1F6EB}) or Due (\u{1F4C5}) dates is present.",line2:"This is for when you want the Start and Due dates to carry forward to the next recurrence, but you will set the Scheduled date in future, once you plan to work on it."},name:"Remove scheduled date on recurrence"}},seeTheDocumentation:"See the documentation",statuses:{collections:{anuppuccinTheme:"AnuPpuccin Theme",auraTheme:"Aura Theme",borderTheme:"Border Theme",buttons:{addCollection:{name:"{{themeName}}: Add {{numberOfStatuses}} supported Statuses"}},ebullientworksTheme:"Ebullientworks Theme",itsThemeAndSlrvbCheckboxes:"ITS Theme & SlRvb Checkboxes",lytModeTheme:"LYT Mode Theme (Dark mode only)",minimalTheme:"Minimal Theme",thingsTheme:"Things Theme"},coreStatuses:{buttons:{checkStatuses:{name:"Review and check your Statuses",tooltip:"Create a new file in the root of the vault, containing a Mermaid diagram of the current status settings."}},description:{line1:"These are the core statuses that Tasks supports natively, with no need for custom CSS styling or theming.",line2:"You can add edit and add your own custom statuses in the section below."},heading:"Core Statuses"},customStatuses:{buttons:{addAllUnknown:{name:"Add All Unknown Status Types"},addNewStatus:{name:"Add New Task Status"},resetCustomStatuses:{name:"Reset Custom Status Types to Defaults"}},description:{line1:"You should first <b>select and install a CSS Snippet or Theme</b> to style custom checkboxes.",line2:"Then, use the buttons below to set up your custom statuses, to match your chosen CSS checkboxes.",line3:"<b>Note</b> Any statuses with the same symbol as any earlier statuses will be ignored. You can confirm the actually loaded statuses by running the 'Create or edit task' command and looking at the Status drop-down.",line4:"See the documentation to get started!"},heading:"Custom Statuses"},heading:"Task Statuses"}}}});var qb,$b=ee(()=>{qb={main:{loadingPlugin:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0438\u043D\u0430: {{name}} v{{version}}",unloadingPlugin:"\u0412\u044B\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0438\u043D\u0430: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\u0415\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u044D\u0442\u043E\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043A\u0430\u043A \u043A\u043E\u043C\u0430\u043D\u0434\u0430, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C \u0433\u043E\u0440\u044F\u0447\u0443\u044E \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u0438 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441 \u0441 \u0435\u0435 \u043F\u043E\u043C\u043E\u0449\u044C\u044E.",name:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u043A\u0430\u043A \u043A\u043E\u043C\u0430\u043D\u0434\u0430"},editNextStatusSymbol:{description:"\u041F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u044D\u0442\u043E \u0441\u0438\u043C\u0432\u043E\u043B, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u043C.",name:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},editStatusName:{description:"\u042D\u0442\u043E \u043F\u043E\u043D\u044F\u0442\u043D\u043E\u0435 \u0438\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438.",name:"\u0418\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},editStatusSymbol:{description:"\u042D\u0442\u043E \u0441\u0438\u043C\u0432\u043E\u043B \u043C\u0435\u0436\u0434\u0443 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u043C\u0438 \u0441\u043A\u043E\u0431\u043A\u0430\u043C\u0438. (\u0415\u0433\u043E \u043C\u043E\u0436\u043D\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432, \u043D\u043E \u043D\u0435 \u0434\u043B\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0445.)",name:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},editStatusType:{description:"\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u0438 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438.",name:"\u0422\u0438\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},fixErrorsBeforeSaving:"\u0418\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435 \u043E\u0448\u0438\u0431\u043A\u0438 \u043F\u0435\u0440\u0435\u0434 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u043C."}},reports:{statusRegistry:{about:{createdBy:"\u042D\u0442\u043E\u0442 \u0444\u0430\u0439\u043B \u0431\u044B\u043B \u0441\u043E\u0437\u0434\u0430\u043D \u043F\u043B\u0430\u0433\u0438\u043D\u043E\u043C Obsidian Tasks (\u0432\u0435\u0440\u0441\u0438\u044F {{version}}), \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043C\u043E\u0447\u044C \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0437\u0430\u0434\u0430\u0447 \u0432 \u044D\u0442\u043E\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435.",deleteFileAnyTime:"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0444\u0430\u0439\u043B \u0432 \u043B\u044E\u0431\u043E\u0435 \u0432\u0440\u0435\u043C\u044F.",title:"\u041E\u0431 \u044D\u0442\u043E\u043C \u0444\u0430\u0439\u043B\u0435",updateReport:{line1:"\u0415\u0441\u043B\u0438 \u0432\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 Tasks, \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043E\u0442\u0447\u0435\u0442, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F:",line2:"\u041F\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 `Settings` -> `Tasks`.",line3:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u043D\u0430 `Review and check your Statuses`."}},columnHeadings:{nextStatusSymbol:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0430",problems:"\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u044B (\u0435\u0441\u043B\u0438 \u0435\u0441\u0442\u044C)",statusName:"\u0418\u043C\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430",statusSymbol:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0430",statusType:"\u0422\u0438\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0430"},loadedSettings:{settingsActuallyUsed:"\u042D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F Tasks.",switchToLivePreview:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u0441\u044C \u0432 \u0440\u0435\u0436\u0438\u043C Live Preview \u0438\u043B\u0438 Reading Mode, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443.",title:"\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438"},messages:{cannotFindNextStatus:"\u041D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0430.",duplicateSymbol:"\u0414\u0443\u0431\u043B\u0438\u0440\u0443\u044E\u0449\u0438\u0439\u0441\u044F \u0441\u0438\u043C\u0432\u043E\u043B '{{symbol}}': \u044D\u0442\u043E\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u043F\u0440\u043E\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D.",emptySymbol:"\u041F\u0443\u0441\u0442\u043E\u0439 \u0441\u0438\u043C\u0432\u043E\u043B: \u044D\u0442\u043E\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u043F\u0440\u043E\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D.",nextSymbolUnknown:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B {{symbol}} \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0441 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C {{symbol}}.",notConventionalType:"\u0414\u043B\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438, \u043E\u0431\u044B\u0447\u043D\u044B\u0439 \u0442\u0438\u043F \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 {{symbol}} - {{type}}: \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u0445\u043E\u0442\u0435\u0442\u044C \u043F\u0435\u0440\u0435\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u044D\u0442\u043E\u0442 \u0442\u0438\u043F.",wrongTypeAfterDone:{line1:"\u0417\u0430 \u044D\u0442\u0438\u043C \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u043C `DONE` \u0441\u043B\u0435\u0434\u0443\u0435\u0442 {{nextType}}, \u0430 \u043D\u0435 `TODO` \u0438\u043B\u0438 `IN_PROGRESS`.",line2:"\u0415\u0441\u043B\u0438 \u043E\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u0442\u043E \u0432\u043C\u0435\u0441\u0442\u043E \u044D\u0442\u043E\u0433\u043E \u0437\u0430 \u043D\u0438\u043C \u0431\u0443\u0434\u0435\u0442 \u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u044C `TODO` \u0438\u043B\u0438 `IN_PROGRESS`, \u0447\u0442\u043E\u0431\u044B \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u043B\u0430 \u0444\u0438\u043B\u044C\u0442\u0440\u0443 `\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E`.",line3:"\u0421\u043C. [Recurring Tasks and Custom Statuses]({{helpURL}})."}},statusSettings:{comment:{line1:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u0441\u044C \u0432 \u0440\u0435\u0436\u0438\u043C Live Preview \u0438\u043B\u0438 Reading Mode, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u0443.",line2:"\u0415\u0441\u043B\u0438 \u0432 \u0438\u043C\u0435\u043D\u0430\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 \u0435\u0441\u0442\u044C \u043A\u0430\u043A\u0438\u0435-\u043B\u0438\u0431\u043E \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F Markdown, \u0442\u0430\u043A\u0438\u0435 \u043A\u0430\u043A '*' \u0438\u043B\u0438 '_',",line3:"Obsidian \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0437\u0438\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 Reading Mode."},theseAreStatusValues:"\u042D\u0442\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0430\u0445 Core \u0438 Custom \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432.",title:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432"}}},settings:{autoSuggest:{heading:"\u0410\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438",maxSuggestions:{description:'\u0421\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u0438 \u043F\u043E\u044F\u0432\u043B\u0435\u043D\u0438\u0438 \u043C\u0435\u043D\u044E \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A (\u0432\u043A\u043B\u044E\u0447\u0430\u044F \u043E\u043F\u0446\u0438\u044E "\u23CE").',name:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445 \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A"},minLength:{description:"\u0415\u0441\u043B\u0438 \u0431\u043E\u043B\u044C\u0448\u0435 0, \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E\u0433\u0434\u0430, \u043A\u043E\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043E \u043D\u0430\u0447\u0430\u043B\u043E \u043B\u044E\u0431\u043E\u0433\u043E \u0438\u0437 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0445 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0445 \u0441\u043B\u043E\u0432.",name:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u043B\u0438\u043D\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A"},toggle:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u043E\u0442\u043A\u0440\u043E\u0435\u0442 \u0438\u043D\u0442\u0435\u043B\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E\u0435 \u043C\u0435\u043D\u044E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u0438 \u0432\u0432\u043E\u0434\u0435 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432\u043D\u0443\u0442\u0440\u0438 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438.",name:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u0442\u044C \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0437\u0430\u0434\u0430\u0447\u0438"}},changeRequiresRestart:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u043B\u044E\u0431\u044B\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0430 Obsidian.",dates:{cancelledDate:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u274C YYYY-MM-DD \u0432 \u043A\u043E\u043D\u0446\u0435, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043D\u0443\u044E.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u043E\u0442\u043C\u0435\u043D\u044B \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438"},createdDate:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u2795 YYYY-MM-DD \u043F\u0435\u0440\u0435\u0434 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043C\u0438 \u0434\u0430\u0442\u044B, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043E\u0437\u0434\u0430\u0435\u0442\u0441\u044F \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E 'Create or edit task' \u0438\u043B\u0438 \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438"},doneDate:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u2705 YYYY-MM-DD \u0432 \u043A\u043E\u043D\u0446\u0435, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u0443\u044E.",name:"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438"},heading:"\u0414\u0430\u0442\u044B"},datesFromFileNames:{heading:"\u0414\u0430\u0442\u044B \u0438\u0437 \u0438\u043C\u0435\u043D \u0444\u0430\u0439\u043B\u043E\u0432",scheduledDate:{extraFormat:{description:{line1:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u043B\u0430\u0433\u0438\u043D Tasks \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0442\u044C \u043F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B.",line2:"\u0421\u043F\u0440\u0430\u0432\u043A\u0430 \u043F\u043E \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u0443"},name:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B \u0438\u0437 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B",placeholder:"\u043F\u0440\u0438\u043C\u0435\u0440: MMM DD YYYY"},folders:{description:"\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0435\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u0435\u0437\u0434\u0435, \u0438\u043B\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043F\u0438\u0441\u043E\u043A \u043F\u0430\u043F\u043E\u043A \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E.",name:"\u041F\u0430\u043F\u043A\u0438 \u0441 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0434\u0430\u0442\u0430\u043C\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"},toggle:{description:{line1:"\u042D\u043A\u043E\u043D\u043E\u043C\u044C\u0442\u0435 \u0432\u0440\u0435\u043C\u044F \u043D\u0430 \u0432\u0432\u043E\u0434\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 (\u23F3) \u0434\u0430\u0442.",line2:"\u0415\u0441\u043B\u0438 \u044D\u0442\u0430 \u043E\u043F\u0446\u0438\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430, \u0442\u043E \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430, \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u043D\u0430\u044F \u0438\u0437 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430.",line3:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043F\u043B\u0430\u0433\u0438\u043D Tasks \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0444\u043E\u0440\u043C\u0430\u0442\u044B \u0434\u0430\u0442 <code>YYYY-MM-DD</code> \u0438 <code>YYYYMMDD</code>.",line4:"\u0417\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u0434\u0430\u0442 Due (\u{1F4C5} ), Scheduled (\u23F3) \u0438 Start (\u{1F6EB})."},name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u043A\u0430\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B"}}},dialogs:{accessKeys:{description:"\u0415\u0441\u043B\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 (\u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448) \u0434\u043B\u044F \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0432 \u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0445 \u043E\u043A\u043D\u0430\u0445 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u044E\u0442 \u0441 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u043C\u0438 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F\u043C\u0438 \u043A\u043B\u0430\u0432\u0438\u0448 \u0438\u043B\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u043C\u0438 \u0432\u0441\u043F\u043E\u043C\u043E\u0433\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0439, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0432\u0430\u0436\u043D\u044B \u0434\u043B\u044F \u0432\u0430\u0441, \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0435\u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0437\u0434\u0435\u0441\u044C.",name:"\u041F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0432 \u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0445 \u043E\u043A\u043D\u0430\u0445"},heading:"\u0414\u0438\u0430\u043B\u043E\u0433\u0438"},format:{description:{line1:"\u0424\u043E\u0440\u043C\u0430\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 Tasks \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0434\u043B\u044F \u0447\u0442\u0435\u043D\u0438\u044F \u0438 \u0437\u0430\u043F\u0438\u0441\u0438 \u0437\u0430\u0434\u0430\u0447.",line2:"<b>\u0412\u0430\u0436\u043D\u043E:</b> Tasks \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0434\u0438\u043D \u0444\u043E\u0440\u043C\u0430\u0442 \u043E\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E. \u0412\u044B\u0431\u043E\u0440 Dataview \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F <b>\u043F\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043A \u0442\u043E\u043C\u0443, \u0447\u0442\u043E Tasks \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u043D\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044C \u0441\u0432\u043E\u0438 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u044D\u043C\u043E\u0434\u0437\u0438</b>."},displayName:{dataview:"Dataview",tasksEmojiFormat:"\u0424\u043E\u0440\u043C\u0430\u0442 \u044D\u043C\u043E\u0434\u0437\u0438 Tasks"},name:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u0430\u0434\u0430\u0447"},globalFilter:{filter:{description:{line1:"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F: \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0435\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0441\u043F\u0438\u0441\u043A\u0430 \u0432 \u0432\u0430\u0448\u0435\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u0431\u044B\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438, \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u043C\u0438 \u044D\u0442\u0438\u043C \u043F\u043B\u0430\u0433\u0438\u043D\u043E\u043C.",line2:'\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440, \u0435\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B Tasks \u0434\u0435\u0439\u0441\u0442\u0432\u043E\u0432\u0430\u043B \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0432\u0430\u0448\u0438\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u0430 "<code>- [ ]</code>", \u0442\u0430\u043A \u0447\u0442\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0441\u043F\u0438\u0441\u043A\u0430 \u0434\u043E\u043B\u0436\u0435\u043D \u0432\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0432 \u0441\u0432\u043E\u0435\u043C \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0438, \u0447\u0442\u043E\u0431\u044B \u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0435\u0439.',line3:"\u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0435\u0441\u043B\u0438 \u0432\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 \u043D\u0430 <code>#task</code>, \u043F\u043B\u0430\u0433\u0438\u043D Tasks \u0431\u0443\u0434\u0435\u0442 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0441\u043F\u0438\u0441\u043A\u0430, \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0435 \u0442\u0435\u0433\u043E\u043C <code>#task</code>.",line4:"\u0414\u0440\u0443\u0433\u0438\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0441\u043F\u0438\u0441\u043A\u0430 \u043E\u0441\u0442\u0430\u043D\u0443\u0442\u0441\u044F \u043E\u0431\u044B\u0447\u043D\u044B\u043C\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438 \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0430\u0445 \u0438\u043B\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F."},name:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440",placeholder:"\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, #task \u0438\u043B\u0438 TODO"},heading:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 \u0437\u0430\u0434\u0430\u0447",removeFilter:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u0443\u0434\u0430\u043B\u044F\u0435\u0442 \u0441\u0442\u0440\u043E\u043A\u0443, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0432\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043B\u0438 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0430, \u0438\u0437 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438.",name:"\u0423\u0434\u0430\u043B\u044F\u0442\u044C \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 \u0438\u0437 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F"}},globalQuery:{heading:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441",query:{description:"\u0417\u0430\u043F\u0440\u043E\u0441, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u043D\u0430\u0447\u0430\u043B\u043E \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430 Tasks \u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435. \u041F\u043E\u043B\u0435\u0437\u043D\u043E \u0434\u043B\u044F \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u043B\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u043C\u0430\u043A\u0435\u0442\u0430.",placeholder:`\u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440... path does not include _templates/ limit 300 -show urgency`}},recurringTasks:{heading:"\u041F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438",nextLine:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043A \u0442\u043E\u043C\u0443, \u0447\u0442\u043E \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0435 \u043D\u0438\u0436\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0412 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0439.",name:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u043F\u043E\u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0435 \u043D\u0438\u0436\u0435"}},seeTheDocumentation:"\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u0435\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u0435\u043C\u0430 Aura",borderTheme:"\u0422\u0435\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C {{numberOfStatuses}} \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432"}},ebullientworksTheme:"\u0422\u0435\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u0435\u043C\u0430 ITS \u0438 \u0444\u043B\u0430\u0436\u043A\u0438 SlRvb",lytModeTheme:"\u0422\u0435\u043C\u0430 LYT Mode (\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043C\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C)",minimalTheme:"\u0422\u0435\u043C\u0430 Minimal",thingsTheme:"\u0422\u0435\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u044B",tooltip:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B \u0432 \u043A\u043E\u0440\u043D\u0435 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 Mermaid \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443 \u0442\u0435\u043A\u0443\u0449\u0438\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432."}},description:{line1:"\u042D\u0442\u043E \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 Tasks \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u0437\u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E, \u0431\u0435\u0437 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 CSS \u0441\u0442\u0438\u043B\u0435\u0439 \u0438\u043B\u0438 \u0442\u0435\u043C.",line2:"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u0432\u043E\u0438 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435 \u043D\u0438\u0436\u0435."},heading:"\u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B"},customStatuses:{buttons:{addAllUnknown:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0435 \u0442\u0438\u043F\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432"},addNewStatus:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u0438"},resetCustomStatuses:{name:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0442\u0438\u043F\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 \u043A \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"}},description:{line1:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 <b>\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C CSS \u0441\u043D\u0438\u043F\u043F\u0435\u0442 \u0438\u043B\u0438 \u0442\u0435\u043C\u0443</b> \u0434\u043B\u044F \u0441\u0442\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u0444\u043B\u0430\u0436\u043A\u043E\u0432.",line2:"\u0417\u0430\u0442\u0435\u043C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \u043D\u0438\u0436\u0435, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C\u0438 CSS \u0444\u043B\u0430\u0436\u043A\u0430\u043C\u0438.",line3:"<b>\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435.</b> \u041B\u044E\u0431\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0441 \u0442\u0435\u043C \u0436\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C, \u0447\u0442\u043E \u0438 \u0443 \u0431\u043E\u043B\u0435\u0435 \u0440\u0430\u043D\u043D\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432, \u0431\u0443\u0434\u0443\u0442 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 '\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0438\u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443' \u0438 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0432 \u043D\u0430 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0439\u0441\u044F \u0441\u043F\u0438\u0441\u043E\u043A \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432.",line4:"\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044E, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0447\u0430\u0442\u044C!"},heading:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B"},heading:"\u0421\u0442\u0430\u0442\u0443\u0441\u044B \u0437\u0430\u0434\u0430\u0447"}}}});var Gb,Hb=ee(()=>{Gb={main:{loadingPlugin:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u043F\u043B\u0430\u0433\u0456\u043D\u0430: {{name}} v{{version}}",unloadingPlugin:"\u0412\u0438\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u043F\u043B\u0430\u0433\u0456\u043D\u0430: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\u042F\u043A\u0449\u043E \u0432\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043E, \u0446\u0435\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u044F\u043A \u043A\u043E\u043C\u0430\u043D\u0434\u0430, \u0449\u043E\u0431 \u0432\u0438 \u043C\u043E\u0433\u043B\u0438 \u043F\u0440\u0438\u0437\u043D\u0430\u0447\u0438\u0442\u0438 \u0433\u0430\u0440\u044F\u0447\u0443 \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u0442\u0430 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u0442\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430 \u0457\u0457 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u043E\u044E.",name:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u044F\u043A \u043A\u043E\u043C\u0430\u043D\u0434\u0430"},editNextStatusSymbol:{description:"\u0421\u0438\u043C\u0432\u043E\u043B, \u044F\u043A\u0438\u0439 \u043C\u0430\u0454 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u043C \u043F\u0440\u0438 \u043D\u0430\u0442\u0438\u0441\u043A\u0430\u043D\u043D\u0456.",name:"\u0421\u0438\u043C\u0432\u043E\u043B \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"},editStatusName:{description:"\u0426\u0435 \u0437\u0440\u043E\u0437\u0443\u043C\u0456\u043B\u0430 \u043D\u0430\u0437\u0432\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456.",name:"\u041D\u0430\u0437\u0432\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"},editStatusSymbol:{description:"\u0426\u0435 \u0441\u0438\u043C\u0432\u043E\u043B \u043C\u0456\u0436 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u0438\u043C\u0438 \u0434\u0443\u0436\u043A\u0430\u043C\u0438. (\u0419\u043E\u0433\u043E \u043C\u043E\u0436\u043D\u0430 \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043B\u0438\u0448\u0435 \u0434\u043B\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432, \u0430 \u043D\u0435 \u0434\u043B\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432.)",name:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"},editStatusType:{description:"\u041A\u0435\u0440\u0443\u0439\u0442\u0435 \u0442\u0438\u043C, \u044F\u043A \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u043E\u0432\u043E\u0434\u0438\u0442\u044C\u0441\u044F \u043F\u0456\u0434 \u0447\u0430\u0441 \u043F\u043E\u0448\u0443\u043A\u0443 \u0442\u0430 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u043D\u043D\u044F.",name:"\u0422\u0438\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"},fixErrorsBeforeSaving:"\u0412\u0438\u043F\u0440\u0430\u0432\u0442\u0435 \u043F\u043E\u043C\u0438\u043B\u043A\u0438 \u043F\u0435\u0440\u0435\u0434 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043D\u043D\u044F\u043C."}},reports:{statusRegistry:{about:{createdBy:"\u0426\u0435\u0439 \u0444\u0430\u0439\u043B \u0441\u0442\u0432\u043E\u0440\u0435\u043D\u043E \u043F\u043B\u0430\u0433\u0456\u043D\u043E\u043C Obsidian Tasks (\u0432\u0435\u0440\u0441\u0456\u044F {{version}}), \u0449\u043E\u0431 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u0442\u0438 \u0432\u0456\u0437\u0443\u0430\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u0437\u0430\u0434\u0430\u0447 \u0443 \u0446\u044C\u043E\u043C\u0443 \u0441\u0445\u043E\u0432\u0438\u0449\u0456.",deleteFileAnyTime:"\u0412\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0446\u0435\u0439 \u0444\u0430\u0439\u043B \u0443 \u0431\u0443\u0434\u044C-\u044F\u043A\u0438\u0439 \u0447\u0430\u0441.",title:"\u041F\u0440\u043E \u0446\u0435\u0439 \u0444\u0430\u0439\u043B",updateReport:{line1:"\u042F\u043A\u0449\u043E \u0432\u0438 \u0437\u043C\u0456\u043D\u0438\u0442\u0435 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432 Tasks, \u0432\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 \u043E\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0439 \u0437\u0432\u0456\u0442, \u0432\u0438\u043A\u043E\u043D\u0430\u0432\u0448\u0438 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0456 \u0434\u0456\u0457:",line2:"\u041F\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044C \u0434\u043E `\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F` -> `Tasks`.",line3:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C `\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0442\u0430 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u0432\u0430\u0448\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438`."}},columnHeadings:{nextStatusSymbol:"\u0421\u0438\u043C\u0432\u043E\u043B \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0443",problems:"\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 (\u044F\u043A\u0449\u043E \u0454)",statusName:"\u041D\u0430\u0437\u0432\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443",statusSymbol:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0443",statusType:"\u0422\u0438\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0443"},loadedSettings:{settingsActuallyUsed:"\u0426\u0435 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F, \u044F\u043A\u0456 \u0444\u0430\u043A\u0442\u0438\u0447\u043D\u043E \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u044E\u0442\u044C\u0441\u044F Tasks.",switchToLivePreview:"\u041F\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044C \u0443 \u0440\u0435\u0436\u0438\u043C Live Preview \u0430\u0431\u043E \u0440\u0435\u0436\u0438\u043C \u0447\u0438\u0442\u0430\u043D\u043D\u044F, \u0449\u043E\u0431 \u043F\u043E\u0431\u0430\u0447\u0438\u0442\u0438 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443.",title:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u0456 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F"},messages:{cannotFindNextStatus:"\u041D\u0435\u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u0430 \u043F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u043F\u043E\u0448\u0443\u043A\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0443.",duplicateSymbol:"\u0414\u0443\u0431\u043B\u0456\u043A\u0430\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u0443 '{{symbol}}': \u0446\u0435\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435 \u043F\u0440\u043E\u0456\u0433\u043D\u043E\u0440\u043E\u0432\u0430\u043D\u043E.",emptySymbol:"\u041F\u043E\u0440\u043E\u0436\u043D\u0456\u0439 \u0441\u0438\u043C\u0432\u043E\u043B: \u0446\u0435\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435 \u043F\u0440\u043E\u0456\u0433\u043D\u043E\u0440\u043E\u0432\u0430\u043D\u043E.",nextSymbolUnknown:"\u041D\u0435\u0432\u0456\u0434\u043E\u043C\u0438\u0439 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B {{symbol}}: \u0441\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441 \u0456\u0437 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C {{symbol}}.",notConventionalType:"\u0414\u043B\u044F \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u0457, \u0437\u0432\u0438\u0447\u0430\u0439\u043D\u0438\u0439 \u0442\u0438\u043F \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u0443 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 {{symbol}} - {{type}}: \u043C\u043E\u0436\u043B\u0438\u0432\u043E, \u0432\u0438 \u0437\u0430\u0445\u043E\u0447\u0435\u0442\u0435 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0446\u0435\u0439 \u0442\u0438\u043F.",wrongTypeAfterDone:{line1:"\u0417\u0430 \u0446\u0438\u043C \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u043C `DONE` \u0439\u0434\u0435 {{nextType}}, \u0430 \u043D\u0435 `TODO` \u0430\u0431\u043E `IN_PROGRESS`.",line2:"\u042F\u043A\u0449\u043E \u0439\u043E\u0433\u043E \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u0434\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456, \u0437\u0430\u043C\u0456\u0441\u0442\u044C \u0446\u044C\u043E\u0433\u043E \u0437\u0430 \u043D\u0438\u043C \u0431\u0443\u0434\u0435 \u0441\u043B\u0456\u0434\u0443\u0432\u0430\u0442\u0438 `TODO` \u0430\u0431\u043E `IN_PROGRESS`, \u0449\u043E\u0431 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u043B\u0430 \u0444\u0456\u043B\u044C\u0442\u0440\u0443 `\u043D\u0435 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043E`.",line3:"\u0414\u0438\u0432. [\u041F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u0456 \u0437\u0430\u0434\u0430\u0447\u0456 \u0442\u0430 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438]({{helpURL}})."}},statusSettings:{comment:{line1:"\u041F\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044C \u0443 \u0440\u0435\u0436\u0438\u043C Live Preview \u0430\u0431\u043E \u0440\u0435\u0436\u0438\u043C \u0447\u0438\u0442\u0430\u043D\u043D\u044F, \u0449\u043E\u0431 \u043F\u043E\u0431\u0430\u0447\u0438\u0442\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u044E.",line2:"\u042F\u043A\u0449\u043E \u0432 \u043D\u0430\u0437\u0432\u0430\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432 \u0454 \u0441\u0438\u043C\u0432\u043E\u043B\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0443\u0432\u0430\u043D\u043D\u044F Markdown, \u043D\u0430\u043F\u0440\u0438\u043A\u043B\u0430\u0434 '*' \u0430\u0431\u043E '_',",line3:"Obsidian \u043C\u043E\u0436\u0435 \u043A\u043E\u0440\u0435\u043A\u0442\u043D\u043E \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u044E \u043B\u0438\u0448\u0435 \u0432 \u0440\u0435\u0436\u0438\u043C\u0456 \u0447\u0438\u0442\u0430\u043D\u043D\u044F."},theseAreStatusValues:"\u0426\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432 \u0443 \u0440\u043E\u0437\u0434\u0456\u043B\u0430\u0445 \u043E\u0441\u043D\u043E\u0432\u043D\u0438\u0445 \u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432.",title:"\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432"}}},settings:{autoSuggest:{heading:"\u0410\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F",maxSuggestions:{description:'\u0421\u043A\u0456\u043B\u044C\u043A\u0438 \u043F\u0440\u043E\u043F\u043E\u0437\u0438\u0446\u0456\u0439 \u043C\u0430\u0454 \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u0438\u0441\u044F, \u043A\u043E\u043B\u0438 \u0437\u2019\u044F\u0432\u043B\u044F\u0454\u0442\u044C\u0441\u044F \u043C\u0435\u043D\u044E \u0430\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F (\u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0447\u0438 \u043E\u043F\u0446\u0456\u044E "\u23CE").',name:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430 \u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C \u043F\u0440\u043E\u043F\u043E\u0437\u0438\u0446\u0456\u0439 \u0434\u043B\u044F \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F"},minLength:{description:"\u042F\u043A\u0449\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0431\u0456\u043B\u044C\u0448\u0435 0, \u0430\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F \u0431\u0443\u0434\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u0438\u0441\u044F \u043B\u0438\u0448\u0435 \u0442\u043E\u0434\u0456, \u043A\u043E\u043B\u0438 \u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u0454\u0442\u044C\u0441\u044F \u043F\u043E\u0447\u0430\u0442\u043E\u043A \u0431\u0443\u0434\u044C-\u044F\u043A\u0438\u0445 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0432\u0430\u043D\u0438\u0445 \u043A\u043B\u044E\u0447\u043E\u0432\u0438\u0445 \u0441\u043B\u0456\u0432.",name:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430 \u0434\u043E\u0432\u0436\u0438\u043D\u0430 \u0437\u0431\u0456\u0433\u0443 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F"},toggle:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0432\u0456\u0434\u043A\u0440\u0438\u0454 \u0456\u043D\u0442\u0435\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u0435 \u043C\u0435\u043D\u044E \u043F\u0440\u043E\u043F\u043E\u0437\u0438\u0446\u0456\u0439 \u043F\u0456\u0434 \u0447\u0430\u0441 \u0432\u0432\u0435\u0434\u0435\u043D\u043D\u044F \u0442\u0435\u043A\u0441\u0442\u0443 \u0432\u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0456 \u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u043E\u0433\u043E \u0440\u044F\u0434\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0456.",name:"\u0410\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F \u0432\u043C\u0456\u0441\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"}},changeRequiresRestart:"\u0417\u043C\u0456\u043D\u0430 \u0431\u0443\u0434\u044C-\u044F\u043A\u0438\u0445 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u044C \u0432\u0438\u043C\u0430\u0433\u0430\u0454 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0443 obsidian.",dates:{cancelledDate:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0434\u043E\u0434\u0430\u0441\u0442\u044C \u043F\u043E\u0437\u043D\u0430\u0447\u043A\u0443 \u0447\u0430\u0441\u0443 \u274C YYYY-MM-DD \u0432 \u043A\u0456\u043D\u0446\u0456, \u043A\u043E\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u0454\u0442\u044C\u0441\u044F \u0432 \u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0439 \u0441\u0442\u0430\u043D.",name:"\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443 \u0441\u043A\u0430\u0441\u0443\u0432\u0430\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u043E\u0457 \u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456"},createdDate:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0434\u043E\u0434\u0430\u0441\u0442\u044C \u043F\u043E\u0437\u043D\u0430\u0447\u043A\u0443 \u0447\u0430\u0441\u0443 \u2795 YYYY-MM-DD \u043F\u0435\u0440\u0435\u0434 \u0456\u043D\u0448\u0438\u043C\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\u043C\u0438 \u0434\u0430\u0442, \u043A\u043E\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0432\u043E\u0440\u044E\u0454\u0442\u044C\u0441\u044F \u0437\u0430 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u043E\u044E '\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0430\u0431\u043E \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0443' \u0430\u0431\u043E \u0448\u043B\u044F\u0445\u043E\u043C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456.",name:"\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443 \u0441\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u043E\u0457 \u0434\u043E\u0434\u0430\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456"},doneDate:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0434\u043E\u0434\u0430\u0441\u0442\u044C \u043F\u043E\u0437\u043D\u0430\u0447\u043A\u0443 \u0447\u0430\u0441\u0443 \u2705 YYYY-MM-DD \u0432 \u043A\u0456\u043D\u0446\u0456, \u043A\u043E\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u0454\u0442\u044C\u0441\u044F \u0443 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u0438\u0439 \u0441\u0442\u0430\u043D.",name:"\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u043E\u0457 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456"},heading:"\u0414\u0430\u0442\u0438"},datesFromFileNames:{heading:"\u0414\u0430\u0442\u0438 \u0437 \u043D\u0430\u0437\u0432 \u0444\u0430\u0439\u043B\u0456\u0432",scheduledDate:{extraFormat:{description:{line1:"\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u0438\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u0438, \u044F\u043A\u0438\u0439 \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u0432\u0430\u0442\u0438\u043C\u0435 \u043F\u0456\u0434 \u0447\u0430\u0441 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F \u043D\u0430\u0437\u0432\u0438 \u0444\u0430\u0439\u043B\u0443 \u044F\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0443 \u0434\u0430\u0442\u0443 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u0438.",line2:"\u0414\u043E\u0432\u0456\u0434\u043A\u0430 \u0437 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u0443"},name:"\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u0438\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u0438 \u043D\u0430\u0437\u0432\u0438 \u0444\u0430\u0439\u043B\u0443 \u044F\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0430 \u0434\u0430\u0442\u0430 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u0438",placeholder:"\u043F\u0440\u0438\u043A\u043B\u0430\u0434: MMM DD YYYY"},folders:{description:"\u0417\u0430\u043B\u0438\u0448\u0442\u0435 \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u043C, \u044F\u043A\u0449\u043E \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0456 \u0434\u0430\u0442\u0438 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C \u0432\u0441\u044E\u0434\u0438, \u0430\u0431\u043E \u0432\u0432\u0435\u0434\u0456\u0442\u044C \u0441\u043F\u0438\u0441\u043E\u043A \u043F\u0430\u043F\u043E\u043A, \u0440\u043E\u0437\u0434\u0456\u043B\u0435\u043D\u0438\u0445 \u043A\u043E\u043C\u0430\u043C\u0438.",name:"\u041F\u0430\u043F\u043A\u0438 \u0437 \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0438\u043C\u0438 \u0434\u0430\u0442\u0430\u043C\u0438 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C"},toggle:{description:{line1:"\u0417\u0430\u043E\u0449\u0430\u0434\u0436\u0443\u0439\u0442\u0435 \u0447\u0430\u0441 \u043D\u0430 \u0432\u0432\u0435\u0434\u0435\u043D\u043D\u0456 \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0438\u0445 (\u23F3) \u0434\u0430\u0442.",line2:"\u042F\u043A\u0449\u043E \u0446\u0435\u0439 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0443\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043E, \u0443\u0441\u0456\u043C \u0437\u0430\u0434\u0430\u0447\u0430\u043C \u0431\u0435\u0437 \u0434\u0430\u0442\u0438 \u0431\u0443\u0434\u0435 \u043F\u0440\u0438\u0441\u0432\u043E\u0454\u043D\u043E \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0443 \u0434\u0430\u0442\u0443 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C, \u0432\u0438\u0442\u044F\u0433\u043D\u0443\u0442\u0443 \u0437 \u0457\u0445 \u043D\u0430\u0437\u0432\u0438 \u0444\u0430\u0439\u043B\u0443.",line3:"\u0417\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u0432\u0430\u0442\u0438\u043C\u0435 \u0444\u043E\u0440\u043C\u0430\u0442\u0438 \u0434\u0430\u0442 <code>YYYY-MM-DD</code> \u0456 <code>YYYYMMDD</code>.",line4:"\u0417\u0430\u0434\u0430\u0447\u0456 \u0431\u0435\u0437 \u0434\u0430\u0442\u0438 \u043D\u0435 \u043C\u0430\u044E\u0442\u044C \u0434\u0430\u0442 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043D\u044F (\u{1F4C5}), \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u043E\u0457 (\u23F3) \u0442\u0430 \u043F\u043E\u0447\u0430\u0442\u043A\u0443 (\u{1F6EB})."},name:"\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u043D\u0430\u0437\u0432\u0443 \u0444\u0430\u0439\u043B\u0443 \u044F\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0443 \u0434\u0430\u0442\u0443 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u0438"}}},dialogs:{accessKeys:{description:"\u042F\u043A\u0449\u043E \u043A\u043B\u0430\u0432\u0456\u0448\u0456 \u0434\u043E\u0441\u0442\u0443\u043F\u0443 (\u043A\u043E\u043C\u0431\u0456\u043D\u0430\u0446\u0456\u0457 \u043A\u043B\u0430\u0432\u0456\u0448) \u0434\u043B\u044F \u0440\u0456\u0437\u043D\u0438\u0445 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432 \u043A\u0435\u0440\u0443\u0432\u0430\u043D\u043D\u044F \u0432 \u0434\u0456\u0430\u043B\u043E\u0433\u043E\u0432\u0438\u0445 \u0432\u0456\u043A\u043D\u0430\u0445 \u043A\u043E\u043D\u0444\u043B\u0456\u043A\u0442\u0443\u044E\u0442\u044C \u0456\u0437 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0438\u043C\u0438 \u043A\u043E\u043C\u0431\u0456\u043D\u0430\u0446\u0456\u044F\u043C\u0438 \u043A\u043B\u0430\u0432\u0456\u0448 \u0430\u0431\u043E \u0444\u0443\u043D\u043A\u0446\u0456\u043E\u043D\u0430\u043B\u044C\u043D\u0456\u0441\u0442\u044E \u0434\u043E\u043F\u043E\u043C\u0456\u0436\u043D\u0438\u0445 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0456\u0439, \u044F\u043A\u0456 \u0432\u0430\u0436\u043B\u0438\u0432\u0456 \u0434\u043B\u044F \u0432\u0430\u0441, \u0432\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0435\u0430\u043A\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u0457\u0445 \u0442\u0443\u0442.",name:"\u041D\u0430\u0434\u0430\u0432\u0430\u0442\u0438 \u043A\u043B\u0430\u0432\u0456\u0448\u0456 \u0434\u043E\u0441\u0442\u0443\u043F\u0443 \u0432 \u0434\u0456\u0430\u043B\u043E\u0433\u043E\u0432\u0438\u0445 \u0432\u0456\u043A\u043D\u0430\u0445"},heading:"\u0414\u0456\u0430\u043B\u043E\u0433\u043E\u0432\u0456 \u0432\u0456\u043A\u043D\u0430"},format:{description:{line1:"\u0424\u043E\u0440\u043C\u0430\u0442, \u044F\u043A\u0438\u0439 Tasks \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454 \u0434\u043B\u044F \u0447\u0438\u0442\u0430\u043D\u043D\u044F \u0442\u0430 \u0437\u0430\u043F\u0438\u0441\u0443 \u0437\u0430\u0434\u0430\u0447.",line2:"<b>\u0412\u0430\u0436\u043B\u0438\u0432\u043E:</b> Tasks \u0437\u0430\u0440\u0430\u0437 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454 \u043B\u0438\u0448\u0435 \u043E\u0434\u0438\u043D \u0444\u043E\u0440\u043C\u0430\u0442 \u0437\u0430 \u0440\u0430\u0437. \u0412\u0438\u0431\u0456\u0440 Dataview \u043D\u0430\u0440\u0430\u0437\u0456 <b>\u0437\u0443\u043F\u0438\u043D\u0438\u0442\u044C \u0447\u0438\u0442\u0430\u043D\u043D\u044F Tasks \u0432\u043B\u0430\u0441\u043D\u0438\u0445 \u0437\u043D\u0430\u043A\u0456\u0432 \u0435\u043C\u043E\u0434\u0437\u0456</b>."},displayName:{dataview:"Dataview",tasksEmojiFormat:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0435\u043C\u043E\u0434\u0437\u0456 Tasks"},name:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u0430\u0434\u0430\u0447"},globalFilter:{filter:{description:{line1:"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u043E\u0432\u0430\u043D\u043E: \u0417\u0430\u043B\u0438\u0448\u0442\u0435 \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u043C, \u044F\u043A\u0449\u043E \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435, \u0449\u043E\u0431 \u0443\u0441\u0456 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 \u0443 \u0432\u0430\u0448\u043E\u043C\u0443 \u0441\u0445\u043E\u0432\u0438\u0449\u0456 \u0431\u0443\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438, \u044F\u043A\u0438\u043C\u0438 \u043A\u0435\u0440\u0443\u0454 \u0446\u0435\u0439 \u043F\u043B\u0430\u0433\u0456\u043D.",line2:'\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0439\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440, \u044F\u043A\u0449\u043E \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435, \u0449\u043E\u0431 Tasks \u0434\u0456\u044F\u043B\u0438 \u043B\u0438\u0448\u0435 \u043D\u0430 \u043F\u0456\u0434\u043C\u043D\u043E\u0436\u0438\u043D\u0443 \u0432\u0430\u0448\u0438\u0445 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 "<code>- [ ]</code>", \u0449\u043E\u0431 \u0435\u043B\u0435\u043C\u0435\u043D\u0442 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 \u0432\u043A\u043B\u044E\u0447\u0430\u0432 \u0432 \u043E\u043F\u0438\u0441\u0456 \u0432\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A, \u0449\u043E\u0431 \u0432\u0432\u0430\u0436\u0430\u0442\u0438\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0435\u044E.',line3:"\u041D\u0430\u043F\u0440\u0438\u043A\u043B\u0430\u0434, \u044F\u043A\u0449\u043E \u0432\u0438 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440 \u043D\u0430 <code>#task</code>, \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u043E\u0431\u0440\u043E\u0431\u043B\u044F\u0442\u0438\u043C\u0435 \u043B\u0438\u0448\u0435 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432, \u043F\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0456 \u0442\u0435\u0433\u043E\u043C <code>#task</code>.",line4:"\u0406\u043D\u0448\u0456 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 \u0437\u0430\u043B\u0438\u0448\u0430\u0442\u044C\u0441\u044F \u0437\u0432\u0438\u0447\u0430\u0439\u043D\u0438\u043C\u0438 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 \u0456 \u043D\u0435 \u0437\u2019\u044F\u0432\u043B\u044F\u0442\u0438\u043C\u0443\u0442\u044C\u0441\u044F \u0432 \u0437\u0430\u043F\u0438\u0442\u0430\u0445 \u0430\u0431\u043E \u043D\u0435 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u044E\u0432\u0430\u0442\u0438\u043C\u0443\u0442\u044C \u0434\u0430\u0442\u0443 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043D\u044F."},name:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440",placeholder:"\u043D\u0430\u043F\u0440. #task \u0430\u0431\u043E TODO"},heading:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440 \u0437\u0430\u0434\u0430\u0447",removeFilter:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0432\u0438\u0434\u0430\u043B\u044F\u0454 \u0440\u044F\u0434\u043E\u043A, \u044F\u043A\u0438\u0439 \u0432\u0438 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043B\u0438 \u044F\u043A \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440, \u0437 \u043E\u043F\u0438\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456 \u043F\u0456\u0434 \u0447\u0430\u0441 \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u0434\u0430\u0447\u0456.",name:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440 \u0437 \u043E\u043F\u0438\u0441\u0443"}},globalQuery:{heading:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u043F\u0438\u0442",query:{description:"\u0417\u0430\u043F\u0438\u0442, \u044F\u043A\u0438\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0432\u043A\u043B\u044E\u0447\u0430\u0454\u0442\u044C\u0441\u044F \u043D\u0430 \u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u043A\u043E\u0436\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0443 Tasks \u0443 \u0441\u0445\u043E\u0432\u0438\u0449\u0456. \u041A\u043E\u0440\u0438\u0441\u043D\u043E \u0434\u043B\u044F \u0434\u043E\u0434\u0430\u0432\u0430\u043D\u043D\u044F \u0444\u0456\u043B\u044C\u0442\u0440\u0456\u0432 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C \u0430\u0431\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0456\u0432 \u043C\u0430\u043A\u0435\u0442\u0430.",placeholder:`\u041D\u0430\u043F\u0440\u0438\u043A\u043B\u0430\u0434... +show urgency`}},recurringTasks:{heading:"\u041F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438",nextLine:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043A \u0442\u043E\u043C\u0443, \u0447\u0442\u043E \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0435 \u043D\u0438\u0436\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0412 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0439.",name:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u043F\u043E\u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0435 \u043D\u0438\u0436\u0435"},removeScheduledDate:{description:{line1:"",line2:""},name:""}},seeTheDocumentation:"\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u0435\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u0435\u043C\u0430 Aura",borderTheme:"\u0422\u0435\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C {{numberOfStatuses}} \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432"}},ebullientworksTheme:"\u0422\u0435\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u0435\u043C\u0430 ITS \u0438 \u0444\u043B\u0430\u0436\u043A\u0438 SlRvb",lytModeTheme:"\u0422\u0435\u043C\u0430 LYT Mode (\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043C\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C)",minimalTheme:"\u0422\u0435\u043C\u0430 Minimal",thingsTheme:"\u0422\u0435\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u044B",tooltip:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B \u0432 \u043A\u043E\u0440\u043D\u0435 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 Mermaid \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443 \u0442\u0435\u043A\u0443\u0449\u0438\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432."}},description:{line1:"\u042D\u0442\u043E \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 Tasks \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u0437\u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E, \u0431\u0435\u0437 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 CSS \u0441\u0442\u0438\u043B\u0435\u0439 \u0438\u043B\u0438 \u0442\u0435\u043C.",line2:"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u0432\u043E\u0438 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435 \u043D\u0438\u0436\u0435."},heading:"\u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B"},customStatuses:{buttons:{addAllUnknown:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0435 \u0442\u0438\u043F\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432"},addNewStatus:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u0438"},resetCustomStatuses:{name:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0442\u0438\u043F\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 \u043A \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"}},description:{line1:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 <b>\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C CSS \u0441\u043D\u0438\u043F\u043F\u0435\u0442 \u0438\u043B\u0438 \u0442\u0435\u043C\u0443</b> \u0434\u043B\u044F \u0441\u0442\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u0444\u043B\u0430\u0436\u043A\u043E\u0432.",line2:"\u0417\u0430\u0442\u0435\u043C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \u043D\u0438\u0436\u0435, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C\u0438 CSS \u0444\u043B\u0430\u0436\u043A\u0430\u043C\u0438.",line3:"<b>\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435.</b> \u041B\u044E\u0431\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0441 \u0442\u0435\u043C \u0436\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C, \u0447\u0442\u043E \u0438 \u0443 \u0431\u043E\u043B\u0435\u0435 \u0440\u0430\u043D\u043D\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432, \u0431\u0443\u0434\u0443\u0442 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 '\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0438\u043B\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443' \u0438 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0432 \u043D\u0430 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0439\u0441\u044F \u0441\u043F\u0438\u0441\u043E\u043A \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432.",line4:"\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044E, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0447\u0430\u0442\u044C!"},heading:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B"},heading:"\u0421\u0442\u0430\u0442\u0443\u0441\u044B \u0437\u0430\u0434\u0430\u0447"}}}});var Gb,Hb=ee(()=>{Gb={main:{loadingPlugin:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u043F\u043B\u0430\u0433\u0456\u043D\u0430: {{name}} v{{version}}",unloadingPlugin:"\u0412\u0438\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u043F\u043B\u0430\u0433\u0456\u043D\u0430: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\u042F\u043A\u0449\u043E \u0432\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043E, \u0446\u0435\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u044F\u043A \u043A\u043E\u043C\u0430\u043D\u0434\u0430, \u0449\u043E\u0431 \u0432\u0438 \u043C\u043E\u0433\u043B\u0438 \u043F\u0440\u0438\u0437\u043D\u0430\u0447\u0438\u0442\u0438 \u0433\u0430\u0440\u044F\u0447\u0443 \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u0442\u0430 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u0442\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430 \u0457\u0457 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u043E\u044E.",name:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u044F\u043A \u043A\u043E\u043C\u0430\u043D\u0434\u0430"},editNextStatusSymbol:{description:"\u0421\u0438\u043C\u0432\u043E\u043B, \u044F\u043A\u0438\u0439 \u043C\u0430\u0454 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u043C \u043F\u0440\u0438 \u043D\u0430\u0442\u0438\u0441\u043A\u0430\u043D\u043D\u0456.",name:"\u0421\u0438\u043C\u0432\u043E\u043B \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"},editStatusName:{description:"\u0426\u0435 \u0437\u0440\u043E\u0437\u0443\u043C\u0456\u043B\u0430 \u043D\u0430\u0437\u0432\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456.",name:"\u041D\u0430\u0437\u0432\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"},editStatusSymbol:{description:"\u0426\u0435 \u0441\u0438\u043C\u0432\u043E\u043B \u043C\u0456\u0436 \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u0438\u043C\u0438 \u0434\u0443\u0436\u043A\u0430\u043C\u0438. (\u0419\u043E\u0433\u043E \u043C\u043E\u0436\u043D\u0430 \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043B\u0438\u0448\u0435 \u0434\u043B\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432, \u0430 \u043D\u0435 \u0434\u043B\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432.)",name:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"},editStatusType:{description:"\u041A\u0435\u0440\u0443\u0439\u0442\u0435 \u0442\u0438\u043C, \u044F\u043A \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u043E\u0432\u043E\u0434\u0438\u0442\u044C\u0441\u044F \u043F\u0456\u0434 \u0447\u0430\u0441 \u043F\u043E\u0448\u0443\u043A\u0443 \u0442\u0430 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u043D\u043D\u044F.",name:"\u0422\u0438\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"},fixErrorsBeforeSaving:"\u0412\u0438\u043F\u0440\u0430\u0432\u0442\u0435 \u043F\u043E\u043C\u0438\u043B\u043A\u0438 \u043F\u0435\u0440\u0435\u0434 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043D\u043D\u044F\u043C."}},reports:{statusRegistry:{about:{createdBy:"\u0426\u0435\u0439 \u0444\u0430\u0439\u043B \u0441\u0442\u0432\u043E\u0440\u0435\u043D\u043E \u043F\u043B\u0430\u0433\u0456\u043D\u043E\u043C Obsidian Tasks (\u0432\u0435\u0440\u0441\u0456\u044F {{version}}), \u0449\u043E\u0431 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u0442\u0438 \u0432\u0456\u0437\u0443\u0430\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u0437\u0430\u0434\u0430\u0447 \u0443 \u0446\u044C\u043E\u043C\u0443 \u0441\u0445\u043E\u0432\u0438\u0449\u0456.",deleteFileAnyTime:"\u0412\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0446\u0435\u0439 \u0444\u0430\u0439\u043B \u0443 \u0431\u0443\u0434\u044C-\u044F\u043A\u0438\u0439 \u0447\u0430\u0441.",title:"\u041F\u0440\u043E \u0446\u0435\u0439 \u0444\u0430\u0439\u043B",updateReport:{line1:"\u042F\u043A\u0449\u043E \u0432\u0438 \u0437\u043C\u0456\u043D\u0438\u0442\u0435 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432 Tasks, \u0432\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 \u043E\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0439 \u0437\u0432\u0456\u0442, \u0432\u0438\u043A\u043E\u043D\u0430\u0432\u0448\u0438 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0456 \u0434\u0456\u0457:",line2:"\u041F\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044C \u0434\u043E `\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F` -> `Tasks`.",line3:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C `\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0442\u0430 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u0432\u0430\u0448\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438`."}},columnHeadings:{nextStatusSymbol:"\u0421\u0438\u043C\u0432\u043E\u043B \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0443",problems:"\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 (\u044F\u043A\u0449\u043E \u0454)",statusName:"\u041D\u0430\u0437\u0432\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443",statusSymbol:"\u0421\u0438\u043C\u0432\u043E\u043B \u0441\u0442\u0430\u0442\u0443\u0441\u0443",statusType:"\u0422\u0438\u043F \u0441\u0442\u0430\u0442\u0443\u0441\u0443"},loadedSettings:{settingsActuallyUsed:"\u0426\u0435 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F, \u044F\u043A\u0456 \u0444\u0430\u043A\u0442\u0438\u0447\u043D\u043E \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u044E\u0442\u044C\u0441\u044F Tasks.",switchToLivePreview:"\u041F\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044C \u0443 \u0440\u0435\u0436\u0438\u043C Live Preview \u0430\u0431\u043E \u0440\u0435\u0436\u0438\u043C \u0447\u0438\u0442\u0430\u043D\u043D\u044F, \u0449\u043E\u0431 \u043F\u043E\u0431\u0430\u0447\u0438\u0442\u0438 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443.",title:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u0456 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F"},messages:{cannotFindNextStatus:"\u041D\u0435\u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u0430 \u043F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u043F\u043E\u0448\u0443\u043A\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0443.",duplicateSymbol:"\u0414\u0443\u0431\u043B\u0456\u043A\u0430\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u0443 '{{symbol}}': \u0446\u0435\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435 \u043F\u0440\u043E\u0456\u0433\u043D\u043E\u0440\u043E\u0432\u0430\u043D\u043E.",emptySymbol:"\u041F\u043E\u0440\u043E\u0436\u043D\u0456\u0439 \u0441\u0438\u043C\u0432\u043E\u043B: \u0446\u0435\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435 \u043F\u0440\u043E\u0456\u0433\u043D\u043E\u0440\u043E\u0432\u0430\u043D\u043E.",nextSymbolUnknown:"\u041D\u0435\u0432\u0456\u0434\u043E\u043C\u0438\u0439 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B {{symbol}}: \u0441\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441 \u0456\u0437 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C {{symbol}}.",notConventionalType:"\u0414\u043B\u044F \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u0457, \u0437\u0432\u0438\u0447\u0430\u0439\u043D\u0438\u0439 \u0442\u0438\u043F \u0434\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u0443 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 {{symbol}} - {{type}}: \u043C\u043E\u0436\u043B\u0438\u0432\u043E, \u0432\u0438 \u0437\u0430\u0445\u043E\u0447\u0435\u0442\u0435 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0446\u0435\u0439 \u0442\u0438\u043F.",wrongTypeAfterDone:{line1:"\u0417\u0430 \u0446\u0438\u043C \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u043C `DONE` \u0439\u0434\u0435 {{nextType}}, \u0430 \u043D\u0435 `TODO` \u0430\u0431\u043E `IN_PROGRESS`.",line2:"\u042F\u043A\u0449\u043E \u0439\u043E\u0433\u043E \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u0434\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456, \u0437\u0430\u043C\u0456\u0441\u0442\u044C \u0446\u044C\u043E\u0433\u043E \u0437\u0430 \u043D\u0438\u043C \u0431\u0443\u0434\u0435 \u0441\u043B\u0456\u0434\u0443\u0432\u0430\u0442\u0438 `TODO` \u0430\u0431\u043E `IN_PROGRESS`, \u0449\u043E\u0431 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u043B\u0430 \u0444\u0456\u043B\u044C\u0442\u0440\u0443 `\u043D\u0435 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043E`.",line3:"\u0414\u0438\u0432. [\u041F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u0456 \u0437\u0430\u0434\u0430\u0447\u0456 \u0442\u0430 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438]({{helpURL}})."}},statusSettings:{comment:{line1:"\u041F\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044C \u0443 \u0440\u0435\u0436\u0438\u043C Live Preview \u0430\u0431\u043E \u0440\u0435\u0436\u0438\u043C \u0447\u0438\u0442\u0430\u043D\u043D\u044F, \u0449\u043E\u0431 \u043F\u043E\u0431\u0430\u0447\u0438\u0442\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u044E.",line2:"\u042F\u043A\u0449\u043E \u0432 \u043D\u0430\u0437\u0432\u0430\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432 \u0454 \u0441\u0438\u043C\u0432\u043E\u043B\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0443\u0432\u0430\u043D\u043D\u044F Markdown, \u043D\u0430\u043F\u0440\u0438\u043A\u043B\u0430\u0434 '*' \u0430\u0431\u043E '_',",line3:"Obsidian \u043C\u043E\u0436\u0435 \u043A\u043E\u0440\u0435\u043A\u0442\u043D\u043E \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u044E \u043B\u0438\u0448\u0435 \u0432 \u0440\u0435\u0436\u0438\u043C\u0456 \u0447\u0438\u0442\u0430\u043D\u043D\u044F."},theseAreStatusValues:"\u0426\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432 \u0443 \u0440\u043E\u0437\u0434\u0456\u043B\u0430\u0445 \u043E\u0441\u043D\u043E\u0432\u043D\u0438\u0445 \u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432.",title:"\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432"}}},settings:{autoSuggest:{heading:"\u0410\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F",maxSuggestions:{description:'\u0421\u043A\u0456\u043B\u044C\u043A\u0438 \u043F\u0440\u043E\u043F\u043E\u0437\u0438\u0446\u0456\u0439 \u043C\u0430\u0454 \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u0438\u0441\u044F, \u043A\u043E\u043B\u0438 \u0437\u2019\u044F\u0432\u043B\u044F\u0454\u0442\u044C\u0441\u044F \u043C\u0435\u043D\u044E \u0430\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F (\u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0447\u0438 \u043E\u043F\u0446\u0456\u044E "\u23CE").',name:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430 \u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C \u043F\u0440\u043E\u043F\u043E\u0437\u0438\u0446\u0456\u0439 \u0434\u043B\u044F \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F"},minLength:{description:"\u042F\u043A\u0449\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0431\u0456\u043B\u044C\u0448\u0435 0, \u0430\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F \u0431\u0443\u0434\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u0438\u0441\u044F \u043B\u0438\u0448\u0435 \u0442\u043E\u0434\u0456, \u043A\u043E\u043B\u0438 \u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u0454\u0442\u044C\u0441\u044F \u043F\u043E\u0447\u0430\u0442\u043E\u043A \u0431\u0443\u0434\u044C-\u044F\u043A\u0438\u0445 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0432\u0430\u043D\u0438\u0445 \u043A\u043B\u044E\u0447\u043E\u0432\u0438\u0445 \u0441\u043B\u0456\u0432.",name:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430 \u0434\u043E\u0432\u0436\u0438\u043D\u0430 \u0437\u0431\u0456\u0433\u0443 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F"},toggle:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0432\u0456\u0434\u043A\u0440\u0438\u0454 \u0456\u043D\u0442\u0435\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u0435 \u043C\u0435\u043D\u044E \u043F\u0440\u043E\u043F\u043E\u0437\u0438\u0446\u0456\u0439 \u043F\u0456\u0434 \u0447\u0430\u0441 \u0432\u0432\u0435\u0434\u0435\u043D\u043D\u044F \u0442\u0435\u043A\u0441\u0442\u0443 \u0432\u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0456 \u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u043E\u0433\u043E \u0440\u044F\u0434\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0456.",name:"\u0410\u0432\u0442\u043E\u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F \u0432\u043C\u0456\u0441\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0456"}},changeRequiresRestart:"\u0417\u043C\u0456\u043D\u0430 \u0431\u0443\u0434\u044C-\u044F\u043A\u0438\u0445 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u044C \u0432\u0438\u043C\u0430\u0433\u0430\u0454 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0443 obsidian.",dates:{cancelledDate:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0434\u043E\u0434\u0430\u0441\u0442\u044C \u043F\u043E\u0437\u043D\u0430\u0447\u043A\u0443 \u0447\u0430\u0441\u0443 \u274C YYYY-MM-DD \u0432 \u043A\u0456\u043D\u0446\u0456, \u043A\u043E\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u0454\u0442\u044C\u0441\u044F \u0432 \u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0439 \u0441\u0442\u0430\u043D.",name:"\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443 \u0441\u043A\u0430\u0441\u0443\u0432\u0430\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u043E\u0457 \u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456"},createdDate:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0434\u043E\u0434\u0430\u0441\u0442\u044C \u043F\u043E\u0437\u043D\u0430\u0447\u043A\u0443 \u0447\u0430\u0441\u0443 \u2795 YYYY-MM-DD \u043F\u0435\u0440\u0435\u0434 \u0456\u043D\u0448\u0438\u043C\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\u043C\u0438 \u0434\u0430\u0442, \u043A\u043E\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0432\u043E\u0440\u044E\u0454\u0442\u044C\u0441\u044F \u0437\u0430 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u043E\u044E '\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0430\u0431\u043E \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0443' \u0430\u0431\u043E \u0448\u043B\u044F\u0445\u043E\u043C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456.",name:"\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443 \u0441\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u043E\u0457 \u0434\u043E\u0434\u0430\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456"},doneDate:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0434\u043E\u0434\u0430\u0441\u0442\u044C \u043F\u043E\u0437\u043D\u0430\u0447\u043A\u0443 \u0447\u0430\u0441\u0443 \u2705 YYYY-MM-DD \u0432 \u043A\u0456\u043D\u0446\u0456, \u043A\u043E\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u0454\u0442\u044C\u0441\u044F \u0443 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u0438\u0439 \u0441\u0442\u0430\u043D.",name:"\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u043E\u0436\u043D\u043E\u0457 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456"},heading:"\u0414\u0430\u0442\u0438"},datesFromFileNames:{heading:"\u0414\u0430\u0442\u0438 \u0437 \u043D\u0430\u0437\u0432 \u0444\u0430\u0439\u043B\u0456\u0432",scheduledDate:{extraFormat:{description:{line1:"\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u0438\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u0438, \u044F\u043A\u0438\u0439 \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u0432\u0430\u0442\u0438\u043C\u0435 \u043F\u0456\u0434 \u0447\u0430\u0441 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F \u043D\u0430\u0437\u0432\u0438 \u0444\u0430\u0439\u043B\u0443 \u044F\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0443 \u0434\u0430\u0442\u0443 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u0438.",line2:"\u0414\u043E\u0432\u0456\u0434\u043A\u0430 \u0437 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u0443"},name:"\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u0438\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u0438 \u043D\u0430\u0437\u0432\u0438 \u0444\u0430\u0439\u043B\u0443 \u044F\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0430 \u0434\u0430\u0442\u0430 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u0438",placeholder:"\u043F\u0440\u0438\u043A\u043B\u0430\u0434: MMM DD YYYY"},folders:{description:"\u0417\u0430\u043B\u0438\u0448\u0442\u0435 \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u043C, \u044F\u043A\u0449\u043E \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0456 \u0434\u0430\u0442\u0438 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C \u0432\u0441\u044E\u0434\u0438, \u0430\u0431\u043E \u0432\u0432\u0435\u0434\u0456\u0442\u044C \u0441\u043F\u0438\u0441\u043E\u043A \u043F\u0430\u043F\u043E\u043A, \u0440\u043E\u0437\u0434\u0456\u043B\u0435\u043D\u0438\u0445 \u043A\u043E\u043C\u0430\u043C\u0438.",name:"\u041F\u0430\u043F\u043A\u0438 \u0437 \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0438\u043C\u0438 \u0434\u0430\u0442\u0430\u043C\u0438 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C"},toggle:{description:{line1:"\u0417\u0430\u043E\u0449\u0430\u0434\u0436\u0443\u0439\u0442\u0435 \u0447\u0430\u0441 \u043D\u0430 \u0432\u0432\u0435\u0434\u0435\u043D\u043D\u0456 \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0438\u0445 (\u23F3) \u0434\u0430\u0442.",line2:"\u042F\u043A\u0449\u043E \u0446\u0435\u0439 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u0443\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043E, \u0443\u0441\u0456\u043C \u0437\u0430\u0434\u0430\u0447\u0430\u043C \u0431\u0435\u0437 \u0434\u0430\u0442\u0438 \u0431\u0443\u0434\u0435 \u043F\u0440\u0438\u0441\u0432\u043E\u0454\u043D\u043E \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0443 \u0434\u0430\u0442\u0443 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C, \u0432\u0438\u0442\u044F\u0433\u043D\u0443\u0442\u0443 \u0437 \u0457\u0445 \u043D\u0430\u0437\u0432\u0438 \u0444\u0430\u0439\u043B\u0443.",line3:"\u0417\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u0432\u0430\u0442\u0438\u043C\u0435 \u0444\u043E\u0440\u043C\u0430\u0442\u0438 \u0434\u0430\u0442 <code>YYYY-MM-DD</code> \u0456 <code>YYYYMMDD</code>.",line4:"\u0417\u0430\u0434\u0430\u0447\u0456 \u0431\u0435\u0437 \u0434\u0430\u0442\u0438 \u043D\u0435 \u043C\u0430\u044E\u0442\u044C \u0434\u0430\u0442 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043D\u044F (\u{1F4C5}), \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u043E\u0457 (\u23F3) \u0442\u0430 \u043F\u043E\u0447\u0430\u0442\u043A\u0443 (\u{1F6EB})."},name:"\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u043D\u0430\u0437\u0432\u0443 \u0444\u0430\u0439\u043B\u0443 \u044F\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0443 \u0434\u0430\u0442\u0443 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447 \u0431\u0435\u0437 \u0434\u0430\u0442\u0438"}}},dialogs:{accessKeys:{description:"\u042F\u043A\u0449\u043E \u043A\u043B\u0430\u0432\u0456\u0448\u0456 \u0434\u043E\u0441\u0442\u0443\u043F\u0443 (\u043A\u043E\u043C\u0431\u0456\u043D\u0430\u0446\u0456\u0457 \u043A\u043B\u0430\u0432\u0456\u0448) \u0434\u043B\u044F \u0440\u0456\u0437\u043D\u0438\u0445 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432 \u043A\u0435\u0440\u0443\u0432\u0430\u043D\u043D\u044F \u0432 \u0434\u0456\u0430\u043B\u043E\u0433\u043E\u0432\u0438\u0445 \u0432\u0456\u043A\u043D\u0430\u0445 \u043A\u043E\u043D\u0444\u043B\u0456\u043A\u0442\u0443\u044E\u0442\u044C \u0456\u0437 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0438\u043C\u0438 \u043A\u043E\u043C\u0431\u0456\u043D\u0430\u0446\u0456\u044F\u043C\u0438 \u043A\u043B\u0430\u0432\u0456\u0448 \u0430\u0431\u043E \u0444\u0443\u043D\u043A\u0446\u0456\u043E\u043D\u0430\u043B\u044C\u043D\u0456\u0441\u0442\u044E \u0434\u043E\u043F\u043E\u043C\u0456\u0436\u043D\u0438\u0445 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0456\u0439, \u044F\u043A\u0456 \u0432\u0430\u0436\u043B\u0438\u0432\u0456 \u0434\u043B\u044F \u0432\u0430\u0441, \u0432\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0435\u0430\u043A\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u0457\u0445 \u0442\u0443\u0442.",name:"\u041D\u0430\u0434\u0430\u0432\u0430\u0442\u0438 \u043A\u043B\u0430\u0432\u0456\u0448\u0456 \u0434\u043E\u0441\u0442\u0443\u043F\u0443 \u0432 \u0434\u0456\u0430\u043B\u043E\u0433\u043E\u0432\u0438\u0445 \u0432\u0456\u043A\u043D\u0430\u0445"},heading:"\u0414\u0456\u0430\u043B\u043E\u0433\u043E\u0432\u0456 \u0432\u0456\u043A\u043D\u0430"},format:{description:{line1:"\u0424\u043E\u0440\u043C\u0430\u0442, \u044F\u043A\u0438\u0439 Tasks \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454 \u0434\u043B\u044F \u0447\u0438\u0442\u0430\u043D\u043D\u044F \u0442\u0430 \u0437\u0430\u043F\u0438\u0441\u0443 \u0437\u0430\u0434\u0430\u0447.",line2:"<b>\u0412\u0430\u0436\u043B\u0438\u0432\u043E:</b> Tasks \u0437\u0430\u0440\u0430\u0437 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454 \u043B\u0438\u0448\u0435 \u043E\u0434\u0438\u043D \u0444\u043E\u0440\u043C\u0430\u0442 \u0437\u0430 \u0440\u0430\u0437. \u0412\u0438\u0431\u0456\u0440 Dataview \u043D\u0430\u0440\u0430\u0437\u0456 <b>\u0437\u0443\u043F\u0438\u043D\u0438\u0442\u044C \u0447\u0438\u0442\u0430\u043D\u043D\u044F Tasks \u0432\u043B\u0430\u0441\u043D\u0438\u0445 \u0437\u043D\u0430\u043A\u0456\u0432 \u0435\u043C\u043E\u0434\u0437\u0456</b>."},displayName:{dataview:"Dataview",tasksEmojiFormat:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0435\u043C\u043E\u0434\u0437\u0456 Tasks"},name:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u0430\u0434\u0430\u0447"},globalFilter:{filter:{description:{line1:"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u043E\u0432\u0430\u043D\u043E: \u0417\u0430\u043B\u0438\u0448\u0442\u0435 \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u043C, \u044F\u043A\u0449\u043E \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435, \u0449\u043E\u0431 \u0443\u0441\u0456 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 \u0443 \u0432\u0430\u0448\u043E\u043C\u0443 \u0441\u0445\u043E\u0432\u0438\u0449\u0456 \u0431\u0443\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438, \u044F\u043A\u0438\u043C\u0438 \u043A\u0435\u0440\u0443\u0454 \u0446\u0435\u0439 \u043F\u043B\u0430\u0433\u0456\u043D.",line2:'\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0439\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440, \u044F\u043A\u0449\u043E \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435, \u0449\u043E\u0431 Tasks \u0434\u0456\u044F\u043B\u0438 \u043B\u0438\u0448\u0435 \u043D\u0430 \u043F\u0456\u0434\u043C\u043D\u043E\u0436\u0438\u043D\u0443 \u0432\u0430\u0448\u0438\u0445 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 "<code>- [ ]</code>", \u0449\u043E\u0431 \u0435\u043B\u0435\u043C\u0435\u043D\u0442 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 \u0432\u043A\u043B\u044E\u0447\u0430\u0432 \u0432 \u043E\u043F\u0438\u0441\u0456 \u0432\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A, \u0449\u043E\u0431 \u0432\u0432\u0430\u0436\u0430\u0442\u0438\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0435\u044E.',line3:"\u041D\u0430\u043F\u0440\u0438\u043A\u043B\u0430\u0434, \u044F\u043A\u0449\u043E \u0432\u0438 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440 \u043D\u0430 <code>#task</code>, \u043F\u043B\u0430\u0433\u0456\u043D Tasks \u043E\u0431\u0440\u043E\u0431\u043B\u044F\u0442\u0438\u043C\u0435 \u043B\u0438\u0448\u0435 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432, \u043F\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0456 \u0442\u0435\u0433\u043E\u043C <code>#task</code>.",line4:"\u0406\u043D\u0448\u0456 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 \u0437\u0430\u043B\u0438\u0448\u0430\u0442\u044C\u0441\u044F \u0437\u0432\u0438\u0447\u0430\u0439\u043D\u0438\u043C\u0438 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u0441\u043F\u0440\u0430\u0432 \u0456 \u043D\u0435 \u0437\u2019\u044F\u0432\u043B\u044F\u0442\u0438\u043C\u0443\u0442\u044C\u0441\u044F \u0432 \u0437\u0430\u043F\u0438\u0442\u0430\u0445 \u0430\u0431\u043E \u043D\u0435 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u044E\u0432\u0430\u0442\u0438\u043C\u0443\u0442\u044C \u0434\u0430\u0442\u0443 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043D\u044F."},name:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440",placeholder:"\u043D\u0430\u043F\u0440. #task \u0430\u0431\u043E TODO"},heading:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440 \u0437\u0430\u0434\u0430\u0447",removeFilter:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0432\u0438\u0434\u0430\u043B\u044F\u0454 \u0440\u044F\u0434\u043E\u043A, \u044F\u043A\u0438\u0439 \u0432\u0438 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043B\u0438 \u044F\u043A \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440, \u0437 \u043E\u043F\u0438\u0441\u0443 \u0437\u0430\u0434\u0430\u0447\u0456 \u043F\u0456\u0434 \u0447\u0430\u0441 \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u0434\u0430\u0447\u0456.",name:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440 \u0437 \u043E\u043F\u0438\u0441\u0443"}},globalQuery:{heading:"\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u043F\u0438\u0442",query:{description:"\u0417\u0430\u043F\u0438\u0442, \u044F\u043A\u0438\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0432\u043A\u043B\u044E\u0447\u0430\u0454\u0442\u044C\u0441\u044F \u043D\u0430 \u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u043A\u043E\u0436\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0443 Tasks \u0443 \u0441\u0445\u043E\u0432\u0438\u0449\u0456. \u041A\u043E\u0440\u0438\u0441\u043D\u043E \u0434\u043B\u044F \u0434\u043E\u0434\u0430\u0432\u0430\u043D\u043D\u044F \u0444\u0456\u043B\u044C\u0442\u0440\u0456\u0432 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C \u0430\u0431\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0456\u0432 \u043C\u0430\u043A\u0435\u0442\u0430.",placeholder:`\u041D\u0430\u043F\u0440\u0438\u043A\u043B\u0430\u0434... path does not include _templates/ limit 300 -show urgency`}},recurringTasks:{heading:"\u041F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u0456 \u0437\u0430\u0434\u0430\u0447\u0456",nextLine:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0437\u043C\u0443\u0441\u0438\u0442\u044C \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u0430\u0434\u0430\u0447\u0456 \u0437\u2019\u044F\u0432\u043B\u044F\u0442\u0438\u0441\u044F \u043D\u0430 \u0440\u044F\u0434\u043A\u0443 \u043D\u0438\u0436\u0447\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456. \u0406\u043D\u0430\u043A\u0448\u0435 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u2019\u044F\u0432\u0438\u0442\u044C\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E\u044E.",name:"\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u2019\u044F\u0432\u043B\u044F\u0454\u0442\u044C\u0441\u044F \u043D\u0430 \u0440\u044F\u0434\u043A\u0443 \u043D\u0438\u0436\u0447\u0435"}},seeTheDocumentation:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0456\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u0435\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u0435\u043C\u0430 Aura",borderTheme:"\u0422\u0435\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u043E\u0434\u0430\u0442\u0438 {{numberOfStatuses}} \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0432\u0430\u043D\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432"}},ebullientworksTheme:"\u0422\u0435\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u0435\u043C\u0430 ITS \u0456 \u043F\u0440\u0430\u043F\u043E\u0440\u0446\u0456 SlRvb",lytModeTheme:"\u0422\u0435\u043C\u0430 LYT Mode (\u043B\u0438\u0448\u0435 \u0442\u0435\u043C\u043D\u0438\u0439 \u0440\u0435\u0436\u0438\u043C)",minimalTheme:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430 \u0442\u0435\u043C\u0430",thingsTheme:"\u0422\u0435\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0442\u0430 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u0432\u0430\u0448\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438",tooltip:"\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u0444\u0430\u0439\u043B \u0443 \u043A\u043E\u0440\u0435\u043D\u0456 \u0441\u0445\u043E\u0432\u0438\u0449\u0430, \u0449\u043E \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443 Mermaid \u043F\u043E\u0442\u043E\u0447\u043D\u0438\u0445 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u044C \u0441\u0442\u0430\u0442\u0443\u0441\u0443."}},description:{line1:"\u0426\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438, \u044F\u043A\u0456 Tasks \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454 \u043D\u0430\u0442\u0438\u0432\u043D\u043E, \u0431\u0435\u0437 \u043F\u043E\u0442\u0440\u0435\u0431\u0438 \u0432 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u043E\u043C\u0443 CSS-\u0441\u0442\u0438\u043B\u044E\u0432\u0430\u043D\u043D\u0456 \u0447\u0438 \u0442\u0435\u043C\u0430\u0445.",line2:"\u0412\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u043E\u0434\u0430\u0432\u0430\u0442\u0438, \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0442\u0430 \u0434\u043E\u0434\u0430\u0432\u0430\u0442\u0438 \u0432\u043B\u0430\u0441\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u0432 \u0440\u043E\u0437\u0434\u0456\u043B\u0456 \u043D\u0438\u0436\u0447\u0435."},heading:"\u041E\u0441\u043D\u043E\u0432\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438"},customStatuses:{buttons:{addAllUnknown:{name:"\u0414\u043E\u0434\u0430\u0442\u0438 \u0432\u0441\u0456 \u043D\u0435\u0432\u0456\u0434\u043E\u043C\u0456 \u0442\u0438\u043F\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432"},addNewStatus:{name:"\u0414\u043E\u0434\u0430\u0442\u0438 \u043D\u043E\u0432\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u0456"},resetCustomStatuses:{name:"\u0421\u043A\u0438\u043D\u0443\u0442\u0438 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0442\u0438\u043F\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432 \u0434\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u044C \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C"}},description:{line1:"\u0421\u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u0441\u043B\u0456\u0434 <b>\u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u0442\u0430 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 CSS-\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 \u0430\u0431\u043E \u0442\u0435\u043C\u0443</b> \u0434\u043B\u044F \u0441\u0442\u0438\u043B\u0456\u0437\u0430\u0446\u0456\u0457 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0445 \u043F\u0440\u0430\u043F\u043E\u0440\u0446\u0456\u0432.",line2:"\u041F\u043E\u0442\u0456\u043C \u0441\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u0439\u0442\u0435\u0441\u044F \u043A\u043D\u043E\u043F\u043A\u0430\u043C\u0438 \u043D\u0438\u0436\u0447\u0435, \u0449\u043E\u0431 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0441\u0432\u043E\u0457 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u043E \u0434\u043E \u0432\u0438\u0431\u0440\u0430\u043D\u0438\u0445 CSS-\u043F\u0440\u0430\u043F\u043E\u0440\u0446\u0456\u0432.",line3:"<b>\u041F\u0440\u0438\u043C\u0456\u0442\u043A\u0430</b> \u0411\u0443\u0434\u044C-\u044F\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u0437 \u0442\u0438\u043C \u0441\u0430\u043C\u0438\u043C \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C, \u0449\u043E \u0439 \u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438, \u0431\u0443\u0434\u0435 \u043F\u0440\u043E\u0456\u0433\u043D\u043E\u0440\u043E\u0432\u0430\u043D\u043E. \u0412\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0444\u0430\u043A\u0442\u0438\u0447\u043D\u043E \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438, \u0432\u0438\u043A\u043E\u043D\u0430\u0432\u0448\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \xAB\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0430\u0431\u043E \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0443\xBB \u0442\u0430 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0432\u0448\u0438 \u0441\u043F\u0430\u0434\u043D\u0435 \u043C\u0435\u043D\u044E \xAB\u0421\u0442\u0430\u0442\u0443\u0441\xBB.",line4:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u044C\u0442\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0456\u044E, \u0449\u043E\u0431 \u0440\u043E\u0437\u043F\u043E\u0447\u0430\u0442\u0438!"},heading:"\u041A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438"},heading:"\u0421\u0442\u0430\u0442\u0443\u0441\u0438 \u0437\u0430\u0434\u0430\u0447"}}}});var Vb,Bb=ee(()=>{Vb={main:{loadingPlugin:"\u52A0\u8F7D\u63D2\u4EF6: {{name}} v{{version}}",unloadingPlugin:"\u5378\u8F7D\u63D2\u4EF6: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\u5982\u679C\u542F\u7528\uFF0C\u6B64\u72B6\u6001\u5C06\u4F5C\u4E3A\u547D\u4EE4\u53EF\u7528,\u56E0\u6B64\u60A8\u53EF\u4EE5\u6307\u5B9A\u5FEB\u6377\u952E\u5E76\u4F7F\u7528\u5B83\u5207\u6362\u72B6\u6001\u3002",name:"\u53EF\u7528\u4F5C\u547D\u4EE4"},editNextStatusSymbol:{description:"\u5355\u51FB\u65F6\uFF0C\u8FD9\u662F\u4E0B\u4E00\u6B65\u5E94\u8BE5\u4F7F\u7528\u7684\u7B26\u53F7\u3002",name:"\u4EFB\u52A1\u4E0B\u4E00\u4E2A\u72B6\u6001\u7B26\u53F7"},editStatusName:{description:"\u8FD9\u662F\u4EFB\u52A1\u72B6\u6001\u7684\u53CB\u597D\u540D\u79F0.",name:"\u4EFB\u52A1\u72B6\u6001\u540D\u79F0"},editStatusSymbol:{description:"\u8FD9\u662F\u65B9\u62EC\u53F7\u4E2D\u7684\u5B57\u7B26\u3002\uFF08\u4EC5\u53EF\u7F16\u8F91\u81EA\u5B9A\u4E49\u72B6\u6001,\u4E0D\u53EF\u7F16\u8F91\u6838\u5FC3\u72B6\u6001\u3002\uFF09",name:"\u4EFB\u52A1\u72B6\u6001\u7B26\u53F7"},editStatusType:{description:"\u63A7\u5236\u641C\u7D22\u548C\u5207\u6362\u72B6\u6001\u7684\u884C\u4E3A\u3002",name:"\u4EFB\u52A1\u72B6\u6001\u7C7B\u578B"},fixErrorsBeforeSaving:"\u5728\u4FDD\u5B58\u524D\u4FEE\u590D\u9519\u8BEF\u3002"}},reports:{statusRegistry:{about:{createdBy:"\u6B64\u6587\u4EF6\u7531 Obsidian tasks \u63D2\u4EF6(version {{version}})\u521B\u5EFA,\u4EE5\u5E2E\u52A9\u53EF\u89C6\u5316\u6B64\u4ED3\u5E93\u4E2D\u7684\u4EFB\u52A1\u72B6\u6001.",deleteFileAnyTime:"\u60A8\u53EF\u4EE5\u968F\u65F6\u5220\u9664\u6B64\u6587\u4EF6.",title:"\u5173\u4E8E\u6B64\u6587\u4EF6",updateReport:{line1:"\u5982\u679C\u66F4\u6539 Tasks \u72B6\u6001\u8BBE\u7F6E,\u5219\u53EF\u4EE5\u901A\u8FC7\u4EE5\u4E0B\u65B9\u5F0F\u83B7\u53D6\u66F4\u65B0\u540E\u7684\u62A5\u544A:",line2:"\u524D\u5F80 `\u8BBE\u7F6E` -> `Tasks`\u3002",line3:"\u70B9\u51FB `\u67E5\u770B\u5E76\u68C0\u67E5\u60A8\u7684\u72B6\u6001`\u3002"}},columnHeadings:{nextStatusSymbol:"\u4E0B\u4E00\u4E2A\u72B6\u6001\u7B26\u53F7",problems:"\u95EE\u9898 (\u5982\u679C\u5B58\u5728)",statusName:"\u72B6\u6001\u540D\u79F0",statusSymbol:"\u72B6\u6001\u7B26\u53F7",statusType:"\u72B6\u6001\u7C7B\u578B"},loadedSettings:{settingsActuallyUsed:"\u8FD9\u4E9B\u662F Tasks \u5B9E\u9645\u4F7F\u7528\u7684\u8BBE\u7F6E.",switchToLivePreview:"\u5207\u6362\u5230\u5B9E\u65F6\u9884\u89C8\u6216\u9605\u8BFB\u6A21\u5F0F\u4EE5\u67E5\u770B\u56FE\u8868.",title:"\u5DF2\u52A0\u8F7D\u8BBE\u7F6E"},messages:{cannotFindNextStatus:"\u672A\u80FD\u610F\u5916\u627E\u5230\u4E0B\u4E00\u4E2A\u72B6\u6001.",duplicateSymbol:"\u91CD\u590D\u7684\u7B26\u53F7 '{{symbol}}':\u6B64\u72B6\u6001\u5C06\u88AB\u5FFD\u7565.",emptySymbol:"\u7A7A\u7B26\u53F7:\u6B64\u72B6\u6001\u5C06\u88AB\u5FFD\u7565.",nextSymbolUnknown:"\u4E0B\u4E00\u4E2A\u7B26\u53F7 {{symbol}} \u672A\u77E5:\u8BF7\u521B\u5EFA\u7B26\u53F7\u4E3A {{symbol}} \u7684\u72B6\u6001.",notConventionalType:"\u4F9B\u53C2\u8003,\u72B6\u6001\u7B26\u53F7 {{symbol}} \u7684\u5E38\u89C4\u7C7B\u578B\u662F {{type}}:\u60A8\u53EF\u80FD\u5E0C\u671B\u67E5\u770B\u6B64\u7C7B\u578B.",wrongTypeAfterDone:{line1:"\u6B64`\u5B8C\u6210`\u72B6\u6001\u540E\u8DDF\u968F\u7684\u662F{{nextType}}\uFF0C\u800C\u4E0D\u662F`\u5F85\u529E`\u6216`\u8FDB\u884C\u4E2D`\u3002",line2:"\u5982\u679C\u7528\u4E8E\u5B8C\u6210\u4E00\u4E2A\u91CD\u590D\u4EFB\u52A1\uFF0C\u5B83\u540E\u9762\u4F1A\u8DDF\u7740\u5F85\u529E`\u6216`\u8FDB\u884C\u4E2D`\uFF0C\u4EE5\u786E\u4FDD\u4E0B\u4E00\u4E2A\u4EFB\u52A1\u7B26\u5408\u201C\u672A\u5B8C\u6210\u201D\u7684\u7B5B\u9009\u6761\u4EF6\u3002",line3:"\u8BF7\u53C2\u9605[\u91CD\u590D\u4EFB\u52A1\u548C\u81EA\u5B9A\u4E49\u72B6\u6001]({{helpURL}})\u3002"}},statusSettings:{comment:{line1:"\u5207\u6362\u5230\u5B9E\u65F6\u9884\u89C8\u6216\u9605\u8BFB\u6A21\u5F0F\u4EE5\u67E5\u770B\u8868\u683C.",line2:"\u5982\u679C\u72B6\u6001\u540D\u79F0\u4E2D\u6709\u4EFB\u4F55Markdown\u683C\u5F0F\u5B57\u7B26,\u5982 '*' \u6216 '_',",line3:"\u9ED1\u66DC\u77F3\u53EA\u80FD\u5728\u9605\u8BFB\u6A21\u5F0F\u4E0B\u6B63\u786E\u6E32\u67D3\u8868\u683C."},theseAreStatusValues:"\u8FD9\u4E9B\u662F\u6838\u5FC3\u548C\u81EA\u5B9A\u4E49\u72B6\u6001\u90E8\u5206\u4E2D\u7684\u72B6\u6001\u503C.",title:"\u72B6\u6001\u8BBE\u7F6E"}}},settings:{autoSuggest:{heading:"\u81EA\u52A8\u5EFA\u8BAE",maxSuggestions:{description:'\u5F53\u81EA\u52A8\u5EFA\u8BAE\u83DC\u5355\u5F39\u51FA\u65F6\uFF0C\u5E94\u663E\u793A\u591A\u5C11\u6761\u5EFA\u8BAE (\u5305\u542B "\u23CE" \u9009\u9879)\u3002',name:"\u8981\u663E\u793A\u7684\u6700\u5927\u81EA\u52A8\u5EFA\u8BAE\u6570"},minLength:{description:"\u5982\u679C\u9AD8\u4E8E0\uFF0C\u5219\u53EA\u6709\u5728\u8BC6\u522B\u51FA\u4EFB\u4F55\u652F\u6301\u7684\u5173\u952E\u5B57\u7684\u5F00\u5934\u65F6\u624D\u4F1A\u89E6\u53D1\u81EA\u52A8\u5EFA\u8BAE\u3002",name:"\u81EA\u52A8\u5EFA\u8BAE\u7684\u6700\u5C0F\u5339\u914D\u957F\u5EA6"},toggle:{description:"\u542F\u7528\u6B64\u529F\u80FD\u5C06\u5728\u8BC6\u522B\u7684\u4EFB\u52A1\u884C\u5185\u8F93\u5165\u65F6\u6253\u5F00\u667A\u80FD\u5EFA\u8BAE\u83DC\u5355\u3002",name:"\u81EA\u52A8\u5EFA\u8BAE\u4EFB\u52A1\u5185\u5BB9"}},changeRequiresRestart:"\u66F4\u6539\u4EFB\u4F55\u8BBE\u7F6E\u90FD\u9700\u8981\u91CD\u65B0\u542F\u52A8Obsidian\u3002",dates:{cancelledDate:{description:"\u542F\u7528\u6B64\u529F\u80FD\u5C06\u5728\u4EFB\u52A1\u8BBE\u7F6E\u4E3A\u53D6\u6D88\u65F6\uFF0C\u5728\u5176\u672B\u5C3E\u6DFB\u52A0\u65F6\u95F4\u6233 \u274C YYYY-MM-DD\u3002",name:"\u8BBE\u7F6E\u6BCF\u4E2A\u5DF2\u53D6\u6D88\u7684\u4EFB\u52A1\u7684\u53D6\u6D88\u65E5\u671F"},createdDate:{description:"\u542F\u7528\u6B64\u529F\u80FD\u5C06\u5728\u901A\u8FC7\u201CCreate or edit task\u201D\u547D\u4EE4\u6216\u5B8C\u6210\u91CD\u590D\u4EFB\u52A1\u65F6\uFF0C\u5728\u5176\u4ED6\u65E5\u671F\u503C\u4E4B\u524D\u6DFB\u52A0\u65F6\u95F4\u6233\u2795YYYY-MM-DD\u3002",name:"\u8BBE\u7F6E\u6BCF\u4E2A\u5DF2\u6DFB\u52A0\u4EFB\u52A1\u7684\u521B\u5EFA\u65E5\u671F"},doneDate:{description:"\u542F\u7528\u6B64\u529F\u80FD\u5C06\u5728\u4EFB\u52A1\u88AB\u8BBE\u7F6E\u4E3A\u5B8C\u6210\u65F6\uFF0C\u5728\u5176\u672B\u5C3E\u6DFB\u52A0\u65F6\u95F4\u6233 \u2705 YYYY-MM-DD\u3002",name:"\u8BBE\u7F6E\u6BCF\u4E2A\u5DF2\u5B8C\u6210\u4EFB\u52A1\u7684\u5B8C\u6210\u65E5\u671F"},heading:"\u65E5\u671F"},datesFromFileNames:{heading:"\u4ECE\u6587\u4EF6\u540D\u4E2D\u63D0\u53D6\u65E5\u671F",scheduledDate:{extraFormat:{description:{line1:"\u4EFB\u52A1\u63D2\u4EF6\u5728\u5C06\u6587\u4EF6\u540D\u7528\u4F5C\u672A\u6CE8\u660E\u65E5\u671F\u4EFB\u52A1\u7684\u8BA1\u5212\u65E5\u671F\u65F6\uFF0C\u5C06\u8BC6\u522B\u7684\u9644\u52A0\u65E5\u671F\u683C\u5F0F\u3002",line2:"\u8BED\u6CD5\u53C2\u8003"},name:"\u4E3A\u65E0\u65E5\u671F\u4EFB\u52A1\u6DFB\u52A0\u6587\u4EF6\u540D\u65E5\u671F\u683C\u5F0F\u4F5C\u4E3A\u8BA1\u5212\u65E5\u671F",placeholder:"\u793A\u4F8B\uFF1AMMM DD YYYY"},folders:{description:"\u5982\u679C\u8981\u5728\u5168\u5C40\u4F7F\u7528\u9ED8\u8BA4\u7684\u8BA1\u5212\u65E5\u671F\uFF0C\u8BF7\u4FDD\u7559\u4E3A\u7A7A,\u6216\u8005\u8F93\u5165\u4EE5\u9017\u53F7\u5206\u9694\u7684\u6587\u4EF6\u5939\u5217\u8868\u3002",name:"\u5177\u6709\u9ED8\u8BA4\u8BA1\u5212\u65E5\u671F\u7684\u6587\u4EF6\u5939"},toggle:{description:{line1:"\u7528\u4E8E\u8282\u7701\u8F93\u5165\u8BA1\u5212 (\u23F3) \u65E5\u671F\u7684\u65F6\u95F4\u3002",line2:"\u5982\u679C\u542F\u7528\u6B64\u9009\u9879\uFF0C\u5219\u4EFB\u4F55\u672A\u6CE8\u660E\u65E5\u671F\u7684\u4EFB\u52A1\u90FD\u5C06\u88AB\u8D4B\u4E88\u4ECE\u5176\u6587\u4EF6\u540D\u4E2D\u63D0\u53D6\u7684\u9ED8\u8BA4\u201C\u8BA1\u5212\u65E5\u671F\u201D\u3002",line3:"\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0CTasks \u63D2\u4EF6\u5C06\u5339\u914D <code>YYYY-MM-DD</code> \u548C <code>YYYYMMDD</code> \u4E24\u79CD\u65E5\u671F\u683C\u5F0F\u3002",line4:"\u672A\u6CE8\u660E\u65E5\u671F\u7684\u4EFB\u52A1\u6307\u6CA1\u6709\u622A\u6B62\u65E5\u671F (\u{1F4C5} ), \u8BA1\u5212\u65E5\u671F (\u23F3) \u548C\u5F00\u59CB\u65E5\u671F(\u{1F6EB}) \u7684\u4EFB\u52A1\u3002"},name:"\u5C06\u6587\u4EF6\u540D\u7528\u4F5C\u672A\u6CE8\u660E\u65E5\u671F\u7684\u4EFB\u52A1\u7684\u8BA1\u5212\u65E5\u671F"}}},dialogs:{accessKeys:{description:"\u5982\u679C\u5BF9\u8BDD\u6846\u4E2D\u5404\u79CD\u63A7\u4EF6\u7684\u5FEB\u6377\u952E\u4E0E\u7CFB\u7EDF\u5FEB\u6377\u952E\u53D1\u751F\u51B2\u7A81\uFF0C\u60A8\u53EF\u4EE5\u5728\u8FD9\u91CC\u505C\u7528\u5B83\u4EEC\u3002",name:"\u5728\u5BF9\u8BDD\u6846\u4E2D\u4F7F\u7528\u5FEB\u6377\u952E"},heading:"\u5BF9\u8BDD\u6846"},format:{description:{line1:"Tasks \u7528\u4E8E\u8BFB\u53D6\u548C\u5199\u5165\u4EFB\u52A1\u7684\u683C\u5F0F.",line2:"<b>\u91CD\u70B9:</b> \u76EE\u524D Tasks \u53EA\u652F\u6301\u540C\u65F6\u4F7F\u7528\u4E00\u79CD\u683C\u5F0F\u3002\u9009\u62E9 dataview \u5C06 <b>\u4F7F Tasks \u505C\u6B62\u8BFB\u53D6\u81EA\u6709\u7684\u8868\u60C5\u7B26\u53F7\u683C\u5F0F</b>"},displayName:{dataview:"Dataview \u683C\u5F0F",tasksEmojiFormat:"Tasks \u8868\u60C5\u683C\u5F0F"},name:"\u4EFB\u52A1\u683C\u5F0F"},globalFilter:{filter:{description:{line1:"\u5EFA\u8BAE\uFF1A\u5982\u679C\u60A8\u5E0C\u671B\u4ED3\u5E93\u4E2D\u7684\u6240\u6709\u4EFB\u52A1\u5217\u8868\u9879\u90FD\u7531\u6B64\u63D2\u4EF6\u7BA1\u7406\uFF0C\u8BF7\u7559\u7A7A\u3002",line2:'\u5982\u679C\u60A8\u5E0C\u671B Tasks \u4EC5\u4F5C\u7528\u4E8E "<code>- [ ]</code>" \u4EFB\u52A1\u5217\u8868\u9879\u7684\u5B50\u96C6\uFF0C\u8BF7\u4F7F\u7528\u5168\u5C40\u7B5B\u9009\u5668,\u4EE5\u4FBF\u53EA\u6709\u5728\u5176\u63CF\u8FF0\u4E2D\u5305\u542B\u6307\u5B9A\u7684\u5B57\u7B26\u4E32\u7684\u4EFB\u52A1\u5217\u8868\u9879\u624D\u88AB\u89C6\u4E3A\u4EFB\u52A1\u3002',line3:"\u4F8B\u5982\uFF0C\u5982\u679C\u5C06\u5168\u5C40\u7B5B\u9009\u5668\u8BBE\u7F6E\u4E3A <code>#task</code>\uFF0C\u5219 Tasks \u63D2\u4EF6\u5C06\u4EC5\u5904\u7406\u6807\u8BB0\u4E3A <code>#task</code> \u7684\u4EFB\u52A1\u5217\u8868\u9879\u3002",line4:"\u5176\u4ED6\u4EFB\u52A1\u5217\u8868\u9879\u5C06\u4FDD\u6301\u6B63\u5E38,\u4E0D\u4F1A\u51FA\u73B0\u5728\u67E5\u8BE2\u4E2D\u6216\u8BBE\u7F6E\u5B8C\u6210\u65E5\u671F\u3002"},name:"\u5168\u5C40\u7B5B\u9009\u5668",placeholder:"\u4F8B\u5982:#task \u6216 TODO"},heading:"\u5168\u5C40\u4EFB\u52A1\u7B5B\u9009\u5668",removeFilter:{description:"\u542F\u7528\u6B64\u9009\u9879\u5C06\u5728\u663E\u793A\u4EFB\u52A1\u65F6\u4ECE\u4EFB\u52A1\u63CF\u8FF0\u4E2D\u5220\u9664\u8BBE\u7F6E\u4E3A\u5168\u5C40\u7B5B\u9009\u5668\u7684\u5B57\u7B26\u4E32.",name:"\u4ECE\u63CF\u8FF0\u4E2D\u5220\u9664\u5168\u5C40\u7B5B\u9009\u5668"}},globalQuery:{heading:"\u5168\u5C40\u67E5\u8BE2",query:{description:"\u81EA\u52A8\u5305\u542B\u5728\u5E93\u4E2D\u6BCF\u4E2A Tasks \u5757\u5F00\u5934\u7684\u67E5\u8BE2\u8BED\u53E5.\u7528\u4E8E\u6DFB\u52A0\u9ED8\u8BA4\u8FC7\u6EE4\u5668\u6216\u5E03\u5C40\u9009\u9879\u3002",placeholder:`\u4F8B\u5982... +show urgency`}},recurringTasks:{heading:"\u041F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u0456 \u0437\u0430\u0434\u0430\u0447\u0456",nextLine:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0437\u043C\u0443\u0441\u0438\u0442\u044C \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u0430\u0434\u0430\u0447\u0456 \u0437\u2019\u044F\u0432\u043B\u044F\u0442\u0438\u0441\u044F \u043D\u0430 \u0440\u044F\u0434\u043A\u0443 \u043D\u0438\u0436\u0447\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456. \u0406\u043D\u0430\u043A\u0448\u0435 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u2019\u044F\u0432\u0438\u0442\u044C\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E\u044E.",name:"\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u2019\u044F\u0432\u043B\u044F\u0454\u0442\u044C\u0441\u044F \u043D\u0430 \u0440\u044F\u0434\u043A\u0443 \u043D\u0438\u0436\u0447\u0435"},removeScheduledDate:{description:{line1:"",line2:""},name:""}},seeTheDocumentation:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0456\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u0435\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u0435\u043C\u0430 Aura",borderTheme:"\u0422\u0435\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u043E\u0434\u0430\u0442\u0438 {{numberOfStatuses}} \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0432\u0430\u043D\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432"}},ebullientworksTheme:"\u0422\u0435\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u0435\u043C\u0430 ITS \u0456 \u043F\u0440\u0430\u043F\u043E\u0440\u0446\u0456 SlRvb",lytModeTheme:"\u0422\u0435\u043C\u0430 LYT Mode (\u043B\u0438\u0448\u0435 \u0442\u0435\u043C\u043D\u0438\u0439 \u0440\u0435\u0436\u0438\u043C)",minimalTheme:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430 \u0442\u0435\u043C\u0430",thingsTheme:"\u0422\u0435\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0442\u0430 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u0432\u0430\u0448\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438",tooltip:"\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u0444\u0430\u0439\u043B \u0443 \u043A\u043E\u0440\u0435\u043D\u0456 \u0441\u0445\u043E\u0432\u0438\u0449\u0430, \u0449\u043E \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443 Mermaid \u043F\u043E\u0442\u043E\u0447\u043D\u0438\u0445 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u044C \u0441\u0442\u0430\u0442\u0443\u0441\u0443."}},description:{line1:"\u0426\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438, \u044F\u043A\u0456 Tasks \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454 \u043D\u0430\u0442\u0438\u0432\u043D\u043E, \u0431\u0435\u0437 \u043F\u043E\u0442\u0440\u0435\u0431\u0438 \u0432 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u043E\u043C\u0443 CSS-\u0441\u0442\u0438\u043B\u044E\u0432\u0430\u043D\u043D\u0456 \u0447\u0438 \u0442\u0435\u043C\u0430\u0445.",line2:"\u0412\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u043E\u0434\u0430\u0432\u0430\u0442\u0438, \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0442\u0430 \u0434\u043E\u0434\u0430\u0432\u0430\u0442\u0438 \u0432\u043B\u0430\u0441\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u0432 \u0440\u043E\u0437\u0434\u0456\u043B\u0456 \u043D\u0438\u0436\u0447\u0435."},heading:"\u041E\u0441\u043D\u043E\u0432\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438"},customStatuses:{buttons:{addAllUnknown:{name:"\u0414\u043E\u0434\u0430\u0442\u0438 \u0432\u0441\u0456 \u043D\u0435\u0432\u0456\u0434\u043E\u043C\u0456 \u0442\u0438\u043F\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432"},addNewStatus:{name:"\u0414\u043E\u0434\u0430\u0442\u0438 \u043D\u043E\u0432\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u0456"},resetCustomStatuses:{name:"\u0421\u043A\u0438\u043D\u0443\u0442\u0438 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0442\u0438\u043F\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432 \u0434\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u044C \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C"}},description:{line1:"\u0421\u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u0441\u043B\u0456\u0434 <b>\u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u0442\u0430 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 CSS-\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 \u0430\u0431\u043E \u0442\u0435\u043C\u0443</b> \u0434\u043B\u044F \u0441\u0442\u0438\u043B\u0456\u0437\u0430\u0446\u0456\u0457 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0445 \u043F\u0440\u0430\u043F\u043E\u0440\u0446\u0456\u0432.",line2:"\u041F\u043E\u0442\u0456\u043C \u0441\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u0439\u0442\u0435\u0441\u044F \u043A\u043D\u043E\u043F\u043A\u0430\u043C\u0438 \u043D\u0438\u0436\u0447\u0435, \u0449\u043E\u0431 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0441\u0432\u043E\u0457 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u043E \u0434\u043E \u0432\u0438\u0431\u0440\u0430\u043D\u0438\u0445 CSS-\u043F\u0440\u0430\u043F\u043E\u0440\u0446\u0456\u0432.",line3:"<b>\u041F\u0440\u0438\u043C\u0456\u0442\u043A\u0430</b> \u0411\u0443\u0434\u044C-\u044F\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u0437 \u0442\u0438\u043C \u0441\u0430\u043C\u0438\u043C \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C, \u0449\u043E \u0439 \u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438, \u0431\u0443\u0434\u0435 \u043F\u0440\u043E\u0456\u0433\u043D\u043E\u0440\u043E\u0432\u0430\u043D\u043E. \u0412\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0444\u0430\u043A\u0442\u0438\u0447\u043D\u043E \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438, \u0432\u0438\u043A\u043E\u043D\u0430\u0432\u0448\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \xAB\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0430\u0431\u043E \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0443\xBB \u0442\u0430 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0432\u0448\u0438 \u0441\u043F\u0430\u0434\u043D\u0435 \u043C\u0435\u043D\u044E \xAB\u0421\u0442\u0430\u0442\u0443\u0441\xBB.",line4:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u044C\u0442\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0456\u044E, \u0449\u043E\u0431 \u0440\u043E\u0437\u043F\u043E\u0447\u0430\u0442\u0438!"},heading:"\u041A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438"},heading:"\u0421\u0442\u0430\u0442\u0443\u0441\u0438 \u0437\u0430\u0434\u0430\u0447"}}}});var Vb,Bb=ee(()=>{Vb={main:{loadingPlugin:"\u52A0\u8F7D\u63D2\u4EF6: {{name}} v{{version}}",unloadingPlugin:"\u5378\u8F7D\u63D2\u4EF6: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\u5982\u679C\u542F\u7528\uFF0C\u6B64\u72B6\u6001\u5C06\u4F5C\u4E3A\u547D\u4EE4\u53EF\u7528,\u56E0\u6B64\u60A8\u53EF\u4EE5\u6307\u5B9A\u5FEB\u6377\u952E\u5E76\u4F7F\u7528\u5B83\u5207\u6362\u72B6\u6001\u3002",name:"\u53EF\u7528\u4F5C\u547D\u4EE4"},editNextStatusSymbol:{description:"\u5355\u51FB\u65F6\uFF0C\u8FD9\u662F\u4E0B\u4E00\u6B65\u5E94\u8BE5\u4F7F\u7528\u7684\u7B26\u53F7\u3002",name:"\u4EFB\u52A1\u4E0B\u4E00\u4E2A\u72B6\u6001\u7B26\u53F7"},editStatusName:{description:"\u8FD9\u662F\u4EFB\u52A1\u72B6\u6001\u7684\u53CB\u597D\u540D\u79F0.",name:"\u4EFB\u52A1\u72B6\u6001\u540D\u79F0"},editStatusSymbol:{description:"\u8FD9\u662F\u65B9\u62EC\u53F7\u4E2D\u7684\u5B57\u7B26\u3002\uFF08\u4EC5\u53EF\u7F16\u8F91\u81EA\u5B9A\u4E49\u72B6\u6001,\u4E0D\u53EF\u7F16\u8F91\u6838\u5FC3\u72B6\u6001\u3002\uFF09",name:"\u4EFB\u52A1\u72B6\u6001\u7B26\u53F7"},editStatusType:{description:"\u63A7\u5236\u641C\u7D22\u548C\u5207\u6362\u72B6\u6001\u7684\u884C\u4E3A\u3002",name:"\u4EFB\u52A1\u72B6\u6001\u7C7B\u578B"},fixErrorsBeforeSaving:"\u5728\u4FDD\u5B58\u524D\u4FEE\u590D\u9519\u8BEF\u3002"}},reports:{statusRegistry:{about:{createdBy:"\u6B64\u6587\u4EF6\u7531 Obsidian tasks \u63D2\u4EF6(version {{version}})\u521B\u5EFA,\u4EE5\u5E2E\u52A9\u53EF\u89C6\u5316\u6B64\u4ED3\u5E93\u4E2D\u7684\u4EFB\u52A1\u72B6\u6001.",deleteFileAnyTime:"\u60A8\u53EF\u4EE5\u968F\u65F6\u5220\u9664\u6B64\u6587\u4EF6.",title:"\u5173\u4E8E\u6B64\u6587\u4EF6",updateReport:{line1:"\u5982\u679C\u66F4\u6539 Tasks \u72B6\u6001\u8BBE\u7F6E,\u5219\u53EF\u4EE5\u901A\u8FC7\u4EE5\u4E0B\u65B9\u5F0F\u83B7\u53D6\u66F4\u65B0\u540E\u7684\u62A5\u544A:",line2:"\u524D\u5F80 `\u8BBE\u7F6E` -> `Tasks`\u3002",line3:"\u70B9\u51FB `\u67E5\u770B\u5E76\u68C0\u67E5\u60A8\u7684\u72B6\u6001`\u3002"}},columnHeadings:{nextStatusSymbol:"\u4E0B\u4E00\u4E2A\u72B6\u6001\u7B26\u53F7",problems:"\u95EE\u9898 (\u5982\u679C\u5B58\u5728)",statusName:"\u72B6\u6001\u540D\u79F0",statusSymbol:"\u72B6\u6001\u7B26\u53F7",statusType:"\u72B6\u6001\u7C7B\u578B"},loadedSettings:{settingsActuallyUsed:"\u8FD9\u4E9B\u662F Tasks \u5B9E\u9645\u4F7F\u7528\u7684\u8BBE\u7F6E.",switchToLivePreview:"\u5207\u6362\u5230\u5B9E\u65F6\u9884\u89C8\u6216\u9605\u8BFB\u6A21\u5F0F\u4EE5\u67E5\u770B\u56FE\u8868.",title:"\u5DF2\u52A0\u8F7D\u8BBE\u7F6E"},messages:{cannotFindNextStatus:"\u672A\u80FD\u610F\u5916\u627E\u5230\u4E0B\u4E00\u4E2A\u72B6\u6001.",duplicateSymbol:"\u91CD\u590D\u7684\u7B26\u53F7 '{{symbol}}':\u6B64\u72B6\u6001\u5C06\u88AB\u5FFD\u7565.",emptySymbol:"\u7A7A\u7B26\u53F7:\u6B64\u72B6\u6001\u5C06\u88AB\u5FFD\u7565.",nextSymbolUnknown:"\u4E0B\u4E00\u4E2A\u7B26\u53F7 {{symbol}} \u672A\u77E5:\u8BF7\u521B\u5EFA\u7B26\u53F7\u4E3A {{symbol}} \u7684\u72B6\u6001.",notConventionalType:"\u4F9B\u53C2\u8003,\u72B6\u6001\u7B26\u53F7 {{symbol}} \u7684\u5E38\u89C4\u7C7B\u578B\u662F {{type}}:\u60A8\u53EF\u80FD\u5E0C\u671B\u67E5\u770B\u6B64\u7C7B\u578B.",wrongTypeAfterDone:{line1:"\u6B64`\u5B8C\u6210`\u72B6\u6001\u540E\u8DDF\u968F\u7684\u662F{{nextType}}\uFF0C\u800C\u4E0D\u662F`\u5F85\u529E`\u6216`\u8FDB\u884C\u4E2D`\u3002",line2:"\u5982\u679C\u7528\u4E8E\u5B8C\u6210\u4E00\u4E2A\u91CD\u590D\u4EFB\u52A1\uFF0C\u5B83\u540E\u9762\u4F1A\u8DDF\u7740\u5F85\u529E`\u6216`\u8FDB\u884C\u4E2D`\uFF0C\u4EE5\u786E\u4FDD\u4E0B\u4E00\u4E2A\u4EFB\u52A1\u7B26\u5408\u201C\u672A\u5B8C\u6210\u201D\u7684\u7B5B\u9009\u6761\u4EF6\u3002",line3:"\u8BF7\u53C2\u9605[\u91CD\u590D\u4EFB\u52A1\u548C\u81EA\u5B9A\u4E49\u72B6\u6001]({{helpURL}})\u3002"}},statusSettings:{comment:{line1:"\u5207\u6362\u5230\u5B9E\u65F6\u9884\u89C8\u6216\u9605\u8BFB\u6A21\u5F0F\u4EE5\u67E5\u770B\u8868\u683C.",line2:"\u5982\u679C\u72B6\u6001\u540D\u79F0\u4E2D\u6709\u4EFB\u4F55Markdown\u683C\u5F0F\u5B57\u7B26,\u5982 '*' \u6216 '_',",line3:"\u9ED1\u66DC\u77F3\u53EA\u80FD\u5728\u9605\u8BFB\u6A21\u5F0F\u4E0B\u6B63\u786E\u6E32\u67D3\u8868\u683C."},theseAreStatusValues:"\u8FD9\u4E9B\u662F\u6838\u5FC3\u548C\u81EA\u5B9A\u4E49\u72B6\u6001\u90E8\u5206\u4E2D\u7684\u72B6\u6001\u503C.",title:"\u72B6\u6001\u8BBE\u7F6E"}}},settings:{autoSuggest:{heading:"\u81EA\u52A8\u5EFA\u8BAE",maxSuggestions:{description:'\u5F53\u81EA\u52A8\u5EFA\u8BAE\u83DC\u5355\u5F39\u51FA\u65F6\uFF0C\u5E94\u663E\u793A\u591A\u5C11\u6761\u5EFA\u8BAE (\u5305\u542B "\u23CE" \u9009\u9879)\u3002',name:"\u8981\u663E\u793A\u7684\u6700\u5927\u81EA\u52A8\u5EFA\u8BAE\u6570"},minLength:{description:"\u5982\u679C\u9AD8\u4E8E0\uFF0C\u5219\u53EA\u6709\u5728\u8BC6\u522B\u51FA\u4EFB\u4F55\u652F\u6301\u7684\u5173\u952E\u5B57\u7684\u5F00\u5934\u65F6\u624D\u4F1A\u89E6\u53D1\u81EA\u52A8\u5EFA\u8BAE\u3002",name:"\u81EA\u52A8\u5EFA\u8BAE\u7684\u6700\u5C0F\u5339\u914D\u957F\u5EA6"},toggle:{description:"\u542F\u7528\u6B64\u529F\u80FD\u5C06\u5728\u8BC6\u522B\u7684\u4EFB\u52A1\u884C\u5185\u8F93\u5165\u65F6\u6253\u5F00\u667A\u80FD\u5EFA\u8BAE\u83DC\u5355\u3002",name:"\u81EA\u52A8\u5EFA\u8BAE\u4EFB\u52A1\u5185\u5BB9"}},changeRequiresRestart:"\u66F4\u6539\u4EFB\u4F55\u8BBE\u7F6E\u90FD\u9700\u8981\u91CD\u65B0\u542F\u52A8Obsidian\u3002",dates:{cancelledDate:{description:"\u542F\u7528\u6B64\u529F\u80FD\u5C06\u5728\u4EFB\u52A1\u8BBE\u7F6E\u4E3A\u53D6\u6D88\u65F6\uFF0C\u5728\u5176\u672B\u5C3E\u6DFB\u52A0\u65F6\u95F4\u6233 \u274C YYYY-MM-DD\u3002",name:"\u8BBE\u7F6E\u6BCF\u4E2A\u5DF2\u53D6\u6D88\u7684\u4EFB\u52A1\u7684\u53D6\u6D88\u65E5\u671F"},createdDate:{description:"\u542F\u7528\u6B64\u529F\u80FD\u5C06\u5728\u901A\u8FC7\u201CCreate or edit task\u201D\u547D\u4EE4\u6216\u5B8C\u6210\u91CD\u590D\u4EFB\u52A1\u65F6\uFF0C\u5728\u5176\u4ED6\u65E5\u671F\u503C\u4E4B\u524D\u6DFB\u52A0\u65F6\u95F4\u6233\u2795YYYY-MM-DD\u3002",name:"\u8BBE\u7F6E\u6BCF\u4E2A\u5DF2\u6DFB\u52A0\u4EFB\u52A1\u7684\u521B\u5EFA\u65E5\u671F"},doneDate:{description:"\u542F\u7528\u6B64\u529F\u80FD\u5C06\u5728\u4EFB\u52A1\u88AB\u8BBE\u7F6E\u4E3A\u5B8C\u6210\u65F6\uFF0C\u5728\u5176\u672B\u5C3E\u6DFB\u52A0\u65F6\u95F4\u6233 \u2705 YYYY-MM-DD\u3002",name:"\u8BBE\u7F6E\u6BCF\u4E2A\u5DF2\u5B8C\u6210\u4EFB\u52A1\u7684\u5B8C\u6210\u65E5\u671F"},heading:"\u65E5\u671F"},datesFromFileNames:{heading:"\u4ECE\u6587\u4EF6\u540D\u4E2D\u63D0\u53D6\u65E5\u671F",scheduledDate:{extraFormat:{description:{line1:"\u4EFB\u52A1\u63D2\u4EF6\u5728\u5C06\u6587\u4EF6\u540D\u7528\u4F5C\u672A\u6CE8\u660E\u65E5\u671F\u4EFB\u52A1\u7684\u8BA1\u5212\u65E5\u671F\u65F6\uFF0C\u5C06\u8BC6\u522B\u7684\u9644\u52A0\u65E5\u671F\u683C\u5F0F\u3002",line2:"\u8BED\u6CD5\u53C2\u8003"},name:"\u4E3A\u65E0\u65E5\u671F\u4EFB\u52A1\u6DFB\u52A0\u6587\u4EF6\u540D\u65E5\u671F\u683C\u5F0F\u4F5C\u4E3A\u8BA1\u5212\u65E5\u671F",placeholder:"\u793A\u4F8B\uFF1AMMM DD YYYY"},folders:{description:"\u5982\u679C\u8981\u5728\u5168\u5C40\u4F7F\u7528\u9ED8\u8BA4\u7684\u8BA1\u5212\u65E5\u671F\uFF0C\u8BF7\u4FDD\u7559\u4E3A\u7A7A,\u6216\u8005\u8F93\u5165\u4EE5\u9017\u53F7\u5206\u9694\u7684\u6587\u4EF6\u5939\u5217\u8868\u3002",name:"\u5177\u6709\u9ED8\u8BA4\u8BA1\u5212\u65E5\u671F\u7684\u6587\u4EF6\u5939"},toggle:{description:{line1:"\u7528\u4E8E\u8282\u7701\u8F93\u5165\u8BA1\u5212 (\u23F3) \u65E5\u671F\u7684\u65F6\u95F4\u3002",line2:"\u5982\u679C\u542F\u7528\u6B64\u9009\u9879\uFF0C\u5219\u4EFB\u4F55\u672A\u6CE8\u660E\u65E5\u671F\u7684\u4EFB\u52A1\u90FD\u5C06\u88AB\u8D4B\u4E88\u4ECE\u5176\u6587\u4EF6\u540D\u4E2D\u63D0\u53D6\u7684\u9ED8\u8BA4\u201C\u8BA1\u5212\u65E5\u671F\u201D\u3002",line3:"\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0CTasks \u63D2\u4EF6\u5C06\u5339\u914D <code>YYYY-MM-DD</code> \u548C <code>YYYYMMDD</code> \u4E24\u79CD\u65E5\u671F\u683C\u5F0F\u3002",line4:"\u672A\u6CE8\u660E\u65E5\u671F\u7684\u4EFB\u52A1\u6307\u6CA1\u6709\u622A\u6B62\u65E5\u671F (\u{1F4C5} ), \u8BA1\u5212\u65E5\u671F (\u23F3) \u548C\u5F00\u59CB\u65E5\u671F(\u{1F6EB}) \u7684\u4EFB\u52A1\u3002"},name:"\u5C06\u6587\u4EF6\u540D\u7528\u4F5C\u672A\u6CE8\u660E\u65E5\u671F\u7684\u4EFB\u52A1\u7684\u8BA1\u5212\u65E5\u671F"}}},dialogs:{accessKeys:{description:"\u5982\u679C\u5BF9\u8BDD\u6846\u4E2D\u5404\u79CD\u63A7\u4EF6\u7684\u5FEB\u6377\u952E\u4E0E\u7CFB\u7EDF\u5FEB\u6377\u952E\u53D1\u751F\u51B2\u7A81\uFF0C\u60A8\u53EF\u4EE5\u5728\u8FD9\u91CC\u505C\u7528\u5B83\u4EEC\u3002",name:"\u5728\u5BF9\u8BDD\u6846\u4E2D\u4F7F\u7528\u5FEB\u6377\u952E"},heading:"\u5BF9\u8BDD\u6846"},format:{description:{line1:"Tasks \u7528\u4E8E\u8BFB\u53D6\u548C\u5199\u5165\u4EFB\u52A1\u7684\u683C\u5F0F.",line2:"<b>\u91CD\u70B9:</b> \u76EE\u524D Tasks \u53EA\u652F\u6301\u540C\u65F6\u4F7F\u7528\u4E00\u79CD\u683C\u5F0F\u3002\u9009\u62E9 dataview \u5C06 <b>\u4F7F Tasks \u505C\u6B62\u8BFB\u53D6\u81EA\u6709\u7684\u8868\u60C5\u7B26\u53F7\u683C\u5F0F</b>"},displayName:{dataview:"Dataview \u683C\u5F0F",tasksEmojiFormat:"Tasks \u8868\u60C5\u683C\u5F0F"},name:"\u4EFB\u52A1\u683C\u5F0F"},globalFilter:{filter:{description:{line1:"\u5EFA\u8BAE\uFF1A\u5982\u679C\u60A8\u5E0C\u671B\u4ED3\u5E93\u4E2D\u7684\u6240\u6709\u4EFB\u52A1\u5217\u8868\u9879\u90FD\u7531\u6B64\u63D2\u4EF6\u7BA1\u7406\uFF0C\u8BF7\u7559\u7A7A\u3002",line2:'\u5982\u679C\u60A8\u5E0C\u671B Tasks \u4EC5\u4F5C\u7528\u4E8E "<code>- [ ]</code>" \u4EFB\u52A1\u5217\u8868\u9879\u7684\u5B50\u96C6\uFF0C\u8BF7\u4F7F\u7528\u5168\u5C40\u7B5B\u9009\u5668,\u4EE5\u4FBF\u53EA\u6709\u5728\u5176\u63CF\u8FF0\u4E2D\u5305\u542B\u6307\u5B9A\u7684\u5B57\u7B26\u4E32\u7684\u4EFB\u52A1\u5217\u8868\u9879\u624D\u88AB\u89C6\u4E3A\u4EFB\u52A1\u3002',line3:"\u4F8B\u5982\uFF0C\u5982\u679C\u5C06\u5168\u5C40\u7B5B\u9009\u5668\u8BBE\u7F6E\u4E3A <code>#task</code>\uFF0C\u5219 Tasks \u63D2\u4EF6\u5C06\u4EC5\u5904\u7406\u6807\u8BB0\u4E3A <code>#task</code> \u7684\u4EFB\u52A1\u5217\u8868\u9879\u3002",line4:"\u5176\u4ED6\u4EFB\u52A1\u5217\u8868\u9879\u5C06\u4FDD\u6301\u6B63\u5E38,\u4E0D\u4F1A\u51FA\u73B0\u5728\u67E5\u8BE2\u4E2D\u6216\u8BBE\u7F6E\u5B8C\u6210\u65E5\u671F\u3002"},name:"\u5168\u5C40\u7B5B\u9009\u5668",placeholder:"\u4F8B\u5982:#task \u6216 TODO"},heading:"\u5168\u5C40\u4EFB\u52A1\u7B5B\u9009\u5668",removeFilter:{description:"\u542F\u7528\u6B64\u9009\u9879\u5C06\u5728\u663E\u793A\u4EFB\u52A1\u65F6\u4ECE\u4EFB\u52A1\u63CF\u8FF0\u4E2D\u5220\u9664\u8BBE\u7F6E\u4E3A\u5168\u5C40\u7B5B\u9009\u5668\u7684\u5B57\u7B26\u4E32.",name:"\u4ECE\u63CF\u8FF0\u4E2D\u5220\u9664\u5168\u5C40\u7B5B\u9009\u5668"}},globalQuery:{heading:"\u5168\u5C40\u67E5\u8BE2",query:{description:"\u81EA\u52A8\u5305\u542B\u5728\u5E93\u4E2D\u6BCF\u4E2A Tasks \u5757\u5F00\u5934\u7684\u67E5\u8BE2\u8BED\u53E5.\u7528\u4E8E\u6DFB\u52A0\u9ED8\u8BA4\u8FC7\u6EE4\u5668\u6216\u5E03\u5C40\u9009\u9879\u3002",placeholder:`\u4F8B\u5982... path does not include _templates/ limit 300 -show urgency`}},recurringTasks:{heading:"\u91CD\u590D\u6027\u4EFB\u52A1",nextLine:{description:"\u542F\u7528\u6B64\u529F\u80FD\u540E\uFF0C\u4EFB\u52A1\u7684\u4E0B\u4E00\u6B21\u91CD\u590D\u5C06\u663E\u793A\u5728\u5DF2\u5B8C\u6210\u4EFB\u52A1\u7684\u4E0B\u4E00\u884C\u3002\u82E5\u5173\u95ED\u6B64\u529F\u80FD\uFF0C\u5219\u4E0B\u4E00\u6B21\u91CD\u590D\u5C06\u51FA\u73B0\u5728\u5DF2\u5B8C\u6210\u4EFB\u52A1\u7684\u4E0A\u4E00\u884C\u3002",name:"\u628A\u4EFB\u52A1\u7684\u4E0B\u4E00\u6B21\u91CD\u590D\u653E\u5728\u4E0B\u4E00\u884C"}},seeTheDocumentation:"\u53C2\u9605\u6587\u6863",statuses:{collections:{anuppuccinTheme:"AnuPpuccin \u4E3B\u9898",auraTheme:"Aura \u4E3B\u9898",borderTheme:"Border \u4E3B\u9898",buttons:{addCollection:{name:"{{themeName}}: \u6DFB\u52A0 {{numberOfStatuses}} \u79CD\u652F\u6301\u72B6\u6001"}},ebullientworksTheme:"Ebullientworks \u4E3B\u9898",itsThemeAndSlrvbCheckboxes:"ITS \u4E3B\u9898\u548C SlRvb \u590D\u9009\u6846",lytModeTheme:"LYT Mode \u4E3B\u9898 (\u4EC5\u6DF1\u8272\u6A21\u5F0F)",minimalTheme:"Minimal \u4E3B\u9898",thingsTheme:"Things \u4E3B\u9898"},coreStatuses:{buttons:{checkStatuses:{name:"\u67E5\u770B\u5E76\u68C0\u67E5\u60A8\u7684\u72B6\u6001",tooltip:"\u5728\u5E93\u7684\u6839\u76EE\u5F55\u4E0B\u521B\u5EFA\u4E00\u4E2A\u65B0\u6587\u4EF6,\u5305\u542B\u5F53\u524D\u72B6\u6001\u8BBE\u7F6E\u7684 Mermaid \u56FE\u8868."}},description:{line1:"\u8FD9\u4E9B\u662F Tasks \u539F\u751F\u652F\u6301\u7684\u6838\u5FC3\u72B6\u6001\uFF0C\u4E0D\u9700\u8981\u81EA\u5B9A\u4E49CSS\u6837\u5F0F\u6216\u4E3B\u9898\u3002",line2:"\u60A8\u53EF\u4EE5\u5728\u4E0B\u9762\u7F16\u8F91\u548C\u6DFB\u52A0\u81EA\u5B9A\u4E49\u72B6\u6001\u3002"},heading:"\u6838\u5FC3\u72B6\u6001"},customStatuses:{buttons:{addAllUnknown:{name:"\u6DFB\u52A0\u6240\u6709\u672A\u77E5\u72B6\u6001\u7C7B\u578B"},addNewStatus:{name:"\u6DFB\u52A0\u65B0\u4EFB\u52A1\u72B6\u6001"},resetCustomStatuses:{name:"\u91CD\u7F6E\u81EA\u5B9A\u4E49\u72B6\u6001\u7C7B\u578B\u4E3A\u9ED8\u8BA4\u503C"}},description:{line1:"\u60A8\u5E94\u8BE5\u9996\u5148<b>\u9009\u62E9\u5E76\u5B89\u88C5 CSS\u4EE3\u7801\u6BB5\u6216\u4E3B\u9898<b>\u4EE5\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u590D\u9009\u6846\u7684\u6837\u5F0F",line2:"\u7136\u540E\uFF0C\u4F7F\u7528\u4E0B\u9762\u7684\u6309\u94AE\u8BBE\u7F6E\u60A8\u7684\u81EA\u5B9A\u4E49\u72B6\u6001,\u4EE5\u5339\u914D\u60A8\u9009\u62E9\u7684CSS\u590D\u9009\u6846.",line3:"<b>\u6CE8\u610F</b>\u4EFB\u4F55\u4E0E\u66F4\u65E9\u7684\u72B6\u6001\u5177\u6709\u76F8\u540C\u7B26\u53F7\u7684\u72B6\u6001\u90FD\u5C06\u88AB\u5FFD\u7565.\u60A8\u53EF\u4EE5\u901A\u8FC7\u8FD0\u884C\u201CCreate or edit task\u201D\u547D\u4EE4\u5E76\u67E5\u770B\u201CStatus\u201D\u4E0B\u62C9\u5217\u8868\u6765\u786E\u8BA4\u5B9E\u9645\u52A0\u8F7D\u7684\u72B6\u6001\u3002",line4:"\u53C2\u9605\u6587\u6863\uFF01"},heading:"\u81EA\u5B9A\u4E49\u72B6\u6001"},heading:"\u4EFB\u52A1\u72B6\u6001"}}}});var jf,Zx,zb,N,gs=ee(()=>{"use strict";Lb();Ub();jb();$b();Hb();Bb();jf=!1,Zx=()=>{let n=localStorage.getItem("language"),t=(n==null?void 0:n.toLowerCase())||"en";return console.log(`Language in Obsidian settings: '${t}'; requesting Tasks in '${t}'.`),t},zb=()=>L(void 0,null,function*(){jf||(yield yt.init({lng:Zx(),fallbackLng:"en",returnEmptyString:!1,resources:{be:{translation:Yb},en:{translation:Wb},ru:{translation:qb},uk:{translation:Gb},zh:{translation:Vb}},interpolation:{escapeValue:!1}}),jf=!0)}),N=new Proxy(yt,{get(n,t){if(!jf&&t==="t")throw new Error("i18n.t() called before initialization. Call initializeI18n() first.");return Reflect.get(n,t)}})});var kn,ce,ii=ee(()=>{"use strict";kn=class{},ce=kn;ce.dateFormat="YYYY-MM-DD",ce.dateTimeFormat="YYYY-MM-DD HH:mm",ce.indentationRegex=/^([\s\t>]*)/,ce.listMarkerRegex=/([-*+]|[0-9]+\.)/,ce.checkboxRegex=/\[(.)\]/u,ce.afterCheckboxRegex=/ *(.*)/u,ce.taskRegex=new RegExp(kn.indentationRegex.source+kn.listMarkerRegex.source+" +"+kn.checkboxRegex.source+kn.afterCheckboxRegex.source,"u"),ce.nonTaskRegex=new RegExp(kn.indentationRegex.source+kn.listMarkerRegex.source+"? *("+kn.checkboxRegex.source+")?"+kn.afterCheckboxRegex.source,"u"),ce.listItemRegex=new RegExp(kn.indentationRegex.source+kn.listMarkerRegex.source),ce.blockLinkRegex=/ \^[a-zA-Z0-9-]+$/u,ce.hashTags=/(^|\s)#[^ !@#$%^&*(),.?":{}|<>]+/g,ce.hashTagsFromEnd=new RegExp(kn.hashTags.source+"$")});var Ke=x(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.matchAnyPattern=Ni.extractTerms=Ni.repeatedTimeunitPattern=void 0;function nO(n,t){let e=t.replace(/\((?!\?)/g,"(?:");return`${n}${e}\\s{0,5}(?:,?\\s{0,5}${e}){0,10}`}Ni.repeatedTimeunitPattern=nO;function Kb(n){let t;return n instanceof Array?t=[...n]:n instanceof Map?t=Array.from(n.keys()):t=Object.keys(n),t}Ni.extractTerms=Kb;function rO(n){return`(?:${Kb(n).sort((e,r)=>r.length-e.length).join("|").replace(/\./g,"\\.")})`}Ni.matchAnyPattern=rO});var Ue=x(($f,qf)=>{(function(n,t){typeof $f=="object"&&typeof qf!="undefined"?qf.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis!="undefined"?globalThis:n||self).dayjs=t()})($f,function(){"use strict";var n=1e3,t=6e4,e=36e5,r="millisecond",i="second",s="minute",a="hour",o="day",l="week",u="month",c="quarter",d="year",f="date",p="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,T=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,_={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},O=function(V,K,C){var J=String(V);return!J||J.length>=K?V:""+Array(K+1-J.length).join(C)+V},D={s:O,z:function(V){var K=-V.utcOffset(),C=Math.abs(K),J=Math.floor(C/60),$=C%60;return(K<=0?"+":"-")+O(J,2,"0")+":"+O($,2,"0")},m:function V(K,C){if(K.date()<C.date())return-V(C,K);var J=12*(C.year()-K.year())+(C.month()-K.month()),$=K.clone().add(J,u),oe=C-$<0,m=K.clone().add(J+(oe?-1:1),u);return+(-(J+(C-$)/(oe?$-m:m-$))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:u,y:d,w:l,d:o,D:f,h:a,m:s,s:i,ms:r,Q:c}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},A="en",Y={};Y[A]=_;var q=function(V){return V instanceof ye},se=function(V,K,C){var J;if(!V)return A;if(typeof V=="string")Y[V]&&(J=V),K&&(Y[V]=K,J=V);else{var $=V.name;Y[$]=V,J=$}return!C&&J&&(A=J),J||!C&&A},H=function(V,K){if(q(V))return V.clone();var C=typeof K=="object"?K:{};return C.date=V,C.args=arguments,new ye(C)},Z=D;Z.l=se,Z.i=q,Z.w=function(V,K){return H(V,{locale:K.$L,utc:K.$u,x:K.$x,$offset:K.$offset})};var ye=function(){function V(C){this.$L=se(C.locale,null,!0),this.parse(C)}var K=V.prototype;return K.parse=function(C){this.$d=function(J){var $=J.date,oe=J.utc;if($===null)return new Date(NaN);if(Z.u($))return new Date;if($ instanceof Date)return new Date($);if(typeof $=="string"&&!/Z$/i.test($)){var m=$.match(b);if(m){var y=m[2]-1||0,v=(m[7]||"0").substring(0,3);return oe?new Date(Date.UTC(m[1],y,m[3]||1,m[4]||0,m[5]||0,m[6]||0,v)):new Date(m[1],y,m[3]||1,m[4]||0,m[5]||0,m[6]||0,v)}}return new Date($)}(C),this.$x=C.x||{},this.init()},K.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},K.$utils=function(){return Z},K.isValid=function(){return this.$d.toString()!==p},K.isSame=function(C,J){var $=H(C);return this.startOf(J)<=$&&$<=this.endOf(J)},K.isAfter=function(C,J){return H(C)<this.startOf(J)},K.isBefore=function(C,J){return this.endOf(J)<H(C)},K.$g=function(C,J,$){return Z.u(C)?this[J]:this.set($,C)},K.unix=function(){return Math.floor(this.valueOf()/1e3)},K.valueOf=function(){return this.$d.getTime()},K.startOf=function(C,J){var $=this,oe=!!Z.u(J)||J,m=Z.p(C),y=function(P,W){var de=Z.w($.$u?Date.UTC($.$y,W,P):new Date($.$y,W,P),$);return oe?de:de.endOf(o)},v=function(P,W){return Z.w($.toDate()[P].apply($.toDate("s"),(oe?[0,0,0,0]:[23,59,59,999]).slice(W)),$)},w=this.$W,S=this.$M,M=this.$D,I="set"+(this.$u?"UTC":"");switch(m){case d:return oe?y(1,0):y(31,11);case u:return oe?y(1,S):y(0,S+1);case l:var j=this.$locale().weekStart||0,E=(w<j?w+7:w)-j;return y(oe?M-E:M+(6-E),S);case o:case f:return v(I+"Hours",0);case a:return v(I+"Minutes",1);case s:return v(I+"Seconds",2);case i:return v(I+"Milliseconds",3);default:return this.clone()}},K.endOf=function(C){return this.startOf(C,!1)},K.$set=function(C,J){var $,oe=Z.p(C),m="set"+(this.$u?"UTC":""),y=($={},$[o]=m+"Date",$[f]=m+"Date",$[u]=m+"Month",$[d]=m+"FullYear",$[a]=m+"Hours",$[s]=m+"Minutes",$[i]=m+"Seconds",$[r]=m+"Milliseconds",$)[oe],v=oe===o?this.$D+(J-this.$W):J;if(oe===u||oe===d){var w=this.clone().set(f,1);w.$d[y](v),w.init(),this.$d=w.set(f,Math.min(this.$D,w.daysInMonth())).$d}else y&&this.$d[y](v);return this.init(),this},K.set=function(C,J){return this.clone().$set(C,J)},K.get=function(C){return this[Z.p(C)]()},K.add=function(C,J){var $,oe=this;C=Number(C);var m=Z.p(J),y=function(S){var M=H(oe);return Z.w(M.date(M.date()+Math.round(S*C)),oe)};if(m===u)return this.set(u,this.$M+C);if(m===d)return this.set(d,this.$y+C);if(m===o)return y(1);if(m===l)return y(7);var v=($={},$[s]=t,$[a]=e,$[i]=n,$)[m]||1,w=this.$d.getTime()+C*v;return Z.w(w,this)},K.subtract=function(C,J){return this.add(-1*C,J)},K.format=function(C){var J=this,$=this.$locale();if(!this.isValid())return $.invalidDate||p;var oe=C||"YYYY-MM-DDTHH:mm:ssZ",m=Z.z(this),y=this.$H,v=this.$m,w=this.$M,S=$.weekdays,M=$.months,I=function(W,de,be,xe){return W&&(W[de]||W(J,oe))||be[de].substr(0,xe)},j=function(W){return Z.s(y%12||12,W,"0")},E=$.meridiem||function(W,de,be){var xe=W<12?"AM":"PM";return be?xe.toLowerCase():xe},P={YY:String(this.$y).slice(-2),YYYY:this.$y,M:w+1,MM:Z.s(w+1,2,"0"),MMM:I($.monthsShort,w,M,3),MMMM:I(M,w),D:this.$D,DD:Z.s(this.$D,2,"0"),d:String(this.$W),dd:I($.weekdaysMin,this.$W,S,2),ddd:I($.weekdaysShort,this.$W,S,3),dddd:S[this.$W],H:String(y),HH:Z.s(y,2,"0"),h:j(1),hh:j(2),a:E(y,v,!0),A:E(y,v,!1),m:String(v),mm:Z.s(v,2,"0"),s:String(this.$s),ss:Z.s(this.$s,2,"0"),SSS:Z.s(this.$ms,3,"0"),Z:m};return oe.replace(T,function(W,de){return de||P[W]||m.replace(":","")})},K.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},K.diff=function(C,J,$){var oe,m=Z.p(J),y=H(C),v=(y.utcOffset()-this.utcOffset())*t,w=this-y,S=Z.m(this,y);return S=(oe={},oe[d]=S/12,oe[u]=S,oe[c]=S/3,oe[l]=(w-v)/6048e5,oe[o]=(w-v)/864e5,oe[a]=w/e,oe[s]=w/t,oe[i]=w/n,oe)[m]||w,$?S:Z.a(S)},K.daysInMonth=function(){return this.endOf(u).$D},K.$locale=function(){return Y[this.$L]},K.locale=function(C,J){if(!C)return this.$L;var $=this.clone(),oe=se(C,J,!0);return oe&&($.$L=oe),$},K.clone=function(){return Z.w(this.$d,this)},K.toDate=function(){return new Date(this.valueOf())},K.toJSON=function(){return this.isValid()?this.toISOString():null},K.toISOString=function(){return this.$d.toISOString()},K.toString=function(){return this.$d.toUTCString()},V}(),we=ye.prototype;return H.prototype=we,[["$ms",r],["$s",i],["$m",s],["$H",a],["$W",o],["$M",u],["$y",d],["$D",f]].forEach(function(V){we[V[1]]=function(K){return this.$g(K,V[0],V[1])}}),H.extend=function(V,K){return V.$i||(V(K,ye,H),V.$i=!0),H},H.locale=se,H.isDayjs=q,H.unix=function(V){return H(1e3*V)},H.en=Y[A],H.Ls=Y,H.p={},H})});var Ct=x(Ii=>{"use strict";var iO=Ii&&Ii.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ii,"__esModule",{value:!0});Ii.findYearClosestToRef=Ii.findMostLikelyADYear=void 0;var sO=iO(Ue());function aO(n){return n<100&&(n>50?n=n+1900:n=n+2e3),n}Ii.findMostLikelyADYear=aO;function oO(n,t,e){let r=sO.default(n),i=r;i=i.month(e-1),i=i.date(t),i=i.year(r.year());let s=i.add(1,"y"),a=i.add(-1,"y");return Math.abs(s.diff(r))<Math.abs(i.diff(r))?i=s:Math.abs(a.diff(r))<Math.abs(i.diff(r))&&(i=a),i.year()}Ii.findYearClosestToRef=oO});var Mt=x(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.parseTimeUnits=Me.TIME_UNITS_PATTERN=Me.parseYear=Me.YEAR_PATTERN=Me.parseOrdinalNumberPattern=Me.ORDINAL_NUMBER_PATTERN=Me.parseNumberPattern=Me.NUMBER_PATTERN=Me.TIME_UNIT_DICTIONARY=Me.ORDINAL_WORD_DICTIONARY=Me.INTEGER_WORD_DICTIONARY=Me.MONTH_DICTIONARY=Me.FULL_MONTH_NAME_DICTIONARY=Me.WEEKDAY_DICTIONARY=void 0;var Wu=Ke(),lO=Ct();Me.WEEKDAY_DICTIONARY={sunday:0,sun:0,"sun.":0,monday:1,mon:1,"mon.":1,tuesday:2,tue:2,"tue.":2,wednesday:3,wed:3,"wed.":3,thursday:4,thurs:4,"thurs.":4,thur:4,"thur.":4,thu:4,"thu.":4,friday:5,fri:5,"fri.":5,saturday:6,sat:6,"sat.":6};Me.FULL_MONTH_NAME_DICTIONARY={january:1,february:2,march:3,april:4,may:5,june:6,july:7,august:8,september:9,october:10,november:11,december:12};Me.MONTH_DICTIONARY=Object.assign(Object.assign({},Me.FULL_MONTH_NAME_DICTIONARY),{jan:1,"jan.":1,feb:2,"feb.":2,mar:3,"mar.":3,apr:4,"apr.":4,jun:6,"jun.":6,jul:7,"jul.":7,aug:8,"aug.":8,sep:9,"sep.":9,sept:9,"sept.":9,oct:10,"oct.":10,nov:11,"nov.":11,dec:12,"dec.":12});Me.INTEGER_WORD_DICTIONARY={one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12};Me.ORDINAL_WORD_DICTIONARY={first:1,second:2,third:3,fourth:4,fifth:5,sixth:6,seventh:7,eighth:8,ninth:9,tenth:10,eleventh:11,twelfth:12,thirteenth:13,fourteenth:14,fifteenth:15,sixteenth:16,seventeenth:17,eighteenth:18,nineteenth:19,twentieth:20,"twenty first":21,"twenty-first":21,"twenty second":22,"twenty-second":22,"twenty third":23,"twenty-third":23,"twenty fourth":24,"twenty-fourth":24,"twenty fifth":25,"twenty-fifth":25,"twenty sixth":26,"twenty-sixth":26,"twenty seventh":27,"twenty-seventh":27,"twenty eighth":28,"twenty-eighth":28,"twenty ninth":29,"twenty-ninth":29,thirtieth:30,"thirty first":31,"thirty-first":31};Me.TIME_UNIT_DICTIONARY={sec:"second",second:"second",seconds:"second",min:"minute",mins:"minute",minute:"minute",minutes:"minute",h:"hour",hr:"hour",hrs:"hour",hour:"hour",hours:"hour",day:"d",days:"d",week:"week",weeks:"week",month:"month",months:"month",qtr:"quarter",quarter:"quarter",quarters:"quarter",y:"year",yr:"year",year:"year",years:"year"};Me.NUMBER_PATTERN=`(?:${Wu.matchAnyPattern(Me.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s{0,2}an?)?|an?\\b(?:\\s{0,2}few)?|few|several|a?\\s{0,2}couple\\s{0,2}(?:of)?)`;function Xb(n){let t=n.toLowerCase();return Me.INTEGER_WORD_DICTIONARY[t]!==void 0?Me.INTEGER_WORD_DICTIONARY[t]:t==="a"||t==="an"?1:t.match(/few/)?3:t.match(/half/)?.5:t.match(/couple/)?2:t.match(/several/)?7:parseFloat(t)}Me.parseNumberPattern=Xb;Me.ORDINAL_NUMBER_PATTERN=`(?:${Wu.matchAnyPattern(Me.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:st|nd|rd|th)?)`;function uO(n){let t=n.toLowerCase();return Me.ORDINAL_WORD_DICTIONARY[t]!==void 0?Me.ORDINAL_WORD_DICTIONARY[t]:(t=t.replace(/(?:st|nd|rd|th)$/i,""),parseInt(t))}Me.parseOrdinalNumberPattern=uO;Me.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s{0,2}(?:BE|AD|BC|BCE|CE)|[1-2][0-9]{3}|[5-9][0-9])";function cO(n){if(/BE/i.test(n))return n=n.replace(/BE/i,""),parseInt(n)-543;if(/BCE?/i.test(n))return n=n.replace(/BCE?/i,""),-parseInt(n);if(/(AD|CE)/i.test(n))return n=n.replace(/(AD|CE)/i,""),parseInt(n);let t=parseInt(n);return lO.findMostLikelyADYear(t)}Me.parseYear=cO;var Zb=`(${Me.NUMBER_PATTERN})\\s{0,3}(${Wu.matchAnyPattern(Me.TIME_UNIT_DICTIONARY)})`,Qb=new RegExp(Zb,"i");Me.TIME_UNITS_PATTERN=Wu.repeatedTimeunitPattern("(?:(?:about|around)\\s{0,3})?",Zb);function dO(n){let t={},e=n,r=Qb.exec(e);for(;r;)fO(t,r),e=e.substring(r[0].length).trim(),r=Qb.exec(e);return t}Me.parseTimeUnits=dO;function fO(n,t){let e=Xb(t[1]),r=Me.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var Jb=x((Hf,Gf)=>{(function(n,t){typeof Hf=="object"&&typeof Gf!="undefined"?Gf.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis!="undefined"?globalThis:n||self).dayjs_plugin_quarterOfYear=t()})(Hf,function(){"use strict";var n="month",t="quarter";return function(e,r){var i=r.prototype;i.quarter=function(o){return this.$utils().u(o)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(o-1))};var s=i.add;i.add=function(o,l){return o=Number(o),this.$utils().p(l)===t?this.add(3*o,n):s.bind(this)(o,l)};var a=i.startOf;i.startOf=function(o,l){var u=this.$utils(),c=!!u.u(l)||l;if(u.p(o)===t){var d=this.quarter()-1;return c?this.month(3*d).startOf(n).startOf("day"):this.month(3*d+2).endOf(n).endOf("day")}return a.bind(this)(o,l)}}})});var $n=x(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.implySimilarTime=Yr.assignSimilarTime=Yr.assignSimilarDate=Yr.assignTheNextDay=void 0;var eT=ht();function pO(n,t){t=t.add(1,"day"),tT(n,t),nT(n,t)}Yr.assignTheNextDay=pO;function tT(n,t){n.assign("day",t.date()),n.assign("month",t.month()+1),n.assign("year",t.year())}Yr.assignSimilarDate=tT;function mO(n,t){n.assign("hour",t.hour()),n.assign("minute",t.minute()),n.assign("second",t.second()),n.assign("millisecond",t.millisecond()),n.get("hour")<12?n.assign("meridiem",eT.Meridiem.AM):n.assign("meridiem",eT.Meridiem.PM)}Yr.assignSimilarTime=mO;function nT(n,t){n.imply("hour",t.hour()),n.imply("minute",t.minute()),n.imply("second",t.second()),n.imply("millisecond",t.millisecond())}Yr.implySimilarTime=nT});var rT=x(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.toTimezoneOffset=ys.TIMEZONE_ABBR_MAP=void 0;ys.TIMEZONE_ABBR_MAP={ACDT:630,ACST:570,ADT:-180,AEDT:660,AEST:600,AFT:270,AKDT:-480,AKST:-540,ALMT:360,AMST:-180,AMT:-240,ANAST:720,ANAT:720,AQTT:300,ART:-180,AST:-240,AWDT:540,AWST:480,AZOST:0,AZOT:-60,AZST:300,AZT:240,BNT:480,BOT:-240,BRST:-120,BRT:-180,BST:60,BTT:360,CAST:480,CAT:120,CCT:390,CDT:-300,CEST:120,CET:60,CHADT:825,CHAST:765,CKT:-600,CLST:-180,CLT:-240,COT:-300,CST:-360,CVT:-60,CXT:420,ChST:600,DAVT:420,EASST:-300,EAST:-360,EAT:180,ECT:-300,EDT:-240,EEST:180,EET:120,EGST:0,EGT:-60,EST:-300,ET:-300,FJST:780,FJT:720,FKST:-180,FKT:-240,FNT:-120,GALT:-360,GAMT:-540,GET:240,GFT:-180,GILT:720,GMT:0,GST:240,GYT:-240,HAA:-180,HAC:-300,HADT:-540,HAE:-240,HAP:-420,HAR:-360,HAST:-600,HAT:-90,HAY:-480,HKT:480,HLV:-210,HNA:-240,HNC:-360,HNE:-300,HNP:-480,HNR:-420,HNT:-150,HNY:-540,HOVT:420,ICT:420,IDT:180,IOT:360,IRDT:270,IRKST:540,IRKT:540,IRST:210,IST:330,JST:540,KGT:360,KRAST:480,KRAT:480,KST:540,KUYT:240,LHDT:660,LHST:630,LINT:840,MAGST:720,MAGT:720,MART:-510,MAWT:300,MDT:-360,MESZ:120,MEZ:60,MHT:720,MMT:390,MSD:240,MSK:180,MST:-420,MUT:240,MVT:300,MYT:480,NCT:660,NDT:-90,NFT:690,NOVST:420,NOVT:360,NPT:345,NST:-150,NUT:-660,NZDT:780,NZST:720,OMSST:420,OMST:420,PDT:-420,PET:-300,PETST:720,PETT:720,PGT:600,PHOT:780,PHT:480,PKT:300,PMDT:-120,PMST:-180,PONT:660,PST:-480,PT:-480,PWT:540,PYST:-180,PYT:-240,RET:240,SAMT:240,SAST:120,SBT:660,SCT:240,SGT:480,SRT:-180,SST:-660,TAHT:-600,TFT:300,TJT:300,TKT:780,TLT:540,TMT:300,TVT:720,ULAT:480,UTC:0,UYST:-120,UYT:-180,UZT:300,VET:-210,VLAST:660,VLAT:660,VUT:660,WAST:120,WAT:60,WEST:60,WESZ:60,WET:0,WEZ:0,WFT:720,WGST:-120,WGT:-180,WIB:420,WIT:540,WITA:480,WST:780,WT:0,YAKST:600,YAKT:600,YAPT:600,YEKST:360,YEKT:360};function hO(n){var t;return n==null?null:typeof n=="number"?n:(t=ys.TIMEZONE_ABBR_MAP[n])!==null&&t!==void 0?t:null}ys.toTimezoneOffset=hO});var nt=x(jr=>{"use strict";var iT=jr&&jr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(jr,"__esModule",{value:!0});jr.ParsingResult=jr.ParsingComponents=jr.ReferenceWithTimezone=void 0;var gO=iT(Jb()),$u=iT(Ue()),Bf=$n(),yO=rT();$u.default.extend(gO.default);var Vf=class{constructor(t){var e;t=t!=null?t:new Date,t instanceof Date?this.instant=t:(this.instant=(e=t.instant)!==null&&e!==void 0?e:new Date,this.timezoneOffset=yO.toTimezoneOffset(t.timezone))}};jr.ReferenceWithTimezone=Vf;var bs=class{constructor(t,e){if(this.reference=t,this.knownValues={},this.impliedValues={},e)for(let i in e)this.knownValues[i]=e[i];let r=$u.default(t.instant);this.imply("day",r.date()),this.imply("month",r.month()+1),this.imply("year",r.year()),this.imply("hour",12),this.imply("minute",0),this.imply("second",0),this.imply("millisecond",0)}get(t){return t in this.knownValues?this.knownValues[t]:t in this.impliedValues?this.impliedValues[t]:null}isCertain(t){return t in this.knownValues}getCertainComponents(){return Object.keys(this.knownValues)}imply(t,e){return t in this.knownValues?this:(this.impliedValues[t]=e,this)}assign(t,e){return this.knownValues[t]=e,delete this.impliedValues[t],this}delete(t){delete this.knownValues[t],delete this.impliedValues[t]}clone(){let t=new bs(this.reference);t.knownValues={},t.impliedValues={};for(let e in this.knownValues)t.knownValues[e]=this.knownValues[e];for(let e in this.impliedValues)t.impliedValues[e]=this.impliedValues[e];return t}isOnlyDate(){return!this.isCertain("hour")&&!this.isCertain("minute")&&!this.isCertain("second")}isOnlyTime(){return!this.isCertain("weekday")&&!this.isCertain("day")&&!this.isCertain("month")}isOnlyWeekdayComponent(){return this.isCertain("weekday")&&!this.isCertain("day")&&!this.isCertain("month")}isOnlyDayMonthComponent(){return this.isCertain("day")&&this.isCertain("month")&&!this.isCertain("year")}isValidDate(){let t=this.dateWithoutTimezoneAdjustment();return!(t.getFullYear()!==this.get("year")||t.getMonth()!==this.get("month")-1||t.getDate()!==this.get("day")||this.get("hour")!=null&&t.getHours()!=this.get("hour")||this.get("minute")!=null&&t.getMinutes()!=this.get("minute"))}toString(){return`[ParsingComponents {knownValues: ${JSON.stringify(this.knownValues)}, impliedValues: ${JSON.stringify(this.impliedValues)}}, reference: ${JSON.stringify(this.reference)}]`}dayjs(){return $u.default(this.date())}date(){let t=this.dateWithoutTimezoneAdjustment();return new Date(t.getTime()+this.getSystemTimezoneAdjustmentMinute(t)*6e4)}dateWithoutTimezoneAdjustment(){let t=new Date(this.get("year"),this.get("month")-1,this.get("day"),this.get("hour"),this.get("minute"),this.get("second"),this.get("millisecond"));return t.setFullYear(this.get("year")),t}getSystemTimezoneAdjustmentMinute(t){var e,r;(!t||t.getTime()<0)&&(t=new Date);let i=-t.getTimezoneOffset(),s=(r=(e=this.get("timezoneOffset"))!==null&&e!==void 0?e:this.reference.timezoneOffset)!==null&&r!==void 0?r:i;return i-s}static createRelativeFromReference(t,e){let r=$u.default(t.instant);for(let s in e)r=r.add(e[s],s);let i=new bs(t);return e.hour||e.minute||e.second?(Bf.assignSimilarTime(i,r),Bf.assignSimilarDate(i,r),t.timezoneOffset!==null&&i.assign("timezoneOffset",-t.instant.getTimezoneOffset())):(Bf.implySimilarTime(i,r),t.timezoneOffset!==null&&i.imply("timezoneOffset",-t.instant.getTimezoneOffset()),e.d?(i.assign("day",r.date()),i.assign("month",r.month()+1),i.assign("year",r.year())):(e.week&&i.imply("weekday",r.day()),i.imply("day",r.date()),e.month?(i.assign("month",r.month()+1),i.assign("year",r.year())):(i.imply("month",r.month()+1),e.year?i.assign("year",r.year()):i.imply("year",r.year())))),i}};jr.ParsingComponents=bs;var Bo=class{constructor(t,e,r,i,s){this.reference=t,this.refDate=t.instant,this.index=e,this.text=r,this.start=i||new bs(t),this.end=s}clone(){let t=new Bo(this.reference,this.index,this.text);return t.start=this.start?this.start.clone():null,t.end=this.end?this.end.clone():null,t}date(){return this.start.date()}toString(){return`[ParsingResult {index: ${this.index}, text: '${this.text}', ...}]`}};jr.ParsingResult=Bo});var re=x(qu=>{"use strict";Object.defineProperty(qu,"__esModule",{value:!0});qu.AbstractParserWithWordBoundaryChecking=void 0;var zf=class{constructor(){this.cachedInnerPattern=null,this.cachedPattern=null}patternLeftBoundary(){return"(\\W|^)"}pattern(t){let e=this.innerPattern(t);return e==this.cachedInnerPattern?this.cachedPattern:(this.cachedPattern=new RegExp(`${this.patternLeftBoundary()}${e.source}`,e.flags),this.cachedInnerPattern=e,this.cachedPattern)}extract(t,e){var r;let i=(r=e[1])!==null&&r!==void 0?r:"";e.index=e.index+i.length,e[0]=e[0].substring(i.length);for(let s=2;s<e.length;s++)e[s-1]=e[s];return this.innerExtract(t,e)}};qu.AbstractParserWithWordBoundaryChecking=zf});var sT=x(Xf=>{"use strict";Object.defineProperty(Xf,"__esModule",{value:!0});var Qf=Mt(),bO=nt(),TO=re(),_O=new RegExp(`(?:within|in|for)\\s*(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${Qf.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),vO=new RegExp(`(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${Qf.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),Kf=class extends TO.AbstractParserWithWordBoundaryChecking{innerPattern(t){return t.option.forwardDate?vO:_O}innerExtract(t,e){let r=Qf.parseTimeUnits(e[1]);return bO.ParsingComponents.createRelativeFromReference(t.reference,r)}};Xf.default=Kf});var dT=x(Jf=>{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});var wO=Ct(),uT=Mt(),cT=Mt(),Hu=Mt(),kO=Ke(),SO=re(),EO=new RegExp(`(?:on\\s{0,3})?(${Hu.ORDINAL_NUMBER_PATTERN})(?:\\s{0,3}(?:to|\\-|\\\u2013|until|through|till)?\\s{0,3}(${Hu.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s{0,3}(?:of)?\\s{0,3})(${kO.matchAnyPattern(uT.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s{0,3})(${cT.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),aT=1,oT=2,DO=3,lT=4,Zf=class extends SO.AbstractParserWithWordBoundaryChecking{innerPattern(){return EO}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=uT.MONTH_DICTIONARY[e[DO].toLowerCase()],s=Hu.parseOrdinalNumberPattern(e[aT]);if(s>31)return e.index=e.index+e[aT].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[lT]){let a=cT.parseYear(e[lT]);r.start.assign("year",a)}else{let a=wO.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[oT]){let a=Hu.parseOrdinalNumberPattern(e[oT]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};Jf.default=Zf});var gT=x(tp=>{"use strict";Object.defineProperty(tp,"__esModule",{value:!0});var xO=Ct(),mT=Mt(),Gu=Mt(),hT=Mt(),OO=Ke(),CO=re(),MO=new RegExp(`(${OO.matchAnyPattern(mT.MONTH_DICTIONARY)})(?:-|/|\\s*,?\\s*)(${Gu.ORDINAL_NUMBER_PATTERN})(?!\\s*(?:am|pm))\\s*(?:(?:to|\\-)\\s*(${Gu.ORDINAL_NUMBER_PATTERN})\\s*)?(?:(?:-|/|\\s*,?\\s*)(${hT.YEAR_PATTERN}))?(?=\\W|$)(?!\\:\\d)`,"i"),RO=1,AO=2,fT=3,pT=4,ep=class extends CO.AbstractParserWithWordBoundaryChecking{innerPattern(){return MO}innerExtract(t,e){let r=mT.MONTH_DICTIONARY[e[RO].toLowerCase()],i=Gu.parseOrdinalNumberPattern(e[AO]);if(i>31)return null;let s=t.createParsingComponents({day:i,month:r});if(e[pT]){let l=hT.parseYear(e[pT]);s.assign("year",l)}else{let l=xO.findYearClosestToRef(t.refDate,i,r);s.imply("year",l)}if(!e[fT])return s;let a=Gu.parseOrdinalNumberPattern(e[fT]),o=t.createParsingResult(e.index,e[0]);return o.start=s,o.end=s.clone(),o.end.assign("day",a),o}};tp.default=ep});var TT=x(ip=>{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});var np=Mt(),PO=Ct(),NO=Ke(),bT=Mt(),IO=re(),FO=new RegExp(`((?:in)\\s*)?(${NO.matchAnyPattern(np.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${bT.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,"i"),LO=1,UO=2,yT=3,rp=class extends IO.AbstractParserWithWordBoundaryChecking{innerPattern(){return FO}innerExtract(t,e){let r=e[UO].toLowerCase();if(e[0].length<=3&&!np.FULL_MONTH_NAME_DICTIONARY[r])return null;let i=t.createParsingResult(e.index+(e[LO]||"").length,e.index+e[0].length);i.start.imply("day",1);let s=np.MONTH_DICTIONARY[r];if(i.start.assign("month",s),e[yT]){let a=bT.parseYear(e[yT]);i.start.assign("year",a)}else{let a=PO.findYearClosestToRef(t.refDate,1,s);i.start.imply("year",a)}return i}};ip.default=rp});var wT=x(ap=>{"use strict";Object.defineProperty(ap,"__esModule",{value:!0});var vT=Mt(),YO=Ke(),jO=re(),WO=new RegExp(`([0-9]{4})[\\.\\/\\s](?:(${YO.matchAnyPattern(vT.MONTH_DICTIONARY)})|([0-9]{1,2}))[\\.\\/\\s]([0-9]{1,2})(?=\\W|$)`,"i"),$O=1,qO=2,_T=3,HO=4,sp=class extends jO.AbstractParserWithWordBoundaryChecking{innerPattern(){return WO}innerExtract(t,e){let r=e[_T]?parseInt(e[_T]):vT.MONTH_DICTIONARY[e[qO].toLowerCase()];if(r<1||r>12)return null;let i=parseInt(e[$O]);return{day:parseInt(e[HO]),month:r,year:i}}};ap.default=sp});var kT=x(lp=>{"use strict";Object.defineProperty(lp,"__esModule",{value:!0});var GO=re(),BO=new RegExp("([0-9]|0[1-9]|1[012])/([0-9]{4})","i"),VO=1,zO=2,op=class extends GO.AbstractParserWithWordBoundaryChecking{innerPattern(){return BO}innerExtract(t,e){let r=parseInt(e[zO]),i=parseInt(e[VO]);return t.createParsingComponents().imply("day",1).assign("month",i).assign("year",r)}};lp.default=op});var Ts=x(zu=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});zu.AbstractTimeExpressionParser=void 0;var Zt=ht();function KO(n,t,e,r){return new RegExp(`${n}${t}(\\d{1,4})(?:(?:\\.|:|\uFF1A)(\\d{1,2})(?:(?::|\uFF1A)(\\d{2})(?:\\.(\\d{1,6}))?)?)?(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?${e}`,r)}function QO(n,t){return new RegExp(`^(${n})(\\d{1,4})(?:(?:\\.|\\:|\\\uFF1A)(\\d{1,2})(?:(?:\\.|\\:|\\\uFF1A)(\\d{1,2})(?:\\.(\\d{1,6}))?)?)?(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?${t}`,"i")}var ST=2,Ta=3,Bu=4,Vu=5,Vo=6,up=class{constructor(t=!1){this.cachedPrimaryPrefix=null,this.cachedPrimarySuffix=null,this.cachedPrimaryTimePattern=null,this.cachedFollowingPhase=null,this.cachedFollowingSuffix=null,this.cachedFollowingTimePatten=null,this.strictMode=t}patternFlags(){return"i"}primaryPatternLeftBoundary(){return"(^|\\s|T|\\b)"}primarySuffix(){return"(?=\\W|$)"}followingSuffix(){return"(?=\\W|$)"}pattern(t){return this.getPrimaryTimePatternThroughCache()}extract(t,e){let r=this.extractPrimaryTimeComponents(t,e);if(!r)return e.index+=e[0].length,null;let i=e.index+e[1].length,s=e[0].substring(e[1].length),a=t.createParsingResult(i,s,r);e.index+=e[0].length;let o=t.text.substring(e.index),u=this.getFollowingTimePatternThroughCache().exec(o);return s.match(/^\d{3,4}/)&&u&&u[0].match(/^\s*([+-])\s*\d{2,4}$/)?null:!u||u[0].match(/^\s*([+-])\s*\d{3,4}$/)?this.checkAndReturnWithoutFollowingPattern(a):(a.end=this.extractFollowingTimeComponents(t,u,a),a.end&&(a.text+=u[0]),this.checkAndReturnWithFollowingPattern(a))}extractPrimaryTimeComponents(t,e,r=!1){let i=t.createParsingComponents(),s=0,a=null,o=parseInt(e[ST]);if(o>100){if(this.strictMode||e[Ta]!=null)return null;s=o%100,o=Math.floor(o/100)}if(o>24)return null;if(e[Ta]!=null){if(e[Ta].length==1&&!e[Vo])return null;s=parseInt(e[Ta])}if(s>=60)return null;if(o>12&&(a=Zt.Meridiem.PM),e[Vo]!=null){if(o>12)return null;let l=e[Vo][0].toLowerCase();l=="a"&&(a=Zt.Meridiem.AM,o==12&&(o=0)),l=="p"&&(a=Zt.Meridiem.PM,o!=12&&(o+=12))}if(i.assign("hour",o),i.assign("minute",s),a!==null?i.assign("meridiem",a):o<12?i.imply("meridiem",Zt.Meridiem.AM):i.imply("meridiem",Zt.Meridiem.PM),e[Vu]!=null){let l=parseInt(e[Vu].substring(0,3));if(l>=1e3)return null;i.assign("millisecond",l)}if(e[Bu]!=null){let l=parseInt(e[Bu]);if(l>=60)return null;i.assign("second",l)}return i}extractFollowingTimeComponents(t,e,r){let i=t.createParsingComponents();if(e[Vu]!=null){let l=parseInt(e[Vu].substring(0,3));if(l>=1e3)return null;i.assign("millisecond",l)}if(e[Bu]!=null){let l=parseInt(e[Bu]);if(l>=60)return null;i.assign("second",l)}let s=parseInt(e[ST]),a=0,o=-1;if(e[Ta]!=null?a=parseInt(e[Ta]):s>100&&(a=s%100,s=Math.floor(s/100)),a>=60||s>24)return null;if(s>=12&&(o=Zt.Meridiem.PM),e[Vo]!=null){if(s>12)return null;let l=e[Vo][0].toLowerCase();l=="a"&&(o=Zt.Meridiem.AM,s==12&&(s=0,i.isCertain("day")||i.imply("day",i.get("day")+1))),l=="p"&&(o=Zt.Meridiem.PM,s!=12&&(s+=12)),r.start.isCertain("meridiem")||(o==Zt.Meridiem.AM?(r.start.imply("meridiem",Zt.Meridiem.AM),r.start.get("hour")==12&&r.start.assign("hour",0)):(r.start.imply("meridiem",Zt.Meridiem.PM),r.start.get("hour")!=12&&r.start.assign("hour",r.start.get("hour")+12)))}return i.assign("hour",s),i.assign("minute",a),o>=0?i.assign("meridiem",o):r.start.isCertain("meridiem")&&r.start.get("hour")>12?r.start.get("hour")-12>s?i.imply("meridiem",Zt.Meridiem.AM):s<=12&&(i.assign("hour",s+12),i.assign("meridiem",Zt.Meridiem.PM)):s>12?i.imply("meridiem",Zt.Meridiem.PM):s<=12&&i.imply("meridiem",Zt.Meridiem.AM),i.date().getTime()<r.start.date().getTime()&&i.imply("day",i.get("day")+1),i}checkAndReturnWithoutFollowingPattern(t){if(t.text.match(/^\d$/)||t.text.match(/^\d\d\d+$/)||t.text.match(/\d[apAP]$/))return null;let e=t.text.match(/[^\d:.](\d[\d.]+)$/);if(e){let r=e[1];if(this.strictMode||r.includes(".")&&!r.match(/\d(\.\d{2})+$/)||parseInt(r)>24)return null}return t}checkAndReturnWithFollowingPattern(t){if(t.text.match(/^\d+-\d+$/))return null;let e=t.text.match(/[^\d:.](\d[\d.]+)\s*-\s*(\d[\d.]+)$/);if(e){if(this.strictMode)return null;let r=e[1],i=e[2];if(i.includes(".")&&!i.match(/\d(\.\d{2})+$/))return null;let s=parseInt(i),a=parseInt(r);if(s>24||a>24)return null}return t}getPrimaryTimePatternThroughCache(){let t=this.primaryPrefix(),e=this.primarySuffix();return this.cachedPrimaryPrefix===t&&this.cachedPrimarySuffix===e?this.cachedPrimaryTimePattern:(this.cachedPrimaryTimePattern=KO(this.primaryPatternLeftBoundary(),t,e,this.patternFlags()),this.cachedPrimaryPrefix=t,this.cachedPrimarySuffix=e,this.cachedPrimaryTimePattern)}getFollowingTimePatternThroughCache(){let t=this.followingPhase(),e=this.followingSuffix();return this.cachedFollowingPhase===t&&this.cachedFollowingSuffix===e?this.cachedFollowingTimePatten:(this.cachedFollowingTimePatten=QO(t,e),this.cachedFollowingPhase=t,this.cachedFollowingSuffix=e,this.cachedFollowingTimePatten)}};zu.AbstractTimeExpressionParser=up});var ET=x(dp=>{"use strict";Object.defineProperty(dp,"__esModule",{value:!0});var Ku=ht(),XO=Ts(),cp=class extends XO.AbstractTimeExpressionParser{constructor(t){super(t)}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|to|\\?)\\s*"}primaryPrefix(){return"(?:(?:at|from)\\s*)??"}primarySuffix(){return"(?:\\s*(?:o\\W*clock|at\\s*night|in\\s*the\\s*(?:morning|afternoon)))?(?!/)(?=\\W|$)"}extractPrimaryTimeComponents(t,e){let r=super.extractPrimaryTimeComponents(t,e);if(r){if(e[0].endsWith("night")){let i=r.get("hour");i>=6&&i<12?(r.assign("hour",r.get("hour")+12),r.assign("meridiem",Ku.Meridiem.PM)):i<6&&r.assign("meridiem",Ku.Meridiem.AM)}if(e[0].endsWith("afternoon")){r.assign("meridiem",Ku.Meridiem.PM);let i=r.get("hour");i>=0&&i<=6&&r.assign("hour",r.get("hour")+12)}e[0].endsWith("morning")&&(r.assign("meridiem",Ku.Meridiem.AM),r.get("hour")<12&&r.assign("hour",r.get("hour")))}return r}};dp.default=cp});var qn=x(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.addImpliedTimeUnits=_a.reverseTimeUnits=void 0;function ZO(n){let t={};for(let e in n)t[e]=-n[e];return t}_a.reverseTimeUnits=ZO;function JO(n,t){let e=n.clone(),r=n.dayjs();for(let i in t)r=r.add(t[i],i);return("day"in t||"d"in t||"week"in t||"month"in t||"year"in t)&&(e.imply("day",r.date()),e.imply("month",r.month()+1),e.imply("year",r.year())),("second"in t||"minute"in t||"hour"in t)&&(e.imply("second",r.second()),e.imply("minute",r.minute()),e.imply("hour",r.hour())),e}_a.addImpliedTimeUnits=JO});var DT=x(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var pp=Mt(),e0=nt(),t0=re(),n0=qn(),r0=new RegExp(`(${pp.TIME_UNITS_PATTERN})\\s{0,5}(?:ago|before|earlier)(?=(?:\\W|$))`,"i"),i0=new RegExp(`(${pp.TIME_UNITS_PATTERN})\\s{0,5}ago(?=(?:\\W|$))`,"i"),fp=class extends t0.AbstractParserWithWordBoundaryChecking{constructor(t){super(),this.strictMode=t}innerPattern(){return this.strictMode?i0:r0}innerExtract(t,e){let r=pp.parseTimeUnits(e[1]),i=n0.reverseTimeUnits(r);return e0.ParsingComponents.createRelativeFromReference(t.reference,i)}};mp.default=fp});var xT=x(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var gp=Mt(),s0=nt(),a0=re(),o0=new RegExp(`(${gp.TIME_UNITS_PATTERN})\\s{0,5}(?:later|after|from now|henceforth|forward|out)(?=(?:\\W|$))`,"i"),l0=new RegExp("("+gp.TIME_UNITS_PATTERN+")(later|from now)(?=(?:\\W|$))","i"),u0=1,hp=class extends a0.AbstractParserWithWordBoundaryChecking{constructor(t){super(),this.strictMode=t}innerPattern(){return this.strictMode?l0:o0}innerExtract(t,e){let r=gp.parseTimeUnits(e[u0]);return s0.ParsingComponents.createRelativeFromReference(t.reference,r)}};yp.default=hp});var wa=x(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.MergingRefiner=va.Filter=void 0;var bp=class{refine(t,e){return e.filter(r=>this.isValid(t,r))}};va.Filter=bp;var Tp=class{refine(t,e){if(e.length<2)return e;let r=[],i=e[0],s=null;for(let a=1;a<e.length;a++){s=e[a];let o=t.text.substring(i.index+i.text.length,s.index);if(!this.shouldMergeResults(o,i,s,t))r.push(i),i=s;else{let l=i,u=s,c=this.mergeResults(o,l,u,t);t.debug(()=>{console.log(`${this.constructor.name} merged ${l} and ${u} into ${c}`)}),i=c}}return i!=null&&r.push(i),r}};va.MergingRefiner=Tp});var Wr=x(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var c0=wa(),_p=class extends c0.MergingRefiner{shouldMergeResults(t,e,r){return!e.end&&!r.end&&t.match(this.patternBetween())!=null}mergeResults(t,e,r){if(!e.start.isOnlyWeekdayComponent()&&!r.start.isOnlyWeekdayComponent()&&(r.start.getCertainComponents().forEach(s=>{e.start.isCertain(s)||e.start.assign(s,r.start.get(s))}),e.start.getCertainComponents().forEach(s=>{r.start.isCertain(s)||r.start.assign(s,e.start.get(s))})),e.start.date().getTime()>r.start.date().getTime()){let s=e.start.dayjs(),a=r.start.dayjs();e.start.isOnlyWeekdayComponent()&&s.add(-7,"days").isBefore(a)?(s=s.add(-7,"days"),e.start.imply("day",s.date()),e.start.imply("month",s.month()+1),e.start.imply("year",s.year())):r.start.isOnlyWeekdayComponent()&&a.add(7,"days").isAfter(s)?(a=a.add(7,"days"),r.start.imply("day",a.date()),r.start.imply("month",a.month()+1),r.start.imply("year",a.year())):[r,e]=[e,r]}let i=e.clone();return i.start=e.start,i.end=r.start,i.index=Math.min(e.index,r.index),e.index<r.index?i.text=e.text+t+r.text:i.text=r.text+t+e.text,i}};vp.default=_p});var OT=x(zo=>{"use strict";var d0=zo&&zo.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(zo,"__esModule",{value:!0});var f0=d0(Wr()),wp=class extends f0.default{patternBetween(){return/^\s*(to|-)\s*$/i}};zo.default=wp});var CT=x(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.mergeDateTimeComponent=ka.mergeDateTimeResult=void 0;var p0=ht();function m0(n,t){let e=n.clone(),r=n.start,i=t.start;if(e.start=kp(r,i),n.end!=null||t.end!=null){let s=n.end==null?n.start:n.end,a=t.end==null?t.start:t.end,o=kp(s,a);n.end==null&&o.date().getTime()<e.start.date().getTime()&&(o.isCertain("day")?o.assign("day",o.get("day")+1):o.imply("day",o.get("day")+1)),e.end=o}return e}ka.mergeDateTimeResult=m0;function kp(n,t){let e=n.clone();return t.isCertain("hour")?(e.assign("hour",t.get("hour")),e.assign("minute",t.get("minute")),t.isCertain("second")?(e.assign("second",t.get("second")),t.isCertain("millisecond")?e.assign("millisecond",t.get("millisecond")):e.imply("millisecond",t.get("millisecond"))):(e.imply("second",t.get("second")),e.imply("millisecond",t.get("millisecond")))):(e.imply("hour",t.get("hour")),e.imply("minute",t.get("minute")),e.imply("second",t.get("second")),e.imply("millisecond",t.get("millisecond"))),t.isCertain("timezoneOffset")&&e.assign("timezoneOffset",t.get("timezoneOffset")),t.isCertain("meridiem")?e.assign("meridiem",t.get("meridiem")):t.get("meridiem")!=null&&e.get("meridiem")==null&&e.imply("meridiem",t.get("meridiem")),e.get("meridiem")==p0.Meridiem.PM&&e.get("hour")<12&&(t.isCertain("hour")?e.assign("hour",e.get("hour")+12):e.imply("hour",e.get("hour")+12)),e}ka.mergeDateTimeComponent=kp});var si=x(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var h0=wa(),MT=CT(),Sp=class extends h0.MergingRefiner{shouldMergeResults(t,e,r){return(e.start.isOnlyDate()&&r.start.isOnlyTime()||r.start.isOnlyDate()&&e.start.isOnlyTime())&&t.match(this.patternBetween())!=null}mergeResults(t,e,r){let i=e.start.isOnlyDate()?MT.mergeDateTimeResult(e,r):MT.mergeDateTimeResult(r,e);return i.index=e.index,i.text=e.text+t+r.text,i}};Ep.default=Sp});var RT=x(Ko=>{"use strict";var g0=Ko&&Ko.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ko,"__esModule",{value:!0});var y0=g0(si()),Dp=class extends y0.default{patternBetween(){return new RegExp("^\\s*(T|at|after|before|on|of|,|-)?\\s*$")}};Ko.default=Dp});var AT=x(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var b0=new RegExp("^\\s*,?\\s*\\(?([A-Z]{2,4})\\)?(?=\\W|$)","i"),T0={ACDT:630,ACST:570,ADT:-180,AEDT:660,AEST:600,AFT:270,AKDT:-480,AKST:-540,ALMT:360,AMST:-180,AMT:-240,ANAST:720,ANAT:720,AQTT:300,ART:-180,AST:-240,AWDT:540,AWST:480,AZOST:0,AZOT:-60,AZST:300,AZT:240,BNT:480,BOT:-240,BRST:-120,BRT:-180,BST:60,BTT:360,CAST:480,CAT:120,CCT:390,CDT:-300,CEST:120,CET:60,CHADT:825,CHAST:765,CKT:-600,CLST:-180,CLT:-240,COT:-300,CST:-360,CVT:-60,CXT:420,ChST:600,DAVT:420,EASST:-300,EAST:-360,EAT:180,ECT:-300,EDT:-240,EEST:180,EET:120,EGST:0,EGT:-60,EST:-300,ET:-300,FJST:780,FJT:720,FKST:-180,FKT:-240,FNT:-120,GALT:-360,GAMT:-540,GET:240,GFT:-180,GILT:720,GMT:0,GST:240,GYT:-240,HAA:-180,HAC:-300,HADT:-540,HAE:-240,HAP:-420,HAR:-360,HAST:-600,HAT:-90,HAY:-480,HKT:480,HLV:-210,HNA:-240,HNC:-360,HNE:-300,HNP:-480,HNR:-420,HNT:-150,HNY:-540,HOVT:420,ICT:420,IDT:180,IOT:360,IRDT:270,IRKST:540,IRKT:540,IRST:210,IST:330,JST:540,KGT:360,KRAST:480,KRAT:480,KST:540,KUYT:240,LHDT:660,LHST:630,LINT:840,MAGST:720,MAGT:720,MART:-510,MAWT:300,MDT:-360,MESZ:120,MEZ:60,MHT:720,MMT:390,MSD:240,MSK:240,MST:-420,MUT:240,MVT:300,MYT:480,NCT:660,NDT:-90,NFT:690,NOVST:420,NOVT:360,NPT:345,NST:-150,NUT:-660,NZDT:780,NZST:720,OMSST:420,OMST:420,PDT:-420,PET:-300,PETST:720,PETT:720,PGT:600,PHOT:780,PHT:480,PKT:300,PMDT:-120,PMST:-180,PONT:660,PST:-480,PT:-480,PWT:540,PYST:-180,PYT:-240,RET:240,SAMT:240,SAST:120,SBT:660,SCT:240,SGT:480,SRT:-180,SST:-660,TAHT:-600,TFT:300,TJT:300,TKT:780,TLT:540,TMT:300,TVT:720,ULAT:480,UTC:0,UYST:-120,UYT:-180,UZT:300,VET:-210,VLAST:660,VLAT:660,VUT:660,WAST:120,WAT:60,WEST:60,WESZ:60,WET:0,WEZ:0,WFT:720,WGST:-120,WGT:-180,WIB:420,WIT:540,WITA:480,WST:780,WT:0,YAKST:600,YAKT:600,YAPT:600,YEKST:360,YEKT:360},xp=class{constructor(t){this.timezone=Object.assign(Object.assign({},T0),t)}refine(t,e){var r;let i=(r=t.option.timezones)!==null&&r!==void 0?r:{};return e.forEach(s=>{var a,o;let l=t.text.substring(s.index+s.text.length),u=b0.exec(l);if(!u)return;let c=u[1].toUpperCase(),d=(o=(a=i[c])!==null&&a!==void 0?a:this.timezone[c])!==null&&o!==void 0?o:null;if(d===null)return;t.debug(()=>{console.log(`Extracting timezone: '${c}' into: ${d} for: ${s.start}`)});let f=s.start.get("timezoneOffset");f!==null&&d!=f&&(s.start.isCertain("timezoneOffset")||c!=u[1])||s.start.isOnlyDate()&&c!=u[1]||(s.text+=u[0],s.start.isCertain("timezoneOffset")||s.start.assign("timezoneOffset",d),s.end!=null&&!s.end.isCertain("timezoneOffset")&&s.end.assign("timezoneOffset",d))}),e}};Op.default=xp});var Qu=x(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var _0=new RegExp("^\\s*(?:\\(?(?:GMT|UTC)\\s?)?([+-])(\\d{1,2})(?::?(\\d{2}))?\\)?","i"),v0=1,w0=2,k0=3,Cp=class{refine(t,e){return e.forEach(function(r){if(r.start.isCertain("timezoneOffset"))return;let i=t.text.substring(r.index+r.text.length),s=_0.exec(i);if(!s)return;t.debug(()=>{console.log(`Extracting timezone: '${s[0]}' into : ${r}`)});let a=parseInt(s[w0]),o=parseInt(s[k0]||"0"),l=a*60+o;l>14*60||(s[v0]==="-"&&(l=-l),r.end!=null&&r.end.assign("timezoneOffset",l),r.start.assign("timezoneOffset",l),r.text+=s[0])}),e}};Mp.default=Cp});var PT=x(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var Rp=class{refine(t,e){if(e.length<2)return e;let r=[],i=e[0];for(let s=1;s<e.length;s++){let a=e[s];a.index<i.index+i.text.length?a.text.length>i.text.length&&(i=a):(r.push(i),i=a)}return i!=null&&r.push(i),r}};Ap.default=Rp});var NT=x(Qo=>{"use strict";var S0=Qo&&Qo.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Qo,"__esModule",{value:!0});var E0=S0(Ue()),Pp=class{refine(t,e){return t.option.forwardDate&&e.forEach(function(r){let i=E0.default(t.refDate);if(r.start.isOnlyDayMonthComponent()&&i.isAfter(r.start.dayjs()))for(let s=0;s<3&&i.isAfter(r.start.dayjs());s++)r.start.imply("year",r.start.get("year")+1),t.debug(()=>{console.log(`Forward yearly adjusted for ${r} (${r.start})`)}),r.end&&!r.end.isCertain("year")&&(r.end.imply("year",r.end.get("year")+1),t.debug(()=>{console.log(`Forward yearly adjusted for ${r} (${r.end})`)}));r.start.isOnlyWeekdayComponent()&&i.isAfter(r.start.dayjs())&&(i.day()>=r.start.get("weekday")?i=i.day(r.start.get("weekday")+7):i=i.day(r.start.get("weekday")),r.start.imply("day",i.date()),r.start.imply("month",i.month()+1),r.start.imply("year",i.year()),t.debug(()=>{console.log(`Forward weekly adjusted for ${r} (${r.start})`)}),r.end&&r.end.isOnlyWeekdayComponent()&&(i.day()>r.end.get("weekday")?i=i.day(r.end.get("weekday")+7):i=i.day(r.end.get("weekday")),r.end.imply("day",i.date()),r.end.imply("month",i.month()+1),r.end.imply("year",i.year()),t.debug(()=>{console.log(`Forward weekly adjusted for ${r} (${r.end})`)})))}),e}};Qo.default=Pp});var IT=x(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var D0=wa(),Np=class extends D0.Filter{constructor(t){super(),this.strictMode=t}isValid(t,e){return e.text.replace(" ","").match(/^\d*(\.\d*)?$/)?(t.debug(()=>{console.log(`Removing unlikely result '${e.text}'`)}),!1):e.start.isValidDate()?e.end&&!e.end.isValidDate()?(t.debug(()=>{console.log(`Removing invalid result: ${e} (${e.end})`)}),!1):this.strictMode?this.isStrictModeValid(t,e):!0:(t.debug(()=>{console.log(`Removing invalid result: ${e} (${e.start})`)}),!1)}isStrictModeValid(t,e){return e.start.isOnlyWeekdayComponent()?(t.debug(()=>{console.log(`(Strict) Removing weekday only component: ${e} (${e.end})`)}),!1):e.start.isOnlyTime()&&(!e.start.isCertain("hour")||!e.start.isCertain("minute"))?(t.debug(()=>{console.log(`(Strict) Removing uncertain time component: ${e} (${e.end})`)}),!1):!0}};Ip.default=Np});var Up=x(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var x0=re(),O0=new RegExp("([0-9]{4})\\-([0-9]{1,2})\\-([0-9]{1,2})(?:T([0-9]{1,2}):([0-9]{1,2})(?::([0-9]{1,2})(?:\\.(\\d{1,4}))?)?(?:Z|([+-]\\d{2}):?(\\d{2})?)?)?(?=\\W|$)","i"),C0=1,M0=2,R0=3,FT=4,A0=5,LT=6,UT=7,YT=8,jT=9,Fp=class extends x0.AbstractParserWithWordBoundaryChecking{innerPattern(){return O0}innerExtract(t,e){let r={};if(r.year=parseInt(e[C0]),r.month=parseInt(e[M0]),r.day=parseInt(e[R0]),e[FT]!=null)if(r.hour=parseInt(e[FT]),r.minute=parseInt(e[A0]),e[LT]!=null&&(r.second=parseInt(e[LT])),e[UT]!=null&&(r.millisecond=parseInt(e[UT])),e[YT]==null)r.timezoneOffset=0;else{let i=parseInt(e[YT]),s=0;e[jT]!=null&&(s=parseInt(e[jT]));let a=i*60;a<0?a-=s:a+=s,r.timezoneOffset=a}return r}};Lp.default=Fp});var WT=x(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var P0=wa(),Yp=class extends P0.MergingRefiner{mergeResults(t,e,r){let i=r.clone();return i.index=e.index,i.text=e.text+t+i.text,i.start.assign("weekday",e.start.get("weekday")),i.end&&i.end.assign("weekday",e.start.get("weekday")),i}shouldMergeResults(t,e,r){return e.start.isOnlyWeekdayComponent()&&!e.start.isCertain("hour")&&r.start.isCertain("day")&&t.match(/^,?\s*$/)!=null}};jp.default=Yp});var ai=x(Sa=>{"use strict";var _s=Sa&&Sa.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Sa,"__esModule",{value:!0});Sa.includeCommonConfiguration=void 0;var N0=_s(AT()),I0=_s(Qu()),$T=_s(PT()),F0=_s(NT()),L0=_s(IT()),U0=_s(Up()),Y0=_s(WT());function j0(n,t=!1){return n.parsers.unshift(new U0.default),n.refiners.unshift(new Y0.default),n.refiners.unshift(new N0.default),n.refiners.unshift(new I0.default),n.refiners.unshift(new $T.default),n.refiners.push(new $T.default),n.refiners.push(new F0.default),n.refiners.push(new L0.default(t)),n}Sa.includeCommonConfiguration=j0});var li=x(Ge=>{"use strict";var W0=Ge&&Ge.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.noon=Ge.morning=Ge.midnight=Ge.yesterdayEvening=Ge.evening=Ge.lastNight=Ge.tonight=Ge.theDayAfter=Ge.tomorrow=Ge.theDayBefore=Ge.yesterday=Ge.today=Ge.now=void 0;var $r=nt(),Ea=W0(Ue()),oi=$n(),Xo=ht();function $0(n){let t=Ea.default(n.instant),e=new $r.ParsingComponents(n,{});return oi.assignSimilarDate(e,t),oi.assignSimilarTime(e,t),n.timezoneOffset!==null&&e.assign("timezoneOffset",t.utcOffset()),e}Ge.now=$0;function q0(n){let t=Ea.default(n.instant),e=new $r.ParsingComponents(n,{});return oi.assignSimilarDate(e,t),oi.implySimilarTime(e,t),e}Ge.today=q0;function H0(n){return qT(n,1)}Ge.yesterday=H0;function qT(n,t){return Wp(n,-t)}Ge.theDayBefore=qT;function G0(n){return Wp(n,1)}Ge.tomorrow=G0;function Wp(n,t){let e=Ea.default(n.instant),r=new $r.ParsingComponents(n,{});return e=e.add(t,"day"),oi.assignSimilarDate(r,e),oi.implySimilarTime(r,e),r}Ge.theDayAfter=Wp;function B0(n,t=22){let e=Ea.default(n.instant),r=new $r.ParsingComponents(n,{});return r.imply("hour",t),r.imply("meridiem",Xo.Meridiem.PM),oi.assignSimilarDate(r,e),r}Ge.tonight=B0;function V0(n,t=0){let e=Ea.default(n.instant),r=new $r.ParsingComponents(n,{});return e.hour()<6&&(e=e.add(-1,"day")),oi.assignSimilarDate(r,e),r.imply("hour",t),r}Ge.lastNight=V0;function z0(n,t=20){let e=new $r.ParsingComponents(n,{});return e.imply("meridiem",Xo.Meridiem.PM),e.imply("hour",t),e}Ge.evening=z0;function K0(n,t=20){let e=Ea.default(n.instant),r=new $r.ParsingComponents(n,{});return e=e.add(-1,"day"),oi.assignSimilarDate(r,e),r.imply("hour",t),r.imply("meridiem",Xo.Meridiem.PM),r}Ge.yesterdayEvening=K0;function Q0(n){let t=new $r.ParsingComponents(n,{});return t.imply("hour",0),t.imply("minute",0),t.imply("second",0),t}Ge.midnight=Q0;function X0(n,t=6){let e=new $r.ParsingComponents(n,{});return e.imply("meridiem",Xo.Meridiem.AM),e.imply("hour",t),e}Ge.morning=X0;function Z0(n){let t=new $r.ParsingComponents(n,{});return t.imply("meridiem",Xo.Meridiem.AM),t.imply("hour",12),t}Ge.noon=Z0});var HT=x(gr=>{"use strict";var J0=gr&&gr.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),e1=gr&&gr.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),t1=gr&&gr.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&J0(t,n,e);return e1(t,n),t},n1=gr&&gr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(gr,"__esModule",{value:!0});var r1=n1(Ue()),i1=re(),s1=$n(),Zo=t1(li()),a1=/(now|today|tonight|tomorrow|tmr|tmrw|yesterday|last\s*night)(?=\W|$)/i,$p=class extends i1.AbstractParserWithWordBoundaryChecking{innerPattern(t){return a1}innerExtract(t,e){let r=r1.default(t.refDate),i=e[0].toLowerCase(),s=t.createParsingComponents();switch(i){case"now":return Zo.now(t.reference);case"today":return Zo.today(t.reference);case"yesterday":return Zo.yesterday(t.reference);case"tomorrow":case"tmr":case"tmrw":return Zo.tomorrow(t.reference);case"tonight":return Zo.tonight(t.reference);default:i.match(/last\s*night/)&&(r.hour()>6&&(r=r.add(-1,"day")),s1.assignSimilarDate(s,r),s.imply("hour",0));break}return s}};gr.default=$p});var GT=x(Jo=>{"use strict";var o1=Jo&&Jo.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Jo,"__esModule",{value:!0});var Xu=ht(),l1=re(),u1=o1(Ue()),c1=$n(),d1=/(?:this)?\s{0,3}(morning|afternoon|evening|night|midnight|noon)(?=\W|$)/i,qp=class extends l1.AbstractParserWithWordBoundaryChecking{innerPattern(){return d1}innerExtract(t,e){let r=u1.default(t.refDate),i=t.createParsingComponents();switch(e[1].toLowerCase()){case"afternoon":i.imply("meridiem",Xu.Meridiem.PM),i.imply("hour",15);break;case"evening":case"night":i.imply("meridiem",Xu.Meridiem.PM),i.imply("hour",20);break;case"midnight":c1.assignTheNextDay(i,r),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"morning":i.imply("meridiem",Xu.Meridiem.AM),i.imply("hour",6);break;case"noon":i.imply("meridiem",Xu.Meridiem.AM),i.imply("hour",12);break}return i}};Jo.default=qp});var vs=x(Fi=>{"use strict";var f1=Fi&&Fi.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Fi,"__esModule",{value:!0});Fi.toDayJSClosestWeekday=Fi.toDayJSWeekday=void 0;var BT=f1(Ue());function p1(n,t,e){if(!e)return VT(n,t);let r=BT.default(n);switch(e){case"this":r=r.day(t);break;case"next":r=r.day(t+7);break;case"last":r=r.day(t-7);break}return r}Fi.toDayJSWeekday=p1;function VT(n,t){let e=BT.default(n),r=e.day();return Math.abs(t-7-r)<Math.abs(t-r)?e=e.day(t-7):Math.abs(t+7-r)<Math.abs(t-r)?e=e.day(t+7):e=e.day(t),e}Fi.toDayJSClosestWeekday=VT});var KT=x(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var zT=Mt(),m1=Ke(),h1=re(),g1=vs(),y1=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:on\\s*?)?(?:(this|last|past|next)\\s*)?(${m1.matchAnyPattern(zT.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(this|last|past|next)\\s*week)?(?=\\W|$)`,"i"),b1=1,T1=2,_1=3,Hp=class extends h1.AbstractParserWithWordBoundaryChecking{innerPattern(){return y1}innerExtract(t,e){let r=e[T1].toLowerCase(),i=zT.WEEKDAY_DICTIONARY[r],s=e[b1],a=e[_1],o=s||a;o=o||"",o=o.toLowerCase();let l=null;o=="last"||o=="past"?l="last":o=="next"?l="next":o=="this"&&(l="this");let u=g1.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};Gp.default=Hp});var ZT=x(el=>{"use strict";var v1=el&&el.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(el,"__esModule",{value:!0});var XT=Mt(),QT=nt(),w1=v1(Ue()),k1=re(),S1=Ke(),E1=new RegExp(`(this|last|past|next|after\\s*this)\\s*(${S1.matchAnyPattern(XT.TIME_UNIT_DICTIONARY)})(?=\\s*)(?=\\W|$)`,"i"),D1=1,x1=2,Bp=class extends k1.AbstractParserWithWordBoundaryChecking{innerPattern(){return E1}innerExtract(t,e){let r=e[D1].toLowerCase(),i=e[x1].toLowerCase(),s=XT.TIME_UNIT_DICTIONARY[i];if(r=="next"||r.startsWith("after")){let l={};return l[s]=1,QT.ParsingComponents.createRelativeFromReference(t.reference,l)}if(r=="last"||r=="past"){let l={};return l[s]=-1,QT.ParsingComponents.createRelativeFromReference(t.reference,l)}let a=t.createParsingComponents(),o=w1.default(t.reference.instant);return i.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):i.match(/month/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):i.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};el.default=Bp});var yr=x(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.ParsingContext=Oa.Chrono=void 0;var Da=nt(),O1=Vp(),xa=class{constructor(t){t=t||O1.createCasualConfiguration(),this.parsers=[...t.parsers],this.refiners=[...t.refiners]}clone(){return new xa({parsers:[...this.parsers],refiners:[...this.refiners]})}parseDate(t,e,r){let i=this.parse(t,e,r);return i.length>0?i[0].start.date():null}parse(t,e,r){let i=new Zu(t,e,r),s=[];return this.parsers.forEach(a=>{let o=xa.executeParser(i,a);s=s.concat(o)}),s.sort((a,o)=>a.index-o.index),this.refiners.forEach(function(a){s=a.refine(i,s)}),s}static executeParser(t,e){let r=[],i=e.pattern(t),s=t.text,a=t.text,o=i.exec(a);for(;o;){let l=o.index+s.length-a.length;o.index=l;let u=e.extract(t,o);if(!u){a=s.substring(o.index+1),o=i.exec(a);continue}let c=null;u instanceof Da.ParsingResult?c=u:u instanceof Da.ParsingComponents?(c=t.createParsingResult(o.index,o[0]),c.start=u):c=t.createParsingResult(o.index,o[0],u),t.debug(()=>console.log(`${e.constructor.name} extracted result ${c}`)),r.push(c),a=s.substring(l+c.text.length),o=i.exec(a)}return r}};Oa.Chrono=xa;var Zu=class{constructor(t,e,r){this.text=t,this.reference=new Da.ReferenceWithTimezone(e),this.option=r!=null?r:{},this.refDate=this.reference.instant}createParsingComponents(t){return t instanceof Da.ParsingComponents?t:new Da.ParsingComponents(this.reference,t)}createParsingResult(t,e,r,i){let s=typeof e=="string"?e:this.text.substring(t,e),a=r?this.createParsingComponents(r):null,o=i?this.createParsingComponents(i):null;return new Da.ParsingResult(this.reference,t,s,a,o)}debug(t){this.option.debug&&(this.option.debug instanceof Function?this.option.debug(t):this.option.debug.debug(t))}};Oa.ParsingContext=Zu});var ws=x(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var JT=Ct(),C1=new RegExp("([^\\d]|^)([0-3]{0,1}[0-9]{1})[\\/\\.\\-]([0-3]{0,1}[0-9]{1})(?:[\\/\\.\\-]([0-9]{4}|[0-9]{2}))?(\\W|$)","i"),Ju=1,e_=5,t_=2,n_=3,zp=4,Kp=class{constructor(t){this.groupNumberMonth=t?n_:t_,this.groupNumberDay=t?t_:n_}pattern(){return C1}extract(t,e){if(e[Ju]=="/"||e[e_]=="/"){e.index+=e[0].length;return}let r=e.index+e[Ju].length,i=e[0].substr(e[Ju].length,e[0].length-e[Ju].length-e[e_].length);if(i.match(/^\d\.\d$/)||i.match(/^\d\.\d{1,2}\.\d{1,2}\s*$/)||!e[zp]&&e[0].indexOf("/")<0)return;let s=t.createParsingResult(r,i),a=parseInt(e[this.groupNumberMonth]),o=parseInt(e[this.groupNumberDay]);if((a<1||a>12)&&a>12)if(o>=1&&o<=12&&a<=31)[o,a]=[a,o];else return null;if(o<1||o>31)return null;if(s.start.assign("day",o),s.start.assign("month",a),e[zp]){let l=parseInt(e[zp]),u=JT.findMostLikelyADYear(l);s.start.assign("year",u)}else{let l=JT.findYearClosestToRef(t.refDate,o,a);s.start.imply("year",l)}return s}};Qp.default=Kp});var i_=x(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var r_=Mt(),M1=nt(),R1=re(),A1=qn(),P1=new RegExp(`(this|last|past|next|after|\\+|-)\\s*(${r_.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),Xp=class extends R1.AbstractParserWithWordBoundaryChecking{innerPattern(){return P1}innerExtract(t,e){let r=e[1].toLowerCase(),i=r_.parseTimeUnits(e[2]);switch(r){case"last":case"past":case"-":i=A1.reverseTimeUnits(i);break}return M1.ParsingComponents.createRelativeFromReference(t.reference,i)}};Zp.default=Xp});var a_=x(tm=>{"use strict";Object.defineProperty(tm,"__esModule",{value:!0});var N1=wa(),Jp=nt(),I1=Mt(),F1=qn();function s_(n){return n.text.match(/\s+(before|from)$/i)!=null}function L1(n){return n.text.match(/\s+(after|since)$/i)!=null}var em=class extends N1.MergingRefiner{patternBetween(){return/^\s*$/i}shouldMergeResults(t,e,r){return!t.match(this.patternBetween())||!s_(e)&&!L1(e)?!1:!!r.start.get("day")&&!!r.start.get("month")&&!!r.start.get("year")}mergeResults(t,e,r){let i=I1.parseTimeUnits(e.text);s_(e)&&(i=F1.reverseTimeUnits(i));let s=Jp.ParsingComponents.createRelativeFromReference(new Jp.ReferenceWithTimezone(r.start.date()),i);return new Jp.ParsingResult(r.reference,e.index,`${e.text}${t}${r.text}`,s)}};tm.default=em});var Vp=x(lt=>{"use strict";var bt=lt&<.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(lt,"__esModule",{value:!0});lt.createConfiguration=lt.createCasualConfiguration=lt.parseDate=lt.parse=lt.GB=lt.strict=lt.casual=void 0;var U1=bt(sT()),Y1=bt(dT()),j1=bt(gT()),W1=bt(TT()),$1=bt(wT()),q1=bt(kT()),H1=bt(ET()),G1=bt(DT()),B1=bt(xT()),V1=bt(OT()),z1=bt(RT()),K1=ai(),Q1=bt(HT()),X1=bt(GT()),Z1=bt(KT()),J1=bt(ZT()),nm=yr(),eC=bt(ws()),tC=bt(i_()),nC=bt(a_());lt.casual=new nm.Chrono(o_(!1));lt.strict=new nm.Chrono(ec(!0,!1));lt.GB=new nm.Chrono(ec(!1,!0));function rC(n,t,e){return lt.casual.parse(n,t,e)}lt.parse=rC;function iC(n,t,e){return lt.casual.parseDate(n,t,e)}lt.parseDate=iC;function o_(n=!1){let t=ec(!1,n);return t.parsers.unshift(new Q1.default),t.parsers.unshift(new X1.default),t.parsers.unshift(new W1.default),t.parsers.unshift(new J1.default),t.parsers.unshift(new tC.default),t}lt.createCasualConfiguration=o_;function ec(n=!0,t=!1){return K1.includeCommonConfiguration({parsers:[new eC.default(t),new U1.default,new Y1.default,new j1.default,new Z1.default,new $1.default,new q1.default,new H1.default(n),new G1.default(n),new B1.default(n)],refiners:[new nC.default,new z1.default,new V1.default]},n)}lt.createConfiguration=ec});var l_=x(im=>{"use strict";Object.defineProperty(im,"__esModule",{value:!0});var sC=Ts(),rm=class extends sC.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:um|von)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|bis)\\s*"}extractPrimaryTimeComponents(t,e){return e[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(t,e)}};im.default=rm});var tl=x(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.parseTimeUnits=Qe.TIME_UNITS_PATTERN=Qe.parseYear=Qe.YEAR_PATTERN=Qe.parseNumberPattern=Qe.NUMBER_PATTERN=Qe.TIME_UNIT_DICTIONARY=Qe.INTEGER_WORD_DICTIONARY=Qe.MONTH_DICTIONARY=Qe.WEEKDAY_DICTIONARY=void 0;var sm=Ke(),aC=Ct();Qe.WEEKDAY_DICTIONARY={sonntag:0,so:0,montag:1,mo:1,dienstag:2,di:2,mittwoch:3,mi:3,donnerstag:4,do:4,freitag:5,fr:5,samstag:6,sa:6};Qe.MONTH_DICTIONARY={januar:1,j\u00E4nner:1,janner:1,jan:1,"jan.":1,februar:2,feber:2,feb:2,"feb.":2,m\u00E4rz:3,maerz:3,m\u00E4r:3,"m\xE4r.":3,mrz:3,"mrz.":3,april:4,apr:4,"apr.":4,mai:5,juni:6,jun:6,"jun.":6,juli:7,jul:7,"jul.":7,august:8,aug:8,"aug.":8,september:9,sep:9,"sep.":9,sept:9,"sept.":9,oktober:10,okt:10,"okt.":10,november:11,nov:11,"nov.":11,dezember:12,dez:12,"dez.":12};Qe.INTEGER_WORD_DICTIONARY={eins:1,eine:1,einem:1,einen:1,einer:1,zwei:2,drei:3,vier:4,f\u00FCnf:5,fuenf:5,sechs:6,sieben:7,acht:8,neun:9,zehn:10,elf:11,zw\u00F6lf:12,zwoelf:12};Qe.TIME_UNIT_DICTIONARY={sek:"second",sekunde:"second",sekunden:"second",min:"minute",minute:"minute",minuten:"minute",h:"hour",std:"hour",stunde:"hour",stunden:"hour",tag:"d",tage:"d",tagen:"d",woche:"week",wochen:"week",monat:"month",monate:"month",monaten:"month",monats:"month",quartal:"quarter",quartals:"quarter",quartale:"quarter",quartalen:"quarter",a:"year",j:"year",jr:"year",jahr:"year",jahre:"year",jahren:"year",jahres:"year"};Qe.NUMBER_PATTERN=`(?:${sm.matchAnyPattern(Qe.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s*an?)?|an?\\b(?:\\s*few)?|few|several|a?\\s*couple\\s*(?:of)?)`;function c_(n){let t=n.toLowerCase();return Qe.INTEGER_WORD_DICTIONARY[t]!==void 0?Qe.INTEGER_WORD_DICTIONARY[t]:t==="a"||t==="an"?1:t.match(/few/)?3:t.match(/half/)?.5:t.match(/couple/)?2:t.match(/several/)?7:parseFloat(t)}Qe.parseNumberPattern=c_;Qe.YEAR_PATTERN="(?:[0-9]{1,4}(?:\\s*[vn]\\.?\\s*(?:C(?:hr)?|(?:u\\.?|d\\.?(?:\\s*g\\.?)?)?\\s*Z)\\.?|\\s*(?:u\\.?|d\\.?(?:\\s*g\\.)?)\\s*Z\\.?)?)";function oC(n){if(/v/i.test(n))return-parseInt(n.replace(/[^0-9]+/gi,""));if(/n/i.test(n))return parseInt(n.replace(/[^0-9]+/gi,""));if(/z/i.test(n))return parseInt(n.replace(/[^0-9]+/gi,""));let t=parseInt(n);return aC.findMostLikelyADYear(t)}Qe.parseYear=oC;var d_=`(${Qe.NUMBER_PATTERN})\\s{0,5}(${sm.matchAnyPattern(Qe.TIME_UNIT_DICTIONARY)})\\s{0,5}`,u_=new RegExp(d_,"i");Qe.TIME_UNITS_PATTERN=sm.repeatedTimeunitPattern("",d_);function lC(n){let t={},e=n,r=u_.exec(e);for(;r;)uC(t,r),e=e.substring(r[0].length),r=u_.exec(e);return t}Qe.parseTimeUnits=lC;function uC(n,t){let e=c_(t[1]),r=Qe.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var p_=x(om=>{"use strict";Object.defineProperty(om,"__esModule",{value:!0});var f_=tl(),cC=Ke(),dC=re(),fC=vs(),pC=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:a[mn]\\s*?)?(?:(diese[mn]|letzte[mn]|n(?:\xE4|ae)chste[mn])\\s*)?(${cC.matchAnyPattern(f_.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(diese|letzte|n(?:\xE4|ae)chste)\\s*woche)?(?=\\W|$)`,"i"),mC=1,hC=3,gC=2,am=class extends dC.AbstractParserWithWordBoundaryChecking{innerPattern(){return pC}innerExtract(t,e){let r=e[gC].toLowerCase(),i=f_.WEEKDAY_DICTIONARY[r],s=e[mC],a=e[hC],o=s||a;o=o||"",o=o.toLowerCase();let l=null;o.match(/letzte/)?l="last":o.match(/chste/)?l="next":o.match(/diese/)&&(l="this");let u=fC.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};om.default=am});var y_=x(lm=>{"use strict";Object.defineProperty(lm,"__esModule",{value:!0});var Li=ht(),yC=new RegExp("(^|\\s|T)(?:(?:um|von)\\s*)?(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s)?)?(?:\\s*Uhr)?(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?(?=\\W|$)","i"),bC=new RegExp("^\\s*(\\-|\\\u2013|\\~|\\\u301C|bis(?:\\s+um)?|\\?)\\s*(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s)?)?(?:\\s*Uhr)?(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?(?=\\W|$)","i"),TC=2,m_=3,h_=4,g_=5,Ca=class{pattern(t){return yC}extract(t,e){let r=t.createParsingResult(e.index+e[1].length,e[0].substring(e[1].length));if(r.text.match(/^\d{4}$/)||(r.start=Ca.extractTimeComponent(r.start.clone(),e),!r.start))return e.index+=e[0].length,null;let i=t.text.substring(e.index+e[0].length),s=bC.exec(i);return s&&(r.end=Ca.extractTimeComponent(r.start.clone(),s),r.end&&(r.text+=s[0])),r}static extractTimeComponent(t,e){let r=0,i=0,s=null;if(r=parseInt(e[TC]),e[m_]!=null&&(i=parseInt(e[m_])),i>=60||r>24)return null;if(r>=12&&(s=Li.Meridiem.PM),e[g_]!=null){if(r>12)return null;let a=e[g_].toLowerCase();a.match(/morgen|vormittag/)&&(s=Li.Meridiem.AM,r==12&&(r=0)),a.match(/nachmittag|abend/)&&(s=Li.Meridiem.PM,r!=12&&(r+=12)),a.match(/nacht/)&&(r==12?(s=Li.Meridiem.AM,r=0):r<6?s=Li.Meridiem.AM:(s=Li.Meridiem.PM,r+=12))}if(t.assign("hour",r),t.assign("minute",i),s!==null?t.assign("meridiem",s):r<12?t.imply("meridiem",Li.Meridiem.AM):t.imply("meridiem",Li.Meridiem.PM),e[h_]!=null){let a=parseInt(e[h_]);if(a>=60)return null;t.assign("second",a)}return t}};lm.default=Ca});var b_=x(nl=>{"use strict";var _C=nl&&nl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(nl,"__esModule",{value:!0});var vC=_C(Wr()),um=class extends vC.default{patternBetween(){return/^\s*(bis(?:\s*(?:am|zum))?|-)\s*$/i}};nl.default=um});var T_=x(rl=>{"use strict";var wC=rl&&rl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(rl,"__esModule",{value:!0});var kC=wC(si()),cm=class extends kC.default{patternBetween(){return new RegExp("^\\s*(T|um|am|,|-)?\\s*$")}};rl.default=cm});var dm=x(sl=>{"use strict";var SC=sl&&sl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(sl,"__esModule",{value:!0});var EC=SC(Ue()),ks=ht(),DC=re(),xC=$n(),OC=qn(),il=class extends DC.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(diesen)?\s*(morgen|vormittag|mittags?|nachmittag|abend|nacht|mitternacht)(?=\W|$)/i}innerExtract(t,e){let r=EC.default(t.refDate),i=e[2].toLowerCase(),s=t.createParsingComponents();return xC.implySimilarTime(s,r),il.extractTimeComponents(s,i)}static extractTimeComponents(t,e){switch(e){case"morgen":t.imply("hour",6),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.AM);break;case"vormittag":t.imply("hour",9),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.AM);break;case"mittag":case"mittags":t.imply("hour",12),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.AM);break;case"nachmittag":t.imply("hour",15),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.PM);break;case"abend":t.imply("hour",18),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.PM);break;case"nacht":t.imply("hour",22),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.PM);break;case"mitternacht":t.get("hour")>1&&(t=OC.addImpliedTimeUnits(t,{day:1})),t.imply("hour",0),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.AM);break}return t}};sl.default=il});var w_=x(br=>{"use strict";var CC=br&&br.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),MC=br&&br.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),RC=br&&br.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&CC(t,n,e);return MC(t,n),t},v_=br&&br.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(br,"__esModule",{value:!0});var AC=v_(Ue()),PC=re(),Ss=$n(),NC=v_(dm()),__=RC(li()),IC=new RegExp("(jetzt|heute|morgen|\xFCbermorgen|uebermorgen|gestern|vorgestern|letzte\\s*nacht)(?:\\s*(morgen|vormittag|mittags?|nachmittag|abend|nacht|mitternacht))?(?=\\W|$)","i"),FC=1,LC=2,fm=class extends PC.AbstractParserWithWordBoundaryChecking{innerPattern(t){return IC}innerExtract(t,e){let r=AC.default(t.refDate),i=(e[FC]||"").toLowerCase(),s=(e[LC]||"").toLowerCase(),a=t.createParsingComponents();switch(i){case"jetzt":a=__.now(t.reference);break;case"heute":a=__.today(t.reference);break;case"morgen":Ss.assignTheNextDay(a,r);break;case"\xFCbermorgen":case"uebermorgen":r=r.add(1,"day"),Ss.assignTheNextDay(a,r);break;case"gestern":r=r.add(-1,"day"),Ss.assignSimilarDate(a,r),Ss.implySimilarTime(a,r);break;case"vorgestern":r=r.add(-2,"day"),Ss.assignSimilarDate(a,r),Ss.implySimilarTime(a,r);break;default:i.match(/letzte\s*nacht/)&&(r.hour()>6&&(r=r.add(-1,"day")),Ss.assignSimilarDate(a,r),a.imply("hour",0));break}return s&&(a=NC.default.extractTimeComponents(a,s)),a}};br.default=fm});var O_=x(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});var UC=Ct(),D_=tl(),x_=tl(),YC=Ke(),jC=re(),WC=new RegExp(`(?:am\\s*?)?(?:den\\s*?)?([0-9]{1,2})\\.(?:\\s*(?:bis(?:\\s*(?:am|zum))?|\\-|\\\u2013|\\s)\\s*([0-9]{1,2})\\.?)?\\s*(${YC.matchAnyPattern(D_.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s*)(${x_.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),k_=1,S_=2,$C=3,E_=4,pm=class extends jC.AbstractParserWithWordBoundaryChecking{innerPattern(){return WC}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=D_.MONTH_DICTIONARY[e[$C].toLowerCase()],s=parseInt(e[k_]);if(s>31)return e.index=e.index+e[k_].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[E_]){let a=x_.parseYear(e[E_]);r.start.assign("year",a)}else{let a=UC.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[S_]){let a=parseInt(e[S_]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};mm.default=pm});var C_=x(gm=>{"use strict";Object.defineProperty(gm,"__esModule",{value:!0});var tc=tl(),qC=nt(),HC=re(),GC=qn(),BC=Ke(),hm=class extends HC.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`(?:\\s*((?:n\xE4chste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?|vor|in)\\s*)?(${tc.NUMBER_PATTERN})?(?:\\s*(n\xE4chste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?)?\\s*(${BC.matchAnyPattern(tc.TIME_UNIT_DICTIONARY)})`,"i")}innerExtract(t,e){let r=e[2]?tc.parseNumberPattern(e[2]):1,i=tc.TIME_UNIT_DICTIONARY[e[4].toLowerCase()],s={};s[i]=r;let a=e[1]||e[3]||"";if(a=a.toLowerCase(),!!a)return(/vor/.test(a)||/letzte/.test(a)||/vergangen/.test(a))&&(s=GC.reverseTimeUnits(s)),qC.ParsingComponents.createRelativeFromReference(t.reference,s)}};gm.default=hm});var A_=x(Tt=>{"use strict";var Tr=Tt&&Tt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Tt,"__esModule",{value:!0});Tt.createConfiguration=Tt.createCasualConfiguration=Tt.parseDate=Tt.parse=Tt.strict=Tt.casual=void 0;var VC=ai(),M_=yr(),zC=Tr(ws()),KC=Tr(Up()),QC=Tr(l_()),XC=Tr(p_()),ZC=Tr(y_()),JC=Tr(b_()),eM=Tr(T_()),tM=Tr(w_()),nM=Tr(dm()),rM=Tr(O_()),iM=Tr(C_());Tt.casual=new M_.Chrono(R_());Tt.strict=new M_.Chrono(ym(!0));function sM(n,t,e){return Tt.casual.parse(n,t,e)}Tt.parse=sM;function aM(n,t,e){return Tt.casual.parseDate(n,t,e)}Tt.parseDate=aM;function R_(n=!0){let t=ym(!1,n);return t.parsers.unshift(new nM.default),t.parsers.unshift(new tM.default),t.parsers.unshift(new iM.default),t}Tt.createCasualConfiguration=R_;function ym(n=!0,t=!0){return VC.includeCommonConfiguration({parsers:[new KC.default,new zC.default(t),new QC.default,new ZC.default,new rM.default,new XC.default],refiners:[new JC.default,new eM.default]},n)}Tt.createConfiguration=ym});var N_=x(_r=>{"use strict";var oM=_r&&_r.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),lM=_r&&_r.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),uM=_r&&_r.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&oM(t,n,e);return lM(t,n),t},cM=_r&&_r.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(_r,"__esModule",{value:!0});var dM=cM(Ue()),fM=ht(),pM=re(),P_=$n(),nc=uM(li()),bm=class extends pM.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(maintenant|aujourd'hui|demain|hier|cette\s*nuit|la\s*veille)(?=\W|$)/i}innerExtract(t,e){let r=dM.default(t.refDate),i=e[0].toLowerCase(),s=t.createParsingComponents();switch(i){case"maintenant":return nc.now(t.reference);case"aujourd'hui":return nc.today(t.reference);case"hier":return nc.yesterday(t.reference);case"demain":return nc.tomorrow(t.reference);default:i.match(/cette\s*nuit/)?(P_.assignSimilarDate(s,r),s.imply("hour",22),s.imply("meridiem",fM.Meridiem.PM)):i.match(/la\s*veille/)&&(r=r.add(-1,"day"),P_.assignSimilarDate(s,r),s.imply("hour",0))}return s}};_r.default=bm});var I_=x(_m=>{"use strict";Object.defineProperty(_m,"__esModule",{value:!0});var al=ht(),mM=re(),Tm=class extends mM.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(cet?)?\s*(matin|soir|après-midi|aprem|a midi|à minuit)(?=\W|$)/i}innerExtract(t,e){let r=e[2].toLowerCase(),i=t.createParsingComponents();switch(r){case"apr\xE8s-midi":case"aprem":i.imply("hour",14),i.imply("minute",0),i.imply("meridiem",al.Meridiem.PM);break;case"soir":i.imply("hour",18),i.imply("minute",0),i.imply("meridiem",al.Meridiem.PM);break;case"matin":i.imply("hour",8),i.imply("minute",0),i.imply("meridiem",al.Meridiem.AM);break;case"a midi":i.imply("hour",12),i.imply("minute",0),i.imply("meridiem",al.Meridiem.AM);break;case"\xE0 minuit":i.imply("hour",0),i.imply("meridiem",al.Meridiem.AM);break}return i}};_m.default=Tm});var F_=x(wm=>{"use strict";Object.defineProperty(wm,"__esModule",{value:!0});var hM=Ts(),vm=class extends hM.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:[\xE0a])\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|[\xE0a]|\\?)\\s*"}extractPrimaryTimeComponents(t,e){return e[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(t,e)}};wm.default=vm});var L_=x(ol=>{"use strict";var gM=ol&&ol.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ol,"__esModule",{value:!0});var yM=gM(si()),km=class extends yM.default{patternBetween(){return new RegExp("^\\s*(T|\xE0|a|vers|de|,|-)?\\s*$")}};ol.default=km});var U_=x(ll=>{"use strict";var bM=ll&&ll.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ll,"__esModule",{value:!0});var TM=bM(Wr()),Sm=class extends TM.default{patternBetween(){return/^\s*(à|a|-)\s*$/i}};ll.default=Sm});var Ui=x(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.parseTimeUnits=Ye.TIME_UNITS_PATTERN=Ye.parseYear=Ye.YEAR_PATTERN=Ye.parseOrdinalNumberPattern=Ye.ORDINAL_NUMBER_PATTERN=Ye.parseNumberPattern=Ye.NUMBER_PATTERN=Ye.TIME_UNIT_DICTIONARY=Ye.INTEGER_WORD_DICTIONARY=Ye.MONTH_DICTIONARY=Ye.WEEKDAY_DICTIONARY=void 0;var Em=Ke();Ye.WEEKDAY_DICTIONARY={dimanche:0,dim:0,lundi:1,lun:1,mardi:2,mar:2,mercredi:3,mer:3,jeudi:4,jeu:4,vendredi:5,ven:5,samedi:6,sam:6};Ye.MONTH_DICTIONARY={janvier:1,jan:1,"jan.":1,f\u00E9vrier:2,f\u00E9v:2,"f\xE9v.":2,fevrier:2,fev:2,"fev.":2,mars:3,mar:3,"mar.":3,avril:4,avr:4,"avr.":4,mai:5,juin:6,jun:6,juillet:7,juil:7,jul:7,"jul.":7,ao\u00FBt:8,aout:8,septembre:9,sep:9,"sep.":9,sept:9,"sept.":9,octobre:10,oct:10,"oct.":10,novembre:11,nov:11,"nov.":11,d\u00E9cembre:12,decembre:12,dec:12,"dec.":12};Ye.INTEGER_WORD_DICTIONARY={un:1,deux:2,trois:3,quatre:4,cinq:5,six:6,sept:7,huit:8,neuf:9,dix:10,onze:11,douze:12,treize:13};Ye.TIME_UNIT_DICTIONARY={sec:"second",seconde:"second",secondes:"second",min:"minute",mins:"minute",minute:"minute",minutes:"minute",h:"hour",hr:"hour",hrs:"hour",heure:"hour",heures:"hour",jour:"d",jours:"d",semaine:"week",semaines:"week",mois:"month",trimestre:"quarter",trimestres:"quarter",ans:"year",ann\u00E9e:"year",ann\u00E9es:"year"};Ye.NUMBER_PATTERN=`(?:${Em.matchAnyPattern(Ye.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|une?\\b|quelques?|demi-?)`;function j_(n){let t=n.toLowerCase();return Ye.INTEGER_WORD_DICTIONARY[t]!==void 0?Ye.INTEGER_WORD_DICTIONARY[t]:t==="une"||t==="un"?1:t.match(/quelques?/)?3:t.match(/demi-?/)?.5:parseFloat(t)}Ye.parseNumberPattern=j_;Ye.ORDINAL_NUMBER_PATTERN="(?:[0-9]{1,2}(?:er)?)";function _M(n){let t=n.toLowerCase();return t=t.replace(/(?:er)$/i,""),parseInt(t)}Ye.parseOrdinalNumberPattern=_M;Ye.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s*(?:AC|AD|p\\.\\s*C(?:hr?)?\\.\\s*n\\.)|[1-2][0-9]{3}|[5-9][0-9])";function vM(n){if(/AC/i.test(n))return n=n.replace(/BC/i,""),-parseInt(n);if(/AD/i.test(n)||/C/i.test(n))return n=n.replace(/[^\d]+/i,""),parseInt(n);let t=parseInt(n);return t<100&&(t>50?t=t+1900:t=t+2e3),t}Ye.parseYear=vM;var W_=`(${Ye.NUMBER_PATTERN})\\s{0,5}(${Em.matchAnyPattern(Ye.TIME_UNIT_DICTIONARY)})\\s{0,5}`,Y_=new RegExp(W_,"i");Ye.TIME_UNITS_PATTERN=Em.repeatedTimeunitPattern("",W_);function wM(n){let t={},e=n,r=Y_.exec(e);for(;r;)kM(t,r),e=e.substring(r[0].length),r=Y_.exec(e);return t}Ye.parseTimeUnits=wM;function kM(n,t){let e=j_(t[1]),r=Ye.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var q_=x(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});var $_=Ui(),SM=Ke(),EM=re(),DM=vs(),xM=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(?:ce)\\s*)?(${SM.matchAnyPattern($_.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(dernier|prochain)\\s*)?(?=\\W|\\d|$)`,"i"),OM=1,CM=2,Dm=class extends EM.AbstractParserWithWordBoundaryChecking{innerPattern(){return xM}innerExtract(t,e){let r=e[OM].toLowerCase(),i=$_.WEEKDAY_DICTIONARY[r];if(i===void 0)return null;let s=e[CM];s=s||"",s=s.toLowerCase();let a=null;s=="dernier"?a="last":s=="prochain"&&(a="next");let o=DM.toDayJSWeekday(t.refDate,i,a);return t.createParsingComponents().assign("weekday",i).imply("day",o.date()).imply("month",o.month()+1).imply("year",o.year())}};xm.default=Dm});var V_=x(Om=>{"use strict";Object.defineProperty(Om,"__esModule",{value:!0});var ul=ht(),MM=new RegExp("(^|\\s|T)(?:(?:[\xE0a])\\s*)?(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s|:)?)?(?:\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?(?=\\W|$)","i"),RM=new RegExp("^\\s*(\\-|\\\u2013|\\~|\\\u301C|[\xE0a]|\\?)\\s*(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s|:)?)?(?:\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?(?=\\W|$)","i"),AM=2,H_=3,G_=4,B_=5,Ma=class{pattern(t){return MM}extract(t,e){let r=t.createParsingResult(e.index+e[1].length,e[0].substring(e[1].length));if(r.text.match(/^\d{4}$/)||(r.start=Ma.extractTimeComponent(r.start.clone(),e),!r.start))return e.index+=e[0].length,null;let i=t.text.substring(e.index+e[0].length),s=RM.exec(i);return s&&(r.end=Ma.extractTimeComponent(r.start.clone(),s),r.end&&(r.text+=s[0])),r}static extractTimeComponent(t,e){let r=0,i=0,s=null;if(r=parseInt(e[AM]),e[H_]!=null&&(i=parseInt(e[H_])),i>=60||r>24)return null;if(r>=12&&(s=ul.Meridiem.PM),e[B_]!=null){if(r>12)return null;let a=e[B_][0].toLowerCase();a=="a"&&(s=ul.Meridiem.AM,r==12&&(r=0)),a=="p"&&(s=ul.Meridiem.PM,r!=12&&(r+=12))}if(t.assign("hour",r),t.assign("minute",i),s!==null?t.assign("meridiem",s):r<12?t.imply("meridiem",ul.Meridiem.AM):t.imply("meridiem",ul.Meridiem.PM),e[G_]!=null){let a=parseInt(e[G_]);if(a>=60)return null;t.assign("second",a)}return t}};Om.default=Ma});var J_=x(Mm=>{"use strict";Object.defineProperty(Mm,"__esModule",{value:!0});var PM=Ct(),X_=Ui(),Z_=Ui(),rc=Ui(),NM=Ke(),IM=re(),FM=new RegExp(`(?:on\\s*?)?(${rc.ORDINAL_NUMBER_PATTERN})(?:\\s*(?:au|\\-|\\\u2013|jusqu'au?|\\s)\\s*(${rc.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s*(?:de)?\\s*)(${NM.matchAnyPattern(X_.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s*)(${Z_.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),z_=1,K_=2,LM=3,Q_=4,Cm=class extends IM.AbstractParserWithWordBoundaryChecking{innerPattern(){return FM}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=X_.MONTH_DICTIONARY[e[LM].toLowerCase()],s=rc.parseOrdinalNumberPattern(e[z_]);if(s>31)return e.index=e.index+e[z_].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[Q_]){let a=Z_.parseYear(e[Q_]);r.start.assign("year",a)}else{let a=PM.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[K_]){let a=rc.parseOrdinalNumberPattern(e[K_]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};Mm.default=Cm});var tv=x(Am=>{"use strict";Object.defineProperty(Am,"__esModule",{value:!0});var ev=Ui(),UM=nt(),YM=re(),jM=qn(),Rm=class extends YM.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`il y a\\s*(${ev.TIME_UNITS_PATTERN})(?=(?:\\W|$))`,"i")}innerExtract(t,e){let r=ev.parseTimeUnits(e[1]),i=jM.reverseTimeUnits(r);return UM.ParsingComponents.createRelativeFromReference(t.reference,i)}};Am.default=Rm});var rv=x(Nm=>{"use strict";Object.defineProperty(Nm,"__esModule",{value:!0});var nv=Ui(),WM=nt(),$M=re(),Pm=class extends $M.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp(`(?:dans|en|pour|pendant|de)\\s*(${nv.TIME_UNITS_PATTERN})(?=\\W|$)`,"i")}innerExtract(t,e){let r=nv.parseTimeUnits(e[1]);return WM.ParsingComponents.createRelativeFromReference(t.reference,r)}};Nm.default=Pm});var iv=x(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});var ic=Ui(),qM=nt(),HM=re(),GM=qn(),BM=Ke(),Im=class extends HM.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`(?:les?|la|l'|du|des?)\\s*(${ic.NUMBER_PATTERN})?(?:\\s*(prochaine?s?|derni[e\xE8]re?s?|pass[\xE9e]e?s?|pr[\xE9e]c[\xE9e]dents?|suivante?s?))?\\s*(${BM.matchAnyPattern(ic.TIME_UNIT_DICTIONARY)})(?:\\s*(prochaine?s?|derni[e\xE8]re?s?|pass[\xE9e]e?s?|pr[\xE9e]c[\xE9e]dents?|suivante?s?))?`,"i")}innerExtract(t,e){let r=e[1]?ic.parseNumberPattern(e[1]):1,i=ic.TIME_UNIT_DICTIONARY[e[3].toLowerCase()],s={};s[i]=r;let a=e[2]||e[4]||"";if(a=a.toLowerCase(),!!a)return(/derni[eè]re?s?/.test(a)||/pass[ée]e?s?/.test(a)||/pr[ée]c[ée]dents?/.test(a))&&(s=GM.reverseTimeUnits(s)),qM.ParsingComponents.createRelativeFromReference(t.reference,s)}};Fm.default=Im});var ov=x(_t=>{"use strict";var Hn=_t&&_t.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(_t,"__esModule",{value:!0});_t.createConfiguration=_t.createCasualConfiguration=_t.parseDate=_t.parse=_t.strict=_t.casual=void 0;var VM=ai(),sv=yr(),zM=Hn(N_()),KM=Hn(I_()),QM=Hn(ws()),XM=Hn(F_()),ZM=Hn(L_()),JM=Hn(U_()),eR=Hn(q_()),tR=Hn(V_()),nR=Hn(J_()),rR=Hn(tv()),iR=Hn(rv()),sR=Hn(iv());_t.casual=new sv.Chrono(av());_t.strict=new sv.Chrono(Lm(!0));function aR(n,t,e){return _t.casual.parse(n,t,e)}_t.parse=aR;function oR(n,t,e){return _t.casual.parseDate(n,t,e)}_t.parseDate=oR;function av(n=!0){let t=Lm(!1,n);return t.parsers.unshift(new zM.default),t.parsers.unshift(new KM.default),t.parsers.unshift(new sR.default),t}_t.createCasualConfiguration=av;function Lm(n=!0,t=!0){return VM.includeCommonConfiguration({parsers:[new QM.default(t),new nR.default,new XM.default,new tR.default,new rR.default,new iR.default,new eR.default],refiners:[new ZM.default,new JM.default]},n)}_t.createConfiguration=Lm});var lv=x(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.toHankaku=void 0;function lR(n){return String(n).replace(/\u2019/g,"'").replace(/\u201D/g,'"').replace(/\u3000/g," ").replace(/\uFFE5/g,"\xA5").replace(/[\uFF01\uFF03-\uFF06\uFF08\uFF09\uFF0C-\uFF19\uFF1C-\uFF1F\uFF21-\uFF3B\uFF3D\uFF3F\uFF41-\uFF5B\uFF5D\uFF5E]/g,uR)}sc.toHankaku=lR;function uR(n){return String.fromCharCode(n.charCodeAt(0)-65248)}});var cv=x(cl=>{"use strict";var cR=cl&&cl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(cl,"__esModule",{value:!0});var Um=lv(),dR=Ct(),fR=cR(Ue()),pR=/(?:(?:([同今本])|((昭和|平成|令和)?([0-90-9]{1,4}|元)))年\s*)?([0-90-9]{1,2})月\s*([0-90-9]{1,2})日/i,uv=1,mR=2,Ym=3,hR=4,gR=5,yR=6,jm=class{pattern(){return pR}extract(t,e){let r=parseInt(Um.toHankaku(e[gR])),i=parseInt(Um.toHankaku(e[yR])),s=t.createParsingComponents({day:i,month:r});if(e[uv]&&e[uv].match("\u540C|\u4ECA|\u672C")){let a=fR.default(t.refDate);s.assign("year",a.year())}if(e[mR]){let a=e[hR],o=a=="\u5143"?1:parseInt(Um.toHankaku(a));e[Ym]=="\u4EE4\u548C"?o+=2018:e[Ym]=="\u5E73\u6210"?o+=1988:e[Ym]=="\u662D\u548C"&&(o+=1925),s.assign("year",o)}else{let a=dR.findYearClosestToRef(t.refDate,i,r);s.imply("year",a)}return s}};cl.default=jm});var dv=x(dl=>{"use strict";var bR=dl&&dl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(dl,"__esModule",{value:!0});var TR=bR(Wr()),Wm=class extends TR.default{patternBetween(){return/^\s*(から|ー|-)\s*$/i}};dl.default=Wm});var pv=x(vr=>{"use strict";var _R=vr&&vr.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),vR=vr&&vr.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),wR=vr&&vr.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&_R(t,n,e);return vR(t,n),t},kR=vr&&vr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(vr,"__esModule",{value:!0});var SR=kR(Ue()),fv=ht(),$m=wR(li()),ER=/今日|当日|昨日|明日|今夜|今夕|今晩|今朝/i,qm=class{pattern(){return ER}extract(t,e){let r=e[0],i=SR.default(t.refDate),s=t.createParsingComponents();switch(r){case"\u6628\u65E5":return $m.yesterday(t.reference);case"\u660E\u65E5":return $m.tomorrow(t.reference);case"\u4ECA\u65E5":case"\u5F53\u65E5":return $m.today(t.reference)}return r=="\u4ECA\u591C"||r=="\u4ECA\u5915"||r=="\u4ECA\u6669"?(s.imply("hour",22),s.assign("meridiem",fv.Meridiem.PM)):r.match("\u4ECA\u671D")&&(s.imply("hour",6),s.assign("meridiem",fv.Meridiem.AM)),s.assign("day",i.date()),s.assign("month",i.month()+1),s.assign("year",i.year()),s}};vr.default=qm});var gv=x(vt=>{"use strict";var Hm=vt&&vt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(vt,"__esModule",{value:!0});vt.createConfiguration=vt.createCasualConfiguration=vt.parseDate=vt.parse=vt.strict=vt.casual=void 0;var DR=Hm(cv()),xR=Hm(dv()),OR=Hm(pv()),mv=yr();vt.casual=new mv.Chrono(hv());vt.strict=new mv.Chrono(Gm());function CR(n,t,e){return vt.casual.parse(n,t,e)}vt.parse=CR;function MR(n,t,e){return vt.casual.parseDate(n,t,e)}vt.parseDate=MR;function hv(){let n=Gm();return n.parsers.unshift(new OR.default),n}vt.createCasualConfiguration=hv;function Gm(){return{parsers:[new DR.default],refiners:[new xR.default]}}vt.createConfiguration=Gm});var ac=x(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.parseYear=qr.YEAR_PATTERN=qr.MONTH_DICTIONARY=qr.WEEKDAY_DICTIONARY=void 0;qr.WEEKDAY_DICTIONARY={domingo:0,dom:0,segunda:1,"segunda-feira":1,seg:1,ter\u00E7a:2,"ter\xE7a-feira":2,ter:2,quarta:3,"quarta-feira":3,qua:3,quinta:4,"quinta-feira":4,qui:4,sexta:5,"sexta-feira":5,sex:5,s\u00E1bado:6,sabado:6,sab:6};qr.MONTH_DICTIONARY={janeiro:1,jan:1,"jan.":1,fevereiro:2,fev:2,"fev.":2,mar\u00E7o:3,mar:3,"mar.":3,abril:4,abr:4,"abr.":4,maio:5,mai:5,"mai.":5,junho:6,jun:6,"jun.":6,julho:7,jul:7,"jul.":7,agosto:8,ago:8,"ago.":8,setembro:9,set:9,"set.":9,outubro:10,out:10,"out.":10,novembro:11,nov:11,"nov.":11,dezembro:12,dez:12,"dez.":12};qr.YEAR_PATTERN="[0-9]{1,4}(?![^\\s]\\d)(?:\\s*[a|d]\\.?\\s*c\\.?|\\s*a\\.?\\s*d\\.?)?";function RR(n){if(n.match(/^[0-9]{1,4}$/)){let t=parseInt(n);return t<100&&(t>50?t=t+1900:t=t+2e3),t}return n.match(/a\.?\s*c\.?/i)?(n=n.replace(/a\.?\s*c\.?/i,""),-parseInt(n)):parseInt(n)}qr.parseYear=RR});var bv=x(Vm=>{"use strict";Object.defineProperty(Vm,"__esModule",{value:!0});var yv=ac(),AR=Ke(),PR=re(),NR=vs(),IR=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(este|esta|passado|pr[o\xF3]ximo)\\s*)?(${AR.matchAnyPattern(yv.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(este|esta|passado|pr[\xF3o]ximo)\\s*semana)?(?=\\W|\\d|$)`,"i"),FR=1,LR=2,UR=3,Bm=class extends PR.AbstractParserWithWordBoundaryChecking{innerPattern(){return IR}innerExtract(t,e){let r=e[LR].toLowerCase(),i=yv.WEEKDAY_DICTIONARY[r];if(i===void 0)return null;let s=e[FR],a=e[UR],o=s||a||"";o=o.toLowerCase();let l=null;o=="passado"?l="this":o=="pr\xF3ximo"||o=="proximo"?l="next":o=="este"&&(l="this");let u=NR.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};Vm.default=Bm});var Tv=x(Km=>{"use strict";Object.defineProperty(Km,"__esModule",{value:!0});var YR=Ts(),zm=class extends YR.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:ao?|\xE0s?|das|da|de|do)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|a(?:o)?|\\?)\\s*"}};Km.default=zm});var _v=x(fl=>{"use strict";var jR=fl&&fl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(fl,"__esModule",{value:!0});var WR=jR(si()),Qm=class extends WR.default{patternBetween(){return new RegExp("^\\s*(?:,|\xE0)?\\s*$")}};fl.default=Qm});var vv=x(pl=>{"use strict";var $R=pl&&pl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(pl,"__esModule",{value:!0});var qR=$R(Wr()),Xm=class extends qR.default{patternBetween(){return/^\s*(?:-)\s*$/i}};pl.default=Xm});var xv=x(Jm=>{"use strict";Object.defineProperty(Jm,"__esModule",{value:!0});var HR=Ct(),Ev=ac(),Dv=ac(),GR=Ke(),BR=re(),VR=new RegExp(`([0-9]{1,2})(?:\xBA|\xAA|\xB0)?(?:\\s*(?:desde|de|\\-|\\\u2013|ao?|\\s)\\s*([0-9]{1,2})(?:\xBA|\xAA|\xB0)?)?\\s*(?:de)?\\s*(?:-|/|\\s*(?:de|,)?\\s*)(${GR.matchAnyPattern(Ev.MONTH_DICTIONARY)})(?:\\s*(?:de|,)?\\s*(${Dv.YEAR_PATTERN}))?(?=\\W|$)`,"i"),wv=1,kv=2,zR=3,Sv=4,Zm=class extends BR.AbstractParserWithWordBoundaryChecking{innerPattern(){return VR}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=Ev.MONTH_DICTIONARY[e[zR].toLowerCase()],s=parseInt(e[wv]);if(s>31)return e.index=e.index+e[wv].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[Sv]){let a=Dv.parseYear(e[Sv]);r.start.assign("year",a)}else{let a=HR.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[kv]){let a=parseInt(e[kv]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};Jm.default=Zm});var Ov=x(ui=>{"use strict";var KR=ui&&ui.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),QR=ui&&ui.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),XR=ui&&ui.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&KR(t,n,e);return QR(t,n),t};Object.defineProperty(ui,"__esModule",{value:!0});var ZR=re(),oc=XR(li()),eh=class extends ZR.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(agora|hoje|amanha|amanhã|ontem)(?=\W|$)/i}innerExtract(t,e){let r=e[0].toLowerCase(),i=t.createParsingComponents();switch(r){case"agora":return oc.now(t.reference);case"hoje":return oc.today(t.reference);case"amanha":case"amanh\xE3":return oc.tomorrow(t.reference);case"ontem":return oc.yesterday(t.reference)}return i}};ui.default=eh});var Cv=x(ml=>{"use strict";var JR=ml&&ml.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ml,"__esModule",{value:!0});var lc=ht(),eA=re(),tA=$n(),nA=JR(Ue()),th=class extends eA.AbstractParserWithWordBoundaryChecking{innerPattern(){return/(?:esta\s*)?(manha|manhã|tarde|meia-noite|meio-dia|noite)(?=\W|$)/i}innerExtract(t,e){let r=nA.default(t.refDate),i=t.createParsingComponents();switch(e[1].toLowerCase()){case"tarde":i.imply("meridiem",lc.Meridiem.PM),i.imply("hour",15);break;case"noite":i.imply("meridiem",lc.Meridiem.PM),i.imply("hour",22);break;case"manha":case"manh\xE3":i.imply("meridiem",lc.Meridiem.AM),i.imply("hour",6);break;case"meia-noite":tA.assignTheNextDay(i,r),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"meio-dia":i.imply("meridiem",lc.Meridiem.AM),i.imply("hour",12);break}return i}};ml.default=th});var Av=x(wt=>{"use strict";var Yi=wt&&wt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(wt,"__esModule",{value:!0});wt.createConfiguration=wt.createCasualConfiguration=wt.parseDate=wt.parse=wt.strict=wt.casual=void 0;var rA=ai(),Mv=yr(),iA=Yi(ws()),sA=Yi(bv()),aA=Yi(Tv()),oA=Yi(_v()),lA=Yi(vv()),uA=Yi(xv()),cA=Yi(Ov()),dA=Yi(Cv());wt.casual=new Mv.Chrono(Rv());wt.strict=new Mv.Chrono(nh(!0));function fA(n,t,e){return wt.casual.parse(n,t,e)}wt.parse=fA;function pA(n,t,e){return wt.casual.parseDate(n,t,e)}wt.parseDate=pA;function Rv(n=!0){let t=nh(!1,n);return t.parsers.push(new cA.default),t.parsers.push(new dA.default),t}wt.createCasualConfiguration=Rv;function nh(n=!0,t=!0){return rA.includeCommonConfiguration({parsers:[new iA.default(t),new sA.default,new aA.default,new uA.default],refiners:[new oA.default,new lA.default]},n)}wt.createConfiguration=nh});var Pv=x(hl=>{"use strict";var mA=hl&&hl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(hl,"__esModule",{value:!0});var hA=mA(Wr()),rh=class extends hA.default{patternBetween(){return/^\s*(tot|-)\s*$/i}};hl.default=rh});var Nv=x(gl=>{"use strict";var gA=gl&&gl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(gl,"__esModule",{value:!0});var yA=gA(si()),ih=class extends yA.default{patternBetween(){return new RegExp("^\\s*(om|na|voor|in de|,|-)?\\s*$")}};gl.default=ih});var Iv=x(ci=>{"use strict";var bA=ci&&ci.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),TA=ci&&ci.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),_A=ci&&ci.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&bA(t,n,e);return TA(t,n),t};Object.defineProperty(ci,"__esModule",{value:!0});var vA=re(),uc=_A(li()),sh=class extends vA.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(nu|vandaag|morgen|morgend|gisteren)(?=\W|$)/i}innerExtract(t,e){let r=e[0].toLowerCase(),i=t.createParsingComponents();switch(r){case"nu":return uc.now(t.reference);case"vandaag":return uc.today(t.reference);case"morgen":case"morgend":return uc.tomorrow(t.reference);case"gisteren":return uc.yesterday(t.reference)}return i}};ci.default=sh});var Fv=x(yl=>{"use strict";var wA=yl&&yl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(yl,"__esModule",{value:!0});var cc=ht(),kA=re(),SA=wA(Ue()),EA=$n(),DA=1,xA=2,ah=class extends kA.AbstractParserWithWordBoundaryChecking{innerPattern(){return/(deze)?\s*(namiddag|avond|middernacht|ochtend|middag|'s middags|'s avonds|'s ochtends)(?=\W|$)/i}innerExtract(t,e){let r=SA.default(t.refDate),i=t.createParsingComponents();switch(e[DA]==="deze"&&(i.assign("day",t.refDate.getDate()),i.assign("month",t.refDate.getMonth()+1),i.assign("year",t.refDate.getFullYear())),e[xA].toLowerCase()){case"namiddag":case"'s namiddags":i.imply("meridiem",cc.Meridiem.PM),i.imply("hour",15);break;case"avond":case"'s avonds'":i.imply("meridiem",cc.Meridiem.PM),i.imply("hour",20);break;case"middernacht":EA.assignTheNextDay(i,r),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"ochtend":case"'s ochtends":i.imply("meridiem",cc.Meridiem.AM),i.imply("hour",6);break;case"middag":case"'s middags":i.imply("meridiem",cc.Meridiem.AM),i.imply("hour",12);break}return i}};yl.default=ah});var Sn=x(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.parseTimeUnits=Pe.TIME_UNITS_PATTERN=Pe.parseYear=Pe.YEAR_PATTERN=Pe.parseOrdinalNumberPattern=Pe.ORDINAL_NUMBER_PATTERN=Pe.parseNumberPattern=Pe.NUMBER_PATTERN=Pe.TIME_UNIT_DICTIONARY=Pe.ORDINAL_WORD_DICTIONARY=Pe.INTEGER_WORD_DICTIONARY=Pe.MONTH_DICTIONARY=Pe.WEEKDAY_DICTIONARY=void 0;var dc=Ke(),OA=Ct();Pe.WEEKDAY_DICTIONARY={zondag:0,zon:0,"zon.":0,zo:0,"zo.":0,maandag:1,ma:1,"ma.":1,dinsdag:2,din:2,"din.":2,di:2,"di.":2,woensdag:3,woe:3,"woe.":3,wo:3,"wo.":3,donderdag:4,dond:4,"dond.":4,do:4,"do.":4,vrijdag:5,vrij:5,"vrij.":5,vr:5,"vr.":5,zaterdag:6,zat:6,"zat.":6,za:6,"za.":6};Pe.MONTH_DICTIONARY={januari:1,jan:1,"jan.":1,februari:2,feb:2,"feb.":2,maart:3,mar:3,"mar.":3,april:4,apr:4,"apr.":4,mei:5,juni:6,jun:6,"jun.":6,juli:7,jul:7,"jul.":7,augustus:8,aug:8,"aug.":8,september:9,sep:9,"sep.":9,sept:9,"sept.":9,oktober:10,okt:10,"okt.":10,november:11,nov:11,"nov.":11,december:12,dec:12,"dec.":12};Pe.INTEGER_WORD_DICTIONARY={een:1,twee:2,drie:3,vier:4,vijf:5,zes:6,zeven:7,acht:8,negen:9,tien:10,elf:11,twaalf:12};Pe.ORDINAL_WORD_DICTIONARY={eerste:1,tweede:2,derde:3,vierde:4,vijfde:5,zesde:6,zevende:7,achtste:8,negende:9,tiende:10,elfde:11,twaalfde:12,dertiende:13,veertiende:14,vijftiende:15,zestiende:16,zeventiende:17,achttiende:18,negentiende:19,twintigste:20,eenentwintigste:21,twee\u00EBntwintigste:22,drieentwintigste:23,vierentwintigste:24,vijfentwintigste:25,zesentwintigste:26,zevenentwintigste:27,achtentwintig:28,negenentwintig:29,dertigste:30,eenendertigste:31};Pe.TIME_UNIT_DICTIONARY={sec:"second",second:"second",seconden:"second",min:"minute",mins:"minute",minute:"minute",minuut:"minute",minuten:"minute",minuutje:"minute",h:"hour",hr:"hour",hrs:"hour",uur:"hour",u:"hour",uren:"hour",dag:"d",dagen:"d",week:"week",weken:"week",maand:"month",maanden:"month",jaar:"year",jr:"year",jaren:"year"};Pe.NUMBER_PATTERN=`(?:${dc.matchAnyPattern(Pe.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+[\\.,][0-9]+|halve?|half|paar)`;function Uv(n){let t=n.toLowerCase();return Pe.INTEGER_WORD_DICTIONARY[t]!==void 0?Pe.INTEGER_WORD_DICTIONARY[t]:t==="paar"?2:t==="half"||t.match(/halve?/)?.5:parseFloat(t.replace(",","."))}Pe.parseNumberPattern=Uv;Pe.ORDINAL_NUMBER_PATTERN=`(?:${dc.matchAnyPattern(Pe.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:ste|de)?)`;function CA(n){let t=n.toLowerCase();return Pe.ORDINAL_WORD_DICTIONARY[t]!==void 0?Pe.ORDINAL_WORD_DICTIONARY[t]:(t=t.replace(/(?:ste|de)$/i,""),parseInt(t))}Pe.parseOrdinalNumberPattern=CA;Pe.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s*(?:voor Christus|na Christus)|[1-2][0-9]{3}|[5-9][0-9])";function MA(n){if(/voor Christus/i.test(n))return n=n.replace(/voor Christus/i,""),-parseInt(n);if(/na Christus/i.test(n))return n=n.replace(/na Christus/i,""),parseInt(n);let t=parseInt(n);return OA.findMostLikelyADYear(t)}Pe.parseYear=MA;var Yv=`(${Pe.NUMBER_PATTERN})\\s{0,5}(${dc.matchAnyPattern(Pe.TIME_UNIT_DICTIONARY)})\\s{0,5}`,Lv=new RegExp(Yv,"i");Pe.TIME_UNITS_PATTERN=dc.repeatedTimeunitPattern("(?:(?:binnen|in)\\s*)?",Yv);function RA(n){let t={},e=n,r=Lv.exec(e);for(;r;)AA(t,r),e=e.substring(r[0].length),r=Lv.exec(e);return t}Pe.parseTimeUnits=RA;function AA(n,t){let e=Uv(t[1]),r=Pe.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var Wv=x(lh=>{"use strict";Object.defineProperty(lh,"__esModule",{value:!0});var jv=Sn(),PA=nt(),NA=re(),oh=class extends NA.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(?:binnen|in|binnen de|voor)\\s*("+jv.TIME_UNITS_PATTERN+")(?=\\W|$)","i")}innerExtract(t,e){let r=jv.parseTimeUnits(e[1]);return PA.ParsingComponents.createRelativeFromReference(t.reference,r)}};lh.default=oh});var qv=x(ch=>{"use strict";Object.defineProperty(ch,"__esModule",{value:!0});var $v=Sn(),IA=Ke(),FA=re(),LA=vs(),UA=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:op\\s*?)?(?:(deze|vorige|volgende)\\s*(?:week\\s*)?)?(${IA.matchAnyPattern($v.WEEKDAY_DICTIONARY)})(?=\\W|$)`,"i"),YA=1,jA=2,WA=3,uh=class extends FA.AbstractParserWithWordBoundaryChecking{innerPattern(){return UA}innerExtract(t,e){let r=e[jA].toLowerCase(),i=$v.WEEKDAY_DICTIONARY[r],s=e[YA],a=e[WA],o=s||a;o=o||"",o=o.toLowerCase();let l=null;o=="vorige"?l="last":o=="volgende"?l="next":o=="deze"&&(l="this");let u=LA.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};ch.default=uh});var Kv=x(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});var $A=Ct(),Vv=Sn(),fc=Sn(),zv=Sn(),qA=Ke(),HA=re(),GA=new RegExp(`(?:on\\s*?)?(${fc.ORDINAL_NUMBER_PATTERN})(?:\\s*(?:tot|\\-|\\\u2013|until|through|till|\\s)\\s*(${fc.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s*(?:of)?\\s*)(`+qA.matchAnyPattern(Vv.MONTH_DICTIONARY)+`)(?:(?:-|/|,?\\s*)(${zv.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),BA=3,Hv=1,Gv=2,Bv=4,dh=class extends HA.AbstractParserWithWordBoundaryChecking{innerPattern(){return GA}innerExtract(t,e){let r=Vv.MONTH_DICTIONARY[e[BA].toLowerCase()],i=fc.parseOrdinalNumberPattern(e[Hv]);if(i>31)return e.index=e.index+e[Hv].length,null;let s=t.createParsingComponents({day:i,month:r});if(e[Bv]){let l=zv.parseYear(e[Bv]);s.assign("year",l)}else{let l=$A.findYearClosestToRef(t.refDate,i,r);s.imply("year",l)}if(!e[Gv])return s;let a=fc.parseOrdinalNumberPattern(e[Gv]),o=t.createParsingResult(e.index,e[0]);return o.start=s,o.end=s.clone(),o.end.assign("day",a),o}};fh.default=dh});var Jv=x(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});var Xv=Sn(),VA=Ct(),zA=Ke(),Zv=Sn(),KA=re(),QA=new RegExp(`(${zA.matchAnyPattern(Xv.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${Zv.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,"i"),XA=1,Qv=2,ph=class extends KA.AbstractParserWithWordBoundaryChecking{innerPattern(){return QA}innerExtract(t,e){let r=t.createParsingComponents();r.imply("day",1);let i=e[XA],s=Xv.MONTH_DICTIONARY[i.toLowerCase()];if(r.assign("month",s),e[Qv]){let a=Zv.parseYear(e[Qv]);r.assign("year",a)}else{let a=VA.findYearClosestToRef(t.refDate,1,s);r.imply("year",a)}return r}};mh.default=ph});var ew=x(gh=>{"use strict";Object.defineProperty(gh,"__esModule",{value:!0});var ZA=re(),JA=new RegExp("([0-9]|0[1-9]|1[012])/([0-9]{4})","i"),eP=1,tP=2,hh=class extends ZA.AbstractParserWithWordBoundaryChecking{innerPattern(){return JA}innerExtract(t,e){let r=parseInt(e[tP]),i=parseInt(e[eP]);return t.createParsingComponents().imply("day",1).assign("month",i).assign("year",r)}};gh.default=hh});var tw=x(bh=>{"use strict";Object.defineProperty(bh,"__esModule",{value:!0});var nP=Ts(),yh=class extends nP.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:om)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|om|\\?)\\s*"}primarySuffix(){return"(?:\\s*(?:uur))?(?!/)(?=\\W|$)"}extractPrimaryTimeComponents(t,e){return e[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(t,e)}};bh.default=yh});var iw=x(_h=>{"use strict";Object.defineProperty(_h,"__esModule",{value:!0});var rw=Sn(),rP=Ke(),iP=re(),sP=new RegExp(`([0-9]{4})[\\.\\/\\s](?:(${rP.matchAnyPattern(rw.MONTH_DICTIONARY)})|([0-9]{1,2}))[\\.\\/\\s]([0-9]{1,2})(?=\\W|$)`,"i"),aP=1,oP=2,nw=3,lP=4,Th=class extends iP.AbstractParserWithWordBoundaryChecking{innerPattern(){return sP}innerExtract(t,e){let r=e[nw]?parseInt(e[nw]):rw.MONTH_DICTIONARY[e[oP].toLowerCase()];if(r<1||r>12)return null;let i=parseInt(e[aP]);return{day:parseInt(e[lP]),month:r,year:i}}};_h.default=Th});var sw=x(bl=>{"use strict";var uP=bl&&bl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(bl,"__esModule",{value:!0});var cP=re(),pc=ht(),vh=$n(),dP=uP(Ue()),fP=1,pP=2,wh=class extends cP.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(gisteren|morgen|van)(ochtend|middag|namiddag|avond|nacht)(?=\W|$)/i}innerExtract(t,e){let r=e[fP].toLowerCase(),i=e[pP].toLowerCase(),s=t.createParsingComponents(),a=dP.default(t.refDate);switch(r){case"gisteren":vh.assignSimilarDate(s,a.add(-1,"day"));break;case"van":vh.assignSimilarDate(s,a);break;case"morgen":vh.assignTheNextDay(s,a);break}switch(i){case"ochtend":s.imply("meridiem",pc.Meridiem.AM),s.imply("hour",6);break;case"middag":s.imply("meridiem",pc.Meridiem.AM),s.imply("hour",12);break;case"namiddag":s.imply("meridiem",pc.Meridiem.PM),s.imply("hour",15);break;case"avond":s.imply("meridiem",pc.Meridiem.PM),s.imply("hour",20);break}return s}};bl.default=wh});var ow=x(Sh=>{"use strict";Object.defineProperty(Sh,"__esModule",{value:!0});var aw=Sn(),mP=nt(),hP=re(),gP=qn(),yP=new RegExp(`(deze|vorige|afgelopen|komende|over|\\+|-)\\s*(${aw.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),kh=class extends hP.AbstractParserWithWordBoundaryChecking{innerPattern(){return yP}innerExtract(t,e){let r=e[1].toLowerCase(),i=aw.parseTimeUnits(e[2]);switch(r){case"vorige":case"afgelopen":case"-":i=gP.reverseTimeUnits(i);break}return mP.ParsingComponents.createRelativeFromReference(t.reference,i)}};Sh.default=kh});var cw=x(Tl=>{"use strict";var bP=Tl&&Tl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Tl,"__esModule",{value:!0});var uw=Sn(),lw=nt(),TP=bP(Ue()),_P=re(),vP=Ke(),wP=new RegExp(`(dit|deze|komende|volgend|volgende|afgelopen|vorige)\\s*(${vP.matchAnyPattern(uw.TIME_UNIT_DICTIONARY)})(?=\\s*)(?=\\W|$)`,"i"),kP=1,SP=2,Eh=class extends _P.AbstractParserWithWordBoundaryChecking{innerPattern(){return wP}innerExtract(t,e){let r=e[kP].toLowerCase(),i=e[SP].toLowerCase(),s=uw.TIME_UNIT_DICTIONARY[i];if(r=="volgend"||r=="volgende"||r=="komende"){let l={};return l[s]=1,lw.ParsingComponents.createRelativeFromReference(t.reference,l)}if(r=="afgelopen"||r=="vorige"){let l={};return l[s]=-1,lw.ParsingComponents.createRelativeFromReference(t.reference,l)}let a=t.createParsingComponents(),o=TP.default(t.reference.instant);return i.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):i.match(/maand/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):i.match(/jaar/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};Tl.default=Eh});var dw=x(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});var xh=Sn(),EP=nt(),DP=re(),xP=qn(),OP=new RegExp("("+xh.TIME_UNITS_PATTERN+")(?:geleden|voor|eerder)(?=(?:\\W|$))","i"),CP=new RegExp("("+xh.TIME_UNITS_PATTERN+")geleden(?=(?:\\W|$))","i"),Dh=class extends DP.AbstractParserWithWordBoundaryChecking{constructor(t){super(),this.strictMode=t}innerPattern(){return this.strictMode?CP:OP}innerExtract(t,e){let r=xh.parseTimeUnits(e[1]),i=xP.reverseTimeUnits(r);return EP.ParsingComponents.createRelativeFromReference(t.reference,i)}};Oh.default=Dh});var fw=x(Rh=>{"use strict";Object.defineProperty(Rh,"__esModule",{value:!0});var Mh=Sn(),MP=nt(),RP=re(),AP=new RegExp("("+Mh.TIME_UNITS_PATTERN+")(later|na|vanaf nu|voortaan|vooruit|uit)(?=(?:\\W|$))","i"),PP=new RegExp("("+Mh.TIME_UNITS_PATTERN+")(later|vanaf nu)(?=(?:\\W|$))","i"),NP=1,Ch=class extends RP.AbstractParserWithWordBoundaryChecking{constructor(t){super(),this.strictMode=t}innerPattern(){return this.strictMode?PP:AP}innerExtract(t,e){let r=Mh.parseTimeUnits(e[NP]);return MP.ParsingComponents.createRelativeFromReference(t.reference,r)}};Rh.default=Ch});var gw=x(kt=>{"use strict";var Rt=kt&&kt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(kt,"__esModule",{value:!0});kt.createConfiguration=kt.createCasualConfiguration=kt.parseDate=kt.parse=kt.strict=kt.casual=void 0;var IP=ai(),pw=yr(),FP=Rt(Pv()),LP=Rt(Nv()),UP=Rt(Iv()),YP=Rt(Fv()),jP=Rt(ws()),WP=Rt(Wv()),$P=Rt(qv()),qP=Rt(Kv()),mw=Rt(Jv()),HP=Rt(ew()),GP=Rt(tw()),BP=Rt(iw()),VP=Rt(sw()),zP=Rt(ow()),KP=Rt(cw()),QP=Rt(dw()),XP=Rt(fw());kt.casual=new pw.Chrono(hw());kt.strict=new pw.Chrono(Ah(!0));function ZP(n,t,e){return kt.casual.parse(n,t,e)}kt.parse=ZP;function JP(n,t,e){return kt.casual.parseDate(n,t,e)}kt.parseDate=JP;function hw(n=!0){let t=Ah(!1,n);return t.parsers.unshift(new UP.default),t.parsers.unshift(new YP.default),t.parsers.unshift(new VP.default),t.parsers.unshift(new mw.default),t.parsers.unshift(new KP.default),t.parsers.unshift(new zP.default),t}kt.createCasualConfiguration=hw;function Ah(n=!0,t=!0){return IP.includeCommonConfiguration({parsers:[new jP.default(t),new WP.default,new qP.default,new mw.default,new $P.default,new BP.default,new HP.default,new GP.default(n),new QP.default(n),new XP.default(n)],refiners:[new LP.default,new FP.default]},n)}kt.createConfiguration=Ah});var _w=x(_l=>{"use strict";var eN=_l&&_l.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(_l,"__esModule",{value:!0});var tN=eN(Ue()),nN=re(),rN=1,yw=2,iN=3,bw=4,Tw=5,sN=6,Ph=class extends nN.AbstractParserWithWordBoundaryChecking{innerPattern(t){return new RegExp("(\u800C\u5BB6|\u7ACB(?:\u523B|\u5373)|\u5373\u523B)|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s|,|\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?","i")}innerExtract(t,e){let r=e.index,i=t.createParsingResult(r,e[0]),s=tN.default(t.refDate),a=s;if(e[rN])i.start.imply("hour",s.hour()),i.start.imply("minute",s.minute()),i.start.imply("second",s.second()),i.start.imply("millisecond",s.millisecond());else if(e[yw]){let o=e[yw],l=e[iN];o=="\u660E"||o=="\u807D"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u5F8C"?a=a.add(2,"day"):o=="\u5927\u5F8C"&&(a=a.add(3,"day")),l=="\u65E9"||l=="\u671D"?i.start.imply("hour",6):l=="\u665A"&&(i.start.imply("hour",22),i.start.imply("meridiem",1))}else if(e[bw]){let l=e[bw][0];l=="\u65E9"||l=="\u671D"||l=="\u4E0A"?i.start.imply("hour",6):l=="\u4E0B"||l=="\u664F"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):l=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):l=="\u591C"||l=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):l=="\u51CC"&&i.start.imply("hour",0)}else if(e[Tw]){let o=e[Tw];o=="\u660E"||o=="\u807D"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u5F8C"?a=a.add(2,"day"):o=="\u5927\u5F8C"&&(a=a.add(3,"day"));let l=e[sN];if(l){let u=l[0];u=="\u65E9"||u=="\u671D"||u=="\u4E0A"?i.start.imply("hour",6):u=="\u4E0B"||u=="\u664F"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):u=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):u=="\u591C"||u=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):u=="\u51CC"&&i.start.imply("hour",0)}}return i.start.assign("day",a.date()),i.start.assign("month",a.month()+1),i.start.assign("year",a.year()),i}};_l.default=Ph});var Ra=x(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.zhStringToYear=un.zhStringToNumber=un.WEEKDAY_OFFSET=un.NUMBER=void 0;un.NUMBER={\u96F6:0,\u4E00:1,\u4E8C:2,\u5169:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10,\u5EFF:20,\u5345:30};un.WEEKDAY_OFFSET={\u5929:0,\u65E5:0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6};function aN(n){let t=0;for(let e=0;e<n.length;e++){let r=n[e];r==="\u5341"?t=t===0?un.NUMBER[r]:t*un.NUMBER[r]:t+=un.NUMBER[r]}return t}un.zhStringToNumber=aN;function oN(n){let t="";for(let e=0;e<n.length;e++){let r=n[e];t=t+un.NUMBER[r]}return parseInt(t)}un.zhStringToYear=oN});var ww=x(vl=>{"use strict";var lN=vl&&vl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(vl,"__esModule",{value:!0});var uN=lN(Ue()),cN=re(),Es=Ra(),Nh=1,vw=2,Ih=3,Fh=class extends cN.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(\\d{2,4}|["+Object.keys(Es.NUMBER).join("")+"]{4}|["+Object.keys(Es.NUMBER).join("")+"]{2})?(?:\\s*)(?:\u5E74)?(?:[\\s|,|\uFF0C]*)(\\d{1,2}|["+Object.keys(Es.NUMBER).join("")+"]{1,2})(?:\\s*)(?:\u6708)(?:\\s*)(\\d{1,2}|["+Object.keys(Es.NUMBER).join("")+"]{1,2})?(?:\\s*)(?:\u65E5|\u865F)?")}innerExtract(t,e){let r=uN.default(t.refDate),i=t.createParsingResult(e.index,e[0]),s=parseInt(e[vw]);if(isNaN(s)&&(s=Es.zhStringToNumber(e[vw])),i.start.assign("month",s),e[Ih]){let a=parseInt(e[Ih]);isNaN(a)&&(a=Es.zhStringToNumber(e[Ih])),i.start.assign("day",a)}else i.start.imply("day",r.date());if(e[Nh]){let a=parseInt(e[Nh]);isNaN(a)&&(a=Es.zhStringToYear(e[Nh])),i.start.assign("year",a)}else i.start.imply("year",r.year());return i}};vl.default=Fh});var Sw=x(wl=>{"use strict";var dN=wl&&wl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(wl,"__esModule",{value:!0});var fN=dN(Ue()),pN=re(),kw=Ra(),mN=new RegExp("(\\d+|["+Object.keys(kw.NUMBER).join("")+"]+|\u534A|\u5E7E)(?:\\s*)(?:\u500B)?(\u79D2(?:\u9418)?|\u5206\u9418|\u5C0F\u6642|\u9418|\u65E5|\u5929|\u661F\u671F|\u79AE\u62DC|\u6708|\u5E74)(?:(?:\u4E4B|\u904E)?\u5F8C|(?:\u4E4B)?\u5167)","i"),Lh=1,hN=2,Uh=class extends pN.AbstractParserWithWordBoundaryChecking{innerPattern(){return mN}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=parseInt(e[Lh]);if(isNaN(i)&&(i=kw.zhStringToNumber(e[Lh])),isNaN(i)){let l=e[Lh];if(l==="\u5E7E")i=3;else if(l==="\u534A")i=.5;else return null}let s=fN.default(t.refDate),o=e[hN][0];return o.match(/[日天星禮月年]/)?(o=="\u65E5"||o=="\u5929"?s=s.add(i,"d"):o=="\u661F"||o=="\u79AE"?s=s.add(i*7,"d"):o=="\u6708"?s=s.add(i,"month"):o=="\u5E74"&&(s=s.add(i,"year")),r.start.assign("year",s.year()),r.start.assign("month",s.month()+1),r.start.assign("day",s.date()),r):(o=="\u79D2"?s=s.add(i,"second"):o=="\u5206"?s=s.add(i,"minute"):(o=="\u5C0F"||o=="\u9418")&&(s=s.add(i,"hour")),r.start.imply("year",s.year()),r.start.imply("month",s.month()+1),r.start.imply("day",s.date()),r.start.assign("hour",s.hour()),r.start.assign("minute",s.minute()),r.start.assign("second",s.second()),r)}};wl.default=Uh});var Dw=x(kl=>{"use strict";var gN=kl&&kl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(kl,"__esModule",{value:!0});var yN=gN(Ue()),bN=re(),Ew=Ra(),TN=new RegExp("(?<prefix>\u4E0A|\u4ECA|\u4E0B|\u9019|\u5462)(?:\u500B)?(?:\u661F\u671F|\u79AE\u62DC|\u9031)(?<weekday>"+Object.keys(Ew.WEEKDAY_OFFSET).join("|")+")"),Yh=class extends bN.AbstractParserWithWordBoundaryChecking{innerPattern(){return TN}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=e.groups.weekday,s=Ew.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=null,o=e.groups.prefix;o=="\u4E0A"?a="last":o=="\u4E0B"?a="next":(o=="\u4ECA"||o=="\u9019"||o=="\u5462")&&(a="this");let l=yN.default(t.refDate),u=!1,c=l.day();return a=="last"||a=="past"?(l=l.day(s-7),u=!0):a=="next"?(l=l.day(s+7),u=!0):a=="this"?l=l.day(s):Math.abs(s-7-c)<Math.abs(s-c)?l=l.day(s-7):Math.abs(s+7-c)<Math.abs(s-c)?l=l.day(s+7):l=l.day(s),r.start.assign("weekday",s),u?(r.start.assign("day",l.date()),r.start.assign("month",l.month()+1),r.start.assign("year",l.year())):(r.start.imply("day",l.date()),r.start.imply("month",l.month()+1),r.start.imply("year",l.year())),r}};kl.default=Yh});var xw=x(Sl=>{"use strict";var _N=Sl&&Sl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Sl,"__esModule",{value:!0});var vN=_N(Ue()),wN=re(),Bn=Ra(),kN=new RegExp("(?:\u7531|\u5F9E|\u81EA)?(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Bn.NUMBER).join("")+"]+)(?:\\s*)(?:\u9EDE|\u6642|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Bn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Bn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),SN=new RegExp("(?:^\\s*(?:\u5230|\u81F3|\\-|\\\u2013|\\~|\\\u301C)\\s*)(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Bn.NUMBER).join("")+"]+)(?:\\s*)(?:\u9EDE|\u6642|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Bn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Bn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),mc=1,hc=2,gc=3,yc=4,bc=5,Tc=6,Gn=7,Aa=8,_c=9,jh=class extends wN.AbstractParserWithWordBoundaryChecking{innerPattern(){return kN}innerExtract(t,e){if(e.index>0&&t.text[e.index-1].match(/\w/))return null;let r=vN.default(t.refDate),i=t.createParsingResult(e.index,e[0]),s=r.clone();if(e[mc]){var a=e[mc];a=="\u660E"||a=="\u807D"?r.hour()>1&&s.add(1,"day"):a=="\u6628"||a=="\u5C0B"||a=="\u7434"?s.add(-1,"day"):a=="\u524D"?s.add(-2,"day"):a=="\u5927\u524D"?s.add(-3,"day"):a=="\u5F8C"?s.add(2,"day"):a=="\u5927\u5F8C"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else if(e[yc]){var o=e[yc];o=="\u660E"||o=="\u807D"?s.add(1,"day"):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?s.add(-1,"day"):o=="\u524D"?s.add(-2,"day"):o=="\u5927\u524D"?s.add(-3,"day"):o=="\u5F8C"?s.add(2,"day"):o=="\u5927\u5F8C"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else i.start.imply("day",s.date()),i.start.imply("month",s.month()+1),i.start.imply("year",s.year());let l=0,u=0,c=-1;if(e[Aa]){var d=parseInt(e[Aa]);if(isNaN(d)&&(d=Bn.zhStringToNumber(e[Aa])),d>=60)return null;i.start.assign("second",d)}if(l=parseInt(e[Tc]),isNaN(l)&&(l=Bn.zhStringToNumber(e[Tc])),e[Gn]?e[Gn]=="\u534A"?u=30:e[Gn]=="\u6B63"||e[Gn]=="\u6574"?u=0:(u=parseInt(e[Gn]),isNaN(u)&&(u=Bn.zhStringToNumber(e[Gn]))):l>100&&(u=l%100,l=Math.floor(l/100)),u>=60||l>24)return null;if(l>=12&&(c=1),e[_c]){if(l>12)return null;var f=e[_c][0].toLowerCase();f=="a"&&(c=0,l==12&&(l=0)),f=="p"&&(c=1,l!=12&&(l+=12))}else if(e[hc]){var p=e[hc],b=p[0];b=="\u671D"||b=="\u65E9"?(c=0,l==12&&(l=0)):b=="\u665A"&&(c=1,l!=12&&(l+=12))}else if(e[gc]){var T=e[gc],_=T[0];_=="\u4E0A"||_=="\u671D"||_=="\u65E9"||_=="\u51CC"?(c=0,l==12&&(l=0)):(_=="\u4E0B"||_=="\u664F"||_=="\u665A")&&(c=1,l!=12&&(l+=12))}else if(e[bc]){var O=e[bc],D=O[0];D=="\u4E0A"||D=="\u671D"||D=="\u65E9"||D=="\u51CC"?(c=0,l==12&&(l=0)):(D=="\u4E0B"||D=="\u664F"||D=="\u665A")&&(c=1,l!=12&&(l+=12))}if(i.start.assign("hour",l),i.start.assign("minute",u),c>=0?i.start.assign("meridiem",c):l<12?i.start.imply("meridiem",0):i.start.imply("meridiem",1),e=SN.exec(t.text.substring(i.index+i.text.length)),!e)return i.text.match(/^\d+$/)?null:i;let A=s.clone();if(i.end=t.createParsingComponents(),e[mc]){var a=e[mc];a=="\u660E"||a=="\u807D"?r.hour()>1&&A.add(1,"day"):a=="\u6628"||a=="\u5C0B"||a=="\u7434"?A.add(-1,"day"):a=="\u524D"?A.add(-2,"day"):a=="\u5927\u524D"?A.add(-3,"day"):a=="\u5F8C"?A.add(2,"day"):a=="\u5927\u5F8C"&&A.add(3,"day"),i.end.assign("day",A.date()),i.end.assign("month",A.month()+1),i.end.assign("year",A.year())}else if(e[yc]){var o=e[yc];o=="\u660E"||o=="\u807D"?A.add(1,"day"):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?A.add(-1,"day"):o=="\u524D"?A.add(-2,"day"):o=="\u5927\u524D"?A.add(-3,"day"):o=="\u5F8C"?A.add(2,"day"):o=="\u5927\u5F8C"&&A.add(3,"day"),i.end.assign("day",A.date()),i.end.assign("month",A.month()+1),i.end.assign("year",A.year())}else i.end.imply("day",A.date()),i.end.imply("month",A.month()+1),i.end.imply("year",A.year());if(l=0,u=0,c=-1,e[Aa]){var d=parseInt(e[Aa]);if(isNaN(d)&&(d=Bn.zhStringToNumber(e[Aa])),d>=60)return null;i.end.assign("second",d)}if(l=parseInt(e[Tc]),isNaN(l)&&(l=Bn.zhStringToNumber(e[Tc])),e[Gn]?e[Gn]=="\u534A"?u=30:e[Gn]=="\u6B63"||e[Gn]=="\u6574"?u=0:(u=parseInt(e[Gn]),isNaN(u)&&(u=Bn.zhStringToNumber(e[Gn]))):l>100&&(u=l%100,l=Math.floor(l/100)),u>=60||l>24)return null;if(l>=12&&(c=1),e[_c]){if(l>12)return null;var f=e[_c][0].toLowerCase();f=="a"&&(c=0,l==12&&(l=0)),f=="p"&&(c=1,l!=12&&(l+=12)),i.start.isCertain("meridiem")||(c==0?(i.start.imply("meridiem",0),i.start.get("hour")==12&&i.start.assign("hour",0)):(i.start.imply("meridiem",1),i.start.get("hour")!=12&&i.start.assign("hour",i.start.get("hour")+12)))}else if(e[hc]){var p=e[hc],b=p[0];b=="\u671D"||b=="\u65E9"?(c=0,l==12&&(l=0)):b=="\u665A"&&(c=1,l!=12&&(l+=12))}else if(e[gc]){var T=e[gc],_=T[0];_=="\u4E0A"||_=="\u671D"||_=="\u65E9"||_=="\u51CC"?(c=0,l==12&&(l=0)):(_=="\u4E0B"||_=="\u664F"||_=="\u665A")&&(c=1,l!=12&&(l+=12))}else if(e[bc]){var O=e[bc],D=O[0];D=="\u4E0A"||D=="\u671D"||D=="\u65E9"||D=="\u51CC"?(c=0,l==12&&(l=0)):(D=="\u4E0B"||D=="\u664F"||D=="\u665A")&&(c=1,l!=12&&(l+=12))}return i.text=i.text+e[0],i.end.assign("hour",l),i.end.assign("minute",u),c>=0?i.end.assign("meridiem",c):i.start.isCertain("meridiem")&&i.start.get("meridiem")==1&&i.start.get("hour")>l?i.end.imply("meridiem",0):l>12&&i.end.imply("meridiem",1),i.end.date().getTime()<i.start.date().getTime()&&i.end.imply("day",i.end.get("day")+1),i}};Sl.default=jh});var Cw=x(El=>{"use strict";var EN=El&&El.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(El,"__esModule",{value:!0});var DN=EN(Ue()),xN=re(),Ow=Ra(),ON=new RegExp("(?:\u661F\u671F|\u79AE\u62DC|\u9031)(?<weekday>"+Object.keys(Ow.WEEKDAY_OFFSET).join("|")+")"),Wh=class extends xN.AbstractParserWithWordBoundaryChecking{innerPattern(){return ON}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=e.groups.weekday,s=Ow.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=DN.default(t.refDate),o=!1,l=a.day();return Math.abs(s-7-l)<Math.abs(s-l)?a=a.day(s-7):Math.abs(s+7-l)<Math.abs(s-l)?a=a.day(s+7):a=a.day(s),r.start.assign("weekday",s),o?(r.start.assign("day",a.date()),r.start.assign("month",a.month()+1),r.start.assign("year",a.year())):(r.start.imply("day",a.date()),r.start.imply("month",a.month()+1),r.start.imply("year",a.year())),r}};El.default=Wh});var Mw=x(Dl=>{"use strict";var CN=Dl&&Dl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Dl,"__esModule",{value:!0});var MN=CN(Wr()),$h=class extends MN.default{patternBetween(){return/^\s*(至|到|\-|\~|~|-|ー)\s*$/i}};Dl.default=$h});var Rw=x(xl=>{"use strict";var RN=xl&&xl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(xl,"__esModule",{value:!0});var AN=RN(si()),qh=class extends AN.default{patternBetween(){return/^\s*$/i}};xl.default=qh});var Aw=x(ut=>{"use strict";var di=ut&&ut.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ut,"__esModule",{value:!0});ut.createConfiguration=ut.createCasualConfiguration=ut.parseDate=ut.parse=ut.strict=ut.casual=ut.hant=void 0;var Hh=yr(),PN=di(Qu()),NN=ai(),IN=di(_w()),FN=di(ww()),LN=di(Sw()),UN=di(Dw()),YN=di(xw()),jN=di(Cw()),WN=di(Mw()),$N=di(Rw());ut.hant=new Hh.Chrono(Gh());ut.casual=new Hh.Chrono(Gh());ut.strict=new Hh.Chrono(Bh());function qN(n,t,e){return ut.casual.parse(n,t,e)}ut.parse=qN;function HN(n,t,e){return ut.casual.parseDate(n,t,e)}ut.parseDate=HN;function Gh(){let n=Bh();return n.parsers.unshift(new IN.default),n}ut.createCasualConfiguration=Gh;function Bh(){let n=NN.includeCommonConfiguration({parsers:[new FN.default,new UN.default,new jN.default,new YN.default,new LN.default],refiners:[new WN.default,new $N.default]});return n.refiners=n.refiners.filter(t=>!(t instanceof PN.default)),n}ut.createConfiguration=Bh});var Fw=x(Ol=>{"use strict";var GN=Ol&&Ol.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ol,"__esModule",{value:!0});var BN=GN(Ue()),VN=re(),zN=1,Pw=2,KN=3,Nw=4,Iw=5,QN=6,Vh=class extends VN.AbstractParserWithWordBoundaryChecking{innerPattern(t){return new RegExp("(\u73B0\u5728|\u7ACB(?:\u523B|\u5373)|\u5373\u523B)|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s|,|\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?","i")}innerExtract(t,e){let r=e.index,i=t.createParsingResult(r,e[0]),s=BN.default(t.refDate),a=s;if(e[zN])i.start.imply("hour",s.hour()),i.start.imply("minute",s.minute()),i.start.imply("second",s.second()),i.start.imply("millisecond",s.millisecond());else if(e[Pw]){let o=e[Pw],l=e[KN];o=="\u660E"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u540E"?a=a.add(2,"day"):o=="\u5927\u540E"&&(a=a.add(3,"day")),l=="\u65E9"?i.start.imply("hour",6):l=="\u665A"&&(i.start.imply("hour",22),i.start.imply("meridiem",1))}else if(e[Nw]){let l=e[Nw][0];l=="\u65E9"||l=="\u4E0A"?i.start.imply("hour",6):l=="\u4E0B"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):l=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):l=="\u591C"||l=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):l=="\u51CC"&&i.start.imply("hour",0)}else if(e[Iw]){let o=e[Iw];o=="\u660E"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u540E"?a=a.add(2,"day"):o=="\u5927\u540E"&&(a=a.add(3,"day"));let l=e[QN];if(l){let u=l[0];u=="\u65E9"||u=="\u4E0A"?i.start.imply("hour",6):u=="\u4E0B"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):u=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):u=="\u591C"||u=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):u=="\u51CC"&&i.start.imply("hour",0)}}return i.start.assign("day",a.date()),i.start.assign("month",a.month()+1),i.start.assign("year",a.year()),i}};Ol.default=Vh});var Pa=x(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.zhStringToYear=cn.zhStringToNumber=cn.WEEKDAY_OFFSET=cn.NUMBER=void 0;cn.NUMBER={\u96F6:0,"\u3007":0,\u4E00:1,\u4E8C:2,\u4E24:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10};cn.WEEKDAY_OFFSET={\u5929:0,\u65E5:0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6};function XN(n){let t=0;for(let e=0;e<n.length;e++){let r=n[e];r==="\u5341"?t=t===0?cn.NUMBER[r]:t*cn.NUMBER[r]:t+=cn.NUMBER[r]}return t}cn.zhStringToNumber=XN;function ZN(n){let t="";for(let e=0;e<n.length;e++){let r=n[e];t=t+cn.NUMBER[r]}return parseInt(t)}cn.zhStringToYear=ZN});var Uw=x(Cl=>{"use strict";var JN=Cl&&Cl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Cl,"__esModule",{value:!0});var eI=JN(Ue()),tI=re(),Ds=Pa(),zh=1,Lw=2,Kh=3,Qh=class extends tI.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(\\d{2,4}|["+Object.keys(Ds.NUMBER).join("")+"]{4}|["+Object.keys(Ds.NUMBER).join("")+"]{2})?(?:\\s*)(?:\u5E74)?(?:[\\s|,|\uFF0C]*)(\\d{1,2}|["+Object.keys(Ds.NUMBER).join("")+"]{1,3})(?:\\s*)(?:\u6708)(?:\\s*)(\\d{1,2}|["+Object.keys(Ds.NUMBER).join("")+"]{1,3})?(?:\\s*)(?:\u65E5|\u53F7)?")}innerExtract(t,e){let r=eI.default(t.refDate),i=t.createParsingResult(e.index,e[0]),s=parseInt(e[Lw]);if(isNaN(s)&&(s=Ds.zhStringToNumber(e[Lw])),i.start.assign("month",s),e[Kh]){let a=parseInt(e[Kh]);isNaN(a)&&(a=Ds.zhStringToNumber(e[Kh])),i.start.assign("day",a)}else i.start.imply("day",r.date());if(e[zh]){let a=parseInt(e[zh]);isNaN(a)&&(a=Ds.zhStringToYear(e[zh])),i.start.assign("year",a)}else i.start.imply("year",r.year());return i}};Cl.default=Qh});var jw=x(Ml=>{"use strict";var nI=Ml&&Ml.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ml,"__esModule",{value:!0});var rI=nI(Ue()),iI=re(),Yw=Pa(),sI=new RegExp("(\\d+|["+Object.keys(Yw.NUMBER).join("")+"]+|\u534A|\u51E0)(?:\\s*)(?:\u4E2A)?(\u79D2(?:\u949F)?|\u5206\u949F|\u5C0F\u65F6|\u949F|\u65E5|\u5929|\u661F\u671F|\u793C\u62DC|\u6708|\u5E74)(?:(?:\u4E4B|\u8FC7)?\u540E|(?:\u4E4B)?\u5185)","i"),Xh=1,aI=2,Zh=class extends iI.AbstractParserWithWordBoundaryChecking{innerPattern(){return sI}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=parseInt(e[Xh]);if(isNaN(i)&&(i=Yw.zhStringToNumber(e[Xh])),isNaN(i)){let l=e[Xh];if(l==="\u51E0")i=3;else if(l==="\u534A")i=.5;else return null}let s=rI.default(t.refDate),o=e[aI][0];return o.match(/[日天星礼月年]/)?(o=="\u65E5"||o=="\u5929"?s=s.add(i,"d"):o=="\u661F"||o=="\u793C"?s=s.add(i*7,"d"):o=="\u6708"?s=s.add(i,"month"):o=="\u5E74"&&(s=s.add(i,"year")),r.start.assign("year",s.year()),r.start.assign("month",s.month()+1),r.start.assign("day",s.date()),r):(o=="\u79D2"?s=s.add(i,"second"):o=="\u5206"?s=s.add(i,"minute"):(o=="\u5C0F"||o=="\u949F")&&(s=s.add(i,"hour")),r.start.imply("year",s.year()),r.start.imply("month",s.month()+1),r.start.imply("day",s.date()),r.start.assign("hour",s.hour()),r.start.assign("minute",s.minute()),r.start.assign("second",s.second()),r)}};Ml.default=Zh});var $w=x(Rl=>{"use strict";var oI=Rl&&Rl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Rl,"__esModule",{value:!0});var lI=oI(Ue()),uI=re(),Ww=Pa(),cI=new RegExp("(?<prefix>\u4E0A|\u4E0B|\u8FD9)(?:\u4E2A)?(?:\u661F\u671F|\u793C\u62DC|\u5468)(?<weekday>"+Object.keys(Ww.WEEKDAY_OFFSET).join("|")+")"),Jh=class extends uI.AbstractParserWithWordBoundaryChecking{innerPattern(){return cI}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=e.groups.weekday,s=Ww.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=null,o=e.groups.prefix;o=="\u4E0A"?a="last":o=="\u4E0B"?a="next":o=="\u8FD9"&&(a="this");let l=lI.default(t.refDate),u=!1,c=l.day();return a=="last"||a=="past"?(l=l.day(s-7),u=!0):a=="next"?(l=l.day(s+7),u=!0):a=="this"?l=l.day(s):Math.abs(s-7-c)<Math.abs(s-c)?l=l.day(s-7):Math.abs(s+7-c)<Math.abs(s-c)?l=l.day(s+7):l=l.day(s),r.start.assign("weekday",s),u?(r.start.assign("day",l.date()),r.start.assign("month",l.month()+1),r.start.assign("year",l.year())):(r.start.imply("day",l.date()),r.start.imply("month",l.month()+1),r.start.imply("year",l.year())),r}};Rl.default=Jh});var qw=x(Al=>{"use strict";var dI=Al&&Al.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Al,"__esModule",{value:!0});var fI=dI(Ue()),pI=re(),zn=Pa(),mI=new RegExp("(?:\u4ECE|\u81EA)?(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(zn.NUMBER).join("")+"]+)(?:\\s*)(?:\u70B9|\u65F6|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(zn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(zn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),hI=new RegExp("(?:^\\s*(?:\u5230|\u81F3|\\-|\\\u2013|\\~|\\\u301C)\\s*)(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(zn.NUMBER).join("")+"]+)(?:\\s*)(?:\u70B9|\u65F6|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(zn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(zn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),vc=1,wc=2,kc=3,Sc=4,Ec=5,Dc=6,Vn=7,Na=8,xc=9,eg=class extends pI.AbstractParserWithWordBoundaryChecking{innerPattern(){return mI}innerExtract(t,e){if(e.index>0&&t.text[e.index-1].match(/\w/))return null;let r=fI.default(t.refDate),i=t.createParsingResult(e.index,e[0]),s=r.clone();if(e[vc]){let c=e[vc];c=="\u660E"?r.hour()>1&&s.add(1,"day"):c=="\u6628"?s.add(-1,"day"):c=="\u524D"?s.add(-2,"day"):c=="\u5927\u524D"?s.add(-3,"day"):c=="\u540E"?s.add(2,"day"):c=="\u5927\u540E"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else if(e[Sc]){let c=e[Sc];c=="\u660E"?s.add(1,"day"):c=="\u6628"?s.add(-1,"day"):c=="\u524D"?s.add(-2,"day"):c=="\u5927\u524D"?s.add(-3,"day"):c=="\u540E"?s.add(2,"day"):c=="\u5927\u540E"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else i.start.imply("day",s.date()),i.start.imply("month",s.month()+1),i.start.imply("year",s.year());let a=0,o=0,l=-1;if(e[Na]){let c=parseInt(e[Na]);if(isNaN(c)&&(c=zn.zhStringToNumber(e[Na])),c>=60)return null;i.start.assign("second",c)}if(a=parseInt(e[Dc]),isNaN(a)&&(a=zn.zhStringToNumber(e[Dc])),e[Vn]?e[Vn]=="\u534A"?o=30:e[Vn]=="\u6B63"||e[Vn]=="\u6574"?o=0:(o=parseInt(e[Vn]),isNaN(o)&&(o=zn.zhStringToNumber(e[Vn]))):a>100&&(o=a%100,a=Math.floor(a/100)),o>=60||a>24)return null;if(a>=12&&(l=1),e[xc]){if(a>12)return null;let c=e[xc][0].toLowerCase();c=="a"&&(l=0,a==12&&(a=0)),c=="p"&&(l=1,a!=12&&(a+=12))}else if(e[wc]){let d=e[wc][0];d=="\u65E9"?(l=0,a==12&&(a=0)):d=="\u665A"&&(l=1,a!=12&&(a+=12))}else if(e[kc]){let d=e[kc][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(l=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(l=1,a!=12&&(a+=12))}else if(e[Ec]){let d=e[Ec][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(l=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(l=1,a!=12&&(a+=12))}if(i.start.assign("hour",a),i.start.assign("minute",o),l>=0?i.start.assign("meridiem",l):a<12?i.start.imply("meridiem",0):i.start.imply("meridiem",1),e=hI.exec(t.text.substring(i.index+i.text.length)),!e)return i.text.match(/^\d+$/)?null:i;let u=s.clone();if(i.end=t.createParsingComponents(),e[vc]){let c=e[vc];c=="\u660E"?r.hour()>1&&u.add(1,"day"):c=="\u6628"?u.add(-1,"day"):c=="\u524D"?u.add(-2,"day"):c=="\u5927\u524D"?u.add(-3,"day"):c=="\u540E"?u.add(2,"day"):c=="\u5927\u540E"&&u.add(3,"day"),i.end.assign("day",u.date()),i.end.assign("month",u.month()+1),i.end.assign("year",u.year())}else if(e[Sc]){let c=e[Sc];c=="\u660E"?u.add(1,"day"):c=="\u6628"?u.add(-1,"day"):c=="\u524D"?u.add(-2,"day"):c=="\u5927\u524D"?u.add(-3,"day"):c=="\u540E"?u.add(2,"day"):c=="\u5927\u540E"&&u.add(3,"day"),i.end.assign("day",u.date()),i.end.assign("month",u.month()+1),i.end.assign("year",u.year())}else i.end.imply("day",u.date()),i.end.imply("month",u.month()+1),i.end.imply("year",u.year());if(a=0,o=0,l=-1,e[Na]){let c=parseInt(e[Na]);if(isNaN(c)&&(c=zn.zhStringToNumber(e[Na])),c>=60)return null;i.end.assign("second",c)}if(a=parseInt(e[Dc]),isNaN(a)&&(a=zn.zhStringToNumber(e[Dc])),e[Vn]?e[Vn]=="\u534A"?o=30:e[Vn]=="\u6B63"||e[Vn]=="\u6574"?o=0:(o=parseInt(e[Vn]),isNaN(o)&&(o=zn.zhStringToNumber(e[Vn]))):a>100&&(o=a%100,a=Math.floor(a/100)),o>=60||a>24)return null;if(a>=12&&(l=1),e[xc]){if(a>12)return null;let c=e[xc][0].toLowerCase();c=="a"&&(l=0,a==12&&(a=0)),c=="p"&&(l=1,a!=12&&(a+=12)),i.start.isCertain("meridiem")||(l==0?(i.start.imply("meridiem",0),i.start.get("hour")==12&&i.start.assign("hour",0)):(i.start.imply("meridiem",1),i.start.get("hour")!=12&&i.start.assign("hour",i.start.get("hour")+12)))}else if(e[wc]){let d=e[wc][0];d=="\u65E9"?(l=0,a==12&&(a=0)):d=="\u665A"&&(l=1,a!=12&&(a+=12))}else if(e[kc]){let d=e[kc][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(l=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(l=1,a!=12&&(a+=12))}else if(e[Ec]){let d=e[Ec][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(l=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(l=1,a!=12&&(a+=12))}return i.text=i.text+e[0],i.end.assign("hour",a),i.end.assign("minute",o),l>=0?i.end.assign("meridiem",l):i.start.isCertain("meridiem")&&i.start.get("meridiem")==1&&i.start.get("hour")>a?i.end.imply("meridiem",0):a>12&&i.end.imply("meridiem",1),i.end.date().getTime()<i.start.date().getTime()&&i.end.imply("day",i.end.get("day")+1),i}};Al.default=eg});var Gw=x(Pl=>{"use strict";var gI=Pl&&Pl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Pl,"__esModule",{value:!0});var yI=gI(Ue()),bI=re(),Hw=Pa(),TI=new RegExp("(?:\u661F\u671F|\u793C\u62DC|\u5468)(?<weekday>"+Object.keys(Hw.WEEKDAY_OFFSET).join("|")+")"),tg=class extends bI.AbstractParserWithWordBoundaryChecking{innerPattern(){return TI}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=e.groups.weekday,s=Hw.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=yI.default(t.refDate),o=!1,l=a.day();return Math.abs(s-7-l)<Math.abs(s-l)?a=a.day(s-7):Math.abs(s+7-l)<Math.abs(s-l)?a=a.day(s+7):a=a.day(s),r.start.assign("weekday",s),o?(r.start.assign("day",a.date()),r.start.assign("month",a.month()+1),r.start.assign("year",a.year())):(r.start.imply("day",a.date()),r.start.imply("month",a.month()+1),r.start.imply("year",a.year())),r}};Pl.default=tg});var Bw=x(Nl=>{"use strict";var _I=Nl&&Nl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Nl,"__esModule",{value:!0});var vI=_I(Wr()),ng=class extends vI.default{patternBetween(){return/^\s*(至|到|-|~|~|-|ー)\s*$/i}};Nl.default=ng});var Vw=x(Il=>{"use strict";var wI=Il&&Il.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Il,"__esModule",{value:!0});var kI=wI(si()),rg=class extends kI.default{patternBetween(){return/^\s*$/i}};Il.default=rg});var zw=x(ct=>{"use strict";var fi=ct&&ct.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ct,"__esModule",{value:!0});ct.createConfiguration=ct.createCasualConfiguration=ct.parseDate=ct.parse=ct.strict=ct.casual=ct.hans=void 0;var ig=yr(),SI=fi(Qu()),EI=ai(),DI=fi(Fw()),xI=fi(Uw()),OI=fi(jw()),CI=fi($w()),MI=fi(qw()),RI=fi(Gw()),AI=fi(Bw()),PI=fi(Vw());ct.hans=new ig.Chrono(sg());ct.casual=new ig.Chrono(sg());ct.strict=new ig.Chrono(ag());function NI(n,t,e){return ct.casual.parse(n,t,e)}ct.parse=NI;function II(n,t,e){return ct.casual.parseDate(n,t,e)}ct.parseDate=II;function sg(){let n=ag();return n.parsers.unshift(new DI.default),n}ct.createCasualConfiguration=sg;function ag(){let n=EI.includeCommonConfiguration({parsers:[new xI.default,new CI.default,new RI.default,new MI.default,new OI.default],refiners:[new AI.default,new PI.default]});return n.refiners=n.refiners.filter(t=>!(t instanceof SI.default)),n}ct.createConfiguration=ag});var Qw=x(En=>{"use strict";var Kw=En&&En.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),FI=En&&En.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),LI=En&&En.__exportStar||function(n,t){for(var e in n)e!=="default"&&!Object.prototype.hasOwnProperty.call(t,e)&&Kw(t,n,e)},UI=En&&En.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&Kw(t,n,e);return FI(t,n),t};Object.defineProperty(En,"__esModule",{value:!0});En.hans=void 0;LI(Aw(),En);En.hans=UI(zw())});var dn=x(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.parseTimeUnits=Se.TIME_UNITS_PATTERN=Se.parseYear=Se.YEAR_PATTERN=Se.parseOrdinalNumberPattern=Se.ORDINAL_NUMBER_PATTERN=Se.parseNumberPattern=Se.NUMBER_PATTERN=Se.TIME_UNIT_DICTIONARY=Se.ORDINAL_WORD_DICTIONARY=Se.INTEGER_WORD_DICTIONARY=Se.MONTH_DICTIONARY=Se.FULL_MONTH_NAME_DICTIONARY=Se.WEEKDAY_DICTIONARY=Se.REGEX_PARTS=void 0;var Oc=Ke(),YI=Ct();Se.REGEX_PARTS={leftBoundary:"([^\\p{L}\\p{N}_]|^)",rightBoundary:"(?=[^\\p{L}\\p{N}_]|$)",flags:"iu"};Se.WEEKDAY_DICTIONARY={\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435:0,\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u044F:0,\u0432\u0441\u043A:0,"\u0432\u0441\u043A.":0,\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A:1,\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A\u0430:1,\u043F\u043D:1,"\u043F\u043D.":1,\u0432\u0442\u043E\u0440\u043D\u0438\u043A:2,\u0432\u0442\u043E\u0440\u043D\u0438\u043A\u0430:2,\u0432\u0442:2,"\u0432\u0442.":2,\u0441\u0440\u0435\u0434\u0430:3,\u0441\u0440\u0435\u0434\u044B:3,\u0441\u0440\u0435\u0434\u0443:3,\u0441\u0440:3,"\u0441\u0440.":3,\u0447\u0435\u0442\u0432\u0435\u0440\u0433:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430:4,\u0447\u0442:4,"\u0447\u0442.":4,\u043F\u044F\u0442\u043D\u0438\u0446\u0430:5,\u043F\u044F\u0442\u043D\u0438\u0446\u0443:5,\u043F\u044F\u0442\u043D\u0438\u0446\u044B:5,\u043F\u0442:5,"\u043F\u0442.":5,\u0441\u0443\u0431\u0431\u043E\u0442\u0430:6,\u0441\u0443\u0431\u0431\u043E\u0442\u0443:6,\u0441\u0443\u0431\u0431\u043E\u0442\u044B:6,\u0441\u0431:6,"\u0441\u0431.":6};Se.FULL_MONTH_NAME_DICTIONARY={\u044F\u043D\u0432\u0430\u0440\u044C:1,\u044F\u043D\u0432\u0430\u0440\u044F:1,\u044F\u043D\u0432\u0430\u0440\u0435:1,\u0444\u0435\u0432\u0440\u044F\u043B\u044C:2,\u0444\u0435\u0432\u0440\u044F\u043B\u044F:2,\u0444\u0435\u0432\u0440\u044F\u043B\u0435:2,\u043C\u0430\u0440\u0442:3,\u043C\u0430\u0440\u0442\u0430:3,\u043C\u0430\u0440\u0442\u0435:3,\u0430\u043F\u0440\u0435\u043B\u044C:4,\u0430\u043F\u0440\u0435\u043B\u044F:4,\u0430\u043F\u0440\u0435\u043B\u0435:4,\u043C\u0430\u0439:5,\u043C\u0430\u044F:5,\u043C\u0430\u0435:5,\u0438\u044E\u043D\u044C:6,\u0438\u044E\u043D\u044F:6,\u0438\u044E\u043D\u0435:6,\u0438\u044E\u043B\u044C:7,\u0438\u044E\u043B\u044F:7,\u0438\u044E\u043B\u0435:7,\u0430\u0432\u0433\u0443\u0441\u0442:8,\u0430\u0432\u0433\u0443\u0441\u0442\u0430:8,\u0430\u0432\u0433\u0443\u0441\u0442\u0435:8,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044C:9,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044F:9,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u0435:9,\u043E\u043A\u0442\u044F\u0431\u0440\u044C:10,\u043E\u043A\u0442\u044F\u0431\u0440\u044F:10,\u043E\u043A\u0442\u044F\u0431\u0440\u0435:10,\u043D\u043E\u044F\u0431\u0440\u044C:11,\u043D\u043E\u044F\u0431\u0440\u044F:11,\u043D\u043E\u044F\u0431\u0440\u0435:11,\u0434\u0435\u043A\u0430\u0431\u0440\u044C:12,\u0434\u0435\u043A\u0430\u0431\u0440\u044F:12,\u0434\u0435\u043A\u0430\u0431\u0440\u0435:12};Se.MONTH_DICTIONARY=Object.assign(Object.assign({},Se.FULL_MONTH_NAME_DICTIONARY),{\u044F\u043D\u0432:1,"\u044F\u043D\u0432.":1,\u0444\u0435\u0432:2,"\u0444\u0435\u0432.":2,\u043C\u0430\u0440:3,"\u043C\u0430\u0440.":3,\u0430\u043F\u0440:4,"\u0430\u043F\u0440.":4,\u0430\u0432\u0433:8,"\u0430\u0432\u0433.":8,\u0441\u0435\u043D:9,"\u0441\u0435\u043D.":9,\u043E\u043A\u0442:10,"\u043E\u043A\u0442.":10,\u043D\u043E\u044F:11,"\u043D\u043E\u044F.":11,\u0434\u0435\u043A:12,"\u0434\u0435\u043A.":12});Se.INTEGER_WORD_DICTIONARY={\u043E\u0434\u0438\u043D:1,\u043E\u0434\u043D\u0430:1,\u043E\u0434\u043D\u043E\u0439:1,\u043E\u0434\u043D\u0443:1,\u0434\u0432\u0435:2,\u0434\u0432\u0430:2,\u0434\u0432\u0443\u0445:2,\u0442\u0440\u0438:3,\u0442\u0440\u0435\u0445:3,\u0442\u0440\u0451\u0445:3,\u0447\u0435\u0442\u044B\u0440\u0435:4,\u0447\u0435\u0442\u044B\u0440\u0435\u0445:4,\u0447\u0435\u0442\u044B\u0440\u0451\u0445:4,\u043F\u044F\u0442\u044C:5,\u043F\u044F\u0442\u0438:5,\u0448\u0435\u0441\u0442\u044C:6,\u0448\u0435\u0441\u0442\u0438:6,\u0441\u0435\u043C\u044C:7,\u0441\u0435\u043C\u0438:7,\u0432\u043E\u0441\u0435\u043C\u044C:8,\u0432\u043E\u0441\u0435\u043C\u044C\u043C\u0438:8,\u0434\u0435\u0432\u044F\u0442\u044C:9,\u0434\u0435\u0432\u044F\u0442\u0438:9,\u0434\u0435\u0441\u044F\u0442\u044C:10,\u0434\u0435\u0441\u044F\u0442\u0438:10,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u044C:11,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u0438:11,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u044C:12,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u0438:12};Se.ORDINAL_WORD_DICTIONARY={\u043F\u0435\u0440\u0432\u043E\u0435:1,\u043F\u0435\u0440\u0432\u043E\u0433\u043E:1,\u0432\u0442\u043E\u0440\u043E\u0435:2,\u0432\u0442\u043E\u0440\u043E\u0433\u043E:2,\u0442\u0440\u0435\u0442\u044C\u0435:3,\u0442\u0440\u0435\u0442\u044C\u0435\u0433\u043E:3,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E:4,\u043F\u044F\u0442\u043E\u0435:5,\u043F\u044F\u0442\u043E\u0433\u043E:5,\u0448\u0435\u0441\u0442\u043E\u0435:6,\u0448\u0435\u0441\u0442\u043E\u0433\u043E:6,\u0441\u0435\u0434\u044C\u043C\u043E\u0435:7,\u0441\u0435\u0434\u044C\u043C\u043E\u0433\u043E:7,\u0432\u043E\u0441\u044C\u043C\u043E\u0435:8,\u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E:8,\u0434\u0435\u0432\u044F\u0442\u043E\u0435:9,\u0434\u0435\u0432\u044F\u0442\u043E\u0433\u043E:9,\u0434\u0435\u0441\u044F\u0442\u043E\u0435:10,\u0434\u0435\u0441\u044F\u0442\u043E\u0433\u043E:10,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:11,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:11,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:12,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:12,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:13,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:13,\u0447\u0435\u0442\u044B\u0440\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:14,\u0447\u0435\u0442\u044B\u0440\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:14,\u043F\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:15,\u043F\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:15,\u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:16,\u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:16,\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:17,\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:17,\u0432\u043E\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:18,\u0432\u043E\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:18,\u0434\u0435\u0432\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:19,\u0434\u0435\u0432\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:19,\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043E\u0435:20,\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:20,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435":21,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0433\u043E":21,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u0442\u043E\u0440\u043E\u0435":22,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u0442\u043E\u0440\u043E\u0433\u043E":22,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u0435":23,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u0435\u0433\u043E":23,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435":24,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E":24,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u044F\u0442\u043E\u0435":25,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u044F\u0442\u043E\u0433\u043E":25,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0448\u0435\u0441\u0442\u043E\u0435":26,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0448\u0435\u0441\u0442\u043E\u0433\u043E":26,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0441\u0435\u0434\u044C\u043C\u043E\u0435":27,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0441\u0435\u0434\u044C\u043C\u043E\u0433\u043E":27,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0435":28,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E":28,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0434\u0435\u0432\u044F\u0442\u043E\u0435":29,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0434\u0435\u0432\u044F\u0442\u043E\u0433\u043E":29,\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u043E\u0435:30,\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u043E\u0433\u043E:30,"\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435":31,"\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0433\u043E":31};Se.TIME_UNIT_DICTIONARY={\u0441\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u044B:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0443:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0438:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0443:"second",\u043C\u0438\u043D:"minute",\u043C\u0438\u043D\u0443\u0442\u0430:"minute",\u043C\u0438\u043D\u0443\u0442:"minute",\u043C\u0438\u043D\u0443\u0442\u044B:"minute",\u043C\u0438\u043D\u0443\u0442\u0443:"minute",\u043C\u0438\u043D\u0443\u0442\u043E\u043A:"minute",\u043C\u0438\u043D\u0443\u0442\u043A\u0438:"minute",\u043C\u0438\u043D\u0443\u0442\u043A\u0443:"minute",\u0447\u0430\u0441:"hour",\u0447\u0430\u0441\u043E\u0432:"hour",\u0447\u0430\u0441\u0430:"hour",\u0447\u0430\u0441\u0443:"hour",\u0447\u0430\u0441\u0438\u043A\u043E\u0432:"hour",\u0447\u0430\u0441\u0438\u043A\u0430:"hour",\u0447\u0430\u0441\u0438\u043A\u0435:"hour",\u0447\u0430\u0441\u0438\u043A:"hour",\u0434\u0435\u043D\u044C:"d",\u0434\u043D\u044F:"d",\u0434\u043D\u0435\u0439:"d",\u0441\u0443\u0442\u043E\u043A:"d",\u0441\u0443\u0442\u043A\u0438:"d",\u043D\u0435\u0434\u0435\u043B\u044F:"week",\u043D\u0435\u0434\u0435\u043B\u0435:"week",\u043D\u0435\u0434\u0435\u043B\u0438:"week",\u043D\u0435\u0434\u0435\u043B\u044E:"week",\u043D\u0435\u0434\u0435\u043B\u044C:"week",\u043D\u0435\u0434\u0435\u043B\u044C\u043A\u0435:"week",\u043D\u0435\u0434\u0435\u043B\u044C\u043A\u0438:"week",\u043D\u0435\u0434\u0435\u043B\u0435\u043A:"week",\u043C\u0435\u0441\u044F\u0446:"month",\u043C\u0435\u0441\u044F\u0446\u0435:"month",\u043C\u0435\u0441\u044F\u0446\u0435\u0432:"month",\u043C\u0435\u0441\u044F\u0446\u0430:"month",\u043A\u0432\u0430\u0440\u0442\u0430\u043B:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0435:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u043E\u0432:"quarter",\u0433\u043E\u0434:"year",\u0433\u043E\u0434\u0430:"year",\u0433\u043E\u0434\u0443:"year",\u0433\u043E\u0434\u043E\u0432:"year",\u043B\u0435\u0442:"year",\u0433\u043E\u0434\u0438\u043A:"year",\u0433\u043E\u0434\u0438\u043A\u0430:"year",\u0433\u043E\u0434\u0438\u043A\u043E\u0432:"year"};Se.NUMBER_PATTERN=`(?:${Oc.matchAnyPattern(Se.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|\u043F\u043E\u043B|\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E|\u043F\u0430\u0440(?:\u044B|\u0443)|\\s{0,3})`;function Zw(n){let t=n.toLowerCase();return Se.INTEGER_WORD_DICTIONARY[t]!==void 0?Se.INTEGER_WORD_DICTIONARY[t]:t.match(/несколько/)?3:t.match(/пол/)?.5:t.match(/пар/)?2:t===""?1:parseFloat(t)}Se.parseNumberPattern=Zw;Se.ORDINAL_NUMBER_PATTERN=`(?:${Oc.matchAnyPattern(Se.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:\u0433\u043E|\u043E\u0433\u043E|\u0435|\u043E\u0435)?)`;function jI(n){let t=n.toLowerCase();return Se.ORDINAL_WORD_DICTIONARY[t]!==void 0?Se.ORDINAL_WORD_DICTIONARY[t]:(t=t.replace(/(?:st|nd|rd|th)$/i,""),parseInt(t))}Se.parseOrdinalNumberPattern=jI;var og="(?:\\s+(?:\u0433\u043E\u0434\u0443|\u0433\u043E\u0434\u0430|\u0433\u043E\u0434|\u0433|\u0433.))?";Se.YEAR_PATTERN=`(?:[1-9][0-9]{0,3}${og}\\s*(?:\u043D.\u044D.|\u0434\u043E \u043D.\u044D.|\u043D. \u044D.|\u0434\u043E \u043D. \u044D.)|[1-2][0-9]{3}${og}|[5-9][0-9]${og})`;function WI(n){if(/(год|года|г|г.)/i.test(n)&&(n=n.replace(/(год|года|г|г.)/i,"")),/(до н.э.|до н. э.)/i.test(n))return n=n.replace(/(до н.э.|до н. э.)/i,""),-parseInt(n);if(/(н. э.|н.э.)/i.test(n))return n=n.replace(/(н. э.|н.э.)/i,""),parseInt(n);let t=parseInt(n);return YI.findMostLikelyADYear(t)}Se.parseYear=WI;var Jw=`(${Se.NUMBER_PATTERN})\\s{0,3}(${Oc.matchAnyPattern(Se.TIME_UNIT_DICTIONARY)})`,Xw=new RegExp(Jw,"i");Se.TIME_UNITS_PATTERN=Oc.repeatedTimeunitPattern("(?:(?:\u043E\u043A\u043E\u043B\u043E|\u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E)\\s{0,3})?",Jw);function $I(n){let t={},e=n,r=Xw.exec(e);for(;r;)qI(t,r),e=e.substring(r[0].length).trim(),r=Xw.exec(e);return t}Se.parseTimeUnits=$I;function qI(n,t){let e=Zw(t[1]),r=Se.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var tk=x(ug=>{"use strict";Object.defineProperty(ug,"__esModule",{value:!0});var Fl=dn(),HI=nt(),GI=re(),ek=`(?:(?:\u043E\u043A\u043E\u043B\u043E|\u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E)\\s*(?:~\\s*)?)?(${Fl.TIME_UNITS_PATTERN})${Fl.REGEX_PARTS.rightBoundary}`,BI=new RegExp(`(?:\u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435|\u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0438)\\s*${ek}`,Fl.REGEX_PARTS.flags),VI=new RegExp(ek,"i"),lg=class extends GI.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Fl.REGEX_PARTS.leftBoundary}innerPattern(t){return t.option.forwardDate?VI:BI}innerExtract(t,e){let r=Fl.parseTimeUnits(e[1]);return HI.ParsingComponents.createRelativeFromReference(t.reference,r)}};ug.default=lg});var ak=x(dg=>{"use strict";Object.defineProperty(dg,"__esModule",{value:!0});var zI=Ct(),Ll=dn(),sk=dn(),Cc=dn(),KI=Ke(),QI=re(),XI=new RegExp(`(?:\u0441)?\\s*(${Cc.ORDINAL_NUMBER_PATTERN})(?:\\s{0,3}(?:\u043F\u043E|-|\u2013|\u0434\u043E)?\\s{0,3}(${Cc.ORDINAL_NUMBER_PATTERN}))?(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})(${KI.matchAnyPattern(Ll.MONTH_DICTIONARY)})(?:(?:-|\\/|,?\\s{0,3})(${sk.YEAR_PATTERN}(?![^\\s]\\d)))?${Ll.REGEX_PARTS.rightBoundary}`,Ll.REGEX_PARTS.flags),nk=1,rk=2,ZI=3,ik=4,cg=class extends QI.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Ll.REGEX_PARTS.leftBoundary}innerPattern(){return XI}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=Ll.MONTH_DICTIONARY[e[ZI].toLowerCase()],s=Cc.parseOrdinalNumberPattern(e[nk]);if(s>31)return e.index=e.index+e[nk].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[ik]){let a=sk.parseYear(e[ik]);r.start.assign("year",a)}else{let a=zI.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[rk]){let a=Cc.parseOrdinalNumberPattern(e[rk]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};dg.default=cg});var uk=x(pg=>{"use strict";Object.defineProperty(pg,"__esModule",{value:!0});var Ul=dn(),JI=Ct(),eF=Ke(),lk=dn(),tF=re(),nF=new RegExp(`((?:\u0432)\\s*)?(${eF.matchAnyPattern(Ul.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${lk.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,Ul.REGEX_PARTS.flags),rF=2,ok=3,fg=class extends tF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Ul.REGEX_PARTS.leftBoundary}innerPattern(){return nF}innerExtract(t,e){let r=e[rF].toLowerCase();if(e[0].length<=3&&!Ul.FULL_MONTH_NAME_DICTIONARY[r])return null;let i=t.createParsingResult(e.index,e.index+e[0].length);i.start.imply("day",1);let s=Ul.MONTH_DICTIONARY[r];if(i.start.assign("month",s),e[ok]){let a=lk.parseYear(e[ok]);i.start.assign("year",a)}else{let a=JI.findYearClosestToRef(t.refDate,1,s);i.start.imply("year",a)}return i}};pg.default=fg});var dk=x(hg=>{"use strict";Object.defineProperty(hg,"__esModule",{value:!0});var Mc=ht(),iF=Ts(),ck=dn(),mg=class extends iF.AbstractTimeExpressionParser{constructor(t){super(t)}patternFlags(){return ck.REGEX_PARTS.flags}primaryPatternLeftBoundary(){return"(^|\\s|T|(?:[^\\p{L}\\p{N}_]))"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|\u0434\u043E|\u0438|\u043F\u043E|\\?)\\s*"}primaryPrefix(){return"(?:(?:\u0432|\u0441)\\s*)??"}primarySuffix(){return`(?:\\s*(?:\u0443\u0442\u0440\u0430|\u0432\u0435\u0447\u0435\u0440\u0430|\u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0434\u043D\u044F))?(?!\\/)${ck.REGEX_PARTS.rightBoundary}`}extractPrimaryTimeComponents(t,e){let r=super.extractPrimaryTimeComponents(t,e);if(r){if(e[0].endsWith("\u0432\u0435\u0447\u0435\u0440\u0430")){let i=r.get("hour");i>=6&&i<12?(r.assign("hour",r.get("hour")+12),r.assign("meridiem",Mc.Meridiem.PM)):i<6&&r.assign("meridiem",Mc.Meridiem.AM)}if(e[0].endsWith("\u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0434\u043D\u044F")){r.assign("meridiem",Mc.Meridiem.PM);let i=r.get("hour");i>=0&&i<=6&&r.assign("hour",r.get("hour")+12)}e[0].endsWith("\u0443\u0442\u0440\u0430")&&(r.assign("meridiem",Mc.Meridiem.AM),r.get("hour")<12&&r.assign("hour",r.get("hour")))}return r}};hg.default=mg});var fk=x(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0});var Rc=dn(),sF=nt(),aF=re(),oF=qn(),lF=new RegExp(`(${Rc.TIME_UNITS_PATTERN})\\s{0,5}\u043D\u0430\u0437\u0430\u0434(?=(?:\\W|$))`,Rc.REGEX_PARTS.flags),gg=class extends aF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Rc.REGEX_PARTS.leftBoundary}innerPattern(){return lF}innerExtract(t,e){let r=Rc.parseTimeUnits(e[1]),i=oF.reverseTimeUnits(r);return sF.ParsingComponents.createRelativeFromReference(t.reference,i)}};yg.default=gg});var pk=x(Yl=>{"use strict";var uF=Yl&&Yl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Yl,"__esModule",{value:!0});var cF=uF(Wr()),bg=class extends cF.default{patternBetween(){return/^\s*(и до|и по|до|по|-)\s*$/i}};Yl.default=bg});var mk=x(jl=>{"use strict";var dF=jl&&jl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(jl,"__esModule",{value:!0});var fF=dF(si()),Tg=class extends fF.default{patternBetween(){return new RegExp("^\\s*(T|\u0432|,|-)?\\s*$")}};jl.default=Tg});var hk=x(pi=>{"use strict";var pF=pi&&pi.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),mF=pi&&pi.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),hF=pi&&pi.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&pF(t,n,e);return mF(t,n),t};Object.defineProperty(pi,"__esModule",{value:!0});var gF=re(),Wl=hF(li()),_g=dn(),yF=new RegExp(`(?:\u0441|\u0441\u043E)?\\s*(\u0441\u0435\u0433\u043E\u0434\u043D\u044F|\u0432\u0447\u0435\u0440\u0430|\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430)${_g.REGEX_PARTS.rightBoundary}`,_g.REGEX_PARTS.flags),vg=class extends gF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return _g.REGEX_PARTS.leftBoundary}innerPattern(t){return yF}innerExtract(t,e){let r=e[1].toLowerCase(),i=t.createParsingComponents();switch(r){case"\u0441\u0435\u0433\u043E\u0434\u043D\u044F":return Wl.today(t.reference);case"\u0432\u0447\u0435\u0440\u0430":return Wl.yesterday(t.reference);case"\u0437\u0430\u0432\u0442\u0440\u0430":return Wl.tomorrow(t.reference);case"\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430":return Wl.theDayAfter(t.reference,2);case"\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430":return Wl.theDayBefore(t.reference,2)}return i}};pi.default=vg});var gk=x(wr=>{"use strict";var bF=wr&&wr.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),TF=wr&&wr.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),_F=wr&&wr.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&bF(t,n,e);return TF(t,n),t},vF=wr&&wr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(wr,"__esModule",{value:!0});var wF=re(),xs=_F(li()),kF=$n(),SF=vF(Ue()),wg=dn(),EF=new RegExp(`(\u0441\u0435\u0439\u0447\u0430\u0441|\u043F\u0440\u043E\u0448\u043B\u044B\u043C\\s*\u0432\u0435\u0447\u0435\u0440\u043E\u043C|\u043F\u0440\u043E\u0448\u043B\u043E\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u0441\u0435\u0433\u043E\u0434\u043D\u044F\\s*\u043D\u043E\u0447\u044C\u044E|\u044D\u0442\u043E\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u043D\u043E\u0447\u044C\u044E|\u044D\u0442\u0438\u043C \u0443\u0442\u0440\u043E\u043C|\u0443\u0442\u0440\u043E\u043C|\u0443\u0442\u0440\u0430|\u0432\\s*\u043F\u043E\u043B\u0434\u0435\u043D\u044C|\u0432\u0435\u0447\u0435\u0440\u043E\u043C|\u0432\u0435\u0447\u0435\u0440\u0430|\u0432\\s*\u043F\u043E\u043B\u043D\u043E\u0447\u044C)${wg.REGEX_PARTS.rightBoundary}`,wg.REGEX_PARTS.flags),kg=class extends wF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return wg.REGEX_PARTS.leftBoundary}innerPattern(){return EF}innerExtract(t,e){let r=SF.default(t.refDate),i=e[0].toLowerCase(),s=t.createParsingComponents();if(i==="\u0441\u0435\u0439\u0447\u0430\u0441")return xs.now(t.reference);if(i==="\u0432\u0435\u0447\u0435\u0440\u043E\u043C"||i==="\u0432\u0435\u0447\u0435\u0440\u0430")return xs.evening(t.reference);if(i.endsWith("\u0443\u0442\u0440\u043E\u043C")||i.endsWith("\u0443\u0442\u0440\u0430"))return xs.morning(t.reference);if(i.match(/в\s*полдень/))return xs.noon(t.reference);if(i.match(/прошлой\s*ночью/))return xs.lastNight(t.reference);if(i.match(/прошлым\s*вечером/))return xs.yesterdayEvening(t.reference);if(i.match(/следующей\s*ночью/)){let a=r.hour()<22?1:2;r=r.add(a,"day"),kF.assignSimilarDate(s,r),s.imply("hour",0)}return i.match(/в\s*полночь/)||i.endsWith("\u043D\u043E\u0447\u044C\u044E")?xs.midnight(t.reference):s}};wr.default=kg});var yk=x(Eg=>{"use strict";Object.defineProperty(Eg,"__esModule",{value:!0});var $l=dn(),DF=Ke(),xF=re(),OF=vs(),CF=new RegExp(`(?:(?:,|\\(|\uFF08)\\s*)?(?:\u0432\\s*?)?(?:(\u044D\u0442\u0443|\u044D\u0442\u043E\u0442|\u043F\u0440\u043E\u0448\u043B\u044B\u0439|\u043F\u0440\u043E\u0448\u043B\u0443\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E)\\s*)?(${DF.matchAnyPattern($l.WEEKDAY_DICTIONARY)})(?:\\s*(?:,|\\)|\uFF09))?(?:\\s*\u043D\u0430\\s*(\u044D\u0442\u043E\u0439|\u043F\u0440\u043E\u0448\u043B\u043E\u0439|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439)\\s*\u043D\u0435\u0434\u0435\u043B\u0435)?${$l.REGEX_PARTS.rightBoundary}`,$l.REGEX_PARTS.flags),MF=1,RF=2,AF=3,Sg=class extends xF.AbstractParserWithWordBoundaryChecking{innerPattern(){return CF}patternLeftBoundary(){return $l.REGEX_PARTS.leftBoundary}innerExtract(t,e){let r=e[RF].toLowerCase(),i=$l.WEEKDAY_DICTIONARY[r],s=e[MF],a=e[AF],o=s||a;o=o||"",o=o.toLowerCase();let l=null;o=="\u043F\u0440\u043E\u0448\u043B\u044B\u0439"||o=="\u043F\u0440\u043E\u0448\u043B\u0443\u044E"||o=="\u043F\u0440\u043E\u0448\u043B\u043E\u0439"?l="last":o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E"?l="next":(o=="\u044D\u0442\u043E\u0442"||o=="\u044D\u0442\u0443"||o=="\u044D\u0442\u043E\u0439")&&(l="this");let u=OF.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};Eg.default=Sg});var Tk=x(Hl=>{"use strict";var PF=Hl&&Hl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Hl,"__esModule",{value:!0});var ql=dn(),bk=nt(),NF=PF(Ue()),IF=re(),FF=Ke(),LF=new RegExp(`(\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C|\u043D\u0430 \u043F\u0440\u043E\u0448\u043B\u043E\u0439|\u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439|\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C|\u043D\u0430 \u044D\u0442\u043E\u0439|\u0432 \u044D\u0442\u043E\u043C)\\s*(${FF.matchAnyPattern(ql.TIME_UNIT_DICTIONARY)})(?=\\s*)${ql.REGEX_PARTS.rightBoundary}`,ql.REGEX_PARTS.flags),UF=1,YF=2,Dg=class extends IF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return ql.REGEX_PARTS.leftBoundary}innerPattern(){return LF}innerExtract(t,e){let r=e[UF].toLowerCase(),i=e[YF].toLowerCase(),s=ql.TIME_UNIT_DICTIONARY[i];if(r=="\u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439"||r=="\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C"){let l={};return l[s]=1,bk.ParsingComponents.createRelativeFromReference(t.reference,l)}if(r=="\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C"||r=="\u043D\u0430 \u043F\u0440\u043E\u0448\u043B\u043E\u0439"){let l={};return l[s]=-1,bk.ParsingComponents.createRelativeFromReference(t.reference,l)}let a=t.createParsingComponents(),o=NF.default(t.reference.instant);return s.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):s.match(/month/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):s.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};Hl.default=Dg});var _k=x(Og=>{"use strict";Object.defineProperty(Og,"__esModule",{value:!0});var Gl=dn(),jF=nt(),WF=re(),$F=qn(),qF=new RegExp(`(\u044D\u0442\u0438|\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435|\u043F\u0440\u043E\u0448\u043B\u044B\u0435|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435|\u043F\u043E\u0441\u043B\u0435|\u0447\u0435\u0440\u0435\u0437|\\+|-)\\s*(${Gl.TIME_UNITS_PATTERN})${Gl.REGEX_PARTS.rightBoundary}`,Gl.REGEX_PARTS.flags),xg=class extends WF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Gl.REGEX_PARTS.leftBoundary}innerPattern(){return qF}innerExtract(t,e){let r=e[1].toLowerCase(),i=Gl.parseTimeUnits(e[2]);switch(r){case"\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435":case"\u043F\u0440\u043E\u0448\u043B\u044B\u0435":case"-":i=$F.reverseTimeUnits(i);break}return jF.ParsingComponents.createRelativeFromReference(t.reference,i)}};Og.default=xg});var kk=x(St=>{"use strict";var Dn=St&&St.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(St,"__esModule",{value:!0});St.createConfiguration=St.createCasualConfiguration=St.parseDate=St.parse=St.strict=St.casual=void 0;var HF=Dn(tk()),GF=Dn(ak()),BF=Dn(uk()),VF=Dn(dk()),zF=Dn(fk()),KF=Dn(pk()),QF=Dn(mk()),XF=ai(),ZF=Dn(hk()),JF=Dn(gk()),eL=Dn(yk()),tL=Dn(Tk()),vk=yr(),nL=Dn(ws()),rL=Dn(_k());St.casual=new vk.Chrono(wk());St.strict=new vk.Chrono(Cg(!0));function iL(n,t,e){return St.casual.parse(n,t,e)}St.parse=iL;function sL(n,t,e){return St.casual.parseDate(n,t,e)}St.parseDate=sL;function wk(){let n=Cg(!1);return n.parsers.unshift(new ZF.default),n.parsers.unshift(new JF.default),n.parsers.unshift(new BF.default),n.parsers.unshift(new tL.default),n.parsers.unshift(new rL.default),n}St.createCasualConfiguration=wk;function Cg(n=!0){return XF.includeCommonConfiguration({parsers:[new nL.default(!0),new HF.default,new GF.default,new eL.default,new VF.default(n),new zF.default],refiners:[new QF.default,new KF.default]},n)}St.createConfiguration=Cg});var ht=x(Re=>{"use strict";var aL=Re&&Re.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),oL=Re&&Re.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),ji=Re&&Re.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&aL(t,n,e);return oL(t,n),t};Object.defineProperty(Re,"__esModule",{value:!0});Re.parseDate=Re.parse=Re.casual=Re.strict=Re.ru=Re.zh=Re.nl=Re.pt=Re.ja=Re.fr=Re.de=Re.Meridiem=Re.Chrono=Re.en=void 0;var Mg=ji(Vp());Re.en=Mg;var lL=yr();Object.defineProperty(Re,"Chrono",{enumerable:!0,get:function(){return lL.Chrono}});var uL;(function(n){n[n.AM=0]="AM",n[n.PM=1]="PM"})(uL=Re.Meridiem||(Re.Meridiem={}));var cL=ji(A_());Re.de=cL;var dL=ji(ov());Re.fr=dL;var fL=ji(gv());Re.ja=fL;var pL=ji(Av());Re.pt=pL;var mL=ji(gw());Re.nl=mL;var hL=ji(Qw());Re.zh=hL;var gL=ji(kk());Re.ru=gL;Re.strict=Mg.strict;Re.casual=Mg.casual;function yL(n,t,e){return Re.casual.parse(n,t,e)}Re.parse=yL;function bL(n,t,e){return Re.casual.parseDate(n,t,e)}Re.parseDate=bL});var Jt,Rg=ee(()=>{"use strict";Jt=class{constructor(t,e){this.start=t,this.end=e,e.isBefore(t)&&(this.start=e,this.end=t),this.start=this.start.startOf("day"),this.end=this.end.startOf("day")}static buildRelative(t){let e=t==="week"?"isoWeek":t;return new Jt(window.moment().startOf(e).startOf("day"),window.moment().endOf(e).startOf("day"))}static buildInvalid(){return new Jt(window.moment.invalid(),window.moment.invalid())}isValid(){return this.start.isValid()&&this.end.isValid()}moveToPrevious(t){let e=window.moment.duration(1,t);this.start.subtract(e),this.end.subtract(e),(t==="month"||t==="quarter")&&(this.end=this.end.endOf(t).startOf("day"))}moveToNext(t){let e=window.moment.duration(1,t);this.start.add(e),this.end.add(e),(t==="month"||t==="quarter")&&(this.end=this.end.endOf(t).startOf("day"))}}});var Ac,xn,Ag=ee(()=>{"use strict";Ac=qo(ht());Rg();xn=class{static parseDate(t,e=!1){return window.moment(Ac.parseDate(t,void 0,{forwardDate:e})).startOf("day")}static parseDateRange(t,e=!1){let r=[xn.parseRelativeDateRange,xn.parseNumberedDateRange,xn.parseAbsoluteDateRange];for(let i of r){let s=i(t,e);if(s.isValid())return s}return Jt.buildInvalid()}static parseAbsoluteDateRange(t,e){let r=Ac.parse(t,void 0,{forwardDate:e});if(r.length===0)return Jt.buildInvalid();let i=r[0].start,s=r[1]&&r[1].start?r[1].start:i,a=window.moment(i.date()),o=window.moment(s.date());return new Jt(a,o)}static parseRelativeDateRange(t,e){let r=/(last|this|next) (week|month|quarter|year)/,i=t.match(r);if(i&&i.length===3){let s=i[1],a=i[2],o=Jt.buildRelative(a);switch(s){case"last":o.moveToPrevious(a);break;case"next":o.moveToNext(a);break}return o}return Jt.buildInvalid()}static parseNumberedDateRange(t,e){let r=[[/^\s*[0-9]{4}\s*$/,"YYYY","year"],[/^\s*[0-9]{4}-Q[1-4]\s*$/,"YYYY-Q","quarter"],[/^\s*[0-9]{4}-[0-9]{2}\s*$/,"YYYY-MM","month"],[/^\s*[0-9]{4}-W[0-9]{2}\s*$/,"YYYY-WW","isoWeek"]];for(let[i,s,a]of r){let o=t.match(i);if(o){let l=o[0].trim();return new Jt(window.moment(l,s).startOf(a),window.moment(l,s).endOf(a))}}return Jt.buildInvalid()}}});function Pc(n){for(let[t,e]of Object.entries(TL))n=n.replace(RegExp(`\\b${t}\\s`,"i"),e);return n}var TL,Pg=ee(()=>{"use strict";TL={td:"today",tm:"tomorrow",yd:"yesterday",tw:"this week",nw:"next week",weekend:"sat",we:"sat"}});function Kn(n,t){return n!==null&&t===null?-1:n===null&&t!==null?1:n!==null&&t!==null?n.isValid()&&!t.isValid()?1:!n.isValid()&&t.isValid()?-1:n.isAfter(t)?1:n.isBefore(t)?-1:0:0}function _L(n,t,e=void 0){if(!t)return`<i>no ${n} date</i>`;let r=Ng.parseDate(t,e,{forwardDate:e!=null});return r!==null?window.moment(r).format("YYYY-MM-DD"):`<i>invalid ${n} date</i>`}function Sk(n,t,e){return _L(n,t,e?new Date:void 0)}function Os(n,t){let e=null,r=Ng.parseDate(n,new Date,{forwardDate:t});return r!==null&&(e=window.moment(r)),e}var Ng,Cs=ee(()=>{"use strict";Ng=qo(ht())});var Qn,Nc=ee(()=>{"use strict";Cs();Qn=class{constructor({startDate:t=null,scheduledDate:e=null,dueDate:r=null}){this.startDate=t!=null?t:null,this.scheduledDate=e!=null?e:null,this.dueDate=r!=null?r:null,this.referenceDate=this.getReferenceDate()}getReferenceDate(){return this.dueDate?window.moment(this.dueDate):this.scheduledDate?window.moment(this.scheduledDate):this.startDate?window.moment(this.startDate):null}isIdenticalTo(t){return!(Kn(this.startDate,t.startDate)!==0||Kn(this.scheduledDate,t.scheduledDate)!==0||Kn(this.dueDate,t.dueDate)!==0)}next(t){return this.referenceDate===null?new Qn({startDate:null,scheduledDate:null,dueDate:null}):new Qn({startDate:this.nextOccurrenceDate(this.startDate,t),scheduledDate:this.nextOccurrenceDate(this.scheduledDate,t),dueDate:this.nextOccurrenceDate(this.dueDate,t)})}nextOccurrenceDate(t,e){if(t===null)return null;let r=window.moment.duration(t.diff(this.referenceDate)),i=window.moment(e);return i.add(Math.round(r.asDays()),"days"),i}}});var Ic,dt,Ms=ee(()=>{Ic=["MO","TU","WE","TH","FR","SA","SU"],dt=function(){function n(t,e){if(e===0)throw new Error("Can't create weekday with n == 0");this.weekday=t,this.n=e}return n.fromStr=function(t){return new n(Ic.indexOf(t))},n.prototype.nth=function(t){return this.n===t?this:new n(this.weekday,t)},n.prototype.equals=function(t){return this.weekday===t.weekday&&this.n===t.n},n.prototype.toString=function(){var t=Ic[this.weekday];return this.n&&(t=(this.n>0?"+":"")+String(this.n)+t),t},n.prototype.getJsWeekday=function(){return this.weekday===6?0:this.weekday+1},n}()});function Rs(n,t,e){e===void 0&&(e=" ");var r=String(n);return t=t>>0,r.length>t?String(r):(t=t-r.length,t>e.length&&(e+=Ne(e,t/e.length)),e.slice(0,t)+String(r))}var Je,On,Ig,At,Xn,Ne,Ek,Dk,Wt,Fc,Cn,st,Ie,en=ee(()=>{Ms();Je=function(n){return n!=null},On=function(n){return typeof n=="number"},Ig=function(n){return typeof n=="string"&&Ic.includes(n)},At=Array.isArray,Xn=function(n,t){t===void 0&&(t=n),arguments.length===1&&(t=n,n=0);for(var e=[],r=n;r<t;r++)e.push(r);return e},Ne=function(n,t){var e=0,r=[];if(At(n))for(;e<t;e++)r[e]=[].concat(n);else for(;e<t;e++)r[e]=n;return r},Ek=function(n){return At(n)?n:[n]};Dk=function(n,t,e){var r=n.split(t);return e?r.slice(0,e).concat([r.slice(e).join(t)]):r},Wt=function(n,t){var e=n%t;return e*t<0?e+t:e},Fc=function(n,t){return{div:Math.floor(n/t),mod:Wt(n,t)}},Cn=function(n){return!Je(n)||n.length===0},st=function(n){return!Cn(n)},Ie=function(n,t){return st(n)&&n.indexOf(t)!==-1}});var Hr,vL,Ck,Lc,Mk,wL,Ia,Fg,As,xk,kL,Bl,Uc,SL,mi,Lg,Yc,jc,Ug,hi,Fa,Vl,Ok,Rk,$t=ee(()=>{en();Hr=function(n,t,e,r,i,s){return r===void 0&&(r=0),i===void 0&&(i=0),s===void 0&&(s=0),new Date(Date.UTC(n,t-1,e,r,i,s))},vL=[31,28,31,30,31,30,31,31,30,31,30,31],Ck=1e3*60*60*24,Lc=9999,Mk=Hr(1970,1,1),wL=[6,0,1,2,3,4,5],Ia=function(n){return n%4===0&&n%100!==0||n%400===0},Fg=function(n){return n instanceof Date},As=function(n){return Fg(n)&&!isNaN(n.getTime())},xk=function(n){return n.getTimezoneOffset()*60*1e3},kL=function(n,t){var e=n.getTime()-xk(n),r=t.getTime()-xk(t),i=e-r;return Math.round(i/Ck)},Bl=function(n){return kL(n,Mk)},Uc=function(n){return new Date(Mk.getTime()+n*Ck)},SL=function(n){var t=n.getUTCMonth();return t===1&&Ia(n.getUTCFullYear())?29:vL[t]},mi=function(n){return wL[n.getUTCDay()]},Lg=function(n,t){var e=Hr(n,t+1,1);return[mi(e),SL(e)]},Yc=function(n,t){return t=t||n,new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))},jc=function(n){var t=new Date(n.getTime());return t},Ug=function(n){for(var t=[],e=0;e<n.length;e++)t.push(jc(n[e]));return t},hi=function(n){n.sort(function(t,e){return t.getTime()-e.getTime()})},Fa=function(n,t){t===void 0&&(t=!0);var e=new Date(n);return[Rs(e.getUTCFullYear().toString(),4,"0"),Rs(e.getUTCMonth()+1,2,"0"),Rs(e.getUTCDate(),2,"0"),"T",Rs(e.getUTCHours(),2,"0"),Rs(e.getUTCMinutes(),2,"0"),Rs(e.getUTCSeconds(),2,"0"),t?"Z":""].join("")},Vl=function(n){var t=/^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/,e=t.exec(n);if(!e)throw new Error("Invalid UNTIL value: ".concat(n));return new Date(Date.UTC(parseInt(e[1],10),parseInt(e[2],10)-1,parseInt(e[3],10),parseInt(e[5],10)||0,parseInt(e[6],10)||0,parseInt(e[7],10)||0))},Ok=function(n,t){var e=n.toLocaleString("sv-SE",{timeZone:t});return e.replace(" ","T")+"Z"},Rk=function(n,t){var e=Intl.DateTimeFormat().resolvedOptions().timeZone,r=new Date(Ok(n,e)),i=new Date(Ok(n,t!=null?t:"UTC")),s=i.getTime()-r.getTime();return new Date(n.getTime()-s)}});var EL,gi,Wc=ee(()=>{EL=function(){function n(t,e){this.minDate=null,this.maxDate=null,this._result=[],this.total=0,this.method=t,this.args=e,t==="between"?(this.maxDate=e.inc?e.before:new Date(e.before.getTime()-1),this.minDate=e.inc?e.after:new Date(e.after.getTime()+1)):t==="before"?this.maxDate=e.inc?e.dt:new Date(e.dt.getTime()-1):t==="after"&&(this.minDate=e.inc?e.dt:new Date(e.dt.getTime()+1))}return n.prototype.accept=function(t){++this.total;var e=this.minDate&&t<this.minDate,r=this.maxDate&&t>this.maxDate;if(this.method==="between"){if(e)return!0;if(r)return!1}else if(this.method==="before"){if(r)return!1}else if(this.method==="after")return e?!0:(this.add(t),!1);return this.add(t)},n.prototype.add=function(t){return this._result.push(t),!0},n.prototype.getValue=function(){var t=this._result;switch(this.method){case"all":case"between":return t;case"before":case"after":default:return t.length?t[t.length-1]:null}},n.prototype.clone=function(){return new n(this.method,this.args)},n}(),gi=EL});function La(n,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Yg(n,t);function e(){this.constructor=n}n.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}function Q(n,t,e){if(e||arguments.length===2)for(var r=0,i=t.length,s;r<i;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return n.concat(s||Array.prototype.slice.call(t))}var Yg,Pt,yi=ee(()=>{Yg=function(n,t){return Yg=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])},Yg(n,t)};Pt=function(){return Pt=Object.assign||function(t){for(var e,r=1,i=arguments.length;r<i;r++){e=arguments[r];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])}return t},Pt.apply(this,arguments)}});var DL,jg,Ak=ee(()=>{yi();Wc();DL=function(n){La(t,n);function t(e,r,i){var s=n.call(this,e,r)||this;return s.iterator=i,s}return t.prototype.add=function(e){return this.iterator(e,this._result.length)?(this._result.push(e),!0):!1},t}(gi),jg=DL});var xL,Ps,$c=ee(()=>{xL={dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],tokens:{SKIP:/^[ \r\n\t]+|^\.$/,number:/^[1-9][0-9]*/,numberAsText:/^(one|two|three)/i,every:/^every/i,"day(s)":/^days?/i,"weekday(s)":/^weekdays?/i,"week(s)":/^weeks?/i,"hour(s)":/^hours?/i,"minute(s)":/^minutes?/i,"month(s)":/^months?/i,"year(s)":/^years?/i,on:/^(on|in)/i,at:/^(at)/i,the:/^the/i,first:/^first/i,second:/^second/i,third:/^third/i,nth:/^([1-9][0-9]*)(\.|th|nd|rd|st)/i,last:/^last/i,for:/^for/i,"time(s)":/^times?/i,until:/^(un)?til/i,monday:/^mo(n(day)?)?/i,tuesday:/^tu(e(s(day)?)?)?/i,wednesday:/^we(d(n(esday)?)?)?/i,thursday:/^th(u(r(sday)?)?)?/i,friday:/^fr(i(day)?)?/i,saturday:/^sa(t(urday)?)?/i,sunday:/^su(n(day)?)?/i,january:/^jan(uary)?/i,february:/^feb(ruary)?/i,march:/^mar(ch)?/i,april:/^apr(il)?/i,may:/^may/i,june:/^june?/i,july:/^july?/i,august:/^aug(ust)?/i,september:/^sep(t(ember)?)?/i,october:/^oct(ober)?/i,november:/^nov(ember)?/i,december:/^dec(ember)?/i,comma:/^(,\s*|(and|or)\s*)+/i}},Ps=xL});var Pk,OL,CL,ML,Gr,Nk=ee(()=>{$c();Zn();en();Pk=function(n,t){return n.indexOf(t)!==-1},OL=function(n){return n.toString()},CL=function(n,t,e){return"".concat(t," ").concat(e,", ").concat(n)},ML=function(){function n(t,e,r,i){if(e===void 0&&(e=OL),r===void 0&&(r=Ps),i===void 0&&(i=CL),this.text=[],this.language=r||Ps,this.gettext=e,this.dateFormatter=i,this.rrule=t,this.options=t.options,this.origOptions=t.origOptions,this.origOptions.bymonthday){var s=[].concat(this.options.bymonthday),a=[].concat(this.options.bynmonthday);s.sort(function(c,d){return c-d}),a.sort(function(c,d){return d-c}),this.bymonthday=s.concat(a),this.bymonthday.length||(this.bymonthday=null)}if(Je(this.origOptions.byweekday)){var o=At(this.origOptions.byweekday)?this.origOptions.byweekday:[this.origOptions.byweekday],l=String(o);this.byweekday={allWeeks:o.filter(function(c){return!c.n}),someWeeks:o.filter(function(c){return Boolean(c.n)}),isWeekdays:l.indexOf("MO")!==-1&&l.indexOf("TU")!==-1&&l.indexOf("WE")!==-1&&l.indexOf("TH")!==-1&&l.indexOf("FR")!==-1&&l.indexOf("SA")===-1&&l.indexOf("SU")===-1,isEveryDay:l.indexOf("MO")!==-1&&l.indexOf("TU")!==-1&&l.indexOf("WE")!==-1&&l.indexOf("TH")!==-1&&l.indexOf("FR")!==-1&&l.indexOf("SA")!==-1&&l.indexOf("SU")!==-1};var u=function(c,d){return c.weekday-d.weekday};this.byweekday.allWeeks.sort(u),this.byweekday.someWeeks.sort(u),this.byweekday.allWeeks.length||(this.byweekday.allWeeks=null),this.byweekday.someWeeks.length||(this.byweekday.someWeeks=null)}else this.byweekday=null}return n.isFullyConvertible=function(t){var e=!0;if(!(t.options.freq in n.IMPLEMENTED)||t.origOptions.until&&t.origOptions.count)return!1;for(var r in t.origOptions){if(Pk(["dtstart","wkst","freq"],r))return!0;if(!Pk(n.IMPLEMENTED[t.options.freq],r))return!1}return e},n.prototype.isFullyConvertible=function(){return n.isFullyConvertible(this.rrule)},n.prototype.toString=function(){var t=this.gettext;if(!(this.options.freq in n.IMPLEMENTED))return t("RRule error: Unable to fully convert this rrule to text");if(this.text=[t("every")],this[ae.FREQUENCIES[this.options.freq]](),this.options.until){this.add(t("until"));var e=this.options.until;this.add(this.dateFormatter(e.getUTCFullYear(),this.language.monthNames[e.getUTCMonth()],e.getUTCDate()))}else this.options.count&&this.add(t("for")).add(this.options.count.toString()).add(this.plural(this.options.count)?t("times"):t("time"));return this.isFullyConvertible()||this.add(t("(~ approximate)")),this.text.join("")},n.prototype.HOURLY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t("hours"):t("hour"))},n.prototype.MINUTELY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t("minutes"):t("minute"))},n.prototype.DAILY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.byweekday&&this.byweekday.isWeekdays?this.add(this.plural(this.options.interval)?t("weekdays"):t("weekday")):this.add(this.plural(this.options.interval)?t("days"):t("day")),this.origOptions.bymonth&&(this.add(t("in")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday?this._byweekday():this.origOptions.byhour&&this._byhour()},n.prototype.WEEKLY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()).add(this.plural(this.options.interval)?t("weeks"):t("week")),this.byweekday&&this.byweekday.isWeekdays?this.options.interval===1?this.add(this.plural(this.options.interval)?t("weekdays"):t("weekday")):this.add(t("on")).add(t("weekdays")):this.byweekday&&this.byweekday.isEveryDay?this.add(this.plural(this.options.interval)?t("days"):t("day")):(this.options.interval===1&&this.add(t("week")),this.origOptions.bymonth&&(this.add(t("in")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday())},n.prototype.MONTHLY=function(){var t=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()).add(t("months")),this.plural(this.options.interval)&&this.add(t("in"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t("months"):t("month"))),this.bymonthday?this._bymonthday():this.byweekday&&this.byweekday.isWeekdays?this.add(t("on")).add(t("weekdays")):this.byweekday&&this._byweekday()},n.prototype.YEARLY=function(){var t=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()),this.add(t("years"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t("years"):t("year"))),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.options.byyearday&&this.add(t("on the")).add(this.list(this.options.byyearday,this.nth,t("and"))).add(t("day")),this.options.byweekno&&this.add(t("in")).add(this.plural(this.options.byweekno.length)?t("weeks"):t("week")).add(this.list(this.options.byweekno,void 0,t("and")))},n.prototype._bymonthday=function(){var t=this.gettext;this.byweekday&&this.byweekday.allWeeks?this.add(t("on")).add(this.list(this.byweekday.allWeeks,this.weekdaytext,t("or"))).add(t("the")).add(this.list(this.bymonthday,this.nth,t("or"))):this.add(t("on the")).add(this.list(this.bymonthday,this.nth,t("and")))},n.prototype._byweekday=function(){var t=this.gettext;this.byweekday.allWeeks&&!this.byweekday.isWeekdays&&this.add(t("on")).add(this.list(this.byweekday.allWeeks,this.weekdaytext)),this.byweekday.someWeeks&&(this.byweekday.allWeeks&&this.add(t("and")),this.add(t("on the")).add(this.list(this.byweekday.someWeeks,this.weekdaytext,t("and"))))},n.prototype._byhour=function(){var t=this.gettext;this.add(t("at")).add(this.list(this.origOptions.byhour,void 0,t("and")))},n.prototype._bymonth=function(){this.add(this.list(this.options.bymonth,this.monthtext,this.gettext("and")))},n.prototype.nth=function(t){t=parseInt(t.toString(),10);var e,r=this.gettext;if(t===-1)return r("last");var i=Math.abs(t);switch(i){case 1:case 21:case 31:e=i+r("st");break;case 2:case 22:e=i+r("nd");break;case 3:case 23:e=i+r("rd");break;default:e=i+r("th")}return t<0?e+" "+r("last"):e},n.prototype.monthtext=function(t){return this.language.monthNames[t-1]},n.prototype.weekdaytext=function(t){var e=On(t)?(t+1)%7:t.getJsWeekday();return(t.n?this.nth(t.n)+" ":"")+this.language.dayNames[e]},n.prototype.plural=function(t){return t%100!==1},n.prototype.add=function(t){return this.text.push(" "),this.text.push(t),this},n.prototype.list=function(t,e,r,i){var s=this;i===void 0&&(i=","),At(t)||(t=[t]);var a=function(l,u,c){for(var d="",f=0;f<l.length;f++)f!==0&&(f===l.length-1?d+=" "+c+" ":d+=u+" "),d+=l[f];return d};e=e||function(l){return l.toString()};var o=function(l){return e&&e.call(s,l)};return r?a(t.map(o),i,r):t.map(o).join(i+" ")},n}(),Gr=ML});function zl(n,t){t===void 0&&(t=Ps);var e={},r=new RL(t.tokens);if(!r.start(n))return null;return i(),e;function i(){r.expect("every");var f=r.acceptNumber();if(f&&(e.interval=parseInt(f[0],10)),r.isDone())throw new Error("Unexpected end");switch(r.symbol){case"day(s)":e.freq=ae.DAILY,r.nextSymbol()&&(a(),d());break;case"weekday(s)":e.freq=ae.WEEKLY,e.byweekday=[ae.MO,ae.TU,ae.WE,ae.TH,ae.FR],r.nextSymbol(),d();break;case"week(s)":e.freq=ae.WEEKLY,r.nextSymbol()&&(s(),d());break;case"hour(s)":e.freq=ae.HOURLY,r.nextSymbol()&&(s(),d());break;case"minute(s)":e.freq=ae.MINUTELY,r.nextSymbol()&&(s(),d());break;case"month(s)":e.freq=ae.MONTHLY,r.nextSymbol()&&(s(),d());break;case"year(s)":e.freq=ae.YEARLY,r.nextSymbol()&&(s(),d());break;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":e.freq=ae.WEEKLY;var p=r.symbol.substr(0,2).toUpperCase();if(e.byweekday=[ae[p]],!r.nextSymbol())return;for(;r.accept("comma");){if(r.isDone())throw new Error("Unexpected end");var b=l();if(!b)throw new Error("Unexpected symbol "+r.symbol+", expected weekday");e.byweekday.push(ae[b]),r.nextSymbol()}c(),d();break;case"january":case"february":case"march":case"april":case"may":case"june":case"july":case"august":case"september":case"october":case"november":case"december":if(e.freq=ae.YEARLY,e.bymonth=[o()],!r.nextSymbol())return;for(;r.accept("comma");){if(r.isDone())throw new Error("Unexpected end");var T=o();if(!T)throw new Error("Unexpected symbol "+r.symbol+", expected month");e.bymonth.push(T),r.nextSymbol()}s(),d();break;default:throw new Error("Unknown symbol")}}function s(){var f=r.accept("on"),p=r.accept("the");if(!!(f||p))do{var b=u(),T=l(),_=o();if(b)T?(r.nextSymbol(),e.byweekday||(e.byweekday=[]),e.byweekday.push(ae[T].nth(b))):(e.bymonthday||(e.bymonthday=[]),e.bymonthday.push(b),r.accept("day(s)"));else if(T)r.nextSymbol(),e.byweekday||(e.byweekday=[]),e.byweekday.push(ae[T]);else if(r.symbol==="weekday(s)")r.nextSymbol(),e.byweekday||(e.byweekday=[ae.MO,ae.TU,ae.WE,ae.TH,ae.FR]);else if(r.symbol==="week(s)"){r.nextSymbol();var O=r.acceptNumber();if(!O)throw new Error("Unexpected symbol "+r.symbol+", expected week number");for(e.byweekno=[parseInt(O[0],10)];r.accept("comma");){if(O=r.acceptNumber(),!O)throw new Error("Unexpected symbol "+r.symbol+"; expected monthday");e.byweekno.push(parseInt(O[0],10))}}else if(_)r.nextSymbol(),e.bymonth||(e.bymonth=[]),e.bymonth.push(_);else return}while(r.accept("comma")||r.accept("the")||r.accept("on"))}function a(){var f=r.accept("at");if(!!f)do{var p=r.acceptNumber();if(!p)throw new Error("Unexpected symbol "+r.symbol+", expected hour");for(e.byhour=[parseInt(p[0],10)];r.accept("comma");){if(p=r.acceptNumber(),!p)throw new Error("Unexpected symbol "+r.symbol+"; expected hour");e.byhour.push(parseInt(p[0],10))}}while(r.accept("comma")||r.accept("at"))}function o(){switch(r.symbol){case"january":return 1;case"february":return 2;case"march":return 3;case"april":return 4;case"may":return 5;case"june":return 6;case"july":return 7;case"august":return 8;case"september":return 9;case"october":return 10;case"november":return 11;case"december":return 12;default:return!1}}function l(){switch(r.symbol){case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return r.symbol.substr(0,2).toUpperCase();default:return!1}}function u(){switch(r.symbol){case"last":return r.nextSymbol(),-1;case"first":return r.nextSymbol(),1;case"second":return r.nextSymbol(),r.accept("last")?-2:2;case"third":return r.nextSymbol(),r.accept("last")?-3:3;case"nth":var f=parseInt(r.value[1],10);if(f<-366||f>366)throw new Error("Nth out of range: "+f);return r.nextSymbol(),r.accept("last")?-f:f;default:return!1}}function c(){r.accept("on"),r.accept("the");var f=u();if(!!f)for(e.bymonthday=[f],r.nextSymbol();r.accept("comma");){if(f=u(),!f)throw new Error("Unexpected symbol "+r.symbol+"; expected monthday");e.bymonthday.push(f),r.nextSymbol()}}function d(){if(r.symbol==="until"){var f=Date.parse(r.text);if(!f)throw new Error("Cannot parse until date:"+r.text);e.until=new Date(f)}else r.accept("for")&&(e.count=parseInt(r.value[0],10),r.expect("number"))}}var RL,Ik=ee(()=>{$c();Zn();RL=function(){function n(t){this.done=!0,this.rules=t}return n.prototype.start=function(t){return this.text=t,this.done=!1,this.nextSymbol()},n.prototype.isDone=function(){return this.done&&this.symbol===null},n.prototype.nextSymbol=function(){var t,e;this.symbol=null,this.value=null;do{if(this.done)return!1;var r=void 0;t=null;for(var i in this.rules){r=this.rules[i];var s=r.exec(this.text);s&&(t===null||s[0].length>t[0].length)&&(t=s,e=i)}if(t!=null&&(this.text=this.text.substr(t[0].length),this.text===""&&(this.done=!0)),t==null){this.done=!0,this.symbol=null,this.value=null;return}}while(e==="SKIP");return this.symbol=e,this.value=t,!0},n.prototype.accept=function(t){if(this.symbol===t){if(this.value){var e=this.value;return this.nextSymbol(),e}return this.nextSymbol(),!0}return!1},n.prototype.acceptNumber=function(){return this.accept("number")},n.prototype.expect=function(t){if(this.accept(t))return!0;throw new Error("expected "+t+" but found "+this.symbol)},n}()});function Kl(n){return n<Ae.HOURLY}var Ae,bi=ee(()=>{(function(n){n[n.YEARLY=0]="YEARLY",n[n.MONTHLY=1]="MONTHLY",n[n.WEEKLY=2]="WEEKLY",n[n.DAILY=3]="DAILY",n[n.HOURLY=4]="HOURLY",n[n.MINUTELY=5]="MINUTELY",n[n.SECONDLY=6]="SECONDLY"})(Ae||(Ae={}))});var Fk,Ua,Lk,Uk,Yk=ee(()=>{Nk();Ik();Zn();bi();$c();Fk=function(n,t){return t===void 0&&(t=Ps),new ae(zl(n,t)||void 0)},Ua=["count","until","interval","byweekday","bymonthday","bymonth"];Gr.IMPLEMENTED=[];Gr.IMPLEMENTED[Ae.HOURLY]=Ua;Gr.IMPLEMENTED[Ae.MINUTELY]=Ua;Gr.IMPLEMENTED[Ae.DAILY]=["byhour"].concat(Ua);Gr.IMPLEMENTED[Ae.WEEKLY]=Ua;Gr.IMPLEMENTED[Ae.MONTHLY]=Ua;Gr.IMPLEMENTED[Ae.YEARLY]=["byweekno","byyearday"].concat(Ua);Lk=function(n,t,e,r){return new Gr(n,t,e,r).toString()},Uk=Gr.isFullyConvertible});var Ya,jk,qc=ee(()=>{yi();bi();en();$t();Ya=function(){function n(t,e,r,i){this.hour=t,this.minute=e,this.second=r,this.millisecond=i||0}return n.prototype.getHours=function(){return this.hour},n.prototype.getMinutes=function(){return this.minute},n.prototype.getSeconds=function(){return this.second},n.prototype.getMilliseconds=function(){return this.millisecond},n.prototype.getTime=function(){return(this.hour*60*60+this.minute*60+this.second)*1e3+this.millisecond},n}(),jk=function(n){La(t,n);function t(e,r,i,s,a,o,l){var u=n.call(this,s,a,o,l)||this;return u.year=e,u.month=r,u.day=i,u}return t.fromDate=function(e){return new this(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.valueOf()%1e3)},t.prototype.getWeekday=function(){return mi(new Date(this.getTime()))},t.prototype.getTime=function(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond)).getTime()},t.prototype.getDay=function(){return this.day},t.prototype.getMonth=function(){return this.month},t.prototype.getYear=function(){return this.year},t.prototype.addYears=function(e){this.year+=e},t.prototype.addMonths=function(e){if(this.month+=e,this.month>12){var r=Math.floor(this.month/12),i=Wt(this.month,12);this.month=i,this.year+=r,this.month===0&&(this.month=12,--this.year)}},t.prototype.addWeekly=function(e,r){r>this.getWeekday()?this.day+=-(this.getWeekday()+1+(6-r))+e*7:this.day+=-(this.getWeekday()-r)+e*7,this.fixDay()},t.prototype.addDaily=function(e){this.day+=e,this.fixDay()},t.prototype.addHours=function(e,r,i){for(r&&(this.hour+=Math.floor((23-this.hour)/e)*e);;){this.hour+=e;var s=Fc(this.hour,24),a=s.div,o=s.mod;if(a&&(this.hour=o,this.addDaily(a)),Cn(i)||Ie(i,this.hour))break}},t.prototype.addMinutes=function(e,r,i,s){for(r&&(this.minute+=Math.floor((1439-(this.hour*60+this.minute))/e)*e);;){this.minute+=e;var a=Fc(this.minute,60),o=a.div,l=a.mod;if(o&&(this.minute=l,this.addHours(o,!1,i)),(Cn(i)||Ie(i,this.hour))&&(Cn(s)||Ie(s,this.minute)))break}},t.prototype.addSeconds=function(e,r,i,s,a){for(r&&(this.second+=Math.floor((86399-(this.hour*3600+this.minute*60+this.second))/e)*e);;){this.second+=e;var o=Fc(this.second,60),l=o.div,u=o.mod;if(l&&(this.second=u,this.addMinutes(l,!1,i,s)),(Cn(i)||Ie(i,this.hour))&&(Cn(s)||Ie(s,this.minute))&&(Cn(a)||Ie(a,this.second)))break}},t.prototype.fixDay=function(){if(!(this.day<=28)){var e=Lg(this.year,this.month-1)[1];if(!(this.day<=e))for(;this.day>e;){if(this.day-=e,++this.month,this.month===13&&(this.month=1,++this.year,this.year>Lc))return;e=Lg(this.year,this.month-1)[1]}}},t.prototype.add=function(e,r){var i=e.freq,s=e.interval,a=e.wkst,o=e.byhour,l=e.byminute,u=e.bysecond;switch(i){case Ae.YEARLY:return this.addYears(s);case Ae.MONTHLY:return this.addMonths(s);case Ae.WEEKLY:return this.addWeekly(s,a);case Ae.DAILY:return this.addDaily(s);case Ae.HOURLY:return this.addHours(s,r,o);case Ae.MINUTELY:return this.addMinutes(s,r,o,l);case Ae.SECONDLY:return this.addSeconds(s,r,o,l,u)}},t}(Ya)});function Wg(n){for(var t=[],e=Object.keys(n),r=0,i=e;r<i.length;r++){var s=i[r];Ie(qk,s)||t.push(s),Fg(n[s])&&!As(n[s])&&t.push(s)}if(t.length)throw new Error("Invalid options: "+t.join(", "));return Pt({},n)}function Wk(n){var t=Pt(Pt({},Ql),Wg(n));if(Je(t.byeaster)&&(t.freq=ae.YEARLY),!(Je(t.freq)&&ae.FREQUENCIES[t.freq]))throw new Error("Invalid frequency: ".concat(t.freq," ").concat(n.freq));if(t.dtstart||(t.dtstart=new Date(new Date().setMilliseconds(0))),Je(t.wkst)?On(t.wkst)||(t.wkst=t.wkst.weekday):t.wkst=ae.MO.weekday,Je(t.bysetpos)){On(t.bysetpos)&&(t.bysetpos=[t.bysetpos]);for(var e=0;e<t.bysetpos.length;e++){var r=t.bysetpos[e];if(r===0||!(r>=-366&&r<=366))throw new Error("bysetpos must be between 1 and 366, or between -366 and -1")}}if(!(Boolean(t.byweekno)||st(t.byweekno)||st(t.byyearday)||Boolean(t.bymonthday)||st(t.bymonthday)||Je(t.byweekday)||Je(t.byeaster)))switch(t.freq){case ae.YEARLY:t.bymonth||(t.bymonth=t.dtstart.getUTCMonth()+1),t.bymonthday=t.dtstart.getUTCDate();break;case ae.MONTHLY:t.bymonthday=t.dtstart.getUTCDate();break;case ae.WEEKLY:t.byweekday=[mi(t.dtstart)];break}if(Je(t.bymonth)&&!At(t.bymonth)&&(t.bymonth=[t.bymonth]),Je(t.byyearday)&&!At(t.byyearday)&&On(t.byyearday)&&(t.byyearday=[t.byyearday]),!Je(t.bymonthday))t.bymonthday=[],t.bynmonthday=[];else if(At(t.bymonthday)){for(var i=[],s=[],e=0;e<t.bymonthday.length;e++){var r=t.bymonthday[e];r>0?i.push(r):r<0&&s.push(r)}t.bymonthday=i,t.bynmonthday=s}else t.bymonthday<0?(t.bynmonthday=[t.bymonthday],t.bymonthday=[]):(t.bynmonthday=[],t.bymonthday=[t.bymonthday]);if(Je(t.byweekno)&&!At(t.byweekno)&&(t.byweekno=[t.byweekno]),!Je(t.byweekday))t.bynweekday=null;else if(On(t.byweekday))t.byweekday=[t.byweekday],t.bynweekday=null;else if(Ig(t.byweekday))t.byweekday=[dt.fromStr(t.byweekday).weekday],t.bynweekday=null;else if(t.byweekday instanceof dt)!t.byweekday.n||t.freq>ae.MONTHLY?(t.byweekday=[t.byweekday.weekday],t.bynweekday=null):(t.bynweekday=[[t.byweekday.weekday,t.byweekday.n]],t.byweekday=null);else{for(var a=[],o=[],e=0;e<t.byweekday.length;e++){var l=t.byweekday[e];if(On(l)){a.push(l);continue}else if(Ig(l)){a.push(dt.fromStr(l).weekday);continue}!l.n||t.freq>ae.MONTHLY?a.push(l.weekday):o.push([l.weekday,l.n])}t.byweekday=st(a)?a:null,t.bynweekday=st(o)?o:null}return Je(t.byhour)?On(t.byhour)&&(t.byhour=[t.byhour]):t.byhour=t.freq<ae.HOURLY?[t.dtstart.getUTCHours()]:null,Je(t.byminute)?On(t.byminute)&&(t.byminute=[t.byminute]):t.byminute=t.freq<ae.MINUTELY?[t.dtstart.getUTCMinutes()]:null,Je(t.bysecond)?On(t.bysecond)&&(t.bysecond=[t.bysecond]):t.bysecond=t.freq<ae.SECONDLY?[t.dtstart.getUTCSeconds()]:null,{parsedOptions:t}}function $k(n){var t=n.dtstart.getTime()%1e3;if(!Kl(n.freq))return[];var e=[];return n.byhour.forEach(function(r){n.byminute.forEach(function(i){n.bysecond.forEach(function(s){e.push(new Ya(r,i,s,t))})})}),e}var $g=ee(()=>{yi();bi();en();Zn();$t();Ms();qc()});function Zl(n){var t=n.split(` -`).map(AL).filter(function(e){return e!==null});return Pt(Pt({},t[0]),t[1])}function Xl(n){var t={},e=/DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(n);if(!e)return t;var r=e[1],i=e[2];return r&&(t.tzid=r),t.dtstart=Vl(i),t}function AL(n){if(n=n.replace(/^\s+|\s+$/,""),!n.length)return null;var t=/^([A-Z]+?)[:;]/.exec(n.toUpperCase());if(!t)return Hk(n);var e=t[1];switch(e.toUpperCase()){case"RRULE":case"EXRULE":return Hk(n);case"DTSTART":return Xl(n);default:throw new Error("Unsupported RFC prop ".concat(e," in ").concat(n))}}function Hk(n){var t=n.replace(/^RRULE:/i,""),e=Xl(t),r=n.replace(/^(?:RRULE|EXRULE):/i,"").split(";");return r.forEach(function(i){var s=i.split("="),a=s[0],o=s[1];switch(a.toUpperCase()){case"FREQ":e.freq=Ae[o.toUpperCase()];break;case"WKST":e.wkst=Jn[o.toUpperCase()];break;case"COUNT":case"INTERVAL":case"BYSETPOS":case"BYMONTH":case"BYMONTHDAY":case"BYYEARDAY":case"BYWEEKNO":case"BYHOUR":case"BYMINUTE":case"BYSECOND":var l=PL(o),u=a.toLowerCase();e[u]=l;break;case"BYWEEKDAY":case"BYDAY":e.byweekday=NL(o);break;case"DTSTART":case"TZID":var c=Xl(n);e.tzid=c.tzid,e.dtstart=c.dtstart;break;case"UNTIL":e.until=Vl(o);break;case"BYEASTER":e.byeaster=Number(o);break;default:throw new Error("Unknown RRULE property '"+a+"'")}}),e}function PL(n){if(n.indexOf(",")!==-1){var t=n.split(",");return t.map(Gk)}return Gk(n)}function Gk(n){return/^[+-]?\d+$/.test(n)?Number(n):n}function NL(n){var t=n.split(",");return t.map(function(e){if(e.length===2)return Jn[e];var r=e.match(/^([+-]?\d{1,2})([A-Z]{2})$/);if(!r||r.length<3)throw new SyntaxError("Invalid weekday string: ".concat(e));var i=Number(r[1]),s=r[2],a=Jn[s].weekday;return new dt(a,i)})}var qg=ee(()=>{yi();bi();Ms();$t();Zn()});var Ns,Hc=ee(()=>{$t();Ns=function(){function n(t,e){if(isNaN(t.getTime()))throw new RangeError("Invalid date passed to DateWithZone");this.date=t,this.tzid=e}return Object.defineProperty(n.prototype,"isUTC",{get:function(){return!this.tzid||this.tzid.toUpperCase()==="UTC"},enumerable:!1,configurable:!0}),n.prototype.toString=function(){var t=Fa(this.date.getTime(),this.isUTC);return this.isUTC?":".concat(t):";TZID=".concat(this.tzid,":").concat(t)},n.prototype.getTime=function(){return this.date.getTime()},n.prototype.rezonedDate=function(){return this.isUTC?this.date:Rk(this.date,this.tzid)},n}()});function Jl(n){for(var t=[],e="",r=Object.keys(n),i=Object.keys(Ql),s=0;s<r.length;s++)if(r[s]!=="tzid"&&!!Ie(i,r[s])){var a=r[s].toUpperCase(),o=n[r[s]],l="";if(!(!Je(o)||At(o)&&!o.length)){switch(a){case"FREQ":l=ae.FREQUENCIES[n.freq];break;case"WKST":On(o)?l=new dt(o).toString():l=o.toString();break;case"BYWEEKDAY":a="BYDAY",l=Ek(o).map(function(p){return p instanceof dt?p:At(p)?new dt(p[0],p[1]):new dt(p)}).toString();break;case"DTSTART":e=IL(o,n.tzid);break;case"UNTIL":l=Fa(o,!n.tzid);break;default:if(At(o)){for(var u=[],c=0;c<o.length;c++)u[c]=String(o[c]);l=u.toString()}else l=String(o)}l&&t.push([a,l])}}var d=t.map(function(p){var b=p[0],T=p[1];return"".concat(b,"=").concat(T.toString())}).join(";"),f="";return d!==""&&(f="RRULE:".concat(d)),[e,f].filter(function(p){return!!p}).join(` -`)}function IL(n,t){return n?"DTSTART"+new Ns(new Date(n),t).toString():""}var Hg=ee(()=>{Zn();en();Ms();$t();Hc()});function FL(n,t){return Array.isArray(n)?!Array.isArray(t)||n.length!==t.length?!1:n.every(function(e,r){return e.getTime()===t[r].getTime()}):n instanceof Date?t instanceof Date&&n.getTime()===t.getTime():n===t}var Bk,Vk=ee(()=>{Wc();$t();en();Bk=function(){function n(){this.all=!1,this.before=[],this.after=[],this.between=[]}return n.prototype._cacheAdd=function(t,e,r){e&&(e=e instanceof Date?jc(e):Ug(e)),t==="all"?this.all=e:(r._value=e,this[t].push(r))},n.prototype._cacheGet=function(t,e){var r=!1,i=e?Object.keys(e):[],s=function(c){for(var d=0;d<i.length;d++){var f=i[d];if(!FL(e[f],c[f]))return!0}return!1},a=this[t];if(t==="all")r=this.all;else if(At(a))for(var o=0;o<a.length;o++){var l=a[o];if(!(i.length&&s(l))){r=l._value;break}}if(!r&&this.all){for(var u=new gi(t,e),o=0;o<this.all.length&&u.accept(this.all[o]);o++);r=u.getValue(),this._cacheAdd(t,r,e)}return At(r)?Ug(r):r instanceof Date?jc(r):r},n}()});var zk,Kk,LL,UL,Wi,qt,Qk,Xk,YL,jL,$i,Ht,Zk,Jk,eS,tS,Gg,nS=ee(()=>{yi();en();zk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ne(1,31),!0),Ne(2,28),!0),Ne(3,31),!0),Ne(4,30),!0),Ne(5,31),!0),Ne(6,30),!0),Ne(7,31),!0),Ne(8,31),!0),Ne(9,30),!0),Ne(10,31),!0),Ne(11,30),!0),Ne(12,31),!0),Ne(1,7),!0),Kk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ne(1,31),!0),Ne(2,29),!0),Ne(3,31),!0),Ne(4,30),!0),Ne(5,31),!0),Ne(6,30),!0),Ne(7,31),!0),Ne(8,31),!0),Ne(9,30),!0),Ne(10,31),!0),Ne(11,30),!0),Ne(12,31),!0),Ne(1,7),!0),LL=Xn(1,29),UL=Xn(1,30),Wi=Xn(1,31),qt=Xn(1,32),Qk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],qt,!0),UL,!0),qt,!0),Wi,!0),qt,!0),Wi,!0),qt,!0),qt,!0),Wi,!0),qt,!0),Wi,!0),qt,!0),qt.slice(0,7),!0),Xk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],qt,!0),LL,!0),qt,!0),Wi,!0),qt,!0),Wi,!0),qt,!0),qt,!0),Wi,!0),qt,!0),Wi,!0),qt,!0),qt.slice(0,7),!0),YL=Xn(-28,0),jL=Xn(-29,0),$i=Xn(-30,0),Ht=Xn(-31,0),Zk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ht,!0),jL,!0),Ht,!0),$i,!0),Ht,!0),$i,!0),Ht,!0),Ht,!0),$i,!0),Ht,!0),$i,!0),Ht,!0),Ht.slice(0,7),!0),Jk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ht,!0),YL,!0),Ht,!0),$i,!0),Ht,!0),$i,!0),Ht,!0),Ht,!0),$i,!0),Ht,!0),$i,!0),Ht,!0),Ht.slice(0,7),!0),eS=[0,31,60,91,121,152,182,213,244,274,305,335,366],tS=[0,31,59,90,120,151,181,212,243,273,304,334,365],Gg=function(){for(var n=[],t=0;t<55;t++)n=n.concat(Xn(7));return n}()});function rS(n,t){var e=Hr(n,1,1),r=Ia(n)?366:365,i=Ia(n+1)?366:365,s=Bl(e),a=mi(e),o=Pt(Pt({yearlen:r,nextyearlen:i,yearordinal:s,yearweekday:a},WL(n)),{wnomask:null});if(Cn(t.byweekno))return o;o.wnomask=Ne(0,r+7);var l,u,c=l=Wt(7-a+t.wkst,7);c>=4?(c=0,u=o.yearlen+Wt(a-t.wkst,7)):u=r-c;for(var d=Math.floor(u/7),f=Wt(u,7),p=Math.floor(d+f/4),b=0;b<t.byweekno.length;b++){var T=t.byweekno[b];if(T<0&&(T+=p+1),T>0&&T<=p){var _=void 0;T>1?(_=c+(T-1)*7,c!==l&&(_-=7-l)):_=c;for(var O=0;O<7&&(o.wnomask[_]=1,_++,o.wdaymask[_]!==t.wkst);O++);}}if(Ie(t.byweekno,1)){var _=c+p*7;if(c!==l&&(_-=7-l),_<r)for(var b=0;b<7&&(o.wnomask[_]=1,_+=1,o.wdaymask[_]!==t.wkst);b++);}if(c){var D=void 0;if(Ie(t.byweekno,-1))D=-1;else{var A=mi(Hr(n-1,1,1)),Y=Wt(7-A.valueOf()+t.wkst,7),q=Ia(n-1)?366:365,se=void 0;Y>=4?(Y=0,se=q+Wt(A-t.wkst,7)):se=r-c,D=Math.floor(52+Wt(se,7)/4)}if(Ie(t.byweekno,D))for(var _=0;_<c;_++)o.wnomask[_]=1}return o}function WL(n){var t=Ia(n)?366:365,e=Hr(n,1,1),r=mi(e);return t===365?{mmask:zk,mdaymask:Xk,nmdaymask:Jk,wdaymask:Gg.slice(r),mrange:tS}:{mmask:Kk,mdaymask:Qk,nmdaymask:Zk,wdaymask:Gg.slice(r),mrange:eS}}var iS=ee(()=>{yi();$t();en();nS()});function sS(n,t,e,r,i,s){var a={lastyear:n,lastmonth:t,nwdaymask:[]},o=[];if(s.freq===ae.YEARLY)if(Cn(s.bymonth))o=[[0,e]];else for(var l=0;l<s.bymonth.length;l++)t=s.bymonth[l],o.push(r.slice(t-1,t+1));else s.freq===ae.MONTHLY&&(o=[r.slice(t-1,t+1)]);if(Cn(o))return a;a.nwdaymask=Ne(0,e);for(var l=0;l<o.length;l++)for(var u=o[l],c=u[0],d=u[1]-1,f=0;f<s.bynweekday.length;f++){var p=void 0,b=s.bynweekday[f],T=b[0],_=b[1];_<0?(p=d+(_+1)*7,p-=Wt(i[p]-T,7)):(p=c+(_-1)*7,p+=Wt(7-i[p]+T,7)),c<=p&&p<=d&&(a.nwdaymask[p]=1)}return a}var aS=ee(()=>{Zn();en()});function oS(n,t){t===void 0&&(t=0);var e=n%19,r=Math.floor(n/100),i=n%100,s=Math.floor(r/4),a=r%4,o=Math.floor((r+8)/25),l=Math.floor((r-o+1)/3),u=Math.floor(19*e+r-s-l+15)%30,c=Math.floor(i/4),d=i%4,f=Math.floor(32+2*a+2*c-u-d)%7,p=Math.floor((e+11*u+22*f)/451),b=Math.floor((u+f-7*p+114)/31),T=(u+f-7*p+114)%31+1,_=Date.UTC(n,b-1,T+t),O=Date.UTC(n,0,1);return[Math.ceil((_-O)/(1e3*60*60*24))]}var lS=ee(()=>{});var $L,uS,cS=ee(()=>{en();bi();iS();aS();lS();qc();$t();$L=function(){function n(t){this.options=t}return n.prototype.rebuild=function(t,e){var r=this.options;if(t!==this.lastyear&&(this.yearinfo=rS(t,r)),st(r.bynweekday)&&(e!==this.lastmonth||t!==this.lastyear)){var i=this.yearinfo,s=i.yearlen,a=i.mrange,o=i.wdaymask;this.monthinfo=sS(t,e,s,a,o,r)}Je(r.byeaster)&&(this.eastermask=oS(t,r.byeaster))},Object.defineProperty(n.prototype,"lastyear",{get:function(){return this.monthinfo?this.monthinfo.lastyear:null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"lastmonth",{get:function(){return this.monthinfo?this.monthinfo.lastmonth:null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"yearlen",{get:function(){return this.yearinfo.yearlen},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"yearordinal",{get:function(){return this.yearinfo.yearordinal},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"mrange",{get:function(){return this.yearinfo.mrange},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"wdaymask",{get:function(){return this.yearinfo.wdaymask},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"mmask",{get:function(){return this.yearinfo.mmask},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"wnomask",{get:function(){return this.yearinfo.wnomask},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"nwdaymask",{get:function(){return this.monthinfo?this.monthinfo.nwdaymask:[]},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"nextyearlen",{get:function(){return this.yearinfo.nextyearlen},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"mdaymask",{get:function(){return this.yearinfo.mdaymask},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"nmdaymask",{get:function(){return this.yearinfo.nmdaymask},enumerable:!1,configurable:!0}),n.prototype.ydayset=function(){return[Xn(this.yearlen),0,this.yearlen]},n.prototype.mdayset=function(t,e){for(var r=this.mrange[e-1],i=this.mrange[e],s=Ne(null,this.yearlen),a=r;a<i;a++)s[a]=a;return[s,r,i]},n.prototype.wdayset=function(t,e,r){for(var i=Ne(null,this.yearlen+7),s=Bl(Hr(t,e,r))-this.yearordinal,a=s,o=0;o<7&&(i[s]=s,++s,this.wdaymask[s]!==this.options.wkst);o++);return[i,a,s]},n.prototype.ddayset=function(t,e,r){var i=Ne(null,this.yearlen),s=Bl(Hr(t,e,r))-this.yearordinal;return i[s]=s,[i,s,s+1]},n.prototype.htimeset=function(t,e,r,i){var s=this,a=[];return this.options.byminute.forEach(function(o){a=a.concat(s.mtimeset(t,o,r,i))}),hi(a),a},n.prototype.mtimeset=function(t,e,r,i){var s=this.options.bysecond.map(function(a){return new Ya(t,e,a,i)});return hi(s),s},n.prototype.stimeset=function(t,e,r,i){return[new Ya(t,e,r,i)]},n.prototype.getdayset=function(t){switch(t){case Ae.YEARLY:return this.ydayset.bind(this);case Ae.MONTHLY:return this.mdayset.bind(this);case Ae.WEEKLY:return this.wdayset.bind(this);case Ae.DAILY:return this.ddayset.bind(this);default:return this.ddayset.bind(this)}},n.prototype.gettimeset=function(t){switch(t){case Ae.HOURLY:return this.htimeset.bind(this);case Ae.MINUTELY:return this.mtimeset.bind(this);case Ae.SECONDLY:return this.stimeset.bind(this)}},n}(),uS=$L});function dS(n,t,e,r,i,s){for(var a=[],o=0;o<n.length;o++){var l=void 0,u=void 0,c=n[o];c<0?(l=Math.floor(c/t.length),u=Wt(c,t.length)):(l=Math.floor((c-1)/t.length),u=Wt(c-1,t.length));for(var d=[],f=e;f<r;f++){var p=s[f];!Je(p)||d.push(p)}var b=void 0;l<0?b=d.slice(l)[0]:b=d[l];var T=t[u],_=Uc(i.yearordinal+b),O=Yc(_,T);Ie(a,O)||a.push(O)}return hi(a),a}var fS=ee(()=>{$t();en()});function Gc(n,t){var e=t.dtstart,r=t.freq,i=t.interval,s=t.until,a=t.bysetpos,o=t.count;if(o===0||i===0)return Ti(n);var l=jk.fromDate(e),u=new uS(t);u.rebuild(l.year,l.month);for(var c=GL(u,l,t);;){var d=u.getdayset(r)(l.year,l.month,l.day),f=d[0],p=d[1],b=d[2],T=HL(f,p,b,u,t);if(st(a))for(var _=dS(a,c,p,b,u,f),O=0;O<_.length;O++){var D=_[O];if(s&&D>s)return Ti(n);if(D>=e){var A=pS(D,t);if(!n.accept(A)||o&&(--o,!o))return Ti(n)}}else for(var O=p;O<b;O++){var Y=f[O];if(!!Je(Y))for(var q=Uc(u.yearordinal+Y),se=0;se<c.length;se++){var H=c[se],D=Yc(q,H);if(s&&D>s)return Ti(n);if(D>=e){var A=pS(D,t);if(!n.accept(A)||o&&(--o,!o))return Ti(n)}}}if(t.interval===0||(l.add(t,T),l.year>Lc))return Ti(n);Kl(r)||(c=u.gettimeset(r)(l.hour,l.minute,l.second,0)),u.rebuild(l.year,l.month)}}function qL(n,t,e){var r=e.bymonth,i=e.byweekno,s=e.byweekday,a=e.byeaster,o=e.bymonthday,l=e.bynmonthday,u=e.byyearday;return st(r)&&!Ie(r,n.mmask[t])||st(i)&&!n.wnomask[t]||st(s)&&!Ie(s,n.wdaymask[t])||st(n.nwdaymask)&&!n.nwdaymask[t]||a!==null&&!Ie(n.eastermask,t)||(st(o)||st(l))&&!Ie(o,n.mdaymask[t])&&!Ie(l,n.nmdaymask[t])||st(u)&&(t<n.yearlen&&!Ie(u,t+1)&&!Ie(u,-n.yearlen+t)||t>=n.yearlen&&!Ie(u,t+1-n.yearlen)&&!Ie(u,-n.nextyearlen+t-n.yearlen))}function pS(n,t){return new Ns(n,t.tzid).rezonedDate()}function Ti(n){return n.getValue()}function HL(n,t,e,r,i){for(var s=!1,a=t;a<e;a++){var o=n[a];s=qL(r,o,i),s&&(n[o]=null)}return s}function GL(n,t,e){var r=e.freq,i=e.byhour,s=e.byminute,a=e.bysecond;return Kl(r)?$k(e):r>=ae.HOURLY&&st(i)&&!Ie(i,t.hour)||r>=ae.MINUTELY&&st(s)&&!Ie(s,t.minute)||r>=ae.SECONDLY&&st(a)&&!Ie(a,t.second)?[]:n.gettimeset(r)(t.hour,t.minute,t.second,t.millisecond)}var Bg=ee(()=>{bi();$t();cS();Zn();$g();en();Hc();fS();qc()});var Jn,Ql,qk,ae,Zn=ee(()=>{$t();Wc();Ak();Yk();bi();$g();qg();Hg();Vk();Ms();Bg();Jn={MO:new dt(0),TU:new dt(1),WE:new dt(2),TH:new dt(3),FR:new dt(4),SA:new dt(5),SU:new dt(6)},Ql={freq:Ae.YEARLY,dtstart:null,interval:1,wkst:Jn.MO,count:null,until:null,tzid:null,bysetpos:null,bymonth:null,bymonthday:null,bynmonthday:null,byyearday:null,byweekno:null,byweekday:null,bynweekday:null,byhour:null,byminute:null,bysecond:null,byeaster:null},qk=Object.keys(Ql),ae=function(){function n(t,e){t===void 0&&(t={}),e===void 0&&(e=!1),this._cache=e?null:new Bk,this.origOptions=Wg(t);var r=Wk(t).parsedOptions;this.options=r}return n.parseText=function(t,e){return zl(t,e)},n.fromText=function(t,e){return Fk(t,e)},n.fromString=function(t){return new n(n.parseString(t)||void 0)},n.prototype._iter=function(t){return Gc(t,this.options)},n.prototype._cacheGet=function(t,e){return this._cache?this._cache._cacheGet(t,e):!1},n.prototype._cacheAdd=function(t,e,r){if(!!this._cache)return this._cache._cacheAdd(t,e,r)},n.prototype.all=function(t){if(t)return this._iter(new jg("all",{},t));var e=this._cacheGet("all");return e===!1&&(e=this._iter(new gi("all",{})),this._cacheAdd("all",e)),e},n.prototype.between=function(t,e,r,i){if(r===void 0&&(r=!1),!As(t)||!As(e))throw new Error("Invalid date passed in to RRule.between");var s={before:e,after:t,inc:r};if(i)return this._iter(new jg("between",s,i));var a=this._cacheGet("between",s);return a===!1&&(a=this._iter(new gi("between",s)),this._cacheAdd("between",a,s)),a},n.prototype.before=function(t,e){if(e===void 0&&(e=!1),!As(t))throw new Error("Invalid date passed in to RRule.before");var r={dt:t,inc:e},i=this._cacheGet("before",r);return i===!1&&(i=this._iter(new gi("before",r)),this._cacheAdd("before",i,r)),i},n.prototype.after=function(t,e){if(e===void 0&&(e=!1),!As(t))throw new Error("Invalid date passed in to RRule.after");var r={dt:t,inc:e},i=this._cacheGet("after",r);return i===!1&&(i=this._iter(new gi("after",r)),this._cacheAdd("after",i,r)),i},n.prototype.count=function(){return this.all().length},n.prototype.toString=function(){return Jl(this.origOptions)},n.prototype.toText=function(t,e,r){return Lk(this,t,e,r)},n.prototype.isFullyConvertibleToText=function(){return Uk(this)},n.prototype.clone=function(){return new n(this.origOptions)},n.FREQUENCIES=["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],n.YEARLY=Ae.YEARLY,n.MONTHLY=Ae.MONTHLY,n.WEEKLY=Ae.WEEKLY,n.DAILY=Ae.DAILY,n.HOURLY=Ae.HOURLY,n.MINUTELY=Ae.MINUTELY,n.SECONDLY=Ae.SECONDLY,n.MO=Jn.MO,n.TU=Jn.TU,n.WE=Jn.WE,n.TH=Jn.TH,n.FR=Jn.FR,n.SA=Jn.SA,n.SU=Jn.SU,n.parseString=Zl,n.optionsToString=Jl,n}()});function mS(n,t,e,r,i,s){var a={},o=n.accept;function l(f,p){e.forEach(function(b){b.between(f,p,!0).forEach(function(T){a[Number(T)]=!0})})}i.forEach(function(f){var p=new Ns(f,s).rezonedDate();a[Number(p)]=!0}),n.accept=function(f){var p=Number(f);return isNaN(p)?o.call(this,f):!a[p]&&(l(new Date(p-1),new Date(p+1)),!a[p])?(a[p]=!0,o.call(this,f)):!0},n.method==="between"&&(l(n.args.after,n.args.before),n.accept=function(f){var p=Number(f);return a[p]?!0:(a[p]=!0,o.call(this,f))});for(var u=0;u<r.length;u++){var c=new Ns(r[u],s).rezonedDate();if(!n.accept(new Date(c.getTime())))break}t.forEach(function(f){Gc(n,f.options)});var d=n._result;switch(hi(d),n.method){case"all":case"between":return d;case"before":return d.length&&d[d.length-1]||null;case"after":default:return d.length&&d[0]||null}}var hS=ee(()=>{Hc();Bg();$t()});function BL(n,t){var e=[],r=[],i=[],s=[],a=Xl(n),o=a.dtstart,l=a.tzid,u=XL(n,t.unfold);return u.forEach(function(c){var d;if(!!c){var f=QL(c),p=f.name,b=f.parms,T=f.value;switch(p.toUpperCase()){case"RRULE":if(b.length)throw new Error("unsupported RRULE parm: ".concat(b.join(",")));e.push(Zl(c));break;case"RDATE":var _=(d=/RDATE(?:;TZID=([^:=]+))?/i.exec(c))!==null&&d!==void 0?d:[],O=_[1];O&&!l&&(l=O),r=r.concat(yS(T,b));break;case"EXRULE":if(b.length)throw new Error("unsupported EXRULE parm: ".concat(b.join(",")));i.push(Zl(T));break;case"EXDATE":s=s.concat(yS(T,b));break;case"DTSTART":break;default:throw new Error("unsupported property: "+p)}}}),{dtstart:o,tzid:l,rrulevals:e,rdatevals:r,exrulevals:i,exdatevals:s}}function VL(n,t){var e=BL(n,t),r=e.rrulevals,i=e.rdatevals,s=e.exrulevals,a=e.exdatevals,o=e.dtstart,l=e.tzid,u=t.cache===!1;if(t.compatible&&(t.forceset=!0,t.unfold=!0),t.forceset||r.length>1||i.length||s.length||a.length){var c=new Kg(u);return c.dtstart(o),c.tzid(l||void 0),r.forEach(function(f){c.rrule(new ae(Vg(f,o,l),u))}),i.forEach(function(f){c.rdate(f)}),s.forEach(function(f){c.exrule(new ae(Vg(f,o,l),u))}),a.forEach(function(f){c.exdate(f)}),t.compatible&&t.dtstart&&c.rdate(o),c}var d=r[0]||{};return new ae(Vg(d,d.dtstart||t.dtstart||o,d.tzid||t.tzid||l),u)}function Bc(n,t){return t===void 0&&(t={}),VL(n,zL(t))}function Vg(n,t,e){return Pt(Pt({},n),{dtstart:t,tzid:e})}function zL(n){var t=[],e=Object.keys(n),r=Object.keys(gS);if(e.forEach(function(i){Ie(r,i)||t.push(i)}),t.length)throw new Error("Invalid options: "+t.join(", "));return Pt(Pt({},gS),n)}function KL(n){if(n.indexOf(":")===-1)return{name:"RRULE",value:n};var t=Dk(n,":",1),e=t[0],r=t[1];return{name:e,value:r}}function QL(n){var t=KL(n),e=t.name,r=t.value,i=e.split(";");if(!i)throw new Error("empty property name");return{name:i[0].toUpperCase(),parms:i.slice(1),value:r}}function XL(n,t){if(t===void 0&&(t=!1),n=n&&n.trim(),!n)throw new Error("Invalid empty string");if(!t)return n.split(/\s/);for(var e=n.split(` -`),r=0;r<e.length;){var i=e[r]=e[r].replace(/\s+$/g,"");i?r>0&&i[0]===" "?(e[r-1]+=i.slice(1),e.splice(r,1)):r+=1:e.splice(r,1)}return e}function ZL(n){n.forEach(function(t){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(t))throw new Error("unsupported RDATE/EXDATE parm: "+t)})}function yS(n,t){return ZL(t),n.split(",").map(function(e){return Vl(e)})}var gS,zg=ee(()=>{yi();Zn();Qg();$t();en();qg();gS={dtstart:null,cache:!1,unfold:!1,forceset:!1,compatible:!1,tzid:null}});function bS(n){var t=this;return function(e){if(e!==void 0&&(t["_".concat(n)]=e),t["_".concat(n)]!==void 0)return t["_".concat(n)];for(var r=0;r<t._rrule.length;r++){var i=t._rrule[r].origOptions[n];if(i)return i}}}function TS(n,t){if(!(n instanceof ae))throw new TypeError(String(n)+" is not RRule instance");Ie(t.map(String),String(n))||t.push(n)}function _S(n,t){if(!(n instanceof Date))throw new TypeError(String(n)+" is not Date instance");Ie(t.map(Number),Number(n))||(t.push(n),hi(t))}function vS(n,t,e){var r=!e||e.toUpperCase()==="UTC",i=r?"".concat(n,":"):"".concat(n,";TZID=").concat(e,":"),s=t.map(function(a){return Fa(a.valueOf(),r)}).join(",");return"".concat(i).concat(s)}var Kg,Qg=ee(()=>{yi();Zn();$t();en();hS();zg();Hg();Kg=function(n){La(t,n);function t(e){e===void 0&&(e=!1);var r=n.call(this,{},e)||this;return r.dtstart=bS.apply(r,["dtstart"]),r.tzid=bS.apply(r,["tzid"]),r._rrule=[],r._rdate=[],r._exrule=[],r._exdate=[],r}return t.prototype._iter=function(e){return mS(e,this._rrule,this._exrule,this._rdate,this._exdate,this.tzid())},t.prototype.rrule=function(e){TS(e,this._rrule)},t.prototype.exrule=function(e){TS(e,this._exrule)},t.prototype.rdate=function(e){_S(e,this._rdate)},t.prototype.exdate=function(e){_S(e,this._exdate)},t.prototype.rrules=function(){return this._rrule.map(function(e){return Bc(e.toString())})},t.prototype.exrules=function(){return this._exrule.map(function(e){return Bc(e.toString())})},t.prototype.rdates=function(){return this._rdate.map(function(e){return new Date(e.getTime())})},t.prototype.exdates=function(){return this._exdate.map(function(e){return new Date(e.getTime())})},t.prototype.valueOf=function(){var e=[];return!this._rrule.length&&this._dtstart&&(e=e.concat(Jl({dtstart:this._dtstart}))),this._rrule.forEach(function(r){e=e.concat(r.toString().split(` +show urgency`}},recurringTasks:{heading:"\u91CD\u590D\u6027\u4EFB\u52A1",nextLine:{description:"\u542F\u7528\u6B64\u529F\u80FD\u540E\uFF0C\u4EFB\u52A1\u7684\u4E0B\u4E00\u6B21\u91CD\u590D\u5C06\u663E\u793A\u5728\u5DF2\u5B8C\u6210\u4EFB\u52A1\u7684\u4E0B\u4E00\u884C\u3002\u82E5\u5173\u95ED\u6B64\u529F\u80FD\uFF0C\u5219\u4E0B\u4E00\u6B21\u91CD\u590D\u5C06\u51FA\u73B0\u5728\u5DF2\u5B8C\u6210\u4EFB\u52A1\u7684\u4E0A\u4E00\u884C\u3002",name:"\u628A\u4EFB\u52A1\u7684\u4E0B\u4E00\u6B21\u91CD\u590D\u653E\u5728\u4E0B\u4E00\u884C"},removeScheduledDate:{description:{line1:"",line2:""},name:""}},seeTheDocumentation:"\u53C2\u9605\u6587\u6863",statuses:{collections:{anuppuccinTheme:"AnuPpuccin \u4E3B\u9898",auraTheme:"Aura \u4E3B\u9898",borderTheme:"Border \u4E3B\u9898",buttons:{addCollection:{name:"{{themeName}}: \u6DFB\u52A0 {{numberOfStatuses}} \u79CD\u652F\u6301\u72B6\u6001"}},ebullientworksTheme:"Ebullientworks \u4E3B\u9898",itsThemeAndSlrvbCheckboxes:"ITS \u4E3B\u9898\u548C SlRvb \u590D\u9009\u6846",lytModeTheme:"LYT Mode \u4E3B\u9898 (\u4EC5\u6DF1\u8272\u6A21\u5F0F)",minimalTheme:"Minimal \u4E3B\u9898",thingsTheme:"Things \u4E3B\u9898"},coreStatuses:{buttons:{checkStatuses:{name:"\u67E5\u770B\u5E76\u68C0\u67E5\u60A8\u7684\u72B6\u6001",tooltip:"\u5728\u5E93\u7684\u6839\u76EE\u5F55\u4E0B\u521B\u5EFA\u4E00\u4E2A\u65B0\u6587\u4EF6,\u5305\u542B\u5F53\u524D\u72B6\u6001\u8BBE\u7F6E\u7684 Mermaid \u56FE\u8868."}},description:{line1:"\u8FD9\u4E9B\u662F Tasks \u539F\u751F\u652F\u6301\u7684\u6838\u5FC3\u72B6\u6001\uFF0C\u4E0D\u9700\u8981\u81EA\u5B9A\u4E49CSS\u6837\u5F0F\u6216\u4E3B\u9898\u3002",line2:"\u60A8\u53EF\u4EE5\u5728\u4E0B\u9762\u7F16\u8F91\u548C\u6DFB\u52A0\u81EA\u5B9A\u4E49\u72B6\u6001\u3002"},heading:"\u6838\u5FC3\u72B6\u6001"},customStatuses:{buttons:{addAllUnknown:{name:"\u6DFB\u52A0\u6240\u6709\u672A\u77E5\u72B6\u6001\u7C7B\u578B"},addNewStatus:{name:"\u6DFB\u52A0\u65B0\u4EFB\u52A1\u72B6\u6001"},resetCustomStatuses:{name:"\u91CD\u7F6E\u81EA\u5B9A\u4E49\u72B6\u6001\u7C7B\u578B\u4E3A\u9ED8\u8BA4\u503C"}},description:{line1:"\u60A8\u5E94\u8BE5\u9996\u5148<b>\u9009\u62E9\u5E76\u5B89\u88C5 CSS\u4EE3\u7801\u6BB5\u6216\u4E3B\u9898<b>\u4EE5\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u590D\u9009\u6846\u7684\u6837\u5F0F",line2:"\u7136\u540E\uFF0C\u4F7F\u7528\u4E0B\u9762\u7684\u6309\u94AE\u8BBE\u7F6E\u60A8\u7684\u81EA\u5B9A\u4E49\u72B6\u6001,\u4EE5\u5339\u914D\u60A8\u9009\u62E9\u7684CSS\u590D\u9009\u6846.",line3:"<b>\u6CE8\u610F</b>\u4EFB\u4F55\u4E0E\u66F4\u65E9\u7684\u72B6\u6001\u5177\u6709\u76F8\u540C\u7B26\u53F7\u7684\u72B6\u6001\u90FD\u5C06\u88AB\u5FFD\u7565.\u60A8\u53EF\u4EE5\u901A\u8FC7\u8FD0\u884C\u201CCreate or edit task\u201D\u547D\u4EE4\u5E76\u67E5\u770B\u201CStatus\u201D\u4E0B\u62C9\u5217\u8868\u6765\u786E\u8BA4\u5B9E\u9645\u52A0\u8F7D\u7684\u72B6\u6001\u3002",line4:"\u53C2\u9605\u6587\u6863\uFF01"},heading:"\u81EA\u5B9A\u4E49\u72B6\u6001"},heading:"\u4EFB\u52A1\u72B6\u6001"}}}});var jf,Jx,zb,N,gs=ee(()=>{"use strict";Lb();Ub();jb();$b();Hb();Bb();jf=!1,Jx=()=>{let n=localStorage.getItem("language"),t=(n==null?void 0:n.toLowerCase())||"en";return console.log(`Language in Obsidian settings: '${t}'; requesting Tasks in '${t}'.`),t},zb=()=>F(void 0,null,function*(){jf||(yield yt.init({lng:Jx(),fallbackLng:"en",returnEmptyString:!1,resources:{be:{translation:Yb},en:{translation:Wb},ru:{translation:qb},uk:{translation:Gb},zh:{translation:Vb}},interpolation:{escapeValue:!1}}),jf=!0)}),N=new Proxy(yt,{get(n,t){if(!jf&&t==="t")throw new Error("i18n.t() called before initialization. Call initializeI18n() first.");return Reflect.get(n,t)}})});var wn,fe,ii=ee(()=>{"use strict";wn=class{},fe=wn;fe.dateFormat="YYYY-MM-DD",fe.dateTimeFormat="YYYY-MM-DD HH:mm",fe.indentationRegex=/^([\s\t>]*)/,fe.listMarkerRegex=/([-*+]|[0-9]+[.)])/,fe.checkboxRegex=/\[(.)\]/u,fe.afterCheckboxRegex=/ *(.*)/u,fe.taskRegex=new RegExp(wn.indentationRegex.source+wn.listMarkerRegex.source+" +"+wn.checkboxRegex.source+wn.afterCheckboxRegex.source,"u"),fe.nonTaskRegex=new RegExp(wn.indentationRegex.source+wn.listMarkerRegex.source+"? *("+wn.checkboxRegex.source+")?"+wn.afterCheckboxRegex.source,"u"),fe.listItemRegex=new RegExp(wn.indentationRegex.source+wn.listMarkerRegex.source),fe.blockLinkRegex=/ \^[a-zA-Z0-9-]+$/u,fe.hashTags=/(^|\s)#[^ !@#$%^&*(),.?":{}|<>]+/g,fe.hashTagsFromEnd=new RegExp(wn.hashTags.source+"$")});var Ke=x(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.matchAnyPattern=Ni.extractTerms=Ni.repeatedTimeunitPattern=void 0;function rO(n,t){let e=t.replace(/\((?!\?)/g,"(?:");return`${n}${e}\\s{0,5}(?:,?\\s{0,5}${e}){0,10}`}Ni.repeatedTimeunitPattern=rO;function Kb(n){let t;return n instanceof Array?t=[...n]:n instanceof Map?t=Array.from(n.keys()):t=Object.keys(n),t}Ni.extractTerms=Kb;function iO(n){return`(?:${Kb(n).sort((e,r)=>r.length-e.length).join("|").replace(/\./g,"\\.")})`}Ni.matchAnyPattern=iO});var Ue=x(($f,qf)=>{(function(n,t){typeof $f=="object"&&typeof qf!="undefined"?qf.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis!="undefined"?globalThis:n||self).dayjs=t()})($f,function(){"use strict";var n=1e3,t=6e4,e=36e5,r="millisecond",i="second",s="minute",a="hour",o="day",l="week",u="month",c="quarter",d="year",f="date",p="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,T=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,_={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},O=function(V,K,C){var J=String(V);return!J||J.length>=K?V:""+Array(K+1-J.length).join(C)+V},E={s:O,z:function(V){var K=-V.utcOffset(),C=Math.abs(K),J=Math.floor(C/60),$=C%60;return(K<=0?"+":"-")+O(J,2,"0")+":"+O($,2,"0")},m:function V(K,C){if(K.date()<C.date())return-V(C,K);var J=12*(C.year()-K.year())+(C.month()-K.month()),$=K.clone().add(J,u),oe=C-$<0,m=K.clone().add(J+(oe?-1:1),u);return+(-(J+(C-$)/(oe?$-m:m-$))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:u,y:d,w:l,d:o,D:f,h:a,m:s,s:i,ms:r,Q:c}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},A="en",Y={};Y[A]=_;var q=function(V){return V instanceof ye},se=function(V,K,C){var J;if(!V)return A;if(typeof V=="string")Y[V]&&(J=V),K&&(Y[V]=K,J=V);else{var $=V.name;Y[$]=V,J=$}return!C&&J&&(A=J),J||!C&&A},H=function(V,K){if(q(V))return V.clone();var C=typeof K=="object"?K:{};return C.date=V,C.args=arguments,new ye(C)},Z=E;Z.l=se,Z.i=q,Z.w=function(V,K){return H(V,{locale:K.$L,utc:K.$u,x:K.$x,$offset:K.$offset})};var ye=function(){function V(C){this.$L=se(C.locale,null,!0),this.parse(C)}var K=V.prototype;return K.parse=function(C){this.$d=function(J){var $=J.date,oe=J.utc;if($===null)return new Date(NaN);if(Z.u($))return new Date;if($ instanceof Date)return new Date($);if(typeof $=="string"&&!/Z$/i.test($)){var m=$.match(b);if(m){var y=m[2]-1||0,v=(m[7]||"0").substring(0,3);return oe?new Date(Date.UTC(m[1],y,m[3]||1,m[4]||0,m[5]||0,m[6]||0,v)):new Date(m[1],y,m[3]||1,m[4]||0,m[5]||0,m[6]||0,v)}}return new Date($)}(C),this.$x=C.x||{},this.init()},K.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},K.$utils=function(){return Z},K.isValid=function(){return this.$d.toString()!==p},K.isSame=function(C,J){var $=H(C);return this.startOf(J)<=$&&$<=this.endOf(J)},K.isAfter=function(C,J){return H(C)<this.startOf(J)},K.isBefore=function(C,J){return this.endOf(J)<H(C)},K.$g=function(C,J,$){return Z.u(C)?this[J]:this.set($,C)},K.unix=function(){return Math.floor(this.valueOf()/1e3)},K.valueOf=function(){return this.$d.getTime()},K.startOf=function(C,J){var $=this,oe=!!Z.u(J)||J,m=Z.p(C),y=function(P,W){var ce=Z.w($.$u?Date.UTC($.$y,W,P):new Date($.$y,W,P),$);return oe?ce:ce.endOf(o)},v=function(P,W){return Z.w($.toDate()[P].apply($.toDate("s"),(oe?[0,0,0,0]:[23,59,59,999]).slice(W)),$)},w=this.$W,S=this.$M,M=this.$D,I="set"+(this.$u?"UTC":"");switch(m){case d:return oe?y(1,0):y(31,11);case u:return oe?y(1,S):y(0,S+1);case l:var j=this.$locale().weekStart||0,D=(w<j?w+7:w)-j;return y(oe?M-D:M+(6-D),S);case o:case f:return v(I+"Hours",0);case a:return v(I+"Minutes",1);case s:return v(I+"Seconds",2);case i:return v(I+"Milliseconds",3);default:return this.clone()}},K.endOf=function(C){return this.startOf(C,!1)},K.$set=function(C,J){var $,oe=Z.p(C),m="set"+(this.$u?"UTC":""),y=($={},$[o]=m+"Date",$[f]=m+"Date",$[u]=m+"Month",$[d]=m+"FullYear",$[a]=m+"Hours",$[s]=m+"Minutes",$[i]=m+"Seconds",$[r]=m+"Milliseconds",$)[oe],v=oe===o?this.$D+(J-this.$W):J;if(oe===u||oe===d){var w=this.clone().set(f,1);w.$d[y](v),w.init(),this.$d=w.set(f,Math.min(this.$D,w.daysInMonth())).$d}else y&&this.$d[y](v);return this.init(),this},K.set=function(C,J){return this.clone().$set(C,J)},K.get=function(C){return this[Z.p(C)]()},K.add=function(C,J){var $,oe=this;C=Number(C);var m=Z.p(J),y=function(S){var M=H(oe);return Z.w(M.date(M.date()+Math.round(S*C)),oe)};if(m===u)return this.set(u,this.$M+C);if(m===d)return this.set(d,this.$y+C);if(m===o)return y(1);if(m===l)return y(7);var v=($={},$[s]=t,$[a]=e,$[i]=n,$)[m]||1,w=this.$d.getTime()+C*v;return Z.w(w,this)},K.subtract=function(C,J){return this.add(-1*C,J)},K.format=function(C){var J=this,$=this.$locale();if(!this.isValid())return $.invalidDate||p;var oe=C||"YYYY-MM-DDTHH:mm:ssZ",m=Z.z(this),y=this.$H,v=this.$m,w=this.$M,S=$.weekdays,M=$.months,I=function(W,ce,be,Oe){return W&&(W[ce]||W(J,oe))||be[ce].substr(0,Oe)},j=function(W){return Z.s(y%12||12,W,"0")},D=$.meridiem||function(W,ce,be){var Oe=W<12?"AM":"PM";return be?Oe.toLowerCase():Oe},P={YY:String(this.$y).slice(-2),YYYY:this.$y,M:w+1,MM:Z.s(w+1,2,"0"),MMM:I($.monthsShort,w,M,3),MMMM:I(M,w),D:this.$D,DD:Z.s(this.$D,2,"0"),d:String(this.$W),dd:I($.weekdaysMin,this.$W,S,2),ddd:I($.weekdaysShort,this.$W,S,3),dddd:S[this.$W],H:String(y),HH:Z.s(y,2,"0"),h:j(1),hh:j(2),a:D(y,v,!0),A:D(y,v,!1),m:String(v),mm:Z.s(v,2,"0"),s:String(this.$s),ss:Z.s(this.$s,2,"0"),SSS:Z.s(this.$ms,3,"0"),Z:m};return oe.replace(T,function(W,ce){return ce||P[W]||m.replace(":","")})},K.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},K.diff=function(C,J,$){var oe,m=Z.p(J),y=H(C),v=(y.utcOffset()-this.utcOffset())*t,w=this-y,S=Z.m(this,y);return S=(oe={},oe[d]=S/12,oe[u]=S,oe[c]=S/3,oe[l]=(w-v)/6048e5,oe[o]=(w-v)/864e5,oe[a]=w/e,oe[s]=w/t,oe[i]=w/n,oe)[m]||w,$?S:Z.a(S)},K.daysInMonth=function(){return this.endOf(u).$D},K.$locale=function(){return Y[this.$L]},K.locale=function(C,J){if(!C)return this.$L;var $=this.clone(),oe=se(C,J,!0);return oe&&($.$L=oe),$},K.clone=function(){return Z.w(this.$d,this)},K.toDate=function(){return new Date(this.valueOf())},K.toJSON=function(){return this.isValid()?this.toISOString():null},K.toISOString=function(){return this.$d.toISOString()},K.toString=function(){return this.$d.toUTCString()},V}(),we=ye.prototype;return H.prototype=we,[["$ms",r],["$s",i],["$m",s],["$H",a],["$W",o],["$M",u],["$y",d],["$D",f]].forEach(function(V){we[V[1]]=function(K){return this.$g(K,V[0],V[1])}}),H.extend=function(V,K){return V.$i||(V(K,ye,H),V.$i=!0),H},H.locale=se,H.isDayjs=q,H.unix=function(V){return H(1e3*V)},H.en=Y[A],H.Ls=Y,H.p={},H})});var Ct=x(Ii=>{"use strict";var sO=Ii&&Ii.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ii,"__esModule",{value:!0});Ii.findYearClosestToRef=Ii.findMostLikelyADYear=void 0;var aO=sO(Ue());function oO(n){return n<100&&(n>50?n=n+1900:n=n+2e3),n}Ii.findMostLikelyADYear=oO;function lO(n,t,e){let r=aO.default(n),i=r;i=i.month(e-1),i=i.date(t),i=i.year(r.year());let s=i.add(1,"y"),a=i.add(-1,"y");return Math.abs(s.diff(r))<Math.abs(i.diff(r))?i=s:Math.abs(a.diff(r))<Math.abs(i.diff(r))&&(i=a),i.year()}Ii.findYearClosestToRef=lO});var Mt=x(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.parseTimeUnits=Me.TIME_UNITS_PATTERN=Me.parseYear=Me.YEAR_PATTERN=Me.parseOrdinalNumberPattern=Me.ORDINAL_NUMBER_PATTERN=Me.parseNumberPattern=Me.NUMBER_PATTERN=Me.TIME_UNIT_DICTIONARY=Me.ORDINAL_WORD_DICTIONARY=Me.INTEGER_WORD_DICTIONARY=Me.MONTH_DICTIONARY=Me.FULL_MONTH_NAME_DICTIONARY=Me.WEEKDAY_DICTIONARY=void 0;var Wu=Ke(),uO=Ct();Me.WEEKDAY_DICTIONARY={sunday:0,sun:0,"sun.":0,monday:1,mon:1,"mon.":1,tuesday:2,tue:2,"tue.":2,wednesday:3,wed:3,"wed.":3,thursday:4,thurs:4,"thurs.":4,thur:4,"thur.":4,thu:4,"thu.":4,friday:5,fri:5,"fri.":5,saturday:6,sat:6,"sat.":6};Me.FULL_MONTH_NAME_DICTIONARY={january:1,february:2,march:3,april:4,may:5,june:6,july:7,august:8,september:9,october:10,november:11,december:12};Me.MONTH_DICTIONARY=Object.assign(Object.assign({},Me.FULL_MONTH_NAME_DICTIONARY),{jan:1,"jan.":1,feb:2,"feb.":2,mar:3,"mar.":3,apr:4,"apr.":4,jun:6,"jun.":6,jul:7,"jul.":7,aug:8,"aug.":8,sep:9,"sep.":9,sept:9,"sept.":9,oct:10,"oct.":10,nov:11,"nov.":11,dec:12,"dec.":12});Me.INTEGER_WORD_DICTIONARY={one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12};Me.ORDINAL_WORD_DICTIONARY={first:1,second:2,third:3,fourth:4,fifth:5,sixth:6,seventh:7,eighth:8,ninth:9,tenth:10,eleventh:11,twelfth:12,thirteenth:13,fourteenth:14,fifteenth:15,sixteenth:16,seventeenth:17,eighteenth:18,nineteenth:19,twentieth:20,"twenty first":21,"twenty-first":21,"twenty second":22,"twenty-second":22,"twenty third":23,"twenty-third":23,"twenty fourth":24,"twenty-fourth":24,"twenty fifth":25,"twenty-fifth":25,"twenty sixth":26,"twenty-sixth":26,"twenty seventh":27,"twenty-seventh":27,"twenty eighth":28,"twenty-eighth":28,"twenty ninth":29,"twenty-ninth":29,thirtieth:30,"thirty first":31,"thirty-first":31};Me.TIME_UNIT_DICTIONARY={sec:"second",second:"second",seconds:"second",min:"minute",mins:"minute",minute:"minute",minutes:"minute",h:"hour",hr:"hour",hrs:"hour",hour:"hour",hours:"hour",day:"d",days:"d",week:"week",weeks:"week",month:"month",months:"month",qtr:"quarter",quarter:"quarter",quarters:"quarter",y:"year",yr:"year",year:"year",years:"year"};Me.NUMBER_PATTERN=`(?:${Wu.matchAnyPattern(Me.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s{0,2}an?)?|an?\\b(?:\\s{0,2}few)?|few|several|a?\\s{0,2}couple\\s{0,2}(?:of)?)`;function Xb(n){let t=n.toLowerCase();return Me.INTEGER_WORD_DICTIONARY[t]!==void 0?Me.INTEGER_WORD_DICTIONARY[t]:t==="a"||t==="an"?1:t.match(/few/)?3:t.match(/half/)?.5:t.match(/couple/)?2:t.match(/several/)?7:parseFloat(t)}Me.parseNumberPattern=Xb;Me.ORDINAL_NUMBER_PATTERN=`(?:${Wu.matchAnyPattern(Me.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:st|nd|rd|th)?)`;function cO(n){let t=n.toLowerCase();return Me.ORDINAL_WORD_DICTIONARY[t]!==void 0?Me.ORDINAL_WORD_DICTIONARY[t]:(t=t.replace(/(?:st|nd|rd|th)$/i,""),parseInt(t))}Me.parseOrdinalNumberPattern=cO;Me.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s{0,2}(?:BE|AD|BC|BCE|CE)|[1-2][0-9]{3}|[5-9][0-9])";function dO(n){if(/BE/i.test(n))return n=n.replace(/BE/i,""),parseInt(n)-543;if(/BCE?/i.test(n))return n=n.replace(/BCE?/i,""),-parseInt(n);if(/(AD|CE)/i.test(n))return n=n.replace(/(AD|CE)/i,""),parseInt(n);let t=parseInt(n);return uO.findMostLikelyADYear(t)}Me.parseYear=dO;var Zb=`(${Me.NUMBER_PATTERN})\\s{0,3}(${Wu.matchAnyPattern(Me.TIME_UNIT_DICTIONARY)})`,Qb=new RegExp(Zb,"i");Me.TIME_UNITS_PATTERN=Wu.repeatedTimeunitPattern("(?:(?:about|around)\\s{0,3})?",Zb);function fO(n){let t={},e=n,r=Qb.exec(e);for(;r;)pO(t,r),e=e.substring(r[0].length).trim(),r=Qb.exec(e);return t}Me.parseTimeUnits=fO;function pO(n,t){let e=Xb(t[1]),r=Me.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var Jb=x((Hf,Gf)=>{(function(n,t){typeof Hf=="object"&&typeof Gf!="undefined"?Gf.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis!="undefined"?globalThis:n||self).dayjs_plugin_quarterOfYear=t()})(Hf,function(){"use strict";var n="month",t="quarter";return function(e,r){var i=r.prototype;i.quarter=function(o){return this.$utils().u(o)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(o-1))};var s=i.add;i.add=function(o,l){return o=Number(o),this.$utils().p(l)===t?this.add(3*o,n):s.bind(this)(o,l)};var a=i.startOf;i.startOf=function(o,l){var u=this.$utils(),c=!!u.u(l)||l;if(u.p(o)===t){var d=this.quarter()-1;return c?this.month(3*d).startOf(n).startOf("day"):this.month(3*d+2).endOf(n).endOf("day")}return a.bind(this)(o,l)}}})});var qn=x(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.implySimilarTime=Yr.assignSimilarTime=Yr.assignSimilarDate=Yr.assignTheNextDay=void 0;var eT=ht();function mO(n,t){t=t.add(1,"day"),tT(n,t),nT(n,t)}Yr.assignTheNextDay=mO;function tT(n,t){n.assign("day",t.date()),n.assign("month",t.month()+1),n.assign("year",t.year())}Yr.assignSimilarDate=tT;function hO(n,t){n.assign("hour",t.hour()),n.assign("minute",t.minute()),n.assign("second",t.second()),n.assign("millisecond",t.millisecond()),n.get("hour")<12?n.assign("meridiem",eT.Meridiem.AM):n.assign("meridiem",eT.Meridiem.PM)}Yr.assignSimilarTime=hO;function nT(n,t){n.imply("hour",t.hour()),n.imply("minute",t.minute()),n.imply("second",t.second()),n.imply("millisecond",t.millisecond())}Yr.implySimilarTime=nT});var rT=x(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.toTimezoneOffset=ys.TIMEZONE_ABBR_MAP=void 0;ys.TIMEZONE_ABBR_MAP={ACDT:630,ACST:570,ADT:-180,AEDT:660,AEST:600,AFT:270,AKDT:-480,AKST:-540,ALMT:360,AMST:-180,AMT:-240,ANAST:720,ANAT:720,AQTT:300,ART:-180,AST:-240,AWDT:540,AWST:480,AZOST:0,AZOT:-60,AZST:300,AZT:240,BNT:480,BOT:-240,BRST:-120,BRT:-180,BST:60,BTT:360,CAST:480,CAT:120,CCT:390,CDT:-300,CEST:120,CET:60,CHADT:825,CHAST:765,CKT:-600,CLST:-180,CLT:-240,COT:-300,CST:-360,CVT:-60,CXT:420,ChST:600,DAVT:420,EASST:-300,EAST:-360,EAT:180,ECT:-300,EDT:-240,EEST:180,EET:120,EGST:0,EGT:-60,EST:-300,ET:-300,FJST:780,FJT:720,FKST:-180,FKT:-240,FNT:-120,GALT:-360,GAMT:-540,GET:240,GFT:-180,GILT:720,GMT:0,GST:240,GYT:-240,HAA:-180,HAC:-300,HADT:-540,HAE:-240,HAP:-420,HAR:-360,HAST:-600,HAT:-90,HAY:-480,HKT:480,HLV:-210,HNA:-240,HNC:-360,HNE:-300,HNP:-480,HNR:-420,HNT:-150,HNY:-540,HOVT:420,ICT:420,IDT:180,IOT:360,IRDT:270,IRKST:540,IRKT:540,IRST:210,IST:330,JST:540,KGT:360,KRAST:480,KRAT:480,KST:540,KUYT:240,LHDT:660,LHST:630,LINT:840,MAGST:720,MAGT:720,MART:-510,MAWT:300,MDT:-360,MESZ:120,MEZ:60,MHT:720,MMT:390,MSD:240,MSK:180,MST:-420,MUT:240,MVT:300,MYT:480,NCT:660,NDT:-90,NFT:690,NOVST:420,NOVT:360,NPT:345,NST:-150,NUT:-660,NZDT:780,NZST:720,OMSST:420,OMST:420,PDT:-420,PET:-300,PETST:720,PETT:720,PGT:600,PHOT:780,PHT:480,PKT:300,PMDT:-120,PMST:-180,PONT:660,PST:-480,PT:-480,PWT:540,PYST:-180,PYT:-240,RET:240,SAMT:240,SAST:120,SBT:660,SCT:240,SGT:480,SRT:-180,SST:-660,TAHT:-600,TFT:300,TJT:300,TKT:780,TLT:540,TMT:300,TVT:720,ULAT:480,UTC:0,UYST:-120,UYT:-180,UZT:300,VET:-210,VLAST:660,VLAT:660,VUT:660,WAST:120,WAT:60,WEST:60,WESZ:60,WET:0,WEZ:0,WFT:720,WGST:-120,WGT:-180,WIB:420,WIT:540,WITA:480,WST:780,WT:0,YAKST:600,YAKT:600,YAPT:600,YEKST:360,YEKT:360};function gO(n){var t;return n==null?null:typeof n=="number"?n:(t=ys.TIMEZONE_ABBR_MAP[n])!==null&&t!==void 0?t:null}ys.toTimezoneOffset=gO});var nt=x(jr=>{"use strict";var iT=jr&&jr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(jr,"__esModule",{value:!0});jr.ParsingResult=jr.ParsingComponents=jr.ReferenceWithTimezone=void 0;var yO=iT(Jb()),$u=iT(Ue()),Bf=qn(),bO=rT();$u.default.extend(yO.default);var Vf=class{constructor(t){var e;t=t!=null?t:new Date,t instanceof Date?this.instant=t:(this.instant=(e=t.instant)!==null&&e!==void 0?e:new Date,this.timezoneOffset=bO.toTimezoneOffset(t.timezone))}};jr.ReferenceWithTimezone=Vf;var bs=class{constructor(t,e){if(this.reference=t,this.knownValues={},this.impliedValues={},e)for(let i in e)this.knownValues[i]=e[i];let r=$u.default(t.instant);this.imply("day",r.date()),this.imply("month",r.month()+1),this.imply("year",r.year()),this.imply("hour",12),this.imply("minute",0),this.imply("second",0),this.imply("millisecond",0)}get(t){return t in this.knownValues?this.knownValues[t]:t in this.impliedValues?this.impliedValues[t]:null}isCertain(t){return t in this.knownValues}getCertainComponents(){return Object.keys(this.knownValues)}imply(t,e){return t in this.knownValues?this:(this.impliedValues[t]=e,this)}assign(t,e){return this.knownValues[t]=e,delete this.impliedValues[t],this}delete(t){delete this.knownValues[t],delete this.impliedValues[t]}clone(){let t=new bs(this.reference);t.knownValues={},t.impliedValues={};for(let e in this.knownValues)t.knownValues[e]=this.knownValues[e];for(let e in this.impliedValues)t.impliedValues[e]=this.impliedValues[e];return t}isOnlyDate(){return!this.isCertain("hour")&&!this.isCertain("minute")&&!this.isCertain("second")}isOnlyTime(){return!this.isCertain("weekday")&&!this.isCertain("day")&&!this.isCertain("month")}isOnlyWeekdayComponent(){return this.isCertain("weekday")&&!this.isCertain("day")&&!this.isCertain("month")}isOnlyDayMonthComponent(){return this.isCertain("day")&&this.isCertain("month")&&!this.isCertain("year")}isValidDate(){let t=this.dateWithoutTimezoneAdjustment();return!(t.getFullYear()!==this.get("year")||t.getMonth()!==this.get("month")-1||t.getDate()!==this.get("day")||this.get("hour")!=null&&t.getHours()!=this.get("hour")||this.get("minute")!=null&&t.getMinutes()!=this.get("minute"))}toString(){return`[ParsingComponents {knownValues: ${JSON.stringify(this.knownValues)}, impliedValues: ${JSON.stringify(this.impliedValues)}}, reference: ${JSON.stringify(this.reference)}]`}dayjs(){return $u.default(this.date())}date(){let t=this.dateWithoutTimezoneAdjustment();return new Date(t.getTime()+this.getSystemTimezoneAdjustmentMinute(t)*6e4)}dateWithoutTimezoneAdjustment(){let t=new Date(this.get("year"),this.get("month")-1,this.get("day"),this.get("hour"),this.get("minute"),this.get("second"),this.get("millisecond"));return t.setFullYear(this.get("year")),t}getSystemTimezoneAdjustmentMinute(t){var e,r;(!t||t.getTime()<0)&&(t=new Date);let i=-t.getTimezoneOffset(),s=(r=(e=this.get("timezoneOffset"))!==null&&e!==void 0?e:this.reference.timezoneOffset)!==null&&r!==void 0?r:i;return i-s}static createRelativeFromReference(t,e){let r=$u.default(t.instant);for(let s in e)r=r.add(e[s],s);let i=new bs(t);return e.hour||e.minute||e.second?(Bf.assignSimilarTime(i,r),Bf.assignSimilarDate(i,r),t.timezoneOffset!==null&&i.assign("timezoneOffset",-t.instant.getTimezoneOffset())):(Bf.implySimilarTime(i,r),t.timezoneOffset!==null&&i.imply("timezoneOffset",-t.instant.getTimezoneOffset()),e.d?(i.assign("day",r.date()),i.assign("month",r.month()+1),i.assign("year",r.year())):(e.week&&i.imply("weekday",r.day()),i.imply("day",r.date()),e.month?(i.assign("month",r.month()+1),i.assign("year",r.year())):(i.imply("month",r.month()+1),e.year?i.assign("year",r.year()):i.imply("year",r.year())))),i}};jr.ParsingComponents=bs;var Bo=class{constructor(t,e,r,i,s){this.reference=t,this.refDate=t.instant,this.index=e,this.text=r,this.start=i||new bs(t),this.end=s}clone(){let t=new Bo(this.reference,this.index,this.text);return t.start=this.start?this.start.clone():null,t.end=this.end?this.end.clone():null,t}date(){return this.start.date()}toString(){return`[ParsingResult {index: ${this.index}, text: '${this.text}', ...}]`}};jr.ParsingResult=Bo});var re=x(qu=>{"use strict";Object.defineProperty(qu,"__esModule",{value:!0});qu.AbstractParserWithWordBoundaryChecking=void 0;var zf=class{constructor(){this.cachedInnerPattern=null,this.cachedPattern=null}patternLeftBoundary(){return"(\\W|^)"}pattern(t){let e=this.innerPattern(t);return e==this.cachedInnerPattern?this.cachedPattern:(this.cachedPattern=new RegExp(`${this.patternLeftBoundary()}${e.source}`,e.flags),this.cachedInnerPattern=e,this.cachedPattern)}extract(t,e){var r;let i=(r=e[1])!==null&&r!==void 0?r:"";e.index=e.index+i.length,e[0]=e[0].substring(i.length);for(let s=2;s<e.length;s++)e[s-1]=e[s];return this.innerExtract(t,e)}};qu.AbstractParserWithWordBoundaryChecking=zf});var sT=x(Xf=>{"use strict";Object.defineProperty(Xf,"__esModule",{value:!0});var Qf=Mt(),TO=nt(),_O=re(),vO=new RegExp(`(?:within|in|for)\\s*(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${Qf.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),wO=new RegExp(`(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${Qf.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),Kf=class extends _O.AbstractParserWithWordBoundaryChecking{innerPattern(t){return t.option.forwardDate?wO:vO}innerExtract(t,e){let r=Qf.parseTimeUnits(e[1]);return TO.ParsingComponents.createRelativeFromReference(t.reference,r)}};Xf.default=Kf});var dT=x(Jf=>{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});var kO=Ct(),uT=Mt(),cT=Mt(),Hu=Mt(),SO=Ke(),DO=re(),EO=new RegExp(`(?:on\\s{0,3})?(${Hu.ORDINAL_NUMBER_PATTERN})(?:\\s{0,3}(?:to|\\-|\\\u2013|until|through|till)?\\s{0,3}(${Hu.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s{0,3}(?:of)?\\s{0,3})(${SO.matchAnyPattern(uT.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s{0,3})(${cT.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),aT=1,oT=2,xO=3,lT=4,Zf=class extends DO.AbstractParserWithWordBoundaryChecking{innerPattern(){return EO}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=uT.MONTH_DICTIONARY[e[xO].toLowerCase()],s=Hu.parseOrdinalNumberPattern(e[aT]);if(s>31)return e.index=e.index+e[aT].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[lT]){let a=cT.parseYear(e[lT]);r.start.assign("year",a)}else{let a=kO.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[oT]){let a=Hu.parseOrdinalNumberPattern(e[oT]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};Jf.default=Zf});var gT=x(tp=>{"use strict";Object.defineProperty(tp,"__esModule",{value:!0});var OO=Ct(),mT=Mt(),Gu=Mt(),hT=Mt(),CO=Ke(),MO=re(),RO=new RegExp(`(${CO.matchAnyPattern(mT.MONTH_DICTIONARY)})(?:-|/|\\s*,?\\s*)(${Gu.ORDINAL_NUMBER_PATTERN})(?!\\s*(?:am|pm))\\s*(?:(?:to|\\-)\\s*(${Gu.ORDINAL_NUMBER_PATTERN})\\s*)?(?:(?:-|/|\\s*,?\\s*)(${hT.YEAR_PATTERN}))?(?=\\W|$)(?!\\:\\d)`,"i"),AO=1,PO=2,fT=3,pT=4,ep=class extends MO.AbstractParserWithWordBoundaryChecking{innerPattern(){return RO}innerExtract(t,e){let r=mT.MONTH_DICTIONARY[e[AO].toLowerCase()],i=Gu.parseOrdinalNumberPattern(e[PO]);if(i>31)return null;let s=t.createParsingComponents({day:i,month:r});if(e[pT]){let l=hT.parseYear(e[pT]);s.assign("year",l)}else{let l=OO.findYearClosestToRef(t.refDate,i,r);s.imply("year",l)}if(!e[fT])return s;let a=Gu.parseOrdinalNumberPattern(e[fT]),o=t.createParsingResult(e.index,e[0]);return o.start=s,o.end=s.clone(),o.end.assign("day",a),o}};tp.default=ep});var TT=x(ip=>{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});var np=Mt(),NO=Ct(),IO=Ke(),bT=Mt(),FO=re(),LO=new RegExp(`((?:in)\\s*)?(${IO.matchAnyPattern(np.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${bT.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,"i"),UO=1,YO=2,yT=3,rp=class extends FO.AbstractParserWithWordBoundaryChecking{innerPattern(){return LO}innerExtract(t,e){let r=e[YO].toLowerCase();if(e[0].length<=3&&!np.FULL_MONTH_NAME_DICTIONARY[r])return null;let i=t.createParsingResult(e.index+(e[UO]||"").length,e.index+e[0].length);i.start.imply("day",1);let s=np.MONTH_DICTIONARY[r];if(i.start.assign("month",s),e[yT]){let a=bT.parseYear(e[yT]);i.start.assign("year",a)}else{let a=NO.findYearClosestToRef(t.refDate,1,s);i.start.imply("year",a)}return i}};ip.default=rp});var wT=x(ap=>{"use strict";Object.defineProperty(ap,"__esModule",{value:!0});var vT=Mt(),jO=Ke(),WO=re(),$O=new RegExp(`([0-9]{4})[\\.\\/\\s](?:(${jO.matchAnyPattern(vT.MONTH_DICTIONARY)})|([0-9]{1,2}))[\\.\\/\\s]([0-9]{1,2})(?=\\W|$)`,"i"),qO=1,HO=2,_T=3,GO=4,sp=class extends WO.AbstractParserWithWordBoundaryChecking{innerPattern(){return $O}innerExtract(t,e){let r=e[_T]?parseInt(e[_T]):vT.MONTH_DICTIONARY[e[HO].toLowerCase()];if(r<1||r>12)return null;let i=parseInt(e[qO]);return{day:parseInt(e[GO]),month:r,year:i}}};ap.default=sp});var kT=x(lp=>{"use strict";Object.defineProperty(lp,"__esModule",{value:!0});var BO=re(),VO=new RegExp("([0-9]|0[1-9]|1[012])/([0-9]{4})","i"),zO=1,KO=2,op=class extends BO.AbstractParserWithWordBoundaryChecking{innerPattern(){return VO}innerExtract(t,e){let r=parseInt(e[KO]),i=parseInt(e[zO]);return t.createParsingComponents().imply("day",1).assign("month",i).assign("year",r)}};lp.default=op});var Ts=x(zu=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});zu.AbstractTimeExpressionParser=void 0;var en=ht();function QO(n,t,e,r){return new RegExp(`${n}${t}(\\d{1,4})(?:(?:\\.|:|\uFF1A)(\\d{1,2})(?:(?::|\uFF1A)(\\d{2})(?:\\.(\\d{1,6}))?)?)?(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?${e}`,r)}function XO(n,t){return new RegExp(`^(${n})(\\d{1,4})(?:(?:\\.|\\:|\\\uFF1A)(\\d{1,2})(?:(?:\\.|\\:|\\\uFF1A)(\\d{1,2})(?:\\.(\\d{1,6}))?)?)?(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?${t}`,"i")}var ST=2,Ta=3,Bu=4,Vu=5,Vo=6,up=class{constructor(t=!1){this.cachedPrimaryPrefix=null,this.cachedPrimarySuffix=null,this.cachedPrimaryTimePattern=null,this.cachedFollowingPhase=null,this.cachedFollowingSuffix=null,this.cachedFollowingTimePatten=null,this.strictMode=t}patternFlags(){return"i"}primaryPatternLeftBoundary(){return"(^|\\s|T|\\b)"}primarySuffix(){return"(?=\\W|$)"}followingSuffix(){return"(?=\\W|$)"}pattern(t){return this.getPrimaryTimePatternThroughCache()}extract(t,e){let r=this.extractPrimaryTimeComponents(t,e);if(!r)return e.index+=e[0].length,null;let i=e.index+e[1].length,s=e[0].substring(e[1].length),a=t.createParsingResult(i,s,r);e.index+=e[0].length;let o=t.text.substring(e.index),u=this.getFollowingTimePatternThroughCache().exec(o);return s.match(/^\d{3,4}/)&&u&&u[0].match(/^\s*([+-])\s*\d{2,4}$/)?null:!u||u[0].match(/^\s*([+-])\s*\d{3,4}$/)?this.checkAndReturnWithoutFollowingPattern(a):(a.end=this.extractFollowingTimeComponents(t,u,a),a.end&&(a.text+=u[0]),this.checkAndReturnWithFollowingPattern(a))}extractPrimaryTimeComponents(t,e,r=!1){let i=t.createParsingComponents(),s=0,a=null,o=parseInt(e[ST]);if(o>100){if(this.strictMode||e[Ta]!=null)return null;s=o%100,o=Math.floor(o/100)}if(o>24)return null;if(e[Ta]!=null){if(e[Ta].length==1&&!e[Vo])return null;s=parseInt(e[Ta])}if(s>=60)return null;if(o>12&&(a=en.Meridiem.PM),e[Vo]!=null){if(o>12)return null;let l=e[Vo][0].toLowerCase();l=="a"&&(a=en.Meridiem.AM,o==12&&(o=0)),l=="p"&&(a=en.Meridiem.PM,o!=12&&(o+=12))}if(i.assign("hour",o),i.assign("minute",s),a!==null?i.assign("meridiem",a):o<12?i.imply("meridiem",en.Meridiem.AM):i.imply("meridiem",en.Meridiem.PM),e[Vu]!=null){let l=parseInt(e[Vu].substring(0,3));if(l>=1e3)return null;i.assign("millisecond",l)}if(e[Bu]!=null){let l=parseInt(e[Bu]);if(l>=60)return null;i.assign("second",l)}return i}extractFollowingTimeComponents(t,e,r){let i=t.createParsingComponents();if(e[Vu]!=null){let l=parseInt(e[Vu].substring(0,3));if(l>=1e3)return null;i.assign("millisecond",l)}if(e[Bu]!=null){let l=parseInt(e[Bu]);if(l>=60)return null;i.assign("second",l)}let s=parseInt(e[ST]),a=0,o=-1;if(e[Ta]!=null?a=parseInt(e[Ta]):s>100&&(a=s%100,s=Math.floor(s/100)),a>=60||s>24)return null;if(s>=12&&(o=en.Meridiem.PM),e[Vo]!=null){if(s>12)return null;let l=e[Vo][0].toLowerCase();l=="a"&&(o=en.Meridiem.AM,s==12&&(s=0,i.isCertain("day")||i.imply("day",i.get("day")+1))),l=="p"&&(o=en.Meridiem.PM,s!=12&&(s+=12)),r.start.isCertain("meridiem")||(o==en.Meridiem.AM?(r.start.imply("meridiem",en.Meridiem.AM),r.start.get("hour")==12&&r.start.assign("hour",0)):(r.start.imply("meridiem",en.Meridiem.PM),r.start.get("hour")!=12&&r.start.assign("hour",r.start.get("hour")+12)))}return i.assign("hour",s),i.assign("minute",a),o>=0?i.assign("meridiem",o):r.start.isCertain("meridiem")&&r.start.get("hour")>12?r.start.get("hour")-12>s?i.imply("meridiem",en.Meridiem.AM):s<=12&&(i.assign("hour",s+12),i.assign("meridiem",en.Meridiem.PM)):s>12?i.imply("meridiem",en.Meridiem.PM):s<=12&&i.imply("meridiem",en.Meridiem.AM),i.date().getTime()<r.start.date().getTime()&&i.imply("day",i.get("day")+1),i}checkAndReturnWithoutFollowingPattern(t){if(t.text.match(/^\d$/)||t.text.match(/^\d\d\d+$/)||t.text.match(/\d[apAP]$/))return null;let e=t.text.match(/[^\d:.](\d[\d.]+)$/);if(e){let r=e[1];if(this.strictMode||r.includes(".")&&!r.match(/\d(\.\d{2})+$/)||parseInt(r)>24)return null}return t}checkAndReturnWithFollowingPattern(t){if(t.text.match(/^\d+-\d+$/))return null;let e=t.text.match(/[^\d:.](\d[\d.]+)\s*-\s*(\d[\d.]+)$/);if(e){if(this.strictMode)return null;let r=e[1],i=e[2];if(i.includes(".")&&!i.match(/\d(\.\d{2})+$/))return null;let s=parseInt(i),a=parseInt(r);if(s>24||a>24)return null}return t}getPrimaryTimePatternThroughCache(){let t=this.primaryPrefix(),e=this.primarySuffix();return this.cachedPrimaryPrefix===t&&this.cachedPrimarySuffix===e?this.cachedPrimaryTimePattern:(this.cachedPrimaryTimePattern=QO(this.primaryPatternLeftBoundary(),t,e,this.patternFlags()),this.cachedPrimaryPrefix=t,this.cachedPrimarySuffix=e,this.cachedPrimaryTimePattern)}getFollowingTimePatternThroughCache(){let t=this.followingPhase(),e=this.followingSuffix();return this.cachedFollowingPhase===t&&this.cachedFollowingSuffix===e?this.cachedFollowingTimePatten:(this.cachedFollowingTimePatten=XO(t,e),this.cachedFollowingPhase=t,this.cachedFollowingSuffix=e,this.cachedFollowingTimePatten)}};zu.AbstractTimeExpressionParser=up});var DT=x(dp=>{"use strict";Object.defineProperty(dp,"__esModule",{value:!0});var Ku=ht(),ZO=Ts(),cp=class extends ZO.AbstractTimeExpressionParser{constructor(t){super(t)}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|to|\\?)\\s*"}primaryPrefix(){return"(?:(?:at|from)\\s*)??"}primarySuffix(){return"(?:\\s*(?:o\\W*clock|at\\s*night|in\\s*the\\s*(?:morning|afternoon)))?(?!/)(?=\\W|$)"}extractPrimaryTimeComponents(t,e){let r=super.extractPrimaryTimeComponents(t,e);if(r){if(e[0].endsWith("night")){let i=r.get("hour");i>=6&&i<12?(r.assign("hour",r.get("hour")+12),r.assign("meridiem",Ku.Meridiem.PM)):i<6&&r.assign("meridiem",Ku.Meridiem.AM)}if(e[0].endsWith("afternoon")){r.assign("meridiem",Ku.Meridiem.PM);let i=r.get("hour");i>=0&&i<=6&&r.assign("hour",r.get("hour")+12)}e[0].endsWith("morning")&&(r.assign("meridiem",Ku.Meridiem.AM),r.get("hour")<12&&r.assign("hour",r.get("hour")))}return r}};dp.default=cp});var Hn=x(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.addImpliedTimeUnits=_a.reverseTimeUnits=void 0;function JO(n){let t={};for(let e in n)t[e]=-n[e];return t}_a.reverseTimeUnits=JO;function e0(n,t){let e=n.clone(),r=n.dayjs();for(let i in t)r=r.add(t[i],i);return("day"in t||"d"in t||"week"in t||"month"in t||"year"in t)&&(e.imply("day",r.date()),e.imply("month",r.month()+1),e.imply("year",r.year())),("second"in t||"minute"in t||"hour"in t)&&(e.imply("second",r.second()),e.imply("minute",r.minute()),e.imply("hour",r.hour())),e}_a.addImpliedTimeUnits=e0});var ET=x(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var pp=Mt(),t0=nt(),n0=re(),r0=Hn(),i0=new RegExp(`(${pp.TIME_UNITS_PATTERN})\\s{0,5}(?:ago|before|earlier)(?=(?:\\W|$))`,"i"),s0=new RegExp(`(${pp.TIME_UNITS_PATTERN})\\s{0,5}ago(?=(?:\\W|$))`,"i"),fp=class extends n0.AbstractParserWithWordBoundaryChecking{constructor(t){super(),this.strictMode=t}innerPattern(){return this.strictMode?s0:i0}innerExtract(t,e){let r=pp.parseTimeUnits(e[1]),i=r0.reverseTimeUnits(r);return t0.ParsingComponents.createRelativeFromReference(t.reference,i)}};mp.default=fp});var xT=x(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var gp=Mt(),a0=nt(),o0=re(),l0=new RegExp(`(${gp.TIME_UNITS_PATTERN})\\s{0,5}(?:later|after|from now|henceforth|forward|out)(?=(?:\\W|$))`,"i"),u0=new RegExp("("+gp.TIME_UNITS_PATTERN+")(later|from now)(?=(?:\\W|$))","i"),c0=1,hp=class extends o0.AbstractParserWithWordBoundaryChecking{constructor(t){super(),this.strictMode=t}innerPattern(){return this.strictMode?u0:l0}innerExtract(t,e){let r=gp.parseTimeUnits(e[c0]);return a0.ParsingComponents.createRelativeFromReference(t.reference,r)}};yp.default=hp});var wa=x(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.MergingRefiner=va.Filter=void 0;var bp=class{refine(t,e){return e.filter(r=>this.isValid(t,r))}};va.Filter=bp;var Tp=class{refine(t,e){if(e.length<2)return e;let r=[],i=e[0],s=null;for(let a=1;a<e.length;a++){s=e[a];let o=t.text.substring(i.index+i.text.length,s.index);if(!this.shouldMergeResults(o,i,s,t))r.push(i),i=s;else{let l=i,u=s,c=this.mergeResults(o,l,u,t);t.debug(()=>{console.log(`${this.constructor.name} merged ${l} and ${u} into ${c}`)}),i=c}}return i!=null&&r.push(i),r}};va.MergingRefiner=Tp});var Wr=x(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var d0=wa(),_p=class extends d0.MergingRefiner{shouldMergeResults(t,e,r){return!e.end&&!r.end&&t.match(this.patternBetween())!=null}mergeResults(t,e,r){if(!e.start.isOnlyWeekdayComponent()&&!r.start.isOnlyWeekdayComponent()&&(r.start.getCertainComponents().forEach(s=>{e.start.isCertain(s)||e.start.assign(s,r.start.get(s))}),e.start.getCertainComponents().forEach(s=>{r.start.isCertain(s)||r.start.assign(s,e.start.get(s))})),e.start.date().getTime()>r.start.date().getTime()){let s=e.start.dayjs(),a=r.start.dayjs();e.start.isOnlyWeekdayComponent()&&s.add(-7,"days").isBefore(a)?(s=s.add(-7,"days"),e.start.imply("day",s.date()),e.start.imply("month",s.month()+1),e.start.imply("year",s.year())):r.start.isOnlyWeekdayComponent()&&a.add(7,"days").isAfter(s)?(a=a.add(7,"days"),r.start.imply("day",a.date()),r.start.imply("month",a.month()+1),r.start.imply("year",a.year())):[r,e]=[e,r]}let i=e.clone();return i.start=e.start,i.end=r.start,i.index=Math.min(e.index,r.index),e.index<r.index?i.text=e.text+t+r.text:i.text=r.text+t+e.text,i}};vp.default=_p});var OT=x(zo=>{"use strict";var f0=zo&&zo.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(zo,"__esModule",{value:!0});var p0=f0(Wr()),wp=class extends p0.default{patternBetween(){return/^\s*(to|-)\s*$/i}};zo.default=wp});var CT=x(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.mergeDateTimeComponent=ka.mergeDateTimeResult=void 0;var m0=ht();function h0(n,t){let e=n.clone(),r=n.start,i=t.start;if(e.start=kp(r,i),n.end!=null||t.end!=null){let s=n.end==null?n.start:n.end,a=t.end==null?t.start:t.end,o=kp(s,a);n.end==null&&o.date().getTime()<e.start.date().getTime()&&(o.isCertain("day")?o.assign("day",o.get("day")+1):o.imply("day",o.get("day")+1)),e.end=o}return e}ka.mergeDateTimeResult=h0;function kp(n,t){let e=n.clone();return t.isCertain("hour")?(e.assign("hour",t.get("hour")),e.assign("minute",t.get("minute")),t.isCertain("second")?(e.assign("second",t.get("second")),t.isCertain("millisecond")?e.assign("millisecond",t.get("millisecond")):e.imply("millisecond",t.get("millisecond"))):(e.imply("second",t.get("second")),e.imply("millisecond",t.get("millisecond")))):(e.imply("hour",t.get("hour")),e.imply("minute",t.get("minute")),e.imply("second",t.get("second")),e.imply("millisecond",t.get("millisecond"))),t.isCertain("timezoneOffset")&&e.assign("timezoneOffset",t.get("timezoneOffset")),t.isCertain("meridiem")?e.assign("meridiem",t.get("meridiem")):t.get("meridiem")!=null&&e.get("meridiem")==null&&e.imply("meridiem",t.get("meridiem")),e.get("meridiem")==m0.Meridiem.PM&&e.get("hour")<12&&(t.isCertain("hour")?e.assign("hour",e.get("hour")+12):e.imply("hour",e.get("hour")+12)),e}ka.mergeDateTimeComponent=kp});var si=x(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var g0=wa(),MT=CT(),Sp=class extends g0.MergingRefiner{shouldMergeResults(t,e,r){return(e.start.isOnlyDate()&&r.start.isOnlyTime()||r.start.isOnlyDate()&&e.start.isOnlyTime())&&t.match(this.patternBetween())!=null}mergeResults(t,e,r){let i=e.start.isOnlyDate()?MT.mergeDateTimeResult(e,r):MT.mergeDateTimeResult(r,e);return i.index=e.index,i.text=e.text+t+r.text,i}};Dp.default=Sp});var RT=x(Ko=>{"use strict";var y0=Ko&&Ko.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ko,"__esModule",{value:!0});var b0=y0(si()),Ep=class extends b0.default{patternBetween(){return new RegExp("^\\s*(T|at|after|before|on|of|,|-)?\\s*$")}};Ko.default=Ep});var AT=x(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var T0=new RegExp("^\\s*,?\\s*\\(?([A-Z]{2,4})\\)?(?=\\W|$)","i"),_0={ACDT:630,ACST:570,ADT:-180,AEDT:660,AEST:600,AFT:270,AKDT:-480,AKST:-540,ALMT:360,AMST:-180,AMT:-240,ANAST:720,ANAT:720,AQTT:300,ART:-180,AST:-240,AWDT:540,AWST:480,AZOST:0,AZOT:-60,AZST:300,AZT:240,BNT:480,BOT:-240,BRST:-120,BRT:-180,BST:60,BTT:360,CAST:480,CAT:120,CCT:390,CDT:-300,CEST:120,CET:60,CHADT:825,CHAST:765,CKT:-600,CLST:-180,CLT:-240,COT:-300,CST:-360,CVT:-60,CXT:420,ChST:600,DAVT:420,EASST:-300,EAST:-360,EAT:180,ECT:-300,EDT:-240,EEST:180,EET:120,EGST:0,EGT:-60,EST:-300,ET:-300,FJST:780,FJT:720,FKST:-180,FKT:-240,FNT:-120,GALT:-360,GAMT:-540,GET:240,GFT:-180,GILT:720,GMT:0,GST:240,GYT:-240,HAA:-180,HAC:-300,HADT:-540,HAE:-240,HAP:-420,HAR:-360,HAST:-600,HAT:-90,HAY:-480,HKT:480,HLV:-210,HNA:-240,HNC:-360,HNE:-300,HNP:-480,HNR:-420,HNT:-150,HNY:-540,HOVT:420,ICT:420,IDT:180,IOT:360,IRDT:270,IRKST:540,IRKT:540,IRST:210,IST:330,JST:540,KGT:360,KRAST:480,KRAT:480,KST:540,KUYT:240,LHDT:660,LHST:630,LINT:840,MAGST:720,MAGT:720,MART:-510,MAWT:300,MDT:-360,MESZ:120,MEZ:60,MHT:720,MMT:390,MSD:240,MSK:240,MST:-420,MUT:240,MVT:300,MYT:480,NCT:660,NDT:-90,NFT:690,NOVST:420,NOVT:360,NPT:345,NST:-150,NUT:-660,NZDT:780,NZST:720,OMSST:420,OMST:420,PDT:-420,PET:-300,PETST:720,PETT:720,PGT:600,PHOT:780,PHT:480,PKT:300,PMDT:-120,PMST:-180,PONT:660,PST:-480,PT:-480,PWT:540,PYST:-180,PYT:-240,RET:240,SAMT:240,SAST:120,SBT:660,SCT:240,SGT:480,SRT:-180,SST:-660,TAHT:-600,TFT:300,TJT:300,TKT:780,TLT:540,TMT:300,TVT:720,ULAT:480,UTC:0,UYST:-120,UYT:-180,UZT:300,VET:-210,VLAST:660,VLAT:660,VUT:660,WAST:120,WAT:60,WEST:60,WESZ:60,WET:0,WEZ:0,WFT:720,WGST:-120,WGT:-180,WIB:420,WIT:540,WITA:480,WST:780,WT:0,YAKST:600,YAKT:600,YAPT:600,YEKST:360,YEKT:360},xp=class{constructor(t){this.timezone=Object.assign(Object.assign({},_0),t)}refine(t,e){var r;let i=(r=t.option.timezones)!==null&&r!==void 0?r:{};return e.forEach(s=>{var a,o;let l=t.text.substring(s.index+s.text.length),u=T0.exec(l);if(!u)return;let c=u[1].toUpperCase(),d=(o=(a=i[c])!==null&&a!==void 0?a:this.timezone[c])!==null&&o!==void 0?o:null;if(d===null)return;t.debug(()=>{console.log(`Extracting timezone: '${c}' into: ${d} for: ${s.start}`)});let f=s.start.get("timezoneOffset");f!==null&&d!=f&&(s.start.isCertain("timezoneOffset")||c!=u[1])||s.start.isOnlyDate()&&c!=u[1]||(s.text+=u[0],s.start.isCertain("timezoneOffset")||s.start.assign("timezoneOffset",d),s.end!=null&&!s.end.isCertain("timezoneOffset")&&s.end.assign("timezoneOffset",d))}),e}};Op.default=xp});var Qu=x(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var v0=new RegExp("^\\s*(?:\\(?(?:GMT|UTC)\\s?)?([+-])(\\d{1,2})(?::?(\\d{2}))?\\)?","i"),w0=1,k0=2,S0=3,Cp=class{refine(t,e){return e.forEach(function(r){if(r.start.isCertain("timezoneOffset"))return;let i=t.text.substring(r.index+r.text.length),s=v0.exec(i);if(!s)return;t.debug(()=>{console.log(`Extracting timezone: '${s[0]}' into : ${r}`)});let a=parseInt(s[k0]),o=parseInt(s[S0]||"0"),l=a*60+o;l>14*60||(s[w0]==="-"&&(l=-l),r.end!=null&&r.end.assign("timezoneOffset",l),r.start.assign("timezoneOffset",l),r.text+=s[0])}),e}};Mp.default=Cp});var PT=x(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var Rp=class{refine(t,e){if(e.length<2)return e;let r=[],i=e[0];for(let s=1;s<e.length;s++){let a=e[s];a.index<i.index+i.text.length?a.text.length>i.text.length&&(i=a):(r.push(i),i=a)}return i!=null&&r.push(i),r}};Ap.default=Rp});var NT=x(Qo=>{"use strict";var D0=Qo&&Qo.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Qo,"__esModule",{value:!0});var E0=D0(Ue()),Pp=class{refine(t,e){return t.option.forwardDate&&e.forEach(function(r){let i=E0.default(t.refDate);if(r.start.isOnlyDayMonthComponent()&&i.isAfter(r.start.dayjs()))for(let s=0;s<3&&i.isAfter(r.start.dayjs());s++)r.start.imply("year",r.start.get("year")+1),t.debug(()=>{console.log(`Forward yearly adjusted for ${r} (${r.start})`)}),r.end&&!r.end.isCertain("year")&&(r.end.imply("year",r.end.get("year")+1),t.debug(()=>{console.log(`Forward yearly adjusted for ${r} (${r.end})`)}));r.start.isOnlyWeekdayComponent()&&i.isAfter(r.start.dayjs())&&(i.day()>=r.start.get("weekday")?i=i.day(r.start.get("weekday")+7):i=i.day(r.start.get("weekday")),r.start.imply("day",i.date()),r.start.imply("month",i.month()+1),r.start.imply("year",i.year()),t.debug(()=>{console.log(`Forward weekly adjusted for ${r} (${r.start})`)}),r.end&&r.end.isOnlyWeekdayComponent()&&(i.day()>r.end.get("weekday")?i=i.day(r.end.get("weekday")+7):i=i.day(r.end.get("weekday")),r.end.imply("day",i.date()),r.end.imply("month",i.month()+1),r.end.imply("year",i.year()),t.debug(()=>{console.log(`Forward weekly adjusted for ${r} (${r.end})`)})))}),e}};Qo.default=Pp});var IT=x(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var x0=wa(),Np=class extends x0.Filter{constructor(t){super(),this.strictMode=t}isValid(t,e){return e.text.replace(" ","").match(/^\d*(\.\d*)?$/)?(t.debug(()=>{console.log(`Removing unlikely result '${e.text}'`)}),!1):e.start.isValidDate()?e.end&&!e.end.isValidDate()?(t.debug(()=>{console.log(`Removing invalid result: ${e} (${e.end})`)}),!1):this.strictMode?this.isStrictModeValid(t,e):!0:(t.debug(()=>{console.log(`Removing invalid result: ${e} (${e.start})`)}),!1)}isStrictModeValid(t,e){return e.start.isOnlyWeekdayComponent()?(t.debug(()=>{console.log(`(Strict) Removing weekday only component: ${e} (${e.end})`)}),!1):e.start.isOnlyTime()&&(!e.start.isCertain("hour")||!e.start.isCertain("minute"))?(t.debug(()=>{console.log(`(Strict) Removing uncertain time component: ${e} (${e.end})`)}),!1):!0}};Ip.default=Np});var Up=x(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var O0=re(),C0=new RegExp("([0-9]{4})\\-([0-9]{1,2})\\-([0-9]{1,2})(?:T([0-9]{1,2}):([0-9]{1,2})(?::([0-9]{1,2})(?:\\.(\\d{1,4}))?)?(?:Z|([+-]\\d{2}):?(\\d{2})?)?)?(?=\\W|$)","i"),M0=1,R0=2,A0=3,FT=4,P0=5,LT=6,UT=7,YT=8,jT=9,Fp=class extends O0.AbstractParserWithWordBoundaryChecking{innerPattern(){return C0}innerExtract(t,e){let r={};if(r.year=parseInt(e[M0]),r.month=parseInt(e[R0]),r.day=parseInt(e[A0]),e[FT]!=null)if(r.hour=parseInt(e[FT]),r.minute=parseInt(e[P0]),e[LT]!=null&&(r.second=parseInt(e[LT])),e[UT]!=null&&(r.millisecond=parseInt(e[UT])),e[YT]==null)r.timezoneOffset=0;else{let i=parseInt(e[YT]),s=0;e[jT]!=null&&(s=parseInt(e[jT]));let a=i*60;a<0?a-=s:a+=s,r.timezoneOffset=a}return r}};Lp.default=Fp});var WT=x(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var N0=wa(),Yp=class extends N0.MergingRefiner{mergeResults(t,e,r){let i=r.clone();return i.index=e.index,i.text=e.text+t+i.text,i.start.assign("weekday",e.start.get("weekday")),i.end&&i.end.assign("weekday",e.start.get("weekday")),i}shouldMergeResults(t,e,r){return e.start.isOnlyWeekdayComponent()&&!e.start.isCertain("hour")&&r.start.isCertain("day")&&t.match(/^,?\s*$/)!=null}};jp.default=Yp});var ai=x(Sa=>{"use strict";var _s=Sa&&Sa.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Sa,"__esModule",{value:!0});Sa.includeCommonConfiguration=void 0;var I0=_s(AT()),F0=_s(Qu()),$T=_s(PT()),L0=_s(NT()),U0=_s(IT()),Y0=_s(Up()),j0=_s(WT());function W0(n,t=!1){return n.parsers.unshift(new Y0.default),n.refiners.unshift(new j0.default),n.refiners.unshift(new I0.default),n.refiners.unshift(new F0.default),n.refiners.unshift(new $T.default),n.refiners.push(new $T.default),n.refiners.push(new L0.default),n.refiners.push(new U0.default(t)),n}Sa.includeCommonConfiguration=W0});var li=x(Ge=>{"use strict";var $0=Ge&&Ge.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.noon=Ge.morning=Ge.midnight=Ge.yesterdayEvening=Ge.evening=Ge.lastNight=Ge.tonight=Ge.theDayAfter=Ge.tomorrow=Ge.theDayBefore=Ge.yesterday=Ge.today=Ge.now=void 0;var $r=nt(),Da=$0(Ue()),oi=qn(),Xo=ht();function q0(n){let t=Da.default(n.instant),e=new $r.ParsingComponents(n,{});return oi.assignSimilarDate(e,t),oi.assignSimilarTime(e,t),n.timezoneOffset!==null&&e.assign("timezoneOffset",t.utcOffset()),e}Ge.now=q0;function H0(n){let t=Da.default(n.instant),e=new $r.ParsingComponents(n,{});return oi.assignSimilarDate(e,t),oi.implySimilarTime(e,t),e}Ge.today=H0;function G0(n){return qT(n,1)}Ge.yesterday=G0;function qT(n,t){return Wp(n,-t)}Ge.theDayBefore=qT;function B0(n){return Wp(n,1)}Ge.tomorrow=B0;function Wp(n,t){let e=Da.default(n.instant),r=new $r.ParsingComponents(n,{});return e=e.add(t,"day"),oi.assignSimilarDate(r,e),oi.implySimilarTime(r,e),r}Ge.theDayAfter=Wp;function V0(n,t=22){let e=Da.default(n.instant),r=new $r.ParsingComponents(n,{});return r.imply("hour",t),r.imply("meridiem",Xo.Meridiem.PM),oi.assignSimilarDate(r,e),r}Ge.tonight=V0;function z0(n,t=0){let e=Da.default(n.instant),r=new $r.ParsingComponents(n,{});return e.hour()<6&&(e=e.add(-1,"day")),oi.assignSimilarDate(r,e),r.imply("hour",t),r}Ge.lastNight=z0;function K0(n,t=20){let e=new $r.ParsingComponents(n,{});return e.imply("meridiem",Xo.Meridiem.PM),e.imply("hour",t),e}Ge.evening=K0;function Q0(n,t=20){let e=Da.default(n.instant),r=new $r.ParsingComponents(n,{});return e=e.add(-1,"day"),oi.assignSimilarDate(r,e),r.imply("hour",t),r.imply("meridiem",Xo.Meridiem.PM),r}Ge.yesterdayEvening=Q0;function X0(n){let t=new $r.ParsingComponents(n,{});return t.imply("hour",0),t.imply("minute",0),t.imply("second",0),t}Ge.midnight=X0;function Z0(n,t=6){let e=new $r.ParsingComponents(n,{});return e.imply("meridiem",Xo.Meridiem.AM),e.imply("hour",t),e}Ge.morning=Z0;function J0(n){let t=new $r.ParsingComponents(n,{});return t.imply("meridiem",Xo.Meridiem.AM),t.imply("hour",12),t}Ge.noon=J0});var HT=x(yr=>{"use strict";var e1=yr&&yr.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),t1=yr&&yr.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),n1=yr&&yr.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&e1(t,n,e);return t1(t,n),t},r1=yr&&yr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(yr,"__esModule",{value:!0});var i1=r1(Ue()),s1=re(),a1=qn(),Zo=n1(li()),o1=/(now|today|tonight|tomorrow|tmr|tmrw|yesterday|last\s*night)(?=\W|$)/i,$p=class extends s1.AbstractParserWithWordBoundaryChecking{innerPattern(t){return o1}innerExtract(t,e){let r=i1.default(t.refDate),i=e[0].toLowerCase(),s=t.createParsingComponents();switch(i){case"now":return Zo.now(t.reference);case"today":return Zo.today(t.reference);case"yesterday":return Zo.yesterday(t.reference);case"tomorrow":case"tmr":case"tmrw":return Zo.tomorrow(t.reference);case"tonight":return Zo.tonight(t.reference);default:i.match(/last\s*night/)&&(r.hour()>6&&(r=r.add(-1,"day")),a1.assignSimilarDate(s,r),s.imply("hour",0));break}return s}};yr.default=$p});var GT=x(Jo=>{"use strict";var l1=Jo&&Jo.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Jo,"__esModule",{value:!0});var Xu=ht(),u1=re(),c1=l1(Ue()),d1=qn(),f1=/(?:this)?\s{0,3}(morning|afternoon|evening|night|midnight|noon)(?=\W|$)/i,qp=class extends u1.AbstractParserWithWordBoundaryChecking{innerPattern(){return f1}innerExtract(t,e){let r=c1.default(t.refDate),i=t.createParsingComponents();switch(e[1].toLowerCase()){case"afternoon":i.imply("meridiem",Xu.Meridiem.PM),i.imply("hour",15);break;case"evening":case"night":i.imply("meridiem",Xu.Meridiem.PM),i.imply("hour",20);break;case"midnight":d1.assignTheNextDay(i,r),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"morning":i.imply("meridiem",Xu.Meridiem.AM),i.imply("hour",6);break;case"noon":i.imply("meridiem",Xu.Meridiem.AM),i.imply("hour",12);break}return i}};Jo.default=qp});var vs=x(Fi=>{"use strict";var p1=Fi&&Fi.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Fi,"__esModule",{value:!0});Fi.toDayJSClosestWeekday=Fi.toDayJSWeekday=void 0;var BT=p1(Ue());function m1(n,t,e){if(!e)return VT(n,t);let r=BT.default(n);switch(e){case"this":r=r.day(t);break;case"next":r=r.day(t+7);break;case"last":r=r.day(t-7);break}return r}Fi.toDayJSWeekday=m1;function VT(n,t){let e=BT.default(n),r=e.day();return Math.abs(t-7-r)<Math.abs(t-r)?e=e.day(t-7):Math.abs(t+7-r)<Math.abs(t-r)?e=e.day(t+7):e=e.day(t),e}Fi.toDayJSClosestWeekday=VT});var KT=x(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var zT=Mt(),h1=Ke(),g1=re(),y1=vs(),b1=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:on\\s*?)?(?:(this|last|past|next)\\s*)?(${h1.matchAnyPattern(zT.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(this|last|past|next)\\s*week)?(?=\\W|$)`,"i"),T1=1,_1=2,v1=3,Hp=class extends g1.AbstractParserWithWordBoundaryChecking{innerPattern(){return b1}innerExtract(t,e){let r=e[_1].toLowerCase(),i=zT.WEEKDAY_DICTIONARY[r],s=e[T1],a=e[v1],o=s||a;o=o||"",o=o.toLowerCase();let l=null;o=="last"||o=="past"?l="last":o=="next"?l="next":o=="this"&&(l="this");let u=y1.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};Gp.default=Hp});var ZT=x(el=>{"use strict";var w1=el&&el.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(el,"__esModule",{value:!0});var XT=Mt(),QT=nt(),k1=w1(Ue()),S1=re(),D1=Ke(),E1=new RegExp(`(this|last|past|next|after\\s*this)\\s*(${D1.matchAnyPattern(XT.TIME_UNIT_DICTIONARY)})(?=\\s*)(?=\\W|$)`,"i"),x1=1,O1=2,Bp=class extends S1.AbstractParserWithWordBoundaryChecking{innerPattern(){return E1}innerExtract(t,e){let r=e[x1].toLowerCase(),i=e[O1].toLowerCase(),s=XT.TIME_UNIT_DICTIONARY[i];if(r=="next"||r.startsWith("after")){let l={};return l[s]=1,QT.ParsingComponents.createRelativeFromReference(t.reference,l)}if(r=="last"||r=="past"){let l={};return l[s]=-1,QT.ParsingComponents.createRelativeFromReference(t.reference,l)}let a=t.createParsingComponents(),o=k1.default(t.reference.instant);return i.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):i.match(/month/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):i.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};el.default=Bp});var br=x(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.ParsingContext=Oa.Chrono=void 0;var Ea=nt(),C1=Vp(),xa=class{constructor(t){t=t||C1.createCasualConfiguration(),this.parsers=[...t.parsers],this.refiners=[...t.refiners]}clone(){return new xa({parsers:[...this.parsers],refiners:[...this.refiners]})}parseDate(t,e,r){let i=this.parse(t,e,r);return i.length>0?i[0].start.date():null}parse(t,e,r){let i=new Zu(t,e,r),s=[];return this.parsers.forEach(a=>{let o=xa.executeParser(i,a);s=s.concat(o)}),s.sort((a,o)=>a.index-o.index),this.refiners.forEach(function(a){s=a.refine(i,s)}),s}static executeParser(t,e){let r=[],i=e.pattern(t),s=t.text,a=t.text,o=i.exec(a);for(;o;){let l=o.index+s.length-a.length;o.index=l;let u=e.extract(t,o);if(!u){a=s.substring(o.index+1),o=i.exec(a);continue}let c=null;u instanceof Ea.ParsingResult?c=u:u instanceof Ea.ParsingComponents?(c=t.createParsingResult(o.index,o[0]),c.start=u):c=t.createParsingResult(o.index,o[0],u),t.debug(()=>console.log(`${e.constructor.name} extracted result ${c}`)),r.push(c),a=s.substring(l+c.text.length),o=i.exec(a)}return r}};Oa.Chrono=xa;var Zu=class{constructor(t,e,r){this.text=t,this.reference=new Ea.ReferenceWithTimezone(e),this.option=r!=null?r:{},this.refDate=this.reference.instant}createParsingComponents(t){return t instanceof Ea.ParsingComponents?t:new Ea.ParsingComponents(this.reference,t)}createParsingResult(t,e,r,i){let s=typeof e=="string"?e:this.text.substring(t,e),a=r?this.createParsingComponents(r):null,o=i?this.createParsingComponents(i):null;return new Ea.ParsingResult(this.reference,t,s,a,o)}debug(t){this.option.debug&&(this.option.debug instanceof Function?this.option.debug(t):this.option.debug.debug(t))}};Oa.ParsingContext=Zu});var ws=x(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var JT=Ct(),M1=new RegExp("([^\\d]|^)([0-3]{0,1}[0-9]{1})[\\/\\.\\-]([0-3]{0,1}[0-9]{1})(?:[\\/\\.\\-]([0-9]{4}|[0-9]{2}))?(\\W|$)","i"),Ju=1,e_=5,t_=2,n_=3,zp=4,Kp=class{constructor(t){this.groupNumberMonth=t?n_:t_,this.groupNumberDay=t?t_:n_}pattern(){return M1}extract(t,e){if(e[Ju]=="/"||e[e_]=="/"){e.index+=e[0].length;return}let r=e.index+e[Ju].length,i=e[0].substr(e[Ju].length,e[0].length-e[Ju].length-e[e_].length);if(i.match(/^\d\.\d$/)||i.match(/^\d\.\d{1,2}\.\d{1,2}\s*$/)||!e[zp]&&e[0].indexOf("/")<0)return;let s=t.createParsingResult(r,i),a=parseInt(e[this.groupNumberMonth]),o=parseInt(e[this.groupNumberDay]);if((a<1||a>12)&&a>12)if(o>=1&&o<=12&&a<=31)[o,a]=[a,o];else return null;if(o<1||o>31)return null;if(s.start.assign("day",o),s.start.assign("month",a),e[zp]){let l=parseInt(e[zp]),u=JT.findMostLikelyADYear(l);s.start.assign("year",u)}else{let l=JT.findYearClosestToRef(t.refDate,o,a);s.start.imply("year",l)}return s}};Qp.default=Kp});var i_=x(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var r_=Mt(),R1=nt(),A1=re(),P1=Hn(),N1=new RegExp(`(this|last|past|next|after|\\+|-)\\s*(${r_.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),Xp=class extends A1.AbstractParserWithWordBoundaryChecking{innerPattern(){return N1}innerExtract(t,e){let r=e[1].toLowerCase(),i=r_.parseTimeUnits(e[2]);switch(r){case"last":case"past":case"-":i=P1.reverseTimeUnits(i);break}return R1.ParsingComponents.createRelativeFromReference(t.reference,i)}};Zp.default=Xp});var a_=x(tm=>{"use strict";Object.defineProperty(tm,"__esModule",{value:!0});var I1=wa(),Jp=nt(),F1=Mt(),L1=Hn();function s_(n){return n.text.match(/\s+(before|from)$/i)!=null}function U1(n){return n.text.match(/\s+(after|since)$/i)!=null}var em=class extends I1.MergingRefiner{patternBetween(){return/^\s*$/i}shouldMergeResults(t,e,r){return!t.match(this.patternBetween())||!s_(e)&&!U1(e)?!1:!!r.start.get("day")&&!!r.start.get("month")&&!!r.start.get("year")}mergeResults(t,e,r){let i=F1.parseTimeUnits(e.text);s_(e)&&(i=L1.reverseTimeUnits(i));let s=Jp.ParsingComponents.createRelativeFromReference(new Jp.ReferenceWithTimezone(r.start.date()),i);return new Jp.ParsingResult(r.reference,e.index,`${e.text}${t}${r.text}`,s)}};tm.default=em});var Vp=x(ut=>{"use strict";var bt=ut&&ut.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ut,"__esModule",{value:!0});ut.createConfiguration=ut.createCasualConfiguration=ut.parseDate=ut.parse=ut.GB=ut.strict=ut.casual=void 0;var Y1=bt(sT()),j1=bt(dT()),W1=bt(gT()),$1=bt(TT()),q1=bt(wT()),H1=bt(kT()),G1=bt(DT()),B1=bt(ET()),V1=bt(xT()),z1=bt(OT()),K1=bt(RT()),Q1=ai(),X1=bt(HT()),Z1=bt(GT()),J1=bt(KT()),eC=bt(ZT()),nm=br(),tC=bt(ws()),nC=bt(i_()),rC=bt(a_());ut.casual=new nm.Chrono(o_(!1));ut.strict=new nm.Chrono(ec(!0,!1));ut.GB=new nm.Chrono(ec(!1,!0));function iC(n,t,e){return ut.casual.parse(n,t,e)}ut.parse=iC;function sC(n,t,e){return ut.casual.parseDate(n,t,e)}ut.parseDate=sC;function o_(n=!1){let t=ec(!1,n);return t.parsers.unshift(new X1.default),t.parsers.unshift(new Z1.default),t.parsers.unshift(new $1.default),t.parsers.unshift(new eC.default),t.parsers.unshift(new nC.default),t}ut.createCasualConfiguration=o_;function ec(n=!0,t=!1){return Q1.includeCommonConfiguration({parsers:[new tC.default(t),new Y1.default,new j1.default,new W1.default,new J1.default,new q1.default,new H1.default,new G1.default(n),new B1.default(n),new V1.default(n)],refiners:[new rC.default,new K1.default,new z1.default]},n)}ut.createConfiguration=ec});var l_=x(im=>{"use strict";Object.defineProperty(im,"__esModule",{value:!0});var aC=Ts(),rm=class extends aC.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:um|von)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|bis)\\s*"}extractPrimaryTimeComponents(t,e){return e[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(t,e)}};im.default=rm});var tl=x(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.parseTimeUnits=Qe.TIME_UNITS_PATTERN=Qe.parseYear=Qe.YEAR_PATTERN=Qe.parseNumberPattern=Qe.NUMBER_PATTERN=Qe.TIME_UNIT_DICTIONARY=Qe.INTEGER_WORD_DICTIONARY=Qe.MONTH_DICTIONARY=Qe.WEEKDAY_DICTIONARY=void 0;var sm=Ke(),oC=Ct();Qe.WEEKDAY_DICTIONARY={sonntag:0,so:0,montag:1,mo:1,dienstag:2,di:2,mittwoch:3,mi:3,donnerstag:4,do:4,freitag:5,fr:5,samstag:6,sa:6};Qe.MONTH_DICTIONARY={januar:1,j\u00E4nner:1,janner:1,jan:1,"jan.":1,februar:2,feber:2,feb:2,"feb.":2,m\u00E4rz:3,maerz:3,m\u00E4r:3,"m\xE4r.":3,mrz:3,"mrz.":3,april:4,apr:4,"apr.":4,mai:5,juni:6,jun:6,"jun.":6,juli:7,jul:7,"jul.":7,august:8,aug:8,"aug.":8,september:9,sep:9,"sep.":9,sept:9,"sept.":9,oktober:10,okt:10,"okt.":10,november:11,nov:11,"nov.":11,dezember:12,dez:12,"dez.":12};Qe.INTEGER_WORD_DICTIONARY={eins:1,eine:1,einem:1,einen:1,einer:1,zwei:2,drei:3,vier:4,f\u00FCnf:5,fuenf:5,sechs:6,sieben:7,acht:8,neun:9,zehn:10,elf:11,zw\u00F6lf:12,zwoelf:12};Qe.TIME_UNIT_DICTIONARY={sek:"second",sekunde:"second",sekunden:"second",min:"minute",minute:"minute",minuten:"minute",h:"hour",std:"hour",stunde:"hour",stunden:"hour",tag:"d",tage:"d",tagen:"d",woche:"week",wochen:"week",monat:"month",monate:"month",monaten:"month",monats:"month",quartal:"quarter",quartals:"quarter",quartale:"quarter",quartalen:"quarter",a:"year",j:"year",jr:"year",jahr:"year",jahre:"year",jahren:"year",jahres:"year"};Qe.NUMBER_PATTERN=`(?:${sm.matchAnyPattern(Qe.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s*an?)?|an?\\b(?:\\s*few)?|few|several|a?\\s*couple\\s*(?:of)?)`;function c_(n){let t=n.toLowerCase();return Qe.INTEGER_WORD_DICTIONARY[t]!==void 0?Qe.INTEGER_WORD_DICTIONARY[t]:t==="a"||t==="an"?1:t.match(/few/)?3:t.match(/half/)?.5:t.match(/couple/)?2:t.match(/several/)?7:parseFloat(t)}Qe.parseNumberPattern=c_;Qe.YEAR_PATTERN="(?:[0-9]{1,4}(?:\\s*[vn]\\.?\\s*(?:C(?:hr)?|(?:u\\.?|d\\.?(?:\\s*g\\.?)?)?\\s*Z)\\.?|\\s*(?:u\\.?|d\\.?(?:\\s*g\\.)?)\\s*Z\\.?)?)";function lC(n){if(/v/i.test(n))return-parseInt(n.replace(/[^0-9]+/gi,""));if(/n/i.test(n))return parseInt(n.replace(/[^0-9]+/gi,""));if(/z/i.test(n))return parseInt(n.replace(/[^0-9]+/gi,""));let t=parseInt(n);return oC.findMostLikelyADYear(t)}Qe.parseYear=lC;var d_=`(${Qe.NUMBER_PATTERN})\\s{0,5}(${sm.matchAnyPattern(Qe.TIME_UNIT_DICTIONARY)})\\s{0,5}`,u_=new RegExp(d_,"i");Qe.TIME_UNITS_PATTERN=sm.repeatedTimeunitPattern("",d_);function uC(n){let t={},e=n,r=u_.exec(e);for(;r;)cC(t,r),e=e.substring(r[0].length),r=u_.exec(e);return t}Qe.parseTimeUnits=uC;function cC(n,t){let e=c_(t[1]),r=Qe.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var p_=x(om=>{"use strict";Object.defineProperty(om,"__esModule",{value:!0});var f_=tl(),dC=Ke(),fC=re(),pC=vs(),mC=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:a[mn]\\s*?)?(?:(diese[mn]|letzte[mn]|n(?:\xE4|ae)chste[mn])\\s*)?(${dC.matchAnyPattern(f_.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(diese|letzte|n(?:\xE4|ae)chste)\\s*woche)?(?=\\W|$)`,"i"),hC=1,gC=3,yC=2,am=class extends fC.AbstractParserWithWordBoundaryChecking{innerPattern(){return mC}innerExtract(t,e){let r=e[yC].toLowerCase(),i=f_.WEEKDAY_DICTIONARY[r],s=e[hC],a=e[gC],o=s||a;o=o||"",o=o.toLowerCase();let l=null;o.match(/letzte/)?l="last":o.match(/chste/)?l="next":o.match(/diese/)&&(l="this");let u=pC.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};om.default=am});var y_=x(lm=>{"use strict";Object.defineProperty(lm,"__esModule",{value:!0});var Li=ht(),bC=new RegExp("(^|\\s|T)(?:(?:um|von)\\s*)?(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s)?)?(?:\\s*Uhr)?(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?(?=\\W|$)","i"),TC=new RegExp("^\\s*(\\-|\\\u2013|\\~|\\\u301C|bis(?:\\s+um)?|\\?)\\s*(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s)?)?(?:\\s*Uhr)?(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?(?=\\W|$)","i"),_C=2,m_=3,h_=4,g_=5,Ca=class{pattern(t){return bC}extract(t,e){let r=t.createParsingResult(e.index+e[1].length,e[0].substring(e[1].length));if(r.text.match(/^\d{4}$/)||(r.start=Ca.extractTimeComponent(r.start.clone(),e),!r.start))return e.index+=e[0].length,null;let i=t.text.substring(e.index+e[0].length),s=TC.exec(i);return s&&(r.end=Ca.extractTimeComponent(r.start.clone(),s),r.end&&(r.text+=s[0])),r}static extractTimeComponent(t,e){let r=0,i=0,s=null;if(r=parseInt(e[_C]),e[m_]!=null&&(i=parseInt(e[m_])),i>=60||r>24)return null;if(r>=12&&(s=Li.Meridiem.PM),e[g_]!=null){if(r>12)return null;let a=e[g_].toLowerCase();a.match(/morgen|vormittag/)&&(s=Li.Meridiem.AM,r==12&&(r=0)),a.match(/nachmittag|abend/)&&(s=Li.Meridiem.PM,r!=12&&(r+=12)),a.match(/nacht/)&&(r==12?(s=Li.Meridiem.AM,r=0):r<6?s=Li.Meridiem.AM:(s=Li.Meridiem.PM,r+=12))}if(t.assign("hour",r),t.assign("minute",i),s!==null?t.assign("meridiem",s):r<12?t.imply("meridiem",Li.Meridiem.AM):t.imply("meridiem",Li.Meridiem.PM),e[h_]!=null){let a=parseInt(e[h_]);if(a>=60)return null;t.assign("second",a)}return t}};lm.default=Ca});var b_=x(nl=>{"use strict";var vC=nl&&nl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(nl,"__esModule",{value:!0});var wC=vC(Wr()),um=class extends wC.default{patternBetween(){return/^\s*(bis(?:\s*(?:am|zum))?|-)\s*$/i}};nl.default=um});var T_=x(rl=>{"use strict";var kC=rl&&rl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(rl,"__esModule",{value:!0});var SC=kC(si()),cm=class extends SC.default{patternBetween(){return new RegExp("^\\s*(T|um|am|,|-)?\\s*$")}};rl.default=cm});var dm=x(sl=>{"use strict";var DC=sl&&sl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(sl,"__esModule",{value:!0});var EC=DC(Ue()),ks=ht(),xC=re(),OC=qn(),CC=Hn(),il=class extends xC.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(diesen)?\s*(morgen|vormittag|mittags?|nachmittag|abend|nacht|mitternacht)(?=\W|$)/i}innerExtract(t,e){let r=EC.default(t.refDate),i=e[2].toLowerCase(),s=t.createParsingComponents();return OC.implySimilarTime(s,r),il.extractTimeComponents(s,i)}static extractTimeComponents(t,e){switch(e){case"morgen":t.imply("hour",6),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.AM);break;case"vormittag":t.imply("hour",9),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.AM);break;case"mittag":case"mittags":t.imply("hour",12),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.AM);break;case"nachmittag":t.imply("hour",15),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.PM);break;case"abend":t.imply("hour",18),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.PM);break;case"nacht":t.imply("hour",22),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.PM);break;case"mitternacht":t.get("hour")>1&&(t=CC.addImpliedTimeUnits(t,{day:1})),t.imply("hour",0),t.imply("minute",0),t.imply("second",0),t.imply("meridiem",ks.Meridiem.AM);break}return t}};sl.default=il});var w_=x(Tr=>{"use strict";var MC=Tr&&Tr.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),RC=Tr&&Tr.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),AC=Tr&&Tr.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&MC(t,n,e);return RC(t,n),t},v_=Tr&&Tr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Tr,"__esModule",{value:!0});var PC=v_(Ue()),NC=re(),Ss=qn(),IC=v_(dm()),__=AC(li()),FC=new RegExp("(jetzt|heute|morgen|\xFCbermorgen|uebermorgen|gestern|vorgestern|letzte\\s*nacht)(?:\\s*(morgen|vormittag|mittags?|nachmittag|abend|nacht|mitternacht))?(?=\\W|$)","i"),LC=1,UC=2,fm=class extends NC.AbstractParserWithWordBoundaryChecking{innerPattern(t){return FC}innerExtract(t,e){let r=PC.default(t.refDate),i=(e[LC]||"").toLowerCase(),s=(e[UC]||"").toLowerCase(),a=t.createParsingComponents();switch(i){case"jetzt":a=__.now(t.reference);break;case"heute":a=__.today(t.reference);break;case"morgen":Ss.assignTheNextDay(a,r);break;case"\xFCbermorgen":case"uebermorgen":r=r.add(1,"day"),Ss.assignTheNextDay(a,r);break;case"gestern":r=r.add(-1,"day"),Ss.assignSimilarDate(a,r),Ss.implySimilarTime(a,r);break;case"vorgestern":r=r.add(-2,"day"),Ss.assignSimilarDate(a,r),Ss.implySimilarTime(a,r);break;default:i.match(/letzte\s*nacht/)&&(r.hour()>6&&(r=r.add(-1,"day")),Ss.assignSimilarDate(a,r),a.imply("hour",0));break}return s&&(a=IC.default.extractTimeComponents(a,s)),a}};Tr.default=fm});var O_=x(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});var YC=Ct(),E_=tl(),x_=tl(),jC=Ke(),WC=re(),$C=new RegExp(`(?:am\\s*?)?(?:den\\s*?)?([0-9]{1,2})\\.(?:\\s*(?:bis(?:\\s*(?:am|zum))?|\\-|\\\u2013|\\s)\\s*([0-9]{1,2})\\.?)?\\s*(${jC.matchAnyPattern(E_.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s*)(${x_.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),k_=1,S_=2,qC=3,D_=4,pm=class extends WC.AbstractParserWithWordBoundaryChecking{innerPattern(){return $C}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=E_.MONTH_DICTIONARY[e[qC].toLowerCase()],s=parseInt(e[k_]);if(s>31)return e.index=e.index+e[k_].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[D_]){let a=x_.parseYear(e[D_]);r.start.assign("year",a)}else{let a=YC.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[S_]){let a=parseInt(e[S_]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};mm.default=pm});var C_=x(gm=>{"use strict";Object.defineProperty(gm,"__esModule",{value:!0});var tc=tl(),HC=nt(),GC=re(),BC=Hn(),VC=Ke(),hm=class extends GC.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`(?:\\s*((?:n\xE4chste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?|vor|in)\\s*)?(${tc.NUMBER_PATTERN})?(?:\\s*(n\xE4chste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?)?\\s*(${VC.matchAnyPattern(tc.TIME_UNIT_DICTIONARY)})`,"i")}innerExtract(t,e){let r=e[2]?tc.parseNumberPattern(e[2]):1,i=tc.TIME_UNIT_DICTIONARY[e[4].toLowerCase()],s={};s[i]=r;let a=e[1]||e[3]||"";if(a=a.toLowerCase(),!!a)return(/vor/.test(a)||/letzte/.test(a)||/vergangen/.test(a))&&(s=BC.reverseTimeUnits(s)),HC.ParsingComponents.createRelativeFromReference(t.reference,s)}};gm.default=hm});var A_=x(Tt=>{"use strict";var _r=Tt&&Tt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Tt,"__esModule",{value:!0});Tt.createConfiguration=Tt.createCasualConfiguration=Tt.parseDate=Tt.parse=Tt.strict=Tt.casual=void 0;var zC=ai(),M_=br(),KC=_r(ws()),QC=_r(Up()),XC=_r(l_()),ZC=_r(p_()),JC=_r(y_()),eM=_r(b_()),tM=_r(T_()),nM=_r(w_()),rM=_r(dm()),iM=_r(O_()),sM=_r(C_());Tt.casual=new M_.Chrono(R_());Tt.strict=new M_.Chrono(ym(!0));function aM(n,t,e){return Tt.casual.parse(n,t,e)}Tt.parse=aM;function oM(n,t,e){return Tt.casual.parseDate(n,t,e)}Tt.parseDate=oM;function R_(n=!0){let t=ym(!1,n);return t.parsers.unshift(new rM.default),t.parsers.unshift(new nM.default),t.parsers.unshift(new sM.default),t}Tt.createCasualConfiguration=R_;function ym(n=!0,t=!0){return zC.includeCommonConfiguration({parsers:[new QC.default,new KC.default(t),new XC.default,new JC.default,new iM.default,new ZC.default],refiners:[new eM.default,new tM.default]},n)}Tt.createConfiguration=ym});var N_=x(vr=>{"use strict";var lM=vr&&vr.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),uM=vr&&vr.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),cM=vr&&vr.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&lM(t,n,e);return uM(t,n),t},dM=vr&&vr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(vr,"__esModule",{value:!0});var fM=dM(Ue()),pM=ht(),mM=re(),P_=qn(),nc=cM(li()),bm=class extends mM.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(maintenant|aujourd'hui|demain|hier|cette\s*nuit|la\s*veille)(?=\W|$)/i}innerExtract(t,e){let r=fM.default(t.refDate),i=e[0].toLowerCase(),s=t.createParsingComponents();switch(i){case"maintenant":return nc.now(t.reference);case"aujourd'hui":return nc.today(t.reference);case"hier":return nc.yesterday(t.reference);case"demain":return nc.tomorrow(t.reference);default:i.match(/cette\s*nuit/)?(P_.assignSimilarDate(s,r),s.imply("hour",22),s.imply("meridiem",pM.Meridiem.PM)):i.match(/la\s*veille/)&&(r=r.add(-1,"day"),P_.assignSimilarDate(s,r),s.imply("hour",0))}return s}};vr.default=bm});var I_=x(_m=>{"use strict";Object.defineProperty(_m,"__esModule",{value:!0});var al=ht(),hM=re(),Tm=class extends hM.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(cet?)?\s*(matin|soir|après-midi|aprem|a midi|à minuit)(?=\W|$)/i}innerExtract(t,e){let r=e[2].toLowerCase(),i=t.createParsingComponents();switch(r){case"apr\xE8s-midi":case"aprem":i.imply("hour",14),i.imply("minute",0),i.imply("meridiem",al.Meridiem.PM);break;case"soir":i.imply("hour",18),i.imply("minute",0),i.imply("meridiem",al.Meridiem.PM);break;case"matin":i.imply("hour",8),i.imply("minute",0),i.imply("meridiem",al.Meridiem.AM);break;case"a midi":i.imply("hour",12),i.imply("minute",0),i.imply("meridiem",al.Meridiem.AM);break;case"\xE0 minuit":i.imply("hour",0),i.imply("meridiem",al.Meridiem.AM);break}return i}};_m.default=Tm});var F_=x(wm=>{"use strict";Object.defineProperty(wm,"__esModule",{value:!0});var gM=Ts(),vm=class extends gM.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:[\xE0a])\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|[\xE0a]|\\?)\\s*"}extractPrimaryTimeComponents(t,e){return e[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(t,e)}};wm.default=vm});var L_=x(ol=>{"use strict";var yM=ol&&ol.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ol,"__esModule",{value:!0});var bM=yM(si()),km=class extends bM.default{patternBetween(){return new RegExp("^\\s*(T|\xE0|a|vers|de|,|-)?\\s*$")}};ol.default=km});var U_=x(ll=>{"use strict";var TM=ll&&ll.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ll,"__esModule",{value:!0});var _M=TM(Wr()),Sm=class extends _M.default{patternBetween(){return/^\s*(à|a|-)\s*$/i}};ll.default=Sm});var Ui=x(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.parseTimeUnits=Ye.TIME_UNITS_PATTERN=Ye.parseYear=Ye.YEAR_PATTERN=Ye.parseOrdinalNumberPattern=Ye.ORDINAL_NUMBER_PATTERN=Ye.parseNumberPattern=Ye.NUMBER_PATTERN=Ye.TIME_UNIT_DICTIONARY=Ye.INTEGER_WORD_DICTIONARY=Ye.MONTH_DICTIONARY=Ye.WEEKDAY_DICTIONARY=void 0;var Dm=Ke();Ye.WEEKDAY_DICTIONARY={dimanche:0,dim:0,lundi:1,lun:1,mardi:2,mar:2,mercredi:3,mer:3,jeudi:4,jeu:4,vendredi:5,ven:5,samedi:6,sam:6};Ye.MONTH_DICTIONARY={janvier:1,jan:1,"jan.":1,f\u00E9vrier:2,f\u00E9v:2,"f\xE9v.":2,fevrier:2,fev:2,"fev.":2,mars:3,mar:3,"mar.":3,avril:4,avr:4,"avr.":4,mai:5,juin:6,jun:6,juillet:7,juil:7,jul:7,"jul.":7,ao\u00FBt:8,aout:8,septembre:9,sep:9,"sep.":9,sept:9,"sept.":9,octobre:10,oct:10,"oct.":10,novembre:11,nov:11,"nov.":11,d\u00E9cembre:12,decembre:12,dec:12,"dec.":12};Ye.INTEGER_WORD_DICTIONARY={un:1,deux:2,trois:3,quatre:4,cinq:5,six:6,sept:7,huit:8,neuf:9,dix:10,onze:11,douze:12,treize:13};Ye.TIME_UNIT_DICTIONARY={sec:"second",seconde:"second",secondes:"second",min:"minute",mins:"minute",minute:"minute",minutes:"minute",h:"hour",hr:"hour",hrs:"hour",heure:"hour",heures:"hour",jour:"d",jours:"d",semaine:"week",semaines:"week",mois:"month",trimestre:"quarter",trimestres:"quarter",ans:"year",ann\u00E9e:"year",ann\u00E9es:"year"};Ye.NUMBER_PATTERN=`(?:${Dm.matchAnyPattern(Ye.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|une?\\b|quelques?|demi-?)`;function j_(n){let t=n.toLowerCase();return Ye.INTEGER_WORD_DICTIONARY[t]!==void 0?Ye.INTEGER_WORD_DICTIONARY[t]:t==="une"||t==="un"?1:t.match(/quelques?/)?3:t.match(/demi-?/)?.5:parseFloat(t)}Ye.parseNumberPattern=j_;Ye.ORDINAL_NUMBER_PATTERN="(?:[0-9]{1,2}(?:er)?)";function vM(n){let t=n.toLowerCase();return t=t.replace(/(?:er)$/i,""),parseInt(t)}Ye.parseOrdinalNumberPattern=vM;Ye.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s*(?:AC|AD|p\\.\\s*C(?:hr?)?\\.\\s*n\\.)|[1-2][0-9]{3}|[5-9][0-9])";function wM(n){if(/AC/i.test(n))return n=n.replace(/BC/i,""),-parseInt(n);if(/AD/i.test(n)||/C/i.test(n))return n=n.replace(/[^\d]+/i,""),parseInt(n);let t=parseInt(n);return t<100&&(t>50?t=t+1900:t=t+2e3),t}Ye.parseYear=wM;var W_=`(${Ye.NUMBER_PATTERN})\\s{0,5}(${Dm.matchAnyPattern(Ye.TIME_UNIT_DICTIONARY)})\\s{0,5}`,Y_=new RegExp(W_,"i");Ye.TIME_UNITS_PATTERN=Dm.repeatedTimeunitPattern("",W_);function kM(n){let t={},e=n,r=Y_.exec(e);for(;r;)SM(t,r),e=e.substring(r[0].length),r=Y_.exec(e);return t}Ye.parseTimeUnits=kM;function SM(n,t){let e=j_(t[1]),r=Ye.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var q_=x(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});var $_=Ui(),DM=Ke(),EM=re(),xM=vs(),OM=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(?:ce)\\s*)?(${DM.matchAnyPattern($_.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(dernier|prochain)\\s*)?(?=\\W|\\d|$)`,"i"),CM=1,MM=2,Em=class extends EM.AbstractParserWithWordBoundaryChecking{innerPattern(){return OM}innerExtract(t,e){let r=e[CM].toLowerCase(),i=$_.WEEKDAY_DICTIONARY[r];if(i===void 0)return null;let s=e[MM];s=s||"",s=s.toLowerCase();let a=null;s=="dernier"?a="last":s=="prochain"&&(a="next");let o=xM.toDayJSWeekday(t.refDate,i,a);return t.createParsingComponents().assign("weekday",i).imply("day",o.date()).imply("month",o.month()+1).imply("year",o.year())}};xm.default=Em});var V_=x(Om=>{"use strict";Object.defineProperty(Om,"__esModule",{value:!0});var ul=ht(),RM=new RegExp("(^|\\s|T)(?:(?:[\xE0a])\\s*)?(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s|:)?)?(?:\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?(?=\\W|$)","i"),AM=new RegExp("^\\s*(\\-|\\\u2013|\\~|\\\u301C|[\xE0a]|\\?)\\s*(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s|:)?)?(?:\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?(?=\\W|$)","i"),PM=2,H_=3,G_=4,B_=5,Ma=class{pattern(t){return RM}extract(t,e){let r=t.createParsingResult(e.index+e[1].length,e[0].substring(e[1].length));if(r.text.match(/^\d{4}$/)||(r.start=Ma.extractTimeComponent(r.start.clone(),e),!r.start))return e.index+=e[0].length,null;let i=t.text.substring(e.index+e[0].length),s=AM.exec(i);return s&&(r.end=Ma.extractTimeComponent(r.start.clone(),s),r.end&&(r.text+=s[0])),r}static extractTimeComponent(t,e){let r=0,i=0,s=null;if(r=parseInt(e[PM]),e[H_]!=null&&(i=parseInt(e[H_])),i>=60||r>24)return null;if(r>=12&&(s=ul.Meridiem.PM),e[B_]!=null){if(r>12)return null;let a=e[B_][0].toLowerCase();a=="a"&&(s=ul.Meridiem.AM,r==12&&(r=0)),a=="p"&&(s=ul.Meridiem.PM,r!=12&&(r+=12))}if(t.assign("hour",r),t.assign("minute",i),s!==null?t.assign("meridiem",s):r<12?t.imply("meridiem",ul.Meridiem.AM):t.imply("meridiem",ul.Meridiem.PM),e[G_]!=null){let a=parseInt(e[G_]);if(a>=60)return null;t.assign("second",a)}return t}};Om.default=Ma});var J_=x(Mm=>{"use strict";Object.defineProperty(Mm,"__esModule",{value:!0});var NM=Ct(),X_=Ui(),Z_=Ui(),rc=Ui(),IM=Ke(),FM=re(),LM=new RegExp(`(?:on\\s*?)?(${rc.ORDINAL_NUMBER_PATTERN})(?:\\s*(?:au|\\-|\\\u2013|jusqu'au?|\\s)\\s*(${rc.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s*(?:de)?\\s*)(${IM.matchAnyPattern(X_.MONTH_DICTIONARY)})(?:(?:-|/|,?\\s*)(${Z_.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),z_=1,K_=2,UM=3,Q_=4,Cm=class extends FM.AbstractParserWithWordBoundaryChecking{innerPattern(){return LM}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=X_.MONTH_DICTIONARY[e[UM].toLowerCase()],s=rc.parseOrdinalNumberPattern(e[z_]);if(s>31)return e.index=e.index+e[z_].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[Q_]){let a=Z_.parseYear(e[Q_]);r.start.assign("year",a)}else{let a=NM.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[K_]){let a=rc.parseOrdinalNumberPattern(e[K_]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};Mm.default=Cm});var tv=x(Am=>{"use strict";Object.defineProperty(Am,"__esModule",{value:!0});var ev=Ui(),YM=nt(),jM=re(),WM=Hn(),Rm=class extends jM.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`il y a\\s*(${ev.TIME_UNITS_PATTERN})(?=(?:\\W|$))`,"i")}innerExtract(t,e){let r=ev.parseTimeUnits(e[1]),i=WM.reverseTimeUnits(r);return YM.ParsingComponents.createRelativeFromReference(t.reference,i)}};Am.default=Rm});var rv=x(Nm=>{"use strict";Object.defineProperty(Nm,"__esModule",{value:!0});var nv=Ui(),$M=nt(),qM=re(),Pm=class extends qM.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp(`(?:dans|en|pour|pendant|de)\\s*(${nv.TIME_UNITS_PATTERN})(?=\\W|$)`,"i")}innerExtract(t,e){let r=nv.parseTimeUnits(e[1]);return $M.ParsingComponents.createRelativeFromReference(t.reference,r)}};Nm.default=Pm});var iv=x(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});var ic=Ui(),HM=nt(),GM=re(),BM=Hn(),VM=Ke(),Im=class extends GM.AbstractParserWithWordBoundaryChecking{constructor(){super()}innerPattern(){return new RegExp(`(?:les?|la|l'|du|des?)\\s*(${ic.NUMBER_PATTERN})?(?:\\s*(prochaine?s?|derni[e\xE8]re?s?|pass[\xE9e]e?s?|pr[\xE9e]c[\xE9e]dents?|suivante?s?))?\\s*(${VM.matchAnyPattern(ic.TIME_UNIT_DICTIONARY)})(?:\\s*(prochaine?s?|derni[e\xE8]re?s?|pass[\xE9e]e?s?|pr[\xE9e]c[\xE9e]dents?|suivante?s?))?`,"i")}innerExtract(t,e){let r=e[1]?ic.parseNumberPattern(e[1]):1,i=ic.TIME_UNIT_DICTIONARY[e[3].toLowerCase()],s={};s[i]=r;let a=e[2]||e[4]||"";if(a=a.toLowerCase(),!!a)return(/derni[eè]re?s?/.test(a)||/pass[ée]e?s?/.test(a)||/pr[ée]c[ée]dents?/.test(a))&&(s=BM.reverseTimeUnits(s)),HM.ParsingComponents.createRelativeFromReference(t.reference,s)}};Fm.default=Im});var ov=x(_t=>{"use strict";var Gn=_t&&_t.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(_t,"__esModule",{value:!0});_t.createConfiguration=_t.createCasualConfiguration=_t.parseDate=_t.parse=_t.strict=_t.casual=void 0;var zM=ai(),sv=br(),KM=Gn(N_()),QM=Gn(I_()),XM=Gn(ws()),ZM=Gn(F_()),JM=Gn(L_()),eR=Gn(U_()),tR=Gn(q_()),nR=Gn(V_()),rR=Gn(J_()),iR=Gn(tv()),sR=Gn(rv()),aR=Gn(iv());_t.casual=new sv.Chrono(av());_t.strict=new sv.Chrono(Lm(!0));function oR(n,t,e){return _t.casual.parse(n,t,e)}_t.parse=oR;function lR(n,t,e){return _t.casual.parseDate(n,t,e)}_t.parseDate=lR;function av(n=!0){let t=Lm(!1,n);return t.parsers.unshift(new KM.default),t.parsers.unshift(new QM.default),t.parsers.unshift(new aR.default),t}_t.createCasualConfiguration=av;function Lm(n=!0,t=!0){return zM.includeCommonConfiguration({parsers:[new XM.default(t),new rR.default,new ZM.default,new nR.default,new iR.default,new sR.default,new tR.default],refiners:[new JM.default,new eR.default]},n)}_t.createConfiguration=Lm});var lv=x(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.toHankaku=void 0;function uR(n){return String(n).replace(/\u2019/g,"'").replace(/\u201D/g,'"').replace(/\u3000/g," ").replace(/\uFFE5/g,"\xA5").replace(/[\uFF01\uFF03-\uFF06\uFF08\uFF09\uFF0C-\uFF19\uFF1C-\uFF1F\uFF21-\uFF3B\uFF3D\uFF3F\uFF41-\uFF5B\uFF5D\uFF5E]/g,cR)}sc.toHankaku=uR;function cR(n){return String.fromCharCode(n.charCodeAt(0)-65248)}});var cv=x(cl=>{"use strict";var dR=cl&&cl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(cl,"__esModule",{value:!0});var Um=lv(),fR=Ct(),pR=dR(Ue()),mR=/(?:(?:([同今本])|((昭和|平成|令和)?([0-90-9]{1,4}|元)))年\s*)?([0-90-9]{1,2})月\s*([0-90-9]{1,2})日/i,uv=1,hR=2,Ym=3,gR=4,yR=5,bR=6,jm=class{pattern(){return mR}extract(t,e){let r=parseInt(Um.toHankaku(e[yR])),i=parseInt(Um.toHankaku(e[bR])),s=t.createParsingComponents({day:i,month:r});if(e[uv]&&e[uv].match("\u540C|\u4ECA|\u672C")){let a=pR.default(t.refDate);s.assign("year",a.year())}if(e[hR]){let a=e[gR],o=a=="\u5143"?1:parseInt(Um.toHankaku(a));e[Ym]=="\u4EE4\u548C"?o+=2018:e[Ym]=="\u5E73\u6210"?o+=1988:e[Ym]=="\u662D\u548C"&&(o+=1925),s.assign("year",o)}else{let a=fR.findYearClosestToRef(t.refDate,i,r);s.imply("year",a)}return s}};cl.default=jm});var dv=x(dl=>{"use strict";var TR=dl&&dl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(dl,"__esModule",{value:!0});var _R=TR(Wr()),Wm=class extends _R.default{patternBetween(){return/^\s*(から|ー|-)\s*$/i}};dl.default=Wm});var pv=x(wr=>{"use strict";var vR=wr&&wr.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),wR=wr&&wr.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),kR=wr&&wr.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&vR(t,n,e);return wR(t,n),t},SR=wr&&wr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(wr,"__esModule",{value:!0});var DR=SR(Ue()),fv=ht(),$m=kR(li()),ER=/今日|当日|昨日|明日|今夜|今夕|今晩|今朝/i,qm=class{pattern(){return ER}extract(t,e){let r=e[0],i=DR.default(t.refDate),s=t.createParsingComponents();switch(r){case"\u6628\u65E5":return $m.yesterday(t.reference);case"\u660E\u65E5":return $m.tomorrow(t.reference);case"\u4ECA\u65E5":case"\u5F53\u65E5":return $m.today(t.reference)}return r=="\u4ECA\u591C"||r=="\u4ECA\u5915"||r=="\u4ECA\u6669"?(s.imply("hour",22),s.assign("meridiem",fv.Meridiem.PM)):r.match("\u4ECA\u671D")&&(s.imply("hour",6),s.assign("meridiem",fv.Meridiem.AM)),s.assign("day",i.date()),s.assign("month",i.month()+1),s.assign("year",i.year()),s}};wr.default=qm});var gv=x(vt=>{"use strict";var Hm=vt&&vt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(vt,"__esModule",{value:!0});vt.createConfiguration=vt.createCasualConfiguration=vt.parseDate=vt.parse=vt.strict=vt.casual=void 0;var xR=Hm(cv()),OR=Hm(dv()),CR=Hm(pv()),mv=br();vt.casual=new mv.Chrono(hv());vt.strict=new mv.Chrono(Gm());function MR(n,t,e){return vt.casual.parse(n,t,e)}vt.parse=MR;function RR(n,t,e){return vt.casual.parseDate(n,t,e)}vt.parseDate=RR;function hv(){let n=Gm();return n.parsers.unshift(new CR.default),n}vt.createCasualConfiguration=hv;function Gm(){return{parsers:[new xR.default],refiners:[new OR.default]}}vt.createConfiguration=Gm});var ac=x(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.parseYear=qr.YEAR_PATTERN=qr.MONTH_DICTIONARY=qr.WEEKDAY_DICTIONARY=void 0;qr.WEEKDAY_DICTIONARY={domingo:0,dom:0,segunda:1,"segunda-feira":1,seg:1,ter\u00E7a:2,"ter\xE7a-feira":2,ter:2,quarta:3,"quarta-feira":3,qua:3,quinta:4,"quinta-feira":4,qui:4,sexta:5,"sexta-feira":5,sex:5,s\u00E1bado:6,sabado:6,sab:6};qr.MONTH_DICTIONARY={janeiro:1,jan:1,"jan.":1,fevereiro:2,fev:2,"fev.":2,mar\u00E7o:3,mar:3,"mar.":3,abril:4,abr:4,"abr.":4,maio:5,mai:5,"mai.":5,junho:6,jun:6,"jun.":6,julho:7,jul:7,"jul.":7,agosto:8,ago:8,"ago.":8,setembro:9,set:9,"set.":9,outubro:10,out:10,"out.":10,novembro:11,nov:11,"nov.":11,dezembro:12,dez:12,"dez.":12};qr.YEAR_PATTERN="[0-9]{1,4}(?![^\\s]\\d)(?:\\s*[a|d]\\.?\\s*c\\.?|\\s*a\\.?\\s*d\\.?)?";function AR(n){if(n.match(/^[0-9]{1,4}$/)){let t=parseInt(n);return t<100&&(t>50?t=t+1900:t=t+2e3),t}return n.match(/a\.?\s*c\.?/i)?(n=n.replace(/a\.?\s*c\.?/i,""),-parseInt(n)):parseInt(n)}qr.parseYear=AR});var bv=x(Vm=>{"use strict";Object.defineProperty(Vm,"__esModule",{value:!0});var yv=ac(),PR=Ke(),NR=re(),IR=vs(),FR=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(este|esta|passado|pr[o\xF3]ximo)\\s*)?(${PR.matchAnyPattern(yv.WEEKDAY_DICTIONARY)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(este|esta|passado|pr[\xF3o]ximo)\\s*semana)?(?=\\W|\\d|$)`,"i"),LR=1,UR=2,YR=3,Bm=class extends NR.AbstractParserWithWordBoundaryChecking{innerPattern(){return FR}innerExtract(t,e){let r=e[UR].toLowerCase(),i=yv.WEEKDAY_DICTIONARY[r];if(i===void 0)return null;let s=e[LR],a=e[YR],o=s||a||"";o=o.toLowerCase();let l=null;o=="passado"?l="this":o=="pr\xF3ximo"||o=="proximo"?l="next":o=="este"&&(l="this");let u=IR.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};Vm.default=Bm});var Tv=x(Km=>{"use strict";Object.defineProperty(Km,"__esModule",{value:!0});var jR=Ts(),zm=class extends jR.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:ao?|\xE0s?|das|da|de|do)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|a(?:o)?|\\?)\\s*"}};Km.default=zm});var _v=x(fl=>{"use strict";var WR=fl&&fl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(fl,"__esModule",{value:!0});var $R=WR(si()),Qm=class extends $R.default{patternBetween(){return new RegExp("^\\s*(?:,|\xE0)?\\s*$")}};fl.default=Qm});var vv=x(pl=>{"use strict";var qR=pl&&pl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(pl,"__esModule",{value:!0});var HR=qR(Wr()),Xm=class extends HR.default{patternBetween(){return/^\s*(?:-)\s*$/i}};pl.default=Xm});var xv=x(Jm=>{"use strict";Object.defineProperty(Jm,"__esModule",{value:!0});var GR=Ct(),Dv=ac(),Ev=ac(),BR=Ke(),VR=re(),zR=new RegExp(`([0-9]{1,2})(?:\xBA|\xAA|\xB0)?(?:\\s*(?:desde|de|\\-|\\\u2013|ao?|\\s)\\s*([0-9]{1,2})(?:\xBA|\xAA|\xB0)?)?\\s*(?:de)?\\s*(?:-|/|\\s*(?:de|,)?\\s*)(${BR.matchAnyPattern(Dv.MONTH_DICTIONARY)})(?:\\s*(?:de|,)?\\s*(${Ev.YEAR_PATTERN}))?(?=\\W|$)`,"i"),wv=1,kv=2,KR=3,Sv=4,Zm=class extends VR.AbstractParserWithWordBoundaryChecking{innerPattern(){return zR}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=Dv.MONTH_DICTIONARY[e[KR].toLowerCase()],s=parseInt(e[wv]);if(s>31)return e.index=e.index+e[wv].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[Sv]){let a=Ev.parseYear(e[Sv]);r.start.assign("year",a)}else{let a=GR.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[kv]){let a=parseInt(e[kv]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};Jm.default=Zm});var Ov=x(ui=>{"use strict";var QR=ui&&ui.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),XR=ui&&ui.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),ZR=ui&&ui.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&QR(t,n,e);return XR(t,n),t};Object.defineProperty(ui,"__esModule",{value:!0});var JR=re(),oc=ZR(li()),eh=class extends JR.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(agora|hoje|amanha|amanhã|ontem)(?=\W|$)/i}innerExtract(t,e){let r=e[0].toLowerCase(),i=t.createParsingComponents();switch(r){case"agora":return oc.now(t.reference);case"hoje":return oc.today(t.reference);case"amanha":case"amanh\xE3":return oc.tomorrow(t.reference);case"ontem":return oc.yesterday(t.reference)}return i}};ui.default=eh});var Cv=x(ml=>{"use strict";var eA=ml&&ml.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ml,"__esModule",{value:!0});var lc=ht(),tA=re(),nA=qn(),rA=eA(Ue()),th=class extends tA.AbstractParserWithWordBoundaryChecking{innerPattern(){return/(?:esta\s*)?(manha|manhã|tarde|meia-noite|meio-dia|noite)(?=\W|$)/i}innerExtract(t,e){let r=rA.default(t.refDate),i=t.createParsingComponents();switch(e[1].toLowerCase()){case"tarde":i.imply("meridiem",lc.Meridiem.PM),i.imply("hour",15);break;case"noite":i.imply("meridiem",lc.Meridiem.PM),i.imply("hour",22);break;case"manha":case"manh\xE3":i.imply("meridiem",lc.Meridiem.AM),i.imply("hour",6);break;case"meia-noite":nA.assignTheNextDay(i,r),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"meio-dia":i.imply("meridiem",lc.Meridiem.AM),i.imply("hour",12);break}return i}};ml.default=th});var Av=x(wt=>{"use strict";var Yi=wt&&wt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(wt,"__esModule",{value:!0});wt.createConfiguration=wt.createCasualConfiguration=wt.parseDate=wt.parse=wt.strict=wt.casual=void 0;var iA=ai(),Mv=br(),sA=Yi(ws()),aA=Yi(bv()),oA=Yi(Tv()),lA=Yi(_v()),uA=Yi(vv()),cA=Yi(xv()),dA=Yi(Ov()),fA=Yi(Cv());wt.casual=new Mv.Chrono(Rv());wt.strict=new Mv.Chrono(nh(!0));function pA(n,t,e){return wt.casual.parse(n,t,e)}wt.parse=pA;function mA(n,t,e){return wt.casual.parseDate(n,t,e)}wt.parseDate=mA;function Rv(n=!0){let t=nh(!1,n);return t.parsers.push(new dA.default),t.parsers.push(new fA.default),t}wt.createCasualConfiguration=Rv;function nh(n=!0,t=!0){return iA.includeCommonConfiguration({parsers:[new sA.default(t),new aA.default,new oA.default,new cA.default],refiners:[new lA.default,new uA.default]},n)}wt.createConfiguration=nh});var Pv=x(hl=>{"use strict";var hA=hl&&hl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(hl,"__esModule",{value:!0});var gA=hA(Wr()),rh=class extends gA.default{patternBetween(){return/^\s*(tot|-)\s*$/i}};hl.default=rh});var Nv=x(gl=>{"use strict";var yA=gl&&gl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(gl,"__esModule",{value:!0});var bA=yA(si()),ih=class extends bA.default{patternBetween(){return new RegExp("^\\s*(om|na|voor|in de|,|-)?\\s*$")}};gl.default=ih});var Iv=x(ci=>{"use strict";var TA=ci&&ci.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),_A=ci&&ci.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),vA=ci&&ci.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&TA(t,n,e);return _A(t,n),t};Object.defineProperty(ci,"__esModule",{value:!0});var wA=re(),uc=vA(li()),sh=class extends wA.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(nu|vandaag|morgen|morgend|gisteren)(?=\W|$)/i}innerExtract(t,e){let r=e[0].toLowerCase(),i=t.createParsingComponents();switch(r){case"nu":return uc.now(t.reference);case"vandaag":return uc.today(t.reference);case"morgen":case"morgend":return uc.tomorrow(t.reference);case"gisteren":return uc.yesterday(t.reference)}return i}};ci.default=sh});var Fv=x(yl=>{"use strict";var kA=yl&&yl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(yl,"__esModule",{value:!0});var cc=ht(),SA=re(),DA=kA(Ue()),EA=qn(),xA=1,OA=2,ah=class extends SA.AbstractParserWithWordBoundaryChecking{innerPattern(){return/(deze)?\s*(namiddag|avond|middernacht|ochtend|middag|'s middags|'s avonds|'s ochtends)(?=\W|$)/i}innerExtract(t,e){let r=DA.default(t.refDate),i=t.createParsingComponents();switch(e[xA]==="deze"&&(i.assign("day",t.refDate.getDate()),i.assign("month",t.refDate.getMonth()+1),i.assign("year",t.refDate.getFullYear())),e[OA].toLowerCase()){case"namiddag":case"'s namiddags":i.imply("meridiem",cc.Meridiem.PM),i.imply("hour",15);break;case"avond":case"'s avonds'":i.imply("meridiem",cc.Meridiem.PM),i.imply("hour",20);break;case"middernacht":EA.assignTheNextDay(i,r),i.imply("hour",0),i.imply("minute",0),i.imply("second",0);break;case"ochtend":case"'s ochtends":i.imply("meridiem",cc.Meridiem.AM),i.imply("hour",6);break;case"middag":case"'s middags":i.imply("meridiem",cc.Meridiem.AM),i.imply("hour",12);break}return i}};yl.default=ah});var kn=x(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.parseTimeUnits=Pe.TIME_UNITS_PATTERN=Pe.parseYear=Pe.YEAR_PATTERN=Pe.parseOrdinalNumberPattern=Pe.ORDINAL_NUMBER_PATTERN=Pe.parseNumberPattern=Pe.NUMBER_PATTERN=Pe.TIME_UNIT_DICTIONARY=Pe.ORDINAL_WORD_DICTIONARY=Pe.INTEGER_WORD_DICTIONARY=Pe.MONTH_DICTIONARY=Pe.WEEKDAY_DICTIONARY=void 0;var dc=Ke(),CA=Ct();Pe.WEEKDAY_DICTIONARY={zondag:0,zon:0,"zon.":0,zo:0,"zo.":0,maandag:1,ma:1,"ma.":1,dinsdag:2,din:2,"din.":2,di:2,"di.":2,woensdag:3,woe:3,"woe.":3,wo:3,"wo.":3,donderdag:4,dond:4,"dond.":4,do:4,"do.":4,vrijdag:5,vrij:5,"vrij.":5,vr:5,"vr.":5,zaterdag:6,zat:6,"zat.":6,za:6,"za.":6};Pe.MONTH_DICTIONARY={januari:1,jan:1,"jan.":1,februari:2,feb:2,"feb.":2,maart:3,mar:3,"mar.":3,april:4,apr:4,"apr.":4,mei:5,juni:6,jun:6,"jun.":6,juli:7,jul:7,"jul.":7,augustus:8,aug:8,"aug.":8,september:9,sep:9,"sep.":9,sept:9,"sept.":9,oktober:10,okt:10,"okt.":10,november:11,nov:11,"nov.":11,december:12,dec:12,"dec.":12};Pe.INTEGER_WORD_DICTIONARY={een:1,twee:2,drie:3,vier:4,vijf:5,zes:6,zeven:7,acht:8,negen:9,tien:10,elf:11,twaalf:12};Pe.ORDINAL_WORD_DICTIONARY={eerste:1,tweede:2,derde:3,vierde:4,vijfde:5,zesde:6,zevende:7,achtste:8,negende:9,tiende:10,elfde:11,twaalfde:12,dertiende:13,veertiende:14,vijftiende:15,zestiende:16,zeventiende:17,achttiende:18,negentiende:19,twintigste:20,eenentwintigste:21,twee\u00EBntwintigste:22,drieentwintigste:23,vierentwintigste:24,vijfentwintigste:25,zesentwintigste:26,zevenentwintigste:27,achtentwintig:28,negenentwintig:29,dertigste:30,eenendertigste:31};Pe.TIME_UNIT_DICTIONARY={sec:"second",second:"second",seconden:"second",min:"minute",mins:"minute",minute:"minute",minuut:"minute",minuten:"minute",minuutje:"minute",h:"hour",hr:"hour",hrs:"hour",uur:"hour",u:"hour",uren:"hour",dag:"d",dagen:"d",week:"week",weken:"week",maand:"month",maanden:"month",jaar:"year",jr:"year",jaren:"year"};Pe.NUMBER_PATTERN=`(?:${dc.matchAnyPattern(Pe.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+[\\.,][0-9]+|halve?|half|paar)`;function Uv(n){let t=n.toLowerCase();return Pe.INTEGER_WORD_DICTIONARY[t]!==void 0?Pe.INTEGER_WORD_DICTIONARY[t]:t==="paar"?2:t==="half"||t.match(/halve?/)?.5:parseFloat(t.replace(",","."))}Pe.parseNumberPattern=Uv;Pe.ORDINAL_NUMBER_PATTERN=`(?:${dc.matchAnyPattern(Pe.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:ste|de)?)`;function MA(n){let t=n.toLowerCase();return Pe.ORDINAL_WORD_DICTIONARY[t]!==void 0?Pe.ORDINAL_WORD_DICTIONARY[t]:(t=t.replace(/(?:ste|de)$/i,""),parseInt(t))}Pe.parseOrdinalNumberPattern=MA;Pe.YEAR_PATTERN="(?:[1-9][0-9]{0,3}\\s*(?:voor Christus|na Christus)|[1-2][0-9]{3}|[5-9][0-9])";function RA(n){if(/voor Christus/i.test(n))return n=n.replace(/voor Christus/i,""),-parseInt(n);if(/na Christus/i.test(n))return n=n.replace(/na Christus/i,""),parseInt(n);let t=parseInt(n);return CA.findMostLikelyADYear(t)}Pe.parseYear=RA;var Yv=`(${Pe.NUMBER_PATTERN})\\s{0,5}(${dc.matchAnyPattern(Pe.TIME_UNIT_DICTIONARY)})\\s{0,5}`,Lv=new RegExp(Yv,"i");Pe.TIME_UNITS_PATTERN=dc.repeatedTimeunitPattern("(?:(?:binnen|in)\\s*)?",Yv);function AA(n){let t={},e=n,r=Lv.exec(e);for(;r;)PA(t,r),e=e.substring(r[0].length),r=Lv.exec(e);return t}Pe.parseTimeUnits=AA;function PA(n,t){let e=Uv(t[1]),r=Pe.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var Wv=x(lh=>{"use strict";Object.defineProperty(lh,"__esModule",{value:!0});var jv=kn(),NA=nt(),IA=re(),oh=class extends IA.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(?:binnen|in|binnen de|voor)\\s*("+jv.TIME_UNITS_PATTERN+")(?=\\W|$)","i")}innerExtract(t,e){let r=jv.parseTimeUnits(e[1]);return NA.ParsingComponents.createRelativeFromReference(t.reference,r)}};lh.default=oh});var qv=x(ch=>{"use strict";Object.defineProperty(ch,"__esModule",{value:!0});var $v=kn(),FA=Ke(),LA=re(),UA=vs(),YA=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:op\\s*?)?(?:(deze|vorige|volgende)\\s*(?:week\\s*)?)?(${FA.matchAnyPattern($v.WEEKDAY_DICTIONARY)})(?=\\W|$)`,"i"),jA=1,WA=2,$A=3,uh=class extends LA.AbstractParserWithWordBoundaryChecking{innerPattern(){return YA}innerExtract(t,e){let r=e[WA].toLowerCase(),i=$v.WEEKDAY_DICTIONARY[r],s=e[jA],a=e[$A],o=s||a;o=o||"",o=o.toLowerCase();let l=null;o=="vorige"?l="last":o=="volgende"?l="next":o=="deze"&&(l="this");let u=UA.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};ch.default=uh});var Kv=x(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});var qA=Ct(),Vv=kn(),fc=kn(),zv=kn(),HA=Ke(),GA=re(),BA=new RegExp(`(?:on\\s*?)?(${fc.ORDINAL_NUMBER_PATTERN})(?:\\s*(?:tot|\\-|\\\u2013|until|through|till|\\s)\\s*(${fc.ORDINAL_NUMBER_PATTERN}))?(?:-|/|\\s*(?:of)?\\s*)(`+HA.matchAnyPattern(Vv.MONTH_DICTIONARY)+`)(?:(?:-|/|,?\\s*)(${zv.YEAR_PATTERN}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),VA=3,Hv=1,Gv=2,Bv=4,dh=class extends GA.AbstractParserWithWordBoundaryChecking{innerPattern(){return BA}innerExtract(t,e){let r=Vv.MONTH_DICTIONARY[e[VA].toLowerCase()],i=fc.parseOrdinalNumberPattern(e[Hv]);if(i>31)return e.index=e.index+e[Hv].length,null;let s=t.createParsingComponents({day:i,month:r});if(e[Bv]){let l=zv.parseYear(e[Bv]);s.assign("year",l)}else{let l=qA.findYearClosestToRef(t.refDate,i,r);s.imply("year",l)}if(!e[Gv])return s;let a=fc.parseOrdinalNumberPattern(e[Gv]),o=t.createParsingResult(e.index,e[0]);return o.start=s,o.end=s.clone(),o.end.assign("day",a),o}};fh.default=dh});var Jv=x(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});var Xv=kn(),zA=Ct(),KA=Ke(),Zv=kn(),QA=re(),XA=new RegExp(`(${KA.matchAnyPattern(Xv.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${Zv.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,"i"),ZA=1,Qv=2,ph=class extends QA.AbstractParserWithWordBoundaryChecking{innerPattern(){return XA}innerExtract(t,e){let r=t.createParsingComponents();r.imply("day",1);let i=e[ZA],s=Xv.MONTH_DICTIONARY[i.toLowerCase()];if(r.assign("month",s),e[Qv]){let a=Zv.parseYear(e[Qv]);r.assign("year",a)}else{let a=zA.findYearClosestToRef(t.refDate,1,s);r.imply("year",a)}return r}};mh.default=ph});var ew=x(gh=>{"use strict";Object.defineProperty(gh,"__esModule",{value:!0});var JA=re(),eP=new RegExp("([0-9]|0[1-9]|1[012])/([0-9]{4})","i"),tP=1,nP=2,hh=class extends JA.AbstractParserWithWordBoundaryChecking{innerPattern(){return eP}innerExtract(t,e){let r=parseInt(e[nP]),i=parseInt(e[tP]);return t.createParsingComponents().imply("day",1).assign("month",i).assign("year",r)}};gh.default=hh});var tw=x(bh=>{"use strict";Object.defineProperty(bh,"__esModule",{value:!0});var rP=Ts(),yh=class extends rP.AbstractTimeExpressionParser{primaryPrefix(){return"(?:(?:om)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|om|\\?)\\s*"}primarySuffix(){return"(?:\\s*(?:uur))?(?!/)(?=\\W|$)"}extractPrimaryTimeComponents(t,e){return e[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(t,e)}};bh.default=yh});var iw=x(_h=>{"use strict";Object.defineProperty(_h,"__esModule",{value:!0});var rw=kn(),iP=Ke(),sP=re(),aP=new RegExp(`([0-9]{4})[\\.\\/\\s](?:(${iP.matchAnyPattern(rw.MONTH_DICTIONARY)})|([0-9]{1,2}))[\\.\\/\\s]([0-9]{1,2})(?=\\W|$)`,"i"),oP=1,lP=2,nw=3,uP=4,Th=class extends sP.AbstractParserWithWordBoundaryChecking{innerPattern(){return aP}innerExtract(t,e){let r=e[nw]?parseInt(e[nw]):rw.MONTH_DICTIONARY[e[lP].toLowerCase()];if(r<1||r>12)return null;let i=parseInt(e[oP]);return{day:parseInt(e[uP]),month:r,year:i}}};_h.default=Th});var sw=x(bl=>{"use strict";var cP=bl&&bl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(bl,"__esModule",{value:!0});var dP=re(),pc=ht(),vh=qn(),fP=cP(Ue()),pP=1,mP=2,wh=class extends dP.AbstractParserWithWordBoundaryChecking{innerPattern(t){return/(gisteren|morgen|van)(ochtend|middag|namiddag|avond|nacht)(?=\W|$)/i}innerExtract(t,e){let r=e[pP].toLowerCase(),i=e[mP].toLowerCase(),s=t.createParsingComponents(),a=fP.default(t.refDate);switch(r){case"gisteren":vh.assignSimilarDate(s,a.add(-1,"day"));break;case"van":vh.assignSimilarDate(s,a);break;case"morgen":vh.assignTheNextDay(s,a);break}switch(i){case"ochtend":s.imply("meridiem",pc.Meridiem.AM),s.imply("hour",6);break;case"middag":s.imply("meridiem",pc.Meridiem.AM),s.imply("hour",12);break;case"namiddag":s.imply("meridiem",pc.Meridiem.PM),s.imply("hour",15);break;case"avond":s.imply("meridiem",pc.Meridiem.PM),s.imply("hour",20);break}return s}};bl.default=wh});var ow=x(Sh=>{"use strict";Object.defineProperty(Sh,"__esModule",{value:!0});var aw=kn(),hP=nt(),gP=re(),yP=Hn(),bP=new RegExp(`(deze|vorige|afgelopen|komende|over|\\+|-)\\s*(${aw.TIME_UNITS_PATTERN})(?=\\W|$)`,"i"),kh=class extends gP.AbstractParserWithWordBoundaryChecking{innerPattern(){return bP}innerExtract(t,e){let r=e[1].toLowerCase(),i=aw.parseTimeUnits(e[2]);switch(r){case"vorige":case"afgelopen":case"-":i=yP.reverseTimeUnits(i);break}return hP.ParsingComponents.createRelativeFromReference(t.reference,i)}};Sh.default=kh});var cw=x(Tl=>{"use strict";var TP=Tl&&Tl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Tl,"__esModule",{value:!0});var uw=kn(),lw=nt(),_P=TP(Ue()),vP=re(),wP=Ke(),kP=new RegExp(`(dit|deze|komende|volgend|volgende|afgelopen|vorige)\\s*(${wP.matchAnyPattern(uw.TIME_UNIT_DICTIONARY)})(?=\\s*)(?=\\W|$)`,"i"),SP=1,DP=2,Dh=class extends vP.AbstractParserWithWordBoundaryChecking{innerPattern(){return kP}innerExtract(t,e){let r=e[SP].toLowerCase(),i=e[DP].toLowerCase(),s=uw.TIME_UNIT_DICTIONARY[i];if(r=="volgend"||r=="volgende"||r=="komende"){let l={};return l[s]=1,lw.ParsingComponents.createRelativeFromReference(t.reference,l)}if(r=="afgelopen"||r=="vorige"){let l={};return l[s]=-1,lw.ParsingComponents.createRelativeFromReference(t.reference,l)}let a=t.createParsingComponents(),o=_P.default(t.reference.instant);return i.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):i.match(/maand/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):i.match(/jaar/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};Tl.default=Dh});var dw=x(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});var xh=kn(),EP=nt(),xP=re(),OP=Hn(),CP=new RegExp("("+xh.TIME_UNITS_PATTERN+")(?:geleden|voor|eerder)(?=(?:\\W|$))","i"),MP=new RegExp("("+xh.TIME_UNITS_PATTERN+")geleden(?=(?:\\W|$))","i"),Eh=class extends xP.AbstractParserWithWordBoundaryChecking{constructor(t){super(),this.strictMode=t}innerPattern(){return this.strictMode?MP:CP}innerExtract(t,e){let r=xh.parseTimeUnits(e[1]),i=OP.reverseTimeUnits(r);return EP.ParsingComponents.createRelativeFromReference(t.reference,i)}};Oh.default=Eh});var fw=x(Rh=>{"use strict";Object.defineProperty(Rh,"__esModule",{value:!0});var Mh=kn(),RP=nt(),AP=re(),PP=new RegExp("("+Mh.TIME_UNITS_PATTERN+")(later|na|vanaf nu|voortaan|vooruit|uit)(?=(?:\\W|$))","i"),NP=new RegExp("("+Mh.TIME_UNITS_PATTERN+")(later|vanaf nu)(?=(?:\\W|$))","i"),IP=1,Ch=class extends AP.AbstractParserWithWordBoundaryChecking{constructor(t){super(),this.strictMode=t}innerPattern(){return this.strictMode?NP:PP}innerExtract(t,e){let r=Mh.parseTimeUnits(e[IP]);return RP.ParsingComponents.createRelativeFromReference(t.reference,r)}};Rh.default=Ch});var gw=x(kt=>{"use strict";var Rt=kt&&kt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(kt,"__esModule",{value:!0});kt.createConfiguration=kt.createCasualConfiguration=kt.parseDate=kt.parse=kt.strict=kt.casual=void 0;var FP=ai(),pw=br(),LP=Rt(Pv()),UP=Rt(Nv()),YP=Rt(Iv()),jP=Rt(Fv()),WP=Rt(ws()),$P=Rt(Wv()),qP=Rt(qv()),HP=Rt(Kv()),mw=Rt(Jv()),GP=Rt(ew()),BP=Rt(tw()),VP=Rt(iw()),zP=Rt(sw()),KP=Rt(ow()),QP=Rt(cw()),XP=Rt(dw()),ZP=Rt(fw());kt.casual=new pw.Chrono(hw());kt.strict=new pw.Chrono(Ah(!0));function JP(n,t,e){return kt.casual.parse(n,t,e)}kt.parse=JP;function eN(n,t,e){return kt.casual.parseDate(n,t,e)}kt.parseDate=eN;function hw(n=!0){let t=Ah(!1,n);return t.parsers.unshift(new YP.default),t.parsers.unshift(new jP.default),t.parsers.unshift(new zP.default),t.parsers.unshift(new mw.default),t.parsers.unshift(new QP.default),t.parsers.unshift(new KP.default),t}kt.createCasualConfiguration=hw;function Ah(n=!0,t=!0){return FP.includeCommonConfiguration({parsers:[new WP.default(t),new $P.default,new HP.default,new mw.default,new qP.default,new VP.default,new GP.default,new BP.default(n),new XP.default(n),new ZP.default(n)],refiners:[new UP.default,new LP.default]},n)}kt.createConfiguration=Ah});var _w=x(_l=>{"use strict";var tN=_l&&_l.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(_l,"__esModule",{value:!0});var nN=tN(Ue()),rN=re(),iN=1,yw=2,sN=3,bw=4,Tw=5,aN=6,Ph=class extends rN.AbstractParserWithWordBoundaryChecking{innerPattern(t){return new RegExp("(\u800C\u5BB6|\u7ACB(?:\u523B|\u5373)|\u5373\u523B)|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s|,|\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?","i")}innerExtract(t,e){let r=e.index,i=t.createParsingResult(r,e[0]),s=nN.default(t.refDate),a=s;if(e[iN])i.start.imply("hour",s.hour()),i.start.imply("minute",s.minute()),i.start.imply("second",s.second()),i.start.imply("millisecond",s.millisecond());else if(e[yw]){let o=e[yw],l=e[sN];o=="\u660E"||o=="\u807D"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u5F8C"?a=a.add(2,"day"):o=="\u5927\u5F8C"&&(a=a.add(3,"day")),l=="\u65E9"||l=="\u671D"?i.start.imply("hour",6):l=="\u665A"&&(i.start.imply("hour",22),i.start.imply("meridiem",1))}else if(e[bw]){let l=e[bw][0];l=="\u65E9"||l=="\u671D"||l=="\u4E0A"?i.start.imply("hour",6):l=="\u4E0B"||l=="\u664F"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):l=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):l=="\u591C"||l=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):l=="\u51CC"&&i.start.imply("hour",0)}else if(e[Tw]){let o=e[Tw];o=="\u660E"||o=="\u807D"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u5F8C"?a=a.add(2,"day"):o=="\u5927\u5F8C"&&(a=a.add(3,"day"));let l=e[aN];if(l){let u=l[0];u=="\u65E9"||u=="\u671D"||u=="\u4E0A"?i.start.imply("hour",6):u=="\u4E0B"||u=="\u664F"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):u=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):u=="\u591C"||u=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):u=="\u51CC"&&i.start.imply("hour",0)}}return i.start.assign("day",a.date()),i.start.assign("month",a.month()+1),i.start.assign("year",a.year()),i}};_l.default=Ph});var Ra=x(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.zhStringToYear=un.zhStringToNumber=un.WEEKDAY_OFFSET=un.NUMBER=void 0;un.NUMBER={\u96F6:0,\u4E00:1,\u4E8C:2,\u5169:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10,\u5EFF:20,\u5345:30};un.WEEKDAY_OFFSET={\u5929:0,\u65E5:0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6};function oN(n){let t=0;for(let e=0;e<n.length;e++){let r=n[e];r==="\u5341"?t=t===0?un.NUMBER[r]:t*un.NUMBER[r]:t+=un.NUMBER[r]}return t}un.zhStringToNumber=oN;function lN(n){let t="";for(let e=0;e<n.length;e++){let r=n[e];t=t+un.NUMBER[r]}return parseInt(t)}un.zhStringToYear=lN});var ww=x(vl=>{"use strict";var uN=vl&&vl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(vl,"__esModule",{value:!0});var cN=uN(Ue()),dN=re(),Ds=Ra(),Nh=1,vw=2,Ih=3,Fh=class extends dN.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(\\d{2,4}|["+Object.keys(Ds.NUMBER).join("")+"]{4}|["+Object.keys(Ds.NUMBER).join("")+"]{2})?(?:\\s*)(?:\u5E74)?(?:[\\s|,|\uFF0C]*)(\\d{1,2}|["+Object.keys(Ds.NUMBER).join("")+"]{1,2})(?:\\s*)(?:\u6708)(?:\\s*)(\\d{1,2}|["+Object.keys(Ds.NUMBER).join("")+"]{1,2})?(?:\\s*)(?:\u65E5|\u865F)?")}innerExtract(t,e){let r=cN.default(t.refDate),i=t.createParsingResult(e.index,e[0]),s=parseInt(e[vw]);if(isNaN(s)&&(s=Ds.zhStringToNumber(e[vw])),i.start.assign("month",s),e[Ih]){let a=parseInt(e[Ih]);isNaN(a)&&(a=Ds.zhStringToNumber(e[Ih])),i.start.assign("day",a)}else i.start.imply("day",r.date());if(e[Nh]){let a=parseInt(e[Nh]);isNaN(a)&&(a=Ds.zhStringToYear(e[Nh])),i.start.assign("year",a)}else i.start.imply("year",r.year());return i}};vl.default=Fh});var Sw=x(wl=>{"use strict";var fN=wl&&wl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(wl,"__esModule",{value:!0});var pN=fN(Ue()),mN=re(),kw=Ra(),hN=new RegExp("(\\d+|["+Object.keys(kw.NUMBER).join("")+"]+|\u534A|\u5E7E)(?:\\s*)(?:\u500B)?(\u79D2(?:\u9418)?|\u5206\u9418|\u5C0F\u6642|\u9418|\u65E5|\u5929|\u661F\u671F|\u79AE\u62DC|\u6708|\u5E74)(?:(?:\u4E4B|\u904E)?\u5F8C|(?:\u4E4B)?\u5167)","i"),Lh=1,gN=2,Uh=class extends mN.AbstractParserWithWordBoundaryChecking{innerPattern(){return hN}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=parseInt(e[Lh]);if(isNaN(i)&&(i=kw.zhStringToNumber(e[Lh])),isNaN(i)){let l=e[Lh];if(l==="\u5E7E")i=3;else if(l==="\u534A")i=.5;else return null}let s=pN.default(t.refDate),o=e[gN][0];return o.match(/[日天星禮月年]/)?(o=="\u65E5"||o=="\u5929"?s=s.add(i,"d"):o=="\u661F"||o=="\u79AE"?s=s.add(i*7,"d"):o=="\u6708"?s=s.add(i,"month"):o=="\u5E74"&&(s=s.add(i,"year")),r.start.assign("year",s.year()),r.start.assign("month",s.month()+1),r.start.assign("day",s.date()),r):(o=="\u79D2"?s=s.add(i,"second"):o=="\u5206"?s=s.add(i,"minute"):(o=="\u5C0F"||o=="\u9418")&&(s=s.add(i,"hour")),r.start.imply("year",s.year()),r.start.imply("month",s.month()+1),r.start.imply("day",s.date()),r.start.assign("hour",s.hour()),r.start.assign("minute",s.minute()),r.start.assign("second",s.second()),r)}};wl.default=Uh});var Ew=x(kl=>{"use strict";var yN=kl&&kl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(kl,"__esModule",{value:!0});var bN=yN(Ue()),TN=re(),Dw=Ra(),_N=new RegExp("(?<prefix>\u4E0A|\u4ECA|\u4E0B|\u9019|\u5462)(?:\u500B)?(?:\u661F\u671F|\u79AE\u62DC|\u9031)(?<weekday>"+Object.keys(Dw.WEEKDAY_OFFSET).join("|")+")"),Yh=class extends TN.AbstractParserWithWordBoundaryChecking{innerPattern(){return _N}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=e.groups.weekday,s=Dw.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=null,o=e.groups.prefix;o=="\u4E0A"?a="last":o=="\u4E0B"?a="next":(o=="\u4ECA"||o=="\u9019"||o=="\u5462")&&(a="this");let l=bN.default(t.refDate),u=!1,c=l.day();return a=="last"||a=="past"?(l=l.day(s-7),u=!0):a=="next"?(l=l.day(s+7),u=!0):a=="this"?l=l.day(s):Math.abs(s-7-c)<Math.abs(s-c)?l=l.day(s-7):Math.abs(s+7-c)<Math.abs(s-c)?l=l.day(s+7):l=l.day(s),r.start.assign("weekday",s),u?(r.start.assign("day",l.date()),r.start.assign("month",l.month()+1),r.start.assign("year",l.year())):(r.start.imply("day",l.date()),r.start.imply("month",l.month()+1),r.start.imply("year",l.year())),r}};kl.default=Yh});var xw=x(Sl=>{"use strict";var vN=Sl&&Sl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Sl,"__esModule",{value:!0});var wN=vN(Ue()),kN=re(),Vn=Ra(),SN=new RegExp("(?:\u7531|\u5F9E|\u81EA)?(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Vn.NUMBER).join("")+"]+)(?:\\s*)(?:\u9EDE|\u6642|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Vn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Vn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),DN=new RegExp("(?:^\\s*(?:\u5230|\u81F3|\\-|\\\u2013|\\~|\\\u301C)\\s*)(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Vn.NUMBER).join("")+"]+)(?:\\s*)(?:\u9EDE|\u6642|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Vn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Vn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),mc=1,hc=2,gc=3,yc=4,bc=5,Tc=6,Bn=7,Aa=8,_c=9,jh=class extends kN.AbstractParserWithWordBoundaryChecking{innerPattern(){return SN}innerExtract(t,e){if(e.index>0&&t.text[e.index-1].match(/\w/))return null;let r=wN.default(t.refDate),i=t.createParsingResult(e.index,e[0]),s=r.clone();if(e[mc]){var a=e[mc];a=="\u660E"||a=="\u807D"?r.hour()>1&&s.add(1,"day"):a=="\u6628"||a=="\u5C0B"||a=="\u7434"?s.add(-1,"day"):a=="\u524D"?s.add(-2,"day"):a=="\u5927\u524D"?s.add(-3,"day"):a=="\u5F8C"?s.add(2,"day"):a=="\u5927\u5F8C"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else if(e[yc]){var o=e[yc];o=="\u660E"||o=="\u807D"?s.add(1,"day"):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?s.add(-1,"day"):o=="\u524D"?s.add(-2,"day"):o=="\u5927\u524D"?s.add(-3,"day"):o=="\u5F8C"?s.add(2,"day"):o=="\u5927\u5F8C"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else i.start.imply("day",s.date()),i.start.imply("month",s.month()+1),i.start.imply("year",s.year());let l=0,u=0,c=-1;if(e[Aa]){var d=parseInt(e[Aa]);if(isNaN(d)&&(d=Vn.zhStringToNumber(e[Aa])),d>=60)return null;i.start.assign("second",d)}if(l=parseInt(e[Tc]),isNaN(l)&&(l=Vn.zhStringToNumber(e[Tc])),e[Bn]?e[Bn]=="\u534A"?u=30:e[Bn]=="\u6B63"||e[Bn]=="\u6574"?u=0:(u=parseInt(e[Bn]),isNaN(u)&&(u=Vn.zhStringToNumber(e[Bn]))):l>100&&(u=l%100,l=Math.floor(l/100)),u>=60||l>24)return null;if(l>=12&&(c=1),e[_c]){if(l>12)return null;var f=e[_c][0].toLowerCase();f=="a"&&(c=0,l==12&&(l=0)),f=="p"&&(c=1,l!=12&&(l+=12))}else if(e[hc]){var p=e[hc],b=p[0];b=="\u671D"||b=="\u65E9"?(c=0,l==12&&(l=0)):b=="\u665A"&&(c=1,l!=12&&(l+=12))}else if(e[gc]){var T=e[gc],_=T[0];_=="\u4E0A"||_=="\u671D"||_=="\u65E9"||_=="\u51CC"?(c=0,l==12&&(l=0)):(_=="\u4E0B"||_=="\u664F"||_=="\u665A")&&(c=1,l!=12&&(l+=12))}else if(e[bc]){var O=e[bc],E=O[0];E=="\u4E0A"||E=="\u671D"||E=="\u65E9"||E=="\u51CC"?(c=0,l==12&&(l=0)):(E=="\u4E0B"||E=="\u664F"||E=="\u665A")&&(c=1,l!=12&&(l+=12))}if(i.start.assign("hour",l),i.start.assign("minute",u),c>=0?i.start.assign("meridiem",c):l<12?i.start.imply("meridiem",0):i.start.imply("meridiem",1),e=DN.exec(t.text.substring(i.index+i.text.length)),!e)return i.text.match(/^\d+$/)?null:i;let A=s.clone();if(i.end=t.createParsingComponents(),e[mc]){var a=e[mc];a=="\u660E"||a=="\u807D"?r.hour()>1&&A.add(1,"day"):a=="\u6628"||a=="\u5C0B"||a=="\u7434"?A.add(-1,"day"):a=="\u524D"?A.add(-2,"day"):a=="\u5927\u524D"?A.add(-3,"day"):a=="\u5F8C"?A.add(2,"day"):a=="\u5927\u5F8C"&&A.add(3,"day"),i.end.assign("day",A.date()),i.end.assign("month",A.month()+1),i.end.assign("year",A.year())}else if(e[yc]){var o=e[yc];o=="\u660E"||o=="\u807D"?A.add(1,"day"):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?A.add(-1,"day"):o=="\u524D"?A.add(-2,"day"):o=="\u5927\u524D"?A.add(-3,"day"):o=="\u5F8C"?A.add(2,"day"):o=="\u5927\u5F8C"&&A.add(3,"day"),i.end.assign("day",A.date()),i.end.assign("month",A.month()+1),i.end.assign("year",A.year())}else i.end.imply("day",A.date()),i.end.imply("month",A.month()+1),i.end.imply("year",A.year());if(l=0,u=0,c=-1,e[Aa]){var d=parseInt(e[Aa]);if(isNaN(d)&&(d=Vn.zhStringToNumber(e[Aa])),d>=60)return null;i.end.assign("second",d)}if(l=parseInt(e[Tc]),isNaN(l)&&(l=Vn.zhStringToNumber(e[Tc])),e[Bn]?e[Bn]=="\u534A"?u=30:e[Bn]=="\u6B63"||e[Bn]=="\u6574"?u=0:(u=parseInt(e[Bn]),isNaN(u)&&(u=Vn.zhStringToNumber(e[Bn]))):l>100&&(u=l%100,l=Math.floor(l/100)),u>=60||l>24)return null;if(l>=12&&(c=1),e[_c]){if(l>12)return null;var f=e[_c][0].toLowerCase();f=="a"&&(c=0,l==12&&(l=0)),f=="p"&&(c=1,l!=12&&(l+=12)),i.start.isCertain("meridiem")||(c==0?(i.start.imply("meridiem",0),i.start.get("hour")==12&&i.start.assign("hour",0)):(i.start.imply("meridiem",1),i.start.get("hour")!=12&&i.start.assign("hour",i.start.get("hour")+12)))}else if(e[hc]){var p=e[hc],b=p[0];b=="\u671D"||b=="\u65E9"?(c=0,l==12&&(l=0)):b=="\u665A"&&(c=1,l!=12&&(l+=12))}else if(e[gc]){var T=e[gc],_=T[0];_=="\u4E0A"||_=="\u671D"||_=="\u65E9"||_=="\u51CC"?(c=0,l==12&&(l=0)):(_=="\u4E0B"||_=="\u664F"||_=="\u665A")&&(c=1,l!=12&&(l+=12))}else if(e[bc]){var O=e[bc],E=O[0];E=="\u4E0A"||E=="\u671D"||E=="\u65E9"||E=="\u51CC"?(c=0,l==12&&(l=0)):(E=="\u4E0B"||E=="\u664F"||E=="\u665A")&&(c=1,l!=12&&(l+=12))}return i.text=i.text+e[0],i.end.assign("hour",l),i.end.assign("minute",u),c>=0?i.end.assign("meridiem",c):i.start.isCertain("meridiem")&&i.start.get("meridiem")==1&&i.start.get("hour")>l?i.end.imply("meridiem",0):l>12&&i.end.imply("meridiem",1),i.end.date().getTime()<i.start.date().getTime()&&i.end.imply("day",i.end.get("day")+1),i}};Sl.default=jh});var Cw=x(Dl=>{"use strict";var EN=Dl&&Dl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Dl,"__esModule",{value:!0});var xN=EN(Ue()),ON=re(),Ow=Ra(),CN=new RegExp("(?:\u661F\u671F|\u79AE\u62DC|\u9031)(?<weekday>"+Object.keys(Ow.WEEKDAY_OFFSET).join("|")+")"),Wh=class extends ON.AbstractParserWithWordBoundaryChecking{innerPattern(){return CN}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=e.groups.weekday,s=Ow.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=xN.default(t.refDate),o=!1,l=a.day();return Math.abs(s-7-l)<Math.abs(s-l)?a=a.day(s-7):Math.abs(s+7-l)<Math.abs(s-l)?a=a.day(s+7):a=a.day(s),r.start.assign("weekday",s),o?(r.start.assign("day",a.date()),r.start.assign("month",a.month()+1),r.start.assign("year",a.year())):(r.start.imply("day",a.date()),r.start.imply("month",a.month()+1),r.start.imply("year",a.year())),r}};Dl.default=Wh});var Mw=x(El=>{"use strict";var MN=El&&El.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(El,"__esModule",{value:!0});var RN=MN(Wr()),$h=class extends RN.default{patternBetween(){return/^\s*(至|到|\-|\~|~|-|ー)\s*$/i}};El.default=$h});var Rw=x(xl=>{"use strict";var AN=xl&&xl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(xl,"__esModule",{value:!0});var PN=AN(si()),qh=class extends PN.default{patternBetween(){return/^\s*$/i}};xl.default=qh});var Aw=x(ct=>{"use strict";var di=ct&&ct.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(ct,"__esModule",{value:!0});ct.createConfiguration=ct.createCasualConfiguration=ct.parseDate=ct.parse=ct.strict=ct.casual=ct.hant=void 0;var Hh=br(),NN=di(Qu()),IN=ai(),FN=di(_w()),LN=di(ww()),UN=di(Sw()),YN=di(Ew()),jN=di(xw()),WN=di(Cw()),$N=di(Mw()),qN=di(Rw());ct.hant=new Hh.Chrono(Gh());ct.casual=new Hh.Chrono(Gh());ct.strict=new Hh.Chrono(Bh());function HN(n,t,e){return ct.casual.parse(n,t,e)}ct.parse=HN;function GN(n,t,e){return ct.casual.parseDate(n,t,e)}ct.parseDate=GN;function Gh(){let n=Bh();return n.parsers.unshift(new FN.default),n}ct.createCasualConfiguration=Gh;function Bh(){let n=IN.includeCommonConfiguration({parsers:[new LN.default,new YN.default,new WN.default,new jN.default,new UN.default],refiners:[new $N.default,new qN.default]});return n.refiners=n.refiners.filter(t=>!(t instanceof NN.default)),n}ct.createConfiguration=Bh});var Fw=x(Ol=>{"use strict";var BN=Ol&&Ol.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ol,"__esModule",{value:!0});var VN=BN(Ue()),zN=re(),KN=1,Pw=2,QN=3,Nw=4,Iw=5,XN=6,Vh=class extends zN.AbstractParserWithWordBoundaryChecking{innerPattern(t){return new RegExp("(\u73B0\u5728|\u7ACB(?:\u523B|\u5373)|\u5373\u523B)|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s|,|\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?","i")}innerExtract(t,e){let r=e.index,i=t.createParsingResult(r,e[0]),s=VN.default(t.refDate),a=s;if(e[KN])i.start.imply("hour",s.hour()),i.start.imply("minute",s.minute()),i.start.imply("second",s.second()),i.start.imply("millisecond",s.millisecond());else if(e[Pw]){let o=e[Pw],l=e[QN];o=="\u660E"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u540E"?a=a.add(2,"day"):o=="\u5927\u540E"&&(a=a.add(3,"day")),l=="\u65E9"?i.start.imply("hour",6):l=="\u665A"&&(i.start.imply("hour",22),i.start.imply("meridiem",1))}else if(e[Nw]){let l=e[Nw][0];l=="\u65E9"||l=="\u4E0A"?i.start.imply("hour",6):l=="\u4E0B"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):l=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):l=="\u591C"||l=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):l=="\u51CC"&&i.start.imply("hour",0)}else if(e[Iw]){let o=e[Iw];o=="\u660E"?s.hour()>1&&(a=a.add(1,"day")):o=="\u6628"?a=a.add(-1,"day"):o=="\u524D"?a=a.add(-2,"day"):o=="\u5927\u524D"?a=a.add(-3,"day"):o=="\u540E"?a=a.add(2,"day"):o=="\u5927\u540E"&&(a=a.add(3,"day"));let l=e[XN];if(l){let u=l[0];u=="\u65E9"||u=="\u4E0A"?i.start.imply("hour",6):u=="\u4E0B"?(i.start.imply("hour",15),i.start.imply("meridiem",1)):u=="\u4E2D"?(i.start.imply("hour",12),i.start.imply("meridiem",1)):u=="\u591C"||u=="\u665A"?(i.start.imply("hour",22),i.start.imply("meridiem",1)):u=="\u51CC"&&i.start.imply("hour",0)}}return i.start.assign("day",a.date()),i.start.assign("month",a.month()+1),i.start.assign("year",a.year()),i}};Ol.default=Vh});var Pa=x(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.zhStringToYear=cn.zhStringToNumber=cn.WEEKDAY_OFFSET=cn.NUMBER=void 0;cn.NUMBER={\u96F6:0,"\u3007":0,\u4E00:1,\u4E8C:2,\u4E24:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10};cn.WEEKDAY_OFFSET={\u5929:0,\u65E5:0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6};function ZN(n){let t=0;for(let e=0;e<n.length;e++){let r=n[e];r==="\u5341"?t=t===0?cn.NUMBER[r]:t*cn.NUMBER[r]:t+=cn.NUMBER[r]}return t}cn.zhStringToNumber=ZN;function JN(n){let t="";for(let e=0;e<n.length;e++){let r=n[e];t=t+cn.NUMBER[r]}return parseInt(t)}cn.zhStringToYear=JN});var Uw=x(Cl=>{"use strict";var eI=Cl&&Cl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Cl,"__esModule",{value:!0});var tI=eI(Ue()),nI=re(),Es=Pa(),zh=1,Lw=2,Kh=3,Qh=class extends nI.AbstractParserWithWordBoundaryChecking{innerPattern(){return new RegExp("(\\d{2,4}|["+Object.keys(Es.NUMBER).join("")+"]{4}|["+Object.keys(Es.NUMBER).join("")+"]{2})?(?:\\s*)(?:\u5E74)?(?:[\\s|,|\uFF0C]*)(\\d{1,2}|["+Object.keys(Es.NUMBER).join("")+"]{1,3})(?:\\s*)(?:\u6708)(?:\\s*)(\\d{1,2}|["+Object.keys(Es.NUMBER).join("")+"]{1,3})?(?:\\s*)(?:\u65E5|\u53F7)?")}innerExtract(t,e){let r=tI.default(t.refDate),i=t.createParsingResult(e.index,e[0]),s=parseInt(e[Lw]);if(isNaN(s)&&(s=Es.zhStringToNumber(e[Lw])),i.start.assign("month",s),e[Kh]){let a=parseInt(e[Kh]);isNaN(a)&&(a=Es.zhStringToNumber(e[Kh])),i.start.assign("day",a)}else i.start.imply("day",r.date());if(e[zh]){let a=parseInt(e[zh]);isNaN(a)&&(a=Es.zhStringToYear(e[zh])),i.start.assign("year",a)}else i.start.imply("year",r.year());return i}};Cl.default=Qh});var jw=x(Ml=>{"use strict";var rI=Ml&&Ml.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Ml,"__esModule",{value:!0});var iI=rI(Ue()),sI=re(),Yw=Pa(),aI=new RegExp("(\\d+|["+Object.keys(Yw.NUMBER).join("")+"]+|\u534A|\u51E0)(?:\\s*)(?:\u4E2A)?(\u79D2(?:\u949F)?|\u5206\u949F|\u5C0F\u65F6|\u949F|\u65E5|\u5929|\u661F\u671F|\u793C\u62DC|\u6708|\u5E74)(?:(?:\u4E4B|\u8FC7)?\u540E|(?:\u4E4B)?\u5185)","i"),Xh=1,oI=2,Zh=class extends sI.AbstractParserWithWordBoundaryChecking{innerPattern(){return aI}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=parseInt(e[Xh]);if(isNaN(i)&&(i=Yw.zhStringToNumber(e[Xh])),isNaN(i)){let l=e[Xh];if(l==="\u51E0")i=3;else if(l==="\u534A")i=.5;else return null}let s=iI.default(t.refDate),o=e[oI][0];return o.match(/[日天星礼月年]/)?(o=="\u65E5"||o=="\u5929"?s=s.add(i,"d"):o=="\u661F"||o=="\u793C"?s=s.add(i*7,"d"):o=="\u6708"?s=s.add(i,"month"):o=="\u5E74"&&(s=s.add(i,"year")),r.start.assign("year",s.year()),r.start.assign("month",s.month()+1),r.start.assign("day",s.date()),r):(o=="\u79D2"?s=s.add(i,"second"):o=="\u5206"?s=s.add(i,"minute"):(o=="\u5C0F"||o=="\u949F")&&(s=s.add(i,"hour")),r.start.imply("year",s.year()),r.start.imply("month",s.month()+1),r.start.imply("day",s.date()),r.start.assign("hour",s.hour()),r.start.assign("minute",s.minute()),r.start.assign("second",s.second()),r)}};Ml.default=Zh});var $w=x(Rl=>{"use strict";var lI=Rl&&Rl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Rl,"__esModule",{value:!0});var uI=lI(Ue()),cI=re(),Ww=Pa(),dI=new RegExp("(?<prefix>\u4E0A|\u4E0B|\u8FD9)(?:\u4E2A)?(?:\u661F\u671F|\u793C\u62DC|\u5468)(?<weekday>"+Object.keys(Ww.WEEKDAY_OFFSET).join("|")+")"),Jh=class extends cI.AbstractParserWithWordBoundaryChecking{innerPattern(){return dI}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=e.groups.weekday,s=Ww.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=null,o=e.groups.prefix;o=="\u4E0A"?a="last":o=="\u4E0B"?a="next":o=="\u8FD9"&&(a="this");let l=uI.default(t.refDate),u=!1,c=l.day();return a=="last"||a=="past"?(l=l.day(s-7),u=!0):a=="next"?(l=l.day(s+7),u=!0):a=="this"?l=l.day(s):Math.abs(s-7-c)<Math.abs(s-c)?l=l.day(s-7):Math.abs(s+7-c)<Math.abs(s-c)?l=l.day(s+7):l=l.day(s),r.start.assign("weekday",s),u?(r.start.assign("day",l.date()),r.start.assign("month",l.month()+1),r.start.assign("year",l.year())):(r.start.imply("day",l.date()),r.start.imply("month",l.month()+1),r.start.imply("year",l.year())),r}};Rl.default=Jh});var qw=x(Al=>{"use strict";var fI=Al&&Al.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Al,"__esModule",{value:!0});var pI=fI(Ue()),mI=re(),Kn=Pa(),hI=new RegExp("(?:\u4ECE|\u81EA)?(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Kn.NUMBER).join("")+"]+)(?:\\s*)(?:\u70B9|\u65F6|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Kn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Kn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),gI=new RegExp("(?:^\\s*(?:\u5230|\u81F3|\\-|\\\u2013|\\~|\\\u301C)\\s*)(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Kn.NUMBER).join("")+"]+)(?:\\s*)(?:\u70B9|\u65F6|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Kn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Kn.NUMBER).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),vc=1,wc=2,kc=3,Sc=4,Dc=5,Ec=6,zn=7,Na=8,xc=9,eg=class extends mI.AbstractParserWithWordBoundaryChecking{innerPattern(){return hI}innerExtract(t,e){if(e.index>0&&t.text[e.index-1].match(/\w/))return null;let r=pI.default(t.refDate),i=t.createParsingResult(e.index,e[0]),s=r.clone();if(e[vc]){let c=e[vc];c=="\u660E"?r.hour()>1&&s.add(1,"day"):c=="\u6628"?s.add(-1,"day"):c=="\u524D"?s.add(-2,"day"):c=="\u5927\u524D"?s.add(-3,"day"):c=="\u540E"?s.add(2,"day"):c=="\u5927\u540E"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else if(e[Sc]){let c=e[Sc];c=="\u660E"?s.add(1,"day"):c=="\u6628"?s.add(-1,"day"):c=="\u524D"?s.add(-2,"day"):c=="\u5927\u524D"?s.add(-3,"day"):c=="\u540E"?s.add(2,"day"):c=="\u5927\u540E"&&s.add(3,"day"),i.start.assign("day",s.date()),i.start.assign("month",s.month()+1),i.start.assign("year",s.year())}else i.start.imply("day",s.date()),i.start.imply("month",s.month()+1),i.start.imply("year",s.year());let a=0,o=0,l=-1;if(e[Na]){let c=parseInt(e[Na]);if(isNaN(c)&&(c=Kn.zhStringToNumber(e[Na])),c>=60)return null;i.start.assign("second",c)}if(a=parseInt(e[Ec]),isNaN(a)&&(a=Kn.zhStringToNumber(e[Ec])),e[zn]?e[zn]=="\u534A"?o=30:e[zn]=="\u6B63"||e[zn]=="\u6574"?o=0:(o=parseInt(e[zn]),isNaN(o)&&(o=Kn.zhStringToNumber(e[zn]))):a>100&&(o=a%100,a=Math.floor(a/100)),o>=60||a>24)return null;if(a>=12&&(l=1),e[xc]){if(a>12)return null;let c=e[xc][0].toLowerCase();c=="a"&&(l=0,a==12&&(a=0)),c=="p"&&(l=1,a!=12&&(a+=12))}else if(e[wc]){let d=e[wc][0];d=="\u65E9"?(l=0,a==12&&(a=0)):d=="\u665A"&&(l=1,a!=12&&(a+=12))}else if(e[kc]){let d=e[kc][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(l=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(l=1,a!=12&&(a+=12))}else if(e[Dc]){let d=e[Dc][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(l=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(l=1,a!=12&&(a+=12))}if(i.start.assign("hour",a),i.start.assign("minute",o),l>=0?i.start.assign("meridiem",l):a<12?i.start.imply("meridiem",0):i.start.imply("meridiem",1),e=gI.exec(t.text.substring(i.index+i.text.length)),!e)return i.text.match(/^\d+$/)?null:i;let u=s.clone();if(i.end=t.createParsingComponents(),e[vc]){let c=e[vc];c=="\u660E"?r.hour()>1&&u.add(1,"day"):c=="\u6628"?u.add(-1,"day"):c=="\u524D"?u.add(-2,"day"):c=="\u5927\u524D"?u.add(-3,"day"):c=="\u540E"?u.add(2,"day"):c=="\u5927\u540E"&&u.add(3,"day"),i.end.assign("day",u.date()),i.end.assign("month",u.month()+1),i.end.assign("year",u.year())}else if(e[Sc]){let c=e[Sc];c=="\u660E"?u.add(1,"day"):c=="\u6628"?u.add(-1,"day"):c=="\u524D"?u.add(-2,"day"):c=="\u5927\u524D"?u.add(-3,"day"):c=="\u540E"?u.add(2,"day"):c=="\u5927\u540E"&&u.add(3,"day"),i.end.assign("day",u.date()),i.end.assign("month",u.month()+1),i.end.assign("year",u.year())}else i.end.imply("day",u.date()),i.end.imply("month",u.month()+1),i.end.imply("year",u.year());if(a=0,o=0,l=-1,e[Na]){let c=parseInt(e[Na]);if(isNaN(c)&&(c=Kn.zhStringToNumber(e[Na])),c>=60)return null;i.end.assign("second",c)}if(a=parseInt(e[Ec]),isNaN(a)&&(a=Kn.zhStringToNumber(e[Ec])),e[zn]?e[zn]=="\u534A"?o=30:e[zn]=="\u6B63"||e[zn]=="\u6574"?o=0:(o=parseInt(e[zn]),isNaN(o)&&(o=Kn.zhStringToNumber(e[zn]))):a>100&&(o=a%100,a=Math.floor(a/100)),o>=60||a>24)return null;if(a>=12&&(l=1),e[xc]){if(a>12)return null;let c=e[xc][0].toLowerCase();c=="a"&&(l=0,a==12&&(a=0)),c=="p"&&(l=1,a!=12&&(a+=12)),i.start.isCertain("meridiem")||(l==0?(i.start.imply("meridiem",0),i.start.get("hour")==12&&i.start.assign("hour",0)):(i.start.imply("meridiem",1),i.start.get("hour")!=12&&i.start.assign("hour",i.start.get("hour")+12)))}else if(e[wc]){let d=e[wc][0];d=="\u65E9"?(l=0,a==12&&(a=0)):d=="\u665A"&&(l=1,a!=12&&(a+=12))}else if(e[kc]){let d=e[kc][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(l=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(l=1,a!=12&&(a+=12))}else if(e[Dc]){let d=e[Dc][0];d=="\u4E0A"||d=="\u65E9"||d=="\u51CC"?(l=0,a==12&&(a=0)):(d=="\u4E0B"||d=="\u665A")&&(l=1,a!=12&&(a+=12))}return i.text=i.text+e[0],i.end.assign("hour",a),i.end.assign("minute",o),l>=0?i.end.assign("meridiem",l):i.start.isCertain("meridiem")&&i.start.get("meridiem")==1&&i.start.get("hour")>a?i.end.imply("meridiem",0):a>12&&i.end.imply("meridiem",1),i.end.date().getTime()<i.start.date().getTime()&&i.end.imply("day",i.end.get("day")+1),i}};Al.default=eg});var Gw=x(Pl=>{"use strict";var yI=Pl&&Pl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Pl,"__esModule",{value:!0});var bI=yI(Ue()),TI=re(),Hw=Pa(),_I=new RegExp("(?:\u661F\u671F|\u793C\u62DC|\u5468)(?<weekday>"+Object.keys(Hw.WEEKDAY_OFFSET).join("|")+")"),tg=class extends TI.AbstractParserWithWordBoundaryChecking{innerPattern(){return _I}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=e.groups.weekday,s=Hw.WEEKDAY_OFFSET[i];if(s===void 0)return null;let a=bI.default(t.refDate),o=!1,l=a.day();return Math.abs(s-7-l)<Math.abs(s-l)?a=a.day(s-7):Math.abs(s+7-l)<Math.abs(s-l)?a=a.day(s+7):a=a.day(s),r.start.assign("weekday",s),o?(r.start.assign("day",a.date()),r.start.assign("month",a.month()+1),r.start.assign("year",a.year())):(r.start.imply("day",a.date()),r.start.imply("month",a.month()+1),r.start.imply("year",a.year())),r}};Pl.default=tg});var Bw=x(Nl=>{"use strict";var vI=Nl&&Nl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Nl,"__esModule",{value:!0});var wI=vI(Wr()),ng=class extends wI.default{patternBetween(){return/^\s*(至|到|-|~|~|-|ー)\s*$/i}};Nl.default=ng});var Vw=x(Il=>{"use strict";var kI=Il&&Il.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Il,"__esModule",{value:!0});var SI=kI(si()),rg=class extends SI.default{patternBetween(){return/^\s*$/i}};Il.default=rg});var zw=x(dt=>{"use strict";var fi=dt&&dt.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(dt,"__esModule",{value:!0});dt.createConfiguration=dt.createCasualConfiguration=dt.parseDate=dt.parse=dt.strict=dt.casual=dt.hans=void 0;var ig=br(),DI=fi(Qu()),EI=ai(),xI=fi(Fw()),OI=fi(Uw()),CI=fi(jw()),MI=fi($w()),RI=fi(qw()),AI=fi(Gw()),PI=fi(Bw()),NI=fi(Vw());dt.hans=new ig.Chrono(sg());dt.casual=new ig.Chrono(sg());dt.strict=new ig.Chrono(ag());function II(n,t,e){return dt.casual.parse(n,t,e)}dt.parse=II;function FI(n,t,e){return dt.casual.parseDate(n,t,e)}dt.parseDate=FI;function sg(){let n=ag();return n.parsers.unshift(new xI.default),n}dt.createCasualConfiguration=sg;function ag(){let n=EI.includeCommonConfiguration({parsers:[new OI.default,new MI.default,new AI.default,new RI.default,new CI.default],refiners:[new PI.default,new NI.default]});return n.refiners=n.refiners.filter(t=>!(t instanceof DI.default)),n}dt.createConfiguration=ag});var Qw=x(Sn=>{"use strict";var Kw=Sn&&Sn.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),LI=Sn&&Sn.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),UI=Sn&&Sn.__exportStar||function(n,t){for(var e in n)e!=="default"&&!Object.prototype.hasOwnProperty.call(t,e)&&Kw(t,n,e)},YI=Sn&&Sn.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&Kw(t,n,e);return LI(t,n),t};Object.defineProperty(Sn,"__esModule",{value:!0});Sn.hans=void 0;UI(Aw(),Sn);Sn.hans=YI(zw())});var dn=x(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.parseTimeUnits=Se.TIME_UNITS_PATTERN=Se.parseYear=Se.YEAR_PATTERN=Se.parseOrdinalNumberPattern=Se.ORDINAL_NUMBER_PATTERN=Se.parseNumberPattern=Se.NUMBER_PATTERN=Se.TIME_UNIT_DICTIONARY=Se.ORDINAL_WORD_DICTIONARY=Se.INTEGER_WORD_DICTIONARY=Se.MONTH_DICTIONARY=Se.FULL_MONTH_NAME_DICTIONARY=Se.WEEKDAY_DICTIONARY=Se.REGEX_PARTS=void 0;var Oc=Ke(),jI=Ct();Se.REGEX_PARTS={leftBoundary:"([^\\p{L}\\p{N}_]|^)",rightBoundary:"(?=[^\\p{L}\\p{N}_]|$)",flags:"iu"};Se.WEEKDAY_DICTIONARY={\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435:0,\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u044F:0,\u0432\u0441\u043A:0,"\u0432\u0441\u043A.":0,\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A:1,\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A\u0430:1,\u043F\u043D:1,"\u043F\u043D.":1,\u0432\u0442\u043E\u0440\u043D\u0438\u043A:2,\u0432\u0442\u043E\u0440\u043D\u0438\u043A\u0430:2,\u0432\u0442:2,"\u0432\u0442.":2,\u0441\u0440\u0435\u0434\u0430:3,\u0441\u0440\u0435\u0434\u044B:3,\u0441\u0440\u0435\u0434\u0443:3,\u0441\u0440:3,"\u0441\u0440.":3,\u0447\u0435\u0442\u0432\u0435\u0440\u0433:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430:4,\u0447\u0442:4,"\u0447\u0442.":4,\u043F\u044F\u0442\u043D\u0438\u0446\u0430:5,\u043F\u044F\u0442\u043D\u0438\u0446\u0443:5,\u043F\u044F\u0442\u043D\u0438\u0446\u044B:5,\u043F\u0442:5,"\u043F\u0442.":5,\u0441\u0443\u0431\u0431\u043E\u0442\u0430:6,\u0441\u0443\u0431\u0431\u043E\u0442\u0443:6,\u0441\u0443\u0431\u0431\u043E\u0442\u044B:6,\u0441\u0431:6,"\u0441\u0431.":6};Se.FULL_MONTH_NAME_DICTIONARY={\u044F\u043D\u0432\u0430\u0440\u044C:1,\u044F\u043D\u0432\u0430\u0440\u044F:1,\u044F\u043D\u0432\u0430\u0440\u0435:1,\u0444\u0435\u0432\u0440\u044F\u043B\u044C:2,\u0444\u0435\u0432\u0440\u044F\u043B\u044F:2,\u0444\u0435\u0432\u0440\u044F\u043B\u0435:2,\u043C\u0430\u0440\u0442:3,\u043C\u0430\u0440\u0442\u0430:3,\u043C\u0430\u0440\u0442\u0435:3,\u0430\u043F\u0440\u0435\u043B\u044C:4,\u0430\u043F\u0440\u0435\u043B\u044F:4,\u0430\u043F\u0440\u0435\u043B\u0435:4,\u043C\u0430\u0439:5,\u043C\u0430\u044F:5,\u043C\u0430\u0435:5,\u0438\u044E\u043D\u044C:6,\u0438\u044E\u043D\u044F:6,\u0438\u044E\u043D\u0435:6,\u0438\u044E\u043B\u044C:7,\u0438\u044E\u043B\u044F:7,\u0438\u044E\u043B\u0435:7,\u0430\u0432\u0433\u0443\u0441\u0442:8,\u0430\u0432\u0433\u0443\u0441\u0442\u0430:8,\u0430\u0432\u0433\u0443\u0441\u0442\u0435:8,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044C:9,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044F:9,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u0435:9,\u043E\u043A\u0442\u044F\u0431\u0440\u044C:10,\u043E\u043A\u0442\u044F\u0431\u0440\u044F:10,\u043E\u043A\u0442\u044F\u0431\u0440\u0435:10,\u043D\u043E\u044F\u0431\u0440\u044C:11,\u043D\u043E\u044F\u0431\u0440\u044F:11,\u043D\u043E\u044F\u0431\u0440\u0435:11,\u0434\u0435\u043A\u0430\u0431\u0440\u044C:12,\u0434\u0435\u043A\u0430\u0431\u0440\u044F:12,\u0434\u0435\u043A\u0430\u0431\u0440\u0435:12};Se.MONTH_DICTIONARY=Object.assign(Object.assign({},Se.FULL_MONTH_NAME_DICTIONARY),{\u044F\u043D\u0432:1,"\u044F\u043D\u0432.":1,\u0444\u0435\u0432:2,"\u0444\u0435\u0432.":2,\u043C\u0430\u0440:3,"\u043C\u0430\u0440.":3,\u0430\u043F\u0440:4,"\u0430\u043F\u0440.":4,\u0430\u0432\u0433:8,"\u0430\u0432\u0433.":8,\u0441\u0435\u043D:9,"\u0441\u0435\u043D.":9,\u043E\u043A\u0442:10,"\u043E\u043A\u0442.":10,\u043D\u043E\u044F:11,"\u043D\u043E\u044F.":11,\u0434\u0435\u043A:12,"\u0434\u0435\u043A.":12});Se.INTEGER_WORD_DICTIONARY={\u043E\u0434\u0438\u043D:1,\u043E\u0434\u043D\u0430:1,\u043E\u0434\u043D\u043E\u0439:1,\u043E\u0434\u043D\u0443:1,\u0434\u0432\u0435:2,\u0434\u0432\u0430:2,\u0434\u0432\u0443\u0445:2,\u0442\u0440\u0438:3,\u0442\u0440\u0435\u0445:3,\u0442\u0440\u0451\u0445:3,\u0447\u0435\u0442\u044B\u0440\u0435:4,\u0447\u0435\u0442\u044B\u0440\u0435\u0445:4,\u0447\u0435\u0442\u044B\u0440\u0451\u0445:4,\u043F\u044F\u0442\u044C:5,\u043F\u044F\u0442\u0438:5,\u0448\u0435\u0441\u0442\u044C:6,\u0448\u0435\u0441\u0442\u0438:6,\u0441\u0435\u043C\u044C:7,\u0441\u0435\u043C\u0438:7,\u0432\u043E\u0441\u0435\u043C\u044C:8,\u0432\u043E\u0441\u0435\u043C\u044C\u043C\u0438:8,\u0434\u0435\u0432\u044F\u0442\u044C:9,\u0434\u0435\u0432\u044F\u0442\u0438:9,\u0434\u0435\u0441\u044F\u0442\u044C:10,\u0434\u0435\u0441\u044F\u0442\u0438:10,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u044C:11,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u0438:11,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u044C:12,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u0438:12};Se.ORDINAL_WORD_DICTIONARY={\u043F\u0435\u0440\u0432\u043E\u0435:1,\u043F\u0435\u0440\u0432\u043E\u0433\u043E:1,\u0432\u0442\u043E\u0440\u043E\u0435:2,\u0432\u0442\u043E\u0440\u043E\u0433\u043E:2,\u0442\u0440\u0435\u0442\u044C\u0435:3,\u0442\u0440\u0435\u0442\u044C\u0435\u0433\u043E:3,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E:4,\u043F\u044F\u0442\u043E\u0435:5,\u043F\u044F\u0442\u043E\u0433\u043E:5,\u0448\u0435\u0441\u0442\u043E\u0435:6,\u0448\u0435\u0441\u0442\u043E\u0433\u043E:6,\u0441\u0435\u0434\u044C\u043C\u043E\u0435:7,\u0441\u0435\u0434\u044C\u043C\u043E\u0433\u043E:7,\u0432\u043E\u0441\u044C\u043C\u043E\u0435:8,\u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E:8,\u0434\u0435\u0432\u044F\u0442\u043E\u0435:9,\u0434\u0435\u0432\u044F\u0442\u043E\u0433\u043E:9,\u0434\u0435\u0441\u044F\u0442\u043E\u0435:10,\u0434\u0435\u0441\u044F\u0442\u043E\u0433\u043E:10,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:11,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:11,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:12,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:12,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:13,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:13,\u0447\u0435\u0442\u044B\u0440\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:14,\u0447\u0435\u0442\u044B\u0440\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:14,\u043F\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:15,\u043F\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:15,\u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:16,\u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:16,\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:17,\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:17,\u0432\u043E\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:18,\u0432\u043E\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:18,\u0434\u0435\u0432\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:19,\u0434\u0435\u0432\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:19,\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043E\u0435:20,\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:20,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435":21,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0433\u043E":21,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u0442\u043E\u0440\u043E\u0435":22,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u0442\u043E\u0440\u043E\u0433\u043E":22,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u0435":23,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u0435\u0433\u043E":23,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435":24,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E":24,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u044F\u0442\u043E\u0435":25,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u044F\u0442\u043E\u0433\u043E":25,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0448\u0435\u0441\u0442\u043E\u0435":26,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0448\u0435\u0441\u0442\u043E\u0433\u043E":26,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0441\u0435\u0434\u044C\u043C\u043E\u0435":27,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0441\u0435\u0434\u044C\u043C\u043E\u0433\u043E":27,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0435":28,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E":28,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0434\u0435\u0432\u044F\u0442\u043E\u0435":29,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0434\u0435\u0432\u044F\u0442\u043E\u0433\u043E":29,\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u043E\u0435:30,\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u043E\u0433\u043E:30,"\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435":31,"\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0433\u043E":31};Se.TIME_UNIT_DICTIONARY={\u0441\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u044B:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0443:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0438:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0443:"second",\u043C\u0438\u043D:"minute",\u043C\u0438\u043D\u0443\u0442\u0430:"minute",\u043C\u0438\u043D\u0443\u0442:"minute",\u043C\u0438\u043D\u0443\u0442\u044B:"minute",\u043C\u0438\u043D\u0443\u0442\u0443:"minute",\u043C\u0438\u043D\u0443\u0442\u043E\u043A:"minute",\u043C\u0438\u043D\u0443\u0442\u043A\u0438:"minute",\u043C\u0438\u043D\u0443\u0442\u043A\u0443:"minute",\u0447\u0430\u0441:"hour",\u0447\u0430\u0441\u043E\u0432:"hour",\u0447\u0430\u0441\u0430:"hour",\u0447\u0430\u0441\u0443:"hour",\u0447\u0430\u0441\u0438\u043A\u043E\u0432:"hour",\u0447\u0430\u0441\u0438\u043A\u0430:"hour",\u0447\u0430\u0441\u0438\u043A\u0435:"hour",\u0447\u0430\u0441\u0438\u043A:"hour",\u0434\u0435\u043D\u044C:"d",\u0434\u043D\u044F:"d",\u0434\u043D\u0435\u0439:"d",\u0441\u0443\u0442\u043E\u043A:"d",\u0441\u0443\u0442\u043A\u0438:"d",\u043D\u0435\u0434\u0435\u043B\u044F:"week",\u043D\u0435\u0434\u0435\u043B\u0435:"week",\u043D\u0435\u0434\u0435\u043B\u0438:"week",\u043D\u0435\u0434\u0435\u043B\u044E:"week",\u043D\u0435\u0434\u0435\u043B\u044C:"week",\u043D\u0435\u0434\u0435\u043B\u044C\u043A\u0435:"week",\u043D\u0435\u0434\u0435\u043B\u044C\u043A\u0438:"week",\u043D\u0435\u0434\u0435\u043B\u0435\u043A:"week",\u043C\u0435\u0441\u044F\u0446:"month",\u043C\u0435\u0441\u044F\u0446\u0435:"month",\u043C\u0435\u0441\u044F\u0446\u0435\u0432:"month",\u043C\u0435\u0441\u044F\u0446\u0430:"month",\u043A\u0432\u0430\u0440\u0442\u0430\u043B:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0435:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u043E\u0432:"quarter",\u0433\u043E\u0434:"year",\u0433\u043E\u0434\u0430:"year",\u0433\u043E\u0434\u0443:"year",\u0433\u043E\u0434\u043E\u0432:"year",\u043B\u0435\u0442:"year",\u0433\u043E\u0434\u0438\u043A:"year",\u0433\u043E\u0434\u0438\u043A\u0430:"year",\u0433\u043E\u0434\u0438\u043A\u043E\u0432:"year"};Se.NUMBER_PATTERN=`(?:${Oc.matchAnyPattern(Se.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|\u043F\u043E\u043B|\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E|\u043F\u0430\u0440(?:\u044B|\u0443)|\\s{0,3})`;function Zw(n){let t=n.toLowerCase();return Se.INTEGER_WORD_DICTIONARY[t]!==void 0?Se.INTEGER_WORD_DICTIONARY[t]:t.match(/несколько/)?3:t.match(/пол/)?.5:t.match(/пар/)?2:t===""?1:parseFloat(t)}Se.parseNumberPattern=Zw;Se.ORDINAL_NUMBER_PATTERN=`(?:${Oc.matchAnyPattern(Se.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:\u0433\u043E|\u043E\u0433\u043E|\u0435|\u043E\u0435)?)`;function WI(n){let t=n.toLowerCase();return Se.ORDINAL_WORD_DICTIONARY[t]!==void 0?Se.ORDINAL_WORD_DICTIONARY[t]:(t=t.replace(/(?:st|nd|rd|th)$/i,""),parseInt(t))}Se.parseOrdinalNumberPattern=WI;var og="(?:\\s+(?:\u0433\u043E\u0434\u0443|\u0433\u043E\u0434\u0430|\u0433\u043E\u0434|\u0433|\u0433.))?";Se.YEAR_PATTERN=`(?:[1-9][0-9]{0,3}${og}\\s*(?:\u043D.\u044D.|\u0434\u043E \u043D.\u044D.|\u043D. \u044D.|\u0434\u043E \u043D. \u044D.)|[1-2][0-9]{3}${og}|[5-9][0-9]${og})`;function $I(n){if(/(год|года|г|г.)/i.test(n)&&(n=n.replace(/(год|года|г|г.)/i,"")),/(до н.э.|до н. э.)/i.test(n))return n=n.replace(/(до н.э.|до н. э.)/i,""),-parseInt(n);if(/(н. э.|н.э.)/i.test(n))return n=n.replace(/(н. э.|н.э.)/i,""),parseInt(n);let t=parseInt(n);return jI.findMostLikelyADYear(t)}Se.parseYear=$I;var Jw=`(${Se.NUMBER_PATTERN})\\s{0,3}(${Oc.matchAnyPattern(Se.TIME_UNIT_DICTIONARY)})`,Xw=new RegExp(Jw,"i");Se.TIME_UNITS_PATTERN=Oc.repeatedTimeunitPattern("(?:(?:\u043E\u043A\u043E\u043B\u043E|\u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E)\\s{0,3})?",Jw);function qI(n){let t={},e=n,r=Xw.exec(e);for(;r;)HI(t,r),e=e.substring(r[0].length).trim(),r=Xw.exec(e);return t}Se.parseTimeUnits=qI;function HI(n,t){let e=Zw(t[1]),r=Se.TIME_UNIT_DICTIONARY[t[2].toLowerCase()];n[r]=e}});var tk=x(ug=>{"use strict";Object.defineProperty(ug,"__esModule",{value:!0});var Fl=dn(),GI=nt(),BI=re(),ek=`(?:(?:\u043E\u043A\u043E\u043B\u043E|\u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E)\\s*(?:~\\s*)?)?(${Fl.TIME_UNITS_PATTERN})${Fl.REGEX_PARTS.rightBoundary}`,VI=new RegExp(`(?:\u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435|\u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0438)\\s*${ek}`,Fl.REGEX_PARTS.flags),zI=new RegExp(ek,"i"),lg=class extends BI.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Fl.REGEX_PARTS.leftBoundary}innerPattern(t){return t.option.forwardDate?zI:VI}innerExtract(t,e){let r=Fl.parseTimeUnits(e[1]);return GI.ParsingComponents.createRelativeFromReference(t.reference,r)}};ug.default=lg});var ak=x(dg=>{"use strict";Object.defineProperty(dg,"__esModule",{value:!0});var KI=Ct(),Ll=dn(),sk=dn(),Cc=dn(),QI=Ke(),XI=re(),ZI=new RegExp(`(?:\u0441)?\\s*(${Cc.ORDINAL_NUMBER_PATTERN})(?:\\s{0,3}(?:\u043F\u043E|-|\u2013|\u0434\u043E)?\\s{0,3}(${Cc.ORDINAL_NUMBER_PATTERN}))?(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})(${QI.matchAnyPattern(Ll.MONTH_DICTIONARY)})(?:(?:-|\\/|,?\\s{0,3})(${sk.YEAR_PATTERN}(?![^\\s]\\d)))?${Ll.REGEX_PARTS.rightBoundary}`,Ll.REGEX_PARTS.flags),nk=1,rk=2,JI=3,ik=4,cg=class extends XI.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Ll.REGEX_PARTS.leftBoundary}innerPattern(){return ZI}innerExtract(t,e){let r=t.createParsingResult(e.index,e[0]),i=Ll.MONTH_DICTIONARY[e[JI].toLowerCase()],s=Cc.parseOrdinalNumberPattern(e[nk]);if(s>31)return e.index=e.index+e[nk].length,null;if(r.start.assign("month",i),r.start.assign("day",s),e[ik]){let a=sk.parseYear(e[ik]);r.start.assign("year",a)}else{let a=KI.findYearClosestToRef(t.refDate,s,i);r.start.imply("year",a)}if(e[rk]){let a=Cc.parseOrdinalNumberPattern(e[rk]);r.end=r.start.clone(),r.end.assign("day",a)}return r}};dg.default=cg});var uk=x(pg=>{"use strict";Object.defineProperty(pg,"__esModule",{value:!0});var Ul=dn(),eF=Ct(),tF=Ke(),lk=dn(),nF=re(),rF=new RegExp(`((?:\u0432)\\s*)?(${tF.matchAnyPattern(Ul.MONTH_DICTIONARY)})\\s*(?:[,-]?\\s*(${lk.YEAR_PATTERN})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,Ul.REGEX_PARTS.flags),iF=2,ok=3,fg=class extends nF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Ul.REGEX_PARTS.leftBoundary}innerPattern(){return rF}innerExtract(t,e){let r=e[iF].toLowerCase();if(e[0].length<=3&&!Ul.FULL_MONTH_NAME_DICTIONARY[r])return null;let i=t.createParsingResult(e.index,e.index+e[0].length);i.start.imply("day",1);let s=Ul.MONTH_DICTIONARY[r];if(i.start.assign("month",s),e[ok]){let a=lk.parseYear(e[ok]);i.start.assign("year",a)}else{let a=eF.findYearClosestToRef(t.refDate,1,s);i.start.imply("year",a)}return i}};pg.default=fg});var dk=x(hg=>{"use strict";Object.defineProperty(hg,"__esModule",{value:!0});var Mc=ht(),sF=Ts(),ck=dn(),mg=class extends sF.AbstractTimeExpressionParser{constructor(t){super(t)}patternFlags(){return ck.REGEX_PARTS.flags}primaryPatternLeftBoundary(){return"(^|\\s|T|(?:[^\\p{L}\\p{N}_]))"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|\u0434\u043E|\u0438|\u043F\u043E|\\?)\\s*"}primaryPrefix(){return"(?:(?:\u0432|\u0441)\\s*)??"}primarySuffix(){return`(?:\\s*(?:\u0443\u0442\u0440\u0430|\u0432\u0435\u0447\u0435\u0440\u0430|\u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0434\u043D\u044F))?(?!\\/)${ck.REGEX_PARTS.rightBoundary}`}extractPrimaryTimeComponents(t,e){let r=super.extractPrimaryTimeComponents(t,e);if(r){if(e[0].endsWith("\u0432\u0435\u0447\u0435\u0440\u0430")){let i=r.get("hour");i>=6&&i<12?(r.assign("hour",r.get("hour")+12),r.assign("meridiem",Mc.Meridiem.PM)):i<6&&r.assign("meridiem",Mc.Meridiem.AM)}if(e[0].endsWith("\u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0434\u043D\u044F")){r.assign("meridiem",Mc.Meridiem.PM);let i=r.get("hour");i>=0&&i<=6&&r.assign("hour",r.get("hour")+12)}e[0].endsWith("\u0443\u0442\u0440\u0430")&&(r.assign("meridiem",Mc.Meridiem.AM),r.get("hour")<12&&r.assign("hour",r.get("hour")))}return r}};hg.default=mg});var fk=x(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0});var Rc=dn(),aF=nt(),oF=re(),lF=Hn(),uF=new RegExp(`(${Rc.TIME_UNITS_PATTERN})\\s{0,5}\u043D\u0430\u0437\u0430\u0434(?=(?:\\W|$))`,Rc.REGEX_PARTS.flags),gg=class extends oF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Rc.REGEX_PARTS.leftBoundary}innerPattern(){return uF}innerExtract(t,e){let r=Rc.parseTimeUnits(e[1]),i=lF.reverseTimeUnits(r);return aF.ParsingComponents.createRelativeFromReference(t.reference,i)}};yg.default=gg});var pk=x(Yl=>{"use strict";var cF=Yl&&Yl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Yl,"__esModule",{value:!0});var dF=cF(Wr()),bg=class extends dF.default{patternBetween(){return/^\s*(и до|и по|до|по|-)\s*$/i}};Yl.default=bg});var mk=x(jl=>{"use strict";var fF=jl&&jl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(jl,"__esModule",{value:!0});var pF=fF(si()),Tg=class extends pF.default{patternBetween(){return new RegExp("^\\s*(T|\u0432|,|-)?\\s*$")}};jl.default=Tg});var hk=x(pi=>{"use strict";var mF=pi&&pi.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),hF=pi&&pi.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),gF=pi&&pi.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&mF(t,n,e);return hF(t,n),t};Object.defineProperty(pi,"__esModule",{value:!0});var yF=re(),Wl=gF(li()),_g=dn(),bF=new RegExp(`(?:\u0441|\u0441\u043E)?\\s*(\u0441\u0435\u0433\u043E\u0434\u043D\u044F|\u0432\u0447\u0435\u0440\u0430|\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430)${_g.REGEX_PARTS.rightBoundary}`,_g.REGEX_PARTS.flags),vg=class extends yF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return _g.REGEX_PARTS.leftBoundary}innerPattern(t){return bF}innerExtract(t,e){let r=e[1].toLowerCase(),i=t.createParsingComponents();switch(r){case"\u0441\u0435\u0433\u043E\u0434\u043D\u044F":return Wl.today(t.reference);case"\u0432\u0447\u0435\u0440\u0430":return Wl.yesterday(t.reference);case"\u0437\u0430\u0432\u0442\u0440\u0430":return Wl.tomorrow(t.reference);case"\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430":return Wl.theDayAfter(t.reference,2);case"\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430":return Wl.theDayBefore(t.reference,2)}return i}};pi.default=vg});var gk=x(kr=>{"use strict";var TF=kr&&kr.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),_F=kr&&kr.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),vF=kr&&kr.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&TF(t,n,e);return _F(t,n),t},wF=kr&&kr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(kr,"__esModule",{value:!0});var kF=re(),xs=vF(li()),SF=qn(),DF=wF(Ue()),wg=dn(),EF=new RegExp(`(\u0441\u0435\u0439\u0447\u0430\u0441|\u043F\u0440\u043E\u0448\u043B\u044B\u043C\\s*\u0432\u0435\u0447\u0435\u0440\u043E\u043C|\u043F\u0440\u043E\u0448\u043B\u043E\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u0441\u0435\u0433\u043E\u0434\u043D\u044F\\s*\u043D\u043E\u0447\u044C\u044E|\u044D\u0442\u043E\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u043D\u043E\u0447\u044C\u044E|\u044D\u0442\u0438\u043C \u0443\u0442\u0440\u043E\u043C|\u0443\u0442\u0440\u043E\u043C|\u0443\u0442\u0440\u0430|\u0432\\s*\u043F\u043E\u043B\u0434\u0435\u043D\u044C|\u0432\u0435\u0447\u0435\u0440\u043E\u043C|\u0432\u0435\u0447\u0435\u0440\u0430|\u0432\\s*\u043F\u043E\u043B\u043D\u043E\u0447\u044C)${wg.REGEX_PARTS.rightBoundary}`,wg.REGEX_PARTS.flags),kg=class extends kF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return wg.REGEX_PARTS.leftBoundary}innerPattern(){return EF}innerExtract(t,e){let r=DF.default(t.refDate),i=e[0].toLowerCase(),s=t.createParsingComponents();if(i==="\u0441\u0435\u0439\u0447\u0430\u0441")return xs.now(t.reference);if(i==="\u0432\u0435\u0447\u0435\u0440\u043E\u043C"||i==="\u0432\u0435\u0447\u0435\u0440\u0430")return xs.evening(t.reference);if(i.endsWith("\u0443\u0442\u0440\u043E\u043C")||i.endsWith("\u0443\u0442\u0440\u0430"))return xs.morning(t.reference);if(i.match(/в\s*полдень/))return xs.noon(t.reference);if(i.match(/прошлой\s*ночью/))return xs.lastNight(t.reference);if(i.match(/прошлым\s*вечером/))return xs.yesterdayEvening(t.reference);if(i.match(/следующей\s*ночью/)){let a=r.hour()<22?1:2;r=r.add(a,"day"),SF.assignSimilarDate(s,r),s.imply("hour",0)}return i.match(/в\s*полночь/)||i.endsWith("\u043D\u043E\u0447\u044C\u044E")?xs.midnight(t.reference):s}};kr.default=kg});var yk=x(Dg=>{"use strict";Object.defineProperty(Dg,"__esModule",{value:!0});var $l=dn(),xF=Ke(),OF=re(),CF=vs(),MF=new RegExp(`(?:(?:,|\\(|\uFF08)\\s*)?(?:\u0432\\s*?)?(?:(\u044D\u0442\u0443|\u044D\u0442\u043E\u0442|\u043F\u0440\u043E\u0448\u043B\u044B\u0439|\u043F\u0440\u043E\u0448\u043B\u0443\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E)\\s*)?(${xF.matchAnyPattern($l.WEEKDAY_DICTIONARY)})(?:\\s*(?:,|\\)|\uFF09))?(?:\\s*\u043D\u0430\\s*(\u044D\u0442\u043E\u0439|\u043F\u0440\u043E\u0448\u043B\u043E\u0439|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439)\\s*\u043D\u0435\u0434\u0435\u043B\u0435)?${$l.REGEX_PARTS.rightBoundary}`,$l.REGEX_PARTS.flags),RF=1,AF=2,PF=3,Sg=class extends OF.AbstractParserWithWordBoundaryChecking{innerPattern(){return MF}patternLeftBoundary(){return $l.REGEX_PARTS.leftBoundary}innerExtract(t,e){let r=e[AF].toLowerCase(),i=$l.WEEKDAY_DICTIONARY[r],s=e[RF],a=e[PF],o=s||a;o=o||"",o=o.toLowerCase();let l=null;o=="\u043F\u0440\u043E\u0448\u043B\u044B\u0439"||o=="\u043F\u0440\u043E\u0448\u043B\u0443\u044E"||o=="\u043F\u0440\u043E\u0448\u043B\u043E\u0439"?l="last":o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E"?l="next":(o=="\u044D\u0442\u043E\u0442"||o=="\u044D\u0442\u0443"||o=="\u044D\u0442\u043E\u0439")&&(l="this");let u=CF.toDayJSWeekday(t.refDate,i,l);return t.createParsingComponents().assign("weekday",i).imply("day",u.date()).imply("month",u.month()+1).imply("year",u.year())}};Dg.default=Sg});var Tk=x(Hl=>{"use strict";var NF=Hl&&Hl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Hl,"__esModule",{value:!0});var ql=dn(),bk=nt(),IF=NF(Ue()),FF=re(),LF=Ke(),UF=new RegExp(`(\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C|\u043D\u0430 \u043F\u0440\u043E\u0448\u043B\u043E\u0439|\u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439|\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C|\u043D\u0430 \u044D\u0442\u043E\u0439|\u0432 \u044D\u0442\u043E\u043C)\\s*(${LF.matchAnyPattern(ql.TIME_UNIT_DICTIONARY)})(?=\\s*)${ql.REGEX_PARTS.rightBoundary}`,ql.REGEX_PARTS.flags),YF=1,jF=2,Eg=class extends FF.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return ql.REGEX_PARTS.leftBoundary}innerPattern(){return UF}innerExtract(t,e){let r=e[YF].toLowerCase(),i=e[jF].toLowerCase(),s=ql.TIME_UNIT_DICTIONARY[i];if(r=="\u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439"||r=="\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C"){let l={};return l[s]=1,bk.ParsingComponents.createRelativeFromReference(t.reference,l)}if(r=="\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C"||r=="\u043D\u0430 \u043F\u0440\u043E\u0448\u043B\u043E\u0439"){let l={};return l[s]=-1,bk.ParsingComponents.createRelativeFromReference(t.reference,l)}let a=t.createParsingComponents(),o=IF.default(t.reference.instant);return s.match(/week/i)?(o=o.add(-o.get("d"),"d"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.imply("year",o.year())):s.match(/month/i)?(o=o.add(-o.date()+1,"d"),a.imply("day",o.date()),a.assign("year",o.year()),a.assign("month",o.month()+1)):s.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),a.imply("day",o.date()),a.imply("month",o.month()+1),a.assign("year",o.year())),a}};Hl.default=Eg});var _k=x(Og=>{"use strict";Object.defineProperty(Og,"__esModule",{value:!0});var Gl=dn(),WF=nt(),$F=re(),qF=Hn(),HF=new RegExp(`(\u044D\u0442\u0438|\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435|\u043F\u0440\u043E\u0448\u043B\u044B\u0435|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435|\u043F\u043E\u0441\u043B\u0435|\u0447\u0435\u0440\u0435\u0437|\\+|-)\\s*(${Gl.TIME_UNITS_PATTERN})${Gl.REGEX_PARTS.rightBoundary}`,Gl.REGEX_PARTS.flags),xg=class extends $F.AbstractParserWithWordBoundaryChecking{patternLeftBoundary(){return Gl.REGEX_PARTS.leftBoundary}innerPattern(){return HF}innerExtract(t,e){let r=e[1].toLowerCase(),i=Gl.parseTimeUnits(e[2]);switch(r){case"\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435":case"\u043F\u0440\u043E\u0448\u043B\u044B\u0435":case"-":i=qF.reverseTimeUnits(i);break}return WF.ParsingComponents.createRelativeFromReference(t.reference,i)}};Og.default=xg});var kk=x(St=>{"use strict";var Dn=St&&St.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(St,"__esModule",{value:!0});St.createConfiguration=St.createCasualConfiguration=St.parseDate=St.parse=St.strict=St.casual=void 0;var GF=Dn(tk()),BF=Dn(ak()),VF=Dn(uk()),zF=Dn(dk()),KF=Dn(fk()),QF=Dn(pk()),XF=Dn(mk()),ZF=ai(),JF=Dn(hk()),eL=Dn(gk()),tL=Dn(yk()),nL=Dn(Tk()),vk=br(),rL=Dn(ws()),iL=Dn(_k());St.casual=new vk.Chrono(wk());St.strict=new vk.Chrono(Cg(!0));function sL(n,t,e){return St.casual.parse(n,t,e)}St.parse=sL;function aL(n,t,e){return St.casual.parseDate(n,t,e)}St.parseDate=aL;function wk(){let n=Cg(!1);return n.parsers.unshift(new JF.default),n.parsers.unshift(new eL.default),n.parsers.unshift(new VF.default),n.parsers.unshift(new nL.default),n.parsers.unshift(new iL.default),n}St.createCasualConfiguration=wk;function Cg(n=!0){return ZF.includeCommonConfiguration({parsers:[new rL.default(!0),new GF.default,new BF.default,new tL.default,new zF.default(n),new KF.default],refiners:[new XF.default,new QF.default]},n)}St.createConfiguration=Cg});var ht=x(Re=>{"use strict";var oL=Re&&Re.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),lL=Re&&Re.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),ji=Re&&Re.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&oL(t,n,e);return lL(t,n),t};Object.defineProperty(Re,"__esModule",{value:!0});Re.parseDate=Re.parse=Re.casual=Re.strict=Re.ru=Re.zh=Re.nl=Re.pt=Re.ja=Re.fr=Re.de=Re.Meridiem=Re.Chrono=Re.en=void 0;var Mg=ji(Vp());Re.en=Mg;var uL=br();Object.defineProperty(Re,"Chrono",{enumerable:!0,get:function(){return uL.Chrono}});var cL;(function(n){n[n.AM=0]="AM",n[n.PM=1]="PM"})(cL=Re.Meridiem||(Re.Meridiem={}));var dL=ji(A_());Re.de=dL;var fL=ji(ov());Re.fr=fL;var pL=ji(gv());Re.ja=pL;var mL=ji(Av());Re.pt=mL;var hL=ji(gw());Re.nl=hL;var gL=ji(Qw());Re.zh=gL;var yL=ji(kk());Re.ru=yL;Re.strict=Mg.strict;Re.casual=Mg.casual;function bL(n,t,e){return Re.casual.parse(n,t,e)}Re.parse=bL;function TL(n,t,e){return Re.casual.parseDate(n,t,e)}Re.parseDate=TL});var tn,Rg=ee(()=>{"use strict";tn=class{constructor(t,e){this.start=t,this.end=e,e.isBefore(t)&&(this.start=e,this.end=t),this.start=this.start.startOf("day"),this.end=this.end.startOf("day")}static buildRelative(t){let e=t==="week"?"isoWeek":t;return new tn(window.moment().startOf(e).startOf("day"),window.moment().endOf(e).startOf("day"))}static buildInvalid(){return new tn(window.moment.invalid(),window.moment.invalid())}isValid(){return this.start.isValid()&&this.end.isValid()}moveToPrevious(t){let e=window.moment.duration(1,t);this.start.subtract(e),this.end.subtract(e),(t==="month"||t==="quarter")&&(this.end=this.end.endOf(t).startOf("day"))}moveToNext(t){let e=window.moment.duration(1,t);this.start.add(e),this.end.add(e),(t==="month"||t==="quarter")&&(this.end=this.end.endOf(t).startOf("day"))}}});var Ac,En,Ag=ee(()=>{"use strict";Ac=qo(ht());Rg();En=class{static parseDate(t,e=!1){return window.moment(Ac.parseDate(t,void 0,{forwardDate:e})).startOf("day")}static parseDateRange(t,e=!1){let r=[En.parseRelativeDateRange,En.parseNumberedDateRange,En.parseAbsoluteDateRange];for(let i of r){let s=i(t,e);if(s.isValid())return s}return tn.buildInvalid()}static parseAbsoluteDateRange(t,e){let r=Ac.parse(t,void 0,{forwardDate:e});if(r.length===0)return tn.buildInvalid();let i=r[0].start,s=r[1]&&r[1].start?r[1].start:i,a=window.moment(i.date()),o=window.moment(s.date());return new tn(a,o)}static parseRelativeDateRange(t,e){let r=/(last|this|next) (week|month|quarter|year)/,i=t.match(r);if(i&&i.length===3){let s=i[1],a=i[2],o=tn.buildRelative(a);switch(s){case"last":o.moveToPrevious(a);break;case"next":o.moveToNext(a);break}return o}return tn.buildInvalid()}static parseNumberedDateRange(t,e){let r=[[/^\s*[0-9]{4}\s*$/,"YYYY","year"],[/^\s*[0-9]{4}-Q[1-4]\s*$/,"YYYY-Q","quarter"],[/^\s*[0-9]{4}-[0-9]{2}\s*$/,"YYYY-MM","month"],[/^\s*[0-9]{4}-W[0-9]{2}\s*$/,"YYYY-WW","isoWeek"]];for(let[i,s,a]of r){let o=t.match(i);if(o){let l=o[0].trim();return new tn(window.moment(l,s).startOf(a),window.moment(l,s).endOf(a))}}return tn.buildInvalid()}}});function Pc(n){for(let[t,e]of Object.entries(_L))n=n.replace(RegExp(`\\b${t}\\s`,"i"),e);return n}var _L,Pg=ee(()=>{"use strict";_L={td:"today",tm:"tomorrow",yd:"yesterday",tw:"this week",nw:"next week",weekend:"sat",we:"sat"}});function Qn(n,t){return n!==null&&t===null?-1:n===null&&t!==null?1:n!==null&&t!==null?n.isValid()&&!t.isValid()?1:!n.isValid()&&t.isValid()?-1:n.isAfter(t)?1:n.isBefore(t)?-1:0:0}function vL(n,t,e=void 0){if(!t)return`<i>no ${n} date</i>`;let r=Ng.parseDate(t,e,{forwardDate:e!=null});return r!==null?window.moment(r).format("YYYY-MM-DD"):`<i>invalid ${n} date</i>`}function Sk(n,t,e){return vL(n,t,e?new Date:void 0)}function Os(n,t){let e=null,r=Ng.parseDate(n,new Date,{forwardDate:t});return r!==null&&(e=window.moment(r)),e}var Ng,Cs=ee(()=>{"use strict";Ng=qo(ht())});var Xn,Nc=ee(()=>{"use strict";Cs();Xn=class{constructor({startDate:t=null,scheduledDate:e=null,dueDate:r=null}){this.startDate=t!=null?t:null,this.scheduledDate=e!=null?e:null,this.dueDate=r!=null?r:null,this.referenceDate=this.getReferenceDate()}getReferenceDate(){return this.dueDate?window.moment(this.dueDate):this.scheduledDate?window.moment(this.scheduledDate):this.startDate?window.moment(this.startDate):null}isIdenticalTo(t){return!(Qn(this.startDate,t.startDate)!==0||Qn(this.scheduledDate,t.scheduledDate)!==0||Qn(this.dueDate,t.dueDate)!==0)}next(t,e=!1){if(this.referenceDate===null)return new Xn({startDate:null,scheduledDate:null,dueDate:null});let r=this.startDate!==null,i=this.dueDate!==null,a=e&&(r||i),o=this.nextOccurrenceDate(this.startDate,t),l=a?null:this.nextOccurrenceDate(this.scheduledDate,t),u=this.nextOccurrenceDate(this.dueDate,t);return new Xn({startDate:o,scheduledDate:l,dueDate:u})}nextOccurrenceDate(t,e){if(t===null)return null;let r=window.moment.duration(t.diff(this.referenceDate)),i=window.moment(e);return i.add(Math.round(r.asDays()),"days"),i}}});var Ic,ft,Ms=ee(()=>{Ic=["MO","TU","WE","TH","FR","SA","SU"],ft=function(){function n(t,e){if(e===0)throw new Error("Can't create weekday with n == 0");this.weekday=t,this.n=e}return n.fromStr=function(t){return new n(Ic.indexOf(t))},n.prototype.nth=function(t){return this.n===t?this:new n(this.weekday,t)},n.prototype.equals=function(t){return this.weekday===t.weekday&&this.n===t.n},n.prototype.toString=function(){var t=Ic[this.weekday];return this.n&&(t=(this.n>0?"+":"")+String(this.n)+t),t},n.prototype.getJsWeekday=function(){return this.weekday===6?0:this.weekday+1},n}()});function Rs(n,t,e){e===void 0&&(e=" ");var r=String(n);return t=t>>0,r.length>t?String(r):(t=t-r.length,t>e.length&&(e+=Ne(e,t/e.length)),e.slice(0,t)+String(r))}var Je,xn,Ig,At,Zn,Ne,Dk,Ek,Wt,Fc,On,st,Ie,nn=ee(()=>{Ms();Je=function(n){return n!=null},xn=function(n){return typeof n=="number"},Ig=function(n){return typeof n=="string"&&Ic.includes(n)},At=Array.isArray,Zn=function(n,t){t===void 0&&(t=n),arguments.length===1&&(t=n,n=0);for(var e=[],r=n;r<t;r++)e.push(r);return e},Ne=function(n,t){var e=0,r=[];if(At(n))for(;e<t;e++)r[e]=[].concat(n);else for(;e<t;e++)r[e]=n;return r},Dk=function(n){return At(n)?n:[n]};Ek=function(n,t,e){var r=n.split(t);return e?r.slice(0,e).concat([r.slice(e).join(t)]):r},Wt=function(n,t){var e=n%t;return e*t<0?e+t:e},Fc=function(n,t){return{div:Math.floor(n/t),mod:Wt(n,t)}},On=function(n){return!Je(n)||n.length===0},st=function(n){return!On(n)},Ie=function(n,t){return st(n)&&n.indexOf(t)!==-1}});var Hr,wL,Ck,Lc,Mk,kL,Ia,Fg,As,xk,SL,Bl,Uc,DL,mi,Lg,Yc,jc,Ug,hi,Fa,Vl,Ok,Rk,$t=ee(()=>{nn();Hr=function(n,t,e,r,i,s){return r===void 0&&(r=0),i===void 0&&(i=0),s===void 0&&(s=0),new Date(Date.UTC(n,t-1,e,r,i,s))},wL=[31,28,31,30,31,30,31,31,30,31,30,31],Ck=1e3*60*60*24,Lc=9999,Mk=Hr(1970,1,1),kL=[6,0,1,2,3,4,5],Ia=function(n){return n%4===0&&n%100!==0||n%400===0},Fg=function(n){return n instanceof Date},As=function(n){return Fg(n)&&!isNaN(n.getTime())},xk=function(n){return n.getTimezoneOffset()*60*1e3},SL=function(n,t){var e=n.getTime()-xk(n),r=t.getTime()-xk(t),i=e-r;return Math.round(i/Ck)},Bl=function(n){return SL(n,Mk)},Uc=function(n){return new Date(Mk.getTime()+n*Ck)},DL=function(n){var t=n.getUTCMonth();return t===1&&Ia(n.getUTCFullYear())?29:wL[t]},mi=function(n){return kL[n.getUTCDay()]},Lg=function(n,t){var e=Hr(n,t+1,1);return[mi(e),DL(e)]},Yc=function(n,t){return t=t||n,new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))},jc=function(n){var t=new Date(n.getTime());return t},Ug=function(n){for(var t=[],e=0;e<n.length;e++)t.push(jc(n[e]));return t},hi=function(n){n.sort(function(t,e){return t.getTime()-e.getTime()})},Fa=function(n,t){t===void 0&&(t=!0);var e=new Date(n);return[Rs(e.getUTCFullYear().toString(),4,"0"),Rs(e.getUTCMonth()+1,2,"0"),Rs(e.getUTCDate(),2,"0"),"T",Rs(e.getUTCHours(),2,"0"),Rs(e.getUTCMinutes(),2,"0"),Rs(e.getUTCSeconds(),2,"0"),t?"Z":""].join("")},Vl=function(n){var t=/^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/,e=t.exec(n);if(!e)throw new Error("Invalid UNTIL value: ".concat(n));return new Date(Date.UTC(parseInt(e[1],10),parseInt(e[2],10)-1,parseInt(e[3],10),parseInt(e[5],10)||0,parseInt(e[6],10)||0,parseInt(e[7],10)||0))},Ok=function(n,t){var e=n.toLocaleString("sv-SE",{timeZone:t});return e.replace(" ","T")+"Z"},Rk=function(n,t){var e=Intl.DateTimeFormat().resolvedOptions().timeZone,r=new Date(Ok(n,e)),i=new Date(Ok(n,t!=null?t:"UTC")),s=i.getTime()-r.getTime();return new Date(n.getTime()-s)}});var EL,gi,Wc=ee(()=>{EL=function(){function n(t,e){this.minDate=null,this.maxDate=null,this._result=[],this.total=0,this.method=t,this.args=e,t==="between"?(this.maxDate=e.inc?e.before:new Date(e.before.getTime()-1),this.minDate=e.inc?e.after:new Date(e.after.getTime()+1)):t==="before"?this.maxDate=e.inc?e.dt:new Date(e.dt.getTime()-1):t==="after"&&(this.minDate=e.inc?e.dt:new Date(e.dt.getTime()+1))}return n.prototype.accept=function(t){++this.total;var e=this.minDate&&t<this.minDate,r=this.maxDate&&t>this.maxDate;if(this.method==="between"){if(e)return!0;if(r)return!1}else if(this.method==="before"){if(r)return!1}else if(this.method==="after")return e?!0:(this.add(t),!1);return this.add(t)},n.prototype.add=function(t){return this._result.push(t),!0},n.prototype.getValue=function(){var t=this._result;switch(this.method){case"all":case"between":return t;case"before":case"after":default:return t.length?t[t.length-1]:null}},n.prototype.clone=function(){return new n(this.method,this.args)},n}(),gi=EL});function La(n,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Yg(n,t);function e(){this.constructor=n}n.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}function Q(n,t,e){if(e||arguments.length===2)for(var r=0,i=t.length,s;r<i;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return n.concat(s||Array.prototype.slice.call(t))}var Yg,Pt,yi=ee(()=>{Yg=function(n,t){return Yg=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])},Yg(n,t)};Pt=function(){return Pt=Object.assign||function(t){for(var e,r=1,i=arguments.length;r<i;r++){e=arguments[r];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])}return t},Pt.apply(this,arguments)}});var xL,jg,Ak=ee(()=>{yi();Wc();xL=function(n){La(t,n);function t(e,r,i){var s=n.call(this,e,r)||this;return s.iterator=i,s}return t.prototype.add=function(e){return this.iterator(e,this._result.length)?(this._result.push(e),!0):!1},t}(gi),jg=xL});var OL,Ps,$c=ee(()=>{OL={dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],tokens:{SKIP:/^[ \r\n\t]+|^\.$/,number:/^[1-9][0-9]*/,numberAsText:/^(one|two|three)/i,every:/^every/i,"day(s)":/^days?/i,"weekday(s)":/^weekdays?/i,"week(s)":/^weeks?/i,"hour(s)":/^hours?/i,"minute(s)":/^minutes?/i,"month(s)":/^months?/i,"year(s)":/^years?/i,on:/^(on|in)/i,at:/^(at)/i,the:/^the/i,first:/^first/i,second:/^second/i,third:/^third/i,nth:/^([1-9][0-9]*)(\.|th|nd|rd|st)/i,last:/^last/i,for:/^for/i,"time(s)":/^times?/i,until:/^(un)?til/i,monday:/^mo(n(day)?)?/i,tuesday:/^tu(e(s(day)?)?)?/i,wednesday:/^we(d(n(esday)?)?)?/i,thursday:/^th(u(r(sday)?)?)?/i,friday:/^fr(i(day)?)?/i,saturday:/^sa(t(urday)?)?/i,sunday:/^su(n(day)?)?/i,january:/^jan(uary)?/i,february:/^feb(ruary)?/i,march:/^mar(ch)?/i,april:/^apr(il)?/i,may:/^may/i,june:/^june?/i,july:/^july?/i,august:/^aug(ust)?/i,september:/^sep(t(ember)?)?/i,october:/^oct(ober)?/i,november:/^nov(ember)?/i,december:/^dec(ember)?/i,comma:/^(,\s*|(and|or)\s*)+/i}},Ps=OL});var Pk,CL,ML,RL,Gr,Nk=ee(()=>{$c();Jn();nn();Pk=function(n,t){return n.indexOf(t)!==-1},CL=function(n){return n.toString()},ML=function(n,t,e){return"".concat(t," ").concat(e,", ").concat(n)},RL=function(){function n(t,e,r,i){if(e===void 0&&(e=CL),r===void 0&&(r=Ps),i===void 0&&(i=ML),this.text=[],this.language=r||Ps,this.gettext=e,this.dateFormatter=i,this.rrule=t,this.options=t.options,this.origOptions=t.origOptions,this.origOptions.bymonthday){var s=[].concat(this.options.bymonthday),a=[].concat(this.options.bynmonthday);s.sort(function(c,d){return c-d}),a.sort(function(c,d){return d-c}),this.bymonthday=s.concat(a),this.bymonthday.length||(this.bymonthday=null)}if(Je(this.origOptions.byweekday)){var o=At(this.origOptions.byweekday)?this.origOptions.byweekday:[this.origOptions.byweekday],l=String(o);this.byweekday={allWeeks:o.filter(function(c){return!c.n}),someWeeks:o.filter(function(c){return Boolean(c.n)}),isWeekdays:l.indexOf("MO")!==-1&&l.indexOf("TU")!==-1&&l.indexOf("WE")!==-1&&l.indexOf("TH")!==-1&&l.indexOf("FR")!==-1&&l.indexOf("SA")===-1&&l.indexOf("SU")===-1,isEveryDay:l.indexOf("MO")!==-1&&l.indexOf("TU")!==-1&&l.indexOf("WE")!==-1&&l.indexOf("TH")!==-1&&l.indexOf("FR")!==-1&&l.indexOf("SA")!==-1&&l.indexOf("SU")!==-1};var u=function(c,d){return c.weekday-d.weekday};this.byweekday.allWeeks.sort(u),this.byweekday.someWeeks.sort(u),this.byweekday.allWeeks.length||(this.byweekday.allWeeks=null),this.byweekday.someWeeks.length||(this.byweekday.someWeeks=null)}else this.byweekday=null}return n.isFullyConvertible=function(t){var e=!0;if(!(t.options.freq in n.IMPLEMENTED)||t.origOptions.until&&t.origOptions.count)return!1;for(var r in t.origOptions){if(Pk(["dtstart","wkst","freq"],r))return!0;if(!Pk(n.IMPLEMENTED[t.options.freq],r))return!1}return e},n.prototype.isFullyConvertible=function(){return n.isFullyConvertible(this.rrule)},n.prototype.toString=function(){var t=this.gettext;if(!(this.options.freq in n.IMPLEMENTED))return t("RRule error: Unable to fully convert this rrule to text");if(this.text=[t("every")],this[ae.FREQUENCIES[this.options.freq]](),this.options.until){this.add(t("until"));var e=this.options.until;this.add(this.dateFormatter(e.getUTCFullYear(),this.language.monthNames[e.getUTCMonth()],e.getUTCDate()))}else this.options.count&&this.add(t("for")).add(this.options.count.toString()).add(this.plural(this.options.count)?t("times"):t("time"));return this.isFullyConvertible()||this.add(t("(~ approximate)")),this.text.join("")},n.prototype.HOURLY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t("hours"):t("hour"))},n.prototype.MINUTELY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t("minutes"):t("minute"))},n.prototype.DAILY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.byweekday&&this.byweekday.isWeekdays?this.add(this.plural(this.options.interval)?t("weekdays"):t("weekday")):this.add(this.plural(this.options.interval)?t("days"):t("day")),this.origOptions.bymonth&&(this.add(t("in")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday?this._byweekday():this.origOptions.byhour&&this._byhour()},n.prototype.WEEKLY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()).add(this.plural(this.options.interval)?t("weeks"):t("week")),this.byweekday&&this.byweekday.isWeekdays?this.options.interval===1?this.add(this.plural(this.options.interval)?t("weekdays"):t("weekday")):this.add(t("on")).add(t("weekdays")):this.byweekday&&this.byweekday.isEveryDay?this.add(this.plural(this.options.interval)?t("days"):t("day")):(this.options.interval===1&&this.add(t("week")),this.origOptions.bymonth&&(this.add(t("in")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday())},n.prototype.MONTHLY=function(){var t=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()).add(t("months")),this.plural(this.options.interval)&&this.add(t("in"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t("months"):t("month"))),this.bymonthday?this._bymonthday():this.byweekday&&this.byweekday.isWeekdays?this.add(t("on")).add(t("weekdays")):this.byweekday&&this._byweekday()},n.prototype.YEARLY=function(){var t=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()),this.add(t("years"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t("years"):t("year"))),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.options.byyearday&&this.add(t("on the")).add(this.list(this.options.byyearday,this.nth,t("and"))).add(t("day")),this.options.byweekno&&this.add(t("in")).add(this.plural(this.options.byweekno.length)?t("weeks"):t("week")).add(this.list(this.options.byweekno,void 0,t("and")))},n.prototype._bymonthday=function(){var t=this.gettext;this.byweekday&&this.byweekday.allWeeks?this.add(t("on")).add(this.list(this.byweekday.allWeeks,this.weekdaytext,t("or"))).add(t("the")).add(this.list(this.bymonthday,this.nth,t("or"))):this.add(t("on the")).add(this.list(this.bymonthday,this.nth,t("and")))},n.prototype._byweekday=function(){var t=this.gettext;this.byweekday.allWeeks&&!this.byweekday.isWeekdays&&this.add(t("on")).add(this.list(this.byweekday.allWeeks,this.weekdaytext)),this.byweekday.someWeeks&&(this.byweekday.allWeeks&&this.add(t("and")),this.add(t("on the")).add(this.list(this.byweekday.someWeeks,this.weekdaytext,t("and"))))},n.prototype._byhour=function(){var t=this.gettext;this.add(t("at")).add(this.list(this.origOptions.byhour,void 0,t("and")))},n.prototype._bymonth=function(){this.add(this.list(this.options.bymonth,this.monthtext,this.gettext("and")))},n.prototype.nth=function(t){t=parseInt(t.toString(),10);var e,r=this.gettext;if(t===-1)return r("last");var i=Math.abs(t);switch(i){case 1:case 21:case 31:e=i+r("st");break;case 2:case 22:e=i+r("nd");break;case 3:case 23:e=i+r("rd");break;default:e=i+r("th")}return t<0?e+" "+r("last"):e},n.prototype.monthtext=function(t){return this.language.monthNames[t-1]},n.prototype.weekdaytext=function(t){var e=xn(t)?(t+1)%7:t.getJsWeekday();return(t.n?this.nth(t.n)+" ":"")+this.language.dayNames[e]},n.prototype.plural=function(t){return t%100!==1},n.prototype.add=function(t){return this.text.push(" "),this.text.push(t),this},n.prototype.list=function(t,e,r,i){var s=this;i===void 0&&(i=","),At(t)||(t=[t]);var a=function(l,u,c){for(var d="",f=0;f<l.length;f++)f!==0&&(f===l.length-1?d+=" "+c+" ":d+=u+" "),d+=l[f];return d};e=e||function(l){return l.toString()};var o=function(l){return e&&e.call(s,l)};return r?a(t.map(o),i,r):t.map(o).join(i+" ")},n}(),Gr=RL});function zl(n,t){t===void 0&&(t=Ps);var e={},r=new AL(t.tokens);if(!r.start(n))return null;return i(),e;function i(){r.expect("every");var f=r.acceptNumber();if(f&&(e.interval=parseInt(f[0],10)),r.isDone())throw new Error("Unexpected end");switch(r.symbol){case"day(s)":e.freq=ae.DAILY,r.nextSymbol()&&(a(),d());break;case"weekday(s)":e.freq=ae.WEEKLY,e.byweekday=[ae.MO,ae.TU,ae.WE,ae.TH,ae.FR],r.nextSymbol(),d();break;case"week(s)":e.freq=ae.WEEKLY,r.nextSymbol()&&(s(),d());break;case"hour(s)":e.freq=ae.HOURLY,r.nextSymbol()&&(s(),d());break;case"minute(s)":e.freq=ae.MINUTELY,r.nextSymbol()&&(s(),d());break;case"month(s)":e.freq=ae.MONTHLY,r.nextSymbol()&&(s(),d());break;case"year(s)":e.freq=ae.YEARLY,r.nextSymbol()&&(s(),d());break;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":e.freq=ae.WEEKLY;var p=r.symbol.substr(0,2).toUpperCase();if(e.byweekday=[ae[p]],!r.nextSymbol())return;for(;r.accept("comma");){if(r.isDone())throw new Error("Unexpected end");var b=l();if(!b)throw new Error("Unexpected symbol "+r.symbol+", expected weekday");e.byweekday.push(ae[b]),r.nextSymbol()}c(),d();break;case"january":case"february":case"march":case"april":case"may":case"june":case"july":case"august":case"september":case"october":case"november":case"december":if(e.freq=ae.YEARLY,e.bymonth=[o()],!r.nextSymbol())return;for(;r.accept("comma");){if(r.isDone())throw new Error("Unexpected end");var T=o();if(!T)throw new Error("Unexpected symbol "+r.symbol+", expected month");e.bymonth.push(T),r.nextSymbol()}s(),d();break;default:throw new Error("Unknown symbol")}}function s(){var f=r.accept("on"),p=r.accept("the");if(!!(f||p))do{var b=u(),T=l(),_=o();if(b)T?(r.nextSymbol(),e.byweekday||(e.byweekday=[]),e.byweekday.push(ae[T].nth(b))):(e.bymonthday||(e.bymonthday=[]),e.bymonthday.push(b),r.accept("day(s)"));else if(T)r.nextSymbol(),e.byweekday||(e.byweekday=[]),e.byweekday.push(ae[T]);else if(r.symbol==="weekday(s)")r.nextSymbol(),e.byweekday||(e.byweekday=[ae.MO,ae.TU,ae.WE,ae.TH,ae.FR]);else if(r.symbol==="week(s)"){r.nextSymbol();var O=r.acceptNumber();if(!O)throw new Error("Unexpected symbol "+r.symbol+", expected week number");for(e.byweekno=[parseInt(O[0],10)];r.accept("comma");){if(O=r.acceptNumber(),!O)throw new Error("Unexpected symbol "+r.symbol+"; expected monthday");e.byweekno.push(parseInt(O[0],10))}}else if(_)r.nextSymbol(),e.bymonth||(e.bymonth=[]),e.bymonth.push(_);else return}while(r.accept("comma")||r.accept("the")||r.accept("on"))}function a(){var f=r.accept("at");if(!!f)do{var p=r.acceptNumber();if(!p)throw new Error("Unexpected symbol "+r.symbol+", expected hour");for(e.byhour=[parseInt(p[0],10)];r.accept("comma");){if(p=r.acceptNumber(),!p)throw new Error("Unexpected symbol "+r.symbol+"; expected hour");e.byhour.push(parseInt(p[0],10))}}while(r.accept("comma")||r.accept("at"))}function o(){switch(r.symbol){case"january":return 1;case"february":return 2;case"march":return 3;case"april":return 4;case"may":return 5;case"june":return 6;case"july":return 7;case"august":return 8;case"september":return 9;case"october":return 10;case"november":return 11;case"december":return 12;default:return!1}}function l(){switch(r.symbol){case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return r.symbol.substr(0,2).toUpperCase();default:return!1}}function u(){switch(r.symbol){case"last":return r.nextSymbol(),-1;case"first":return r.nextSymbol(),1;case"second":return r.nextSymbol(),r.accept("last")?-2:2;case"third":return r.nextSymbol(),r.accept("last")?-3:3;case"nth":var f=parseInt(r.value[1],10);if(f<-366||f>366)throw new Error("Nth out of range: "+f);return r.nextSymbol(),r.accept("last")?-f:f;default:return!1}}function c(){r.accept("on"),r.accept("the");var f=u();if(!!f)for(e.bymonthday=[f],r.nextSymbol();r.accept("comma");){if(f=u(),!f)throw new Error("Unexpected symbol "+r.symbol+"; expected monthday");e.bymonthday.push(f),r.nextSymbol()}}function d(){if(r.symbol==="until"){var f=Date.parse(r.text);if(!f)throw new Error("Cannot parse until date:"+r.text);e.until=new Date(f)}else r.accept("for")&&(e.count=parseInt(r.value[0],10),r.expect("number"))}}var AL,Ik=ee(()=>{$c();Jn();AL=function(){function n(t){this.done=!0,this.rules=t}return n.prototype.start=function(t){return this.text=t,this.done=!1,this.nextSymbol()},n.prototype.isDone=function(){return this.done&&this.symbol===null},n.prototype.nextSymbol=function(){var t,e;this.symbol=null,this.value=null;do{if(this.done)return!1;var r=void 0;t=null;for(var i in this.rules){r=this.rules[i];var s=r.exec(this.text);s&&(t===null||s[0].length>t[0].length)&&(t=s,e=i)}if(t!=null&&(this.text=this.text.substr(t[0].length),this.text===""&&(this.done=!0)),t==null){this.done=!0,this.symbol=null,this.value=null;return}}while(e==="SKIP");return this.symbol=e,this.value=t,!0},n.prototype.accept=function(t){if(this.symbol===t){if(this.value){var e=this.value;return this.nextSymbol(),e}return this.nextSymbol(),!0}return!1},n.prototype.acceptNumber=function(){return this.accept("number")},n.prototype.expect=function(t){if(this.accept(t))return!0;throw new Error("expected "+t+" but found "+this.symbol)},n}()});function Kl(n){return n<Ae.HOURLY}var Ae,bi=ee(()=>{(function(n){n[n.YEARLY=0]="YEARLY",n[n.MONTHLY=1]="MONTHLY",n[n.WEEKLY=2]="WEEKLY",n[n.DAILY=3]="DAILY",n[n.HOURLY=4]="HOURLY",n[n.MINUTELY=5]="MINUTELY",n[n.SECONDLY=6]="SECONDLY"})(Ae||(Ae={}))});var Fk,Ua,Lk,Uk,Yk=ee(()=>{Nk();Ik();Jn();bi();$c();Fk=function(n,t){return t===void 0&&(t=Ps),new ae(zl(n,t)||void 0)},Ua=["count","until","interval","byweekday","bymonthday","bymonth"];Gr.IMPLEMENTED=[];Gr.IMPLEMENTED[Ae.HOURLY]=Ua;Gr.IMPLEMENTED[Ae.MINUTELY]=Ua;Gr.IMPLEMENTED[Ae.DAILY]=["byhour"].concat(Ua);Gr.IMPLEMENTED[Ae.WEEKLY]=Ua;Gr.IMPLEMENTED[Ae.MONTHLY]=Ua;Gr.IMPLEMENTED[Ae.YEARLY]=["byweekno","byyearday"].concat(Ua);Lk=function(n,t,e,r){return new Gr(n,t,e,r).toString()},Uk=Gr.isFullyConvertible});var Ya,jk,qc=ee(()=>{yi();bi();nn();$t();Ya=function(){function n(t,e,r,i){this.hour=t,this.minute=e,this.second=r,this.millisecond=i||0}return n.prototype.getHours=function(){return this.hour},n.prototype.getMinutes=function(){return this.minute},n.prototype.getSeconds=function(){return this.second},n.prototype.getMilliseconds=function(){return this.millisecond},n.prototype.getTime=function(){return(this.hour*60*60+this.minute*60+this.second)*1e3+this.millisecond},n}(),jk=function(n){La(t,n);function t(e,r,i,s,a,o,l){var u=n.call(this,s,a,o,l)||this;return u.year=e,u.month=r,u.day=i,u}return t.fromDate=function(e){return new this(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.valueOf()%1e3)},t.prototype.getWeekday=function(){return mi(new Date(this.getTime()))},t.prototype.getTime=function(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond)).getTime()},t.prototype.getDay=function(){return this.day},t.prototype.getMonth=function(){return this.month},t.prototype.getYear=function(){return this.year},t.prototype.addYears=function(e){this.year+=e},t.prototype.addMonths=function(e){if(this.month+=e,this.month>12){var r=Math.floor(this.month/12),i=Wt(this.month,12);this.month=i,this.year+=r,this.month===0&&(this.month=12,--this.year)}},t.prototype.addWeekly=function(e,r){r>this.getWeekday()?this.day+=-(this.getWeekday()+1+(6-r))+e*7:this.day+=-(this.getWeekday()-r)+e*7,this.fixDay()},t.prototype.addDaily=function(e){this.day+=e,this.fixDay()},t.prototype.addHours=function(e,r,i){for(r&&(this.hour+=Math.floor((23-this.hour)/e)*e);;){this.hour+=e;var s=Fc(this.hour,24),a=s.div,o=s.mod;if(a&&(this.hour=o,this.addDaily(a)),On(i)||Ie(i,this.hour))break}},t.prototype.addMinutes=function(e,r,i,s){for(r&&(this.minute+=Math.floor((1439-(this.hour*60+this.minute))/e)*e);;){this.minute+=e;var a=Fc(this.minute,60),o=a.div,l=a.mod;if(o&&(this.minute=l,this.addHours(o,!1,i)),(On(i)||Ie(i,this.hour))&&(On(s)||Ie(s,this.minute)))break}},t.prototype.addSeconds=function(e,r,i,s,a){for(r&&(this.second+=Math.floor((86399-(this.hour*3600+this.minute*60+this.second))/e)*e);;){this.second+=e;var o=Fc(this.second,60),l=o.div,u=o.mod;if(l&&(this.second=u,this.addMinutes(l,!1,i,s)),(On(i)||Ie(i,this.hour))&&(On(s)||Ie(s,this.minute))&&(On(a)||Ie(a,this.second)))break}},t.prototype.fixDay=function(){if(!(this.day<=28)){var e=Lg(this.year,this.month-1)[1];if(!(this.day<=e))for(;this.day>e;){if(this.day-=e,++this.month,this.month===13&&(this.month=1,++this.year,this.year>Lc))return;e=Lg(this.year,this.month-1)[1]}}},t.prototype.add=function(e,r){var i=e.freq,s=e.interval,a=e.wkst,o=e.byhour,l=e.byminute,u=e.bysecond;switch(i){case Ae.YEARLY:return this.addYears(s);case Ae.MONTHLY:return this.addMonths(s);case Ae.WEEKLY:return this.addWeekly(s,a);case Ae.DAILY:return this.addDaily(s);case Ae.HOURLY:return this.addHours(s,r,o);case Ae.MINUTELY:return this.addMinutes(s,r,o,l);case Ae.SECONDLY:return this.addSeconds(s,r,o,l,u)}},t}(Ya)});function Wg(n){for(var t=[],e=Object.keys(n),r=0,i=e;r<i.length;r++){var s=i[r];Ie(qk,s)||t.push(s),Fg(n[s])&&!As(n[s])&&t.push(s)}if(t.length)throw new Error("Invalid options: "+t.join(", "));return Pt({},n)}function Wk(n){var t=Pt(Pt({},Ql),Wg(n));if(Je(t.byeaster)&&(t.freq=ae.YEARLY),!(Je(t.freq)&&ae.FREQUENCIES[t.freq]))throw new Error("Invalid frequency: ".concat(t.freq," ").concat(n.freq));if(t.dtstart||(t.dtstart=new Date(new Date().setMilliseconds(0))),Je(t.wkst)?xn(t.wkst)||(t.wkst=t.wkst.weekday):t.wkst=ae.MO.weekday,Je(t.bysetpos)){xn(t.bysetpos)&&(t.bysetpos=[t.bysetpos]);for(var e=0;e<t.bysetpos.length;e++){var r=t.bysetpos[e];if(r===0||!(r>=-366&&r<=366))throw new Error("bysetpos must be between 1 and 366, or between -366 and -1")}}if(!(Boolean(t.byweekno)||st(t.byweekno)||st(t.byyearday)||Boolean(t.bymonthday)||st(t.bymonthday)||Je(t.byweekday)||Je(t.byeaster)))switch(t.freq){case ae.YEARLY:t.bymonth||(t.bymonth=t.dtstart.getUTCMonth()+1),t.bymonthday=t.dtstart.getUTCDate();break;case ae.MONTHLY:t.bymonthday=t.dtstart.getUTCDate();break;case ae.WEEKLY:t.byweekday=[mi(t.dtstart)];break}if(Je(t.bymonth)&&!At(t.bymonth)&&(t.bymonth=[t.bymonth]),Je(t.byyearday)&&!At(t.byyearday)&&xn(t.byyearday)&&(t.byyearday=[t.byyearday]),!Je(t.bymonthday))t.bymonthday=[],t.bynmonthday=[];else if(At(t.bymonthday)){for(var i=[],s=[],e=0;e<t.bymonthday.length;e++){var r=t.bymonthday[e];r>0?i.push(r):r<0&&s.push(r)}t.bymonthday=i,t.bynmonthday=s}else t.bymonthday<0?(t.bynmonthday=[t.bymonthday],t.bymonthday=[]):(t.bynmonthday=[],t.bymonthday=[t.bymonthday]);if(Je(t.byweekno)&&!At(t.byweekno)&&(t.byweekno=[t.byweekno]),!Je(t.byweekday))t.bynweekday=null;else if(xn(t.byweekday))t.byweekday=[t.byweekday],t.bynweekday=null;else if(Ig(t.byweekday))t.byweekday=[ft.fromStr(t.byweekday).weekday],t.bynweekday=null;else if(t.byweekday instanceof ft)!t.byweekday.n||t.freq>ae.MONTHLY?(t.byweekday=[t.byweekday.weekday],t.bynweekday=null):(t.bynweekday=[[t.byweekday.weekday,t.byweekday.n]],t.byweekday=null);else{for(var a=[],o=[],e=0;e<t.byweekday.length;e++){var l=t.byweekday[e];if(xn(l)){a.push(l);continue}else if(Ig(l)){a.push(ft.fromStr(l).weekday);continue}!l.n||t.freq>ae.MONTHLY?a.push(l.weekday):o.push([l.weekday,l.n])}t.byweekday=st(a)?a:null,t.bynweekday=st(o)?o:null}return Je(t.byhour)?xn(t.byhour)&&(t.byhour=[t.byhour]):t.byhour=t.freq<ae.HOURLY?[t.dtstart.getUTCHours()]:null,Je(t.byminute)?xn(t.byminute)&&(t.byminute=[t.byminute]):t.byminute=t.freq<ae.MINUTELY?[t.dtstart.getUTCMinutes()]:null,Je(t.bysecond)?xn(t.bysecond)&&(t.bysecond=[t.bysecond]):t.bysecond=t.freq<ae.SECONDLY?[t.dtstart.getUTCSeconds()]:null,{parsedOptions:t}}function $k(n){var t=n.dtstart.getTime()%1e3;if(!Kl(n.freq))return[];var e=[];return n.byhour.forEach(function(r){n.byminute.forEach(function(i){n.bysecond.forEach(function(s){e.push(new Ya(r,i,s,t))})})}),e}var $g=ee(()=>{yi();bi();nn();Jn();$t();Ms();qc()});function Zl(n){var t=n.split(` +`).map(PL).filter(function(e){return e!==null});return Pt(Pt({},t[0]),t[1])}function Xl(n){var t={},e=/DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(n);if(!e)return t;var r=e[1],i=e[2];return r&&(t.tzid=r),t.dtstart=Vl(i),t}function PL(n){if(n=n.replace(/^\s+|\s+$/,""),!n.length)return null;var t=/^([A-Z]+?)[:;]/.exec(n.toUpperCase());if(!t)return Hk(n);var e=t[1];switch(e.toUpperCase()){case"RRULE":case"EXRULE":return Hk(n);case"DTSTART":return Xl(n);default:throw new Error("Unsupported RFC prop ".concat(e," in ").concat(n))}}function Hk(n){var t=n.replace(/^RRULE:/i,""),e=Xl(t),r=n.replace(/^(?:RRULE|EXRULE):/i,"").split(";");return r.forEach(function(i){var s=i.split("="),a=s[0],o=s[1];switch(a.toUpperCase()){case"FREQ":e.freq=Ae[o.toUpperCase()];break;case"WKST":e.wkst=er[o.toUpperCase()];break;case"COUNT":case"INTERVAL":case"BYSETPOS":case"BYMONTH":case"BYMONTHDAY":case"BYYEARDAY":case"BYWEEKNO":case"BYHOUR":case"BYMINUTE":case"BYSECOND":var l=NL(o),u=a.toLowerCase();e[u]=l;break;case"BYWEEKDAY":case"BYDAY":e.byweekday=IL(o);break;case"DTSTART":case"TZID":var c=Xl(n);e.tzid=c.tzid,e.dtstart=c.dtstart;break;case"UNTIL":e.until=Vl(o);break;case"BYEASTER":e.byeaster=Number(o);break;default:throw new Error("Unknown RRULE property '"+a+"'")}}),e}function NL(n){if(n.indexOf(",")!==-1){var t=n.split(",");return t.map(Gk)}return Gk(n)}function Gk(n){return/^[+-]?\d+$/.test(n)?Number(n):n}function IL(n){var t=n.split(",");return t.map(function(e){if(e.length===2)return er[e];var r=e.match(/^([+-]?\d{1,2})([A-Z]{2})$/);if(!r||r.length<3)throw new SyntaxError("Invalid weekday string: ".concat(e));var i=Number(r[1]),s=r[2],a=er[s].weekday;return new ft(a,i)})}var qg=ee(()=>{yi();bi();Ms();$t();Jn()});var Ns,Hc=ee(()=>{$t();Ns=function(){function n(t,e){if(isNaN(t.getTime()))throw new RangeError("Invalid date passed to DateWithZone");this.date=t,this.tzid=e}return Object.defineProperty(n.prototype,"isUTC",{get:function(){return!this.tzid||this.tzid.toUpperCase()==="UTC"},enumerable:!1,configurable:!0}),n.prototype.toString=function(){var t=Fa(this.date.getTime(),this.isUTC);return this.isUTC?":".concat(t):";TZID=".concat(this.tzid,":").concat(t)},n.prototype.getTime=function(){return this.date.getTime()},n.prototype.rezonedDate=function(){return this.isUTC?this.date:Rk(this.date,this.tzid)},n}()});function Jl(n){for(var t=[],e="",r=Object.keys(n),i=Object.keys(Ql),s=0;s<r.length;s++)if(r[s]!=="tzid"&&!!Ie(i,r[s])){var a=r[s].toUpperCase(),o=n[r[s]],l="";if(!(!Je(o)||At(o)&&!o.length)){switch(a){case"FREQ":l=ae.FREQUENCIES[n.freq];break;case"WKST":xn(o)?l=new ft(o).toString():l=o.toString();break;case"BYWEEKDAY":a="BYDAY",l=Dk(o).map(function(p){return p instanceof ft?p:At(p)?new ft(p[0],p[1]):new ft(p)}).toString();break;case"DTSTART":e=FL(o,n.tzid);break;case"UNTIL":l=Fa(o,!n.tzid);break;default:if(At(o)){for(var u=[],c=0;c<o.length;c++)u[c]=String(o[c]);l=u.toString()}else l=String(o)}l&&t.push([a,l])}}var d=t.map(function(p){var b=p[0],T=p[1];return"".concat(b,"=").concat(T.toString())}).join(";"),f="";return d!==""&&(f="RRULE:".concat(d)),[e,f].filter(function(p){return!!p}).join(` +`)}function FL(n,t){return n?"DTSTART"+new Ns(new Date(n),t).toString():""}var Hg=ee(()=>{Jn();nn();Ms();$t();Hc()});function LL(n,t){return Array.isArray(n)?!Array.isArray(t)||n.length!==t.length?!1:n.every(function(e,r){return e.getTime()===t[r].getTime()}):n instanceof Date?t instanceof Date&&n.getTime()===t.getTime():n===t}var Bk,Vk=ee(()=>{Wc();$t();nn();Bk=function(){function n(){this.all=!1,this.before=[],this.after=[],this.between=[]}return n.prototype._cacheAdd=function(t,e,r){e&&(e=e instanceof Date?jc(e):Ug(e)),t==="all"?this.all=e:(r._value=e,this[t].push(r))},n.prototype._cacheGet=function(t,e){var r=!1,i=e?Object.keys(e):[],s=function(c){for(var d=0;d<i.length;d++){var f=i[d];if(!LL(e[f],c[f]))return!0}return!1},a=this[t];if(t==="all")r=this.all;else if(At(a))for(var o=0;o<a.length;o++){var l=a[o];if(!(i.length&&s(l))){r=l._value;break}}if(!r&&this.all){for(var u=new gi(t,e),o=0;o<this.all.length&&u.accept(this.all[o]);o++);r=u.getValue(),this._cacheAdd(t,r,e)}return At(r)?Ug(r):r instanceof Date?jc(r):r},n}()});var zk,Kk,UL,YL,Wi,qt,Qk,Xk,jL,WL,$i,Ht,Zk,Jk,eS,tS,Gg,nS=ee(()=>{yi();nn();zk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ne(1,31),!0),Ne(2,28),!0),Ne(3,31),!0),Ne(4,30),!0),Ne(5,31),!0),Ne(6,30),!0),Ne(7,31),!0),Ne(8,31),!0),Ne(9,30),!0),Ne(10,31),!0),Ne(11,30),!0),Ne(12,31),!0),Ne(1,7),!0),Kk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ne(1,31),!0),Ne(2,29),!0),Ne(3,31),!0),Ne(4,30),!0),Ne(5,31),!0),Ne(6,30),!0),Ne(7,31),!0),Ne(8,31),!0),Ne(9,30),!0),Ne(10,31),!0),Ne(11,30),!0),Ne(12,31),!0),Ne(1,7),!0),UL=Zn(1,29),YL=Zn(1,30),Wi=Zn(1,31),qt=Zn(1,32),Qk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],qt,!0),YL,!0),qt,!0),Wi,!0),qt,!0),Wi,!0),qt,!0),qt,!0),Wi,!0),qt,!0),Wi,!0),qt,!0),qt.slice(0,7),!0),Xk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],qt,!0),UL,!0),qt,!0),Wi,!0),qt,!0),Wi,!0),qt,!0),qt,!0),Wi,!0),qt,!0),Wi,!0),qt,!0),qt.slice(0,7),!0),jL=Zn(-28,0),WL=Zn(-29,0),$i=Zn(-30,0),Ht=Zn(-31,0),Zk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ht,!0),WL,!0),Ht,!0),$i,!0),Ht,!0),$i,!0),Ht,!0),Ht,!0),$i,!0),Ht,!0),$i,!0),Ht,!0),Ht.slice(0,7),!0),Jk=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ht,!0),jL,!0),Ht,!0),$i,!0),Ht,!0),$i,!0),Ht,!0),Ht,!0),$i,!0),Ht,!0),$i,!0),Ht,!0),Ht.slice(0,7),!0),eS=[0,31,60,91,121,152,182,213,244,274,305,335,366],tS=[0,31,59,90,120,151,181,212,243,273,304,334,365],Gg=function(){for(var n=[],t=0;t<55;t++)n=n.concat(Zn(7));return n}()});function rS(n,t){var e=Hr(n,1,1),r=Ia(n)?366:365,i=Ia(n+1)?366:365,s=Bl(e),a=mi(e),o=Pt(Pt({yearlen:r,nextyearlen:i,yearordinal:s,yearweekday:a},$L(n)),{wnomask:null});if(On(t.byweekno))return o;o.wnomask=Ne(0,r+7);var l,u,c=l=Wt(7-a+t.wkst,7);c>=4?(c=0,u=o.yearlen+Wt(a-t.wkst,7)):u=r-c;for(var d=Math.floor(u/7),f=Wt(u,7),p=Math.floor(d+f/4),b=0;b<t.byweekno.length;b++){var T=t.byweekno[b];if(T<0&&(T+=p+1),T>0&&T<=p){var _=void 0;T>1?(_=c+(T-1)*7,c!==l&&(_-=7-l)):_=c;for(var O=0;O<7&&(o.wnomask[_]=1,_++,o.wdaymask[_]!==t.wkst);O++);}}if(Ie(t.byweekno,1)){var _=c+p*7;if(c!==l&&(_-=7-l),_<r)for(var b=0;b<7&&(o.wnomask[_]=1,_+=1,o.wdaymask[_]!==t.wkst);b++);}if(c){var E=void 0;if(Ie(t.byweekno,-1))E=-1;else{var A=mi(Hr(n-1,1,1)),Y=Wt(7-A.valueOf()+t.wkst,7),q=Ia(n-1)?366:365,se=void 0;Y>=4?(Y=0,se=q+Wt(A-t.wkst,7)):se=r-c,E=Math.floor(52+Wt(se,7)/4)}if(Ie(t.byweekno,E))for(var _=0;_<c;_++)o.wnomask[_]=1}return o}function $L(n){var t=Ia(n)?366:365,e=Hr(n,1,1),r=mi(e);return t===365?{mmask:zk,mdaymask:Xk,nmdaymask:Jk,wdaymask:Gg.slice(r),mrange:tS}:{mmask:Kk,mdaymask:Qk,nmdaymask:Zk,wdaymask:Gg.slice(r),mrange:eS}}var iS=ee(()=>{yi();$t();nn();nS()});function sS(n,t,e,r,i,s){var a={lastyear:n,lastmonth:t,nwdaymask:[]},o=[];if(s.freq===ae.YEARLY)if(On(s.bymonth))o=[[0,e]];else for(var l=0;l<s.bymonth.length;l++)t=s.bymonth[l],o.push(r.slice(t-1,t+1));else s.freq===ae.MONTHLY&&(o=[r.slice(t-1,t+1)]);if(On(o))return a;a.nwdaymask=Ne(0,e);for(var l=0;l<o.length;l++)for(var u=o[l],c=u[0],d=u[1]-1,f=0;f<s.bynweekday.length;f++){var p=void 0,b=s.bynweekday[f],T=b[0],_=b[1];_<0?(p=d+(_+1)*7,p-=Wt(i[p]-T,7)):(p=c+(_-1)*7,p+=Wt(7-i[p]+T,7)),c<=p&&p<=d&&(a.nwdaymask[p]=1)}return a}var aS=ee(()=>{Jn();nn()});function oS(n,t){t===void 0&&(t=0);var e=n%19,r=Math.floor(n/100),i=n%100,s=Math.floor(r/4),a=r%4,o=Math.floor((r+8)/25),l=Math.floor((r-o+1)/3),u=Math.floor(19*e+r-s-l+15)%30,c=Math.floor(i/4),d=i%4,f=Math.floor(32+2*a+2*c-u-d)%7,p=Math.floor((e+11*u+22*f)/451),b=Math.floor((u+f-7*p+114)/31),T=(u+f-7*p+114)%31+1,_=Date.UTC(n,b-1,T+t),O=Date.UTC(n,0,1);return[Math.ceil((_-O)/(1e3*60*60*24))]}var lS=ee(()=>{});var qL,uS,cS=ee(()=>{nn();bi();iS();aS();lS();qc();$t();qL=function(){function n(t){this.options=t}return n.prototype.rebuild=function(t,e){var r=this.options;if(t!==this.lastyear&&(this.yearinfo=rS(t,r)),st(r.bynweekday)&&(e!==this.lastmonth||t!==this.lastyear)){var i=this.yearinfo,s=i.yearlen,a=i.mrange,o=i.wdaymask;this.monthinfo=sS(t,e,s,a,o,r)}Je(r.byeaster)&&(this.eastermask=oS(t,r.byeaster))},Object.defineProperty(n.prototype,"lastyear",{get:function(){return this.monthinfo?this.monthinfo.lastyear:null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"lastmonth",{get:function(){return this.monthinfo?this.monthinfo.lastmonth:null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"yearlen",{get:function(){return this.yearinfo.yearlen},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"yearordinal",{get:function(){return this.yearinfo.yearordinal},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"mrange",{get:function(){return this.yearinfo.mrange},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"wdaymask",{get:function(){return this.yearinfo.wdaymask},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"mmask",{get:function(){return this.yearinfo.mmask},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"wnomask",{get:function(){return this.yearinfo.wnomask},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"nwdaymask",{get:function(){return this.monthinfo?this.monthinfo.nwdaymask:[]},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"nextyearlen",{get:function(){return this.yearinfo.nextyearlen},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"mdaymask",{get:function(){return this.yearinfo.mdaymask},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"nmdaymask",{get:function(){return this.yearinfo.nmdaymask},enumerable:!1,configurable:!0}),n.prototype.ydayset=function(){return[Zn(this.yearlen),0,this.yearlen]},n.prototype.mdayset=function(t,e){for(var r=this.mrange[e-1],i=this.mrange[e],s=Ne(null,this.yearlen),a=r;a<i;a++)s[a]=a;return[s,r,i]},n.prototype.wdayset=function(t,e,r){for(var i=Ne(null,this.yearlen+7),s=Bl(Hr(t,e,r))-this.yearordinal,a=s,o=0;o<7&&(i[s]=s,++s,this.wdaymask[s]!==this.options.wkst);o++);return[i,a,s]},n.prototype.ddayset=function(t,e,r){var i=Ne(null,this.yearlen),s=Bl(Hr(t,e,r))-this.yearordinal;return i[s]=s,[i,s,s+1]},n.prototype.htimeset=function(t,e,r,i){var s=this,a=[];return this.options.byminute.forEach(function(o){a=a.concat(s.mtimeset(t,o,r,i))}),hi(a),a},n.prototype.mtimeset=function(t,e,r,i){var s=this.options.bysecond.map(function(a){return new Ya(t,e,a,i)});return hi(s),s},n.prototype.stimeset=function(t,e,r,i){return[new Ya(t,e,r,i)]},n.prototype.getdayset=function(t){switch(t){case Ae.YEARLY:return this.ydayset.bind(this);case Ae.MONTHLY:return this.mdayset.bind(this);case Ae.WEEKLY:return this.wdayset.bind(this);case Ae.DAILY:return this.ddayset.bind(this);default:return this.ddayset.bind(this)}},n.prototype.gettimeset=function(t){switch(t){case Ae.HOURLY:return this.htimeset.bind(this);case Ae.MINUTELY:return this.mtimeset.bind(this);case Ae.SECONDLY:return this.stimeset.bind(this)}},n}(),uS=qL});function dS(n,t,e,r,i,s){for(var a=[],o=0;o<n.length;o++){var l=void 0,u=void 0,c=n[o];c<0?(l=Math.floor(c/t.length),u=Wt(c,t.length)):(l=Math.floor((c-1)/t.length),u=Wt(c-1,t.length));for(var d=[],f=e;f<r;f++){var p=s[f];!Je(p)||d.push(p)}var b=void 0;l<0?b=d.slice(l)[0]:b=d[l];var T=t[u],_=Uc(i.yearordinal+b),O=Yc(_,T);Ie(a,O)||a.push(O)}return hi(a),a}var fS=ee(()=>{$t();nn()});function Gc(n,t){var e=t.dtstart,r=t.freq,i=t.interval,s=t.until,a=t.bysetpos,o=t.count;if(o===0||i===0)return Ti(n);var l=jk.fromDate(e),u=new uS(t);u.rebuild(l.year,l.month);for(var c=BL(u,l,t);;){var d=u.getdayset(r)(l.year,l.month,l.day),f=d[0],p=d[1],b=d[2],T=GL(f,p,b,u,t);if(st(a))for(var _=dS(a,c,p,b,u,f),O=0;O<_.length;O++){var E=_[O];if(s&&E>s)return Ti(n);if(E>=e){var A=pS(E,t);if(!n.accept(A)||o&&(--o,!o))return Ti(n)}}else for(var O=p;O<b;O++){var Y=f[O];if(!!Je(Y))for(var q=Uc(u.yearordinal+Y),se=0;se<c.length;se++){var H=c[se],E=Yc(q,H);if(s&&E>s)return Ti(n);if(E>=e){var A=pS(E,t);if(!n.accept(A)||o&&(--o,!o))return Ti(n)}}}if(t.interval===0||(l.add(t,T),l.year>Lc))return Ti(n);Kl(r)||(c=u.gettimeset(r)(l.hour,l.minute,l.second,0)),u.rebuild(l.year,l.month)}}function HL(n,t,e){var r=e.bymonth,i=e.byweekno,s=e.byweekday,a=e.byeaster,o=e.bymonthday,l=e.bynmonthday,u=e.byyearday;return st(r)&&!Ie(r,n.mmask[t])||st(i)&&!n.wnomask[t]||st(s)&&!Ie(s,n.wdaymask[t])||st(n.nwdaymask)&&!n.nwdaymask[t]||a!==null&&!Ie(n.eastermask,t)||(st(o)||st(l))&&!Ie(o,n.mdaymask[t])&&!Ie(l,n.nmdaymask[t])||st(u)&&(t<n.yearlen&&!Ie(u,t+1)&&!Ie(u,-n.yearlen+t)||t>=n.yearlen&&!Ie(u,t+1-n.yearlen)&&!Ie(u,-n.nextyearlen+t-n.yearlen))}function pS(n,t){return new Ns(n,t.tzid).rezonedDate()}function Ti(n){return n.getValue()}function GL(n,t,e,r,i){for(var s=!1,a=t;a<e;a++){var o=n[a];s=HL(r,o,i),s&&(n[o]=null)}return s}function BL(n,t,e){var r=e.freq,i=e.byhour,s=e.byminute,a=e.bysecond;return Kl(r)?$k(e):r>=ae.HOURLY&&st(i)&&!Ie(i,t.hour)||r>=ae.MINUTELY&&st(s)&&!Ie(s,t.minute)||r>=ae.SECONDLY&&st(a)&&!Ie(a,t.second)?[]:n.gettimeset(r)(t.hour,t.minute,t.second,t.millisecond)}var Bg=ee(()=>{bi();$t();cS();Jn();$g();nn();Hc();fS();qc()});var er,Ql,qk,ae,Jn=ee(()=>{$t();Wc();Ak();Yk();bi();$g();qg();Hg();Vk();Ms();Bg();er={MO:new ft(0),TU:new ft(1),WE:new ft(2),TH:new ft(3),FR:new ft(4),SA:new ft(5),SU:new ft(6)},Ql={freq:Ae.YEARLY,dtstart:null,interval:1,wkst:er.MO,count:null,until:null,tzid:null,bysetpos:null,bymonth:null,bymonthday:null,bynmonthday:null,byyearday:null,byweekno:null,byweekday:null,bynweekday:null,byhour:null,byminute:null,bysecond:null,byeaster:null},qk=Object.keys(Ql),ae=function(){function n(t,e){t===void 0&&(t={}),e===void 0&&(e=!1),this._cache=e?null:new Bk,this.origOptions=Wg(t);var r=Wk(t).parsedOptions;this.options=r}return n.parseText=function(t,e){return zl(t,e)},n.fromText=function(t,e){return Fk(t,e)},n.fromString=function(t){return new n(n.parseString(t)||void 0)},n.prototype._iter=function(t){return Gc(t,this.options)},n.prototype._cacheGet=function(t,e){return this._cache?this._cache._cacheGet(t,e):!1},n.prototype._cacheAdd=function(t,e,r){if(!!this._cache)return this._cache._cacheAdd(t,e,r)},n.prototype.all=function(t){if(t)return this._iter(new jg("all",{},t));var e=this._cacheGet("all");return e===!1&&(e=this._iter(new gi("all",{})),this._cacheAdd("all",e)),e},n.prototype.between=function(t,e,r,i){if(r===void 0&&(r=!1),!As(t)||!As(e))throw new Error("Invalid date passed in to RRule.between");var s={before:e,after:t,inc:r};if(i)return this._iter(new jg("between",s,i));var a=this._cacheGet("between",s);return a===!1&&(a=this._iter(new gi("between",s)),this._cacheAdd("between",a,s)),a},n.prototype.before=function(t,e){if(e===void 0&&(e=!1),!As(t))throw new Error("Invalid date passed in to RRule.before");var r={dt:t,inc:e},i=this._cacheGet("before",r);return i===!1&&(i=this._iter(new gi("before",r)),this._cacheAdd("before",i,r)),i},n.prototype.after=function(t,e){if(e===void 0&&(e=!1),!As(t))throw new Error("Invalid date passed in to RRule.after");var r={dt:t,inc:e},i=this._cacheGet("after",r);return i===!1&&(i=this._iter(new gi("after",r)),this._cacheAdd("after",i,r)),i},n.prototype.count=function(){return this.all().length},n.prototype.toString=function(){return Jl(this.origOptions)},n.prototype.toText=function(t,e,r){return Lk(this,t,e,r)},n.prototype.isFullyConvertibleToText=function(){return Uk(this)},n.prototype.clone=function(){return new n(this.origOptions)},n.FREQUENCIES=["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],n.YEARLY=Ae.YEARLY,n.MONTHLY=Ae.MONTHLY,n.WEEKLY=Ae.WEEKLY,n.DAILY=Ae.DAILY,n.HOURLY=Ae.HOURLY,n.MINUTELY=Ae.MINUTELY,n.SECONDLY=Ae.SECONDLY,n.MO=er.MO,n.TU=er.TU,n.WE=er.WE,n.TH=er.TH,n.FR=er.FR,n.SA=er.SA,n.SU=er.SU,n.parseString=Zl,n.optionsToString=Jl,n}()});function mS(n,t,e,r,i,s){var a={},o=n.accept;function l(f,p){e.forEach(function(b){b.between(f,p,!0).forEach(function(T){a[Number(T)]=!0})})}i.forEach(function(f){var p=new Ns(f,s).rezonedDate();a[Number(p)]=!0}),n.accept=function(f){var p=Number(f);return isNaN(p)?o.call(this,f):!a[p]&&(l(new Date(p-1),new Date(p+1)),!a[p])?(a[p]=!0,o.call(this,f)):!0},n.method==="between"&&(l(n.args.after,n.args.before),n.accept=function(f){var p=Number(f);return a[p]?!0:(a[p]=!0,o.call(this,f))});for(var u=0;u<r.length;u++){var c=new Ns(r[u],s).rezonedDate();if(!n.accept(new Date(c.getTime())))break}t.forEach(function(f){Gc(n,f.options)});var d=n._result;switch(hi(d),n.method){case"all":case"between":return d;case"before":return d.length&&d[d.length-1]||null;case"after":default:return d.length&&d[0]||null}}var hS=ee(()=>{Hc();Bg();$t()});function VL(n,t){var e=[],r=[],i=[],s=[],a=Xl(n),o=a.dtstart,l=a.tzid,u=ZL(n,t.unfold);return u.forEach(function(c){var d;if(!!c){var f=XL(c),p=f.name,b=f.parms,T=f.value;switch(p.toUpperCase()){case"RRULE":if(b.length)throw new Error("unsupported RRULE parm: ".concat(b.join(",")));e.push(Zl(c));break;case"RDATE":var _=(d=/RDATE(?:;TZID=([^:=]+))?/i.exec(c))!==null&&d!==void 0?d:[],O=_[1];O&&!l&&(l=O),r=r.concat(yS(T,b));break;case"EXRULE":if(b.length)throw new Error("unsupported EXRULE parm: ".concat(b.join(",")));i.push(Zl(T));break;case"EXDATE":s=s.concat(yS(T,b));break;case"DTSTART":break;default:throw new Error("unsupported property: "+p)}}}),{dtstart:o,tzid:l,rrulevals:e,rdatevals:r,exrulevals:i,exdatevals:s}}function zL(n,t){var e=VL(n,t),r=e.rrulevals,i=e.rdatevals,s=e.exrulevals,a=e.exdatevals,o=e.dtstart,l=e.tzid,u=t.cache===!1;if(t.compatible&&(t.forceset=!0,t.unfold=!0),t.forceset||r.length>1||i.length||s.length||a.length){var c=new Kg(u);return c.dtstart(o),c.tzid(l||void 0),r.forEach(function(f){c.rrule(new ae(Vg(f,o,l),u))}),i.forEach(function(f){c.rdate(f)}),s.forEach(function(f){c.exrule(new ae(Vg(f,o,l),u))}),a.forEach(function(f){c.exdate(f)}),t.compatible&&t.dtstart&&c.rdate(o),c}var d=r[0]||{};return new ae(Vg(d,d.dtstart||t.dtstart||o,d.tzid||t.tzid||l),u)}function Bc(n,t){return t===void 0&&(t={}),zL(n,KL(t))}function Vg(n,t,e){return Pt(Pt({},n),{dtstart:t,tzid:e})}function KL(n){var t=[],e=Object.keys(n),r=Object.keys(gS);if(e.forEach(function(i){Ie(r,i)||t.push(i)}),t.length)throw new Error("Invalid options: "+t.join(", "));return Pt(Pt({},gS),n)}function QL(n){if(n.indexOf(":")===-1)return{name:"RRULE",value:n};var t=Ek(n,":",1),e=t[0],r=t[1];return{name:e,value:r}}function XL(n){var t=QL(n),e=t.name,r=t.value,i=e.split(";");if(!i)throw new Error("empty property name");return{name:i[0].toUpperCase(),parms:i.slice(1),value:r}}function ZL(n,t){if(t===void 0&&(t=!1),n=n&&n.trim(),!n)throw new Error("Invalid empty string");if(!t)return n.split(/\s/);for(var e=n.split(` +`),r=0;r<e.length;){var i=e[r]=e[r].replace(/\s+$/g,"");i?r>0&&i[0]===" "?(e[r-1]+=i.slice(1),e.splice(r,1)):r+=1:e.splice(r,1)}return e}function JL(n){n.forEach(function(t){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(t))throw new Error("unsupported RDATE/EXDATE parm: "+t)})}function yS(n,t){return JL(t),n.split(",").map(function(e){return Vl(e)})}var gS,zg=ee(()=>{yi();Jn();Qg();$t();nn();qg();gS={dtstart:null,cache:!1,unfold:!1,forceset:!1,compatible:!1,tzid:null}});function bS(n){var t=this;return function(e){if(e!==void 0&&(t["_".concat(n)]=e),t["_".concat(n)]!==void 0)return t["_".concat(n)];for(var r=0;r<t._rrule.length;r++){var i=t._rrule[r].origOptions[n];if(i)return i}}}function TS(n,t){if(!(n instanceof ae))throw new TypeError(String(n)+" is not RRule instance");Ie(t.map(String),String(n))||t.push(n)}function _S(n,t){if(!(n instanceof Date))throw new TypeError(String(n)+" is not Date instance");Ie(t.map(Number),Number(n))||(t.push(n),hi(t))}function vS(n,t,e){var r=!e||e.toUpperCase()==="UTC",i=r?"".concat(n,":"):"".concat(n,";TZID=").concat(e,":"),s=t.map(function(a){return Fa(a.valueOf(),r)}).join(",");return"".concat(i).concat(s)}var Kg,Qg=ee(()=>{yi();Jn();$t();nn();hS();zg();Hg();Kg=function(n){La(t,n);function t(e){e===void 0&&(e=!1);var r=n.call(this,{},e)||this;return r.dtstart=bS.apply(r,["dtstart"]),r.tzid=bS.apply(r,["tzid"]),r._rrule=[],r._rdate=[],r._exrule=[],r._exdate=[],r}return t.prototype._iter=function(e){return mS(e,this._rrule,this._exrule,this._rdate,this._exdate,this.tzid())},t.prototype.rrule=function(e){TS(e,this._rrule)},t.prototype.exrule=function(e){TS(e,this._exrule)},t.prototype.rdate=function(e){_S(e,this._rdate)},t.prototype.exdate=function(e){_S(e,this._exdate)},t.prototype.rrules=function(){return this._rrule.map(function(e){return Bc(e.toString())})},t.prototype.exrules=function(){return this._exrule.map(function(e){return Bc(e.toString())})},t.prototype.rdates=function(){return this._rdate.map(function(e){return new Date(e.getTime())})},t.prototype.exdates=function(){return this._exdate.map(function(e){return new Date(e.getTime())})},t.prototype.valueOf=function(){var e=[];return!this._rrule.length&&this._dtstart&&(e=e.concat(Jl({dtstart:this._dtstart}))),this._rrule.forEach(function(r){e=e.concat(r.toString().split(` `))}),this._exrule.forEach(function(r){e=e.concat(r.toString().split(` `).map(function(i){return i.replace(/^RRULE:/,"EXRULE:")}).filter(function(i){return!/^DTSTART/.test(i)}))}),this._rdate.length&&e.push(vS("RDATE",this._rdate,this.tzid())),this._exdate.length&&e.push(vS("EXDATE",this._exdate,this.tzid())),e},t.prototype.toString=function(){return this.valueOf().join(` -`)},t.prototype.clone=function(){var e=new t(!!this._cache);return this._rrule.forEach(function(r){return e.rrule(r.clone())}),this._exrule.forEach(function(r){return e.exrule(r.clone())}),this._rdate.forEach(function(r){return e.rdate(new Date(r.getTime()))}),this._exdate.forEach(function(r){return e.exdate(new Date(r.getTime()))}),e},t}(ae)});var wS=ee(()=>{Zn();Qg();zg();bi();Ms();$t()});var Et,Vc=ee(()=>{"use strict";wS();Et=class{constructor({rrule:t,baseOnToday:e,occurrence:r}){this.rrule=t,this.baseOnToday=e,this.occurrence=r}static fromText({recurrenceRuleText:t,occurrence:e}){try{let r=t.match(/^([a-zA-Z0-9, !]+?)( when done)?$/i);if(r==null)return null;let i=r[1].trim(),s=r[2]!==void 0,a=ae.parseText(i);if(a!==null){let o=e.referenceDate;!s&&o!==null?a.dtstart=window.moment(o).startOf("day").utc(!0).toDate():a.dtstart=window.moment().startOf("day").utc(!0).toDate();let l=new ae(a);return new Et({rrule:l,baseOnToday:s,occurrence:e})}}catch(r){r instanceof Error&&console.log(r.message)}return null}toText(){let t=this.rrule.toText();return this.baseOnToday&&(t+=" when done"),t}next(t=window.moment()){let e=this.nextReferenceDate(t);return e===null?null:this.occurrence.next(e)}identicalTo(t){return this.baseOnToday!==t.baseOnToday||!this.occurrence.isIdenticalTo(t.occurrence)?!1:this.toText()===t.toText()}nextReferenceDate(t){return this.baseOnToday?this.nextReferenceDateFromToday(t.clone()).toDate():this.nextReferenceDateFromOriginalReferenceDate().toDate()}nextReferenceDateFromToday(t){let e=new ae(me(U({},this.rrule.origOptions),{dtstart:t.startOf("day").utc(!0).toDate()}));return this.nextAfter(t.endOf("day"),e)}nextReferenceDateFromOriginalReferenceDate(){var e;let t=window.moment((e=this.occurrence.referenceDate)!=null?e:void 0).endOf("day");return this.nextAfter(t,this.rrule)}nextAfter(t,e){t.utc(!0);let r=window.moment.utc(e.after(t.toDate())),i=this.toText(),s=i.match(/every( \d+)? month(s)?(.*)?/);s!==null&&(i.includes(" on ")||(r=Et.nextAfterMonths(t,r,e,s[1])));let a=i.match(/every( \d+)? year(s)?(.*)?/);return a!==null&&(r=Et.nextAfterYears(t,r,e,a[1])),Et.addTimezone(r)}static nextAfterMonths(t,e,r,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));Et.isSkippingTooManyMonths(t,e,s);)e=Et.fromOneDayEarlier(t,r);return e}static isSkippingTooManyMonths(t,e,r){let i=e.month()-t.month();return i+=(e.year()-t.year())*12,i>r}static nextAfterYears(t,e,r,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));Et.isSkippingTooManyYears(t,e,s);)e=Et.fromOneDayEarlier(t,r);return e}static isSkippingTooManyYears(t,e,r){return e.year()-t.year()>r}static fromOneDayEarlier(t,e){t.subtract(1,"days").endOf("day");let r=e.origOptions;return r.dtstart=t.startOf("day").toDate(),e=new ae(r),window.moment.utc(e.after(t.toDate()))}static addTimezone(t){return window.moment.utc(t).set({hour:12,minute:0,second:0,millisecond:0}).local(!0).startOf("day")}}});function kS(n,t,e){let r=new Map([["cancelled date","cancelledDate"],["created date","createdDate"],["depends on","dependsOn"],["done date","doneDate"],["due date","dueDate"],["id","id"],["on completion","onCompletion"],["priority","priority"],["recurrence rule","recurrenceRule"],["scheduled date","scheduledDate"],["start date","startDate"]]);for(let[i,s]of r.entries())if(t.startsWith(i))return n.setVisibility(s,e),!0;return t.startsWith("tags")?(n.setTagsVisibility(e),!0):!1}var eu,zc,Br,Is=ee(()=>{"use strict";eu=(p=>(p.Description="description",p.Id="id",p.DependsOn="dependsOn",p.Priority="priority",p.RecurrenceRule="recurrenceRule",p.OnCompletion="onCompletion",p.CreatedDate="createdDate",p.StartDate="startDate",p.ScheduledDate="scheduledDate",p.DueDate="dueDate",p.CancelledDate="cancelledDate",p.DoneDate="doneDate",p.BlockLink="blockLink",p))(eu||{}),zc=Object.values(eu),Br=class{constructor(){this.visible={};this.tagsVisible=!0;zc.forEach(t=>{this.visible[t]=!0})}isShown(t){return this.visible[t]}areTagsShown(){return this.tagsVisible}hide(t){this.visible[t]=!1}setVisibility(t,e){this.visible[t]=e}setTagsVisibility(t){this.tagsVisible=t}get shownComponents(){return zc.filter(t=>this.visible[t])}get hiddenComponents(){return zc.filter(t=>!this.visible[t])}get toggleableComponents(){return zc.filter(t=>t!=="description"&&t!=="blockLink")}toggleVisibilityExceptDescriptionAndBlockLink(){this.toggleableComponents.forEach(t=>{this.visible[t]=!this.visible[t]}),this.setTagsVisibility(!this.areTagsShown())}}});var tn,gt,er=ee(()=>{"use strict";tn=(a=>(a.TODO="TODO",a.DONE="DONE",a.IN_PROGRESS="IN_PROGRESS",a.CANCELLED="CANCELLED",a.NON_TASK="NON_TASK",a.EMPTY="EMPTY",a))(tn||{}),gt=class{constructor(t,e,r,i,s="TODO"){this.symbol=t,this.name=e,this.nextStatusSymbol=r,this.availableAsCommand=i,this.type=s}}});function SS(n){let t=n.trim().toLowerCase();return t==="delete"?"delete":t==="keep"?"keep":""}function JL(n,t){return n.filter(e=>e!==t)}function e2(n,t){let e=n.status,r=t.status,i=r.type===e.type;return r.type!=="DONE"||i}function ES(n,t){let e=t.length;if(n.onCompletion===""||n.onCompletion==="keep"||e===0)return t;let r=t[e-1];if(e2(n,r))return t;let s=n.onCompletion;return s==="delete"?JL(t,r):(console.log(`OnCompletion action ${s} not yet implemented.`),t)}var Kc=ee(()=>{"use strict";er()});var ja=ee(()=>{"use strict"});function Wa(n){return qa(n,"(\\d{4}-\\d{2}-\\d{2})")}function qa(n,t){let e=n+"\uFE0F?";return t!==""&&(e+=" *"+t),e+="$",new RegExp(e,"u")}function Qc(n,t,e){return e?n?" "+t:` ${t} ${e}`:""}function $a(n,t,e){return e?n?" "+t:` ${t} ${e.format(ce.dateFormat)}`:""}function DS(){let n=[];return Object.values(tu.prioritySymbols).forEach(t=>{t.length>0&&n.push(t)}),Object.values(tu).forEach(t=>{typeof t=="string"&&n.push(t)}),n}var Fs,Xg,tu,Ls,nu=ee(()=>{"use strict";Is();Kc();Nc();Vc();Nt();ja();ii();Fs=/[a-zA-Z0-9-_]+/,Xg=new RegExp(Fs.source+"( *, *"+Fs.source+" *)*");tu={prioritySymbols:{Highest:"\u{1F53A}",High:"\u23EB",Medium:"\u{1F53C}",Low:"\u{1F53D}",Lowest:"\u23EC",None:""},startDateSymbol:"\u{1F6EB}",createdDateSymbol:"\u2795",scheduledDateSymbol:"\u23F3",dueDateSymbol:"\u{1F4C5}",doneDateSymbol:"\u2705",cancelledDateSymbol:"\u274C",recurrenceSymbol:"\u{1F501}",onCompletionSymbol:"\u{1F3C1}",dependsOnSymbol:"\u26D4",idSymbol:"\u{1F194}",TaskFormatRegularExpressions:{priorityRegex:qa("([\u{1F53A}\u23EB\u{1F53C}\u{1F53D}\u23EC])",""),startDateRegex:Wa("\u{1F6EB}"),createdDateRegex:Wa("\u2795"),scheduledDateRegex:Wa("[\u23F3\u231B]"),dueDateRegex:Wa("[\u{1F4C5}\u{1F4C6}\u{1F5D3}]"),doneDateRegex:Wa("\u2705"),cancelledDateRegex:Wa("\u274C"),recurrenceRegex:qa("\u{1F501}","([a-zA-Z0-9, !]+)"),onCompletionRegex:qa("\u{1F3C1}","([a-zA-Z]+)"),dependsOnRegex:qa("\u26D4","("+Xg.source+")"),idRegex:qa("\u{1F194}","("+Fs.source+")")}};Ls=class{constructor(t){this.symbols=t}serialize(t){let e=new Br,r="",i=!1;for(let s of e.shownComponents)r+=this.componentToString(t,i,s);return r}componentToString(t,e,r){var T;let{prioritySymbols:i,startDateSymbol:s,createdDateSymbol:a,scheduledDateSymbol:o,doneDateSymbol:l,cancelledDateSymbol:u,recurrenceSymbol:c,onCompletionSymbol:d,dueDateSymbol:f,dependsOnSymbol:p,idSymbol:b}=this.symbols;switch(r){case"description":return t.description;case"priority":{let _="";return t.priority==="0"?_=" "+i.Highest:t.priority==="1"?_=" "+i.High:t.priority==="2"?_=" "+i.Medium:t.priority==="4"?_=" "+i.Low:t.priority==="5"&&(_=" "+i.Lowest),_}case"startDate":return $a(e,s,t.startDate);case"createdDate":return $a(e,a,t.createdDate);case"scheduledDate":return t.scheduledDateIsInferred?"":$a(e,o,t.scheduledDate);case"doneDate":return $a(e,l,t.doneDate);case"cancelledDate":return $a(e,u,t.cancelledDate);case"dueDate":return $a(e,f,t.dueDate);case"recurrenceRule":return t.recurrence?Qc(e,c,t.recurrence.toText()):"";case"onCompletion":return t.onCompletion===""?"":Qc(e,d,t.onCompletion);case"dependsOn":return t.dependsOn.length===0?"":Qc(e,p,t.dependsOn.join(","));case"id":return Qc(e,b,t.id);case"blockLink":return(T=t.blockLink)!=null?T:"";default:throw new Error(`Don't know how to render task component of type '${r}'`)}}parsePriority(t){let{prioritySymbols:e}=this.symbols;switch(t){case e.Lowest:return"5";case e.Low:return"4";case e.Medium:return"2";case e.High:return"1";case e.Highest:return"0";default:return"3"}}deserialize(t){let{TaskFormatRegularExpressions:e}=this.symbols,r,i="3",s=null,a=null,o=null,l=null,u=null,c=null,d="",f=null,p="",b="",T=[],_="",O=20,D=0;do{r=!1;let A=t.match(e.priorityRegex);A!==null&&(i=this.parsePriority(A[1]),t=t.replace(e.priorityRegex,"").trim(),r=!0);let Y=t.match(e.doneDateRegex);Y!==null&&(l=window.moment(Y[1],ce.dateFormat),t=t.replace(e.doneDateRegex,"").trim(),r=!0);let q=t.match(e.cancelledDateRegex);q!==null&&(u=window.moment(q[1],ce.dateFormat),t=t.replace(e.cancelledDateRegex,"").trim(),r=!0);let se=t.match(e.dueDateRegex);se!==null&&(o=window.moment(se[1],ce.dateFormat),t=t.replace(e.dueDateRegex,"").trim(),r=!0);let H=t.match(e.scheduledDateRegex);H!==null&&(a=window.moment(H[1],ce.dateFormat),t=t.replace(e.scheduledDateRegex,"").trim(),r=!0);let Z=t.match(e.startDateRegex);Z!==null&&(s=window.moment(Z[1],ce.dateFormat),t=t.replace(e.startDateRegex,"").trim(),r=!0);let ye=t.match(e.createdDateRegex);ye!==null&&(c=window.moment(ye[1],ce.dateFormat),t=t.replace(e.createdDateRegex,"").trim(),r=!0);let we=t.match(e.recurrenceRegex);we!==null&&(d=we[1].trim(),t=t.replace(e.recurrenceRegex,"").trim(),r=!0);let V=t.match(e.onCompletionRegex);if(V!=null){t=t.replace(e.onCompletionRegex,"").trim();let $=V[1];p=SS($),r=!0}let K=t.match(ce.hashTagsFromEnd);if(K!=null){t=t.replace(ce.hashTagsFromEnd,"").trim(),r=!0;let $=K[0].trim();_=_.length>0?[$,_].join(" "):$}let C=t.match(e.idRegex);C!=null&&(t=t.replace(e.idRegex,"").trim(),b=C[1].trim(),r=!0);let J=t.match(e.dependsOnRegex);J!=null&&(t=t.replace(e.dependsOnRegex,"").trim(),T=J[1].replace(/ /g,"").split(",").filter($=>$!==""),r=!0),D++}while(r&&D<=O);return d.length>0&&(f=Et.fromText({recurrenceRuleText:d,occurrence:new Qn({startDate:s,scheduledDate:a,dueDate:o})})),_.length>0&&(t+=" "+_),{description:t,priority:i,startDate:s,createdDate:c,scheduledDate:a,dueDate:o,doneDate:l,cancelledDate:u,recurrence:f,onCompletion:p,id:b,dependsOn:T,tags:fe.extractHashtags(t)}}}});function ru(n){let t="",e=!0;for(;e;)t=Math.random().toString(36).substring(2,6+2),n.includes(t)||(e=!1);return t}function Zc(n,t){return n.id!==""?n:new fe(me(U({},n),{id:ru(t)}))}function xS(n,t){let e=n;if(!n.dependsOn.includes(t.id)){let r=[...n.dependsOn,t.id];e=new fe(me(U({},n),{dependsOn:r}))}return e}function OS(n,t){let e=n;if(n.dependsOn.includes(t.id)){let r=n.dependsOn.filter(i=>i!==t.id);e=new fe(me(U({},n),{dependsOn:r}))}return e}var Jc=ee(()=>{"use strict";Nt()});function qi(n){return n.replace(/([.*+?^${}()|[\]/\\])/g,"\\$1")}var iu=ee(()=>{"use strict"});var Hi,Fe,Mn=ee(()=>{"use strict";iu();Hi=class{constructor(){this._globalFilter="";this._removeGlobalFilter=!1}static getInstance(){return Hi.instance||(Hi.instance=new Hi),Hi.instance}get(){return this._globalFilter}set(t){this._globalFilter=t}reset(){this.set(Hi.empty)}isEmpty(){return this.get()===Hi.empty}equals(t){return this.get()===t}includedIn(t){let e=this.get();return t.includes(e)}prependTo(t){return this.get()+" "+t}removeAsWordFromDependingOnSettings(t){return this.getRemoveGlobalFilter()?this.removeAsWordFrom(t):t}getRemoveGlobalFilter(){return this._removeGlobalFilter}setRemoveGlobalFilter(t){this._removeGlobalFilter=t}removeAsWordFrom(t){if(this.isEmpty())return t;let e=RegExp("(^|\\s)"+qi(this.get())+"($|\\s)","ug");return t.search(e)>-1&&(t=t.replace(e,"$1$2").replace(" "," ").trim()),t}removeAsSubstringFrom(t){let e=this.get();return t.replace(e,"").trim()}},Fe=Hi;Fe.empty=""});function Us(n){return Fe.getInstance().removeAsWordFrom(n.description)}function r2(n,t){if(n==="")return t;let e=(0,MS.prepareSimpleSearch)(n),r=-4;return t.map(a=>{let o=e(Us(a));return o&&o.score>r?{item:a,match:o}:null}).filter(Boolean).sort((a,o)=>o.match.score-a.match.score).map(a=>a.item)}function ed(n,t,e,r,i){let s=r2(n,t);return s=s.filter(a=>!(a.isDone||a.description.includes("<%")&&a.description.includes("%>")||a.description===(e==null?void 0:e.description)&&a.taskLocation.path===(e==null?void 0:e.taskLocation.path)&&a.originalMarkdown===(e==null?void 0:e.originalMarkdown)||(r==null?void 0:r.includes(a))||(i==null?void 0:i.includes(a)))),e&&s.sort((a,o)=>{let l=a.taskLocation.path===e.taskLocation.path,u=o.taskLocation.path===e.taskLocation.path;return l&&u?Math.abs(a.taskLocation.lineNumber-e.taskLocation.lineNumber)-Math.abs(o.taskLocation.lineNumber-e.taskLocation.lineNumber):l?-1:u?1:0}),s.slice(0,n2)}var MS,n2,Zg=ee(()=>{"use strict";MS=require("obsidian");Mn();n2=20});function RS(n){return globalThis.SHOW_DEPENDENCY_SUGGESTIONS&&n}function ey(n,t,e){let r=[n.startDateSymbol,n.scheduledDateSymbol,n.dueDateSymbol].join("|");return(i,s,a,o,l,u)=>{let c=[],{postfix:d,insertSkip:f}=s2(e,i,s),p={line:i,cursorPos:s,settings:a,dataviewMode:e,postfix:d,insertSkip:f};return c=c.concat(d2(r,t,p)),c=c.concat(f2(n.recurrenceSymbol,p)),RS(l)&&(c=c.concat(m2(n.idSymbol,o,p)),c=c.concat(h2(n.dependsOnSymbol,o,p,u))),c=c.concat(p2(n.onCompletionSymbol,t,p)),c=c.concat(a2(n,l,p)),c.length>0&&!c.some(b=>b.suggestionType==="match")&&(e||c.unshift({suggestionType:"empty",displayText:"\u23CE",appendText:` -`})),c=c.slice(0,a.autoSuggestMaxItems),c}}function s2(n,t,e){let r=y2(t.substring(0,e),[["(",")"],["[","]"]])=="("?")":"]",i=n?r+" ":" ",s=n&&t.length>e&&t.charAt(e)===r?1:0;return{postfix:i,insertSkip:s}}function a2(n,t,e){let r=[],i=e.line;Ys(r,i,n.dueDateSymbol,"due date"),Ys(r,i,n.startDateSymbol,"start date"),Ys(r,i,n.scheduledDateSymbol,"scheduled date"),o2(r,n,e),Ys(r,i,n.recurrenceSymbol,"recurring (repeat)"),l2(r,n,e),RS(t)&&(Ys(r,i,n.idSymbol,"id"),Ys(r,i,n.dependsOnSymbol,"depends on id")),Ys(r,i,n.onCompletionSymbol,"on completion");let s=u2(r,e);return s.length===0&&e.settings.autoSuggestMinMatch===0?r:s}function Ys(n,t,e,r){t.includes(e)||n.push({displayText:`${e} ${r}`,appendText:`${e} `})}function o2(n,t,e){if(!(i=>Object.values(t.prioritySymbols).some(s=>s.length>0&&i.includes(s)))(e.line)){let i=t.prioritySymbols,s=["High","Medium","Low","Highest","Lowest"];for(let a of s){let o=i[a];n.push({displayText:e.dataviewMode?`${o} priority`:`${o} ${a.toLowerCase()} priority`,appendText:`${o}${e.postfix}`,insertSkip:e.dataviewMode?e.insertSkip:void 0})}}}function l2(n,t,e){if(!e.line.includes(t.createdDateSymbol)){let i=xn.parseDate("today",!0).format(ce.dateFormat);n.push({textToMatch:`${t.createdDateSymbol} created`,displayText:`${t.createdDateSymbol} created today (${i})`,appendText:`${t.createdDateSymbol} ${i}`+e.postfix,insertSkip:e.dataviewMode?e.insertSkip:void 0})}}function u2(n,t){let e=Ha(/([a-zA-Z'_-]*)/g,t),r=[];if(e&&e.length>0){let i=e[0];if(i.length>=Math.max(1,t.settings.autoSuggestMinMatch)){let s=n.filter(a=>{var l;return((l=a.textToMatch)!=null?l:a.displayText).toLowerCase().includes(i.toLowerCase())});for(let a of s){let o=t.dataviewMode&&(a.displayText.includes("priority")||a.displayText.includes("created"))?i.length+t.insertSkip:i.length;r.push({suggestionType:"match",displayText:a.displayText,appendText:a.appendText,insertAt:e.index,insertSkip:o})}}}return r}function AS(n,t){let e=`${t}`,r=`${n} ${t}`;return{displayText:e,appendText:r}}function c2(n,t){let r=`${xn.parseDate(t,!0).format(ce.dateFormat)}`,i=`${t} (${r})`,s=`${n} ${r}`;return{displayText:i,appendText:s}}function d2(n,t,e){let r=["today","tomorrow","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","next week","next month","next year"],i=[],s=new RegExp(`(${n})\\s*([0-9a-zA-Z ]*)`,"ug"),a=Ha(s,e);if(a&&a.length>=2){let o=a[2];if(o.length<e.settings.autoSuggestMinMatch)return[];let l=o&&o.length>1?xn.parseDate(Pc(o),!0):null;if(l!=null&&l.isValid()){let c=l.format(ce.dateFormat);td(e,a,[c],AS,i)}let u=ty(r,o,t,!0);td(e,a,u,c2,i)}return i}function f2(n,t){var a;let e=["every","every day","every week","every month","every month on the","every year","every week on Sunday","every week on Monday","every week on Tuesday","every week on Wednesday","every week on Thursday","every week on Friday","every week on Saturday"],r=[],i=new RegExp(`(${n})\\s*([0-9a-zA-Z ]*)`,"ug"),s=Ha(i,t);if(s&&s.length>=2){let o=s[1],l=s[2];if(l.length<t.settings.autoSuggestMinMatch)return[];if(l.length>0){let f=(a=Et.fromText({recurrenceRuleText:l,occurrence:new Qn({startDate:null,scheduledDate:null,dueDate:null})}))==null?void 0:a.toText();if(f){let p=`${o} ${f}`+t.postfix;if(r.push({suggestionType:"match",displayText:`\u2705 ${f}`,appendText:p,insertAt:s.index,insertSkip:ny(s[0],t)}),s[0]==p)return[]}}let u=t.settings.autoSuggestMaxItems/2,c=ty(e,l,u,!1);c.length===0&&l.trim().length===0&&(c=e.slice(0,u)),td(t,s,c,(f,p)=>{let b=`${p}`,T=`${f} ${p}`;return{displayText:b,appendText:T}},r)}return r}function p2(n,t,e){let r=["delete","keep"],i=[],s=new RegExp(`(${n})\\s*([0-9a-zA-Z ]*)`,"ug"),a=Ha(s,e);if(a&&a.length>=2){let o=a[2];if(o.length<e.settings.autoSuggestMinMatch)return[];let l=ty(r,o,t,!0);td(e,a,l,AS,i)}return i}function m2(n,t,e){let r=[],i=new RegExp(`(${n})\\s*(${Fs.source})?`,"ug"),s=Ha(i,e);if(s&&s[0].trim().length<=n.length){let a=ru(t.map(o=>o.id));r.push({suggestionType:"match",displayText:"generate unique id",appendText:`${n} ${a}`+e.postfix,insertAt:s.index,insertSkip:ny(s[0],e)})}return r}function h2(n,t,e,r){let i=[],s=e.dataviewMode?qi("()[]"):DS(),a=new RegExp(`(${n})([0-9a-zA-Z-_ ^,]*,)*([^,${s}]*)`,"ug"),o=Ha(a,e);if(o&&o.length>=1){let l=o[2]||"",u=o[3],c=[];if(l){let d=l.split(",").map(f=>f.trim());c=t.filter(f=>f.id&&d.includes(f.id))}if(u.length>=e.settings.autoSuggestMinMatch){let d=ed(u.trim(),t,r,[],c);for(let f of d)i.push({suggestionType:"match",displayText:`${f.descriptionWithoutTags} - From: ${f.filename}.md`,appendText:`${n}${l}`,insertAt:o.index,insertSkip:n.length+l.length+u.length,taskItDependsOn:f})}}return i}function ty(n,t,e,r){let s=n.filter(a=>t&&t.length>=1&&a.toLowerCase().includes(t.toLowerCase())).slice(0,e);return r&&s.length===0&&(s=n.slice(0,e)),s}function td(n,t,e,r,i){let s=t[1];for(let a of e){let{displayText:o,appendText:l}=r(s,a);i.push({suggestionType:"match",displayText:o,appendText:l+n.postfix,insertAt:t.index,insertSkip:ny(t[0],n)})}}function Ha(n,t){let e=t.line.matchAll(n),r=t.cursorPos;for(let i of e)if((i==null?void 0:i.index)&&i.index<r&&r<=i.index+i[0].length)return i}function g2(n,t){if(t.length===0)return!1;let e=Object.fromEntries(t.map(([i,s])=>[i,0])),r=Object.fromEntries(t.map(([i,s])=>[s,i]));for(let i of n)i in e?e[i]++:i in r&&(e[r[i]]=Math.max(0,e[r[i]]-1));return Object.values(e).some(i=>i>0)}function y2(n,t){if(t.length===0)return null;let e=Object.fromEntries(t.map(([s,a])=>[s,0])),r=Object.fromEntries(t.map(([s,a])=>[a,s])),i=[];for(let s=0;s<n.length;s++){let a=n[s];if(a in e)e[a]++,i.push({bracket:a,idx:s});else if(a in r){if(e[r[a]]>=1){for(let o=i.length-1;o>=0;o--)if(i[o].bracket==r[a]){i.splice(o,1);break}}e[r[a]]=Math.max(0,e[r[a]]-1)}}return i.length>0?i[i.length-1].bracket:null}function PS(n,t){return(e,r,i,s,a)=>g2(e.slice(0,r),t)?n(e,r,i,s,a):[]}function NS(n,t,e){let r=Fe.getInstance().includedIn(n),i=b2(e,t,r);return typeof i=="boolean"?i:r&&T2(n,t.ch)}function b2(n,t,e){var r,i;return(i=(r=n==null?void 0:n.editorComponent)==null?void 0:r.showTasksPluginAutoSuggest)==null?void 0:i.call(r,t,n,e)}function T2(n,t){if(n.length===0)return!1;let e=fe.extractTaskComponents(n);if(!e)return!1;let r=e.indentation+e.listMarker+" ["+e.status.symbol+"] ";return t>=r.length}function ny(n,t){return t.dataviewMode?n.length+t.insertSkip:n.length}var Jg,i2,ry=ee(()=>{"use strict";Ag();Pg();Nc();Vc();nu();Nt();Jc();Mn();ii();Zg();iu();Jg=5,i2=!0;globalThis.SHOW_DEPENDENCY_SUGGESTIONS=i2});var Rn,su=ee(()=>{"use strict";ja();Rn=class{static priorityNameUsingNone(t){let e="ERROR";switch(t){case"1":e="High";break;case"0":e="Highest";break;case"2":e="Medium";break;case"3":e="None";break;case"4":e="Low";break;case"5":e="Lowest";break}return e}static priorityNameUsingNormal(t){return Rn.priorityNameUsingNone(t).replace("None","Normal")}static priorityValue(t){switch(t.toLowerCase()){case"lowest":return"5";case"low":return"4";case"medium":return"2";case"high":return"1";case"highest":return"0";default:return"3"}}}});function kr(n){let t=["(?:",/(?=[^\]]+\])\[/,"|",/(?=[^)]+\))\(/,")",/ */,n,/ */,/[)\]]/,/(?: *,)?/,/$/].map(e=>e instanceof RegExp?e.source:e).join("");return new RegExp(t,n.flags)}var iy,nd,sy=ee(()=>{"use strict";Is();su();nu();iy={prioritySymbols:{Highest:"priority:: highest",High:"priority:: high",Medium:"priority:: medium",Low:"priority:: low",Lowest:"priority:: lowest",None:""},startDateSymbol:"start::",createdDateSymbol:"created::",scheduledDateSymbol:"scheduled::",dueDateSymbol:"due::",doneDateSymbol:"completion::",cancelledDateSymbol:"cancelled::",recurrenceSymbol:"repeat::",onCompletionSymbol:"onCompletion::",idSymbol:"id::",dependsOnSymbol:"dependsOn::",TaskFormatRegularExpressions:{priorityRegex:kr(/priority:: *(highest|high|medium|low|lowest)/),startDateRegex:kr(/start:: *(\d{4}-\d{2}-\d{2})/),createdDateRegex:kr(/created:: *(\d{4}-\d{2}-\d{2})/),scheduledDateRegex:kr(/scheduled:: *(\d{4}-\d{2}-\d{2})/),dueDateRegex:kr(/due:: *(\d{4}-\d{2}-\d{2})/),doneDateRegex:kr(/completion:: *(\d{4}-\d{2}-\d{2})/),cancelledDateRegex:kr(/cancelled:: *(\d{4}-\d{2}-\d{2})/),recurrenceRegex:kr(/repeat:: *([a-zA-Z0-9, !]+)/),onCompletionRegex:kr(/onCompletion:: *([a-zA-Z]+)/),dependsOnRegex:kr(new RegExp("dependsOn:: *("+Xg.source+")")),idRegex:kr(new RegExp("id:: *("+Fs.source+")"))}},nd=class extends Ls{constructor(){super(iy)}parsePriority(t){return Rn.priorityValue(t)}componentToString(t,e,r){let i=super.componentToString(t,e,r),s=["blockLink","description"];return i!==""&&!s.includes(r)?` [${i.trim()}]`:i}}});var tr,ge,Sr=ee(()=>{"use strict";er();tr=class{get symbol(){return this.configuration.symbol}get name(){return this.configuration.name}get nextStatusSymbol(){return this.configuration.nextStatusSymbol}get nextSymbol(){return this.configuration.nextStatusSymbol}get availableAsCommand(){return this.configuration.availableAsCommand}get type(){return this.configuration.type}get typeGroupText(){let t=this.type,e;switch(t){case"IN_PROGRESS":e="1";break;case"TODO":e="2";break;case"DONE":e="3";break;case"CANCELLED":e="4";break;case"NON_TASK":e="5";break;case"EMPTY":e="6";break}return`%%${e}%%${t}`}constructor(t){this.configuration=t}static getTypeForUnknownSymbol(t){switch(t){case"x":case"X":return"DONE";case"/":return"IN_PROGRESS";case"-":return"CANCELLED";case"":return"EMPTY";case" ":default:return"TODO"}}static getTypeFromStatusTypeString(t){return tn[t]||"TODO"}static createUnknownStatus(t){return new tr(new gt(t,"Unknown","x",!1,"TODO"))}static createFromImportedValue(t){let e=t[0],r=tr.getTypeFromStatusTypeString(t[3]);return new tr(new gt(e,t[1],t[2],!1,r))}isCompleted(){return this.type==="DONE"}isCancelled(){return this.type==="CANCELLED"}identicalTo(t){let e=["symbol","name","nextStatusSymbol","availableAsCommand","type"];for(let r of e)if(this[r]!==t[r])return!1;return!0}previewText(){let t="";return tr.tasksPluginCanCreateCommandsForStatuses()&&this.availableAsCommand&&(t=" Available as a command."),`- [${this.symbol}] => [${this.nextStatusSymbol}], name: '${this.name}', type: '${this.configuration.type}'.${t}`}static tasksPluginCanCreateCommandsForStatuses(){return!1}},ge=tr;ge.DONE=new tr(new gt("x","Done"," ",!0,"DONE")),ge.EMPTY=new tr(new gt("","EMPTY","",!0,"EMPTY")),ge.TODO=new tr(new gt(" ","Todo","x",!0,"TODO")),ge.CANCELLED=new tr(new gt("-","Cancelled"," ",!0,"CANCELLED")),ge.IN_PROGRESS=new tr(new gt("/","In Progress","x",!0,"IN_PROGRESS")),ge.NON_TASK=new tr(new gt("Q","Non-Task","A",!0,"NON_TASK"))});var IS=ee(()=>{"use strict";nu()});var rd,FS=ee(()=>{"use strict";rd=class{constructor(t=!1,e=!1,r=!1){this.ignoreSortInstructions=t,this.showTaskHiddenData=e,this.recordTimings=r}}});var et,Ga=ee(()=>{"use strict";Sr();et=class{constructor(){this.coreStatuses=[ge.TODO.configuration,ge.DONE.configuration],this.customStatuses=[ge.IN_PROGRESS.configuration,ge.CANCELLED.configuration]}static addStatus(t,e){t.push(e)}static replaceStatus(t,e,r){let i=this.findStatusIndex(e,t);return i<=-1?!1:(t.splice(i,1,r),!0)}static findStatusIndex(t,e){let r=new ge(t);return e.findIndex(i=>new ge(i).previewText()==r.previewText())}static deleteStatus(t,e){let r=this.findStatusIndex(e,t);return r<=-1?!1:(t.splice(r,1),!0)}static deleteAllCustomStatuses(t){t.customStatuses.splice(0)}static resetAllCustomStatuses(t){et.deleteAllCustomStatuses(t),new et().customStatuses.forEach(r=>{et.addStatus(t.customStatuses,r)})}static bulkAddStatusCollection(t,e){let r=[];return e.forEach(i=>{t.customStatuses.find(a=>a.symbol==i[0]&&a.name==i[1]&&a.nextStatusSymbol==i[2])?r.push(`The status ${i[1]} (${i[0]}) is already added.`):et.addStatus(t.customStatuses,ge.createFromImportedValue(i))}),r}static allStatuses(t){return t.coreStatuses.concat(t.customStatuses)}static applyToStatusRegistry(t,e){e.clearStatuses(),et.allStatuses(t).forEach(r=>{e.add(r)})}}});var US,LS=ee(()=>{US=[{index:9999,internalName:"INTERNAL_TESTING_ENABLED_BY_DEFAULT",displayName:"Test Item. Used to validate the Feature Framework.",description:"Description",enabledByDefault:!0,stable:!1}]});var _i,YS=ee(()=>{"use strict";LS();_i=class{constructor(t,e,r,i,s,a){this.internalName=t;this.index=e;this.description=r;this.displayName=i;this.enabledByDefault=s;this.stable=a}static get values(){let t=[];return US.forEach(e=>{t=[...t,new _i(e.internalName,e.index,e.description,e.displayName,e.enabledByDefault,e.stable)]}),t}static get settingsFlags(){let t={};return _i.values.forEach(e=>{t[e.internalName]=e.enabledByDefault}),t}static fromString(t){for(let e of _i.values)if(t===e.internalName)return e;throw new RangeError(`Illegal argument passed to fromString(): ${t} does not correspond to any available Feature ${this.prototype.constructor.name}`)}}});function ay(n,t){for(let e in n)t[e]===void 0&&(t[e]=n[e])}function au(){return Er[le().taskFormat]}var Er,oy,vi,le,ft,js,jS,nn=ee(()=>{"use strict";ry();nu();sy();er();Sr();IS();sy();gs();FS();Ga();YS();Er={tasksPluginEmoji:{getDisplayName:()=>N.t("settings.format.displayName.tasksEmojiFormat"),taskSerializer:new Ls(tu),buildSuggestions:ey(tu,Jg,!1)},dataview:{getDisplayName:()=>N.t("settings.format.displayName.dataview"),taskSerializer:new nd,buildSuggestions:PS(ey(iy,Jg,!0),[["(",")"],["[","]"]])}},oy={globalQuery:"",globalFilter:"",removeGlobalFilter:!1,taskFormat:"tasksPluginEmoji",setCreatedDate:!1,setDoneDate:!0,setCancelledDate:!0,autoSuggestInEditor:!0,autoSuggestMinMatch:0,autoSuggestMaxItems:20,provideAccessKeys:!0,useFilenameAsScheduledDate:!1,filenameAsScheduledDateFormat:"",filenameAsDateFolders:[],recurrenceOnNextLine:!1,statusSettings:new et,features:_i.settingsFlags,generalSettings:{},headingOpened:{},debugSettings:new rd,loggingOptions:{minLevels:{"":"info",tasks:"info","tasks.Cache":"info","tasks.Events":"info","tasks.File":"info","tasks.Query":"info","tasks.Task":"info"}}},vi=U({},oy);le=()=>(ay(_i.settingsFlags,vi.features),ay(oy.loggingOptions.minLevels,vi.loggingOptions.minLevels),ay(oy.debugSettings,vi.debugSettings),vi.statusSettings.customStatuses.forEach((n,t,e)=>{var i,s;let r=ge.getTypeFromStatusTypeString(n.type);e[t]=new gt((i=n.symbol)!=null?i:" ",n.name,(s=n.nextStatusSymbol)!=null?s:"x",n.availableAsCommand,r)}),U({},vi)),ft=n=>(vi=U(U({},vi),n),le()),js=(n,t)=>(vi.generalSettings[n]=t,le()),jS=n=>{var t;return(t=vi.features[n])!=null?t:!1}});function id(n){let e={"<":"<",">":">","&":"&",'"':"""}[n];return e!==void 0?e:n}function WS(n){let t=[...n],e="";return t.forEach(r=>{e+=id(r)}),e}var $S=ee(()=>{"use strict"});var Be,wi=ee(()=>{"use strict";$S();Sr();er();Be=class{constructor(){this._registeredStatuses=[];this.addDefaultStatusTypes()}set(t){this.clearStatuses(),t.forEach(e=>{this.add(e)})}get registeredStatuses(){return this._registeredStatuses.filter(({symbol:t})=>t!==ge.EMPTY.symbol)}static getInstance(){return Be.instance||(Be.instance=new Be),Be.instance}add(t){this.hasSymbol(t.symbol)||(t instanceof ge?this._registeredStatuses.push(t):this._registeredStatuses.push(new ge(t)))}bySymbol(t){return this.hasSymbol(t)?this.getSymbol(t):ge.EMPTY}bySymbolOrCreate(t){return this.hasSymbol(t)?this.getSymbol(t):ge.createUnknownStatus(t)}byName(t){return this._registeredStatuses.filter(({name:e})=>e===t).length>0?this._registeredStatuses.filter(({name:e})=>e===t)[0]:ge.EMPTY}resetToDefaultStatuses(){this.clearStatuses(),this.addDefaultStatusTypes()}clearStatuses(){this._registeredStatuses=[]}getNextStatus(t){if(t.nextStatusSymbol!==""){let e=this.bySymbol(t.nextStatusSymbol);if(e!==null)return e}return ge.EMPTY}getNextStatusOrCreate(t){let e=this.getNextStatus(t);return e.type!=="EMPTY"?e:ge.createUnknownStatus(t.nextStatusSymbol)}getNextRecurrenceStatusOrCreate(t){let e=this.getNextStatusOrCreate(t),r=this.getNextRecurrenceStatusOfType(e,"TODO");if(r)return r;let i=this.getNextRecurrenceStatusOfType(e,"IN_PROGRESS");return i||this.bySymbolOrCreate(" ")}getNextRecurrenceStatusOfType(t,e){if(t.type===e)return t;let r=t;for(let i=0;i<this.registeredStatuses.length-1;i++)if(r=this.getNextStatusOrCreate(r),r.type===e)return r}findUnknownStatuses(t){let e=t.filter(s=>!this.hasSymbol(s.symbol)),r=new Be,i=[];return e.forEach(s=>{if(r.hasSymbol(s.symbol))return;let a=Be.copyStatusWithNewName(s,`Unknown (${s.symbol})`);i.push(a),r.add(a)}),i.sort((s,a)=>s.symbol.localeCompare(a.symbol,void 0,{numeric:!0}))}static copyStatusWithNewName(t,e){let r=new gt(t.symbol,e,t.nextStatusSymbol,t.availableAsCommand,t.type);return new ge(r)}getSymbol(t){return this._registeredStatuses.filter(({symbol:e})=>e===t)[0]}hasSymbol(t){return this._registeredStatuses.find(e=>e.symbol===t)!==void 0}addDefaultStatusTypes(){[ge.TODO,ge.IN_PROGRESS,ge.DONE,ge.CANCELLED].forEach(e=>{this.add(e)})}mermaidDiagram(t=!1){let e=this.registeredStatuses,r="mermaid",i=[],s=[];return e.forEach((a,o)=>{let l=this.getMermaidNodeLabel(a,t);i.push(`${o+1}${l}`);let u=this.getNextStatus(a);if(this.addEdgeIfNotToInternal(e,u,s,o,!1),a.type==="DONE"){let c=this.getNextRecurrenceStatusOrCreate(a);c.symbol!==u.symbol&&this.addEdgeIfNotToInternal(e,c,s,o,!0)}}),` +`)},t.prototype.clone=function(){var e=new t(!!this._cache);return this._rrule.forEach(function(r){return e.rrule(r.clone())}),this._exrule.forEach(function(r){return e.exrule(r.clone())}),this._rdate.forEach(function(r){return e.rdate(new Date(r.getTime()))}),this._exdate.forEach(function(r){return e.exdate(new Date(r.getTime()))}),e},t}(ae)});var wS=ee(()=>{Jn();Qg();zg();bi();Ms();$t()});var Dt,Vc=ee(()=>{"use strict";wS();Dt=class{constructor({rrule:t,baseOnToday:e,occurrence:r}){this.rrule=t,this.baseOnToday=e,this.occurrence=r}static fromText({recurrenceRuleText:t,occurrence:e}){try{let r=t.match(/^([a-zA-Z0-9, !]+?)( when done)?$/i);if(r==null)return null;let i=r[1].trim(),s=r[2]!==void 0,a=ae.parseText(i);if(a!==null){let o=e.referenceDate;!s&&o!==null?a.dtstart=window.moment(o).startOf("day").utc(!0).toDate():a.dtstart=window.moment().startOf("day").utc(!0).toDate();let l=new ae(a);return new Dt({rrule:l,baseOnToday:s,occurrence:e})}}catch(r){r instanceof Error&&console.log(r.message)}return null}toText(){let t=this.rrule.toText();return this.baseOnToday&&(t+=" when done"),t}next(t=window.moment(),e=!1){let r=this.nextReferenceDate(t);return r===null?null:this.occurrence.next(r,e)}identicalTo(t){return this.baseOnToday!==t.baseOnToday||!this.occurrence.isIdenticalTo(t.occurrence)?!1:this.toText()===t.toText()}nextReferenceDate(t){return this.baseOnToday?this.nextReferenceDateFromToday(t.clone()).toDate():this.nextReferenceDateFromOriginalReferenceDate().toDate()}nextReferenceDateFromToday(t){let e=new ae(de(U({},this.rrule.origOptions),{dtstart:t.startOf("day").utc(!0).toDate()}));return this.nextAfter(t.endOf("day"),e)}nextReferenceDateFromOriginalReferenceDate(){var e;let t=window.moment((e=this.occurrence.referenceDate)!=null?e:void 0).endOf("day");return this.nextAfter(t,this.rrule)}nextAfter(t,e){t.utc(!0);let r=window.moment.utc(e.after(t.toDate())),i=this.toText(),s=i.match(/every( \d+)? month(s)?(.*)?/);s!==null&&(i.includes(" on ")||(r=Dt.nextAfterMonths(t,r,e,s[1])));let a=i.match(/every( \d+)? year(s)?(.*)?/);return a!==null&&(r=Dt.nextAfterYears(t,r,e,a[1])),Dt.addTimezone(r)}static nextAfterMonths(t,e,r,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));Dt.isSkippingTooManyMonths(t,e,s);)e=Dt.fromOneDayEarlier(t,r);return e}static isSkippingTooManyMonths(t,e,r){let i=e.month()-t.month();return i+=(e.year()-t.year())*12,i>r}static nextAfterYears(t,e,r,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));Dt.isSkippingTooManyYears(t,e,s);)e=Dt.fromOneDayEarlier(t,r);return e}static isSkippingTooManyYears(t,e,r){return e.year()-t.year()>r}static fromOneDayEarlier(t,e){t.subtract(1,"days").endOf("day");let r=e.origOptions;return r.dtstart=t.startOf("day").toDate(),e=new ae(r),window.moment.utc(e.after(t.toDate()))}static addTimezone(t){return window.moment.utc(t).set({hour:12,minute:0,second:0,millisecond:0}).local(!0).startOf("day")}}});function kS(n,t,e){let r=new Map([["cancelled date","cancelledDate"],["created date","createdDate"],["depends on","dependsOn"],["done date","doneDate"],["due date","dueDate"],["id","id"],["on completion","onCompletion"],["priority","priority"],["recurrence rule","recurrenceRule"],["scheduled date","scheduledDate"],["start date","startDate"]]);for(let[i,s]of r.entries())if(t.startsWith(i))return n.setVisibility(s,e),!0;return t.startsWith("tags")?(n.setTagsVisibility(e),!0):!1}var eu,zc,Br,Is=ee(()=>{"use strict";eu=(p=>(p.Description="description",p.Id="id",p.DependsOn="dependsOn",p.Priority="priority",p.RecurrenceRule="recurrenceRule",p.OnCompletion="onCompletion",p.CreatedDate="createdDate",p.StartDate="startDate",p.ScheduledDate="scheduledDate",p.DueDate="dueDate",p.CancelledDate="cancelledDate",p.DoneDate="doneDate",p.BlockLink="blockLink",p))(eu||{}),zc=Object.values(eu),Br=class{constructor(){this.visible={};this.tagsVisible=!0;zc.forEach(t=>{this.visible[t]=!0})}isShown(t){return this.visible[t]}areTagsShown(){return this.tagsVisible}hide(t){this.visible[t]=!1}setVisibility(t,e){this.visible[t]=e}setTagsVisibility(t){this.tagsVisible=t}get shownComponents(){return zc.filter(t=>this.visible[t])}get hiddenComponents(){return zc.filter(t=>!this.visible[t])}get toggleableComponents(){return zc.filter(t=>t!=="description"&&t!=="blockLink")}toggleVisibilityExceptDescriptionAndBlockLink(){this.toggleableComponents.forEach(t=>{this.visible[t]=!this.visible[t]}),this.setTagsVisibility(!this.areTagsShown())}}});var Gt,gt,Cn=ee(()=>{"use strict";Gt=(a=>(a.TODO="TODO",a.DONE="DONE",a.IN_PROGRESS="IN_PROGRESS",a.CANCELLED="CANCELLED",a.NON_TASK="NON_TASK",a.EMPTY="EMPTY",a))(Gt||{}),gt=class{constructor(t,e,r,i,s="TODO"){this.symbol=t,this.name=e,this.nextStatusSymbol=r,this.availableAsCommand=i,this.type=s}}});function SS(n){let t=n.trim().toLowerCase();return t==="delete"?"delete":t==="keep"?"keep":""}function e2(n,t){return n.filter(e=>e!==t)}function t2(n,t){let e=n.status,r=t.status,i=r.type===e.type;return r.type!=="DONE"||i}function DS(n,t){let e=t.length;if(n.onCompletion===""||n.onCompletion==="keep"||e===0)return t;let r=t[e-1];if(t2(n,r))return t;let s=n.onCompletion;return s==="delete"?e2(t,r):(console.log(`OnCompletion action ${s} not yet implemented.`),t)}var Kc=ee(()=>{"use strict";Cn()});var ja=ee(()=>{"use strict"});function Wa(n){return qa(n,"(\\d{4}-\\d{2}-\\d{2})")}function qa(n,t){let e=n+"\uFE0F?";return t!==""&&(e+=" *"+t),e+="$",new RegExp(e,"u")}function Qc(n,t,e){return e?n?" "+t:` ${t} ${e}`:""}function $a(n,t,e){return e?n?" "+t:` ${t} ${e.format(fe.dateFormat)}`:""}function ES(){let n=[];return Object.values(tu.prioritySymbols).forEach(t=>{t.length>0&&n.push(t)}),Object.values(tu).forEach(t=>{typeof t=="string"&&n.push(t)}),n}var Fs,Xg,tu,Ls,nu=ee(()=>{"use strict";Is();Kc();Nc();Vc();Nt();ja();ii();Fs=/[a-zA-Z0-9-_]+/,Xg=new RegExp(Fs.source+"( *, *"+Fs.source+" *)*");tu={prioritySymbols:{Highest:"\u{1F53A}",High:"\u23EB",Medium:"\u{1F53C}",Low:"\u{1F53D}",Lowest:"\u23EC",None:""},startDateSymbol:"\u{1F6EB}",createdDateSymbol:"\u2795",scheduledDateSymbol:"\u23F3",dueDateSymbol:"\u{1F4C5}",doneDateSymbol:"\u2705",cancelledDateSymbol:"\u274C",recurrenceSymbol:"\u{1F501}",onCompletionSymbol:"\u{1F3C1}",dependsOnSymbol:"\u26D4",idSymbol:"\u{1F194}",TaskFormatRegularExpressions:{priorityRegex:qa("([\u{1F53A}\u23EB\u{1F53C}\u{1F53D}\u23EC])",""),startDateRegex:Wa("\u{1F6EB}"),createdDateRegex:Wa("\u2795"),scheduledDateRegex:Wa("[\u23F3\u231B]"),dueDateRegex:Wa("[\u{1F4C5}\u{1F4C6}\u{1F5D3}]"),doneDateRegex:Wa("\u2705"),cancelledDateRegex:Wa("\u274C"),recurrenceRegex:qa("\u{1F501}","([a-zA-Z0-9, !]+)"),onCompletionRegex:qa("\u{1F3C1}","([a-zA-Z]+)"),dependsOnRegex:qa("\u26D4","("+Xg.source+")"),idRegex:qa("\u{1F194}","("+Fs.source+")")}};Ls=class{constructor(t){this.symbols=t}serialize(t){let e=new Br,r="",i=!1;for(let s of e.shownComponents)r+=this.componentToString(t,i,s);return r}componentToString(t,e,r){var T;let{prioritySymbols:i,startDateSymbol:s,createdDateSymbol:a,scheduledDateSymbol:o,doneDateSymbol:l,cancelledDateSymbol:u,recurrenceSymbol:c,onCompletionSymbol:d,dueDateSymbol:f,dependsOnSymbol:p,idSymbol:b}=this.symbols;switch(r){case"description":return t.description;case"priority":{let _="";return t.priority==="0"?_=" "+i.Highest:t.priority==="1"?_=" "+i.High:t.priority==="2"?_=" "+i.Medium:t.priority==="4"?_=" "+i.Low:t.priority==="5"&&(_=" "+i.Lowest),_}case"startDate":return $a(e,s,t.startDate);case"createdDate":return $a(e,a,t.createdDate);case"scheduledDate":return t.scheduledDateIsInferred?"":$a(e,o,t.scheduledDate);case"doneDate":return $a(e,l,t.doneDate);case"cancelledDate":return $a(e,u,t.cancelledDate);case"dueDate":return $a(e,f,t.dueDate);case"recurrenceRule":return t.recurrence?Qc(e,c,t.recurrence.toText()):"";case"onCompletion":return t.onCompletion===""?"":Qc(e,d,t.onCompletion);case"dependsOn":return t.dependsOn.length===0?"":Qc(e,p,t.dependsOn.join(","));case"id":return Qc(e,b,t.id);case"blockLink":return(T=t.blockLink)!=null?T:"";default:throw new Error(`Don't know how to render task component of type '${r}'`)}}parsePriority(t){let{prioritySymbols:e}=this.symbols;switch(t){case e.Lowest:return"5";case e.Low:return"4";case e.Medium:return"2";case e.High:return"1";case e.Highest:return"0";default:return"3"}}deserialize(t){let{TaskFormatRegularExpressions:e}=this.symbols,r,i="3",s=null,a=null,o=null,l=null,u=null,c=null,d="",f=null,p="",b="",T=[],_="",O=20,E=0;do{r=!1;let A=t.match(e.priorityRegex);A!==null&&(i=this.parsePriority(A[1]),t=t.replace(e.priorityRegex,"").trim(),r=!0);let Y=t.match(e.doneDateRegex);Y!==null&&(l=window.moment(Y[1],fe.dateFormat),t=t.replace(e.doneDateRegex,"").trim(),r=!0);let q=t.match(e.cancelledDateRegex);q!==null&&(u=window.moment(q[1],fe.dateFormat),t=t.replace(e.cancelledDateRegex,"").trim(),r=!0);let se=t.match(e.dueDateRegex);se!==null&&(o=window.moment(se[1],fe.dateFormat),t=t.replace(e.dueDateRegex,"").trim(),r=!0);let H=t.match(e.scheduledDateRegex);H!==null&&(a=window.moment(H[1],fe.dateFormat),t=t.replace(e.scheduledDateRegex,"").trim(),r=!0);let Z=t.match(e.startDateRegex);Z!==null&&(s=window.moment(Z[1],fe.dateFormat),t=t.replace(e.startDateRegex,"").trim(),r=!0);let ye=t.match(e.createdDateRegex);ye!==null&&(c=window.moment(ye[1],fe.dateFormat),t=t.replace(e.createdDateRegex,"").trim(),r=!0);let we=t.match(e.recurrenceRegex);we!==null&&(d=we[1].trim(),t=t.replace(e.recurrenceRegex,"").trim(),r=!0);let V=t.match(e.onCompletionRegex);if(V!=null){t=t.replace(e.onCompletionRegex,"").trim();let $=V[1];p=SS($),r=!0}let K=t.match(fe.hashTagsFromEnd);if(K!=null){t=t.replace(fe.hashTagsFromEnd,"").trim(),r=!0;let $=K[0].trim();_=_.length>0?[$,_].join(" "):$}let C=t.match(e.idRegex);C!=null&&(t=t.replace(e.idRegex,"").trim(),b=C[1].trim(),r=!0);let J=t.match(e.dependsOnRegex);J!=null&&(t=t.replace(e.dependsOnRegex,"").trim(),T=J[1].replace(/ /g,"").split(",").filter($=>$!==""),r=!0),E++}while(r&&E<=O);return d.length>0&&(f=Dt.fromText({recurrenceRuleText:d,occurrence:new Xn({startDate:s,scheduledDate:a,dueDate:o})})),_.length>0&&(t+=" "+_),{description:t,priority:i,startDate:s,createdDate:c,scheduledDate:a,dueDate:o,doneDate:l,cancelledDate:u,recurrence:f,onCompletion:p,id:b,dependsOn:T,tags:pe.extractHashtags(t)}}}});function ru(n){let t="",e=!0;for(;e;)t=Math.random().toString(36).substring(2,6+2),n.includes(t)||(e=!1);return t}function Zc(n,t){return n.id!==""?n:new pe(de(U({},n),{id:ru(t)}))}function xS(n,t){let e=n;if(!n.dependsOn.includes(t.id)){let r=[...n.dependsOn,t.id];e=new pe(de(U({},n),{dependsOn:r}))}return e}function OS(n,t){let e=n;if(n.dependsOn.includes(t.id)){let r=n.dependsOn.filter(i=>i!==t.id);e=new pe(de(U({},n),{dependsOn:r}))}return e}var Jc=ee(()=>{"use strict";Nt()});function qi(n){return n.replace(/([.*+?^${}()|[\]/\\])/g,"\\$1")}var iu=ee(()=>{"use strict"});var Hi,Fe,Mn=ee(()=>{"use strict";iu();Hi=class{constructor(){this._globalFilter="";this._removeGlobalFilter=!1}static getInstance(){return Hi.instance||(Hi.instance=new Hi),Hi.instance}get(){return this._globalFilter}set(t){this._globalFilter=t}reset(){this.set(Hi.empty)}isEmpty(){return this.get()===Hi.empty}equals(t){return this.get()===t}includedIn(t){let e=this.get();return t.includes(e)}prependTo(t){return this.get()+" "+t}removeAsWordFromDependingOnSettings(t){return this.getRemoveGlobalFilter()?this.removeAsWordFrom(t):t}getRemoveGlobalFilter(){return this._removeGlobalFilter}setRemoveGlobalFilter(t){this._removeGlobalFilter=t}removeAsWordFrom(t){if(this.isEmpty())return t;let e=RegExp("(^|\\s)"+qi(this.get())+"($|\\s)","ug");return t.search(e)>-1&&(t=t.replace(e,"$1$2").replace(" "," ").trim()),t}removeAsSubstringFrom(t){let e=this.get();return t.replace(e,"").trim()}},Fe=Hi;Fe.empty=""});function Us(n){return Fe.getInstance().removeAsWordFrom(n.description)}function i2(n,t){if(n==="")return t;let e=(0,MS.prepareSimpleSearch)(n),r=-4;return t.map(a=>{let o=e(Us(a));return o&&o.score>r?{item:a,match:o}:null}).filter(Boolean).sort((a,o)=>o.match.score-a.match.score).map(a=>a.item)}function ed(n,t,e,r,i){let s=i2(n,t);return s=s.filter(a=>!(a.isDone||a.description.includes("<%")&&a.description.includes("%>")||a.description===(e==null?void 0:e.description)&&a.taskLocation.path===(e==null?void 0:e.taskLocation.path)&&a.originalMarkdown===(e==null?void 0:e.originalMarkdown)||(r==null?void 0:r.includes(a))||(i==null?void 0:i.includes(a)))),e&&s.sort((a,o)=>{let l=a.taskLocation.path===e.taskLocation.path,u=o.taskLocation.path===e.taskLocation.path;return l&&u?Math.abs(a.taskLocation.lineNumber-e.taskLocation.lineNumber)-Math.abs(o.taskLocation.lineNumber-e.taskLocation.lineNumber):l?-1:u?1:0}),s.slice(0,r2)}var MS,r2,Zg=ee(()=>{"use strict";MS=require("obsidian");Mn();r2=20});function RS(n){return globalThis.SHOW_DEPENDENCY_SUGGESTIONS&&n}function ey(n,t,e){let r=[n.startDateSymbol,n.scheduledDateSymbol,n.dueDateSymbol].join("|");return(i,s,a,o,l,u)=>{let c=[],{postfix:d,insertSkip:f}=a2(e,i,s),p={line:i,cursorPos:s,settings:a,dataviewMode:e,postfix:d,insertSkip:f};return c=c.concat(f2(r,t,p)),c=c.concat(p2(n.recurrenceSymbol,p)),RS(l)&&(c=c.concat(h2(n.idSymbol,o,p)),c=c.concat(g2(n.dependsOnSymbol,o,p,u))),c=c.concat(m2(n.onCompletionSymbol,t,p)),c=c.concat(o2(n,l,p)),c.length>0&&!c.some(b=>b.suggestionType==="match")&&(e||c.unshift({suggestionType:"empty",displayText:"\u23CE",appendText:` +`})),c=c.slice(0,a.autoSuggestMaxItems),c}}function a2(n,t,e){let r=b2(t.substring(0,e),[["(",")"],["[","]"]])=="("?")":"]",i=n?r+" ":" ",s=n&&t.length>e&&t.charAt(e)===r?1:0;return{postfix:i,insertSkip:s}}function o2(n,t,e){let r=[],i=e.line;Ys(r,i,n.dueDateSymbol,"due date"),Ys(r,i,n.startDateSymbol,"start date"),Ys(r,i,n.scheduledDateSymbol,"scheduled date"),l2(r,n,e),Ys(r,i,n.recurrenceSymbol,"recurring (repeat)"),u2(r,n,e),RS(t)&&(Ys(r,i,n.idSymbol,"id"),Ys(r,i,n.dependsOnSymbol,"depends on id")),Ys(r,i,n.onCompletionSymbol,"on completion");let s=c2(r,e);return s.length===0&&e.settings.autoSuggestMinMatch===0?r:s}function Ys(n,t,e,r){t.includes(e)||n.push({displayText:`${e} ${r}`,appendText:`${e} `})}function l2(n,t,e){if(!(i=>Object.values(t.prioritySymbols).some(s=>s.length>0&&i.includes(s)))(e.line)){let i=t.prioritySymbols,s=["High","Medium","Low","Highest","Lowest"];for(let a of s){let o=i[a];n.push({displayText:e.dataviewMode?`${o} priority`:`${o} ${a.toLowerCase()} priority`,appendText:`${o}${e.postfix}`,insertSkip:e.dataviewMode?e.insertSkip:void 0})}}}function u2(n,t,e){if(!e.line.includes(t.createdDateSymbol)){let i=En.parseDate("today",!0).format(fe.dateFormat);n.push({textToMatch:`${t.createdDateSymbol} created`,displayText:`${t.createdDateSymbol} created today (${i})`,appendText:`${t.createdDateSymbol} ${i}`+e.postfix,insertSkip:e.dataviewMode?e.insertSkip:void 0})}}function c2(n,t){let e=Ha(/([a-zA-Z'_-]*)/g,t),r=[];if(e&&e.length>0){let i=e[0];if(i.length>=Math.max(1,t.settings.autoSuggestMinMatch)){let s=n.filter(a=>{var l;return((l=a.textToMatch)!=null?l:a.displayText).toLowerCase().includes(i.toLowerCase())});for(let a of s){let o=t.dataviewMode&&(a.displayText.includes("priority")||a.displayText.includes("created"))?i.length+t.insertSkip:i.length;r.push({suggestionType:"match",displayText:a.displayText,appendText:a.appendText,insertAt:e.index,insertSkip:o})}}}return r}function AS(n,t){let e=`${t}`,r=`${n} ${t}`;return{displayText:e,appendText:r}}function d2(n,t){let r=`${En.parseDate(t,!0).format(fe.dateFormat)}`,i=`${t} (${r})`,s=`${n} ${r}`;return{displayText:i,appendText:s}}function f2(n,t,e){let r=["today","tomorrow","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","next week","next month","next year"],i=[],s=new RegExp(`(${n})\\s*([0-9a-zA-Z ]*)`,"ug"),a=Ha(s,e);if(a&&a.length>=2){let o=a[2];if(o.length<e.settings.autoSuggestMinMatch)return[];let l=o&&o.length>1?En.parseDate(Pc(o),!0):null;if(l!=null&&l.isValid()){let c=l.format(fe.dateFormat);td(e,a,[c],AS,i)}let u=ty(r,o,t,!0);td(e,a,u,d2,i)}return i}function p2(n,t){var a;let e=["every","every day","every week","every month","every month on the","every year","every week on Sunday","every week on Monday","every week on Tuesday","every week on Wednesday","every week on Thursday","every week on Friday","every week on Saturday"],r=[],i=new RegExp(`(${n})\\s*([0-9a-zA-Z ]*)`,"ug"),s=Ha(i,t);if(s&&s.length>=2){let o=s[1],l=s[2];if(l.length<t.settings.autoSuggestMinMatch)return[];if(l.length>0){let f=(a=Dt.fromText({recurrenceRuleText:l,occurrence:new Xn({startDate:null,scheduledDate:null,dueDate:null})}))==null?void 0:a.toText();if(f){let p=`${o} ${f}`+t.postfix;if(r.push({suggestionType:"match",displayText:`\u2705 ${f}`,appendText:p,insertAt:s.index,insertSkip:ny(s[0],t)}),s[0]==p)return[]}}let u=t.settings.autoSuggestMaxItems/2,c=ty(e,l,u,!1);c.length===0&&l.trim().length===0&&(c=e.slice(0,u)),td(t,s,c,(f,p)=>{let b=`${p}`,T=`${f} ${p}`;return{displayText:b,appendText:T}},r)}return r}function m2(n,t,e){let r=["delete","keep"],i=[],s=new RegExp(`(${n})\\s*([0-9a-zA-Z ]*)`,"ug"),a=Ha(s,e);if(a&&a.length>=2){let o=a[2];if(o.length<e.settings.autoSuggestMinMatch)return[];let l=ty(r,o,t,!0);td(e,a,l,AS,i)}return i}function h2(n,t,e){let r=[],i=new RegExp(`(${n})\\s*(${Fs.source})?`,"ug"),s=Ha(i,e);if(s&&s[0].trim().length<=n.length){let a=ru(t.map(o=>o.id));r.push({suggestionType:"match",displayText:"generate unique id",appendText:`${n} ${a}`+e.postfix,insertAt:s.index,insertSkip:ny(s[0],e)})}return r}function g2(n,t,e,r){let i=[],s=e.dataviewMode?qi("()[]"):ES(),a=new RegExp(`(${n})([0-9a-zA-Z-_ ^,]*,)*([^,${s}]*)`,"ug"),o=Ha(a,e);if(o&&o.length>=1){let l=o[2]||"",u=o[3],c=[];if(l){let d=l.split(",").map(f=>f.trim());c=t.filter(f=>f.id&&d.includes(f.id))}if(u.length>=e.settings.autoSuggestMinMatch){let d=ed(u.trim(),t,r,[],c);for(let f of d)i.push({suggestionType:"match",displayText:`${f.descriptionWithoutTags} - From: ${f.filename}.md`,appendText:`${n}${l}`,insertAt:o.index,insertSkip:n.length+l.length+u.length,taskItDependsOn:f})}}return i}function ty(n,t,e,r){let s=n.filter(a=>t&&t.length>=1&&a.toLowerCase().includes(t.toLowerCase())).slice(0,e);return r&&s.length===0&&(s=n.slice(0,e)),s}function td(n,t,e,r,i){let s=t[1];for(let a of e){let{displayText:o,appendText:l}=r(s,a);i.push({suggestionType:"match",displayText:o,appendText:l+n.postfix,insertAt:t.index,insertSkip:ny(t[0],n)})}}function Ha(n,t){let e=t.line.matchAll(n),r=t.cursorPos;for(let i of e)if((i==null?void 0:i.index)&&i.index<r&&r<=i.index+i[0].length)return i}function y2(n,t){if(t.length===0)return!1;let e=Object.fromEntries(t.map(([i,s])=>[i,0])),r=Object.fromEntries(t.map(([i,s])=>[s,i]));for(let i of n)i in e?e[i]++:i in r&&(e[r[i]]=Math.max(0,e[r[i]]-1));return Object.values(e).some(i=>i>0)}function b2(n,t){if(t.length===0)return null;let e=Object.fromEntries(t.map(([s,a])=>[s,0])),r=Object.fromEntries(t.map(([s,a])=>[a,s])),i=[];for(let s=0;s<n.length;s++){let a=n[s];if(a in e)e[a]++,i.push({bracket:a,idx:s});else if(a in r){if(e[r[a]]>=1){for(let o=i.length-1;o>=0;o--)if(i[o].bracket==r[a]){i.splice(o,1);break}}e[r[a]]=Math.max(0,e[r[a]]-1)}}return i.length>0?i[i.length-1].bracket:null}function PS(n,t){return(e,r,i,s,a)=>y2(e.slice(0,r),t)?n(e,r,i,s,a):[]}function NS(n,t,e){let r=Fe.getInstance().includedIn(n),i=T2(e,t,r);return typeof i=="boolean"?i:r&&_2(n,t.ch)}function T2(n,t,e){var r,i;return(i=(r=n==null?void 0:n.editorComponent)==null?void 0:r.showTasksPluginAutoSuggest)==null?void 0:i.call(r,t,n,e)}function _2(n,t){if(n.length===0)return!1;let e=pe.extractTaskComponents(n);if(!e||e.status.type==="NON_TASK")return!1;let r=e.indentation+e.listMarker+" ["+e.status.symbol+"] ";return t>=r.length}function ny(n,t){return t.dataviewMode?n.length+t.insertSkip:n.length}var Jg,s2,ry=ee(()=>{"use strict";Ag();Pg();Nc();Vc();nu();Nt();Jc();Mn();ii();Zg();iu();Cn();Jg=5,s2=!0;globalThis.SHOW_DEPENDENCY_SUGGESTIONS=s2});var Rn,su=ee(()=>{"use strict";ja();Rn=class{static priorityNameUsingNone(t){let e="ERROR";switch(t){case"1":e="High";break;case"0":e="Highest";break;case"2":e="Medium";break;case"3":e="None";break;case"4":e="Low";break;case"5":e="Lowest";break}return e}static priorityNameUsingNormal(t){return Rn.priorityNameUsingNone(t).replace("None","Normal")}static priorityValue(t){switch(t.toLowerCase()){case"lowest":return"5";case"low":return"4";case"medium":return"2";case"high":return"1";case"highest":return"0";default:return"3"}}}});function Sr(n){let t=["(?:",/(?=[^\]]+\])\[/,"|",/(?=[^)]+\))\(/,")",/ */,n,/ */,/[)\]]/,/(?: *,)?/,/$/].map(e=>e instanceof RegExp?e.source:e).join("");return new RegExp(t,n.flags)}var iy,nd,sy=ee(()=>{"use strict";Is();su();nu();iy={prioritySymbols:{Highest:"priority:: highest",High:"priority:: high",Medium:"priority:: medium",Low:"priority:: low",Lowest:"priority:: lowest",None:""},startDateSymbol:"start::",createdDateSymbol:"created::",scheduledDateSymbol:"scheduled::",dueDateSymbol:"due::",doneDateSymbol:"completion::",cancelledDateSymbol:"cancelled::",recurrenceSymbol:"repeat::",onCompletionSymbol:"onCompletion::",idSymbol:"id::",dependsOnSymbol:"dependsOn::",TaskFormatRegularExpressions:{priorityRegex:Sr(/priority:: *(highest|high|medium|low|lowest)/),startDateRegex:Sr(/start:: *(\d{4}-\d{2}-\d{2})/),createdDateRegex:Sr(/created:: *(\d{4}-\d{2}-\d{2})/),scheduledDateRegex:Sr(/scheduled:: *(\d{4}-\d{2}-\d{2})/),dueDateRegex:Sr(/due:: *(\d{4}-\d{2}-\d{2})/),doneDateRegex:Sr(/completion:: *(\d{4}-\d{2}-\d{2})/),cancelledDateRegex:Sr(/cancelled:: *(\d{4}-\d{2}-\d{2})/),recurrenceRegex:Sr(/repeat:: *([a-zA-Z0-9, !]+)/),onCompletionRegex:Sr(/onCompletion:: *([a-zA-Z]+)/),dependsOnRegex:Sr(new RegExp("dependsOn:: *("+Xg.source+")")),idRegex:Sr(new RegExp("id:: *("+Fs.source+")"))}},nd=class extends Ls{constructor(){super(iy)}parsePriority(t){return Rn.priorityValue(t)}componentToString(t,e,r){let i=super.componentToString(t,e,r),s=["blockLink","description"];return i!==""&&!s.includes(r)?` [${i.trim()}]`:i}}});var tr,ge,Dr=ee(()=>{"use strict";Cn();tr=class{get symbol(){return this.configuration.symbol}get name(){return this.configuration.name}get nextStatusSymbol(){return this.configuration.nextStatusSymbol}get nextSymbol(){return this.configuration.nextStatusSymbol}get availableAsCommand(){return this.configuration.availableAsCommand}get type(){return this.configuration.type}get typeGroupText(){let t=this.type,e;switch(t){case"IN_PROGRESS":e="1";break;case"TODO":e="2";break;case"DONE":e="3";break;case"CANCELLED":e="4";break;case"NON_TASK":e="5";break;case"EMPTY":e="6";break}return`%%${e}%%${t}`}constructor(t){this.configuration=t}static getTypeForUnknownSymbol(t){switch(t){case"x":case"X":return"DONE";case"/":return"IN_PROGRESS";case"-":return"CANCELLED";case"":return"EMPTY";case" ":default:return"TODO"}}static getTypeFromStatusTypeString(t){return Gt[t]||"TODO"}static createUnknownStatus(t){return new tr(new gt(t,"Unknown","x",!1,"TODO"))}static createFromImportedValue(t){let e=t[0],r=tr.getTypeFromStatusTypeString(t[3]);return new tr(new gt(e,t[1],t[2],!1,r))}isCompleted(){return this.type==="DONE"}isCancelled(){return this.type==="CANCELLED"}identicalTo(t){let e=["symbol","name","nextStatusSymbol","availableAsCommand","type"];for(let r of e)if(this[r]!==t[r])return!1;return!0}previewText(){let t="";return tr.tasksPluginCanCreateCommandsForStatuses()&&this.availableAsCommand&&(t=" Available as a command."),`- [${this.symbol}] => [${this.nextStatusSymbol}], name: '${this.name}', type: '${this.configuration.type}'.${t}`}static tasksPluginCanCreateCommandsForStatuses(){return!1}},ge=tr;ge.DONE=new tr(new gt("x","Done"," ",!0,"DONE")),ge.EMPTY=new tr(new gt("","EMPTY","",!0,"EMPTY")),ge.TODO=new tr(new gt(" ","Todo","x",!0,"TODO")),ge.CANCELLED=new tr(new gt("-","Cancelled"," ",!0,"CANCELLED")),ge.IN_PROGRESS=new tr(new gt("/","In Progress","x",!0,"IN_PROGRESS")),ge.NON_TASK=new tr(new gt("Q","Non-Task","A",!0,"NON_TASK"))});var IS=ee(()=>{"use strict";nu()});var rd,FS=ee(()=>{"use strict";rd=class{constructor(t=!1,e=!1,r=!1){this.ignoreSortInstructions=t,this.showTaskHiddenData=e,this.recordTimings=r}}});var et,Ga=ee(()=>{"use strict";Dr();et=class{constructor(){this.coreStatuses=[ge.TODO.configuration,ge.DONE.configuration],this.customStatuses=[ge.IN_PROGRESS.configuration,ge.CANCELLED.configuration]}static addStatus(t,e){t.push(e)}static replaceStatus(t,e,r){let i=this.findStatusIndex(e,t);return i<=-1?!1:(t.splice(i,1,r),!0)}static findStatusIndex(t,e){let r=new ge(t);return e.findIndex(i=>new ge(i).previewText()==r.previewText())}static deleteStatus(t,e){let r=this.findStatusIndex(e,t);return r<=-1?!1:(t.splice(r,1),!0)}static deleteAllCustomStatuses(t){t.customStatuses.splice(0)}static resetAllCustomStatuses(t){et.deleteAllCustomStatuses(t),new et().customStatuses.forEach(r=>{et.addStatus(t.customStatuses,r)})}static bulkAddStatusCollection(t,e){let r=[];return e.forEach(i=>{t.customStatuses.find(a=>a.symbol==i[0]&&a.name==i[1]&&a.nextStatusSymbol==i[2])?r.push(`The status ${i[1]} (${i[0]}) is already added.`):et.addStatus(t.customStatuses,ge.createFromImportedValue(i))}),r}static allStatuses(t){return t.coreStatuses.concat(t.customStatuses)}static applyToStatusRegistry(t,e){e.clearStatuses(),et.allStatuses(t).forEach(r=>{e.add(r)})}}});var US,LS=ee(()=>{US=[{index:9999,internalName:"INTERNAL_TESTING_ENABLED_BY_DEFAULT",displayName:"Test Item. Used to validate the Feature Framework.",description:"Description",enabledByDefault:!0,stable:!1}]});var _i,YS=ee(()=>{"use strict";LS();_i=class{constructor(t,e,r,i,s,a){this.internalName=t;this.index=e;this.description=r;this.displayName=i;this.enabledByDefault=s;this.stable=a}static get values(){let t=[];return US.forEach(e=>{t=[...t,new _i(e.internalName,e.index,e.description,e.displayName,e.enabledByDefault,e.stable)]}),t}static get settingsFlags(){let t={};return _i.values.forEach(e=>{t[e.internalName]=e.enabledByDefault}),t}static fromString(t){for(let e of _i.values)if(t===e.internalName)return e;throw new RangeError(`Illegal argument passed to fromString(): ${t} does not correspond to any available Feature ${this.prototype.constructor.name}`)}}});function ay(n,t){for(let e in n)t[e]===void 0&&(t[e]=n[e])}function au(){return Er[le().taskFormat]}var Er,oy,vi,le,at,js,jS,rn=ee(()=>{"use strict";ry();nu();sy();Cn();Dr();IS();sy();gs();FS();Ga();YS();Er={tasksPluginEmoji:{getDisplayName:()=>N.t("settings.format.displayName.tasksEmojiFormat"),taskSerializer:new Ls(tu),buildSuggestions:ey(tu,Jg,!1)},dataview:{getDisplayName:()=>N.t("settings.format.displayName.dataview"),taskSerializer:new nd,buildSuggestions:PS(ey(iy,Jg,!0),[["(",")"],["[","]"]])}},oy={globalQuery:"",globalFilter:"",removeGlobalFilter:!1,taskFormat:"tasksPluginEmoji",setCreatedDate:!1,setDoneDate:!0,setCancelledDate:!0,autoSuggestInEditor:!0,autoSuggestMinMatch:0,autoSuggestMaxItems:20,provideAccessKeys:!0,useFilenameAsScheduledDate:!1,filenameAsScheduledDateFormat:"",filenameAsDateFolders:[],recurrenceOnNextLine:!1,removeScheduledDateOnRecurrence:!1,statusSettings:new et,features:_i.settingsFlags,generalSettings:{},headingOpened:{},debugSettings:new rd,loggingOptions:{minLevels:{"":"info",tasks:"info","tasks.Cache":"info","tasks.Events":"info","tasks.File":"info","tasks.Query":"info","tasks.Task":"info"}}},vi=U({},oy);le=()=>(ay(_i.settingsFlags,vi.features),ay(oy.loggingOptions.minLevels,vi.loggingOptions.minLevels),ay(oy.debugSettings,vi.debugSettings),vi.statusSettings.customStatuses.forEach((n,t,e)=>{var i,s;let r=ge.getTypeFromStatusTypeString(n.type);e[t]=new gt((i=n.symbol)!=null?i:" ",n.name,(s=n.nextStatusSymbol)!=null?s:"x",n.availableAsCommand,r)}),U({},vi)),at=n=>(vi=U(U({},vi),n),le()),js=(n,t)=>(vi.generalSettings[n]=t,le()),jS=n=>{var t;return(t=vi.features[n])!=null?t:!1}});function id(n){let e={"<":"<",">":">","&":"&",'"':"""}[n];return e!==void 0?e:n}function WS(n){let t=[...n],e="";return t.forEach(r=>{e+=id(r)}),e}var $S=ee(()=>{"use strict"});var Be,wi=ee(()=>{"use strict";$S();Dr();Cn();Be=class{constructor(){this._registeredStatuses=[];this.addDefaultStatusTypes()}set(t){this.clearStatuses(),t.forEach(e=>{this.add(e)})}get registeredStatuses(){return this._registeredStatuses.filter(({symbol:t})=>t!==ge.EMPTY.symbol)}static getInstance(){return Be.instance||(Be.instance=new Be),Be.instance}add(t){this.hasSymbol(t.symbol)||(t instanceof ge?this._registeredStatuses.push(t):this._registeredStatuses.push(new ge(t)))}bySymbol(t){return this.hasSymbol(t)?this.getSymbol(t):ge.EMPTY}bySymbolOrCreate(t){return this.hasSymbol(t)?this.getSymbol(t):ge.createUnknownStatus(t)}byName(t){return this._registeredStatuses.filter(({name:e})=>e===t).length>0?this._registeredStatuses.filter(({name:e})=>e===t)[0]:ge.EMPTY}resetToDefaultStatuses(){this.clearStatuses(),this.addDefaultStatusTypes()}clearStatuses(){this._registeredStatuses=[]}getNextStatus(t){if(t.nextStatusSymbol!==""){let e=this.bySymbol(t.nextStatusSymbol);if(e!==null)return e}return ge.EMPTY}getNextStatusOrCreate(t){let e=this.getNextStatus(t);return e.type!=="EMPTY"?e:ge.createUnknownStatus(t.nextStatusSymbol)}getNextRecurrenceStatusOrCreate(t){let e=this.getNextStatusOrCreate(t),r=this.getNextRecurrenceStatusOfType(e,"TODO");if(r)return r;let i=this.getNextRecurrenceStatusOfType(e,"IN_PROGRESS");return i||this.bySymbolOrCreate(" ")}getNextRecurrenceStatusOfType(t,e){if(t.type===e)return t;let r=t;for(let i=0;i<this.registeredStatuses.length-1;i++)if(r=this.getNextStatusOrCreate(r),r.type===e)return r}findUnknownStatuses(t){let e=t.filter(s=>!this.hasSymbol(s.symbol)),r=new Be,i=[];return e.forEach(s=>{if(r.hasSymbol(s.symbol))return;let a=Be.copyStatusWithNewName(s,`Unknown (${s.symbol})`);i.push(a),r.add(a)}),i.sort((s,a)=>s.symbol.localeCompare(a.symbol,void 0,{numeric:!0}))}static copyStatusWithNewName(t,e){let r=new gt(t.symbol,e,t.nextStatusSymbol,t.availableAsCommand,t.type);return new ge(r)}getSymbol(t){return this._registeredStatuses.filter(({symbol:e})=>e===t)[0]}hasSymbol(t){return this._registeredStatuses.find(e=>e.symbol===t)!==void 0}addDefaultStatusTypes(){[ge.TODO,ge.IN_PROGRESS,ge.DONE,ge.CANCELLED].forEach(e=>{this.add(e)})}mermaidDiagram(t=!1){let e=this.registeredStatuses,r="mermaid",i=[],s=[];return e.forEach((a,o)=>{let l=this.getMermaidNodeLabel(a,t);i.push(`${o+1}${l}`);let u=this.getNextStatus(a);if(this.addEdgeIfNotToInternal(e,u,s,o,!1),a.type==="DONE"){let c=this.getNextRecurrenceStatusOrCreate(a);c.symbol!==u.symbol&&this.addEdgeIfNotToInternal(e,c,s,o,!0)}}),` \`\`\`${r} flowchart LR @@ -200,8 +200,8 @@ ${s.join(` linkStyle default stroke:gray \`\`\` -`}addEdgeIfNotToInternal(t,e,r,i,s){let a=t.findIndex(u=>u.symbol===e.symbol),o=a!==-1,l=e.type!=="EMPTY";if(o&&l){let u;s?u='-. "\u{1F501}" .-> ':u=" --> ";let c=`${i+1}${u}${a+1}`;r.push(c)}}getMermaidNodeLabel(t,e){let r=WS(t.name),i=t.type;if(e){let s=id(t.symbol),a=id(t.nextStatusSymbol),o=`[${s}] -> [${a}]`,l=`'${r}'`,u=`(${i})`;return`["${l}<br>${o}<br>${u}"]:::${i}`}else return`["${r}"]:::${i}`}}});var Vr,qS=ee(()=>{"use strict";Vr=class{constructor(t,e){this.name=t,this.sortOrder=e}get groupText(){return this.name!==""?`%%${this.sortOrder}%% ${this.name}`:""}}});var HS,It,sd=ee(()=>{"use strict";HS=require("obsidian");qS();ii();It=class{constructor(t){this._date=null;this._date=t}get moment(){return this._date}formatAsDate(t=""){return this.format(ce.dateFormat,t)}formatAsDateAndTime(t=""){return this.format(ce.dateTimeFormat,t)}format(t,e=""){return this._date?this._date.format(t):e}toISOString(t){return this._date?this._date.toISOString(t):""}get category(){let t=window.moment(),e=this.moment;return e?e.isBefore(t,"day")?new Vr("Overdue",1):e.isSame(t,"day")?new Vr("Today",2):e.isValid()?new Vr("Future",3):new Vr("Invalid date",0):new Vr("Undated",4)}get fromNow(){let t=this.moment;if(!t)return new Vr("",0);let e=this.fromNowOrder(t);return new Vr(t.fromNow(),e)}fromNowOrder(t){if(!t.isValid())return 0;let e=window.moment(),r=t.isSameOrBefore(e,"day"),i=this.fromNowStartDateOfGroup(t,r,e);return Number((r?1:3)+i.format("YYYYMMDD"))}fromNowStartDateOfGroup(t,e,r){let i=t.fromNow(!0).split(" "),s,a=Number(i[0]);isNaN(a)?s=1:s=a;let o=i[1];return e?r.subtract(s,o):r.add(s,o)}postpone(t="days",e=1){if(!this._date)throw new HS.Notice("Cannot postpone a null date");let r=window.moment().startOf("day");return this._date.isSameOrAfter(r,"day")?this._date.clone().add(e,t):r.add(e,t)}}});var VS=x((GS,BS)=>{(function(n){var t=Object.hasOwnProperty,e=Array.isArray?Array.isArray:function(y){return Object.prototype.toString.call(y)==="[object Array]"},r=10,i=typeof process=="object"&&typeof process.nextTick=="function",s=typeof Symbol=="function",a=typeof Reflect=="object",o=typeof setImmediate=="function",l=o?setImmediate:setTimeout,u=s?a&&typeof Reflect.ownKeys=="function"?Reflect.ownKeys:function(m){var y=Object.getOwnPropertyNames(m);return y.push.apply(y,Object.getOwnPropertySymbols(m)),y}:Object.keys;function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(m){m&&(this._conf=m,m.delimiter&&(this.delimiter=m.delimiter),m.maxListeners!==n&&(this._maxListeners=m.maxListeners),m.wildcard&&(this.wildcard=m.wildcard),m.newListener&&(this._newListener=m.newListener),m.removeListener&&(this._removeListener=m.removeListener),m.verboseMemoryLeak&&(this.verboseMemoryLeak=m.verboseMemoryLeak),m.ignoreErrors&&(this.ignoreErrors=m.ignoreErrors),this.wildcard&&(this.listenerTree={}))}function f(m,y){var v="(node) warning: possible EventEmitter memory leak detected. "+m+" listeners added. Use emitter.setMaxListeners() to increase limit.";if(this.verboseMemoryLeak&&(v+=" Event name: "+y+"."),typeof process!="undefined"&&process.emitWarning){var w=new Error(v);w.name="MaxListenersExceededWarning",w.emitter=this,w.count=m,process.emitWarning(w)}else console.error(v),console.trace&&console.trace()}var p=function(m,y,v){var w=arguments.length;switch(w){case 0:return[];case 1:return[m];case 2:return[m,y];case 3:return[m,y,v];default:for(var S=new Array(w);w--;)S[w]=arguments[w];return S}};function b(m,y){for(var v={},w,S=m.length,M=y?y.length:0,I=0;I<S;I++)w=m[I],v[w]=I<M?y[I]:n;return v}function T(m,y,v){this._emitter=m,this._target=y,this._listeners={},this._listenersCount=0;var w,S;if((v.on||v.off)&&(w=v.on,S=v.off),y.addEventListener?(w=y.addEventListener,S=y.removeEventListener):y.addListener?(w=y.addListener,S=y.removeListener):y.on&&(w=y.on,S=y.off),!w&&!S)throw Error("target does not implement any known event API");if(typeof w!="function")throw TypeError("on method must be a function");if(typeof S!="function")throw TypeError("off method must be a function");this._on=w,this._off=S;var M=m._observers;M?M.push(this):m._observers=[this]}Object.assign(T.prototype,{subscribe:function(m,y,v){var w=this,S=this._target,M=this._emitter,I=this._listeners,j=function(){var E=p.apply(null,arguments),P={data:E,name:y,original:m};if(v){var W=v.call(S,P);W!==!1&&M.emit.apply(M,[P.name].concat(E));return}M.emit.apply(M,[y].concat(E))};if(I[m])throw Error("Event '"+m+"' is already listening");this._listenersCount++,M._newListener&&M._removeListener&&!w._onNewListener?(this._onNewListener=function(E){E===y&&I[m]===null&&(I[m]=j,w._on.call(S,m,j))},M.on("newListener",this._onNewListener),this._onRemoveListener=function(E){E===y&&!M.hasListeners(E)&&I[m]&&(I[m]=null,w._off.call(S,m,j))},I[m]=null,M.on("removeListener",this._onRemoveListener)):(I[m]=j,w._on.call(S,m,j))},unsubscribe:function(m){var y=this,v=this._listeners,w=this._emitter,S,M,I=this._off,j=this._target,E;if(m&&typeof m!="string")throw TypeError("event must be a string");function P(){y._onNewListener&&(w.off("newListener",y._onNewListener),w.off("removeListener",y._onRemoveListener),y._onNewListener=null,y._onRemoveListener=null);var W=se.call(w,y);w._observers.splice(W,1)}if(m){if(S=v[m],!S)return;I.call(j,m,S),delete v[m],--this._listenersCount||P()}else{for(M=u(v),E=M.length;E-- >0;)m=M[E],I.call(j,m,v[m]);this._listeners={},this._listenersCount=0,P()}}});function _(m,y,v,w){var S=Object.assign({},y);if(!m)return S;if(typeof m!="object")throw TypeError("options must be an object");var M=Object.keys(m),I=M.length,j,E,P;function W(be){throw Error('Invalid "'+j+'" option value'+(be?". Reason: "+be:""))}for(var de=0;de<I;de++){if(j=M[de],!w&&!t.call(y,j))throw Error('Unknown "'+j+'" option');E=m[j],E!==n&&(P=v[j],S[j]=P?P(E,W):E)}return S}function O(m,y){return(typeof m!="function"||!m.hasOwnProperty("prototype"))&&y("value must be a constructor"),m}function D(m){var y="value must be type of "+m.join("|"),v=m.length,w=m[0],S=m[1];return v===1?function(M,I){if(typeof M===w)return M;I(y)}:v===2?function(M,I){var j=typeof M;if(j===w||j===S)return M;I(y)}:function(M,I){for(var j=typeof M,E=v;E-- >0;)if(j===m[E])return M;I(y)}}var A=D(["function"]),Y=D(["object","function"]);function q(m,y,v){var w,S,M=0,I,j=new m(function(E,P,W){v=_(v,{timeout:0,overload:!1},{timeout:function(He,Le){return He*=1,(typeof He!="number"||He<0||!Number.isFinite(He))&&Le("timeout must be a positive number"),He}}),w=!v.overload&&typeof m.prototype.cancel=="function"&&typeof W=="function";function de(){S&&(S=null),M&&(clearTimeout(M),M=0)}var be=function(He){de(),E(He)},xe=function(He){de(),P(He)};w?y(be,xe,W):(S=[function(He){xe(He||Error("canceled"))}],y(be,xe,function(He){if(I)throw Error("Unable to subscribe on cancel event asynchronously");if(typeof He!="function")throw TypeError("onCancel callback must be a function");S.push(He)}),I=!0),v.timeout>0&&(M=setTimeout(function(){var He=Error("timeout");He.code="ETIMEDOUT",M=0,j.cancel(He),P(He)},v.timeout))});return w||(j.cancel=function(E){if(!!S){for(var P=S.length,W=1;W<P;W++)S[W](E);S[0](E),S=null}}),j}function se(m){var y=this._observers;if(!y)return-1;for(var v=y.length,w=0;w<v;w++)if(y[w]._target===m)return w;return-1}function H(m,y,v,w,S){if(!v)return null;if(w===0){var M=typeof y;if(M==="string"){var I,j,E=0,P=0,W=this.delimiter,de=W.length;if((j=y.indexOf(W))!==-1){I=new Array(5);do I[E++]=y.slice(P,j),P=j+de;while((j=y.indexOf(W,P))!==-1);I[E++]=y.slice(P),y=I,S=E}else y=[y],S=1}else M==="object"?S=y.length:(y=[y],S=1)}var be=null,xe,He,Le,Yt,fr,wn=y[w],te=y[w+1],jt,it;if(w===S)v._listeners&&(typeof v._listeners=="function"?(m&&m.push(v._listeners),be=[v]):(m&&m.push.apply(m,v._listeners),be=[v]));else if(wn==="*"){for(jt=u(v),j=jt.length;j-- >0;)xe=jt[j],xe!=="_listeners"&&(it=H(m,y,v[xe],w+1,S),it&&(be?be.push.apply(be,it):be=it));return be}else if(wn==="**"){for(fr=w+1===S||w+2===S&&te==="*",fr&&v._listeners&&(be=H(m,y,v,S,S)),jt=u(v),j=jt.length;j-- >0;)xe=jt[j],xe!=="_listeners"&&(xe==="*"||xe==="**"?(v[xe]._listeners&&!fr&&(it=H(m,y,v[xe],S,S),it&&(be?be.push.apply(be,it):be=it)),it=H(m,y,v[xe],w,S)):xe===te?it=H(m,y,v[xe],w+2,S):it=H(m,y,v[xe],w,S),it&&(be?be.push.apply(be,it):be=it));return be}else v[wn]&&(be=H(m,y,v[wn],w+1,S));if(He=v["*"],He&&H(m,y,He,w+1,S),Le=v["**"],Le)if(w<S)for(Le._listeners&&H(m,y,Le,S,S),jt=u(Le),j=jt.length;j-- >0;)xe=jt[j],xe!=="_listeners"&&(xe===te?H(m,y,Le[xe],w+2,S):xe===wn?H(m,y,Le[xe],w+1,S):(Yt={},Yt[xe]=Le[xe],H(m,y,{"**":Yt},w+1,S)));else Le._listeners?H(m,y,Le,S,S):Le["*"]&&Le["*"]._listeners&&H(m,y,Le["*"],S,S);return be}function Z(m,y,v){var w=0,S=0,M,I=this.delimiter,j=I.length,E;if(typeof m=="string")if((M=m.indexOf(I))!==-1){E=new Array(5);do E[w++]=m.slice(S,M),S=M+j;while((M=m.indexOf(I,S))!==-1);E[w++]=m.slice(S)}else E=[m],w=1;else E=m,w=m.length;if(w>1){for(M=0;M+1<w;M++)if(E[M]==="**"&&E[M+1]==="**")return}var P=this.listenerTree,W;for(M=0;M<w;M++)if(W=E[M],P=P[W]||(P[W]={}),M===w-1)return P._listeners?(typeof P._listeners=="function"&&(P._listeners=[P._listeners]),v?P._listeners.unshift(y):P._listeners.push(y),!P._listeners.warned&&this._maxListeners>0&&P._listeners.length>this._maxListeners&&(P._listeners.warned=!0,f.call(this,P._listeners.length,W))):P._listeners=y,!0;return!0}function ye(m,y,v,w){for(var S=u(m),M=S.length,I,j,E,P=m._listeners,W;M-- >0;)j=S[M],I=m[j],j==="_listeners"?E=v:E=v?v.concat(j):[j],W=w||typeof j=="symbol",P&&y.push(W?E:E.join(this.delimiter)),typeof I=="object"&&ye.call(this,I,y,E,W);return y}function we(m){for(var y=u(m),v=y.length,w,S,M;v-- >0;)S=y[v],w=m[S],w&&(M=!0,S!=="_listeners"&&!we(w)&&delete m[S]);return M}function V(m,y,v){this.emitter=m,this.event=y,this.listener=v}V.prototype.off=function(){return this.emitter.off(this.event,this.listener),this};function K(m,y,v){if(v===!0)S=!0;else if(v===!1)w=!0;else{if(!v||typeof v!="object")throw TypeError("options should be an object or true");var w=v.async,S=v.promisify,M=v.nextTick,I=v.objectify}if(w||M||S){var j=y,E=y._origin||y;if(M&&!i)throw Error("process.nextTick is not supported");S===n&&(S=y.constructor.name==="AsyncFunction"),y=function(){var P=arguments,W=this,de=this.event;return S?M?Promise.resolve():new Promise(function(be){l(be)}).then(function(){return W.event=de,j.apply(W,P)}):(M?process.nextTick:l)(function(){W.event=de,j.apply(W,P)})},y._async=!0,y._origin=E}return[y,I?new V(this,m,y):this]}function C(m){this._events={},this._newListener=!1,this._removeListener=!1,this.verboseMemoryLeak=!1,d.call(this,m)}C.EventEmitter2=C,C.prototype.listenTo=function(m,y,v){if(typeof m!="object")throw TypeError("target musts be an object");var w=this;v=_(v,{on:n,off:n,reducers:n},{on:A,off:A,reducers:Y});function S(M){if(typeof M!="object")throw TypeError("events must be an object");var I=v.reducers,j=se.call(w,m),E;j===-1?E=new T(w,m,v):E=w._observers[j];for(var P=u(M),W=P.length,de,be=typeof I=="function",xe=0;xe<W;xe++)de=P[xe],E.subscribe(de,M[de]||de,be?I:I&&I[de])}return e(y)?S(b(y)):S(typeof y=="string"?b(y.split(/\s+/)):y),this},C.prototype.stopListeningTo=function(m,y){var v=this._observers;if(!v)return!1;var w=v.length,S,M=!1;if(m&&typeof m!="object")throw TypeError("target should be an object");for(;w-- >0;)S=v[w],(!m||S._target===m)&&(S.unsubscribe(y),M=!0);return M},C.prototype.delimiter=".",C.prototype.setMaxListeners=function(m){m!==n&&(this._maxListeners=m,this._conf||(this._conf={}),this._conf.maxListeners=m)},C.prototype.getMaxListeners=function(){return this._maxListeners},C.prototype.event="",C.prototype.once=function(m,y,v){return this._once(m,y,!1,v)},C.prototype.prependOnceListener=function(m,y,v){return this._once(m,y,!0,v)},C.prototype._once=function(m,y,v,w){return this._many(m,1,y,v,w)},C.prototype.many=function(m,y,v,w){return this._many(m,y,v,!1,w)},C.prototype.prependMany=function(m,y,v,w){return this._many(m,y,v,!0,w)},C.prototype._many=function(m,y,v,w,S){var M=this;if(typeof v!="function")throw new Error("many only accepts instances of Function");function I(){return--y===0&&M.off(m,I),v.apply(this,arguments)}return I._origin=v,this._on(m,I,w,S)},C.prototype.emit=function(){if(!this._events&&!this._all)return!1;this._events||c.call(this);var m=arguments[0],y,v=this.wildcard,w,S,M,I,j;if(m==="newListener"&&!this._newListener&&!this._events.newListener)return!1;if(v&&(y=m,m!=="newListener"&&m!=="removeListener"&&typeof m=="object")){if(S=m.length,s){for(M=0;M<S;M++)if(typeof m[M]=="symbol"){j=!0;break}}j||(m=m.join(this.delimiter))}var E=arguments.length,P;if(this._all&&this._all.length)for(P=this._all.slice(),M=0,S=P.length;M<S;M++)switch(this.event=m,E){case 1:P[M].call(this,m);break;case 2:P[M].call(this,m,arguments[1]);break;case 3:P[M].call(this,m,arguments[1],arguments[2]);break;default:P[M].apply(this,arguments)}if(v)P=[],H.call(this,P,y,this.listenerTree,0,S);else if(P=this._events[m],typeof P=="function"){switch(this.event=m,E){case 1:P.call(this);break;case 2:P.call(this,arguments[1]);break;case 3:P.call(this,arguments[1],arguments[2]);break;default:for(w=new Array(E-1),I=1;I<E;I++)w[I-1]=arguments[I];P.apply(this,w)}return!0}else P&&(P=P.slice());if(P&&P.length){if(E>3)for(w=new Array(E-1),I=1;I<E;I++)w[I-1]=arguments[I];for(M=0,S=P.length;M<S;M++)switch(this.event=m,E){case 1:P[M].call(this);break;case 2:P[M].call(this,arguments[1]);break;case 3:P[M].call(this,arguments[1],arguments[2]);break;default:P[M].apply(this,w)}return!0}else if(!this.ignoreErrors&&!this._all&&m==="error")throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");return!!this._all},C.prototype.emitAsync=function(){if(!this._events&&!this._all)return!1;this._events||c.call(this);var m=arguments[0],y=this.wildcard,v,w,S,M,I,j;if(m==="newListener"&&!this._newListener&&!this._events.newListener)return Promise.resolve([!1]);if(y&&(v=m,m!=="newListener"&&m!=="removeListener"&&typeof m=="object")){if(M=m.length,s){for(I=0;I<M;I++)if(typeof m[I]=="symbol"){w=!0;break}}w||(m=m.join(this.delimiter))}var E=[],P=arguments.length,W;if(this._all)for(I=0,M=this._all.length;I<M;I++)switch(this.event=m,P){case 1:E.push(this._all[I].call(this,m));break;case 2:E.push(this._all[I].call(this,m,arguments[1]));break;case 3:E.push(this._all[I].call(this,m,arguments[1],arguments[2]));break;default:E.push(this._all[I].apply(this,arguments))}if(y?(W=[],H.call(this,W,v,this.listenerTree,0)):W=this._events[m],typeof W=="function")switch(this.event=m,P){case 1:E.push(W.call(this));break;case 2:E.push(W.call(this,arguments[1]));break;case 3:E.push(W.call(this,arguments[1],arguments[2]));break;default:for(S=new Array(P-1),j=1;j<P;j++)S[j-1]=arguments[j];E.push(W.apply(this,S))}else if(W&&W.length){if(W=W.slice(),P>3)for(S=new Array(P-1),j=1;j<P;j++)S[j-1]=arguments[j];for(I=0,M=W.length;I<M;I++)switch(this.event=m,P){case 1:E.push(W[I].call(this));break;case 2:E.push(W[I].call(this,arguments[1]));break;case 3:E.push(W[I].call(this,arguments[1],arguments[2]));break;default:E.push(W[I].apply(this,S))}}else if(!this.ignoreErrors&&!this._all&&m==="error")return arguments[1]instanceof Error?Promise.reject(arguments[1]):Promise.reject("Uncaught, unspecified 'error' event.");return Promise.all(E)},C.prototype.on=function(m,y,v){return this._on(m,y,!1,v)},C.prototype.prependListener=function(m,y,v){return this._on(m,y,!0,v)},C.prototype.onAny=function(m){return this._onAny(m,!1)},C.prototype.prependAny=function(m){return this._onAny(m,!0)},C.prototype.addListener=C.prototype.on,C.prototype._onAny=function(m,y){if(typeof m!="function")throw new Error("onAny only accepts instances of Function");return this._all||(this._all=[]),y?this._all.unshift(m):this._all.push(m),this},C.prototype._on=function(m,y,v,w){if(typeof m=="function")return this._onAny(m,y),this;if(typeof y!="function")throw new Error("on only accepts instances of Function");this._events||c.call(this);var S=this,M;return w!==n&&(M=K.call(this,m,y,w),y=M[0],S=M[1]),this._newListener&&this.emit("newListener",m,y),this.wildcard?(Z.call(this,m,y,v),S):(this._events[m]?(typeof this._events[m]=="function"&&(this._events[m]=[this._events[m]]),v?this._events[m].unshift(y):this._events[m].push(y),!this._events[m].warned&&this._maxListeners>0&&this._events[m].length>this._maxListeners&&(this._events[m].warned=!0,f.call(this,this._events[m].length,m))):this._events[m]=y,S)},C.prototype.off=function(m,y){if(typeof y!="function")throw new Error("removeListener only takes instances of Function");var v,w=[];if(this.wildcard){var S=typeof m=="string"?m.split(this.delimiter):m.slice();if(w=H.call(this,null,S,this.listenerTree,0),!w)return this}else{if(!this._events[m])return this;v=this._events[m],w.push({_listeners:v})}for(var M=0;M<w.length;M++){var I=w[M];if(v=I._listeners,e(v)){for(var j=-1,E=0,P=v.length;E<P;E++)if(v[E]===y||v[E].listener&&v[E].listener===y||v[E]._origin&&v[E]._origin===y){j=E;break}if(j<0)continue;return this.wildcard?I._listeners.splice(j,1):this._events[m].splice(j,1),v.length===0&&(this.wildcard?delete I._listeners:delete this._events[m]),this._removeListener&&this.emit("removeListener",m,y),this}else(v===y||v.listener&&v.listener===y||v._origin&&v._origin===y)&&(this.wildcard?delete I._listeners:delete this._events[m],this._removeListener&&this.emit("removeListener",m,y))}return this.listenerTree&&we(this.listenerTree),this},C.prototype.offAny=function(m){var y=0,v=0,w;if(m&&this._all&&this._all.length>0){for(w=this._all,y=0,v=w.length;y<v;y++)if(m===w[y])return w.splice(y,1),this._removeListener&&this.emit("removeListenerAny",m),this}else{if(w=this._all,this._removeListener)for(y=0,v=w.length;y<v;y++)this.emit("removeListenerAny",w[y]);this._all=[]}return this},C.prototype.removeListener=C.prototype.off,C.prototype.removeAllListeners=function(m){if(m===n)return!this._events||c.call(this),this;if(this.wildcard){var y=H.call(this,null,m,this.listenerTree,0),v,w;if(!y)return this;for(w=0;w<y.length;w++)v=y[w],v._listeners=null;this.listenerTree&&we(this.listenerTree)}else this._events&&(this._events[m]=null);return this},C.prototype.listeners=function(m){var y=this._events,v,w,S,M,I;if(m===n){if(this.wildcard)throw Error("event name required for wildcard emitter");if(!y)return[];for(v=u(y),M=v.length,S=[];M-- >0;)w=y[v[M]],typeof w=="function"?S.push(w):S.push.apply(S,w);return S}else{if(this.wildcard){if(I=this.listenerTree,!I)return[];var j=[],E=typeof m=="string"?m.split(this.delimiter):m.slice();return H.call(this,j,E,I,0),j}return y?(w=y[m],w?typeof w=="function"?[w]:w:[]):[]}},C.prototype.eventNames=function(m){var y=this._events;return this.wildcard?ye.call(this,this.listenerTree,[],null,m):y?u(y):[]},C.prototype.listenerCount=function(m){return this.listeners(m).length},C.prototype.hasListeners=function(m){if(this.wildcard){var y=[],v=typeof m=="string"?m.split(this.delimiter):m.slice();return H.call(this,y,v,this.listenerTree,0),y.length>0}var w=this._events,S=this._all;return!!(S&&S.length||w&&(m===n?u(w).length:w[m]))},C.prototype.listenersAny=function(){return this._all?this._all:[]},C.prototype.waitFor=function(m,y){var v=this,w=typeof y;return w==="number"?y={timeout:y}:w==="function"&&(y={filter:y}),y=_(y,{timeout:0,filter:n,handleError:!1,Promise,overload:!1},{filter:A,Promise:O}),q(y.Promise,function(S,M,I){function j(){var E=y.filter;if(!(E&&!E.apply(v,arguments)))if(v.off(m,j),y.handleError){var P=arguments[0];P?M(P):S(p.apply(null,arguments).slice(1))}else S(p.apply(null,arguments))}I(function(){v.off(m,j)}),v._on(m,j,!1)},{timeout:y.timeout,overload:y.overload})};function J(m,y,v){v=_(v,{Promise,timeout:0,overload:!1},{Promise:O});var w=v.Promise;return q(w,function(S,M,I){var j;if(typeof m.addEventListener=="function"){j=function(){S(p.apply(null,arguments))},I(function(){m.removeEventListener(y,j)}),m.addEventListener(y,j,{once:!0});return}var E=function(){P&&m.removeListener("error",P),S(p.apply(null,arguments))},P;y!=="error"&&(P=function(W){m.removeListener(y,E),M(W)},m.once("error",P)),I(function(){P&&m.removeListener("error",P),m.removeListener(y,E)}),m.once(y,E)},{timeout:v.timeout,overload:v.overload})}var $=C.prototype;if(Object.defineProperties(C,{defaultMaxListeners:{get:function(){return $._maxListeners},set:function(m){if(typeof m!="number"||m<0||Number.isNaN(m))throw TypeError("n must be a non-negative number");$._maxListeners=m},enumerable:!0},once:{value:J,writable:!0,configurable:!0}}),Object.defineProperties($,{_maxListeners:{value:r,writable:!0,configurable:!0},_observers:{value:null,writable:!0,configurable:!0}}),typeof define=="function"&&define.amd)define(function(){return C});else if(typeof GS=="object")BS.exports=C;else{var oe=new Function("","return this")();oe.EventEmitter2=C}})()});function cy(n,t){let e=rn.getLogger("tasks");switch(n){case"trace":e.trace(t);break;case"debug":e.debug(t);break;case"info":e.info(t);break;case"warn":e.warn(t);break;case"error":e.error(t);break;default:break}}var v2,zS,ly,rn,uy,Ws=ee(()=>{"use strict";v2=require("obsidian"),zS=qo(VS()),ly=class extends zS.EventEmitter2{constructor(){super(...arguments);this.options={minLevels:{"":"info",tasks:"info"}};this.consoleLoggerRegistered=!1;this.arrAvg=e=>e.reduce((r,i)=>r+i,0)/e.length}configure(e){return this.options=Object.assign({},this.options,e),this}getLogger(e){let r="none",i="";for(let s in this.options.minLevels)e.startsWith(s)&&s.length>=i.length&&(r=this.options.minLevels[s],i=s);return new uy(this,e,r)}onLogEntry(e){return this.on("log",e),this}registerConsoleLogger(){return this.consoleLoggerRegistered?this:(this.onLogEntry(e=>{let r=`[${window.moment().format("YYYY-MM-DD-HH:mm:ss.SSS")}][${e.level}][${e.module}]`;switch(e.traceId&&(r+=`[${e.traceId}]`),r+=` ${e.message}`,e.objects===void 0&&(e.objects=""),e.level){case"trace":console.trace(r,e.objects);break;case"debug":console.debug(r,e.objects);break;case"info":console.info(r,e.objects);break;case"warn":console.warn(r,e.objects);break;case"error":console.error(r,e.objects);break;default:console.log(`{${e.level}} ${r}`,e.objects)}}),this.consoleLoggerRegistered=!0,this)}},rn=new ly,uy=class{constructor(t,e,r){this.levels={trace:1,debug:2,info:3,warn:4,error:5};this.logManager=t,this.module=e,this.minLevel=this.levelToInt(r)}levelToInt(t){return t.toLowerCase()in this.levels?this.levels[t.toLowerCase()]:99}log(t,e,r){if(this.levelToInt(t)<this.minLevel)return;let s={level:t,module:this.module,message:e,objects:r,traceId:void 0};this.logManager.emit("log",s)}trace(t,e){this.log("trace",t,e)}debug(t,e){this.log("debug",t,e)}info(t,e){this.log("info",t,e)}warn(t,e){this.log("warn",t,e)}error(t,e){this.log("error",t,e)}logWithId(t,e,r,i){if(this.levelToInt(t)<this.minLevel)return;let a={level:t,module:this.module,message:r,objects:i,traceId:e};this.logManager.emit("log",a)}traceWithId(t,e,r){this.logWithId("trace",t,e,r)}debugWithId(t,e,r){this.logWithId("debug",t,e,r)}infoWithId(t,e,r){this.logWithId("info",t,e,r)}warnWithId(t,e,r){this.logWithId("warn",t,e,r)}errorWithId(t,e,r){this.logWithId("error",t,e,r)}}});function ad(n,t,e){n.debug(`${t}: task line number: ${e.taskLocation.lineNumber}. file path: "${e.path}"`),n.debug(`${t} original: ${e.originalMarkdown}`)}function od(n,t,e){e.map((r,i)=>{n.debug(`${t} ==> ${i+1} : ${r.toFileLineString()}`)})}var dy=ee(()=>{"use strict"});var Ft,Gi=ee(()=>{"use strict";nn();Nt();Ft=class{static fromPath(t){let{useFilenameAsScheduledDate:e,filenameAsDateFolders:r}=le();return!e||!this.matchesAnyFolder(r,t)?null:this.extractDateFromPath(t)}static matchesAnyFolder(t,e){return t.length===0?!0:t.some(r=>e.startsWith(r+"/"))}static extractDateFromPath(t){let e=Math.max(0,t.lastIndexOf("/")+1),r=t.lastIndexOf("."),i=t.substring(e,r),{filenameAsScheduledDateFormat:s}=le();if(s!==""){let o=window.moment(i,s,!0);if(o.isValid())return o}let a=/(\d{4})-(\d{2})-(\d{2})/.exec(i);if(a||(a=/(\d{4})(\d{2})(\d{2})/.exec(i)),a){let o=window.moment([parseInt(a[1]),parseInt(a[2])-1,parseInt(a[3])]);if(o.isValid())return o}return null}static canApplyFallback({startDate:t,scheduledDate:e,dueDate:r}){return t===null&&r===null&&e===null}static updateTaskPath(t,e,r){let i=t.scheduledDate,s=t.scheduledDateIsInferred;return r===null?s&&(s=!1,i=null):s?i=r:this.canApplyFallback(t)&&(i=r,s=!0),new fe(me(U({},t),{taskLocation:e,scheduledDate:i,scheduledDateIsInferred:s}))}static removeInferredStatusIfNeeded(t,e){let r=t.scheduledDateIsInferred?t.scheduledDate:null;return e.map(i=>(r!==null&&!r.isSame(i.scheduledDate,"day")&&(i=new fe(me(U({},i),{scheduledDateIsInferred:!1}))),i))}}});var Dr,ki,KS=ee(()=>{"use strict";Dr=class{static calculate(t){var r,i,s;let e=0;if((r=t.dueDate)!=null&&r.isValid()){let a=window.moment().startOf("day"),o=Math.round(a.diff(t.dueDate)/Dr.milliSecondsPerDay),l;o>=7?l=1:o>=-14?l=(o+14)*.8/21+.2:l=.2,e+=l*Dr.dueCoefficient}switch((i=t.scheduledDate)!=null&&i.isValid()&&window.moment().isSameOrAfter(t.scheduledDate)&&(e+=1*Dr.scheduledCoefficient),(s=t.startDate)!=null&&s.isValid()&&window.moment().isBefore(t.startDate)&&(e+=1*Dr.startedCoefficient),t.priority){case"0":e+=1.5*Dr.priorityCoefficient;break;case"1":e+=1*Dr.priorityCoefficient;break;case"2":e+=.65*Dr.priorityCoefficient;break;case"3":e+=.325*Dr.priorityCoefficient;break;case"5":e-=.3*Dr.priorityCoefficient;break}return e}},ki=Dr;ki.dueCoefficient=12,ki.scheduledCoefficient=5,ki.startedCoefficient=-3,ki.priorityCoefficient=6,ki.milliSecondsPerDay=1e3*60*60*24});var QS={};wb(QS,{Task:()=>fe,isBlocked:()=>w2});function w2(n,t){if(n.dependsOn.length===0||n.isDone)return!1;for(let e of n.dependsOn)if(!!t.find(i=>i.id===e&&!i.isDone))return!0;return!1}var fe,Nt=ee(()=>{"use strict";nn();Mn();wi();Cs();sd();er();su();Ws();dy();Gi();ld();KS();ii();Kc();fe=class extends xr{constructor({status:e,description:r,taskLocation:i,indentation:s,listMarker:a,priority:o,createdDate:l,startDate:u,scheduledDate:c,dueDate:d,doneDate:f,cancelledDate:p,recurrence:b,onCompletion:T,dependsOn:_,id:O,blockLink:D,tags:A,originalMarkdown:Y,scheduledDateIsInferred:q,parent:se=null}){super(Y,se,i);this._urgency=null;this.status=e,this.description=r,this.indentation=s,this.listMarker=a,this.tags=A,this.priority=o,this.createdDate=l,this.startDate=u,this.scheduledDate=c,this.dueDate=d,this.doneDate=f,this.cancelledDate=p,this.recurrence=b,this.onCompletion=T,this.dependsOn=_,this.id=O,this.blockLink=D,this.scheduledDateIsInferred=q}static fromLine({line:e,taskLocation:r,fallbackDate:i}){let s=fe.extractTaskComponents(e);return s===null||!Fe.getInstance().includedIn(s.body)?null:fe.parseTaskSignifiers(e,r,i)}static parseTaskSignifiers(e,r,i){let s=fe.extractTaskComponents(e);if(s===null)return null;let{taskSerializer:a}=au(),o=a.deserialize(s.body),l=!1;return Ft.canApplyFallback(o)&&i!==null&&(o.scheduledDate=i,l=!0),o.tags=o.tags.map(u=>u.trim()),o.tags=o.tags.filter(u=>!Fe.getInstance().equals(u)),new fe(me(U(U({},s),o),{taskLocation:r,originalMarkdown:e,scheduledDateIsInferred:l}))}static extractTaskComponents(e){let r=e.match(ce.taskRegex);if(r===null)return null;let i=r[1],s=r[2],a=r[3],o=Be.getInstance().bySymbolOrCreate(a),l=r[4].trim(),u=l.match(ce.blockLinkRegex),c=u!==null?u[0]:"";return c!==""&&(l=l.replace(ce.blockLinkRegex,"").trim()),{indentation:i,listMarker:s,status:o,body:l,blockLink:c}}toString(){return au().taskSerializer.serialize(this)}toFileLineString(){return`${this.indentation}${this.listMarker} [${this.status.symbol}] ${this.toString()}`}toggle(){let e=rn.getLogger("tasks.Task"),r="toggle()";ad(e,r,this);let i=Be.getInstance().getNextStatusOrCreate(this.status),s=this.handleNewStatus(i);return od(e,r,s),s}handleNewStatus(e,r=window.moment()){if(e.identicalTo(this.status))return[this];let{setDoneDate:i}=le(),s=this.newDate(e,"DONE",this.doneDate,i,r),{setCancelledDate:a}=le(),o=this.newDate(e,"CANCELLED",this.cancelledDate,a,r),l=new fe(me(U({},this),{status:e,doneDate:s,cancelledDate:o})),u=!e.isCompleted(),c=this.status.isCompleted(),d=this.recurrence===null;if(u||c||d)return[l];let p=this.recurrence.next(r);return p===null?[l]:[this.createNextOccurrence(e,p),l]}newDate(e,r,i,s,a){let o=null;return e.type===r&&(this.status.type!==r?s&&(o=a):o=i),o}createNextOccurrence(e,r){let{setCreatedDate:i}=le(),s=null;i&&(s=window.moment());let a=null,o=null,u=Be.getInstance().getNextRecurrenceStatusOrCreate(e);return new fe(me(U(U({},this),r),{status:u,blockLink:"",id:"",dependsOn:[],createdDate:s,cancelledDate:a,doneDate:o}))}toggleWithRecurrenceInUsersOrder(){let e=this.toggle();return this.putRecurrenceInUsersOrder(e)}handleNewStatusWithRecurrenceInUsersOrder(e,r=window.moment()){rn.getLogger("tasks.Task").debug(`changed task ${this.taskLocation.path} ${this.taskLocation.lineNumber} ${this.originalMarkdown} status to '${e.symbol}'`);let s=this.handleNewStatus(e,r);return this.putRecurrenceInUsersOrder(s)}putRecurrenceInUsersOrder(e){let r=ES(this,e),{recurrenceOnNextLine:i}=le();return i?r.reverse():r}get isTask(){return!0}get isDone(){return this.status.type==="DONE"||this.status.type==="CANCELLED"||this.status.type==="NON_TASK"}isBlocked(e){if(this.dependsOn.length===0||this.isDone)return!1;for(let r of this.dependsOn)if(!!e.find(s=>s.id===r&&!s.isDone))return!0;return!1}isBlocking(e){return this.id===""||this.isDone?!1:e.some(r=>r.isDone?!1:r.dependsOn.includes(this.id))}get priorityNumber(){return Number.parseInt(this.priority)}get priorityNameGroupText(){let e=Rn.priorityNameUsingNormal(this.priority);return`%%${this.priority}%%${e} priority`}get descriptionWithoutTags(){return this.description.replace(ce.hashTags,"").trim()}get priorityName(){return Rn.priorityNameUsingNormal(this.priority)}get urgency(){return this._urgency===null&&(this._urgency=ki.calculate(this)),this._urgency}get cancelled(){return new It(this.cancelledDate)}get created(){return new It(this.createdDate)}get done(){return new It(this.doneDate)}get due(){return new It(this.dueDate)}get scheduled(){return new It(this.scheduledDate)}get start(){return new It(this.startDate)}get happensDates(){return Array.of(this.startDate,this.scheduledDate,this.dueDate)}get happens(){let e=this.happensDates,r=Array.from(e).sort(Kn);for(let i of r)if(i!=null&&i.isValid())return new It(i);return new It(null)}get isRecurring(){return this.recurrence!==null}get recurrenceRule(){return this.recurrence?this.recurrence.toText():""}get heading(){return this.precedingHeader}get hasHeading(){return this.precedingHeader!==null}getLinkText({isFilenameUnique:e}){let r;return e?r=this.filename:r="/"+this.path,r===null?null:(this.precedingHeader!==null&&this.precedingHeader!==r&&(r=r+" > "+this.precedingHeader),r)}identicalTo(e){var i,s;if(!super.identicalTo(e))return!1;let r=["description","indentation","listMarker","priority","blockLink","scheduledDateIsInferred","id","dependsOn","onCompletion"];for(let a of r)if(((i=this[a])==null?void 0:i.toString())!==((s=e[a])==null?void 0:s.toString()))return!1;if(!this.status.identicalTo(e.status)||this.tags.length!==e.tags.length||!this.tags.every(function(a,o){return a===e.tags[o]}))return!1;r=fe.allDateFields();for(let a of r){let o=this[a],l=e[a];if(Kn(o,l)!==0)return!1}return this.recurrenceIdenticalTo(e)?this.file.rawFrontmatterIdenticalTo(e.file):!1}recurrenceIdenticalTo(e){let r=this.recurrence,i=e.recurrence;return!(r===null&&i!==null||r!==null&&i===null||r&&i&&!r.identicalTo(i))}static allDateFields(){return["createdDate","startDate","scheduledDate","dueDate","doneDate","cancelledDate"]}static extractHashtags(e){var r,i;return(i=(r=e.match(ce.hashTags))==null?void 0:r.map(s=>s.trim()))!=null?i:[]}}});var xr,ld=ee(()=>{"use strict";ii();xr=class{constructor(t,e,r){this.parent=null;this.children=[];this.indentation="";this.listMarker="";this.statusCharacter=null;var s;this.description=t.replace(ce.listItemRegex,"").trim();let i=RegExp(ce.nonTaskRegex).exec(t);i&&(this.indentation=i[1],this.listMarker=i[2],this.description=i[5].trim(),this.statusCharacter=(s=i[4])!=null?s:null),this.originalMarkdown=t,this.parent=e,e!==null&&e.children.push(this),this.taskLocation=r}get root(){return this.parent===null?this:this.parent.root}get isRoot(){return this.parent===null}findClosestParentTask(){let t=this.parent;for(;t!==null;){let{Task:e}=(Nt(),Sb(QS));if(t instanceof e)return t;t=t.parent}return null}get isTask(){return!1}identicalTo(t){var r,i;if(this.constructor.name!==t.constructor.name)return!1;let e=["originalMarkdown","description","statusCharacter","path","lineNumber","sectionStart","sectionIndex","precedingHeader"];for(let s of e)if(((r=this[s])==null?void 0:r.toString())!==((i=t[s])==null?void 0:i.toString()))return!1;return xr.listsAreIdentical(this.children,t.children)}static listsAreIdentical(t,e){return t.length!==e.length?!1:t.every((r,i)=>r.identicalTo(e[i]))}get path(){return this.taskLocation.path}get file(){return this.taskLocation.tasksFile}get filename(){let t=this.path.match(/([^/]+)\.md$/);return t!==null?t[1]:null}get lineNumber(){return this.taskLocation.lineNumber}get sectionStart(){return this.taskLocation.sectionStart}get sectionIndex(){return this.taskLocation.sectionIndex}get precedingHeader(){return this.taskLocation.precedingHeader}checkOrUncheck(){let t=this.statusCharacter===" "?"x":" ",e=this.originalMarkdown.replace(RegExp(ce.checkboxRegex),`[${t}]`);return new xr(e,null,this.taskLocation)}toFileLineString(){let t=this.statusCharacter?`[${this.statusCharacter}] `:"";return`${this.indentation}${this.listMarker} ${t}${this.description}`}}});var uD=x($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});var oD=Symbol("MustacheDataPath");function aD({target:n,propertyName:t}){return[...n[oD]||[],t]}function lD(n,t){return typeof n!="object"?n:new Proxy(n,{get(e,r){let i=e[r];if(i===void 0&&!(r in e)){let s=aD({target:e,propertyName:r});if(t!=null&&t.handleError)return t.handleError(s),i;throw Error(`Missing Mustache data property: ${s.join(" > ")}`)}return i&&typeof i=="object"?(i[oD]=aD({target:e,propertyName:r}),lD(i,t)):i}})}$y.default=lD});var Zr=x(Ar=>{"use strict";Ar.__esModule=!0;Ar.Tokens=Ar.StructuralCharacters=Ar.Operators=void 0;var JU;(function(n){n.AND="AND",n.OR="OR",n.XOR="XOR",n.NOT="NOT"})(JU=Ar.Operators||(Ar.Operators={}));var eY;(function(n){n.OPEN_PARENTHESIS="(",n.CLOSE_PARENTHESIS=")"})(eY=Ar.StructuralCharacters||(Ar.StructuralCharacters={}));var tY;(function(n){n.IDENTIFIER="IDENTIFIER",n.OPERATOR="OPERATOR",n.STRUCTURAL_CHARACTER="STRUCTURAL_CHARACTER",n.EOF="EOF",n.COMMENT="COMMENT"})(tY=Ar.Tokens||(Ar.Tokens={}))});var Vy=x(fo=>{"use strict";fo.__esModule=!0;fo.VALID_TOKENS=fo.OPERATOR_PRECEDENCE=void 0;var rt=Zr();fo.OPERATOR_PRECEDENCE={NOT:0,XOR:1,AND:2,OR:3};fo.VALID_TOKENS={identifierOnly:[{name:rt.Tokens.IDENTIFIER},{name:rt.Tokens.STRUCTURAL_CHARACTER,value:rt.StructuralCharacters.OPEN_PARENTHESIS}],identifierOrNot:[{name:rt.Tokens.IDENTIFIER},{name:rt.Tokens.STRUCTURAL_CHARACTER,value:rt.StructuralCharacters.OPEN_PARENTHESIS},{name:rt.Tokens.OPERATOR,value:rt.Operators.NOT}],binaryOperator:[{name:rt.Tokens.OPERATOR,value:rt.Operators.AND},{name:rt.Tokens.OPERATOR,value:rt.Operators.OR},{name:rt.Tokens.OPERATOR,value:rt.Operators.XOR}],binaryOperatorOrClose:[{name:rt.Tokens.OPERATOR,value:rt.Operators.AND},{name:rt.Tokens.OPERATOR,value:rt.Operators.OR},{name:rt.Tokens.OPERATOR,value:rt.Operators.XOR},{name:rt.Tokens.STRUCTURAL_CHARACTER,value:rt.StructuralCharacters.CLOSE_PARENTHESIS}]}});var zy=x(Vt=>{"use strict";Vt.__esModule=!0;Vt.ESCAPE_CHARACTER=Vt.EOL=Vt.COMMENT_DELIMITER=Vt.QUOTED_IDENTIFIER_DELIMITER=Vt.SEPARATORS=Vt.OPERATORS=Vt.STRUCTURAL_CHARACTERS=void 0;var po=Zr();Vt.STRUCTURAL_CHARACTERS={"(":po.StructuralCharacters.OPEN_PARENTHESIS,")":po.StructuralCharacters.CLOSE_PARENTHESIS};Vt.OPERATORS={AND:po.Operators.AND,OR:po.Operators.OR,XOR:po.Operators.XOR,NOT:po.Operators.NOT};Vt.SEPARATORS=new Set([32,9,10,13].map(function(n){return String.fromCodePoint(n)}));Vt.QUOTED_IDENTIFIER_DELIMITER=String.fromCodePoint(34);Vt.COMMENT_DELIMITER=String.fromCodePoint(35);Vt.EOL=String.fromCodePoint(10);Vt.ESCAPE_CHARACTER=String.fromCodePoint(92)});var hD=x(ur=>{"use strict";var Ky=ur&&ur.__assign||function(){return Ky=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++){t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Ky.apply(this,arguments)};ur.__esModule=!0;ur.getQuotedIdentifier=ur.getComment=ur.createResult=void 0;var mD=Zr(),ta=zy(),nY=function(n,t,e){return{token:Ky({name:n},t!==null?{value:t}:{}),remainingString:e}};ur.createResult=nY;var rY=function(n){for(var t=n.length,e=0;e<n.length;e+=1){var r=n[e];if(r===ta.EOL){t=e;break}}return(0,ur.createResult)(mD.Tokens.COMMENT,n.slice(0,t),n.slice(t+1))};ur.getComment=rY;var iY=function(n){for(var t=!1,e="",r=null,i=0;i<n.length;i+=1){var s=n[i];if(r===null)s===ta.QUOTED_IDENTIFIER_DELIMITER?t?(e=e.slice(0,-1)+ta.QUOTED_IDENTIFIER_DELIMITER,t=!1):r=i:(s===ta.ESCAPE_CHARACTER?t=!0:t=!1,e=e+=s);else{if(!ta.SEPARATORS.has(s)&&!ta.STRUCTURAL_CHARACTERS[s])throw new Error("Unexpected character: ".concat(s," Expected ) character or separator"));break}}if(r===null)throw new Error("Unexpected end of expression: expected ".concat(ta.QUOTED_IDENTIFIER_DELIMITER," character"));return(0,ur.createResult)(mD.Tokens.IDENTIFIER,e,n.slice(r+1))};ur.getQuotedIdentifier=iY});var gD=x(Ud=>{"use strict";Ud.__esModule=!0;Ud.lex=void 0;var mo=Zr(),Nn=zy(),ho=hD(),sY=function(n){for(var t=null,e=null,r=null,i=0;i<n.length;i+=1){var s=n[i];if(t===null){if(!Nn.SEPARATORS.has(s)){var a=Nn.STRUCTURAL_CHARACTERS[s];if(a){var o=n[i+1];if(a===mo.StructuralCharacters.CLOSE_PARENTHESIS&&o&&!Nn.SEPARATORS.has(o)&&o!==mo.StructuralCharacters.CLOSE_PARENTHESIS)throw new Error("Unexpected character: ".concat(o,". A closing parenthesis should be followed by another closing parenthesis or whitespace"));return(0,ho.createResult)(mo.Tokens.STRUCTURAL_CHARACTER,Nn.STRUCTURAL_CHARACTERS[s],n.slice(i+1))}if(s===Nn.QUOTED_IDENTIFIER_DELIMITER)return(0,ho.getQuotedIdentifier)(n.slice(i+1));if(s===Nn.COMMENT_DELIMITER)return(0,ho.getComment)(n.slice(i+1));t=i}}else if(Nn.SEPARATORS.has(s)||Nn.STRUCTURAL_CHARACTERS[s]){e=i,r=s;break}else if(s===Nn.QUOTED_IDENTIFIER_DELIMITER||s===Nn.COMMENT_DELIMITER)throw new Error("Unexpected character: ".concat(s))}if(t!==null){e=e!=null?e:n.length;var l=n.slice(t,e),u=n.slice(e);if(Nn.OPERATORS[l]){if(r&&!Nn.SEPARATORS.has(r))throw new Error("Unexpected character: ".concat(r,". Operators should be separated using whitespace"));return(0,ho.createResult)(mo.Tokens.OPERATOR,Nn.OPERATORS[l],u)}else return(0,ho.createResult)(mo.Tokens.IDENTIFIER,l,u)}return(0,ho.createResult)(mo.Tokens.EOF,null,"")};Ud.lex=sY});var bD=x(In=>{"use strict";var yD=In&&In.__spreadArray||function(n,t,e){if(e||arguments.length===2)for(var r=0,i=t.length,s;r<i;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return n.concat(s||Array.prototype.slice.call(t))};In.__esModule=!0;In.validateToken=In.previousOperatorTakesPrecedent=In.getValue=In.newTokenGenerator=void 0;var aY=gD(),go=Zr(),Yd=Vy(),oY=function(n){var t=n;return function(e,r){for(r===void 0&&(r=!1);;){var i=(0,aY.lex)(t),s=i.token,a=i.remainingString;if(t=a,s.name!==go.Tokens.COMMENT)return(0,In.validateToken)(s,e,r),s}}};In.newTokenGenerator=oY;var lY=function(n,t){var e=n(Yd.VALID_TOKENS.identifierOrNot),r=e.value===go.Operators.NOT;r&&(e=n(Yd.VALID_TOKENS.identifierOnly));var i=e.name===go.Tokens.STRUCTURAL_CHARACTER?t(n,!0):[e];return r?yD(yD([],i,!0),[{name:go.Tokens.OPERATOR,value:go.Operators.NOT}],!1):i};In.getValue=lY;var uY=function(n,t){return Yd.OPERATOR_PRECEDENCE[n]<=Yd.OPERATOR_PRECEDENCE[t]};In.previousOperatorTakesPrecedent=uY;var cY=function(n,t,e){if(e===void 0&&(e=!1),n.name===go.Tokens.EOF){if(e)return;throw new Error("Unexpected end of expression")}for(var r=0,i=t;r<i.length;r++){var s=i[r];if(s.name===n.name&&(!s.value||s.value===n.value))return}throw new TypeError("Invalid token")};In.validateToken=cY});var Xy=x(yo=>{"use strict";var Jr=yo&&yo.__spreadArray||function(n,t,e){if(e||arguments.length===2)for(var r=0,i=t.length,s;r<i;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return n.concat(s||Array.prototype.slice.call(t))};yo.__esModule=!0;yo.parse=void 0;var TD=Zr(),_D=Vy(),jd=bD(),dY=function(n){if(typeof n!="string")throw new Error("Expected string but received ".concat(typeof n));var t=(0,jd.newTokenGenerator)(n);return Qy(t)};yo.parse=dY;var Qy=function(n,t){t===void 0&&(t=!1);for(var e=Jr([],(0,jd.getValue)(n,Qy),!0),r=[];;){var i=t?_D.VALID_TOKENS.binaryOperatorOrClose:_D.VALID_TOKENS.binaryOperator,s=n(i,!t);if(s.name===TD.Tokens.EOF||s.name===TD.Tokens.STRUCTURAL_CHARACTER)return Jr(Jr([],e,!0),Jr([],r,!0).reverse(),!0);for(;r.length;){var a=r[r.length-1]||null;if(a&&(0,jd.previousOperatorTakesPrecedent)(a.value,s.value))e=Jr(Jr([],e,!0),[a],!1),r=r.slice(0,-1);else break}r=Jr(Jr([],r,!0),[s],!1),e=Jr(Jr([],e,!0),(0,jd.getValue)(n,Qy),!0)}}});var Zy=x(zt=>{"use strict";zt.__esModule=!0;zt.throwInvalidExpression=zt.isOperator=zt.isIdentifier=zt.notUtil=zt.xorUtil=zt.orUtil=zt.andUtil=void 0;var vD=Zr(),fY=function(n,t){return n&&t};zt.andUtil=fY;var pY=function(n,t){return n||t};zt.orUtil=pY;var mY=function(n,t){return n!==t};zt.xorUtil=mY;var hY=function(n){return!n};zt.notUtil=hY;var gY=function(n){var t=n.name,e=n.value;return t===vD.Tokens.IDENTIFIER&&typeof e=="string"};zt.isIdentifier=gY;var yY=function(n){var t=n.name,e=n.value;return t===vD.Tokens.OPERATOR&&typeof e=="string"};zt.isOperator=yY;var bY=function(n){throw new TypeError("Invalid postfix expression: ".concat(n))};zt.throwInvalidExpression=bY});var wD=x(Wd=>{"use strict";var ku;Wd.__esModule=!0;Wd.OPERATOR_MAP=void 0;var Jy=Zr(),eb=Zy();Wd.OPERATOR_MAP=(ku={},ku[Jy.Operators.AND]=eb.andUtil,ku[Jy.Operators.OR]=eb.orUtil,ku[Jy.Operators.XOR]=eb.xorUtil,ku)});var SD=x(cr=>{"use strict";var bo=cr&&cr.__spreadArray||function(n,t,e){if(e||arguments.length===2)for(var r=0,i=t.length,s;r<i;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return n.concat(s||Array.prototype.slice.call(t))};cr.__esModule=!0;cr.evaluateExpression=cr.evaluate=cr.getEvaluator=void 0;var TY=Xy(),kD=Zr(),_Y=wD(),na=Zy(),vY=function(n){var t=(0,TY.parse)(n);return function(e){return(0,cr.evaluate)(t,e)}};cr.getEvaluator=vY;var wY=function(n,t){if(!Array.isArray(n))throw new Error("".concat(n," should be an array. evaluate takes in a parsed expression. Use in combination with parse or use getEvaluator"));var e=n.reduce(function(r,i,s){if(!(i&&((0,na.isIdentifier)(i)||(0,na.isOperator)(i))))throw new Error("Invalid token: ".concat(i,". Found in parsed expression at index ").concat(s));if(i.name===kD.Tokens.IDENTIFIER)return bo(bo([],r,!0),[Boolean(t[i.value])],!1);var a=r[r.length-2],o=r[r.length-1];if(i.value===kD.Operators.NOT)return o===void 0&&(0,na.throwInvalidExpression)("missing identifier"),bo(bo([],r.slice(0,-1),!0),[(0,na.notUtil)(o)],!1);(o===void 0||a===void 0)&&(0,na.throwInvalidExpression)("missing identifier");var l=_Y.OPERATOR_MAP[i.value];return l||(0,na.throwInvalidExpression)("unknown operator"),bo(bo([],r.slice(0,-2),!0),[l(a,o)],!1)},[]);return e.length!==1&&(0,na.throwInvalidExpression)("too many identifiers after evaluation"),e[0]};cr.evaluate=wY;var kY=function(n,t){return(0,cr.getEvaluator)(n)(t)};cr.evaluateExpression=kY});var DD=x(ei=>{"use strict";var tb=ei&&ei.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e);var i=Object.getOwnPropertyDescriptor(t,e);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(n,r,i)}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]});ei.__esModule=!0;ei.parse=ei.evaluate=ei.getEvaluator=void 0;var ED=SD();tb(ei,ED,"getEvaluator");tb(ei,ED,"evaluate");var SY=Xy();tb(ei,SY,"parse")});var HY={};wb(HY,{default:()=>Of});module.exports=Sb(HY);var xx=require("obsidian");gs();var Va=require("obsidian");var Tj=new Error("timeout while waiting for mutex to become available"),_j=new Error("mutex already locked"),Jx=new Error("request for lock canceled"),eO=function(n,t,e,r){function i(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function o(c){try{u(r.next(c))}catch(d){a(d)}}function l(c){try{u(r.throw(c))}catch(d){a(d)}}function u(c){c.done?s(c.value):i(c.value).then(o,l)}u((r=r.apply(n,t||[])).next())})},Wf=class{constructor(t,e=Jx){this._value=t,this._cancelError=e,this._weightedQueues=[],this._weightedWaiters=[]}acquire(t=1){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);return new Promise((e,r)=>{this._weightedQueues[t-1]||(this._weightedQueues[t-1]=[]),this._weightedQueues[t-1].push({resolve:e,reject:r}),this._dispatch()})}runExclusive(t,e=1){return eO(this,void 0,void 0,function*(){let[r,i]=yield this.acquire(e);try{return yield t(r)}finally{i()}})}waitForUnlock(t=1){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);return new Promise(e=>{this._weightedWaiters[t-1]||(this._weightedWaiters[t-1]=[]),this._weightedWaiters[t-1].push(e),this._dispatch()})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(t){this._value=t,this._dispatch()}release(t=1){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);this._value+=t,this._dispatch()}cancel(){this._weightedQueues.forEach(t=>t.forEach(e=>e.reject(this._cancelError))),this._weightedQueues=[]}_dispatch(){var t;for(let e=this._value;e>0;e--){let r=(t=this._weightedQueues[e-1])===null||t===void 0?void 0:t.shift();if(!r)continue;let i=this._value,s=e;this._value-=e,e=this._value+1,r.resolve([i,this._newReleaser(s)])}this._drainUnlockWaiters()}_newReleaser(t){let e=!1;return()=>{e||(e=!0,this.release(t))}}_drainUnlockWaiters(){for(let t=this._value;t>0;t--)!this._weightedWaiters[t-1]||(this._weightedWaiters[t-1].forEach(e=>e()),this._weightedWaiters[t-1]=[])}},tO=function(n,t,e,r){function i(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function o(c){try{u(r.next(c))}catch(d){a(d)}}function l(c){try{u(r.throw(c))}catch(d){a(d)}}function u(c){c.done?s(c.value):i(c.value).then(o,l)}u((r=r.apply(n,t||[])).next())})},Yu=class{constructor(t){this._semaphore=new Wf(1,t)}acquire(){return tO(this,void 0,void 0,function*(){let[,t]=yield this._semaphore.acquire();return t})}runExclusive(t){return this._semaphore.runExclusive(()=>t())}isLocked(){return this._semaphore.isLocked()}waitForUnlock(){return this._semaphore.waitForUnlock()}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}};var ju=require("obsidian"),mt=class{constructor(t,e={}){this._frontmatter={tags:[]};this._tags=[];var i,s;this._path=t,this._cachedMetadata=e;let r=e.frontmatter;if(r!==void 0&&(this._frontmatter=JSON.parse(JSON.stringify(r)),this._frontmatter.tags=(i=(0,ju.parseFrontMatterTags)(r))!=null?i:[]),Object.keys(e).length!==0){let a=(s=(0,ju.getAllTags)(this.cachedMetadata))!=null?s:[];this._tags=[...new Set(a)]}}get path(){return this._path}get tags(){return this._tags}get cachedMetadata(){return this._cachedMetadata}get frontmatter(){return this._frontmatter}rawFrontmatterIdenticalTo(t){let e=this.cachedMetadata.frontmatter,r=t.cachedMetadata.frontmatter;return e===r?!0:!e||!r?!1:JSON.stringify(e)===JSON.stringify(r)}get pathWithoutExtension(){return this.withoutExtension(this.path)}withoutExtension(t){return t.replace(/\.md$/,"")}get root(){let t=this.path.replace(/\\/g,"/");t.charAt(0)==="/"&&(t=t.substring(1));let e=t.indexOf("/");return e==-1?"/":t.substring(0,e+1)}get folder(){let t=this.path,e=this.filename,r=t.substring(0,t.lastIndexOf(e));return r===""?"/":r}get filename(){let t=this.path.match(/([^/]+)$/);return t!==null?t[1]:""}get filenameWithoutExtension(){return this.withoutExtension(this.filename)}hasProperty(t){let e=this.findKeyInFrontmatter(t);if(e===void 0)return!1;let r=this.frontmatter[e];return!(r===null||r===void 0)}property(t){let e=this.findKeyInFrontmatter(t);if(e===void 0)return null;let r=this.frontmatter[e];return r===void 0?null:Array.isArray(r)?r.filter(i=>i!==null):r}findKeyInFrontmatter(t){let e=t.toLowerCase();return Object.keys(this.frontmatter).find(r=>r.toLowerCase()===e)}};ld();Nt();Gi();nn();var Ba=class{constructor(t){this.fetch=t;this._value=void 0}get value(){return this._value===void 0&&(this._value=this.fetch()),this._value}};Ws();Nt();Gi();ld();var Lt=class{constructor(t,e,r,i,s){this._tasksFile=t,this._lineNumber=e,this._sectionStart=r,this._sectionIndex=i,this._precedingHeader=s}static fromUnknownPosition(t){return new Lt(t,0,0,0,null)}fromRenamedFile(t){return new Lt(t,this.lineNumber,this.sectionStart,this.sectionIndex,this.precedingHeader)}get tasksFile(){return this._tasksFile}get path(){return this._tasksFile.path}get lineNumber(){return this._lineNumber}get sectionStart(){return this._sectionStart}get sectionIndex(){return this._sectionIndex}get precedingHeader(){return this._precedingHeader}get hasKnownPath(){return this.path!==""}allFieldsExceptTasksFileForTesting(){let r=U({},this),{_tasksFile:t}=r;return pa(r,["_tasksFile"])}};var ud=class{constructor(t,e,r,i,s,a){this.line2ListItem=new Map;this.tasks=[];this.filePath=t,this.fileContent=e,this.listItems=r,this.logger=i,this.fileCache=s,this.errorReporter=a,this.fileLines=this.fileContent.split(` -`),this.dateFromFileName=new Ba(()=>Ft.fromPath(this.filePath))}parseFileContent(){if(this.listItems===void 0)return this.tasks;let t=new mt(this.filePath,this.fileCache),e=this.fileLines.length,r=null,i=0;for(let s of this.listItems){let a=s.position.start.line;if(a>=e)return this.logger.debug(`${this.filePath} Obsidian gave us a line number ${a} past the end of the file. ${e}.`),this.tasks;if((r===null||r.position.end.line<a)&&(r=$s.getSection(a,this.fileCache.sections),i=0),r===null)continue;let o=this.fileLines[a];if(o===void 0){this.logger.debug(`${this.filePath}: line ${a} - ignoring 'undefined' line.`);continue}let l=new Lt(t,a,r.position.start.line,i,$s.getPrecedingHeader(a,this.fileCache.headings));i=this.parseLine(s,o,l,a,i)}return this.tasks}parseLine(t,e,r,i,s){var o;if(t.task===void 0)return this.createListItem(t,e,i,r),s;let a;try{if(a=fe.fromLine({line:e,taskLocation:r,fallbackDate:this.dateFromFileName.value}),a!==null){let l=(o=this.line2ListItem.get(t.parent))!=null?o:null;l!==null&&(a=new fe(me(U({},a),{parent:l}))),this.line2ListItem.set(i,a),a!==null&&(s++,this.tasks.push(a))}else this.createListItem(t,e,i,r)}catch(l){this.errorReporter(l,this.filePath,t,e)}return s}createListItem(t,e,r,i){var a;let s=(a=this.line2ListItem.get(t.parent))!=null?a:null;this.line2ListItem.set(r,new xr(e,s,i))}};var $s=class{constructor({metadataCache:t,vault:e,workspace:r,events:i}){this.logger=rn.getLogger("tasks.Cache");this.logger.debug("Creating Cache object"),this.metadataCache=t,this.metadataCacheEventReferences=[],this.vault=e,this.workspace=r,this.vaultEventReferences=[],this.events=i,this.eventsEventReferences=[],this.tasksMutex=new Yu,this.state="Cold",this.logger.debug("Cache.constructor(): state = Cold"),this.tasks=[],this.loadedAfterFirstResolve=!1,this.subscribeToCache(),this.workspace.onLayoutReady(()=>{this.subscribeToVault(),this.loadVault()}),this.subscribeToEvents()}unload(){this.logger.info("Unloading Cache");for(let t of this.metadataCacheEventReferences)this.metadataCache.offref(t);for(let t of this.vaultEventReferences)this.vault.offref(t);for(let t of this.eventsEventReferences)this.events.off(t)}getTasks(){return this.tasks}getState(){return this.state}notifySubscribers(){this.logger.debug("Cache.notifySubscribers()"),this.events.triggerCacheUpdate({tasks:this.tasks,state:this.state})}subscribeToCache(){this.logger.debug("Cache.subscribeToCache()");let t=this.metadataCache.on("resolved",()=>L(this,null,function*(){this.loadedAfterFirstResolve||(this.loadedAfterFirstResolve=!0,this.loadVault())}));this.metadataCacheEventReferences.push(t);let e=this.metadataCache.on("changed",r=>{this.tasksMutex.runExclusive(()=>{this.indexFile(r)})});this.metadataCacheEventReferences.push(e)}subscribeToVault(){this.logger.debug("Cache.subscribeToVault()");let{useFilenameAsScheduledDate:t}=le(),e=this.vault.on("create",s=>{s instanceof Va.TFile&&(this.logger.debug(`Cache.subscribeToVault.createdEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{this.indexFile(s)}))});this.vaultEventReferences.push(e);let r=this.vault.on("delete",s=>{s instanceof Va.TFile&&(this.logger.debug(`Cache.subscribeToVault.deletedEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{this.tasks=this.tasks.filter(a=>a.path!==s.path),this.notifySubscribers()}))});this.vaultEventReferences.push(r);let i=this.vault.on("rename",(s,a)=>{s instanceof Va.TFile&&(this.logger.debug(`Cache.subscribeToVault.renamedEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{let o=this.metadataCache.getFileCache(s),l=new mt(s.path,o!=null?o:void 0),u=new Ba(()=>Ft.fromPath(s.path));this.tasks=this.tasks.map(c=>{if(c.path!==a)return c;let d=c.taskLocation.fromRenamedFile(l);return t?Ft.updateTaskPath(c,d,u.value):new fe(me(U({},c),{taskLocation:d}))}),this.notifySubscribers()}))});this.vaultEventReferences.push(i)}subscribeToEvents(){this.logger.debug("Cache.subscribeToEvents()");let t=this.events.onRequestCacheUpdate(e=>{e({tasks:this.tasks,state:this.state})});this.eventsEventReferences.push(t)}loadVault(){return this.logger.debug("Cache.loadVault()"),this.tasksMutex.runExclusive(()=>L(this,null,function*(){this.state="Initializing",this.logger.debug("Cache.loadVault(): state = Initializing"),yield Promise.all(this.vault.getMarkdownFiles().map(t=>this.indexFile(t))),this.state="Warm",this.logger.debug("Cache.loadVault(): state = Warm"),this.notifySubscribers()}))}indexFile(t){return L(this,null,function*(){let e=this.metadataCache.getFileCache(t);if(e==null)return;if(!t.path.endsWith(".md")){this.logger.debug("indexFile: skipping non-markdown file: "+t.path);return}this.logger.debug("Cache.indexFile: "+t.path);let r=this.tasks.filter(a=>a.path===t.path),i=e.listItems,s=[];if(i!==void 0){let a=yield this.vault.cachedRead(t);s=this.getTasksFromFileContent(a,i,e,t.path,this.reportTaskParsingErrorToUser,this.logger)}xr.listsAreIdentical(r,s)||(this.tasks=this.tasks.filter(a=>a.path!==t.path),this.tasks.push(...s),this.logger.debug("Cache.indexFile: "+t.path+`: read ${s.length} task(s)`),this.notifySubscribers())})}getTasksFromFileContent(t,e,r,i,s,a){return new ud(i,t,e,a,r,s).parseFileContent()}reportTaskParsingErrorToUser(t,e,r,i){let s=`There was an error reading one of the tasks in this vault. +`}addEdgeIfNotToInternal(t,e,r,i,s){let a=t.findIndex(u=>u.symbol===e.symbol),o=a!==-1,l=e.type!=="EMPTY";if(o&&l){let u;s?u='-. "\u{1F501}" .-> ':u=" --> ";let c=`${i+1}${u}${a+1}`;r.push(c)}}getMermaidNodeLabel(t,e){let r=WS(t.name),i=t.type;if(e){let s=id(t.symbol),a=id(t.nextStatusSymbol),o=`[${s}] -> [${a}]`,l=`'${r}'`,u=`(${i})`;return`["${l}<br>${o}<br>${u}"]:::${i}`}else return`["${r}"]:::${i}`}}});var Vr,qS=ee(()=>{"use strict";Vr=class{constructor(t,e){this.name=t,this.sortOrder=e}get groupText(){return this.name!==""?`%%${this.sortOrder}%% ${this.name}`:""}}});var HS,It,sd=ee(()=>{"use strict";HS=require("obsidian");qS();ii();It=class{constructor(t){this._date=null;this._date=t}get moment(){return this._date}formatAsDate(t=""){return this.format(fe.dateFormat,t)}formatAsDateAndTime(t=""){return this.format(fe.dateTimeFormat,t)}format(t,e=""){return this._date?this._date.format(t):e}toISOString(t){return this._date?this._date.toISOString(t):""}get category(){let t=window.moment(),e=this.moment;return e?e.isBefore(t,"day")?new Vr("Overdue",1):e.isSame(t,"day")?new Vr("Today",2):e.isValid()?new Vr("Future",3):new Vr("Invalid date",0):new Vr("Undated",4)}get fromNow(){let t=this.moment;if(!t)return new Vr("",0);let e=this.fromNowOrder(t);return new Vr(t.fromNow(),e)}fromNowOrder(t){if(!t.isValid())return 0;let e=window.moment(),r=t.isSameOrBefore(e,"day"),i=this.fromNowStartDateOfGroup(t,r,e);return Number((r?1:3)+i.format("YYYYMMDD"))}fromNowStartDateOfGroup(t,e,r){let i=t.fromNow(!0).split(" "),s,a=Number(i[0]);isNaN(a)?s=1:s=a;let o=i[1];return e?r.subtract(s,o):r.add(s,o)}postpone(t="days",e=1){if(!this._date)throw new HS.Notice("Cannot postpone a null date");let r=window.moment().startOf("day");return this._date.isSameOrAfter(r,"day")?this._date.clone().add(e,t):r.add(e,t)}}});var VS=x((GS,BS)=>{(function(n){var t=Object.hasOwnProperty,e=Array.isArray?Array.isArray:function(y){return Object.prototype.toString.call(y)==="[object Array]"},r=10,i=typeof process=="object"&&typeof process.nextTick=="function",s=typeof Symbol=="function",a=typeof Reflect=="object",o=typeof setImmediate=="function",l=o?setImmediate:setTimeout,u=s?a&&typeof Reflect.ownKeys=="function"?Reflect.ownKeys:function(m){var y=Object.getOwnPropertyNames(m);return y.push.apply(y,Object.getOwnPropertySymbols(m)),y}:Object.keys;function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(m){m&&(this._conf=m,m.delimiter&&(this.delimiter=m.delimiter),m.maxListeners!==n&&(this._maxListeners=m.maxListeners),m.wildcard&&(this.wildcard=m.wildcard),m.newListener&&(this._newListener=m.newListener),m.removeListener&&(this._removeListener=m.removeListener),m.verboseMemoryLeak&&(this.verboseMemoryLeak=m.verboseMemoryLeak),m.ignoreErrors&&(this.ignoreErrors=m.ignoreErrors),this.wildcard&&(this.listenerTree={}))}function f(m,y){var v="(node) warning: possible EventEmitter memory leak detected. "+m+" listeners added. Use emitter.setMaxListeners() to increase limit.";if(this.verboseMemoryLeak&&(v+=" Event name: "+y+"."),typeof process!="undefined"&&process.emitWarning){var w=new Error(v);w.name="MaxListenersExceededWarning",w.emitter=this,w.count=m,process.emitWarning(w)}else console.error(v),console.trace&&console.trace()}var p=function(m,y,v){var w=arguments.length;switch(w){case 0:return[];case 1:return[m];case 2:return[m,y];case 3:return[m,y,v];default:for(var S=new Array(w);w--;)S[w]=arguments[w];return S}};function b(m,y){for(var v={},w,S=m.length,M=y?y.length:0,I=0;I<S;I++)w=m[I],v[w]=I<M?y[I]:n;return v}function T(m,y,v){this._emitter=m,this._target=y,this._listeners={},this._listenersCount=0;var w,S;if((v.on||v.off)&&(w=v.on,S=v.off),y.addEventListener?(w=y.addEventListener,S=y.removeEventListener):y.addListener?(w=y.addListener,S=y.removeListener):y.on&&(w=y.on,S=y.off),!w&&!S)throw Error("target does not implement any known event API");if(typeof w!="function")throw TypeError("on method must be a function");if(typeof S!="function")throw TypeError("off method must be a function");this._on=w,this._off=S;var M=m._observers;M?M.push(this):m._observers=[this]}Object.assign(T.prototype,{subscribe:function(m,y,v){var w=this,S=this._target,M=this._emitter,I=this._listeners,j=function(){var D=p.apply(null,arguments),P={data:D,name:y,original:m};if(v){var W=v.call(S,P);W!==!1&&M.emit.apply(M,[P.name].concat(D));return}M.emit.apply(M,[y].concat(D))};if(I[m])throw Error("Event '"+m+"' is already listening");this._listenersCount++,M._newListener&&M._removeListener&&!w._onNewListener?(this._onNewListener=function(D){D===y&&I[m]===null&&(I[m]=j,w._on.call(S,m,j))},M.on("newListener",this._onNewListener),this._onRemoveListener=function(D){D===y&&!M.hasListeners(D)&&I[m]&&(I[m]=null,w._off.call(S,m,j))},I[m]=null,M.on("removeListener",this._onRemoveListener)):(I[m]=j,w._on.call(S,m,j))},unsubscribe:function(m){var y=this,v=this._listeners,w=this._emitter,S,M,I=this._off,j=this._target,D;if(m&&typeof m!="string")throw TypeError("event must be a string");function P(){y._onNewListener&&(w.off("newListener",y._onNewListener),w.off("removeListener",y._onRemoveListener),y._onNewListener=null,y._onRemoveListener=null);var W=se.call(w,y);w._observers.splice(W,1)}if(m){if(S=v[m],!S)return;I.call(j,m,S),delete v[m],--this._listenersCount||P()}else{for(M=u(v),D=M.length;D-- >0;)m=M[D],I.call(j,m,v[m]);this._listeners={},this._listenersCount=0,P()}}});function _(m,y,v,w){var S=Object.assign({},y);if(!m)return S;if(typeof m!="object")throw TypeError("options must be an object");var M=Object.keys(m),I=M.length,j,D,P;function W(be){throw Error('Invalid "'+j+'" option value'+(be?". Reason: "+be:""))}for(var ce=0;ce<I;ce++){if(j=M[ce],!w&&!t.call(y,j))throw Error('Unknown "'+j+'" option');D=m[j],D!==n&&(P=v[j],S[j]=P?P(D,W):D)}return S}function O(m,y){return(typeof m!="function"||!m.hasOwnProperty("prototype"))&&y("value must be a constructor"),m}function E(m){var y="value must be type of "+m.join("|"),v=m.length,w=m[0],S=m[1];return v===1?function(M,I){if(typeof M===w)return M;I(y)}:v===2?function(M,I){var j=typeof M;if(j===w||j===S)return M;I(y)}:function(M,I){for(var j=typeof M,D=v;D-- >0;)if(j===m[D])return M;I(y)}}var A=E(["function"]),Y=E(["object","function"]);function q(m,y,v){var w,S,M=0,I,j=new m(function(D,P,W){v=_(v,{timeout:0,overload:!1},{timeout:function(He,Le){return He*=1,(typeof He!="number"||He<0||!Number.isFinite(He))&&Le("timeout must be a positive number"),He}}),w=!v.overload&&typeof m.prototype.cancel=="function"&&typeof W=="function";function ce(){S&&(S=null),M&&(clearTimeout(M),M=0)}var be=function(He){ce(),D(He)},Oe=function(He){ce(),P(He)};w?y(be,Oe,W):(S=[function(He){Oe(He||Error("canceled"))}],y(be,Oe,function(He){if(I)throw Error("Unable to subscribe on cancel event asynchronously");if(typeof He!="function")throw TypeError("onCancel callback must be a function");S.push(He)}),I=!0),v.timeout>0&&(M=setTimeout(function(){var He=Error("timeout");He.code="ETIMEDOUT",M=0,j.cancel(He),P(He)},v.timeout))});return w||(j.cancel=function(D){if(!!S){for(var P=S.length,W=1;W<P;W++)S[W](D);S[0](D),S=null}}),j}function se(m){var y=this._observers;if(!y)return-1;for(var v=y.length,w=0;w<v;w++)if(y[w]._target===m)return w;return-1}function H(m,y,v,w,S){if(!v)return null;if(w===0){var M=typeof y;if(M==="string"){var I,j,D=0,P=0,W=this.delimiter,ce=W.length;if((j=y.indexOf(W))!==-1){I=new Array(5);do I[D++]=y.slice(P,j),P=j+ce;while((j=y.indexOf(W,P))!==-1);I[D++]=y.slice(P),y=I,S=D}else y=[y],S=1}else M==="object"?S=y.length:(y=[y],S=1)}var be=null,Oe,He,Le,Yt,pr,vn=y[w],te=y[w+1],jt,it;if(w===S)v._listeners&&(typeof v._listeners=="function"?(m&&m.push(v._listeners),be=[v]):(m&&m.push.apply(m,v._listeners),be=[v]));else if(vn==="*"){for(jt=u(v),j=jt.length;j-- >0;)Oe=jt[j],Oe!=="_listeners"&&(it=H(m,y,v[Oe],w+1,S),it&&(be?be.push.apply(be,it):be=it));return be}else if(vn==="**"){for(pr=w+1===S||w+2===S&&te==="*",pr&&v._listeners&&(be=H(m,y,v,S,S)),jt=u(v),j=jt.length;j-- >0;)Oe=jt[j],Oe!=="_listeners"&&(Oe==="*"||Oe==="**"?(v[Oe]._listeners&&!pr&&(it=H(m,y,v[Oe],S,S),it&&(be?be.push.apply(be,it):be=it)),it=H(m,y,v[Oe],w,S)):Oe===te?it=H(m,y,v[Oe],w+2,S):it=H(m,y,v[Oe],w,S),it&&(be?be.push.apply(be,it):be=it));return be}else v[vn]&&(be=H(m,y,v[vn],w+1,S));if(He=v["*"],He&&H(m,y,He,w+1,S),Le=v["**"],Le)if(w<S)for(Le._listeners&&H(m,y,Le,S,S),jt=u(Le),j=jt.length;j-- >0;)Oe=jt[j],Oe!=="_listeners"&&(Oe===te?H(m,y,Le[Oe],w+2,S):Oe===vn?H(m,y,Le[Oe],w+1,S):(Yt={},Yt[Oe]=Le[Oe],H(m,y,{"**":Yt},w+1,S)));else Le._listeners?H(m,y,Le,S,S):Le["*"]&&Le["*"]._listeners&&H(m,y,Le["*"],S,S);return be}function Z(m,y,v){var w=0,S=0,M,I=this.delimiter,j=I.length,D;if(typeof m=="string")if((M=m.indexOf(I))!==-1){D=new Array(5);do D[w++]=m.slice(S,M),S=M+j;while((M=m.indexOf(I,S))!==-1);D[w++]=m.slice(S)}else D=[m],w=1;else D=m,w=m.length;if(w>1){for(M=0;M+1<w;M++)if(D[M]==="**"&&D[M+1]==="**")return}var P=this.listenerTree,W;for(M=0;M<w;M++)if(W=D[M],P=P[W]||(P[W]={}),M===w-1)return P._listeners?(typeof P._listeners=="function"&&(P._listeners=[P._listeners]),v?P._listeners.unshift(y):P._listeners.push(y),!P._listeners.warned&&this._maxListeners>0&&P._listeners.length>this._maxListeners&&(P._listeners.warned=!0,f.call(this,P._listeners.length,W))):P._listeners=y,!0;return!0}function ye(m,y,v,w){for(var S=u(m),M=S.length,I,j,D,P=m._listeners,W;M-- >0;)j=S[M],I=m[j],j==="_listeners"?D=v:D=v?v.concat(j):[j],W=w||typeof j=="symbol",P&&y.push(W?D:D.join(this.delimiter)),typeof I=="object"&&ye.call(this,I,y,D,W);return y}function we(m){for(var y=u(m),v=y.length,w,S,M;v-- >0;)S=y[v],w=m[S],w&&(M=!0,S!=="_listeners"&&!we(w)&&delete m[S]);return M}function V(m,y,v){this.emitter=m,this.event=y,this.listener=v}V.prototype.off=function(){return this.emitter.off(this.event,this.listener),this};function K(m,y,v){if(v===!0)S=!0;else if(v===!1)w=!0;else{if(!v||typeof v!="object")throw TypeError("options should be an object or true");var w=v.async,S=v.promisify,M=v.nextTick,I=v.objectify}if(w||M||S){var j=y,D=y._origin||y;if(M&&!i)throw Error("process.nextTick is not supported");S===n&&(S=y.constructor.name==="AsyncFunction"),y=function(){var P=arguments,W=this,ce=this.event;return S?M?Promise.resolve():new Promise(function(be){l(be)}).then(function(){return W.event=ce,j.apply(W,P)}):(M?process.nextTick:l)(function(){W.event=ce,j.apply(W,P)})},y._async=!0,y._origin=D}return[y,I?new V(this,m,y):this]}function C(m){this._events={},this._newListener=!1,this._removeListener=!1,this.verboseMemoryLeak=!1,d.call(this,m)}C.EventEmitter2=C,C.prototype.listenTo=function(m,y,v){if(typeof m!="object")throw TypeError("target musts be an object");var w=this;v=_(v,{on:n,off:n,reducers:n},{on:A,off:A,reducers:Y});function S(M){if(typeof M!="object")throw TypeError("events must be an object");var I=v.reducers,j=se.call(w,m),D;j===-1?D=new T(w,m,v):D=w._observers[j];for(var P=u(M),W=P.length,ce,be=typeof I=="function",Oe=0;Oe<W;Oe++)ce=P[Oe],D.subscribe(ce,M[ce]||ce,be?I:I&&I[ce])}return e(y)?S(b(y)):S(typeof y=="string"?b(y.split(/\s+/)):y),this},C.prototype.stopListeningTo=function(m,y){var v=this._observers;if(!v)return!1;var w=v.length,S,M=!1;if(m&&typeof m!="object")throw TypeError("target should be an object");for(;w-- >0;)S=v[w],(!m||S._target===m)&&(S.unsubscribe(y),M=!0);return M},C.prototype.delimiter=".",C.prototype.setMaxListeners=function(m){m!==n&&(this._maxListeners=m,this._conf||(this._conf={}),this._conf.maxListeners=m)},C.prototype.getMaxListeners=function(){return this._maxListeners},C.prototype.event="",C.prototype.once=function(m,y,v){return this._once(m,y,!1,v)},C.prototype.prependOnceListener=function(m,y,v){return this._once(m,y,!0,v)},C.prototype._once=function(m,y,v,w){return this._many(m,1,y,v,w)},C.prototype.many=function(m,y,v,w){return this._many(m,y,v,!1,w)},C.prototype.prependMany=function(m,y,v,w){return this._many(m,y,v,!0,w)},C.prototype._many=function(m,y,v,w,S){var M=this;if(typeof v!="function")throw new Error("many only accepts instances of Function");function I(){return--y===0&&M.off(m,I),v.apply(this,arguments)}return I._origin=v,this._on(m,I,w,S)},C.prototype.emit=function(){if(!this._events&&!this._all)return!1;this._events||c.call(this);var m=arguments[0],y,v=this.wildcard,w,S,M,I,j;if(m==="newListener"&&!this._newListener&&!this._events.newListener)return!1;if(v&&(y=m,m!=="newListener"&&m!=="removeListener"&&typeof m=="object")){if(S=m.length,s){for(M=0;M<S;M++)if(typeof m[M]=="symbol"){j=!0;break}}j||(m=m.join(this.delimiter))}var D=arguments.length,P;if(this._all&&this._all.length)for(P=this._all.slice(),M=0,S=P.length;M<S;M++)switch(this.event=m,D){case 1:P[M].call(this,m);break;case 2:P[M].call(this,m,arguments[1]);break;case 3:P[M].call(this,m,arguments[1],arguments[2]);break;default:P[M].apply(this,arguments)}if(v)P=[],H.call(this,P,y,this.listenerTree,0,S);else if(P=this._events[m],typeof P=="function"){switch(this.event=m,D){case 1:P.call(this);break;case 2:P.call(this,arguments[1]);break;case 3:P.call(this,arguments[1],arguments[2]);break;default:for(w=new Array(D-1),I=1;I<D;I++)w[I-1]=arguments[I];P.apply(this,w)}return!0}else P&&(P=P.slice());if(P&&P.length){if(D>3)for(w=new Array(D-1),I=1;I<D;I++)w[I-1]=arguments[I];for(M=0,S=P.length;M<S;M++)switch(this.event=m,D){case 1:P[M].call(this);break;case 2:P[M].call(this,arguments[1]);break;case 3:P[M].call(this,arguments[1],arguments[2]);break;default:P[M].apply(this,w)}return!0}else if(!this.ignoreErrors&&!this._all&&m==="error")throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");return!!this._all},C.prototype.emitAsync=function(){if(!this._events&&!this._all)return!1;this._events||c.call(this);var m=arguments[0],y=this.wildcard,v,w,S,M,I,j;if(m==="newListener"&&!this._newListener&&!this._events.newListener)return Promise.resolve([!1]);if(y&&(v=m,m!=="newListener"&&m!=="removeListener"&&typeof m=="object")){if(M=m.length,s){for(I=0;I<M;I++)if(typeof m[I]=="symbol"){w=!0;break}}w||(m=m.join(this.delimiter))}var D=[],P=arguments.length,W;if(this._all)for(I=0,M=this._all.length;I<M;I++)switch(this.event=m,P){case 1:D.push(this._all[I].call(this,m));break;case 2:D.push(this._all[I].call(this,m,arguments[1]));break;case 3:D.push(this._all[I].call(this,m,arguments[1],arguments[2]));break;default:D.push(this._all[I].apply(this,arguments))}if(y?(W=[],H.call(this,W,v,this.listenerTree,0)):W=this._events[m],typeof W=="function")switch(this.event=m,P){case 1:D.push(W.call(this));break;case 2:D.push(W.call(this,arguments[1]));break;case 3:D.push(W.call(this,arguments[1],arguments[2]));break;default:for(S=new Array(P-1),j=1;j<P;j++)S[j-1]=arguments[j];D.push(W.apply(this,S))}else if(W&&W.length){if(W=W.slice(),P>3)for(S=new Array(P-1),j=1;j<P;j++)S[j-1]=arguments[j];for(I=0,M=W.length;I<M;I++)switch(this.event=m,P){case 1:D.push(W[I].call(this));break;case 2:D.push(W[I].call(this,arguments[1]));break;case 3:D.push(W[I].call(this,arguments[1],arguments[2]));break;default:D.push(W[I].apply(this,S))}}else if(!this.ignoreErrors&&!this._all&&m==="error")return arguments[1]instanceof Error?Promise.reject(arguments[1]):Promise.reject("Uncaught, unspecified 'error' event.");return Promise.all(D)},C.prototype.on=function(m,y,v){return this._on(m,y,!1,v)},C.prototype.prependListener=function(m,y,v){return this._on(m,y,!0,v)},C.prototype.onAny=function(m){return this._onAny(m,!1)},C.prototype.prependAny=function(m){return this._onAny(m,!0)},C.prototype.addListener=C.prototype.on,C.prototype._onAny=function(m,y){if(typeof m!="function")throw new Error("onAny only accepts instances of Function");return this._all||(this._all=[]),y?this._all.unshift(m):this._all.push(m),this},C.prototype._on=function(m,y,v,w){if(typeof m=="function")return this._onAny(m,y),this;if(typeof y!="function")throw new Error("on only accepts instances of Function");this._events||c.call(this);var S=this,M;return w!==n&&(M=K.call(this,m,y,w),y=M[0],S=M[1]),this._newListener&&this.emit("newListener",m,y),this.wildcard?(Z.call(this,m,y,v),S):(this._events[m]?(typeof this._events[m]=="function"&&(this._events[m]=[this._events[m]]),v?this._events[m].unshift(y):this._events[m].push(y),!this._events[m].warned&&this._maxListeners>0&&this._events[m].length>this._maxListeners&&(this._events[m].warned=!0,f.call(this,this._events[m].length,m))):this._events[m]=y,S)},C.prototype.off=function(m,y){if(typeof y!="function")throw new Error("removeListener only takes instances of Function");var v,w=[];if(this.wildcard){var S=typeof m=="string"?m.split(this.delimiter):m.slice();if(w=H.call(this,null,S,this.listenerTree,0),!w)return this}else{if(!this._events[m])return this;v=this._events[m],w.push({_listeners:v})}for(var M=0;M<w.length;M++){var I=w[M];if(v=I._listeners,e(v)){for(var j=-1,D=0,P=v.length;D<P;D++)if(v[D]===y||v[D].listener&&v[D].listener===y||v[D]._origin&&v[D]._origin===y){j=D;break}if(j<0)continue;return this.wildcard?I._listeners.splice(j,1):this._events[m].splice(j,1),v.length===0&&(this.wildcard?delete I._listeners:delete this._events[m]),this._removeListener&&this.emit("removeListener",m,y),this}else(v===y||v.listener&&v.listener===y||v._origin&&v._origin===y)&&(this.wildcard?delete I._listeners:delete this._events[m],this._removeListener&&this.emit("removeListener",m,y))}return this.listenerTree&&we(this.listenerTree),this},C.prototype.offAny=function(m){var y=0,v=0,w;if(m&&this._all&&this._all.length>0){for(w=this._all,y=0,v=w.length;y<v;y++)if(m===w[y])return w.splice(y,1),this._removeListener&&this.emit("removeListenerAny",m),this}else{if(w=this._all,this._removeListener)for(y=0,v=w.length;y<v;y++)this.emit("removeListenerAny",w[y]);this._all=[]}return this},C.prototype.removeListener=C.prototype.off,C.prototype.removeAllListeners=function(m){if(m===n)return!this._events||c.call(this),this;if(this.wildcard){var y=H.call(this,null,m,this.listenerTree,0),v,w;if(!y)return this;for(w=0;w<y.length;w++)v=y[w],v._listeners=null;this.listenerTree&&we(this.listenerTree)}else this._events&&(this._events[m]=null);return this},C.prototype.listeners=function(m){var y=this._events,v,w,S,M,I;if(m===n){if(this.wildcard)throw Error("event name required for wildcard emitter");if(!y)return[];for(v=u(y),M=v.length,S=[];M-- >0;)w=y[v[M]],typeof w=="function"?S.push(w):S.push.apply(S,w);return S}else{if(this.wildcard){if(I=this.listenerTree,!I)return[];var j=[],D=typeof m=="string"?m.split(this.delimiter):m.slice();return H.call(this,j,D,I,0),j}return y?(w=y[m],w?typeof w=="function"?[w]:w:[]):[]}},C.prototype.eventNames=function(m){var y=this._events;return this.wildcard?ye.call(this,this.listenerTree,[],null,m):y?u(y):[]},C.prototype.listenerCount=function(m){return this.listeners(m).length},C.prototype.hasListeners=function(m){if(this.wildcard){var y=[],v=typeof m=="string"?m.split(this.delimiter):m.slice();return H.call(this,y,v,this.listenerTree,0),y.length>0}var w=this._events,S=this._all;return!!(S&&S.length||w&&(m===n?u(w).length:w[m]))},C.prototype.listenersAny=function(){return this._all?this._all:[]},C.prototype.waitFor=function(m,y){var v=this,w=typeof y;return w==="number"?y={timeout:y}:w==="function"&&(y={filter:y}),y=_(y,{timeout:0,filter:n,handleError:!1,Promise,overload:!1},{filter:A,Promise:O}),q(y.Promise,function(S,M,I){function j(){var D=y.filter;if(!(D&&!D.apply(v,arguments)))if(v.off(m,j),y.handleError){var P=arguments[0];P?M(P):S(p.apply(null,arguments).slice(1))}else S(p.apply(null,arguments))}I(function(){v.off(m,j)}),v._on(m,j,!1)},{timeout:y.timeout,overload:y.overload})};function J(m,y,v){v=_(v,{Promise,timeout:0,overload:!1},{Promise:O});var w=v.Promise;return q(w,function(S,M,I){var j;if(typeof m.addEventListener=="function"){j=function(){S(p.apply(null,arguments))},I(function(){m.removeEventListener(y,j)}),m.addEventListener(y,j,{once:!0});return}var D=function(){P&&m.removeListener("error",P),S(p.apply(null,arguments))},P;y!=="error"&&(P=function(W){m.removeListener(y,D),M(W)},m.once("error",P)),I(function(){P&&m.removeListener("error",P),m.removeListener(y,D)}),m.once(y,D)},{timeout:v.timeout,overload:v.overload})}var $=C.prototype;if(Object.defineProperties(C,{defaultMaxListeners:{get:function(){return $._maxListeners},set:function(m){if(typeof m!="number"||m<0||Number.isNaN(m))throw TypeError("n must be a non-negative number");$._maxListeners=m},enumerable:!0},once:{value:J,writable:!0,configurable:!0}}),Object.defineProperties($,{_maxListeners:{value:r,writable:!0,configurable:!0},_observers:{value:null,writable:!0,configurable:!0}}),typeof define=="function"&&define.amd)define(function(){return C});else if(typeof GS=="object")BS.exports=C;else{var oe=new Function("","return this")();oe.EventEmitter2=C}})()});function cy(n,t){let e=sn.getLogger("tasks");switch(n){case"trace":e.trace(t);break;case"debug":e.debug(t);break;case"info":e.info(t);break;case"warn":e.warn(t);break;case"error":e.error(t);break;default:break}}var w2,zS,ly,sn,uy,Ws=ee(()=>{"use strict";w2=require("obsidian"),zS=qo(VS()),ly=class extends zS.EventEmitter2{constructor(){super(...arguments);this.options={minLevels:{"":"info",tasks:"info"}};this.consoleLoggerRegistered=!1;this.arrAvg=e=>e.reduce((r,i)=>r+i,0)/e.length}configure(e){return this.options=Object.assign({},this.options,e),this}getLogger(e){let r="none",i="";for(let s in this.options.minLevels)e.startsWith(s)&&s.length>=i.length&&(r=this.options.minLevels[s],i=s);return new uy(this,e,r)}onLogEntry(e){return this.on("log",e),this}registerConsoleLogger(){return this.consoleLoggerRegistered?this:(this.onLogEntry(e=>{let r=`[${window.moment().format("YYYY-MM-DD-HH:mm:ss.SSS")}][${e.level}][${e.module}]`;switch(e.traceId&&(r+=`[${e.traceId}]`),r+=` ${e.message}`,e.objects===void 0&&(e.objects=""),e.level){case"trace":console.trace(r,e.objects);break;case"debug":console.debug(r,e.objects);break;case"info":console.info(r,e.objects);break;case"warn":console.warn(r,e.objects);break;case"error":console.error(r,e.objects);break;default:console.log(`{${e.level}} ${r}`,e.objects)}}),this.consoleLoggerRegistered=!0,this)}},sn=new ly,uy=class{constructor(t,e,r){this.levels={trace:1,debug:2,info:3,warn:4,error:5};this.logManager=t,this.module=e,this.minLevel=this.levelToInt(r)}levelToInt(t){return t.toLowerCase()in this.levels?this.levels[t.toLowerCase()]:99}log(t,e,r){if(this.levelToInt(t)<this.minLevel)return;let s={level:t,module:this.module,message:e,objects:r,traceId:void 0};this.logManager.emit("log",s)}trace(t,e){this.log("trace",t,e)}debug(t,e){this.log("debug",t,e)}info(t,e){this.log("info",t,e)}warn(t,e){this.log("warn",t,e)}error(t,e){this.log("error",t,e)}logWithId(t,e,r,i){if(this.levelToInt(t)<this.minLevel)return;let a={level:t,module:this.module,message:r,objects:i,traceId:e};this.logManager.emit("log",a)}traceWithId(t,e,r){this.logWithId("trace",t,e,r)}debugWithId(t,e,r){this.logWithId("debug",t,e,r)}infoWithId(t,e,r){this.logWithId("info",t,e,r)}warnWithId(t,e,r){this.logWithId("warn",t,e,r)}errorWithId(t,e,r){this.logWithId("error",t,e,r)}}});function ad(n,t,e){n.debug(`${t}: task line number: ${e.taskLocation.lineNumber}. file path: "${e.path}"`),n.debug(`${t} original: ${e.originalMarkdown}`)}function od(n,t,e){e.map((r,i)=>{n.debug(`${t} ==> ${i+1} : ${r.toFileLineString()}`)})}var dy=ee(()=>{"use strict"});var Ft,Gi=ee(()=>{"use strict";rn();Nt();Ft=class{static fromPath(t){let{useFilenameAsScheduledDate:e,filenameAsDateFolders:r}=le();return!e||!this.matchesAnyFolder(r,t)?null:this.extractDateFromPath(t)}static matchesAnyFolder(t,e){return t.length===0?!0:t.some(r=>e.startsWith(r+"/"))}static extractDateFromPath(t){let e=Math.max(0,t.lastIndexOf("/")+1),r=t.lastIndexOf("."),i=t.substring(e,r),{filenameAsScheduledDateFormat:s}=le();if(s!==""){let o=window.moment(i,s,!0);if(o.isValid())return o}let a=/(\d{4})-(\d{2})-(\d{2})/.exec(i);if(a||(a=/(\d{4})(\d{2})(\d{2})/.exec(i)),a){let o=window.moment([parseInt(a[1]),parseInt(a[2])-1,parseInt(a[3])]);if(o.isValid())return o}return null}static canApplyFallback({startDate:t,scheduledDate:e,dueDate:r}){return t===null&&r===null&&e===null}static updateTaskPath(t,e,r){let i=t.scheduledDate,s=t.scheduledDateIsInferred;return r===null?s&&(s=!1,i=null):s?i=r:this.canApplyFallback(t)&&(i=r,s=!0),new pe(de(U({},t),{taskLocation:e,scheduledDate:i,scheduledDateIsInferred:s}))}static removeInferredStatusIfNeeded(t,e){let r=t.scheduledDateIsInferred?t.scheduledDate:null;return e.map(i=>(r!==null&&!r.isSame(i.scheduledDate,"day")&&(i=new pe(de(U({},i),{scheduledDateIsInferred:!1}))),i))}}});var xr,ki,KS=ee(()=>{"use strict";xr=class{static calculate(t){var r,i,s;let e=0;if((r=t.dueDate)!=null&&r.isValid()){let a=window.moment().startOf("day"),o=Math.round(a.diff(t.dueDate)/xr.milliSecondsPerDay),l;o>=7?l=1:o>=-14?l=(o+14)*.8/21+.2:l=.2,e+=l*xr.dueCoefficient}switch((i=t.scheduledDate)!=null&&i.isValid()&&window.moment().isSameOrAfter(t.scheduledDate)&&(e+=1*xr.scheduledCoefficient),(s=t.startDate)!=null&&s.isValid()&&window.moment().isBefore(t.startDate)&&(e+=1*xr.startedCoefficient),t.priority){case"0":e+=1.5*xr.priorityCoefficient;break;case"1":e+=1*xr.priorityCoefficient;break;case"2":e+=.65*xr.priorityCoefficient;break;case"3":e+=.325*xr.priorityCoefficient;break;case"5":e-=.3*xr.priorityCoefficient;break}return e}},ki=xr;ki.dueCoefficient=12,ki.scheduledCoefficient=5,ki.startedCoefficient=-3,ki.priorityCoefficient=6,ki.milliSecondsPerDay=1e3*60*60*24});var QS={};wb(QS,{Task:()=>pe,isBlocked:()=>k2});function k2(n,t){if(n.dependsOn.length===0||n.isDone)return!1;for(let e of n.dependsOn)if(!!t.find(i=>i.id===e&&!i.isDone))return!0;return!1}var pe,Nt=ee(()=>{"use strict";rn();Mn();wi();Cs();sd();Cn();su();Ws();dy();Gi();ld();KS();ii();Kc();pe=class extends nr{constructor({status:e,description:r,taskLocation:i,indentation:s,listMarker:a,priority:o,createdDate:l,startDate:u,scheduledDate:c,dueDate:d,doneDate:f,cancelledDate:p,recurrence:b,onCompletion:T,dependsOn:_,id:O,blockLink:E,tags:A,originalMarkdown:Y,scheduledDateIsInferred:q,parent:se=null}){super({originalMarkdown:Y,indentation:s,listMarker:a,statusCharacter:e.symbol,description:r,taskLocation:i,parent:se});this._urgency=null;this.status=e,this.tags=A,this.priority=o,this.createdDate=l,this.startDate=u,this.scheduledDate=c,this.dueDate=d,this.doneDate=f,this.cancelledDate=p,this.recurrence=b,this.onCompletion=T,this.dependsOn=_,this.id=O,this.blockLink=E,this.scheduledDateIsInferred=q}static fromLine({line:e,taskLocation:r,fallbackDate:i}){let s=pe.extractTaskComponents(e);return s===null||!Fe.getInstance().includedIn(s.body)?null:pe.parseTaskSignifiers(e,r,i)}static parseTaskSignifiers(e,r,i){let s=pe.extractTaskComponents(e);if(s===null)return null;let{taskSerializer:a}=au(),o=a.deserialize(s.body),l=!1;return Ft.canApplyFallback(o)&&i!==null&&(o.scheduledDate=i,l=!0),o.tags=o.tags.map(u=>u.trim()),o.tags=o.tags.filter(u=>!Fe.getInstance().equals(u)),new pe(de(U(U({},s),o),{taskLocation:r,originalMarkdown:e,scheduledDateIsInferred:l}))}static extractTaskComponents(e){let r=e.match(fe.taskRegex);if(r===null)return null;let i=r[1],s=r[2],a=r[3],o=Be.getInstance().bySymbolOrCreate(a),l=r[4].trim(),u=l.match(fe.blockLinkRegex),c=u!==null?u[0]:"";return c!==""&&(l=l.replace(fe.blockLinkRegex,"").trim()),{indentation:i,listMarker:s,status:o,body:l,blockLink:c}}toString(){return au().taskSerializer.serialize(this)}toFileLineString(){return`${this.indentation}${this.listMarker} [${this.status.symbol}] ${this.toString()}`}toggle(){let e=sn.getLogger("tasks.Task"),r="toggle()";ad(e,r,this);let i=Be.getInstance().getNextStatusOrCreate(this.status),s=this.handleNewStatus(i);return od(e,r,s),s}handleNewStatus(e,r=window.moment()){if(e.identicalTo(this.status))return[this];let{setDoneDate:i}=le(),s=this.newDate(e,"DONE",this.doneDate,i,r),{setCancelledDate:a}=le(),o=this.newDate(e,"CANCELLED",this.cancelledDate,a,r),l=new pe(de(U({},this),{status:e,doneDate:s,cancelledDate:o})),u=!e.isCompleted(),c=this.status.isCompleted(),d=this.recurrence===null;if(u||c||d)return[l];let{removeScheduledDateOnRecurrence:p}=le(),b=this.recurrence.next(r,p);return b===null?[l]:[this.createNextOccurrence(e,b),l]}newDate(e,r,i,s,a){let o=null;return e.type===r&&(this.status.type!==r?s&&(o=a):o=i),o}createNextOccurrence(e,r){let{setCreatedDate:i}=le(),s=null;i&&(s=window.moment());let a=null,o=null,u=Be.getInstance().getNextRecurrenceStatusOrCreate(e);return new pe(de(U(U({},this),r),{status:u,blockLink:"",id:"",dependsOn:[],createdDate:s,cancelledDate:a,doneDate:o}))}toggleWithRecurrenceInUsersOrder(){let e=this.toggle();return this.putRecurrenceInUsersOrder(e)}handleNewStatusWithRecurrenceInUsersOrder(e,r=window.moment()){sn.getLogger("tasks.Task").debug(`changed task ${this.taskLocation.path} ${this.taskLocation.lineNumber} ${this.originalMarkdown} status to '${e.symbol}'`);let s=this.handleNewStatus(e,r);return this.putRecurrenceInUsersOrder(s)}putRecurrenceInUsersOrder(e){let r=DS(this,e),{recurrenceOnNextLine:i}=le();return i?r.reverse():r}get isTask(){return!0}get isDone(){return this.status.type==="DONE"||this.status.type==="CANCELLED"||this.status.type==="NON_TASK"}isBlocked(e){if(this.dependsOn.length===0||this.isDone)return!1;for(let r of this.dependsOn)if(!!e.find(s=>s.id===r&&!s.isDone))return!0;return!1}isBlocking(e){return this.id===""||this.isDone?!1:e.some(r=>r.isDone?!1:r.dependsOn.includes(this.id))}get priorityNumber(){return Number.parseInt(this.priority)}get priorityNameGroupText(){let e=Rn.priorityNameUsingNormal(this.priority);return`%%${this.priority}%%${e} priority`}get descriptionWithoutTags(){return this.description.replace(fe.hashTags,"").trim()}get priorityName(){return Rn.priorityNameUsingNormal(this.priority)}get urgency(){return this._urgency===null&&(this._urgency=ki.calculate(this)),this._urgency}get cancelled(){return new It(this.cancelledDate)}get created(){return new It(this.createdDate)}get done(){return new It(this.doneDate)}get due(){return new It(this.dueDate)}get scheduled(){return new It(this.scheduledDate)}get start(){return new It(this.startDate)}get happensDates(){return Array.of(this.startDate,this.scheduledDate,this.dueDate)}get happens(){let e=this.happensDates,r=Array.from(e).sort(Qn);for(let i of r)if(i!=null&&i.isValid())return new It(i);return new It(null)}get isRecurring(){return this.recurrence!==null}get recurrenceRule(){return this.recurrence?this.recurrence.toText():""}get heading(){return this.precedingHeader}get hasHeading(){return this.precedingHeader!==null}getLinkText({isFilenameUnique:e}){let r;return e?r=this.filename:r="/"+this.path,r===null?null:(this.precedingHeader!==null&&this.precedingHeader!==r&&(r=r+" > "+this.precedingHeader),r)}identicalTo(e){var i,s;if(!super.identicalTo(e))return!1;let r=["priority","blockLink","scheduledDateIsInferred","id","dependsOn","onCompletion"];for(let a of r)if(((i=this[a])==null?void 0:i.toString())!==((s=e[a])==null?void 0:s.toString()))return!1;if(!this.status.identicalTo(e.status)||this.tags.length!==e.tags.length||!this.tags.every(function(a,o){return a===e.tags[o]}))return!1;r=pe.allDateFields();for(let a of r){let o=this[a],l=e[a];if(Qn(o,l)!==0)return!1}return this.recurrenceIdenticalTo(e)?this.file.rawFrontmatterIdenticalTo(e.file):!1}recurrenceIdenticalTo(e){let r=this.recurrence,i=e.recurrence;return!(r===null&&i!==null||r!==null&&i===null||r&&i&&!r.identicalTo(i))}static allDateFields(){return["createdDate","startDate","scheduledDate","dueDate","doneDate","cancelledDate"]}static extractHashtags(e){var r,i;return(i=(r=e.match(fe.hashTags))==null?void 0:r.map(s=>s.trim()))!=null?i:[]}}});var nr,ld=ee(()=>{"use strict";ii();nr=class{constructor({originalMarkdown:t,indentation:e,listMarker:r,statusCharacter:i,description:s,parent:a,taskLocation:o}){this.children=[];this.indentation=e,this.listMarker=r,this.statusCharacter=i,this.description=s,this.originalMarkdown=t,this.parent=a,a!==null&&a.children.push(this),this.taskLocation=o}static fromListItemLine(t,e,r){var a;let i=RegExp(fe.nonTaskRegex).exec(t);if(!i)return null;let s=i[2];return s===void 0?null:new nr({originalMarkdown:t,indentation:i[1],listMarker:s,statusCharacter:(a=i[4])!=null?a:null,description:i[5].trim(),taskLocation:r,parent:e})}get root(){return this.parent===null?this:this.parent.root}get isRoot(){return this.parent===null}findClosestParentTask(){let t=this.parent;for(;t!==null;){let{Task:e}=(Nt(),Sb(QS));if(t instanceof e)return t;t=t.parent}return null}get isTask(){return!1}identicalTo(t){var r,i;if(this.constructor.name!==t.constructor.name)return!1;let e=["description","statusCharacter","indentation","listMarker"];for(let s of e)if(((r=this[s])==null?void 0:r.toString())!==((i=t[s])==null?void 0:i.toString()))return!1;return this.taskLocation.identicalTo(t.taskLocation)?nr.listsAreIdentical(this.children,t.children):!1}static listsAreIdentical(t,e){return t.length!==e.length?!1:t.every((r,i)=>r.identicalTo(e[i]))}get path(){return this.taskLocation.path}get file(){return this.taskLocation.tasksFile}get filename(){let t=this.path.match(/([^/]+)\.md$/);return t!==null?t[1]:null}get lineNumber(){return this.taskLocation.lineNumber}get sectionStart(){return this.taskLocation.sectionStart}get sectionIndex(){return this.taskLocation.sectionIndex}get precedingHeader(){return this.taskLocation.precedingHeader}checkOrUncheck(){if(this.statusCharacter===null)return this;let t=this.statusCharacter===" "?"x":" ",e=this.originalMarkdown.replace(RegExp(fe.checkboxRegex),`[${t}]`);return new nr(de(U({},this),{originalMarkdown:e,statusCharacter:t,parent:null}))}toFileLineString(){let t=this.statusCharacter?`[${this.statusCharacter}] `:"";return`${this.indentation}${this.listMarker} ${t}${this.description}`}}});var cE=x($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});var lE=Symbol("MustacheDataPath");function oE({target:n,propertyName:t}){return[...n[lE]||[],t]}function uE(n,t){return typeof n!="object"?n:new Proxy(n,{get(e,r){let i=e[r];if(i===void 0&&!(r in e)){let s=oE({target:e,propertyName:r});if(t!=null&&t.handleError)return t.handleError(s),i;throw Error(`Missing Mustache data property: ${s.join(" > ")}`)}return i&&typeof i=="object"?(i[lE]=oE({target:e,propertyName:r}),uE(i,t)):i}})}$y.default=uE});var Zr=x(Ar=>{"use strict";Ar.__esModule=!0;Ar.Tokens=Ar.StructuralCharacters=Ar.Operators=void 0;var eY;(function(n){n.AND="AND",n.OR="OR",n.XOR="XOR",n.NOT="NOT"})(eY=Ar.Operators||(Ar.Operators={}));var tY;(function(n){n.OPEN_PARENTHESIS="(",n.CLOSE_PARENTHESIS=")"})(tY=Ar.StructuralCharacters||(Ar.StructuralCharacters={}));var nY;(function(n){n.IDENTIFIER="IDENTIFIER",n.OPERATOR="OPERATOR",n.STRUCTURAL_CHARACTER="STRUCTURAL_CHARACTER",n.EOF="EOF",n.COMMENT="COMMENT"})(nY=Ar.Tokens||(Ar.Tokens={}))});var Vy=x(fo=>{"use strict";fo.__esModule=!0;fo.VALID_TOKENS=fo.OPERATOR_PRECEDENCE=void 0;var rt=Zr();fo.OPERATOR_PRECEDENCE={NOT:0,XOR:1,AND:2,OR:3};fo.VALID_TOKENS={identifierOnly:[{name:rt.Tokens.IDENTIFIER},{name:rt.Tokens.STRUCTURAL_CHARACTER,value:rt.StructuralCharacters.OPEN_PARENTHESIS}],identifierOrNot:[{name:rt.Tokens.IDENTIFIER},{name:rt.Tokens.STRUCTURAL_CHARACTER,value:rt.StructuralCharacters.OPEN_PARENTHESIS},{name:rt.Tokens.OPERATOR,value:rt.Operators.NOT}],binaryOperator:[{name:rt.Tokens.OPERATOR,value:rt.Operators.AND},{name:rt.Tokens.OPERATOR,value:rt.Operators.OR},{name:rt.Tokens.OPERATOR,value:rt.Operators.XOR}],binaryOperatorOrClose:[{name:rt.Tokens.OPERATOR,value:rt.Operators.AND},{name:rt.Tokens.OPERATOR,value:rt.Operators.OR},{name:rt.Tokens.OPERATOR,value:rt.Operators.XOR},{name:rt.Tokens.STRUCTURAL_CHARACTER,value:rt.StructuralCharacters.CLOSE_PARENTHESIS}]}});var zy=x(zt=>{"use strict";zt.__esModule=!0;zt.ESCAPE_CHARACTER=zt.EOL=zt.COMMENT_DELIMITER=zt.QUOTED_IDENTIFIER_DELIMITER=zt.SEPARATORS=zt.OPERATORS=zt.STRUCTURAL_CHARACTERS=void 0;var po=Zr();zt.STRUCTURAL_CHARACTERS={"(":po.StructuralCharacters.OPEN_PARENTHESIS,")":po.StructuralCharacters.CLOSE_PARENTHESIS};zt.OPERATORS={AND:po.Operators.AND,OR:po.Operators.OR,XOR:po.Operators.XOR,NOT:po.Operators.NOT};zt.SEPARATORS=new Set([32,9,10,13].map(function(n){return String.fromCodePoint(n)}));zt.QUOTED_IDENTIFIER_DELIMITER=String.fromCodePoint(34);zt.COMMENT_DELIMITER=String.fromCodePoint(35);zt.EOL=String.fromCodePoint(10);zt.ESCAPE_CHARACTER=String.fromCodePoint(92)});var gE=x(cr=>{"use strict";var Ky=cr&&cr.__assign||function(){return Ky=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++){t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Ky.apply(this,arguments)};cr.__esModule=!0;cr.getQuotedIdentifier=cr.getComment=cr.createResult=void 0;var hE=Zr(),ta=zy(),rY=function(n,t,e){return{token:Ky({name:n},t!==null?{value:t}:{}),remainingString:e}};cr.createResult=rY;var iY=function(n){for(var t=n.length,e=0;e<n.length;e+=1){var r=n[e];if(r===ta.EOL){t=e;break}}return(0,cr.createResult)(hE.Tokens.COMMENT,n.slice(0,t),n.slice(t+1))};cr.getComment=iY;var sY=function(n){for(var t=!1,e="",r=null,i=0;i<n.length;i+=1){var s=n[i];if(r===null)s===ta.QUOTED_IDENTIFIER_DELIMITER?t?(e=e.slice(0,-1)+ta.QUOTED_IDENTIFIER_DELIMITER,t=!1):r=i:(s===ta.ESCAPE_CHARACTER?t=!0:t=!1,e=e+=s);else{if(!ta.SEPARATORS.has(s)&&!ta.STRUCTURAL_CHARACTERS[s])throw new Error("Unexpected character: ".concat(s," Expected ) character or separator"));break}}if(r===null)throw new Error("Unexpected end of expression: expected ".concat(ta.QUOTED_IDENTIFIER_DELIMITER," character"));return(0,cr.createResult)(hE.Tokens.IDENTIFIER,e,n.slice(r+1))};cr.getQuotedIdentifier=sY});var yE=x(Ud=>{"use strict";Ud.__esModule=!0;Ud.lex=void 0;var mo=Zr(),In=zy(),ho=gE(),aY=function(n){for(var t=null,e=null,r=null,i=0;i<n.length;i+=1){var s=n[i];if(t===null){if(!In.SEPARATORS.has(s)){var a=In.STRUCTURAL_CHARACTERS[s];if(a){var o=n[i+1];if(a===mo.StructuralCharacters.CLOSE_PARENTHESIS&&o&&!In.SEPARATORS.has(o)&&o!==mo.StructuralCharacters.CLOSE_PARENTHESIS)throw new Error("Unexpected character: ".concat(o,". A closing parenthesis should be followed by another closing parenthesis or whitespace"));return(0,ho.createResult)(mo.Tokens.STRUCTURAL_CHARACTER,In.STRUCTURAL_CHARACTERS[s],n.slice(i+1))}if(s===In.QUOTED_IDENTIFIER_DELIMITER)return(0,ho.getQuotedIdentifier)(n.slice(i+1));if(s===In.COMMENT_DELIMITER)return(0,ho.getComment)(n.slice(i+1));t=i}}else if(In.SEPARATORS.has(s)||In.STRUCTURAL_CHARACTERS[s]){e=i,r=s;break}else if(s===In.QUOTED_IDENTIFIER_DELIMITER||s===In.COMMENT_DELIMITER)throw new Error("Unexpected character: ".concat(s))}if(t!==null){e=e!=null?e:n.length;var l=n.slice(t,e),u=n.slice(e);if(In.OPERATORS[l]){if(r&&!In.SEPARATORS.has(r))throw new Error("Unexpected character: ".concat(r,". Operators should be separated using whitespace"));return(0,ho.createResult)(mo.Tokens.OPERATOR,In.OPERATORS[l],u)}else return(0,ho.createResult)(mo.Tokens.IDENTIFIER,l,u)}return(0,ho.createResult)(mo.Tokens.EOF,null,"")};Ud.lex=aY});var TE=x(Fn=>{"use strict";var bE=Fn&&Fn.__spreadArray||function(n,t,e){if(e||arguments.length===2)for(var r=0,i=t.length,s;r<i;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return n.concat(s||Array.prototype.slice.call(t))};Fn.__esModule=!0;Fn.validateToken=Fn.previousOperatorTakesPrecedent=Fn.getValue=Fn.newTokenGenerator=void 0;var oY=yE(),go=Zr(),Yd=Vy(),lY=function(n){var t=n;return function(e,r){for(r===void 0&&(r=!1);;){var i=(0,oY.lex)(t),s=i.token,a=i.remainingString;if(t=a,s.name!==go.Tokens.COMMENT)return(0,Fn.validateToken)(s,e,r),s}}};Fn.newTokenGenerator=lY;var uY=function(n,t){var e=n(Yd.VALID_TOKENS.identifierOrNot),r=e.value===go.Operators.NOT;r&&(e=n(Yd.VALID_TOKENS.identifierOnly));var i=e.name===go.Tokens.STRUCTURAL_CHARACTER?t(n,!0):[e];return r?bE(bE([],i,!0),[{name:go.Tokens.OPERATOR,value:go.Operators.NOT}],!1):i};Fn.getValue=uY;var cY=function(n,t){return Yd.OPERATOR_PRECEDENCE[n]<=Yd.OPERATOR_PRECEDENCE[t]};Fn.previousOperatorTakesPrecedent=cY;var dY=function(n,t,e){if(e===void 0&&(e=!1),n.name===go.Tokens.EOF){if(e)return;throw new Error("Unexpected end of expression")}for(var r=0,i=t;r<i.length;r++){var s=i[r];if(s.name===n.name&&(!s.value||s.value===n.value))return}throw new TypeError("Invalid token")};Fn.validateToken=dY});var Xy=x(yo=>{"use strict";var Jr=yo&&yo.__spreadArray||function(n,t,e){if(e||arguments.length===2)for(var r=0,i=t.length,s;r<i;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return n.concat(s||Array.prototype.slice.call(t))};yo.__esModule=!0;yo.parse=void 0;var _E=Zr(),vE=Vy(),jd=TE(),fY=function(n){if(typeof n!="string")throw new Error("Expected string but received ".concat(typeof n));var t=(0,jd.newTokenGenerator)(n);return Qy(t)};yo.parse=fY;var Qy=function(n,t){t===void 0&&(t=!1);for(var e=Jr([],(0,jd.getValue)(n,Qy),!0),r=[];;){var i=t?vE.VALID_TOKENS.binaryOperatorOrClose:vE.VALID_TOKENS.binaryOperator,s=n(i,!t);if(s.name===_E.Tokens.EOF||s.name===_E.Tokens.STRUCTURAL_CHARACTER)return Jr(Jr([],e,!0),Jr([],r,!0).reverse(),!0);for(;r.length;){var a=r[r.length-1]||null;if(a&&(0,jd.previousOperatorTakesPrecedent)(a.value,s.value))e=Jr(Jr([],e,!0),[a],!1),r=r.slice(0,-1);else break}r=Jr(Jr([],r,!0),[s],!1),e=Jr(Jr([],e,!0),(0,jd.getValue)(n,Qy),!0)}}});var Zy=x(Kt=>{"use strict";Kt.__esModule=!0;Kt.throwInvalidExpression=Kt.isOperator=Kt.isIdentifier=Kt.notUtil=Kt.xorUtil=Kt.orUtil=Kt.andUtil=void 0;var wE=Zr(),pY=function(n,t){return n&&t};Kt.andUtil=pY;var mY=function(n,t){return n||t};Kt.orUtil=mY;var hY=function(n,t){return n!==t};Kt.xorUtil=hY;var gY=function(n){return!n};Kt.notUtil=gY;var yY=function(n){var t=n.name,e=n.value;return t===wE.Tokens.IDENTIFIER&&typeof e=="string"};Kt.isIdentifier=yY;var bY=function(n){var t=n.name,e=n.value;return t===wE.Tokens.OPERATOR&&typeof e=="string"};Kt.isOperator=bY;var TY=function(n){throw new TypeError("Invalid postfix expression: ".concat(n))};Kt.throwInvalidExpression=TY});var kE=x(Wd=>{"use strict";var ku;Wd.__esModule=!0;Wd.OPERATOR_MAP=void 0;var Jy=Zr(),eb=Zy();Wd.OPERATOR_MAP=(ku={},ku[Jy.Operators.AND]=eb.andUtil,ku[Jy.Operators.OR]=eb.orUtil,ku[Jy.Operators.XOR]=eb.xorUtil,ku)});var DE=x(dr=>{"use strict";var bo=dr&&dr.__spreadArray||function(n,t,e){if(e||arguments.length===2)for(var r=0,i=t.length,s;r<i;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return n.concat(s||Array.prototype.slice.call(t))};dr.__esModule=!0;dr.evaluateExpression=dr.evaluate=dr.getEvaluator=void 0;var _Y=Xy(),SE=Zr(),vY=kE(),na=Zy(),wY=function(n){var t=(0,_Y.parse)(n);return function(e){return(0,dr.evaluate)(t,e)}};dr.getEvaluator=wY;var kY=function(n,t){if(!Array.isArray(n))throw new Error("".concat(n," should be an array. evaluate takes in a parsed expression. Use in combination with parse or use getEvaluator"));var e=n.reduce(function(r,i,s){if(!(i&&((0,na.isIdentifier)(i)||(0,na.isOperator)(i))))throw new Error("Invalid token: ".concat(i,". Found in parsed expression at index ").concat(s));if(i.name===SE.Tokens.IDENTIFIER)return bo(bo([],r,!0),[Boolean(t[i.value])],!1);var a=r[r.length-2],o=r[r.length-1];if(i.value===SE.Operators.NOT)return o===void 0&&(0,na.throwInvalidExpression)("missing identifier"),bo(bo([],r.slice(0,-1),!0),[(0,na.notUtil)(o)],!1);(o===void 0||a===void 0)&&(0,na.throwInvalidExpression)("missing identifier");var l=vY.OPERATOR_MAP[i.value];return l||(0,na.throwInvalidExpression)("unknown operator"),bo(bo([],r.slice(0,-2),!0),[l(a,o)],!1)},[]);return e.length!==1&&(0,na.throwInvalidExpression)("too many identifiers after evaluation"),e[0]};dr.evaluate=kY;var SY=function(n,t){return(0,dr.getEvaluator)(n)(t)};dr.evaluateExpression=SY});var xE=x(ei=>{"use strict";var tb=ei&&ei.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e);var i=Object.getOwnPropertyDescriptor(t,e);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(n,r,i)}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]});ei.__esModule=!0;ei.parse=ei.evaluate=ei.getEvaluator=void 0;var EE=DE();tb(ei,EE,"getEvaluator");tb(ei,EE,"evaluate");var DY=Xy();tb(ei,DY,"parse")});var GY={};wb(GY,{default:()=>Of});module.exports=Sb(GY);var Ox=require("obsidian");gs();var XS=require("obsidian"),Va=require("obsidian");var _j=new Error("timeout while waiting for mutex to become available"),vj=new Error("mutex already locked"),eO=new Error("request for lock canceled"),tO=function(n,t,e,r){function i(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function o(c){try{u(r.next(c))}catch(d){a(d)}}function l(c){try{u(r.throw(c))}catch(d){a(d)}}function u(c){c.done?s(c.value):i(c.value).then(o,l)}u((r=r.apply(n,t||[])).next())})},Wf=class{constructor(t,e=eO){this._value=t,this._cancelError=e,this._weightedQueues=[],this._weightedWaiters=[]}acquire(t=1){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);return new Promise((e,r)=>{this._weightedQueues[t-1]||(this._weightedQueues[t-1]=[]),this._weightedQueues[t-1].push({resolve:e,reject:r}),this._dispatch()})}runExclusive(t,e=1){return tO(this,void 0,void 0,function*(){let[r,i]=yield this.acquire(e);try{return yield t(r)}finally{i()}})}waitForUnlock(t=1){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);return new Promise(e=>{this._weightedWaiters[t-1]||(this._weightedWaiters[t-1]=[]),this._weightedWaiters[t-1].push(e),this._dispatch()})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(t){this._value=t,this._dispatch()}release(t=1){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);this._value+=t,this._dispatch()}cancel(){this._weightedQueues.forEach(t=>t.forEach(e=>e.reject(this._cancelError))),this._weightedQueues=[]}_dispatch(){var t;for(let e=this._value;e>0;e--){let r=(t=this._weightedQueues[e-1])===null||t===void 0?void 0:t.shift();if(!r)continue;let i=this._value,s=e;this._value-=e,e=this._value+1,r.resolve([i,this._newReleaser(s)])}this._drainUnlockWaiters()}_newReleaser(t){let e=!1;return()=>{e||(e=!0,this.release(t))}}_drainUnlockWaiters(){for(let t=this._value;t>0;t--)!this._weightedWaiters[t-1]||(this._weightedWaiters[t-1].forEach(e=>e()),this._weightedWaiters[t-1]=[])}},nO=function(n,t,e,r){function i(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function o(c){try{u(r.next(c))}catch(d){a(d)}}function l(c){try{u(r.throw(c))}catch(d){a(d)}}function u(c){c.done?s(c.value):i(c.value).then(o,l)}u((r=r.apply(n,t||[])).next())})},Yu=class{constructor(t){this._semaphore=new Wf(1,t)}acquire(){return nO(this,void 0,void 0,function*(){let[,t]=yield this._semaphore.acquire();return t})}runExclusive(t){return this._semaphore.runExclusive(()=>t())}isLocked(){return this._semaphore.isLocked()}waitForUnlock(){return this._semaphore.waitForUnlock()}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}};var ju=require("obsidian"),mt=class{constructor(t,e={}){this._frontmatter={tags:[]};this._tags=[];var i,s;this._path=t,this._cachedMetadata=e;let r=e.frontmatter;if(r!==void 0&&(this._frontmatter=JSON.parse(JSON.stringify(r)),this._frontmatter.tags=(i=(0,ju.parseFrontMatterTags)(r))!=null?i:[]),Object.keys(e).length!==0){let a=(s=(0,ju.getAllTags)(this.cachedMetadata))!=null?s:[];this._tags=[...new Set(a)]}}get path(){return this._path}get tags(){return this._tags}get cachedMetadata(){return this._cachedMetadata}get frontmatter(){return this._frontmatter}rawFrontmatterIdenticalTo(t){let e=this.cachedMetadata.frontmatter,r=t.cachedMetadata.frontmatter;return e===r?!0:!e||!r?!1:JSON.stringify(e)===JSON.stringify(r)}get pathWithoutExtension(){return this.withoutExtension(this.path)}withoutExtension(t){return t.replace(/\.md$/,"")}get root(){let t=this.path.replace(/\\/g,"/");t.charAt(0)==="/"&&(t=t.substring(1));let e=t.indexOf("/");return e==-1?"/":t.substring(0,e+1)}get folder(){let t=this.path,e=this.filename,r=t.substring(0,t.lastIndexOf(e));return r===""?"/":r}get filename(){let t=this.path.match(/([^/]+)$/);return t!==null?t[1]:""}get filenameWithoutExtension(){return this.withoutExtension(this.filename)}hasProperty(t){let e=this.findKeyInFrontmatter(t);if(e===void 0)return!1;let r=this.frontmatter[e];return!(r===null||r===void 0)}property(t){let e=this.findKeyInFrontmatter(t);if(e===void 0)return null;let r=this.frontmatter[e];return r===void 0?null:Array.isArray(r)?r.filter(i=>i!==null):r}findKeyInFrontmatter(t){let e=t.toLowerCase();return Object.keys(this.frontmatter).find(r=>r.toLowerCase()===e)}identicalTo(t){return this.path!==t.path?!1:this.rawFrontmatterIdenticalTo(t)}};ld();Nt();Gi();rn();var Ba=class{constructor(t){this.fetch=t;this._value=void 0}get value(){return this._value===void 0&&(this._value=this.fetch()),this._value}};Ws();Nt();Gi();ld();var Lt=class{constructor(t,e,r,i,s){this._tasksFile=t,this._lineNumber=e,this._sectionStart=r,this._sectionIndex=i,this._precedingHeader=s}static fromUnknownPosition(t){return new Lt(t,0,0,0,null)}fromRenamedFile(t){return new Lt(t,this.lineNumber,this.sectionStart,this.sectionIndex,this.precedingHeader)}get tasksFile(){return this._tasksFile}get path(){return this._tasksFile.path}get lineNumber(){return this._lineNumber}get sectionStart(){return this._sectionStart}get sectionIndex(){return this._sectionIndex}get precedingHeader(){return this._precedingHeader}get hasKnownPath(){return this.path!==""}allFieldsExceptTasksFileForTesting(){let r=U({},this),{_tasksFile:t}=r;return pa(r,["_tasksFile"])}identicalTo(t){let e=["lineNumber","sectionStart","sectionIndex","precedingHeader"];for(let r of e)if(this[r]!==t[r])return!1;return this._tasksFile.identicalTo(t._tasksFile)}};var ud=class{constructor(t,e,r,i,s,a){this.line2ListItem=new Map;this.tasks=[];this.filePath=t,this.fileContent=e,this.listItems=r,this.logger=i,this.fileCache=s,this.errorReporter=a,this.fileLines=this.fileContent.split(` +`),this.dateFromFileName=new Ba(()=>Ft.fromPath(this.filePath))}parseFileContent(){if(this.listItems===void 0)return this.tasks;let t=new mt(this.filePath,this.fileCache),e=this.fileLines.length,r=null,i=0;for(let s of this.listItems){let a=s.position.start.line;if(a>=e)return this.logger.debug(`${this.filePath} Obsidian gave us a line number ${a} past the end of the file. ${e}.`),this.tasks;if((r===null||r.position.end.line<a)&&(r=$s.getSection(a,this.fileCache.sections),i=0),r===null)continue;let o=this.fileLines[a];if(o===void 0){this.logger.debug(`${this.filePath}: line ${a} - ignoring 'undefined' line.`);continue}let l=new Lt(t,a,r.position.start.line,i,$s.getPrecedingHeader(a,this.fileCache.headings));i=this.parseLine(s,o,l,a,i)}return this.tasks}parseLine(t,e,r,i,s){var o;if(t.task===void 0)return this.createListItem(t,e,i,r),s;let a;try{if(a=pe.fromLine({line:e,taskLocation:r,fallbackDate:this.dateFromFileName.value}),a!==null){let l=(o=this.line2ListItem.get(t.parent))!=null?o:null;l!==null&&(a=new pe(de(U({},a),{parent:l}))),this.line2ListItem.set(i,a),a!==null&&(s++,this.tasks.push(a))}else this.createListItem(t,e,i,r)}catch(l){this.errorReporter(l,this.filePath,t,e)}return s}createListItem(t,e,r,i){var o;let s=(o=this.line2ListItem.get(t.parent))!=null?o:null,a=nr.fromListItemLine(e,s,i);if(a===null){this.logger.warn("Unexpected failure to create a list item from line: "+e+" in file: "+this.filePath);return}this.line2ListItem.set(r,a)}};var $s=class{constructor({metadataCache:t,vault:e,workspace:r,events:i}){this.logger=sn.getLogger("tasks.Cache");this.notifySubscribersDebounced=(0,XS.debounce)(()=>this.notifySubscribersNotDebounced(),100,!0);this.logger.debug("Creating Cache object"),this.metadataCache=t,this.metadataCacheEventReferences=[],this.vault=e,this.workspace=r,this.vaultEventReferences=[],this.events=i,this.eventsEventReferences=[],this.tasksMutex=new Yu,this.state="Cold",this.logger.debug("Cache.constructor(): state = Cold"),this.tasks=[],this.loadedAfterFirstResolve=!1,this.subscribeToCache(),this.workspace.onLayoutReady(()=>{this.subscribeToVault(),this.loadVault()}),this.subscribeToEvents()}unload(){this.logger.info("Unloading Cache");for(let t of this.metadataCacheEventReferences)this.metadataCache.offref(t);for(let t of this.vaultEventReferences)this.vault.offref(t);for(let t of this.eventsEventReferences)this.events.off(t)}getTasks(){return this.tasks}getState(){return this.state}notifySubscribers(){this.logger.debug("Cache.notifySubscribers()"),this.notifySubscribersDebounced()}notifySubscribersNotDebounced(){this.logger.debug("Cache.notifySubscribersNotDebounced()"),this.events.triggerCacheUpdate({tasks:this.tasks,state:this.state})}subscribeToCache(){this.logger.debug("Cache.subscribeToCache()");let t=this.metadataCache.on("resolved",()=>F(this,null,function*(){this.loadedAfterFirstResolve||(this.loadedAfterFirstResolve=!0,this.loadVault())}));this.metadataCacheEventReferences.push(t);let e=this.metadataCache.on("changed",r=>{this.tasksMutex.runExclusive(()=>{this.indexFile(r)})});this.metadataCacheEventReferences.push(e)}subscribeToVault(){this.logger.debug("Cache.subscribeToVault()");let{useFilenameAsScheduledDate:t}=le(),e=this.vault.on("create",s=>{s instanceof Va.TFile&&(this.logger.debug(`Cache.subscribeToVault.createdEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{this.indexFile(s)}))});this.vaultEventReferences.push(e);let r=this.vault.on("delete",s=>{s instanceof Va.TFile&&(this.logger.debug(`Cache.subscribeToVault.deletedEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{this.tasks=this.tasks.filter(a=>a.path!==s.path),this.notifySubscribers()}))});this.vaultEventReferences.push(r);let i=this.vault.on("rename",(s,a)=>{s instanceof Va.TFile&&(this.logger.debug(`Cache.subscribeToVault.renamedEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{let o=this.metadataCache.getFileCache(s),l=new mt(s.path,o!=null?o:void 0),u=new Ba(()=>Ft.fromPath(s.path));this.tasks=this.tasks.map(c=>{if(c.path!==a)return c;let d=c.taskLocation.fromRenamedFile(l);return t?Ft.updateTaskPath(c,d,u.value):new pe(de(U({},c),{taskLocation:d}))}),this.notifySubscribers()}))});this.vaultEventReferences.push(i)}subscribeToEvents(){this.logger.debug("Cache.subscribeToEvents()");let t=this.events.onRequestCacheUpdate(e=>{e({tasks:this.tasks,state:this.state})});this.eventsEventReferences.push(t)}loadVault(){return this.logger.debug("Cache.loadVault()"),this.tasksMutex.runExclusive(()=>F(this,null,function*(){this.state="Initializing",this.logger.debug("Cache.loadVault(): state = Initializing"),yield Promise.all(this.vault.getMarkdownFiles().map(t=>this.indexFile(t))),this.state="Warm",this.logger.debug("Cache.loadVault(): state = Warm"),this.notifySubscribers()}))}indexFile(t){return F(this,null,function*(){let e=this.metadataCache.getFileCache(t);if(e==null)return;if(!t.path.endsWith(".md")){this.logger.debug("indexFile: skipping non-markdown file: "+t.path);return}this.logger.debug("Cache.indexFile: "+t.path);let r=this.tasks.filter(a=>a.path===t.path),i=e.listItems,s=[];if(i!==void 0){let a=yield this.vault.cachedRead(t);s=this.getTasksFromFileContent(a,i,e,t.path,this.reportTaskParsingErrorToUser,this.logger)}nr.listsAreIdentical(r,s)||(this.tasks=this.tasks.filter(a=>a.path!==t.path),this.tasks.push(...s),this.logger.debug("Cache.indexFile: "+t.path+`: read ${s.length} task(s)`),this.notifySubscribers())})}getTasksFromFileContent(t,e,r,i,s,a){return new ud(i,t,e,a,r,s).parseFileContent()}reportTaskParsingErrorToUser(t,e,r,i){let s=`There was an error reading one of the tasks in this vault. The following task has been ignored, to prevent Tasks queries getting stuck with 'Loading Tasks ...' Error: ${t} File: ${e} @@ -219,7 +219,7 @@ Include: The error popup will only be shown when Tasks is starting up, but if the error persists, it will be shown in the console every time this file is edited during the Obsidian session. -`;this.logger.error(s),t instanceof Error&&this.logger.error(t.stack?t.stack:"Cannot determine stack"),this.state==="Initializing"&&new Va.Notice(s,1e4)}static getSection(t,e){if(e===void 0)return null;for(let r of e)if(r.position.start.line<=t&&r.position.end.line>=t)return r;return null}static getPrecedingHeader(t,e){if(e===void 0)return null;let r=null;for(let i of e){if(i.position.start.line>t)return r;r=i.heading}return r}};var Fy=require("obsidian");var eD=require("obsidian");function tt(){}function hy(n){return n()}function XS(){return Object.create(null)}function Gt(n){n.forEach(hy)}function fd(n){return typeof n=="function"}function zr(n,t){return n!=n?t==t:n!==t||n&&typeof n=="object"||typeof n=="function"}function ZS(n){return Object.keys(n).length===0}var JS=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global,lu=class{constructor(t){this.options=t,this._listeners="WeakMap"in JS?new WeakMap:void 0}observe(t,e){return this._listeners.set(t,e),this._getObserver().observe(t,this.options),()=>{this._listeners.delete(t),this._observer.unobserve(t)}}_getObserver(){var t;return(t=this._observer)!==null&&t!==void 0?t:this._observer=new ResizeObserver(e=>{var r;for(let i of e)lu.entries.set(i.target,i),(r=this._listeners.get(i.target))===null||r===void 0||r(i)})}};lu.entries="WeakMap"in JS?new WeakMap:void 0;var eE=!1;function k2(){eE=!0}function S2(){eE=!1}function z(n,t){n.appendChild(t)}function Ee(n,t,e){n.insertBefore(t,e||null)}function ve(n){n.parentNode&&n.parentNode.removeChild(n)}function Gs(n,t){for(let e=0;e<n.length;e+=1)n[e]&&n[e].d(t)}function ue(n){return document.createElement(n)}function E2(n){return document.createElementNS("http://www.w3.org/2000/svg",n)}function Ve(n){return document.createTextNode(n)}function De(){return Ve(" ")}function pd(){return Ve("")}function je(n,t,e,r){return n.addEventListener(t,e,r),()=>n.removeEventListener(t,e,r)}function tE(n){return function(t){return t.preventDefault(),n.call(this,t)}}function B(n,t,e){e==null?n.removeAttribute(t):n.getAttribute(t)!==e&&n.setAttribute(t,e)}function nE(n){let t;return{p(...e){t=e,t.forEach(r=>n.push(r))},r(){t.forEach(e=>n.splice(n.indexOf(e),1))}}}function D2(n){return Array.from(n.childNodes)}function rr(n,t){t=""+t,n.data!==t&&(n.data=t)}function fn(n,t){n.value=t==null?"":t}function gy(n,t,e){for(let r=0;r<n.options.length;r+=1){let i=n.options[r];if(i.__value===t){i.selected=!0;return}}(!e||t!==void 0)&&(n.selectedIndex=-1)}function rE(n){let t=n.querySelector(":checked");return t&&t.__value}var cd;function x2(){if(cd===void 0){cd=!1;try{typeof window!="undefined"&&window.parent&&window.parent.document}catch(n){cd=!0}}return cd}function iE(n,t){getComputedStyle(n).position==="static"&&(n.style.position="relative");let r=ue("iframe");r.setAttribute("style","display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;"),r.setAttribute("aria-hidden","true"),r.tabIndex=-1;let i=x2(),s;return i?(r.src="data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}<\/script>",s=je(window,"message",a=>{a.source===r.contentWindow&&t()})):(r.src="about:blank",r.onload=()=>{s=je(r.contentWindow,"resize",t),t()}),z(n,r),()=>{(i||s&&r.contentWindow)&&s(),ve(r)}}function Si(n,t,e){n.classList[e?"add":"remove"](t)}var Xa=class{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,e,r=null){this.e||(this.is_svg?this.e=E2(e.nodeName):this.e=ue(e.nodeType===11?"TEMPLATE":e.nodeName),this.t=e.tagName!=="TEMPLATE"?e:e.content,this.c(t)),this.i(r)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(t){for(let e=0;e<this.n.length;e+=1)Ee(this.t,this.n[e],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(ve)}};var uu;function ou(n){uu=n}function O2(){if(!uu)throw new Error("Function called outside component initialization");return uu}function yy(n){O2().$$.on_mount.push(n)}var Ka=[];var at=[],Qa=[],py=[],C2=Promise.resolve(),my=!1;function M2(){my||(my=!0,C2.then(sE))}function Hs(n){Qa.push(n)}function sn(n){py.push(n)}var fy=new Set,za=0;function sE(){if(za!==0)return;let n=uu;do{try{for(;za<Ka.length;){let t=Ka[za];za++,ou(t),R2(t.$$)}}catch(t){throw Ka.length=0,za=0,t}for(ou(null),Ka.length=0,za=0;at.length;)at.pop()();for(let t=0;t<Qa.length;t+=1){let e=Qa[t];fy.has(e)||(fy.add(e),e())}Qa.length=0}while(Ka.length);for(;py.length;)py.pop()();my=!1,fy.clear(),ou(n)}function R2(n){if(n.fragment!==null){n.update(),Gt(n.before_update);let t=n.dirty;n.dirty=[-1],n.fragment&&n.fragment.p(n.ctx,t),n.after_update.forEach(Hs)}}function A2(n){let t=[],e=[];Qa.forEach(r=>n.indexOf(r)===-1?t.push(r):e.push(r)),e.forEach(r=>r()),Qa=t}var dd=new Set,qs;function aE(){qs={r:0,c:[],p:qs}}function oE(){qs.r||Gt(qs.c),qs=qs.p}function pn(n,t){n&&n.i&&(dd.delete(n),n.i(t))}function An(n,t,e,r){if(n&&n.o){if(dd.has(n))return;dd.add(n),qs.c.push(()=>{dd.delete(n),r&&(e&&n.d(1),r())}),n.o(t)}else r&&r()}var P2=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],AB=new Set([...P2]);function an(n,t,e){let r=n.$$.props[t];r!==void 0&&(n.$$.bound[r]=e,e(n.$$.ctx[r]))}function Or(n){n&&n.c()}function ir(n,t,e,r){let{fragment:i,after_update:s}=n.$$;i&&i.m(t,e),r||Hs(()=>{let a=n.$$.on_mount.map(hy).filter(fd);n.$$.on_destroy?n.$$.on_destroy.push(...a):Gt(a),n.$$.on_mount=[]}),s.forEach(Hs)}function Pn(n,t){let e=n.$$;e.fragment!==null&&(A2(e.after_update),Gt(e.on_destroy),e.fragment&&e.fragment.d(t),e.on_destroy=e.fragment=null,e.ctx=[])}function N2(n,t){n.$$.dirty[0]===-1&&(Ka.push(n),M2(),n.$$.dirty.fill(0)),n.$$.dirty[t/31|0]|=1<<t%31}function Kr(n,t,e,r,i,s,a,o=[-1]){let l=uu;ou(n);let u=n.$$={fragment:null,ctx:[],props:s,update:tt,not_equal:i,bound:XS(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(t.context||(l?l.$$.context:[])),callbacks:XS(),dirty:o,skip_bound:!1,root:t.target||l.$$.root};a&&a(u.root);let c=!1;if(u.ctx=e?e(n,t.props||{},(d,f,...p)=>{let b=p.length?p[0]:f;return u.ctx&&i(u.ctx[d],u.ctx[d]=b)&&(!u.skip_bound&&u.bound[d]&&u.bound[d](b),c&&N2(n,d)),f}):[],u.update(),c=!0,Gt(u.before_update),u.fragment=r?r(u.ctx):!1,t.target){if(t.hydrate){k2();let d=D2(t.target);u.fragment&&u.fragment.l(d),d.forEach(ve)}else u.fragment&&u.fragment.c();t.intro&&pn(n.$$.fragment),ir(n,t.target,t.anchor,t.customElement),S2(),sE()}ou(l)}var I2;typeof HTMLElement=="function"&&(I2=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:n}=this.$$;this.$$.on_disconnect=n.map(hy).filter(fd);for(let t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(n,t,e){this[n]=e}disconnectedCallback(){Gt(this.$$.on_disconnect)}$destroy(){Pn(this,1),this.$destroy=tt}$on(n,t){if(!fd(t))return tt;let e=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return e.push(t),()=>{let r=e.indexOf(t);r!==-1&&e.splice(r,1)}}$set(n){this.$$set&&!ZS(n)&&(this.$$.skip_bound=!0,this.$$set(n),this.$$.skip_bound=!1)}});var nr=class{$destroy(){Pn(this,1),this.$destroy=tt}$on(t,e){if(!fd(e))return tt;let r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return r.push(e),()=>{let i=r.indexOf(e);i!==-1&&r.splice(i,1)}}$set(t){this.$$set&&!ZS(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}};function lE(n,t,e,r){function i(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function o(c){try{u(r.next(c))}catch(d){a(d)}}function l(c){try{u(r.throw(c))}catch(d){a(d)}}function u(c){c.done?s(c.value):i(c.value).then(o,l)}u((r=r.apply(n,t||[])).next())})}nn();Pg();Cs();function Za(n){return n.charAt(0).toUpperCase()+n.slice(1)}function Ut(n,t){if(t===null)return Za(n);let e=n.toLowerCase().indexOf(t.toLowerCase());if(e===-1)return`${Za(n)} (<span class="accesskey">${t.toLowerCase()}</span>)`;let r=n.substring(0,e);return r+='<span class="accesskey">',e===0?r+=n.substring(e,e+1).toUpperCase():r+=n.substring(e,e+1),r+="</span>",r+=n.substring(e+1),r=Za(r),r}function F2(n){let t,e,r,i;return{c(){t=ue("code"),e=Ve(n[4]),r=De(),i=new Xa(!1),i.a=null,B(t,"class","tasks-modal-parsed-date")},m(s,a){Ee(s,t,a),z(t,e),z(t,r),i.m(n[2],t)},p(s,a){a&16&&rr(e,s[4]),a&4&&i.p(s[2])},d(s){s&&ve(t)}}}function L2(n){let t,e,r,i,s;return{c(){t=ue("div"),e=Ve(n[4]),r=ue("input"),B(r,"class","tasks-modal-date-editor-picker"),B(r,"type","date"),B(r,"id","date-editor-picker"),B(r,"tabindex","-1"),B(t,"class","tasks-modal-parsed-date")},m(a,o){Ee(a,t,o),z(t,e),z(t,r),fn(r,n[6]),i||(s=[je(r,"input",n[10]),je(r,"input",n[7])],i=!0)},p(a,o){o&16&&rr(e,a[4]),o&64&&fn(r,a[6])},d(a){a&&ve(t),i=!1,Gt(s)}}}function U2(n){let t,e=Ut(n[3],n[5])+"",r,i,s,a,o,l;function u(f,p){return f[1]?L2:F2}let c=u(n,-1),d=c(n);return{c(){t=ue("label"),r=De(),i=ue("input"),s=De(),d.c(),a=pd(),B(t,"for",n[3]),B(i,"id",n[3]),B(i,"type","text"),B(i,"class","tasks-modal-date-input"),B(i,"placeholder",Y2),B(i,"accesskey",n[5]),Si(i,"tasks-modal-error",!n[1])},m(f,p){Ee(f,t,p),t.innerHTML=e,Ee(f,r,p),Ee(f,i,p),fn(i,n[0]),Ee(f,s,p),d.m(f,p),Ee(f,a,p),o||(l=je(i,"input",n[9]),o=!0)},p(f,[p]){p&40&&e!==(e=Ut(f[3],f[5])+"")&&(t.innerHTML=e),p&8&&B(t,"for",f[3]),p&8&&B(i,"id",f[3]),p&32&&B(i,"accesskey",f[5]),p&1&&i.value!==f[0]&&fn(i,f[0]),p&2&&Si(i,"tasks-modal-error",!f[1]),c===(c=u(f,p))&&d?d.p(f,p):(d.d(1),d=c(f),d&&(d.c(),d.m(a.parentNode,a)))},i:tt,o:tt,d(f){f&&ve(t),f&&ve(r),f&&ve(i),f&&ve(s),d.d(f),f&&ve(a),o=!1,l()}}}var Y2="Try 'Mon' or 'tm' then space";function j2(n,t,e){let{id:r}=t,{dateSymbol:i}=t,{date:s}=t,{isDateValid:a}=t,{forwardOnly:o}=t,{accesskey:l}=t,{parsedDate:u=""}=t,c="";function d(b){b.target!==null&&e(0,s=c)}function f(){s=this.value,e(0,s),e(3,r),e(8,o),e(2,u),e(1,a)}function p(){c=this.value,e(6,c),e(0,s),e(3,r),e(8,o),e(2,u),e(1,a)}return n.$$set=b=>{"id"in b&&e(3,r=b.id),"dateSymbol"in b&&e(4,i=b.dateSymbol),"date"in b&&e(0,s=b.date),"isDateValid"in b&&e(1,a=b.isDateValid),"forwardOnly"in b&&e(8,o=b.forwardOnly),"accesskey"in b&&e(5,l=b.accesskey),"parsedDate"in b&&e(2,u=b.parsedDate)},n.$$.update=()=>{if(n.$$.dirty&271){e:e(0,s=Pc(s)),e(2,u=Sk(r,s,o)),e(1,a=!u.includes("invalid")),a&&e(6,c=u)}},[s,a,u,r,i,l,c,d,o,f,p]}var by=class extends nr{constructor(t){super(),Kr(this,t,j2,U2,zr,{id:3,dateSymbol:4,date:0,isDateValid:1,forwardOnly:8,accesskey:5,parsedDate:2})}},Bs=by;var Vs=Math.min,mn=Math.max,du=Math.round;var Cr=n=>({x:n,y:n}),W2={left:"right",right:"left",bottom:"top",top:"bottom"},$2={start:"end",end:"start"};function Ty(n,t,e){return mn(n,Vs(t,e))}function Ja(n,t){return typeof n=="function"?n(t):n}function Ei(n){return n.split("-")[0]}function eo(n){return n.split("-")[1]}function _y(n){return n==="x"?"y":"x"}function vy(n){return n==="y"?"height":"width"}function Bi(n){return["top","bottom"].includes(Ei(n))?"y":"x"}function wy(n){return _y(Bi(n))}function uE(n,t,e){e===void 0&&(e=!1);let r=eo(n),i=wy(n),s=vy(i),a=i==="x"?r===(e?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(a=cu(a)),[a,cu(a)]}function cE(n){let t=cu(n);return[md(n),t,md(t)]}function md(n){return n.replace(/start|end/g,t=>$2[t])}function q2(n,t,e){let r=["left","right"],i=["right","left"],s=["top","bottom"],a=["bottom","top"];switch(n){case"top":case"bottom":return e?t?i:r:t?r:i;case"left":case"right":return t?s:a;default:return[]}}function dE(n,t,e,r){let i=eo(n),s=q2(Ei(n),e==="start",r);return i&&(s=s.map(a=>a+"-"+i),t&&(s=s.concat(s.map(md)))),s}function cu(n){return n.replace(/left|right|bottom|top/g,t=>W2[t])}function H2(n){return U({top:0,right:0,bottom:0,left:0},n)}function fE(n){return typeof n!="number"?H2(n):{top:n,right:n,bottom:n,left:n}}function zs(n){let{x:t,y:e,width:r,height:i}=n;return{width:r,height:i,top:e,left:t,right:t+r,bottom:e+i,x:t,y:e}}function pE(n,t,e){let{reference:r,floating:i}=n,s=Bi(t),a=wy(t),o=vy(a),l=Ei(t),u=s==="y",c=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[o]/2-i[o]/2,p;switch(l){case"top":p={x:c,y:r.y-i.height};break;case"bottom":p={x:c,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(eo(t)){case"start":p[a]-=f*(e&&u?-1:1);break;case"end":p[a]+=f*(e&&u?-1:1);break}return p}var mE=(n,t,e)=>L(void 0,null,function*(){let{placement:r="bottom",strategy:i="absolute",middleware:s=[],platform:a}=e,o=s.filter(Boolean),l=yield a.isRTL==null?void 0:a.isRTL(t),u=yield a.getElementRects({reference:n,floating:t,strategy:i}),{x:c,y:d}=pE(u,r,l),f=r,p={},b=0;for(let T=0;T<o.length;T++){let{name:_,fn:O}=o[T],{x:D,y:A,data:Y,reset:q}=yield O({x:c,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:p,rects:u,platform:a,elements:{reference:n,floating:t}});c=D!=null?D:c,d=A!=null?A:d,p=me(U({},p),{[_]:U(U({},p[_]),Y)}),q&&b<=50&&(b++,typeof q=="object"&&(q.placement&&(f=q.placement),q.rects&&(u=q.rects===!0?yield a.getElementRects({reference:n,floating:t,strategy:i}):q.rects),{x:c,y:d}=pE(u,f,l)),T=-1)}return{x:c,y:d,placement:f,strategy:i,middlewareData:p}});function hd(n,t){return L(this,null,function*(){var e;t===void 0&&(t={});let{x:r,y:i,platform:s,rects:a,elements:o,strategy:l}=n,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=Ja(t,n),b=fE(p),_=o[f?d==="floating"?"reference":"floating":d],O=zs(yield s.getClippingRect({element:(e=yield s.isElement==null?void 0:s.isElement(_))==null||e?_:_.contextElement||(yield s.getDocumentElement==null?void 0:s.getDocumentElement(o.floating)),boundary:u,rootBoundary:c,strategy:l})),D=d==="floating"?{x:r,y:i,width:a.floating.width,height:a.floating.height}:a.reference,A=yield s.getOffsetParent==null?void 0:s.getOffsetParent(o.floating),Y=(yield s.isElement==null?void 0:s.isElement(A))?(yield s.getScale==null?void 0:s.getScale(A))||{x:1,y:1}:{x:1,y:1},q=zs(s.convertOffsetParentRelativeRectToViewportRelativeRect?yield s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:D,offsetParent:A,strategy:l}):D);return{top:(O.top-q.top+b.top)/Y.y,bottom:(q.bottom-O.bottom+b.bottom)/Y.y,left:(O.left-q.left+b.left)/Y.x,right:(q.right-O.right+b.right)/Y.x}})}var hE=function(n){return n===void 0&&(n={}),{name:"flip",options:n,fn(e){return L(this,null,function*(){var r,i;let{placement:s,middlewareData:a,rects:o,initialPlacement:l,platform:u,elements:c}=e,$=Ja(n,e),{mainAxis:d=!0,crossAxis:f=!0,fallbackPlacements:p,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:T="none",flipAlignment:_=!0}=$,O=pa($,["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"]);if((r=a.arrow)!=null&&r.alignmentOffset)return{};let D=Ei(s),A=Bi(l),Y=Ei(l)===l,q=yield u.isRTL==null?void 0:u.isRTL(c.floating),se=p||(Y||!_?[cu(l)]:cE(l)),H=T!=="none";!p&&H&&se.push(...dE(l,_,T,q));let Z=[l,...se],ye=yield hd(e,O),we=[],V=((i=a.flip)==null?void 0:i.overflows)||[];if(d&&we.push(ye[D]),f){let oe=uE(s,o,q);we.push(ye[oe[0]],ye[oe[1]])}if(V=[...V,{placement:s,overflows:we}],!we.every(oe=>oe<=0)){var K,C;let oe=(((K=a.flip)==null?void 0:K.index)||0)+1,m=Z[oe];if(m)return{data:{index:oe,overflows:V},reset:{placement:m}};let y=(C=V.filter(v=>v.overflows[0]<=0).sort((v,w)=>v.overflows[1]-w.overflows[1])[0])==null?void 0:C.placement;if(!y)switch(b){case"bestFit":{var J;let v=(J=V.filter(w=>{if(H){let S=Bi(w.placement);return S===A||S==="y"}return!0}).map(w=>[w.placement,w.overflows.filter(S=>S>0).reduce((S,M)=>S+M,0)]).sort((w,S)=>w[1]-S[1])[0])==null?void 0:J[0];v&&(y=v);break}case"initialPlacement":y=l;break}if(s!==y)return{reset:{placement:y}}}return{}})}}};function G2(n,t){return L(this,null,function*(){let{placement:e,platform:r,elements:i}=n,s=yield r.isRTL==null?void 0:r.isRTL(i.floating),a=Ei(e),o=eo(e),l=Bi(e)==="y",u=["left","top"].includes(a)?-1:1,c=s&&l?-1:1,d=Ja(t,n),{mainAxis:f,crossAxis:p,alignmentAxis:b}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return o&&typeof b=="number"&&(p=o==="end"?b*-1:b),l?{x:p*c,y:f*u}:{x:f*u,y:p*c}})}var gE=function(n){return n===void 0&&(n=0),{name:"offset",options:n,fn(e){return L(this,null,function*(){var r,i;let{x:s,y:a,placement:o,middlewareData:l}=e,u=yield G2(e,n);return o===((r=l.offset)==null?void 0:r.placement)&&(i=l.arrow)!=null&&i.alignmentOffset?{}:{x:s+u.x,y:a+u.y,data:me(U({},u),{placement:o})}})}}},yE=function(n){return n===void 0&&(n={}),{name:"shift",options:n,fn(e){return L(this,null,function*(){let{x:r,y:i,placement:s}=e,O=Ja(n,e),{mainAxis:a=!0,crossAxis:o=!1,limiter:l={fn:D=>{let{x:A,y:Y}=D;return{x:A,y:Y}}}}=O,u=pa(O,["mainAxis","crossAxis","limiter"]),c={x:r,y:i},d=yield hd(e,u),f=Bi(Ei(s)),p=_y(f),b=c[p],T=c[f];if(a){let D=p==="y"?"top":"left",A=p==="y"?"bottom":"right",Y=b+d[D],q=b-d[A];b=Ty(Y,b,q)}if(o){let D=f==="y"?"top":"left",A=f==="y"?"bottom":"right",Y=T+d[D],q=T-d[A];T=Ty(Y,T,q)}let _=l.fn(me(U({},e),{[p]:b,[f]:T}));return me(U({},_),{data:{x:_.x-r,y:_.y-i,enabled:{[p]:a,[f]:o}}})})}}};var bE=function(n){return n===void 0&&(n={}),{name:"size",options:n,fn(e){return L(this,null,function*(){var r,i;let{placement:s,rects:a,platform:o,elements:l}=e,V=Ja(n,e),{apply:u=()=>{}}=V,c=pa(V,["apply"]),d=yield hd(e,c),f=Ei(s),p=eo(s),b=Bi(s)==="y",{width:T,height:_}=a.floating,O,D;f==="top"||f==="bottom"?(O=f,D=p===((yield o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(D=f,O=p==="end"?"top":"bottom");let A=_-d.top-d.bottom,Y=T-d.left-d.right,q=Vs(_-d[O],A),se=Vs(T-d[D],Y),H=!e.middlewareData.shift,Z=q,ye=se;if((r=e.middlewareData.shift)!=null&&r.enabled.x&&(ye=Y),(i=e.middlewareData.shift)!=null&&i.enabled.y&&(Z=A),H&&!p){let K=mn(d.left,0),C=mn(d.right,0),J=mn(d.top,0),$=mn(d.bottom,0);b?ye=T-2*(K!==0||C!==0?K+C:mn(d.left,d.right)):Z=_-2*(J!==0||$!==0?J+$:mn(d.top,d.bottom))}yield u(me(U({},e),{availableWidth:ye,availableHeight:Z}));let we=yield o.getDimensions(l.floating);return T!==we.width||_!==we.height?{reset:{rects:!0}}:{}})}}};function yd(){return typeof window!="undefined"}function Ks(n){return _E(n)?(n.nodeName||"").toLowerCase():"#document"}function hn(n){var t;return(n==null||(t=n.ownerDocument)==null?void 0:t.defaultView)||window}function Qr(n){var t;return(t=(_E(n)?n.ownerDocument:n.document)||window.document)==null?void 0:t.documentElement}function _E(n){return yd()?n instanceof Node||n instanceof hn(n).Node:!1}function sr(n){return yd()?n instanceof Element||n instanceof hn(n).Element:!1}function Mr(n){return yd()?n instanceof HTMLElement||n instanceof hn(n).HTMLElement:!1}function TE(n){return!yd()||typeof ShadowRoot=="undefined"?!1:n instanceof ShadowRoot||n instanceof hn(n).ShadowRoot}function to(n){let{overflow:t,overflowX:e,overflowY:r,display:i}=ar(n);return/auto|scroll|overlay|hidden|clip/.test(t+r+e)&&!["inline","contents"].includes(i)}function vE(n){return["table","td","th"].includes(Ks(n))}function fu(n){return[":popover-open",":modal"].some(t=>{try{return n.matches(t)}catch(e){return!1}})}function bd(n){let t=Td(),e=sr(n)?ar(n):n;return e.transform!=="none"||e.perspective!=="none"||(e.containerType?e.containerType!=="normal":!1)||!t&&(e.backdropFilter?e.backdropFilter!=="none":!1)||!t&&(e.filter?e.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(e.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(e.contain||"").includes(r))}function wE(n){let t=Di(n);for(;Mr(t)&&!Qs(t);){if(bd(t))return t;if(fu(t))return null;t=Di(t)}return null}function Td(){return typeof CSS=="undefined"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Qs(n){return["html","body","#document"].includes(Ks(n))}function ar(n){return hn(n).getComputedStyle(n)}function pu(n){return sr(n)?{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}:{scrollLeft:n.scrollX,scrollTop:n.scrollY}}function Di(n){if(Ks(n)==="html")return n;let t=n.assignedSlot||n.parentNode||TE(n)&&n.host||Qr(n);return TE(t)?t.host:t}function kE(n){let t=Di(n);return Qs(t)?n.ownerDocument?n.ownerDocument.body:n.body:Mr(t)&&to(t)?t:kE(t)}function gd(n,t,e){var r;t===void 0&&(t=[]),e===void 0&&(e=!0);let i=kE(n),s=i===((r=n.ownerDocument)==null?void 0:r.body),a=hn(i);if(s){let o=_d(a);return t.concat(a,a.visualViewport||[],to(i)?i:[],o&&e?gd(o):[])}return t.concat(i,gd(i,[],e))}function _d(n){return n.parent&&Object.getPrototypeOf(n.parent)?n.frameElement:null}function DE(n){let t=ar(n),e=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Mr(n),s=i?n.offsetWidth:e,a=i?n.offsetHeight:r,o=du(e)!==s||du(r)!==a;return o&&(e=s,r=a),{width:e,height:r,$:o}}function xE(n){return sr(n)?n:n.contextElement}function no(n){let t=xE(n);if(!Mr(t))return Cr(1);let e=t.getBoundingClientRect(),{width:r,height:i,$:s}=DE(t),a=(s?du(e.width):e.width)/r,o=(s?du(e.height):e.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!o||!Number.isFinite(o))&&(o=1),{x:a,y:o}}var B2=Cr(0);function OE(n){let t=hn(n);return!Td()||!t.visualViewport?B2:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function V2(n,t,e){return t===void 0&&(t=!1),!e||t&&e!==hn(n)?!1:t}function mu(n,t,e,r){t===void 0&&(t=!1),e===void 0&&(e=!1);let i=n.getBoundingClientRect(),s=xE(n),a=Cr(1);t&&(r?sr(r)&&(a=no(r)):a=no(n));let o=V2(s,e,r)?OE(s):Cr(0),l=(i.left+o.x)/a.x,u=(i.top+o.y)/a.y,c=i.width/a.x,d=i.height/a.y;if(s){let f=hn(s),p=r&&sr(r)?hn(r):r,b=f,T=_d(b);for(;T&&r&&p!==b;){let _=no(T),O=T.getBoundingClientRect(),D=ar(T),A=O.left+(T.clientLeft+parseFloat(D.paddingLeft))*_.x,Y=O.top+(T.clientTop+parseFloat(D.paddingTop))*_.y;l*=_.x,u*=_.y,c*=_.x,d*=_.y,l+=A,u+=Y,b=hn(T),T=_d(b)}}return zs({width:c,height:d,x:l,y:u})}function Sy(n,t){let e=pu(n).scrollLeft;return t?t.left+e:mu(Qr(n)).left+e}function CE(n,t,e){e===void 0&&(e=!1);let r=n.getBoundingClientRect(),i=r.left+t.scrollLeft-(e?0:Sy(n,r)),s=r.top+t.scrollTop;return{x:i,y:s}}function z2(n){let{elements:t,rect:e,offsetParent:r,strategy:i}=n,s=i==="fixed",a=Qr(r),o=t?fu(t.floating):!1;if(r===a||o&&s)return e;let l={scrollLeft:0,scrollTop:0},u=Cr(1),c=Cr(0),d=Mr(r);if((d||!d&&!s)&&((Ks(r)!=="body"||to(a))&&(l=pu(r)),Mr(r))){let p=mu(r);u=no(r),c.x=p.x+r.clientLeft,c.y=p.y+r.clientTop}let f=a&&!d&&!s?CE(a,l,!0):Cr(0);return{width:e.width*u.x,height:e.height*u.y,x:e.x*u.x-l.scrollLeft*u.x+c.x+f.x,y:e.y*u.y-l.scrollTop*u.y+c.y+f.y}}function K2(n){return Array.from(n.getClientRects())}function Q2(n){let t=Qr(n),e=pu(n),r=n.ownerDocument.body,i=mn(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=mn(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),a=-e.scrollLeft+Sy(n),o=-e.scrollTop;return ar(r).direction==="rtl"&&(a+=mn(t.clientWidth,r.clientWidth)-i),{width:i,height:s,x:a,y:o}}function X2(n,t){let e=hn(n),r=Qr(n),i=e.visualViewport,s=r.clientWidth,a=r.clientHeight,o=0,l=0;if(i){s=i.width,a=i.height;let u=Td();(!u||u&&t==="fixed")&&(o=i.offsetLeft,l=i.offsetTop)}return{width:s,height:a,x:o,y:l}}function Z2(n,t){let e=mu(n,!0,t==="fixed"),r=e.top+n.clientTop,i=e.left+n.clientLeft,s=Mr(n)?no(n):Cr(1),a=n.clientWidth*s.x,o=n.clientHeight*s.y,l=i*s.x,u=r*s.y;return{width:a,height:o,x:l,y:u}}function SE(n,t,e){let r;if(t==="viewport")r=X2(n,e);else if(t==="document")r=Q2(Qr(n));else if(sr(t))r=Z2(t,e);else{let i=OE(n);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return zs(r)}function ME(n,t){let e=Di(n);return e===t||!sr(e)||Qs(e)?!1:ar(e).position==="fixed"||ME(e,t)}function J2(n,t){let e=t.get(n);if(e)return e;let r=gd(n,[],!1).filter(o=>sr(o)&&Ks(o)!=="body"),i=null,s=ar(n).position==="fixed",a=s?Di(n):n;for(;sr(a)&&!Qs(a);){let o=ar(a),l=bd(a);!l&&o.position==="fixed"&&(i=null),(s?!l&&!i:!l&&o.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||to(a)&&!l&&ME(n,a))?r=r.filter(c=>c!==a):i=o,a=Di(a)}return t.set(n,r),r}function eU(n){let{element:t,boundary:e,rootBoundary:r,strategy:i}=n,a=[...e==="clippingAncestors"?fu(t)?[]:J2(t,this._c):[].concat(e),r],o=a[0],l=a.reduce((u,c)=>{let d=SE(t,c,i);return u.top=mn(d.top,u.top),u.right=Vs(d.right,u.right),u.bottom=Vs(d.bottom,u.bottom),u.left=mn(d.left,u.left),u},SE(t,o,i));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function tU(n){let{width:t,height:e}=DE(n);return{width:t,height:e}}function nU(n,t,e){let r=Mr(t),i=Qr(t),s=e==="fixed",a=mu(n,!0,s,t),o={scrollLeft:0,scrollTop:0},l=Cr(0);if(r||!r&&!s)if((Ks(t)!=="body"||to(i))&&(o=pu(t)),r){let f=mu(t,!0,s,t);l.x=f.x+t.clientLeft,l.y=f.y+t.clientTop}else i&&(l.x=Sy(i));let u=i&&!r&&!s?CE(i,o):Cr(0),c=a.left+o.scrollLeft-l.x-u.x,d=a.top+o.scrollTop-l.y-u.y;return{x:c,y:d,width:a.width,height:a.height}}function ky(n){return ar(n).position==="static"}function EE(n,t){if(!Mr(n)||ar(n).position==="fixed")return null;if(t)return t(n);let e=n.offsetParent;return Qr(n)===e&&(e=e.ownerDocument.body),e}function RE(n,t){let e=hn(n);if(fu(n))return e;if(!Mr(n)){let i=Di(n);for(;i&&!Qs(i);){if(sr(i)&&!ky(i))return i;i=Di(i)}return e}let r=EE(n,t);for(;r&&vE(r)&&ky(r);)r=EE(r,t);return r&&Qs(r)&&ky(r)&&!bd(r)?e:r||wE(n)||e}var rU=function(n){return L(this,null,function*(){let t=this.getOffsetParent||RE,e=this.getDimensions,r=yield e(n.floating);return{reference:nU(n.reference,yield t(n.floating),n.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}})};function iU(n){return ar(n).direction==="rtl"}var sU={convertOffsetParentRelativeRectToViewportRelativeRect:z2,getDocumentElement:Qr,getClippingRect:eU,getOffsetParent:RE,getElementRects:rU,getClientRects:K2,getDimensions:tU,getScale:no,isElement:sr,isRTL:iU};var Ey=gE;var Dy=yE,AE=hE,PE=bE;var xy=(n,t,e)=>{let r=new Map,i=U({platform:sU},e),s=me(U({},i.platform),{_c:r});return mE(n,t,me(U({},i),{platform:s}))};Zg();function NE(n,t,e){let r=n.slice();return r[5]=t[e],r}function IE(n,t,e){let r=n.slice();r[40]=t[e],r[43]=e;let i=r[17](r[40].taskLocation.path);return r[41]=i,r}function FE(n){let t,e,r,i=n[10],s=[];for(let a=0;a<i.length;a+=1)s[a]=UE(IE(n,i,a));return{c(){t=ue("ul");for(let a=0;a<s.length;a+=1)s[a].c();B(t,"class","task-dependency-dropdown")},m(a,o){Ee(a,t,o);for(let l=0;l<s.length;l+=1)s[l]&&s[l].m(t,null);n[31](t),e||(r=je(t,"mouseleave",n[32]),e=!0)},p(a,o){if(o[0]&928832){i=a[10];let l;for(l=0;l<i.length;l+=1){let u=IE(a,i,l);s[l]?s[l].p(u,o):(s[l]=UE(u),s[l].c(),s[l].m(t,null))}for(;l<s.length;l+=1)s[l].d(1);s.length=i.length}},d(a){a&&ve(t),Gs(s,a),n[31](null),e=!1,r()}}}function LE(n){let t,e=n[41]+"",r,i,s;function a(...o){return n[28](n[41],...o)}return{c(){t=ue("div"),r=Ve(e),B(t,"class","dependency-path")},m(o,l){Ee(o,t,l),z(t,r),i||(s=je(t,"mouseenter",a),i=!0)},p(o,l){n=o,l[0]&1024&&e!==(e=n[41]+"")&&rr(r,e)},d(o){o&&ve(t),i=!1,s()}}}function UE(n){let t,e,r,i=n[40].status.symbol+"",s,a,o=Us(n[40])+"",l,u,c,d,f,p;function b(...D){return n[27](n[40],...D)}let T=n[41]&&LE(n);function _(){return n[29](n[40])}function O(){return n[30](n[43])}return{c(){t=ue("li"),e=ue("div"),r=Ve("["),s=Ve(i),a=Ve("] "),l=Ve(o),c=De(),T&&T.c(),d=De(),B(e,"class",u=n[41]?"dependency-name-shared":"dependency-name"),Si(t,"selected",n[6]!==null&&n[43]===n[11])},m(D,A){Ee(D,t,A),z(t,e),z(e,r),z(e,s),z(e,a),z(e,l),z(t,c),T&&T.m(t,null),z(t,d),f||(p=[je(e,"mouseenter",b),je(t,"mousedown",_),je(t,"mouseenter",O)],f=!0)},p(D,A){n=D,A[0]&1024&&i!==(i=n[40].status.symbol+"")&&rr(s,i),A[0]&1024&&o!==(o=Us(n[40])+"")&&rr(l,o),A[0]&1024&&u!==(u=n[41]?"dependency-name-shared":"dependency-name")&&B(e,"class",u),n[41]?T?T.p(n,A):(T=LE(n),T.c(),T.m(t,d)):T&&(T.d(1),T=null),A[0]&2112&&Si(t,"selected",n[6]!==null&&n[43]===n[11])},d(D){D&&ve(t),T&&T.d(),f=!1,Gt(p)}}}function YE(n){let t,e=n[0][n[1]],r=[];for(let i=0;i<e.length;i+=1)r[i]=jE(NE(n,e,i));return{c(){t=ue("div");for(let i=0;i<r.length;i+=1)r[i].c();B(t,"class","task-dependencies-container results-dependency")},m(i,s){Ee(i,t,s);for(let a=0;a<r.length;a+=1)r[a]&&r[a].m(t,null)},p(i,s){if(s[0]&802819){e=i[0][i[1]];let a;for(a=0;a<e.length;a+=1){let o=NE(i,e,a);r[a]?r[a].p(o,s):(r[a]=jE(o),r[a].c(),r[a].m(t,null))}for(;a<r.length;a+=1)r[a].d(1);r.length=e.length}},d(i){i&&ve(t),Gs(r,i)}}}function jE(n){let t,e,r,i=n[5].status.symbol+"",s,a,o=Us(n[5])+"",l,u,c,d,f,p;function b(){return n[33](n[5])}function T(..._){return n[34](n[5],..._)}return{c(){t=ue("div"),e=ue("span"),r=Ve("["),s=Ve(i),a=Ve("] "),l=Ve(o),u=De(),c=ue("button"),c.innerHTML='<svg style="display: block; margin: auto;" xmlns="http://www.w3.org/2000/svg" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>',d=De(),B(e,"class","task-dependency-name"),B(c,"type","button"),B(c,"class","task-dependency-delete"),B(t,"class","task-dependency")},m(_,O){Ee(_,t,O),z(t,e),z(e,r),z(e,s),z(e,a),z(e,l),z(t,u),z(t,c),z(t,d),f||(p=[je(c,"click",b),je(t,"mouseenter",T)],f=!0)},p(_,O){n=_,O[0]&3&&i!==(i=n[5].status.symbol+"")&&rr(s,i),O[0]&3&&o!==(o=Us(n[5])+"")&&rr(l,o)},d(_){_&&ve(t),f=!1,Gt(p)}}}function aU(n){let t,e=Ut(n[2],n[3])+"",r,i,s,a,o,l,u,c,d,f=n[10]&&n[10].length!==0&&FE(n),p=n[0][n[1]].length!==0&&YE(n);return{c(){t=ue("label"),r=De(),i=ue("span"),s=ue("input"),o=De(),f&&f.c(),l=De(),p&&p.c(),u=pd(),B(t,"for",n[1]),B(s,"accesskey",n[3]),B(s,"id",n[1]),B(s,"class","tasks-modal-dependency-input"),B(s,"type","text"),B(s,"placeholder",n[4]),Hs(()=>n[26].call(i))},m(b,T){Ee(b,t,T),t.innerHTML=e,Ee(b,r,T),Ee(b,i,T),z(i,s),n[22](s),fn(s,n[6]),a=iE(i,n[26].bind(i)),Ee(b,o,T),f&&f.m(b,T),Ee(b,l,T),p&&p.m(b,T),Ee(b,u,T),c||(d=[je(s,"input",n[23]),je(s,"keydown",n[24]),je(s,"focus",n[16]),je(s,"blur",n[25])],c=!0)},p(b,T){T[0]&12&&e!==(e=Ut(b[2],b[3])+"")&&(t.innerHTML=e),T[0]&2&&B(t,"for",b[1]),T[0]&8&&B(s,"accesskey",b[3]),T[0]&2&&B(s,"id",b[1]),T[0]&16&&B(s,"placeholder",b[4]),T[0]&64&&s.value!==b[6]&&fn(s,b[6]),b[10]&&b[10].length!==0?f?f.p(b,T):(f=FE(b),f.c(),f.m(l.parentNode,l)):f&&(f.d(1),f=null),b[0][b[1]].length!==0?p?p.p(b,T):(p=YE(b),p.c(),p.m(u.parentNode,u)):p&&(p.d(1),p=null)},i:tt,o:tt,d(b){b&&ve(t),b&&ve(r),b&&ve(i),n[22](null),a(),b&&ve(o),f&&f.d(b),b&&ve(l),p&&p.d(b),b&&ve(u),c=!1,Gt(d)}}}function oU(n,t,e){let{task:r}=t,{editableTask:i}=t,{allTasks:s}=t,{_onDescriptionKeyDown:a}=t,{type:o}=t,{labelText:l}=t,{accesskey:u}=t,{placeholder:c="Type to search..."}=t,d="",f=null,p=0,b,T=!1,_=!1,O,D;function A(E){e(0,i[o]=[...i[o],E],i),e(6,d=""),e(7,T=!1)}function Y(E){e(0,i[o]=i[o].filter(P=>P!==E),i)}function q(E){var P;if(f!==null){switch(E.key){case"ArrowUp":E.preventDefault(),!!p&&p>0?e(11,p-=1):e(11,p=f.length-1);break;case"ArrowDown":E.preventDefault(),!!p&&p<f.length-1?e(11,p+=1):e(11,p=0);break;case"Enter":if(E.isComposing)return;p!==null?(E.preventDefault(),A(f[p]),e(11,p=null),e(7,T=!1)):a(E);break;default:e(11,p=0);break}p&&((P=D==null?void 0:D.getElementsByTagName("li")[p])===null||P===void 0||P.scrollIntoView({block:"nearest"}))}}function se(E){return!E&&!_?[]:(_=!1,ed(E,s,r,i.blockedBy,i.blocking))}function H(){e(7,T=!0),_=!0}function Z(E,P){!E||!P||xy(E,P,{middleware:[Ey(6),Dy(),AE(),PE({apply(){P&&Object.assign(P.style,{width:`${b}px`})}})]}).then(({x:W,y:de})=>{P.style.left=`${W}px`,P.style.top=`${de}px`})}function ye(E){return E===r.taskLocation.path?"":E}function we(E){return Us(E)}function V(E,P){let W=E.createDiv();W.addClasses(["tooltip","pop-up"]),W.innerText=P,xy(E,W,{placement:"top",middleware:[Ey(-18),Dy()]}).then(({x:de,y:be})=>{W.style.left=`${de}px`,W.style.top=`${be}px`}),E.addEventListener("mouseleave",()=>W.remove())}function K(E){at[E?"unshift":"push"](()=>{O=E,e(8,O)})}function C(){d=this.value,e(6,d)}let J=E=>q(E),$=()=>e(7,T=!1);function oe(){b=this.clientWidth,e(12,b)}let m=(E,P)=>V(P.currentTarget,we(E)),y=(E,P)=>V(P.currentTarget,E),v=E=>A(E),w=E=>e(11,p=E);function S(E){at[E?"unshift":"push"](()=>{D=E,e(9,D)})}let M=()=>e(11,p=null),I=E=>Y(E),j=(E,P)=>V(P.currentTarget,we(E));return n.$$set=E=>{"task"in E&&e(5,r=E.task),"editableTask"in E&&e(0,i=E.editableTask),"allTasks"in E&&e(20,s=E.allTasks),"_onDescriptionKeyDown"in E&&e(21,a=E._onDescriptionKeyDown),"type"in E&&e(1,o=E.type),"labelText"in E&&e(2,l=E.labelText),"accesskey"in E&&e(3,u=E.accesskey),"placeholder"in E&&e(4,c=E.placeholder)},n.$$.update=()=>{if(n.$$.dirty[0]&768){e:Z(O,D)}if(n.$$.dirty[0]&192){e:e(10,f=T?se(d):null)}},[i,o,l,u,c,r,d,T,O,D,f,p,b,A,Y,q,H,ye,we,V,s,a,K,C,J,$,oe,m,y,v,w,S,M,I,j]}var Oy=class extends nr{constructor(t){super(),Kr(this,t,oU,aU,zr,{task:5,editableTask:0,allTasks:20,_onDescriptionKeyDown:21,type:1,labelText:2,accesskey:3,placeholder:4},null,[-1,-1])}},Cy=Oy;Mn();Cs();su();var gu=require("obsidian");Mn();Ws();dy();var hu,My,Ry,lU=["md"];function kd(){return rn.getLogger("tasks.File")}var WE=({metadataCache:n,vault:t,workspace:e})=>{hu=n,My=t,Ry=e},gn=e=>L(void 0,[e],function*({originalTask:n,newTasks:t}){if(My===void 0||hu===void 0||Ry===void 0){vd("Tasks: cannot use File before initializing it.");return}Array.isArray(t)||(t=[t]);let r=kd(),i="replaceTaskWithTasks()";ad(r,i,n),od(r,i,t),yield qE({originalTask:n,newTasks:t,vault:My,metadataCache:hu,workspace:Ry,previousTries:0})});function vd(n){console.error(n),new gu.Notice(n,15e3)}function $E(n){console.warn(n),new gu.Notice(n,1e4)}function uU(n){kd().debug(n)}var Vi=class extends Error{},wd=class extends Error{},qE=a=>L(void 0,[a],function*({originalTask:n,newTasks:t,vault:e,metadataCache:r,workspace:i,previousTries:s}){let o=kd();o.debug(`tryRepetitive after ${s} previous tries`);let l=()=>L(void 0,null,function*(){if(s>10){let c=`Tasks: Could not find the correct task line to update. +`;this.logger.error(s),t instanceof Error&&this.logger.error(t.stack?t.stack:"Cannot determine stack"),this.state==="Initializing"&&new Va.Notice(s,1e4)}static getSection(t,e){if(e===void 0)return null;for(let r of e)if(r.position.start.line<=t&&r.position.end.line>=t)return r;return null}static getPrecedingHeader(t,e){if(e===void 0)return null;let r=null;for(let i of e){if(i.position.start.line>t)return r;r=i.heading}return r}};var Fy=require("obsidian");var tE=require("obsidian");function tt(){}function hy(n){return n()}function ZS(){return Object.create(null)}function Bt(n){n.forEach(hy)}function fd(n){return typeof n=="function"}function zr(n,t){return n!=n?t==t:n!==t||n&&typeof n=="object"||typeof n=="function"}function JS(n){return Object.keys(n).length===0}var eD=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global,lu=class{constructor(t){this.options=t,this._listeners="WeakMap"in eD?new WeakMap:void 0}observe(t,e){return this._listeners.set(t,e),this._getObserver().observe(t,this.options),()=>{this._listeners.delete(t),this._observer.unobserve(t)}}_getObserver(){var t;return(t=this._observer)!==null&&t!==void 0?t:this._observer=new ResizeObserver(e=>{var r;for(let i of e)lu.entries.set(i.target,i),(r=this._listeners.get(i.target))===null||r===void 0||r(i)})}};lu.entries="WeakMap"in eD?new WeakMap:void 0;var tD=!1;function S2(){tD=!0}function D2(){tD=!1}function z(n,t){n.appendChild(t)}function De(n,t,e){n.insertBefore(t,e||null)}function ve(n){n.parentNode&&n.parentNode.removeChild(n)}function Gs(n,t){for(let e=0;e<n.length;e+=1)n[e]&&n[e].d(t)}function ue(n){return document.createElement(n)}function E2(n){return document.createElementNS("http://www.w3.org/2000/svg",n)}function Ve(n){return document.createTextNode(n)}function Ee(){return Ve(" ")}function pd(){return Ve("")}function je(n,t,e,r){return n.addEventListener(t,e,r),()=>n.removeEventListener(t,e,r)}function nD(n){return function(t){return t.preventDefault(),n.call(this,t)}}function B(n,t,e){e==null?n.removeAttribute(t):n.getAttribute(t)!==e&&n.setAttribute(t,e)}function rD(n){let t;return{p(...e){t=e,t.forEach(r=>n.push(r))},r(){t.forEach(e=>n.splice(n.indexOf(e),1))}}}function x2(n){return Array.from(n.childNodes)}function ir(n,t){t=""+t,n.data!==t&&(n.data=t)}function fn(n,t){n.value=t==null?"":t}function gy(n,t,e){for(let r=0;r<n.options.length;r+=1){let i=n.options[r];if(i.__value===t){i.selected=!0;return}}(!e||t!==void 0)&&(n.selectedIndex=-1)}function iD(n){let t=n.querySelector(":checked");return t&&t.__value}var cd;function O2(){if(cd===void 0){cd=!1;try{typeof window!="undefined"&&window.parent&&window.parent.document}catch(n){cd=!0}}return cd}function sD(n,t){getComputedStyle(n).position==="static"&&(n.style.position="relative");let r=ue("iframe");r.setAttribute("style","display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;"),r.setAttribute("aria-hidden","true"),r.tabIndex=-1;let i=O2(),s;return i?(r.src="data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}<\/script>",s=je(window,"message",a=>{a.source===r.contentWindow&&t()})):(r.src="about:blank",r.onload=()=>{s=je(r.contentWindow,"resize",t),t()}),z(n,r),()=>{(i||s&&r.contentWindow)&&s(),ve(r)}}function Si(n,t,e){n.classList[e?"add":"remove"](t)}var Xa=class{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,e,r=null){this.e||(this.is_svg?this.e=E2(e.nodeName):this.e=ue(e.nodeType===11?"TEMPLATE":e.nodeName),this.t=e.tagName!=="TEMPLATE"?e:e.content,this.c(t)),this.i(r)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(t){for(let e=0;e<this.n.length;e+=1)De(this.t,this.n[e],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(ve)}};var uu;function ou(n){uu=n}function C2(){if(!uu)throw new Error("Function called outside component initialization");return uu}function yy(n){C2().$$.on_mount.push(n)}var Ka=[];var ot=[],Qa=[],py=[],M2=Promise.resolve(),my=!1;function R2(){my||(my=!0,M2.then(aD))}function Hs(n){Qa.push(n)}function an(n){py.push(n)}var fy=new Set,za=0;function aD(){if(za!==0)return;let n=uu;do{try{for(;za<Ka.length;){let t=Ka[za];za++,ou(t),A2(t.$$)}}catch(t){throw Ka.length=0,za=0,t}for(ou(null),Ka.length=0,za=0;ot.length;)ot.pop()();for(let t=0;t<Qa.length;t+=1){let e=Qa[t];fy.has(e)||(fy.add(e),e())}Qa.length=0}while(Ka.length);for(;py.length;)py.pop()();my=!1,fy.clear(),ou(n)}function A2(n){if(n.fragment!==null){n.update(),Bt(n.before_update);let t=n.dirty;n.dirty=[-1],n.fragment&&n.fragment.p(n.ctx,t),n.after_update.forEach(Hs)}}function P2(n){let t=[],e=[];Qa.forEach(r=>n.indexOf(r)===-1?t.push(r):e.push(r)),e.forEach(r=>r()),Qa=t}var dd=new Set,qs;function oD(){qs={r:0,c:[],p:qs}}function lD(){qs.r||Bt(qs.c),qs=qs.p}function pn(n,t){n&&n.i&&(dd.delete(n),n.i(t))}function An(n,t,e,r){if(n&&n.o){if(dd.has(n))return;dd.add(n),qs.c.push(()=>{dd.delete(n),r&&(e&&n.d(1),r())}),n.o(t)}else r&&r()}var N2=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],NB=new Set([...N2]);function on(n,t,e){let r=n.$$.props[t];r!==void 0&&(n.$$.bound[r]=e,e(n.$$.ctx[r]))}function Or(n){n&&n.c()}function sr(n,t,e,r){let{fragment:i,after_update:s}=n.$$;i&&i.m(t,e),r||Hs(()=>{let a=n.$$.on_mount.map(hy).filter(fd);n.$$.on_destroy?n.$$.on_destroy.push(...a):Bt(a),n.$$.on_mount=[]}),s.forEach(Hs)}function Pn(n,t){let e=n.$$;e.fragment!==null&&(P2(e.after_update),Bt(e.on_destroy),e.fragment&&e.fragment.d(t),e.on_destroy=e.fragment=null,e.ctx=[])}function I2(n,t){n.$$.dirty[0]===-1&&(Ka.push(n),R2(),n.$$.dirty.fill(0)),n.$$.dirty[t/31|0]|=1<<t%31}function Kr(n,t,e,r,i,s,a,o=[-1]){let l=uu;ou(n);let u=n.$$={fragment:null,ctx:[],props:s,update:tt,not_equal:i,bound:ZS(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(t.context||(l?l.$$.context:[])),callbacks:ZS(),dirty:o,skip_bound:!1,root:t.target||l.$$.root};a&&a(u.root);let c=!1;if(u.ctx=e?e(n,t.props||{},(d,f,...p)=>{let b=p.length?p[0]:f;return u.ctx&&i(u.ctx[d],u.ctx[d]=b)&&(!u.skip_bound&&u.bound[d]&&u.bound[d](b),c&&I2(n,d)),f}):[],u.update(),c=!0,Bt(u.before_update),u.fragment=r?r(u.ctx):!1,t.target){if(t.hydrate){S2();let d=x2(t.target);u.fragment&&u.fragment.l(d),d.forEach(ve)}else u.fragment&&u.fragment.c();t.intro&&pn(n.$$.fragment),sr(n,t.target,t.anchor,t.customElement),D2(),aD()}ou(l)}var F2;typeof HTMLElement=="function"&&(F2=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:n}=this.$$;this.$$.on_disconnect=n.map(hy).filter(fd);for(let t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(n,t,e){this[n]=e}disconnectedCallback(){Bt(this.$$.on_disconnect)}$destroy(){Pn(this,1),this.$destroy=tt}$on(n,t){if(!fd(t))return tt;let e=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return e.push(t),()=>{let r=e.indexOf(t);r!==-1&&e.splice(r,1)}}$set(n){this.$$set&&!JS(n)&&(this.$$.skip_bound=!0,this.$$set(n),this.$$.skip_bound=!1)}});var rr=class{$destroy(){Pn(this,1),this.$destroy=tt}$on(t,e){if(!fd(e))return tt;let r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return r.push(e),()=>{let i=r.indexOf(e);i!==-1&&r.splice(i,1)}}$set(t){this.$$set&&!JS(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}};function uD(n,t,e,r){function i(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function o(c){try{u(r.next(c))}catch(d){a(d)}}function l(c){try{u(r.throw(c))}catch(d){a(d)}}function u(c){c.done?s(c.value):i(c.value).then(o,l)}u((r=r.apply(n,t||[])).next())})}rn();Pg();Cs();function Za(n){return n.charAt(0).toUpperCase()+n.slice(1)}function Ut(n,t){if(t===null)return Za(n);let e=n.toLowerCase().indexOf(t.toLowerCase());if(e===-1)return`${Za(n)} (<span class="accesskey">${t.toLowerCase()}</span>)`;let r=n.substring(0,e);return r+='<span class="accesskey">',e===0?r+=n.substring(e,e+1).toUpperCase():r+=n.substring(e,e+1),r+="</span>",r+=n.substring(e+1),r=Za(r),r}function L2(n){let t,e,r,i;return{c(){t=ue("code"),e=Ve(n[4]),r=Ee(),i=new Xa(!1),i.a=null,B(t,"class","tasks-modal-parsed-date")},m(s,a){De(s,t,a),z(t,e),z(t,r),i.m(n[2],t)},p(s,a){a&16&&ir(e,s[4]),a&4&&i.p(s[2])},d(s){s&&ve(t)}}}function U2(n){let t,e,r,i,s;return{c(){t=ue("div"),e=Ve(n[4]),r=ue("input"),B(r,"class","tasks-modal-date-editor-picker"),B(r,"type","date"),B(r,"id","date-editor-picker"),B(r,"tabindex","-1"),B(t,"class","tasks-modal-parsed-date")},m(a,o){De(a,t,o),z(t,e),z(t,r),fn(r,n[6]),i||(s=[je(r,"input",n[10]),je(r,"input",n[7])],i=!0)},p(a,o){o&16&&ir(e,a[4]),o&64&&fn(r,a[6])},d(a){a&&ve(t),i=!1,Bt(s)}}}function Y2(n){let t,e=Ut(n[3],n[5])+"",r,i,s,a,o,l;function u(f,p){return f[1]?U2:L2}let c=u(n,-1),d=c(n);return{c(){t=ue("label"),r=Ee(),i=ue("input"),s=Ee(),d.c(),a=pd(),B(t,"for",n[3]),B(i,"id",n[3]),B(i,"type","text"),B(i,"class","tasks-modal-date-input"),B(i,"placeholder",j2),B(i,"accesskey",n[5]),Si(i,"tasks-modal-error",!n[1])},m(f,p){De(f,t,p),t.innerHTML=e,De(f,r,p),De(f,i,p),fn(i,n[0]),De(f,s,p),d.m(f,p),De(f,a,p),o||(l=je(i,"input",n[9]),o=!0)},p(f,[p]){p&40&&e!==(e=Ut(f[3],f[5])+"")&&(t.innerHTML=e),p&8&&B(t,"for",f[3]),p&8&&B(i,"id",f[3]),p&32&&B(i,"accesskey",f[5]),p&1&&i.value!==f[0]&&fn(i,f[0]),p&2&&Si(i,"tasks-modal-error",!f[1]),c===(c=u(f,p))&&d?d.p(f,p):(d.d(1),d=c(f),d&&(d.c(),d.m(a.parentNode,a)))},i:tt,o:tt,d(f){f&&ve(t),f&&ve(r),f&&ve(i),f&&ve(s),d.d(f),f&&ve(a),o=!1,l()}}}var j2="Try 'Mon' or 'tm' then space";function W2(n,t,e){let{id:r}=t,{dateSymbol:i}=t,{date:s}=t,{isDateValid:a}=t,{forwardOnly:o}=t,{accesskey:l}=t,{parsedDate:u=""}=t,c="";function d(b){b.target!==null&&e(0,s=c)}function f(){s=this.value,e(0,s),e(3,r),e(8,o),e(2,u),e(1,a)}function p(){c=this.value,e(6,c),e(0,s),e(3,r),e(8,o),e(2,u),e(1,a)}return n.$$set=b=>{"id"in b&&e(3,r=b.id),"dateSymbol"in b&&e(4,i=b.dateSymbol),"date"in b&&e(0,s=b.date),"isDateValid"in b&&e(1,a=b.isDateValid),"forwardOnly"in b&&e(8,o=b.forwardOnly),"accesskey"in b&&e(5,l=b.accesskey),"parsedDate"in b&&e(2,u=b.parsedDate)},n.$$.update=()=>{if(n.$$.dirty&271){e:e(0,s=Pc(s)),e(2,u=Sk(r,s,o)),e(1,a=!u.includes("invalid")),a&&e(6,c=u)}},[s,a,u,r,i,l,c,d,o,f,p]}var by=class extends rr{constructor(t){super(),Kr(this,t,W2,Y2,zr,{id:3,dateSymbol:4,date:0,isDateValid:1,forwardOnly:8,accesskey:5,parsedDate:2})}},Bs=by;var Vs=Math.min,mn=Math.max,du=Math.round;var Cr=n=>({x:n,y:n}),$2={left:"right",right:"left",bottom:"top",top:"bottom"},q2={start:"end",end:"start"};function Ty(n,t,e){return mn(n,Vs(t,e))}function Ja(n,t){return typeof n=="function"?n(t):n}function Di(n){return n.split("-")[0]}function eo(n){return n.split("-")[1]}function _y(n){return n==="x"?"y":"x"}function vy(n){return n==="y"?"height":"width"}function Bi(n){return["top","bottom"].includes(Di(n))?"y":"x"}function wy(n){return _y(Bi(n))}function cD(n,t,e){e===void 0&&(e=!1);let r=eo(n),i=wy(n),s=vy(i),a=i==="x"?r===(e?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(a=cu(a)),[a,cu(a)]}function dD(n){let t=cu(n);return[md(n),t,md(t)]}function md(n){return n.replace(/start|end/g,t=>q2[t])}function H2(n,t,e){let r=["left","right"],i=["right","left"],s=["top","bottom"],a=["bottom","top"];switch(n){case"top":case"bottom":return e?t?i:r:t?r:i;case"left":case"right":return t?s:a;default:return[]}}function fD(n,t,e,r){let i=eo(n),s=H2(Di(n),e==="start",r);return i&&(s=s.map(a=>a+"-"+i),t&&(s=s.concat(s.map(md)))),s}function cu(n){return n.replace(/left|right|bottom|top/g,t=>$2[t])}function G2(n){return U({top:0,right:0,bottom:0,left:0},n)}function pD(n){return typeof n!="number"?G2(n):{top:n,right:n,bottom:n,left:n}}function zs(n){let{x:t,y:e,width:r,height:i}=n;return{width:r,height:i,top:e,left:t,right:t+r,bottom:e+i,x:t,y:e}}function mD(n,t,e){let{reference:r,floating:i}=n,s=Bi(t),a=wy(t),o=vy(a),l=Di(t),u=s==="y",c=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[o]/2-i[o]/2,p;switch(l){case"top":p={x:c,y:r.y-i.height};break;case"bottom":p={x:c,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(eo(t)){case"start":p[a]-=f*(e&&u?-1:1);break;case"end":p[a]+=f*(e&&u?-1:1);break}return p}var hD=(n,t,e)=>F(void 0,null,function*(){let{placement:r="bottom",strategy:i="absolute",middleware:s=[],platform:a}=e,o=s.filter(Boolean),l=yield a.isRTL==null?void 0:a.isRTL(t),u=yield a.getElementRects({reference:n,floating:t,strategy:i}),{x:c,y:d}=mD(u,r,l),f=r,p={},b=0;for(let T=0;T<o.length;T++){let{name:_,fn:O}=o[T],{x:E,y:A,data:Y,reset:q}=yield O({x:c,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:p,rects:u,platform:a,elements:{reference:n,floating:t}});c=E!=null?E:c,d=A!=null?A:d,p=de(U({},p),{[_]:U(U({},p[_]),Y)}),q&&b<=50&&(b++,typeof q=="object"&&(q.placement&&(f=q.placement),q.rects&&(u=q.rects===!0?yield a.getElementRects({reference:n,floating:t,strategy:i}):q.rects),{x:c,y:d}=mD(u,f,l)),T=-1)}return{x:c,y:d,placement:f,strategy:i,middlewareData:p}});function hd(n,t){return F(this,null,function*(){var e;t===void 0&&(t={});let{x:r,y:i,platform:s,rects:a,elements:o,strategy:l}=n,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=Ja(t,n),b=pD(p),_=o[f?d==="floating"?"reference":"floating":d],O=zs(yield s.getClippingRect({element:(e=yield s.isElement==null?void 0:s.isElement(_))==null||e?_:_.contextElement||(yield s.getDocumentElement==null?void 0:s.getDocumentElement(o.floating)),boundary:u,rootBoundary:c,strategy:l})),E=d==="floating"?{x:r,y:i,width:a.floating.width,height:a.floating.height}:a.reference,A=yield s.getOffsetParent==null?void 0:s.getOffsetParent(o.floating),Y=(yield s.isElement==null?void 0:s.isElement(A))?(yield s.getScale==null?void 0:s.getScale(A))||{x:1,y:1}:{x:1,y:1},q=zs(s.convertOffsetParentRelativeRectToViewportRelativeRect?yield s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:E,offsetParent:A,strategy:l}):E);return{top:(O.top-q.top+b.top)/Y.y,bottom:(q.bottom-O.bottom+b.bottom)/Y.y,left:(O.left-q.left+b.left)/Y.x,right:(q.right-O.right+b.right)/Y.x}})}var gD=function(n){return n===void 0&&(n={}),{name:"flip",options:n,fn(e){return F(this,null,function*(){var r,i;let{placement:s,middlewareData:a,rects:o,initialPlacement:l,platform:u,elements:c}=e,$=Ja(n,e),{mainAxis:d=!0,crossAxis:f=!0,fallbackPlacements:p,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:T="none",flipAlignment:_=!0}=$,O=pa($,["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"]);if((r=a.arrow)!=null&&r.alignmentOffset)return{};let E=Di(s),A=Bi(l),Y=Di(l)===l,q=yield u.isRTL==null?void 0:u.isRTL(c.floating),se=p||(Y||!_?[cu(l)]:dD(l)),H=T!=="none";!p&&H&&se.push(...fD(l,_,T,q));let Z=[l,...se],ye=yield hd(e,O),we=[],V=((i=a.flip)==null?void 0:i.overflows)||[];if(d&&we.push(ye[E]),f){let oe=cD(s,o,q);we.push(ye[oe[0]],ye[oe[1]])}if(V=[...V,{placement:s,overflows:we}],!we.every(oe=>oe<=0)){var K,C;let oe=(((K=a.flip)==null?void 0:K.index)||0)+1,m=Z[oe];if(m)return{data:{index:oe,overflows:V},reset:{placement:m}};let y=(C=V.filter(v=>v.overflows[0]<=0).sort((v,w)=>v.overflows[1]-w.overflows[1])[0])==null?void 0:C.placement;if(!y)switch(b){case"bestFit":{var J;let v=(J=V.filter(w=>{if(H){let S=Bi(w.placement);return S===A||S==="y"}return!0}).map(w=>[w.placement,w.overflows.filter(S=>S>0).reduce((S,M)=>S+M,0)]).sort((w,S)=>w[1]-S[1])[0])==null?void 0:J[0];v&&(y=v);break}case"initialPlacement":y=l;break}if(s!==y)return{reset:{placement:y}}}return{}})}}};function B2(n,t){return F(this,null,function*(){let{placement:e,platform:r,elements:i}=n,s=yield r.isRTL==null?void 0:r.isRTL(i.floating),a=Di(e),o=eo(e),l=Bi(e)==="y",u=["left","top"].includes(a)?-1:1,c=s&&l?-1:1,d=Ja(t,n),{mainAxis:f,crossAxis:p,alignmentAxis:b}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return o&&typeof b=="number"&&(p=o==="end"?b*-1:b),l?{x:p*c,y:f*u}:{x:f*u,y:p*c}})}var yD=function(n){return n===void 0&&(n=0),{name:"offset",options:n,fn(e){return F(this,null,function*(){var r,i;let{x:s,y:a,placement:o,middlewareData:l}=e,u=yield B2(e,n);return o===((r=l.offset)==null?void 0:r.placement)&&(i=l.arrow)!=null&&i.alignmentOffset?{}:{x:s+u.x,y:a+u.y,data:de(U({},u),{placement:o})}})}}},bD=function(n){return n===void 0&&(n={}),{name:"shift",options:n,fn(e){return F(this,null,function*(){let{x:r,y:i,placement:s}=e,O=Ja(n,e),{mainAxis:a=!0,crossAxis:o=!1,limiter:l={fn:E=>{let{x:A,y:Y}=E;return{x:A,y:Y}}}}=O,u=pa(O,["mainAxis","crossAxis","limiter"]),c={x:r,y:i},d=yield hd(e,u),f=Bi(Di(s)),p=_y(f),b=c[p],T=c[f];if(a){let E=p==="y"?"top":"left",A=p==="y"?"bottom":"right",Y=b+d[E],q=b-d[A];b=Ty(Y,b,q)}if(o){let E=f==="y"?"top":"left",A=f==="y"?"bottom":"right",Y=T+d[E],q=T-d[A];T=Ty(Y,T,q)}let _=l.fn(de(U({},e),{[p]:b,[f]:T}));return de(U({},_),{data:{x:_.x-r,y:_.y-i,enabled:{[p]:a,[f]:o}}})})}}};var TD=function(n){return n===void 0&&(n={}),{name:"size",options:n,fn(e){return F(this,null,function*(){var r,i;let{placement:s,rects:a,platform:o,elements:l}=e,V=Ja(n,e),{apply:u=()=>{}}=V,c=pa(V,["apply"]),d=yield hd(e,c),f=Di(s),p=eo(s),b=Bi(s)==="y",{width:T,height:_}=a.floating,O,E;f==="top"||f==="bottom"?(O=f,E=p===((yield o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(E=f,O=p==="end"?"top":"bottom");let A=_-d.top-d.bottom,Y=T-d.left-d.right,q=Vs(_-d[O],A),se=Vs(T-d[E],Y),H=!e.middlewareData.shift,Z=q,ye=se;if((r=e.middlewareData.shift)!=null&&r.enabled.x&&(ye=Y),(i=e.middlewareData.shift)!=null&&i.enabled.y&&(Z=A),H&&!p){let K=mn(d.left,0),C=mn(d.right,0),J=mn(d.top,0),$=mn(d.bottom,0);b?ye=T-2*(K!==0||C!==0?K+C:mn(d.left,d.right)):Z=_-2*(J!==0||$!==0?J+$:mn(d.top,d.bottom))}yield u(de(U({},e),{availableWidth:ye,availableHeight:Z}));let we=yield o.getDimensions(l.floating);return T!==we.width||_!==we.height?{reset:{rects:!0}}:{}})}}};function yd(){return typeof window!="undefined"}function Ks(n){return vD(n)?(n.nodeName||"").toLowerCase():"#document"}function hn(n){var t;return(n==null||(t=n.ownerDocument)==null?void 0:t.defaultView)||window}function Qr(n){var t;return(t=(vD(n)?n.ownerDocument:n.document)||window.document)==null?void 0:t.documentElement}function vD(n){return yd()?n instanceof Node||n instanceof hn(n).Node:!1}function ar(n){return yd()?n instanceof Element||n instanceof hn(n).Element:!1}function Mr(n){return yd()?n instanceof HTMLElement||n instanceof hn(n).HTMLElement:!1}function _D(n){return!yd()||typeof ShadowRoot=="undefined"?!1:n instanceof ShadowRoot||n instanceof hn(n).ShadowRoot}function to(n){let{overflow:t,overflowX:e,overflowY:r,display:i}=or(n);return/auto|scroll|overlay|hidden|clip/.test(t+r+e)&&!["inline","contents"].includes(i)}function wD(n){return["table","td","th"].includes(Ks(n))}function fu(n){return[":popover-open",":modal"].some(t=>{try{return n.matches(t)}catch(e){return!1}})}function bd(n){let t=Td(),e=ar(n)?or(n):n;return e.transform!=="none"||e.perspective!=="none"||(e.containerType?e.containerType!=="normal":!1)||!t&&(e.backdropFilter?e.backdropFilter!=="none":!1)||!t&&(e.filter?e.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(e.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(e.contain||"").includes(r))}function kD(n){let t=Ei(n);for(;Mr(t)&&!Qs(t);){if(bd(t))return t;if(fu(t))return null;t=Ei(t)}return null}function Td(){return typeof CSS=="undefined"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Qs(n){return["html","body","#document"].includes(Ks(n))}function or(n){return hn(n).getComputedStyle(n)}function pu(n){return ar(n)?{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}:{scrollLeft:n.scrollX,scrollTop:n.scrollY}}function Ei(n){if(Ks(n)==="html")return n;let t=n.assignedSlot||n.parentNode||_D(n)&&n.host||Qr(n);return _D(t)?t.host:t}function SD(n){let t=Ei(n);return Qs(t)?n.ownerDocument?n.ownerDocument.body:n.body:Mr(t)&&to(t)?t:SD(t)}function gd(n,t,e){var r;t===void 0&&(t=[]),e===void 0&&(e=!0);let i=SD(n),s=i===((r=n.ownerDocument)==null?void 0:r.body),a=hn(i);if(s){let o=_d(a);return t.concat(a,a.visualViewport||[],to(i)?i:[],o&&e?gd(o):[])}return t.concat(i,gd(i,[],e))}function _d(n){return n.parent&&Object.getPrototypeOf(n.parent)?n.frameElement:null}function xD(n){let t=or(n),e=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Mr(n),s=i?n.offsetWidth:e,a=i?n.offsetHeight:r,o=du(e)!==s||du(r)!==a;return o&&(e=s,r=a),{width:e,height:r,$:o}}function OD(n){return ar(n)?n:n.contextElement}function no(n){let t=OD(n);if(!Mr(t))return Cr(1);let e=t.getBoundingClientRect(),{width:r,height:i,$:s}=xD(t),a=(s?du(e.width):e.width)/r,o=(s?du(e.height):e.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!o||!Number.isFinite(o))&&(o=1),{x:a,y:o}}var V2=Cr(0);function CD(n){let t=hn(n);return!Td()||!t.visualViewport?V2:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function z2(n,t,e){return t===void 0&&(t=!1),!e||t&&e!==hn(n)?!1:t}function mu(n,t,e,r){t===void 0&&(t=!1),e===void 0&&(e=!1);let i=n.getBoundingClientRect(),s=OD(n),a=Cr(1);t&&(r?ar(r)&&(a=no(r)):a=no(n));let o=z2(s,e,r)?CD(s):Cr(0),l=(i.left+o.x)/a.x,u=(i.top+o.y)/a.y,c=i.width/a.x,d=i.height/a.y;if(s){let f=hn(s),p=r&&ar(r)?hn(r):r,b=f,T=_d(b);for(;T&&r&&p!==b;){let _=no(T),O=T.getBoundingClientRect(),E=or(T),A=O.left+(T.clientLeft+parseFloat(E.paddingLeft))*_.x,Y=O.top+(T.clientTop+parseFloat(E.paddingTop))*_.y;l*=_.x,u*=_.y,c*=_.x,d*=_.y,l+=A,u+=Y,b=hn(T),T=_d(b)}}return zs({width:c,height:d,x:l,y:u})}function Sy(n,t){let e=pu(n).scrollLeft;return t?t.left+e:mu(Qr(n)).left+e}function MD(n,t,e){e===void 0&&(e=!1);let r=n.getBoundingClientRect(),i=r.left+t.scrollLeft-(e?0:Sy(n,r)),s=r.top+t.scrollTop;return{x:i,y:s}}function K2(n){let{elements:t,rect:e,offsetParent:r,strategy:i}=n,s=i==="fixed",a=Qr(r),o=t?fu(t.floating):!1;if(r===a||o&&s)return e;let l={scrollLeft:0,scrollTop:0},u=Cr(1),c=Cr(0),d=Mr(r);if((d||!d&&!s)&&((Ks(r)!=="body"||to(a))&&(l=pu(r)),Mr(r))){let p=mu(r);u=no(r),c.x=p.x+r.clientLeft,c.y=p.y+r.clientTop}let f=a&&!d&&!s?MD(a,l,!0):Cr(0);return{width:e.width*u.x,height:e.height*u.y,x:e.x*u.x-l.scrollLeft*u.x+c.x+f.x,y:e.y*u.y-l.scrollTop*u.y+c.y+f.y}}function Q2(n){return Array.from(n.getClientRects())}function X2(n){let t=Qr(n),e=pu(n),r=n.ownerDocument.body,i=mn(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=mn(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),a=-e.scrollLeft+Sy(n),o=-e.scrollTop;return or(r).direction==="rtl"&&(a+=mn(t.clientWidth,r.clientWidth)-i),{width:i,height:s,x:a,y:o}}function Z2(n,t){let e=hn(n),r=Qr(n),i=e.visualViewport,s=r.clientWidth,a=r.clientHeight,o=0,l=0;if(i){s=i.width,a=i.height;let u=Td();(!u||u&&t==="fixed")&&(o=i.offsetLeft,l=i.offsetTop)}return{width:s,height:a,x:o,y:l}}function J2(n,t){let e=mu(n,!0,t==="fixed"),r=e.top+n.clientTop,i=e.left+n.clientLeft,s=Mr(n)?no(n):Cr(1),a=n.clientWidth*s.x,o=n.clientHeight*s.y,l=i*s.x,u=r*s.y;return{width:a,height:o,x:l,y:u}}function DD(n,t,e){let r;if(t==="viewport")r=Z2(n,e);else if(t==="document")r=X2(Qr(n));else if(ar(t))r=J2(t,e);else{let i=CD(n);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return zs(r)}function RD(n,t){let e=Ei(n);return e===t||!ar(e)||Qs(e)?!1:or(e).position==="fixed"||RD(e,t)}function eU(n,t){let e=t.get(n);if(e)return e;let r=gd(n,[],!1).filter(o=>ar(o)&&Ks(o)!=="body"),i=null,s=or(n).position==="fixed",a=s?Ei(n):n;for(;ar(a)&&!Qs(a);){let o=or(a),l=bd(a);!l&&o.position==="fixed"&&(i=null),(s?!l&&!i:!l&&o.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||to(a)&&!l&&RD(n,a))?r=r.filter(c=>c!==a):i=o,a=Ei(a)}return t.set(n,r),r}function tU(n){let{element:t,boundary:e,rootBoundary:r,strategy:i}=n,a=[...e==="clippingAncestors"?fu(t)?[]:eU(t,this._c):[].concat(e),r],o=a[0],l=a.reduce((u,c)=>{let d=DD(t,c,i);return u.top=mn(d.top,u.top),u.right=Vs(d.right,u.right),u.bottom=Vs(d.bottom,u.bottom),u.left=mn(d.left,u.left),u},DD(t,o,i));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function nU(n){let{width:t,height:e}=xD(n);return{width:t,height:e}}function rU(n,t,e){let r=Mr(t),i=Qr(t),s=e==="fixed",a=mu(n,!0,s,t),o={scrollLeft:0,scrollTop:0},l=Cr(0);if(r||!r&&!s)if((Ks(t)!=="body"||to(i))&&(o=pu(t)),r){let f=mu(t,!0,s,t);l.x=f.x+t.clientLeft,l.y=f.y+t.clientTop}else i&&(l.x=Sy(i));let u=i&&!r&&!s?MD(i,o):Cr(0),c=a.left+o.scrollLeft-l.x-u.x,d=a.top+o.scrollTop-l.y-u.y;return{x:c,y:d,width:a.width,height:a.height}}function ky(n){return or(n).position==="static"}function ED(n,t){if(!Mr(n)||or(n).position==="fixed")return null;if(t)return t(n);let e=n.offsetParent;return Qr(n)===e&&(e=e.ownerDocument.body),e}function AD(n,t){let e=hn(n);if(fu(n))return e;if(!Mr(n)){let i=Ei(n);for(;i&&!Qs(i);){if(ar(i)&&!ky(i))return i;i=Ei(i)}return e}let r=ED(n,t);for(;r&&wD(r)&&ky(r);)r=ED(r,t);return r&&Qs(r)&&ky(r)&&!bd(r)?e:r||kD(n)||e}var iU=function(n){return F(this,null,function*(){let t=this.getOffsetParent||AD,e=this.getDimensions,r=yield e(n.floating);return{reference:rU(n.reference,yield t(n.floating),n.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}})};function sU(n){return or(n).direction==="rtl"}var aU={convertOffsetParentRelativeRectToViewportRelativeRect:K2,getDocumentElement:Qr,getClippingRect:tU,getOffsetParent:AD,getElementRects:iU,getClientRects:Q2,getDimensions:nU,getScale:no,isElement:ar,isRTL:sU};var Dy=yD;var Ey=bD,PD=gD,ND=TD;var xy=(n,t,e)=>{let r=new Map,i=U({platform:aU},e),s=de(U({},i.platform),{_c:r});return hD(n,t,de(U({},i),{platform:s}))};Zg();function ID(n,t,e){let r=n.slice();return r[5]=t[e],r}function FD(n,t,e){let r=n.slice();r[40]=t[e],r[43]=e;let i=r[17](r[40].taskLocation.path);return r[41]=i,r}function LD(n){let t,e,r,i=n[10],s=[];for(let a=0;a<i.length;a+=1)s[a]=YD(FD(n,i,a));return{c(){t=ue("ul");for(let a=0;a<s.length;a+=1)s[a].c();B(t,"class","task-dependency-dropdown")},m(a,o){De(a,t,o);for(let l=0;l<s.length;l+=1)s[l]&&s[l].m(t,null);n[31](t),e||(r=je(t,"mouseleave",n[32]),e=!0)},p(a,o){if(o[0]&928832){i=a[10];let l;for(l=0;l<i.length;l+=1){let u=FD(a,i,l);s[l]?s[l].p(u,o):(s[l]=YD(u),s[l].c(),s[l].m(t,null))}for(;l<s.length;l+=1)s[l].d(1);s.length=i.length}},d(a){a&&ve(t),Gs(s,a),n[31](null),e=!1,r()}}}function UD(n){let t,e=n[41]+"",r,i,s;function a(...o){return n[28](n[41],...o)}return{c(){t=ue("div"),r=Ve(e),B(t,"class","dependency-path")},m(o,l){De(o,t,l),z(t,r),i||(s=je(t,"mouseenter",a),i=!0)},p(o,l){n=o,l[0]&1024&&e!==(e=n[41]+"")&&ir(r,e)},d(o){o&&ve(t),i=!1,s()}}}function YD(n){let t,e,r,i=n[40].status.symbol+"",s,a,o=Us(n[40])+"",l,u,c,d,f,p;function b(...E){return n[27](n[40],...E)}let T=n[41]&&UD(n);function _(){return n[29](n[40])}function O(){return n[30](n[43])}return{c(){t=ue("li"),e=ue("div"),r=Ve("["),s=Ve(i),a=Ve("] "),l=Ve(o),c=Ee(),T&&T.c(),d=Ee(),B(e,"class",u=n[41]?"dependency-name-shared":"dependency-name"),Si(t,"selected",n[6]!==null&&n[43]===n[11])},m(E,A){De(E,t,A),z(t,e),z(e,r),z(e,s),z(e,a),z(e,l),z(t,c),T&&T.m(t,null),z(t,d),f||(p=[je(e,"mouseenter",b),je(t,"mousedown",_),je(t,"mouseenter",O)],f=!0)},p(E,A){n=E,A[0]&1024&&i!==(i=n[40].status.symbol+"")&&ir(s,i),A[0]&1024&&o!==(o=Us(n[40])+"")&&ir(l,o),A[0]&1024&&u!==(u=n[41]?"dependency-name-shared":"dependency-name")&&B(e,"class",u),n[41]?T?T.p(n,A):(T=UD(n),T.c(),T.m(t,d)):T&&(T.d(1),T=null),A[0]&2112&&Si(t,"selected",n[6]!==null&&n[43]===n[11])},d(E){E&&ve(t),T&&T.d(),f=!1,Bt(p)}}}function jD(n){let t,e=n[0][n[1]],r=[];for(let i=0;i<e.length;i+=1)r[i]=WD(ID(n,e,i));return{c(){t=ue("div");for(let i=0;i<r.length;i+=1)r[i].c();B(t,"class","task-dependencies-container results-dependency")},m(i,s){De(i,t,s);for(let a=0;a<r.length;a+=1)r[a]&&r[a].m(t,null)},p(i,s){if(s[0]&802819){e=i[0][i[1]];let a;for(a=0;a<e.length;a+=1){let o=ID(i,e,a);r[a]?r[a].p(o,s):(r[a]=WD(o),r[a].c(),r[a].m(t,null))}for(;a<r.length;a+=1)r[a].d(1);r.length=e.length}},d(i){i&&ve(t),Gs(r,i)}}}function WD(n){let t,e,r,i=n[5].status.symbol+"",s,a,o=Us(n[5])+"",l,u,c,d,f,p;function b(){return n[33](n[5])}function T(..._){return n[34](n[5],..._)}return{c(){t=ue("div"),e=ue("span"),r=Ve("["),s=Ve(i),a=Ve("] "),l=Ve(o),u=Ee(),c=ue("button"),c.innerHTML='<svg style="display: block; margin: auto;" xmlns="http://www.w3.org/2000/svg" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>',d=Ee(),B(e,"class","task-dependency-name"),B(c,"type","button"),B(c,"class","task-dependency-delete"),B(t,"class","task-dependency")},m(_,O){De(_,t,O),z(t,e),z(e,r),z(e,s),z(e,a),z(e,l),z(t,u),z(t,c),z(t,d),f||(p=[je(c,"click",b),je(t,"mouseenter",T)],f=!0)},p(_,O){n=_,O[0]&3&&i!==(i=n[5].status.symbol+"")&&ir(s,i),O[0]&3&&o!==(o=Us(n[5])+"")&&ir(l,o)},d(_){_&&ve(t),f=!1,Bt(p)}}}function oU(n){let t,e=Ut(n[2],n[3])+"",r,i,s,a,o,l,u,c,d,f=n[10]&&n[10].length!==0&&LD(n),p=n[0][n[1]].length!==0&&jD(n);return{c(){t=ue("label"),r=Ee(),i=ue("span"),s=ue("input"),o=Ee(),f&&f.c(),l=Ee(),p&&p.c(),u=pd(),B(t,"for",n[1]),B(s,"accesskey",n[3]),B(s,"id",n[1]),B(s,"class","tasks-modal-dependency-input"),B(s,"type","text"),B(s,"placeholder",n[4]),Hs(()=>n[26].call(i))},m(b,T){De(b,t,T),t.innerHTML=e,De(b,r,T),De(b,i,T),z(i,s),n[22](s),fn(s,n[6]),a=sD(i,n[26].bind(i)),De(b,o,T),f&&f.m(b,T),De(b,l,T),p&&p.m(b,T),De(b,u,T),c||(d=[je(s,"input",n[23]),je(s,"keydown",n[24]),je(s,"focus",n[16]),je(s,"blur",n[25])],c=!0)},p(b,T){T[0]&12&&e!==(e=Ut(b[2],b[3])+"")&&(t.innerHTML=e),T[0]&2&&B(t,"for",b[1]),T[0]&8&&B(s,"accesskey",b[3]),T[0]&2&&B(s,"id",b[1]),T[0]&16&&B(s,"placeholder",b[4]),T[0]&64&&s.value!==b[6]&&fn(s,b[6]),b[10]&&b[10].length!==0?f?f.p(b,T):(f=LD(b),f.c(),f.m(l.parentNode,l)):f&&(f.d(1),f=null),b[0][b[1]].length!==0?p?p.p(b,T):(p=jD(b),p.c(),p.m(u.parentNode,u)):p&&(p.d(1),p=null)},i:tt,o:tt,d(b){b&&ve(t),b&&ve(r),b&&ve(i),n[22](null),a(),b&&ve(o),f&&f.d(b),b&&ve(l),p&&p.d(b),b&&ve(u),c=!1,Bt(d)}}}function lU(n,t,e){let{task:r}=t,{editableTask:i}=t,{allTasks:s}=t,{_onDescriptionKeyDown:a}=t,{type:o}=t,{labelText:l}=t,{accesskey:u}=t,{placeholder:c="Type to search..."}=t,d="",f=null,p=0,b,T=!1,_=!1,O,E;function A(D){e(0,i[o]=[...i[o],D],i),e(6,d=""),e(7,T=!1)}function Y(D){e(0,i[o]=i[o].filter(P=>P!==D),i)}function q(D){var P;if(f!==null){switch(D.key){case"ArrowUp":D.preventDefault(),!!p&&p>0?e(11,p-=1):e(11,p=f.length-1);break;case"ArrowDown":D.preventDefault(),!!p&&p<f.length-1?e(11,p+=1):e(11,p=0);break;case"Enter":if(D.isComposing)return;p!==null?(D.preventDefault(),A(f[p]),e(11,p=null),e(7,T=!1)):a(D);break;default:e(11,p=0);break}p&&((P=E==null?void 0:E.getElementsByTagName("li")[p])===null||P===void 0||P.scrollIntoView({block:"nearest"}))}}function se(D){return!D&&!_?[]:(_=!1,ed(D,s,r,i.blockedBy,i.blocking))}function H(){e(7,T=!0),_=!0}function Z(D,P){!D||!P||xy(D,P,{middleware:[Dy(6),Ey(),PD(),ND({apply(){P&&Object.assign(P.style,{width:`${b}px`})}})]}).then(({x:W,y:ce})=>{P.style.left=`${W}px`,P.style.top=`${ce}px`})}function ye(D){return D===r.taskLocation.path?"":D}function we(D){return Us(D)}function V(D,P){let W=D.createDiv();W.addClasses(["tooltip","pop-up"]),W.innerText=P,xy(D,W,{placement:"top",middleware:[Dy(-18),Ey()]}).then(({x:ce,y:be})=>{W.style.left=`${ce}px`,W.style.top=`${be}px`}),D.addEventListener("mouseleave",()=>W.remove())}function K(D){ot[D?"unshift":"push"](()=>{O=D,e(8,O)})}function C(){d=this.value,e(6,d)}let J=D=>q(D),$=()=>e(7,T=!1);function oe(){b=this.clientWidth,e(12,b)}let m=(D,P)=>V(P.currentTarget,we(D)),y=(D,P)=>V(P.currentTarget,D),v=D=>A(D),w=D=>e(11,p=D);function S(D){ot[D?"unshift":"push"](()=>{E=D,e(9,E)})}let M=()=>e(11,p=null),I=D=>Y(D),j=(D,P)=>V(P.currentTarget,we(D));return n.$$set=D=>{"task"in D&&e(5,r=D.task),"editableTask"in D&&e(0,i=D.editableTask),"allTasks"in D&&e(20,s=D.allTasks),"_onDescriptionKeyDown"in D&&e(21,a=D._onDescriptionKeyDown),"type"in D&&e(1,o=D.type),"labelText"in D&&e(2,l=D.labelText),"accesskey"in D&&e(3,u=D.accesskey),"placeholder"in D&&e(4,c=D.placeholder)},n.$$.update=()=>{if(n.$$.dirty[0]&768){e:Z(O,E)}if(n.$$.dirty[0]&192){e:e(10,f=T?se(d):null)}},[i,o,l,u,c,r,d,T,O,E,f,p,b,A,Y,q,H,ye,we,V,s,a,K,C,J,$,oe,m,y,v,w,S,M,I,j]}var Oy=class extends rr{constructor(t){super(),Kr(this,t,lU,oU,zr,{task:5,editableTask:0,allTasks:20,_onDescriptionKeyDown:21,type:1,labelText:2,accesskey:3,placeholder:4},null,[-1,-1])}},Cy=Oy;Mn();Cs();su();var gu=require("obsidian");Mn();Ws();dy();var hu,My,Ry,uU=["md"];function kd(){return sn.getLogger("tasks.File")}var $D=({metadataCache:n,vault:t,workspace:e})=>{hu=n,My=t,Ry=e},Nn=e=>F(void 0,[e],function*({originalTask:n,newTasks:t}){if(My===void 0||hu===void 0||Ry===void 0){vd("Tasks: cannot use File before initializing it.");return}Array.isArray(t)||(t=[t]);let r=kd(),i="replaceTaskWithTasks()";ad(r,i,n),od(r,i,t),yield HD({originalTask:n,newTasks:t,vault:My,metadataCache:hu,workspace:Ry,previousTries:0})});function vd(n){console.error(n),new gu.Notice(n,15e3)}function qD(n){console.warn(n),new gu.Notice(n,1e4)}function cU(n){kd().debug(n)}var Vi=class extends Error{},wd=class extends Error{},HD=a=>F(void 0,[a],function*({originalTask:n,newTasks:t,vault:e,metadataCache:r,workspace:i,previousTries:s}){let o=kd();o.debug(`tryRepetitive after ${s} previous tries`);let l=()=>F(void 0,null,function*(){if(s>10){let c=`Tasks: Could not find the correct task line to update. The task line not updated is: ${n.originalMarkdown} @@ -234,27 +234,29 @@ Recommendations: 1. Close all panes that have the above file open, and then re-open the file. 2. Check for exactly identical copies of the task line, in this file, and see if you can make them different. -`;vd(c);return}let u=Math.min(Math.pow(10,s),100);o.debug(`timeout = ${u}`),setTimeout(()=>L(void 0,null,function*(){yield qE({originalTask:n,newTasks:t,vault:e,metadataCache:r,workspace:i,previousTries:s+1})}),u)});try{let[u,c,d]=yield HE(n,e),f=[...d.slice(0,u),...t.map(p=>p.toFileLineString()),...d.slice(u+1)];yield e.modify(c,f.join(` -`))}catch(u){if(u instanceof Vi){u.message&&$E(u.message),yield l();return}else if(u instanceof wd){yield l();return}else u instanceof Error&&vd(u.message)}});function HE(n,t){return L(this,null,function*(){if(hu===void 0)throw new Vi;let e=t.getAbstractFileByPath(n.path);if(!(e instanceof gu.TFile))throw new Vi(`Tasks: No file found for task ${n.description}. Retrying ...`);if(!lU.includes(e.extension))throw new Error(`Tasks: Does not support files with the ${e.extension} file extension.`);let r=hu.getFileCache(e);if(r==null||r===null)throw new Vi(`Tasks: No file cache found for file ${e.path}. Retrying ...`);let i=r.listItems;if(i===void 0||i.length===0)throw new Vi(`Tasks: No list items found in file cache of ${e.path}. Retrying ...`);let a=(yield t.read(e)).split(` -`),o=cU(n,a,i,uU);if(o===void 0)throw new wd;return[o,e,a]})}function Ay(n,t){return L(this,null,function*(){try{let[e,r,i]=yield HE(n,t);return[e,r]}catch(e){e instanceof Vi?e.message&&$E(e.message):e instanceof Error&&vd(e.message)}})}function GE(n,t){return n<t.length}function cU(n,t,e,r){let i=dU(n,t);return i!==void 0||(i=fU(n,t),i!==void 0)?i:pU(n,t,e,r)}function dU(n,t){let e=n.taskLocation.lineNumber;if(GE(e,t)&&t[e]===n.originalMarkdown)return kd().debug(`Found original markdown at original line number ${e}`),e}function fU(n,t){let e=[];for(let r=0;r<t.length;r++)t[r]===n.originalMarkdown&&e.push(r);if(e.length===1)return e[0]}function pU(n,t,e,r){let i,s=0;for(let a of e){let o=a.position.start.line;if(!GE(o,t))return;if(o<n.taskLocation.sectionStart||a.task===void 0)continue;let l=t[o];if(Fe.getInstance().includedIn(l)){if(s===n.taskLocation.sectionIndex){if(l===n.originalMarkdown)i=o;else{r(`Tasks: Unable to find task in file ${n.taskLocation.path}. +`;vd(c);return}let u=Math.min(Math.pow(10,s),100);o.debug(`timeout = ${u}`),setTimeout(()=>F(void 0,null,function*(){yield HD({originalTask:n,newTasks:t,vault:e,metadataCache:r,workspace:i,previousTries:s+1})}),u)});try{let[u,c,d]=yield GD(n,e),f=[...d.slice(0,u),...t.map(p=>p.toFileLineString()),...d.slice(u+1)];yield e.modify(c,f.join(` +`))}catch(u){if(u instanceof Vi){u.message&&qD(u.message),yield l();return}else if(u instanceof wd){yield l();return}else u instanceof Error&&vd(u.message)}});function GD(n,t){return F(this,null,function*(){if(hu===void 0)throw new Vi;let e=t.getAbstractFileByPath(n.path);if(!(e instanceof gu.TFile))throw new Vi(`Tasks: No file found for task ${n.description}. Retrying ...`);if(!uU.includes(e.extension))throw new Error(`Tasks: Does not support files with the ${e.extension} file extension.`);let r=hu.getFileCache(e);if(r==null||r===null)throw new Vi(`Tasks: No file cache found for file ${e.path}. Retrying ...`);let i=r.listItems;if(i===void 0||i.length===0)throw new Vi(`Tasks: No list items found in file cache of ${e.path}. Retrying ...`);let a=(yield t.read(e)).split(` +`),o=dU(n,a,i,cU);if(o===void 0)throw new wd;return[o,e,a]})}function Ay(n,t){return F(this,null,function*(){try{let[e,r,i]=yield GD(n,t);return[e,r]}catch(e){e instanceof Vi?e.message&&qD(e.message):e instanceof Error&&vd(e.message)}})}function BD(n,t){return n<t.length}function dU(n,t,e,r){let i=fU(n,t);return i!==void 0||(i=pU(n,t),i!==void 0)?i:mU(n,t,e,r)}function fU(n,t){let e=n.taskLocation.lineNumber;if(BD(e,t)&&t[e]===n.originalMarkdown)return kd().debug(`Found original markdown at original line number ${e}`),e}function pU(n,t){let e=[];for(let r=0;r<t.length;r++)t[r]===n.originalMarkdown&&e.push(r);if(e.length===1)return e[0]}function mU(n,t,e,r){let i,s=0;for(let a of e){let o=a.position.start.line;if(!BD(o,t))return;if(o<n.taskLocation.sectionStart||a.task===void 0)continue;let l=t[o];if(Fe.getInstance().includedIn(l)){if(s===n.taskLocation.sectionIndex){if(l===n.originalMarkdown)i=o;else{r(`Tasks: Unable to find task in file ${n.taskLocation.path}. Expected task: ${n.originalMarkdown} Found task: -${l}`);return}break}s++}}return i}Nc();ja();Vc();Nt();Jc();er();var ro=class{constructor(t){this.addGlobalFilterOnSave=t.addGlobalFilterOnSave,this.originalBlocking=t.originalBlocking,this.description=t.description,this.status=t.status,this.priority=t.priority,this.onCompletion=t.onCompletion,this.recurrenceRule=t.recurrenceRule,this.createdDate=t.createdDate,this.startDate=t.startDate,this.scheduledDate=t.scheduledDate,this.dueDate=t.dueDate,this.doneDate=t.doneDate,this.cancelledDate=t.cancelledDate,this.forwardOnly=t.forwardOnly,this.blockedBy=t.blockedBy,this.blocking=t.blocking}static fromTask(t,e){let r=Fe.getInstance().removeAsWordFrom(t.description),i=r!=t.description||!Fe.getInstance().includedIn(t.description),s="none";t.priority==="5"?s="lowest":t.priority==="4"?s="low":t.priority==="2"?s="medium":t.priority==="1"?s="high":t.priority==="0"&&(s="highest");let a=[];for(let l of t.dependsOn){let u=e.find(c=>c.id===l);!u||a.push(u)}let o=e.filter(l=>l.dependsOn.includes(t.id));return new ro({addGlobalFilterOnSave:i,originalBlocking:o,description:r,status:t.status,priority:s,recurrenceRule:t.recurrence?t.recurrence.toText():"",onCompletion:t.onCompletion,createdDate:t.created.formatAsDate(),startDate:t.start.formatAsDate(),scheduledDate:t.scheduled.formatAsDate(),dueDate:t.due.formatAsDate(),doneDate:t.done.formatAsDate(),cancelledDate:t.cancelled.formatAsDate(),forwardOnly:!0,blockedBy:a,blocking:o})}applyEdits(t,e){return L(this,null,function*(){let r=this.description.trim();this.addGlobalFilterOnSave&&(r=Fe.getInstance().prependTo(r));let i=Os(this.startDate,this.forwardOnly),s=Os(this.scheduledDate,this.forwardOnly),a=Os(this.dueDate,this.forwardOnly),o=Os(this.cancelledDate,this.forwardOnly),l=Os(this.createdDate,this.forwardOnly),u=Os(this.doneDate,this.forwardOnly),c=null;this.recurrenceRule&&(c=Et.fromText({recurrenceRuleText:this.recurrenceRule,occurrence:new Qn({startDate:i,scheduledDate:s,dueDate:a})}));let d=this.onCompletion,f=[];for(let D of this.blockedBy){let A=yield mU(D,e);f.push(A)}let p=t.id,b=[],T=[];(this.blocking.toString()!==this.originalBlocking.toString()||this.blocking.length!==0)&&(t.id===""&&(p=ru(e.filter(D=>D.id!=="").map(D=>D.id))),b=this.originalBlocking.filter(D=>!this.blocking.includes(D)),T=this.blocking.filter(D=>!this.originalBlocking.includes(D)));let _=new fe(me(U({},t),{description:r,status:t.status,priority:Rn.priorityValue(this.priority),onCompletion:d,recurrence:c,startDate:i,scheduledDate:s,dueDate:a,doneDate:u,createdDate:l,cancelledDate:o,dependsOn:f.map(D=>D.id),id:p}));for(let D of b){let A=OS(D,_);yield gn({originalTask:D,newTasks:A})}for(let D of T){let A=xS(D,_);yield gn({originalTask:D,newTasks:A})}let O=this.inferTodaysDate(this.status.type,u,o);return _.handleNewStatusWithRecurrenceInUsersOrder(this.status,O)})}inferTodaysDate(t,e,r){return t==="DONE"&&e!==null?e:t==="CANCELLED"&&r!==null?r:window.moment()}parseAndValidateRecurrence(){var e;if(!this.recurrenceRule)return{parsedRecurrence:"<i>not recurring</>",isRecurrenceValid:!0};let t=(e=Et.fromText({recurrenceRuleText:this.recurrenceRule,occurrence:new Qn({startDate:null,scheduledDate:null,dueDate:null})}))==null?void 0:e.toText();return t?this.startDate||this.scheduledDate||this.dueDate?{parsedRecurrence:t,isRecurrenceValid:!0}:{parsedRecurrence:"<i>due, scheduled or start date required</i>",isRecurrenceValid:!1}:{parsedRecurrence:"<i>invalid recurrence rule</i>",isRecurrenceValid:!1}}};function mU(n,t){return L(this,null,function*(){if(n.id!=="")return n;let e=t.filter(i=>i.id!==""),r=Zc(n,e.map(i=>i.id));return yield gn({originalTask:n,newTasks:r}),r})}nn();function hU(n){let t,e=Ut("Recurs",n[2])+"",r,i,s,a,o,l,u,c,d;return{c(){t=ue("label"),r=De(),i=ue("input"),s=De(),a=ue("code"),o=Ve(n[4]),l=De(),u=new Xa(!1),B(t,"for","recurrence"),B(i,"id","recurrence"),B(i,"type","text"),B(i,"class","tasks-modal-date-input"),B(i,"placeholder","Try 'every day when done'"),B(i,"accesskey",n[2]),Si(i,"tasks-modal-error",!n[1]),u.a=null,B(a,"class","tasks-modal-parsed-date")},m(f,p){Ee(f,t,p),t.innerHTML=e,Ee(f,r,p),Ee(f,i,p),fn(i,n[0].recurrenceRule),Ee(f,s,p),Ee(f,a,p),z(a,o),z(a,l),u.m(n[3],a),c||(d=je(i,"input",n[5]),c=!0)},p(f,[p]){p&4&&e!==(e=Ut("Recurs",f[2])+"")&&(t.innerHTML=e),p&4&&B(i,"accesskey",f[2]),p&1&&i.value!==f[0].recurrenceRule&&fn(i,f[0].recurrenceRule),p&2&&Si(i,"tasks-modal-error",!f[1]),p&8&&u.p(f[3])},i:tt,o:tt,d(f){f&&ve(t),f&&ve(r),f&&ve(i),f&&ve(s),f&&ve(a),c=!1,d()}}}function gU(n,t,e){let{editableTask:r}=t,{isRecurrenceValid:i}=t,{accesskey:s}=t,a,{recurrenceSymbol:o}=Er.tasksPluginEmoji.taskSerializer.symbols;function l(){r.recurrenceRule=this.value,e(0,r)}return n.$$set=u=>{"editableTask"in u&&e(0,r=u.editableTask),"isRecurrenceValid"in u&&e(1,i=u.isRecurrenceValid),"accesskey"in u&&e(2,s=u.accesskey)},n.$$.update=()=>{if(n.$$.dirty&1){e:e(3,{parsedRecurrence:a,isRecurrenceValid:i}=r.parseAndValidateRecurrence(),a,(e(1,i),e(0,r)))}},[r,i,s,a,o,l]}var Py=class extends nr{constructor(t){super(),Kr(this,t,gU,hU,zr,{editableTask:0,isRecurrenceValid:1,accesskey:2})}},BE=Py;function VE(n,t,e){let r=n.slice();return r[7]=t[e],r}function zE(n){let t,e=n[7].name+"",r,i,s=n[7].symbol+"",a,o,l;return{c(){t=ue("option"),r=Ve(e),i=Ve(" ["),a=Ve(s),o=Ve("]"),t.__value=l=n[7].symbol,t.value=t.__value},m(u,c){Ee(u,t,c),z(t,r),z(t,i),z(t,a),z(t,o)},p(u,c){c&1&&e!==(e=u[7].name+"")&&rr(r,e),c&1&&s!==(s=u[7].symbol+"")&&rr(a,s),c&1&&l!==(l=u[7].symbol)&&(t.__value=l,t.value=t.__value)},d(u){u&&ve(t)}}}function yU(n){let t,e=Ut("Status",n[1])+"",r,i,s,a,o=n[0],l=[];for(let u=0;u<o.length;u+=1)l[u]=zE(VE(n,o,u));return{c(){t=ue("label"),r=De(),i=ue("select");for(let u=0;u<l.length;u+=1)l[u].c();B(t,"for","status"),B(i,"id","status-type"),B(i,"class","status-editor-status-selector"),B(i,"accesskey",n[1]),n[2]===void 0&&Hs(()=>n[6].call(i))},m(u,c){Ee(u,t,c),t.innerHTML=e,Ee(u,r,c),Ee(u,i,c);for(let d=0;d<l.length;d+=1)l[d]&&l[d].m(i,null);gy(i,n[2],!0),s||(a=[je(i,"change",n[6]),je(i,"change",n[3])],s=!0)},p(u,[c]){if(c&2&&e!==(e=Ut("Status",u[1])+"")&&(t.innerHTML=e),c&1){o=u[0];let d;for(d=0;d<o.length;d+=1){let f=VE(u,o,d);l[d]?l[d].p(f,c):(l[d]=zE(f),l[d].c(),l[d].m(i,null))}for(;d<l.length;d+=1)l[d].d(1);l.length=o.length}c&2&&B(i,"accesskey",u[1]),c&5&&gy(i,u[2])},i:tt,o:tt,d(u){u&&ve(t),u&&ve(r),u&&ve(i),Gs(l,u),s=!1,Gt(a)}}}function KE(n,t,e){let r=n==="";return t&&r?e.formatAsDate():!t&&!r?"":n}function bU(n,t,e){let{task:r}=t,{editableTask:i}=t,{statusOptions:s}=t,{accesskey:a}=t,o=r.status.symbol,l=()=>{let c=s.find(f=>f.symbol===o);if(c)e(4,i.status=c,i);else{console.log(`Error in EditTask: cannot find status with symbol ${o}`);return}let d=r.handleNewStatus(c).pop();d&&(e(4,i.doneDate=KE(i.doneDate,c.isCompleted(),d.done),i),e(4,i.cancelledDate=KE(i.cancelledDate,c.isCancelled(),d.cancelled),i))};function u(){o=rE(this),e(2,o),e(0,s)}return n.$$set=c=>{"task"in c&&e(5,r=c.task),"editableTask"in c&&e(4,i=c.editableTask),"statusOptions"in c&&e(0,s=c.statusOptions),"accesskey"in c&&e(1,a=c.accesskey)},[s,a,o,l,i,r,u]}var Ny=class extends nr{constructor(t){super(),Kr(this,t,bU,yU,zr,{task:5,editableTask:4,statusOptions:0,accesskey:1})}},QE=Ny;function XE(n,t,e){let r=n.slice();return r[49]=t[e].value,r[50]=t[e].label,r[51]=t[e].symbol,r[52]=t[e].accessKey,r[53]=t[e].accessKeyIndex,r}function TU(n){let t,e=n[50]+"",r;return{c(){t=ue("span"),r=Ve(e)},m(i,s){Ee(i,t,s),z(t,r)},p:tt,d(i){i&&ve(t)}}}function _U(n){let t,e=n[50].substring(0,n[53])+"",r,i,s=n[50].substring(n[53],n[53]+1)+"",a,o,l=n[50].substring(n[53]+1)+"",u;return{c(){t=ue("span"),r=Ve(e),i=ue("span"),a=Ve(s),o=ue("span"),u=Ve(l),B(i,"class","accesskey")},m(c,d){Ee(c,t,d),z(t,r),Ee(c,i,d),z(i,a),Ee(c,o,d),z(o,u)},p:tt,d(c){c&&ve(t),c&&ve(i),c&&ve(o)}}}function vU(n){let t,e=n[51]+"",r;return{c(){t=ue("span"),r=Ve(e)},m(i,s){Ee(i,t,s),z(t,r)},p:tt,d(i){i&&ve(t)}}}function ZE(n){let t,e,r,i,s,a,o,l,u=n[51]&&n[51].charCodeAt(0)>=256,c,d,f,p,b;function T(A,Y){return A[11]?_U:TU}let _=T(n,[-1,-1]),O=_(n),D=u&&vU(n);return f=nE(n[32][0]),{c(){t=ue("div"),e=ue("input"),a=De(),o=ue("label"),O.c(),l=De(),D&&D.c(),d=De(),B(e,"type","radio"),B(e,"id",r="priority-"+n[49]),e.__value=i=n[49],e.value=e.__value,B(e,"accesskey",s=n[15](n[52])),B(o,"for",c="priority-"+n[49]),B(t,"class","task-modal-priority-option-container"),f.p(e)},m(A,Y){Ee(A,t,Y),z(t,e),e.checked=e.__value===n[3].priority,z(t,a),z(t,o),O.m(o,null),z(o,l),D&&D.m(o,null),z(t,d),p||(b=je(e,"change",n[31]),p=!0)},p(A,Y){Y[0]&32768&&s!==(s=A[15](A[52]))&&B(e,"accesskey",s),Y[0]&8&&(e.checked=e.__value===A[3].priority),_===(_=T(A,Y))&&O?O.p(A,Y):(O.d(1),O=_(A),O&&(O.c(),O.m(o,l))),u&&D.p(A,Y)},d(A){A&&ve(t),O.d(),D&&D.d(),f.r(),p=!1,b()}}}function wU(n){let t;return{c(){t=ue("div"),t.innerHTML="<i>Blocking and blocked by fields are disabled when vault tasks is empty</i>"},m(e,r){Ee(e,t,r)},p:tt,i:tt,o:tt,d(e){e&&ve(t)}}}function kU(n){let t,e,r,i;return t=new Cy({props:{type:"blockedBy",labelText:"Before this",task:n[0],editableTask:n[3],allTasks:n[2],_onDescriptionKeyDown:n[24],accesskey:n[15]("b"),placeholder:"Search for tasks that the task being edited depends on..."}}),r=new Cy({props:{type:"blocking",labelText:"After this",task:n[0],editableTask:n[3],allTasks:n[2],_onDescriptionKeyDown:n[24],accesskey:n[15]("e"),placeholder:"Search for tasks that depend on this task being done..."}}),{c(){Or(t.$$.fragment),e=De(),Or(r.$$.fragment)},m(s,a){ir(t,s,a),Ee(s,e,a),ir(r,s,a),i=!0},p(s,a){let o={};a[0]&1&&(o.task=s[0]),a[0]&8&&(o.editableTask=s[3]),a[0]&4&&(o.allTasks=s[2]),a[0]&32768&&(o.accesskey=s[15]("b")),t.$set(o);let l={};a[0]&1&&(l.task=s[0]),a[0]&8&&(l.editableTask=s[3]),a[0]&4&&(l.allTasks=s[2]),a[0]&32768&&(l.accesskey=s[15]("e")),r.$set(l)},i(s){i||(pn(t.$$.fragment,s),pn(r.$$.fragment,s),i=!0)},o(s){An(t.$$.fragment,s),An(r.$$.fragment,s),i=!1},d(s){Pn(t,s),s&&ve(e),Pn(r,s)}}}function SU(n){let t,e,r,i=Ut("Description",n[15]("t"))+"",s,a,o,l,u,c,d,f,p,b,T,_,O,D,A,Y,q,se,H,Z,ye,we,V,K,C,J,$,oe,m,y,v=Ut("Only future dates:",n[15]("f"))+"",w,S,M,I,j,E,P,W,de,be,xe,He,Le,Yt,fr,wn,te,jt,it,us,pr,Mo,oa,la,Un,Ri,Ro,Ao,Ai,Fr,Au,ua,Po,cs,Yn,Xe,ca,Lr=n[22],xt=[];for(let F=0;F<Lr.length;F+=1)xt[F]=ZE(XE(n,Lr,F));function da(F){n[33](F)}let fa={editableTask:n[3],accesskey:n[15]("r")};n[10]!==void 0&&(fa.isRecurrenceValid=n[10]),D=new BE({props:fa}),at.push(()=>an(D,"isRecurrenceValid",da));function mr(F){n[34](F)}function Cf(F){n[35](F)}let No={id:"due",dateSymbol:n[18],forwardOnly:n[3].forwardOnly,accesskey:n[15]("d")};n[3].dueDate!==void 0&&(No.date=n[3].dueDate),n[7]!==void 0&&(No.isDateValid=n[7]),q=new Bs({props:No}),at.push(()=>an(q,"date",mr)),at.push(()=>an(q,"isDateValid",Cf));function h(F){n[36](F)}function g(F){n[37](F)}let k={id:"scheduled",dateSymbol:n[17],forwardOnly:n[3].forwardOnly,accesskey:n[15]("s")};n[3].scheduledDate!==void 0&&(k.date=n[3].scheduledDate),n[8]!==void 0&&(k.isDateValid=n[8]),ye=new Bs({props:k}),at.push(()=>an(ye,"date",h)),at.push(()=>an(ye,"isDateValid",g));function R(F){n[38](F)}function G(F){n[39](F)}let X={id:"start",dateSymbol:n[16],forwardOnly:n[3].forwardOnly,accesskey:n[15]("a")};n[3].startDate!==void 0&&(X.date=n[3].startDate),n[9]!==void 0&&(X.isDateValid=n[9]),C=new Bs({props:X}),at.push(()=>an(C,"date",R)),at.push(()=>an(C,"isDateValid",G));let _e=[kU,wU],ne=[];function Oe(F,he){return F[2].length>0&&F[14]?0:1}W=Oe(n,[-1,-1]),de=ne[W]=_e[W](n);function ie(F){n[41](F)}let pe={task:n[0],statusOptions:n[1],accesskey:n[15]("u")};n[3]!==void 0&&(pe.editableTask=n[3]),Yt=new QE({props:pe}),at.push(()=>an(Yt,"editableTask",ie));function ze(F){n[42](F)}function jn(F){n[43](F)}let Ot={id:"created",dateSymbol:n[20],forwardOnly:n[3].forwardOnly,accesskey:n[15]("c")};n[3].createdDate!==void 0&&(Ot.date=n[3].createdDate),n[5]!==void 0&&(Ot.isDateValid=n[5]),te=new Bs({props:Ot}),at.push(()=>an(te,"date",ze)),at.push(()=>an(te,"isDateValid",jn));function ds(F){n[44](F)}function Pi(F){n[45](F)}let Io={id:"done",dateSymbol:n[21],forwardOnly:n[3].forwardOnly,accesskey:n[15]("x")};n[3].doneDate!==void 0&&(Io.date=n[3].doneDate),n[6]!==void 0&&(Io.isDateValid=n[6]),pr=new Bs({props:Io}),at.push(()=>an(pr,"date",ds)),at.push(()=>an(pr,"isDateValid",Pi));function Fo(F){n[46](F)}function Mf(F){n[47](F)}let Lo={id:"cancelled",dateSymbol:n[19],forwardOnly:n[3].forwardOnly,accesskey:n[15]("-")};return n[3].cancelledDate!==void 0&&(Lo.date=n[3].cancelledDate),n[4]!==void 0&&(Lo.isDateValid=n[4]),Un=new Bs({props:Lo}),at.push(()=>an(Un,"date",Fo)),at.push(()=>an(Un,"isDateValid",Mf)),{c(){t=ue("form"),e=ue("section"),r=ue("label"),s=De(),a=ue("textarea"),l=De(),u=ue("section"),c=ue("label"),d=Ve("Priority"),p=De();for(let F=0;F<xt.length;F+=1)xt[F].c();b=De(),T=ue("hr"),_=De(),O=ue("section"),Or(D.$$.fragment),Y=De(),Or(q.$$.fragment),Z=De(),Or(ye.$$.fragment),K=De(),Or(C.$$.fragment),oe=De(),m=ue("div"),y=ue("label"),w=De(),S=ue("input"),I=De(),j=ue("hr"),E=De(),P=ue("section"),de.c(),be=De(),xe=ue("hr"),He=De(),Le=ue("section"),Or(Yt.$$.fragment),wn=De(),Or(te.$$.fragment),us=De(),Or(pr.$$.fragment),la=De(),Or(Un.$$.fragment),Ao=De(),Ai=ue("section"),Fr=ue("button"),Au=Ve("Apply"),Po=De(),cs=ue("button"),cs.textContent="Cancel",B(r,"for","description"),B(a,"id","description"),B(a,"class","tasks-modal-description"),B(a,"placeholder","Take out the trash"),B(a,"accesskey",o=n[15]("t")),B(e,"class","tasks-modal-description-section"),B(c,"for",f="priority-"+n[3].priority),B(u,"class","tasks-modal-priority-section"),B(y,"for","forwardOnly"),B(S,"id","forwardOnly"),B(S,"type","checkbox"),B(S,"class","task-list-item-checkbox tasks-modal-checkbox"),B(S,"accesskey",M=n[15]("f")),B(m,"class","future-dates-only"),B(O,"class","tasks-modal-dates-section"),B(P,"class","tasks-modal-dependencies-section"),B(Le,"class","tasks-modal-dates-section"),Fr.disabled=ua=!n[13],B(Fr,"type","submit"),B(Fr,"class","mod-cta"),B(cs,"type","button"),B(Ai,"class","tasks-modal-button-section"),B(t,"class","tasks-modal")},m(F,he){Ee(F,t,he),z(t,e),z(e,r),r.innerHTML=i,z(e,s),z(e,a),fn(a,n[3].description),n[30](a),z(t,l),z(t,u),z(u,c),z(c,d),z(u,p);for(let hr=0;hr<xt.length;hr+=1)xt[hr]&&xt[hr].m(u,null);z(t,b),z(t,T),z(t,_),z(t,O),ir(D,O,null),z(O,Y),ir(q,O,null),z(O,Z),ir(ye,O,null),z(O,K),ir(C,O,null),z(O,oe),z(O,m),z(m,y),y.innerHTML=v,z(m,w),z(m,S),S.checked=n[3].forwardOnly,z(t,I),z(t,j),z(t,E),z(t,P),ne[W].m(P,null),z(t,be),z(t,xe),z(t,He),z(t,Le),ir(Yt,Le,null),z(Le,wn),ir(te,Le,null),z(Le,us),ir(pr,Le,null),z(Le,la),ir(Un,Le,null),z(t,Ao),z(t,Ai),z(Ai,Fr),z(Fr,Au),z(Ai,Po),z(Ai,cs),Yn=!0,Xe||(ca=[je(a,"input",n[29]),je(a,"keydown",n[24]),je(a,"paste",n[25]),je(a,"drop",n[25]),je(S,"change",n[40]),je(cs,"click",n[23]),je(t,"submit",tE(n[26]))],Xe=!0)},p(F,he){if((!Yn||he[0]&32768)&&i!==(i=Ut("Description",F[15]("t"))+"")&&(r.innerHTML=i),(!Yn||he[0]&32768&&o!==(o=F[15]("t")))&&B(a,"accesskey",o),he[0]&8&&fn(a,F[3].description),(!Yn||he[0]&8&&f!==(f="priority-"+F[3].priority))&&B(c,"for",f),he[0]&4229128){Lr=F[22];let Wn;for(Wn=0;Wn<Lr.length;Wn+=1){let Tb=XE(F,Lr,Wn);xt[Wn]?xt[Wn].p(Tb,he):(xt[Wn]=ZE(Tb),xt[Wn].c(),xt[Wn].m(u,null))}for(;Wn<xt.length;Wn+=1)xt[Wn].d(1);xt.length=Lr.length}let hr={};he[0]&8&&(hr.editableTask=F[3]),he[0]&32768&&(hr.accesskey=F[15]("r")),!A&&he[0]&1024&&(A=!0,hr.isRecurrenceValid=F[10],sn(()=>A=!1)),D.$set(hr);let fs={};he[0]&8&&(fs.forwardOnly=F[3].forwardOnly),he[0]&32768&&(fs.accesskey=F[15]("d")),!se&&he[0]&8&&(se=!0,fs.date=F[3].dueDate,sn(()=>se=!1)),!H&&he[0]&128&&(H=!0,fs.isDateValid=F[7],sn(()=>H=!1)),q.$set(fs);let ps={};he[0]&8&&(ps.forwardOnly=F[3].forwardOnly),he[0]&32768&&(ps.accesskey=F[15]("s")),!we&&he[0]&8&&(we=!0,ps.date=F[3].scheduledDate,sn(()=>we=!1)),!V&&he[0]&256&&(V=!0,ps.isDateValid=F[8],sn(()=>V=!1)),ye.$set(ps);let ms={};he[0]&8&&(ms.forwardOnly=F[3].forwardOnly),he[0]&32768&&(ms.accesskey=F[15]("a")),!J&&he[0]&8&&(J=!0,ms.date=F[3].startDate,sn(()=>J=!1)),!$&&he[0]&512&&($=!0,ms.isDateValid=F[9],sn(()=>$=!1)),C.$set(ms),(!Yn||he[0]&32768)&&v!==(v=Ut("Only future dates:",F[15]("f"))+"")&&(y.innerHTML=v),(!Yn||he[0]&32768&&M!==(M=F[15]("f")))&&B(S,"accesskey",M),he[0]&8&&(S.checked=F[3].forwardOnly);let Rf=W;W=Oe(F,he),W===Rf?ne[W].p(F,he):(aE(),An(ne[Rf],1,1,()=>{ne[Rf]=null}),oE(),de=ne[W],de?de.p(F,he):(de=ne[W]=_e[W](F),de.c()),pn(de,1),de.m(P,null));let Uo={};he[0]&1&&(Uo.task=F[0]),he[0]&2&&(Uo.statusOptions=F[1]),he[0]&32768&&(Uo.accesskey=F[15]("u")),!fr&&he[0]&8&&(fr=!0,Uo.editableTask=F[3],sn(()=>fr=!1)),Yt.$set(Uo);let Yo={};he[0]&8&&(Yo.forwardOnly=F[3].forwardOnly),he[0]&32768&&(Yo.accesskey=F[15]("c")),!jt&&he[0]&8&&(jt=!0,Yo.date=F[3].createdDate,sn(()=>jt=!1)),!it&&he[0]&32&&(it=!0,Yo.isDateValid=F[5],sn(()=>it=!1)),te.$set(Yo);let jo={};he[0]&8&&(jo.forwardOnly=F[3].forwardOnly),he[0]&32768&&(jo.accesskey=F[15]("x")),!Mo&&he[0]&8&&(Mo=!0,jo.date=F[3].doneDate,sn(()=>Mo=!1)),!oa&&he[0]&64&&(oa=!0,jo.isDateValid=F[6],sn(()=>oa=!1)),pr.$set(jo);let Wo={};he[0]&8&&(Wo.forwardOnly=F[3].forwardOnly),he[0]&32768&&(Wo.accesskey=F[15]("-")),!Ri&&he[0]&8&&(Ri=!0,Wo.date=F[3].cancelledDate,sn(()=>Ri=!1)),!Ro&&he[0]&16&&(Ro=!0,Wo.isDateValid=F[4],sn(()=>Ro=!1)),Un.$set(Wo),(!Yn||he[0]&8192&&ua!==(ua=!F[13]))&&(Fr.disabled=ua)},i(F){Yn||(pn(D.$$.fragment,F),pn(q.$$.fragment,F),pn(ye.$$.fragment,F),pn(C.$$.fragment,F),pn(de),pn(Yt.$$.fragment,F),pn(te.$$.fragment,F),pn(pr.$$.fragment,F),pn(Un.$$.fragment,F),Yn=!0)},o(F){An(D.$$.fragment,F),An(q.$$.fragment,F),An(ye.$$.fragment,F),An(C.$$.fragment,F),An(de),An(Yt.$$.fragment,F),An(te.$$.fragment,F),An(pr.$$.fragment,F),An(Un.$$.fragment,F),Yn=!1},d(F){F&&ve(t),n[30](null),Gs(xt,F),Pn(D),Pn(q),Pn(ye),Pn(C),ne[W].d(),Pn(Yt),Pn(te),Pn(pr),Pn(Un),Xe=!1,Gt(ca)}}}function EU(n,t,e){let r,{task:i}=t,{onSubmit:s}=t,{statusOptions:a}=t,{allTasks:o}=t,{prioritySymbols:l,startDateSymbol:u,scheduledDateSymbol:c,dueDateSymbol:d,cancelledDateSymbol:f,createdDateSymbol:p,doneDateSymbol:b}=Er.tasksPluginEmoji.taskSerializer.symbols,T,_=ro.fromTask(i,o),O=!0,D=!0,A=!0,Y=!0,q=!0,se=!0,H=!0,Z=!0,ye=!0,we=!0,V=!1,K=[{value:"lowest",label:"Lowest",symbol:l.Lowest,accessKey:"o",accessKeyIndex:1},{value:"low",label:"Low",symbol:l.Low,accessKey:"l",accessKeyIndex:0},{value:"none",label:"Normal",symbol:l.None,accessKey:"n",accessKeyIndex:0},{value:"medium",label:"Medium",symbol:l.Medium,accessKey:"m",accessKeyIndex:0},{value:"high",label:"High",symbol:l.High,accessKey:"h",accessKeyIndex:0},{value:"highest",label:"Highest",symbol:l.Highest,accessKey:"i",accessKeyIndex:1}];yy(()=>{let{provideAccessKeys:te}=le();e(11,ye=te),e(14,V=!0),setTimeout(()=>{T.focus()},10)});let C=()=>{s([])},J=te=>{te.key==="Enter"&&!te.isComposing&&(te.preventDefault(),we&&oe())},$=()=>{setTimeout(()=>{e(3,_.description=_.description.replace(/[\r\n]+/g," "),_)},0)},oe=()=>lE(void 0,void 0,void 0,function*(){let te=yield _.applyEdits(i,o);s(te)}),m=[[]];function y(){_.description=this.value,e(3,_)}function v(te){at[te?"unshift":"push"](()=>{T=te,e(12,T)})}function w(){_.priority=this.__value,e(3,_)}function S(te){Z=te,e(10,Z)}function M(te){n.$$.not_equal(_.dueDate,te)&&(_.dueDate=te,e(3,_))}function I(te){q=te,e(7,q)}function j(te){n.$$.not_equal(_.scheduledDate,te)&&(_.scheduledDate=te,e(3,_))}function E(te){se=te,e(8,se)}function P(te){n.$$.not_equal(_.startDate,te)&&(_.startDate=te,e(3,_))}function W(te){H=te,e(9,H)}function de(){_.forwardOnly=this.checked,e(3,_)}function be(te){_=te,e(3,_)}function xe(te){n.$$.not_equal(_.createdDate,te)&&(_.createdDate=te,e(3,_))}function He(te){A=te,e(5,A)}function Le(te){n.$$.not_equal(_.doneDate,te)&&(_.doneDate=te,e(3,_))}function Yt(te){Y=te,e(6,Y)}function fr(te){n.$$.not_equal(_.cancelledDate,te)&&(_.cancelledDate=te,e(3,_))}function wn(te){D=te,e(4,D)}return n.$$set=te=>{"task"in te&&e(0,i=te.task),"onSubmit"in te&&e(27,s=te.onSubmit),"statusOptions"in te&&e(1,a=te.statusOptions),"allTasks"in te&&e(2,o=te.allTasks)},n.$$.update=()=>{if(n.$$.dirty[0]&2048){e:e(15,r=te=>ye?te:null)}if(n.$$.dirty[0]&8){e:e(28,O=_.description.trim()!=="")}if(n.$$.dirty[0]&268437488){e:e(13,we=q&&Z&&se&&H&&O&&D&&A&&Y)}},[i,a,o,_,D,A,Y,q,se,H,Z,ye,T,we,V,r,u,c,d,f,p,b,K,C,J,$,oe,s,O,y,v,w,m,S,M,I,j,E,P,W,de,be,xe,He,Le,Yt,fr,wn]}var Iy=class extends nr{constructor(t){super(),Kr(this,t,EU,SU,zr,{task:0,onSubmit:27,statusOptions:1,allTasks:2},null,[-1,-1])}},JE=Iy;wi();Sr();var zi=class extends eD.Modal{constructor({app:e,task:r,onSubmit:i,allTasks:s}){super(e);this.task=r,this.allTasks=s,this.onSubmit=a=>{a.length&&i(a),this.close()}}onOpen(){this.titleEl.setText("Create or edit Task"),this.modalEl.style.paddingBottom="0";let{contentEl:e}=this;this.contentEl.style.paddingBottom="0";let r=this.getKnownStatusesAndCurrentTaskStatusIfNotKnown();new JE({target:e,props:{task:this.task,statusOptions:r,onSubmit:this.onSubmit,allTasks:this.allTasks}})}getKnownStatusesAndCurrentTaskStatusIfNotKnown(){let e=Be.getInstance().registeredStatuses;return Be.getInstance().bySymbol(this.task.status.symbol)===ge.EMPTY&&e.push(this.task.status),e}onClose(){let{contentEl:e}=this;e.empty()}};Gi();Sr();Kc();Nt();Gi();wi();nn();Mn();ja();ii();function DU(){let{setCreatedDate:n}=le();return n?window.moment():null}function xU(n){let{setCreatedDate:t}=le();if(!t||n.createdDate!==null)return!1;let e=n.description==="",r=!Fe.getInstance().isEmpty(),i=!Fe.getInstance().includedIn(n.description);return e||r&&i}var Sd=({line:n,path:t})=>{var f,p;let e=fe.parseTaskSignifiers(n,Lt.fromUnknownPosition(new mt(t)),Ft.fromPath(t)),r=DU();if(e!==null)return xU(e)?new fe(me(U({},e),{createdDate:r})):e;let i=n.match(ce.nonTaskRegex);if(i===null)return console.error("Tasks: Cannot create task on line:",n),new fe({status:ge.TODO,description:"",taskLocation:Lt.fromUnknownPosition(new mt(t)),indentation:"",listMarker:"-",priority:"3",createdDate:r,startDate:null,scheduledDate:null,dueDate:null,doneDate:null,cancelledDate:null,recurrence:null,onCompletion:"",dependsOn:[],id:"",blockLink:"",tags:[],originalMarkdown:"",scheduledDateIsInferred:!1});let s=i[1],a=(f=i[2])!=null?f:"-",o=(p=i[4])!=null?p:" ",l=Be.getInstance().bySymbolOrCreate(o),u=i[5],c=n.match(ce.blockLinkRegex),d=c!==null?c[0]:"";return d!==""&&(u=u.replace(ce.blockLinkRegex,"")),new fe({status:l,description:u,taskLocation:Lt.fromUnknownPosition(new mt(t)),indentation:s,listMarker:a,blockLink:d,priority:"3",createdDate:r,startDate:null,scheduledDate:null,dueDate:null,doneDate:null,cancelledDate:null,recurrence:null,onCompletion:"",tags:[],originalMarkdown:"",scheduledDateIsInferred:!1,id:"",dependsOn:[]})};var tD=(n,t,e,r,i)=>{var f;if(n)return e instanceof Fy.MarkdownView;if(!(e instanceof Fy.MarkdownView))return;let s=(f=e.file)==null?void 0:f.path;if(s===void 0)return;let o=t.getCursor().line,l=t.getLine(o),u=Sd({line:l,path:s}),c=p=>{let b=Ft.removeInferredStatusIfNeeded(u,p).map(T=>T.toFileLineString()).join(` -`);t.setLine(o,b)};new zi({app:r,task:u,onSubmit:c,allTasks:i}).open()};var Ly=require("obsidian");wi();Nt();ii();var nD=(n,t,e)=>{var l;if(n)return e instanceof Ly.MarkdownView;if(!(e instanceof Ly.MarkdownView))return;let r=(l=e.file)==null?void 0:l.path;if(r===void 0)return;let i=t.getCursor(),s=i.line,a=t.getLine(s),o=Uy(a,r);t.setLine(s,o.text),t.setCursor(OU(i,o))},Uy=(n,t)=>{let e=fe.fromLine({line:n,taskLocation:Lt.fromUnknownPosition(new mt(t)),fallbackDate:null});if(e!==null){let r=e.toggleWithRecurrenceInUsersOrder().map(s=>s.toFileLineString()),i=r.length>0?r.length-1:0;return{text:r.join(` -`),moveTo:{line:i}}}else{let r=n.match(ce.taskRegex);if(r!==null){let i=r[3],a=Be.getInstance().bySymbol(i).nextStatusSymbol;return{text:n.replace(ce.taskRegex,`$1- [${a}] $4`)}}else if(ce.listItemRegex.test(n)){let i=n.replace(ce.listItemRegex,"$1$2 [ ]");return{text:i,moveTo:{ch:i.length}}}else{let i=n.replace(ce.indentationRegex,"$1- ");return{text:i,moveTo:{ch:i.length}}}}},OU=(n,t)=>{var s;let e={line:0,ch:n.ch},r=U(U({},e),(s=t.moveTo)!=null?s:{}),i=t.text.split(` -`)[r.line].length;return{line:n.line+r.line,ch:Math.min(r.ch,i)}};var sb=require("obsidian");nn();var Ki=class{constructor(){this.hidePostponeButton=!1;this.hideTaskCount=!1;this.hideBacklinks=!1;this.hideEditButton=!1;this.hideUrgency=!0;this.hideTree=!0;this.shortMode=!1;this.explainQuery=!1}};function rD(n,t,e){let r=new Map([["backlink","hideBacklinks"],["edit button","hideEditButton"],["postpone button","hidePostponeButton"],["task count","hideTaskCount"],["tree","hideTree"],["urgency","hideUrgency"]]);for(let[i,s]of r.entries())if(t.startsWith(i))return n[s]=e,!0;return!1}Is();function Xs(n,t){let e=`Error: ${n}. +${l}`);return}break}s++}}return i}Nc();ja();Vc();Nt();Jc();Cn();var ro=class{constructor(t){this.addGlobalFilterOnSave=t.addGlobalFilterOnSave,this.originalBlocking=t.originalBlocking,this.description=t.description,this.status=t.status,this.priority=t.priority,this.onCompletion=t.onCompletion,this.recurrenceRule=t.recurrenceRule,this.createdDate=t.createdDate,this.startDate=t.startDate,this.scheduledDate=t.scheduledDate,this.dueDate=t.dueDate,this.doneDate=t.doneDate,this.cancelledDate=t.cancelledDate,this.forwardOnly=t.forwardOnly,this.blockedBy=t.blockedBy,this.blocking=t.blocking}static fromTask(t,e){let r=Fe.getInstance().removeAsWordFrom(t.description),i=r!=t.description||!Fe.getInstance().includedIn(t.description),s="none";t.priority==="5"?s="lowest":t.priority==="4"?s="low":t.priority==="2"?s="medium":t.priority==="1"?s="high":t.priority==="0"&&(s="highest");let a=[];for(let l of t.dependsOn){let u=e.find(c=>c.id===l);!u||a.push(u)}let o=e.filter(l=>l.dependsOn.includes(t.id));return new ro({addGlobalFilterOnSave:i,originalBlocking:o,description:r,status:t.status,priority:s,recurrenceRule:t.recurrence?t.recurrence.toText():"",onCompletion:t.onCompletion,createdDate:t.created.formatAsDate(),startDate:t.start.formatAsDate(),scheduledDate:t.scheduled.formatAsDate(),dueDate:t.due.formatAsDate(),doneDate:t.done.formatAsDate(),cancelledDate:t.cancelled.formatAsDate(),forwardOnly:!0,blockedBy:a,blocking:o})}applyEdits(t,e){return F(this,null,function*(){let r=this.description.trim();this.addGlobalFilterOnSave&&(r=Fe.getInstance().prependTo(r));let i=Os(this.startDate,this.forwardOnly),s=Os(this.scheduledDate,this.forwardOnly),a=Os(this.dueDate,this.forwardOnly),o=Os(this.cancelledDate,this.forwardOnly),l=Os(this.createdDate,this.forwardOnly),u=Os(this.doneDate,this.forwardOnly),c=null;this.recurrenceRule&&(c=Dt.fromText({recurrenceRuleText:this.recurrenceRule,occurrence:new Xn({startDate:i,scheduledDate:s,dueDate:a})}));let d=this.onCompletion,f=[];for(let E of this.blockedBy){let A=yield hU(E,e);f.push(A)}let p=t.id,b=[],T=[];(this.blocking.toString()!==this.originalBlocking.toString()||this.blocking.length!==0)&&(t.id===""&&(p=ru(e.filter(E=>E.id!=="").map(E=>E.id))),b=this.originalBlocking.filter(E=>!this.blocking.includes(E)),T=this.blocking.filter(E=>!this.originalBlocking.includes(E)));let _=new pe(de(U({},t),{description:r,status:t.status,priority:Rn.priorityValue(this.priority),onCompletion:d,recurrence:c,startDate:i,scheduledDate:s,dueDate:a,doneDate:u,createdDate:l,cancelledDate:o,dependsOn:f.map(E=>E.id),id:p}));for(let E of b){let A=OS(E,_);yield Nn({originalTask:E,newTasks:A})}for(let E of T){let A=xS(E,_);yield Nn({originalTask:E,newTasks:A})}let O=this.inferTodaysDate(this.status.type,u,o);return _.handleNewStatusWithRecurrenceInUsersOrder(this.status,O)})}inferTodaysDate(t,e,r){return t==="DONE"&&e!==null?e:t==="CANCELLED"&&r!==null?r:window.moment()}parseAndValidateRecurrence(){var e;if(!this.recurrenceRule)return{parsedRecurrence:"<i>not recurring</>",isRecurrenceValid:!0};let t=(e=Dt.fromText({recurrenceRuleText:this.recurrenceRule,occurrence:new Xn({startDate:null,scheduledDate:null,dueDate:null})}))==null?void 0:e.toText();return t?this.startDate||this.scheduledDate||this.dueDate?{parsedRecurrence:t,isRecurrenceValid:!0}:{parsedRecurrence:"<i>due, scheduled or start date required</i>",isRecurrenceValid:!1}:{parsedRecurrence:"<i>invalid recurrence rule</i>",isRecurrenceValid:!1}}};function hU(n,t){return F(this,null,function*(){if(n.id!=="")return n;let e=t.filter(i=>i.id!==""),r=Zc(n,e.map(i=>i.id));return yield Nn({originalTask:n,newTasks:r}),r})}rn();function gU(n){let t,e=Ut("Recurs",n[2])+"",r,i,s,a,o,l,u,c,d;return{c(){t=ue("label"),r=Ee(),i=ue("input"),s=Ee(),a=ue("code"),o=Ve(n[4]),l=Ee(),u=new Xa(!1),B(t,"for","recurrence"),B(i,"id","recurrence"),B(i,"type","text"),B(i,"class","tasks-modal-date-input"),B(i,"placeholder","Try 'every day when done'"),B(i,"accesskey",n[2]),Si(i,"tasks-modal-error",!n[1]),u.a=null,B(a,"class","tasks-modal-parsed-date")},m(f,p){De(f,t,p),t.innerHTML=e,De(f,r,p),De(f,i,p),fn(i,n[0].recurrenceRule),De(f,s,p),De(f,a,p),z(a,o),z(a,l),u.m(n[3],a),c||(d=je(i,"input",n[5]),c=!0)},p(f,[p]){p&4&&e!==(e=Ut("Recurs",f[2])+"")&&(t.innerHTML=e),p&4&&B(i,"accesskey",f[2]),p&1&&i.value!==f[0].recurrenceRule&&fn(i,f[0].recurrenceRule),p&2&&Si(i,"tasks-modal-error",!f[1]),p&8&&u.p(f[3])},i:tt,o:tt,d(f){f&&ve(t),f&&ve(r),f&&ve(i),f&&ve(s),f&&ve(a),c=!1,d()}}}function yU(n,t,e){let{editableTask:r}=t,{isRecurrenceValid:i}=t,{accesskey:s}=t,a,{recurrenceSymbol:o}=Er.tasksPluginEmoji.taskSerializer.symbols;function l(){r.recurrenceRule=this.value,e(0,r)}return n.$$set=u=>{"editableTask"in u&&e(0,r=u.editableTask),"isRecurrenceValid"in u&&e(1,i=u.isRecurrenceValid),"accesskey"in u&&e(2,s=u.accesskey)},n.$$.update=()=>{if(n.$$.dirty&1){e:e(3,{parsedRecurrence:a,isRecurrenceValid:i}=r.parseAndValidateRecurrence(),a,(e(1,i),e(0,r)))}},[r,i,s,a,o,l]}var Py=class extends rr{constructor(t){super(),Kr(this,t,yU,gU,zr,{editableTask:0,isRecurrenceValid:1,accesskey:2})}},VD=Py;function zD(n,t,e){let r=n.slice();return r[7]=t[e],r}function KD(n){let t,e=n[7].name+"",r,i,s=n[7].symbol+"",a,o,l;return{c(){t=ue("option"),r=Ve(e),i=Ve(" ["),a=Ve(s),o=Ve("]"),t.__value=l=n[7].symbol,t.value=t.__value},m(u,c){De(u,t,c),z(t,r),z(t,i),z(t,a),z(t,o)},p(u,c){c&1&&e!==(e=u[7].name+"")&&ir(r,e),c&1&&s!==(s=u[7].symbol+"")&&ir(a,s),c&1&&l!==(l=u[7].symbol)&&(t.__value=l,t.value=t.__value)},d(u){u&&ve(t)}}}function bU(n){let t,e=Ut("Status",n[1])+"",r,i,s,a,o=n[0],l=[];for(let u=0;u<o.length;u+=1)l[u]=KD(zD(n,o,u));return{c(){t=ue("label"),r=Ee(),i=ue("select");for(let u=0;u<l.length;u+=1)l[u].c();B(t,"for","status"),B(i,"id","status-type"),B(i,"class","status-editor-status-selector"),B(i,"accesskey",n[1]),n[2]===void 0&&Hs(()=>n[6].call(i))},m(u,c){De(u,t,c),t.innerHTML=e,De(u,r,c),De(u,i,c);for(let d=0;d<l.length;d+=1)l[d]&&l[d].m(i,null);gy(i,n[2],!0),s||(a=[je(i,"change",n[6]),je(i,"change",n[3])],s=!0)},p(u,[c]){if(c&2&&e!==(e=Ut("Status",u[1])+"")&&(t.innerHTML=e),c&1){o=u[0];let d;for(d=0;d<o.length;d+=1){let f=zD(u,o,d);l[d]?l[d].p(f,c):(l[d]=KD(f),l[d].c(),l[d].m(i,null))}for(;d<l.length;d+=1)l[d].d(1);l.length=o.length}c&2&&B(i,"accesskey",u[1]),c&5&&gy(i,u[2])},i:tt,o:tt,d(u){u&&ve(t),u&&ve(r),u&&ve(i),Gs(l,u),s=!1,Bt(a)}}}function QD(n,t,e){let r=n==="";return t&&r?e.formatAsDate():!t&&!r?"":n}function TU(n,t,e){let{task:r}=t,{editableTask:i}=t,{statusOptions:s}=t,{accesskey:a}=t,o=r.status.symbol,l=()=>{let c=s.find(f=>f.symbol===o);if(c)e(4,i.status=c,i);else{console.log(`Error in EditTask: cannot find status with symbol ${o}`);return}let d=r.handleNewStatus(c).pop();d&&(e(4,i.doneDate=QD(i.doneDate,c.isCompleted(),d.done),i),e(4,i.cancelledDate=QD(i.cancelledDate,c.isCancelled(),d.cancelled),i))};function u(){o=iD(this),e(2,o),e(0,s)}return n.$$set=c=>{"task"in c&&e(5,r=c.task),"editableTask"in c&&e(4,i=c.editableTask),"statusOptions"in c&&e(0,s=c.statusOptions),"accesskey"in c&&e(1,a=c.accesskey)},[s,a,o,l,i,r,u]}var Ny=class extends rr{constructor(t){super(),Kr(this,t,TU,bU,zr,{task:5,editableTask:4,statusOptions:0,accesskey:1})}},XD=Ny;function ZD(n,t,e){let r=n.slice();return r[49]=t[e].value,r[50]=t[e].label,r[51]=t[e].symbol,r[52]=t[e].accessKey,r[53]=t[e].accessKeyIndex,r}function _U(n){let t,e=n[50]+"",r;return{c(){t=ue("span"),r=Ve(e)},m(i,s){De(i,t,s),z(t,r)},p:tt,d(i){i&&ve(t)}}}function vU(n){let t,e=n[50].substring(0,n[53])+"",r,i,s=n[50].substring(n[53],n[53]+1)+"",a,o,l=n[50].substring(n[53]+1)+"",u;return{c(){t=ue("span"),r=Ve(e),i=ue("span"),a=Ve(s),o=ue("span"),u=Ve(l),B(i,"class","accesskey")},m(c,d){De(c,t,d),z(t,r),De(c,i,d),z(i,a),De(c,o,d),z(o,u)},p:tt,d(c){c&&ve(t),c&&ve(i),c&&ve(o)}}}function wU(n){let t,e=n[51]+"",r;return{c(){t=ue("span"),r=Ve(e)},m(i,s){De(i,t,s),z(t,r)},p:tt,d(i){i&&ve(t)}}}function JD(n){let t,e,r,i,s,a,o,l,u=n[51]&&n[51].charCodeAt(0)>=256,c,d,f,p,b;function T(A,Y){return A[11]?vU:_U}let _=T(n,[-1,-1]),O=_(n),E=u&&wU(n);return f=rD(n[32][0]),{c(){t=ue("div"),e=ue("input"),a=Ee(),o=ue("label"),O.c(),l=Ee(),E&&E.c(),d=Ee(),B(e,"type","radio"),B(e,"id",r="priority-"+n[49]),e.__value=i=n[49],e.value=e.__value,B(e,"accesskey",s=n[15](n[52])),B(o,"for",c="priority-"+n[49]),B(t,"class","task-modal-priority-option-container"),f.p(e)},m(A,Y){De(A,t,Y),z(t,e),e.checked=e.__value===n[3].priority,z(t,a),z(t,o),O.m(o,null),z(o,l),E&&E.m(o,null),z(t,d),p||(b=je(e,"change",n[31]),p=!0)},p(A,Y){Y[0]&32768&&s!==(s=A[15](A[52]))&&B(e,"accesskey",s),Y[0]&8&&(e.checked=e.__value===A[3].priority),_===(_=T(A,Y))&&O?O.p(A,Y):(O.d(1),O=_(A),O&&(O.c(),O.m(o,l))),u&&E.p(A,Y)},d(A){A&&ve(t),O.d(),E&&E.d(),f.r(),p=!1,b()}}}function kU(n){let t;return{c(){t=ue("div"),t.innerHTML="<i>Blocking and blocked by fields are disabled when vault tasks is empty</i>"},m(e,r){De(e,t,r)},p:tt,i:tt,o:tt,d(e){e&&ve(t)}}}function SU(n){let t,e,r,i;return t=new Cy({props:{type:"blockedBy",labelText:"Before this",task:n[0],editableTask:n[3],allTasks:n[2],_onDescriptionKeyDown:n[24],accesskey:n[15]("b"),placeholder:"Search for tasks that the task being edited depends on..."}}),r=new Cy({props:{type:"blocking",labelText:"After this",task:n[0],editableTask:n[3],allTasks:n[2],_onDescriptionKeyDown:n[24],accesskey:n[15]("e"),placeholder:"Search for tasks that depend on this task being done..."}}),{c(){Or(t.$$.fragment),e=Ee(),Or(r.$$.fragment)},m(s,a){sr(t,s,a),De(s,e,a),sr(r,s,a),i=!0},p(s,a){let o={};a[0]&1&&(o.task=s[0]),a[0]&8&&(o.editableTask=s[3]),a[0]&4&&(o.allTasks=s[2]),a[0]&32768&&(o.accesskey=s[15]("b")),t.$set(o);let l={};a[0]&1&&(l.task=s[0]),a[0]&8&&(l.editableTask=s[3]),a[0]&4&&(l.allTasks=s[2]),a[0]&32768&&(l.accesskey=s[15]("e")),r.$set(l)},i(s){i||(pn(t.$$.fragment,s),pn(r.$$.fragment,s),i=!0)},o(s){An(t.$$.fragment,s),An(r.$$.fragment,s),i=!1},d(s){Pn(t,s),s&&ve(e),Pn(r,s)}}}function DU(n){let t,e,r,i=Ut("Description",n[15]("t"))+"",s,a,o,l,u,c,d,f,p,b,T,_,O,E,A,Y,q,se,H,Z,ye,we,V,K,C,J,$,oe,m,y,v=Ut("Only future dates:",n[15]("f"))+"",w,S,M,I,j,D,P,W,ce,be,Oe,He,Le,Yt,pr,vn,te,jt,it,us,mr,Mo,oa,la,Yn,Ri,Ro,Ao,Ai,Fr,Au,ua,Po,cs,jn,Xe,ca,Lr=n[22],xt=[];for(let L=0;L<Lr.length;L+=1)xt[L]=JD(ZD(n,Lr,L));function da(L){n[33](L)}let fa={editableTask:n[3],accesskey:n[15]("r")};n[10]!==void 0&&(fa.isRecurrenceValid=n[10]),E=new VD({props:fa}),ot.push(()=>on(E,"isRecurrenceValid",da));function hr(L){n[34](L)}function Cf(L){n[35](L)}let No={id:"due",dateSymbol:n[18],forwardOnly:n[3].forwardOnly,accesskey:n[15]("d")};n[3].dueDate!==void 0&&(No.date=n[3].dueDate),n[7]!==void 0&&(No.isDateValid=n[7]),q=new Bs({props:No}),ot.push(()=>on(q,"date",hr)),ot.push(()=>on(q,"isDateValid",Cf));function h(L){n[36](L)}function g(L){n[37](L)}let k={id:"scheduled",dateSymbol:n[17],forwardOnly:n[3].forwardOnly,accesskey:n[15]("s")};n[3].scheduledDate!==void 0&&(k.date=n[3].scheduledDate),n[8]!==void 0&&(k.isDateValid=n[8]),ye=new Bs({props:k}),ot.push(()=>on(ye,"date",h)),ot.push(()=>on(ye,"isDateValid",g));function R(L){n[38](L)}function G(L){n[39](L)}let X={id:"start",dateSymbol:n[16],forwardOnly:n[3].forwardOnly,accesskey:n[15]("a")};n[3].startDate!==void 0&&(X.date=n[3].startDate),n[9]!==void 0&&(X.isDateValid=n[9]),C=new Bs({props:X}),ot.push(()=>on(C,"date",R)),ot.push(()=>on(C,"isDateValid",G));let _e=[SU,kU],ne=[];function Ce(L,he){return L[2].length>0&&L[14]?0:1}W=Ce(n,[-1,-1]),ce=ne[W]=_e[W](n);function ie(L){n[41](L)}let me={task:n[0],statusOptions:n[1],accesskey:n[15]("u")};n[3]!==void 0&&(me.editableTask=n[3]),Yt=new XD({props:me}),ot.push(()=>on(Yt,"editableTask",ie));function ze(L){n[42](L)}function Wn(L){n[43](L)}let Ot={id:"created",dateSymbol:n[20],forwardOnly:n[3].forwardOnly,accesskey:n[15]("c")};n[3].createdDate!==void 0&&(Ot.date=n[3].createdDate),n[5]!==void 0&&(Ot.isDateValid=n[5]),te=new Bs({props:Ot}),ot.push(()=>on(te,"date",ze)),ot.push(()=>on(te,"isDateValid",Wn));function ds(L){n[44](L)}function Pi(L){n[45](L)}let Io={id:"done",dateSymbol:n[21],forwardOnly:n[3].forwardOnly,accesskey:n[15]("x")};n[3].doneDate!==void 0&&(Io.date=n[3].doneDate),n[6]!==void 0&&(Io.isDateValid=n[6]),mr=new Bs({props:Io}),ot.push(()=>on(mr,"date",ds)),ot.push(()=>on(mr,"isDateValid",Pi));function Fo(L){n[46](L)}function Mf(L){n[47](L)}let Lo={id:"cancelled",dateSymbol:n[19],forwardOnly:n[3].forwardOnly,accesskey:n[15]("-")};return n[3].cancelledDate!==void 0&&(Lo.date=n[3].cancelledDate),n[4]!==void 0&&(Lo.isDateValid=n[4]),Yn=new Bs({props:Lo}),ot.push(()=>on(Yn,"date",Fo)),ot.push(()=>on(Yn,"isDateValid",Mf)),{c(){t=ue("form"),e=ue("section"),r=ue("label"),s=Ee(),a=ue("textarea"),l=Ee(),u=ue("section"),c=ue("label"),d=Ve("Priority"),p=Ee();for(let L=0;L<xt.length;L+=1)xt[L].c();b=Ee(),T=ue("hr"),_=Ee(),O=ue("section"),Or(E.$$.fragment),Y=Ee(),Or(q.$$.fragment),Z=Ee(),Or(ye.$$.fragment),K=Ee(),Or(C.$$.fragment),oe=Ee(),m=ue("div"),y=ue("label"),w=Ee(),S=ue("input"),I=Ee(),j=ue("hr"),D=Ee(),P=ue("section"),ce.c(),be=Ee(),Oe=ue("hr"),He=Ee(),Le=ue("section"),Or(Yt.$$.fragment),vn=Ee(),Or(te.$$.fragment),us=Ee(),Or(mr.$$.fragment),la=Ee(),Or(Yn.$$.fragment),Ao=Ee(),Ai=ue("section"),Fr=ue("button"),Au=Ve("Apply"),Po=Ee(),cs=ue("button"),cs.textContent="Cancel",B(r,"for","description"),B(a,"id","description"),B(a,"class","tasks-modal-description"),B(a,"placeholder","Take out the trash"),B(a,"accesskey",o=n[15]("t")),B(e,"class","tasks-modal-description-section"),B(c,"for",f="priority-"+n[3].priority),B(u,"class","tasks-modal-priority-section"),B(y,"for","forwardOnly"),B(S,"id","forwardOnly"),B(S,"type","checkbox"),B(S,"class","task-list-item-checkbox tasks-modal-checkbox"),B(S,"accesskey",M=n[15]("f")),B(m,"class","future-dates-only"),B(O,"class","tasks-modal-dates-section"),B(P,"class","tasks-modal-dependencies-section"),B(Le,"class","tasks-modal-dates-section"),Fr.disabled=ua=!n[13],B(Fr,"type","submit"),B(Fr,"class","mod-cta"),B(cs,"type","button"),B(Ai,"class","tasks-modal-button-section"),B(t,"class","tasks-modal")},m(L,he){De(L,t,he),z(t,e),z(e,r),r.innerHTML=i,z(e,s),z(e,a),fn(a,n[3].description),n[30](a),z(t,l),z(t,u),z(u,c),z(c,d),z(u,p);for(let gr=0;gr<xt.length;gr+=1)xt[gr]&&xt[gr].m(u,null);z(t,b),z(t,T),z(t,_),z(t,O),sr(E,O,null),z(O,Y),sr(q,O,null),z(O,Z),sr(ye,O,null),z(O,K),sr(C,O,null),z(O,oe),z(O,m),z(m,y),y.innerHTML=v,z(m,w),z(m,S),S.checked=n[3].forwardOnly,z(t,I),z(t,j),z(t,D),z(t,P),ne[W].m(P,null),z(t,be),z(t,Oe),z(t,He),z(t,Le),sr(Yt,Le,null),z(Le,vn),sr(te,Le,null),z(Le,us),sr(mr,Le,null),z(Le,la),sr(Yn,Le,null),z(t,Ao),z(t,Ai),z(Ai,Fr),z(Fr,Au),z(Ai,Po),z(Ai,cs),jn=!0,Xe||(ca=[je(a,"input",n[29]),je(a,"keydown",n[24]),je(a,"paste",n[25]),je(a,"drop",n[25]),je(S,"change",n[40]),je(cs,"click",n[23]),je(t,"submit",nD(n[26]))],Xe=!0)},p(L,he){if((!jn||he[0]&32768)&&i!==(i=Ut("Description",L[15]("t"))+"")&&(r.innerHTML=i),(!jn||he[0]&32768&&o!==(o=L[15]("t")))&&B(a,"accesskey",o),he[0]&8&&fn(a,L[3].description),(!jn||he[0]&8&&f!==(f="priority-"+L[3].priority))&&B(c,"for",f),he[0]&4229128){Lr=L[22];let $n;for($n=0;$n<Lr.length;$n+=1){let Tb=ZD(L,Lr,$n);xt[$n]?xt[$n].p(Tb,he):(xt[$n]=JD(Tb),xt[$n].c(),xt[$n].m(u,null))}for(;$n<xt.length;$n+=1)xt[$n].d(1);xt.length=Lr.length}let gr={};he[0]&8&&(gr.editableTask=L[3]),he[0]&32768&&(gr.accesskey=L[15]("r")),!A&&he[0]&1024&&(A=!0,gr.isRecurrenceValid=L[10],an(()=>A=!1)),E.$set(gr);let fs={};he[0]&8&&(fs.forwardOnly=L[3].forwardOnly),he[0]&32768&&(fs.accesskey=L[15]("d")),!se&&he[0]&8&&(se=!0,fs.date=L[3].dueDate,an(()=>se=!1)),!H&&he[0]&128&&(H=!0,fs.isDateValid=L[7],an(()=>H=!1)),q.$set(fs);let ps={};he[0]&8&&(ps.forwardOnly=L[3].forwardOnly),he[0]&32768&&(ps.accesskey=L[15]("s")),!we&&he[0]&8&&(we=!0,ps.date=L[3].scheduledDate,an(()=>we=!1)),!V&&he[0]&256&&(V=!0,ps.isDateValid=L[8],an(()=>V=!1)),ye.$set(ps);let ms={};he[0]&8&&(ms.forwardOnly=L[3].forwardOnly),he[0]&32768&&(ms.accesskey=L[15]("a")),!J&&he[0]&8&&(J=!0,ms.date=L[3].startDate,an(()=>J=!1)),!$&&he[0]&512&&($=!0,ms.isDateValid=L[9],an(()=>$=!1)),C.$set(ms),(!jn||he[0]&32768)&&v!==(v=Ut("Only future dates:",L[15]("f"))+"")&&(y.innerHTML=v),(!jn||he[0]&32768&&M!==(M=L[15]("f")))&&B(S,"accesskey",M),he[0]&8&&(S.checked=L[3].forwardOnly);let Rf=W;W=Ce(L,he),W===Rf?ne[W].p(L,he):(oD(),An(ne[Rf],1,1,()=>{ne[Rf]=null}),lD(),ce=ne[W],ce?ce.p(L,he):(ce=ne[W]=_e[W](L),ce.c()),pn(ce,1),ce.m(P,null));let Uo={};he[0]&1&&(Uo.task=L[0]),he[0]&2&&(Uo.statusOptions=L[1]),he[0]&32768&&(Uo.accesskey=L[15]("u")),!pr&&he[0]&8&&(pr=!0,Uo.editableTask=L[3],an(()=>pr=!1)),Yt.$set(Uo);let Yo={};he[0]&8&&(Yo.forwardOnly=L[3].forwardOnly),he[0]&32768&&(Yo.accesskey=L[15]("c")),!jt&&he[0]&8&&(jt=!0,Yo.date=L[3].createdDate,an(()=>jt=!1)),!it&&he[0]&32&&(it=!0,Yo.isDateValid=L[5],an(()=>it=!1)),te.$set(Yo);let jo={};he[0]&8&&(jo.forwardOnly=L[3].forwardOnly),he[0]&32768&&(jo.accesskey=L[15]("x")),!Mo&&he[0]&8&&(Mo=!0,jo.date=L[3].doneDate,an(()=>Mo=!1)),!oa&&he[0]&64&&(oa=!0,jo.isDateValid=L[6],an(()=>oa=!1)),mr.$set(jo);let Wo={};he[0]&8&&(Wo.forwardOnly=L[3].forwardOnly),he[0]&32768&&(Wo.accesskey=L[15]("-")),!Ri&&he[0]&8&&(Ri=!0,Wo.date=L[3].cancelledDate,an(()=>Ri=!1)),!Ro&&he[0]&16&&(Ro=!0,Wo.isDateValid=L[4],an(()=>Ro=!1)),Yn.$set(Wo),(!jn||he[0]&8192&&ua!==(ua=!L[13]))&&(Fr.disabled=ua)},i(L){jn||(pn(E.$$.fragment,L),pn(q.$$.fragment,L),pn(ye.$$.fragment,L),pn(C.$$.fragment,L),pn(ce),pn(Yt.$$.fragment,L),pn(te.$$.fragment,L),pn(mr.$$.fragment,L),pn(Yn.$$.fragment,L),jn=!0)},o(L){An(E.$$.fragment,L),An(q.$$.fragment,L),An(ye.$$.fragment,L),An(C.$$.fragment,L),An(ce),An(Yt.$$.fragment,L),An(te.$$.fragment,L),An(mr.$$.fragment,L),An(Yn.$$.fragment,L),jn=!1},d(L){L&&ve(t),n[30](null),Gs(xt,L),Pn(E),Pn(q),Pn(ye),Pn(C),ne[W].d(),Pn(Yt),Pn(te),Pn(mr),Pn(Yn),Xe=!1,Bt(ca)}}}function EU(n,t,e){let r,{task:i}=t,{onSubmit:s}=t,{statusOptions:a}=t,{allTasks:o}=t,{prioritySymbols:l,startDateSymbol:u,scheduledDateSymbol:c,dueDateSymbol:d,cancelledDateSymbol:f,createdDateSymbol:p,doneDateSymbol:b}=Er.tasksPluginEmoji.taskSerializer.symbols,T,_=ro.fromTask(i,o),O=!0,E=!0,A=!0,Y=!0,q=!0,se=!0,H=!0,Z=!0,ye=!0,we=!0,V=!1,K=[{value:"lowest",label:"Lowest",symbol:l.Lowest,accessKey:"o",accessKeyIndex:1},{value:"low",label:"Low",symbol:l.Low,accessKey:"l",accessKeyIndex:0},{value:"none",label:"Normal",symbol:l.None,accessKey:"n",accessKeyIndex:0},{value:"medium",label:"Medium",symbol:l.Medium,accessKey:"m",accessKeyIndex:0},{value:"high",label:"High",symbol:l.High,accessKey:"h",accessKeyIndex:0},{value:"highest",label:"Highest",symbol:l.Highest,accessKey:"i",accessKeyIndex:1}];yy(()=>{let{provideAccessKeys:te}=le();e(11,ye=te),e(14,V=!0),setTimeout(()=>{T.focus()},10)});let C=()=>{s([])},J=te=>{te.key==="Enter"&&!te.isComposing&&(te.preventDefault(),we&&oe())},$=()=>{setTimeout(()=>{e(3,_.description=_.description.replace(/[\r\n]+/g," "),_)},0)},oe=()=>uD(void 0,void 0,void 0,function*(){let te=yield _.applyEdits(i,o);s(te)}),m=[[]];function y(){_.description=this.value,e(3,_)}function v(te){ot[te?"unshift":"push"](()=>{T=te,e(12,T)})}function w(){_.priority=this.__value,e(3,_)}function S(te){Z=te,e(10,Z)}function M(te){n.$$.not_equal(_.dueDate,te)&&(_.dueDate=te,e(3,_))}function I(te){q=te,e(7,q)}function j(te){n.$$.not_equal(_.scheduledDate,te)&&(_.scheduledDate=te,e(3,_))}function D(te){se=te,e(8,se)}function P(te){n.$$.not_equal(_.startDate,te)&&(_.startDate=te,e(3,_))}function W(te){H=te,e(9,H)}function ce(){_.forwardOnly=this.checked,e(3,_)}function be(te){_=te,e(3,_)}function Oe(te){n.$$.not_equal(_.createdDate,te)&&(_.createdDate=te,e(3,_))}function He(te){A=te,e(5,A)}function Le(te){n.$$.not_equal(_.doneDate,te)&&(_.doneDate=te,e(3,_))}function Yt(te){Y=te,e(6,Y)}function pr(te){n.$$.not_equal(_.cancelledDate,te)&&(_.cancelledDate=te,e(3,_))}function vn(te){E=te,e(4,E)}return n.$$set=te=>{"task"in te&&e(0,i=te.task),"onSubmit"in te&&e(27,s=te.onSubmit),"statusOptions"in te&&e(1,a=te.statusOptions),"allTasks"in te&&e(2,o=te.allTasks)},n.$$.update=()=>{if(n.$$.dirty[0]&2048){e:e(15,r=te=>ye?te:null)}if(n.$$.dirty[0]&8){e:e(28,O=_.description.trim()!=="")}if(n.$$.dirty[0]&268437488){e:e(13,we=q&&Z&&se&&H&&O&&E&&A&&Y)}},[i,a,o,_,E,A,Y,q,se,H,Z,ye,T,we,V,r,u,c,d,f,p,b,K,C,J,$,oe,s,O,y,v,w,m,S,M,I,j,D,P,W,ce,be,Oe,He,Le,Yt,pr,vn]}var Iy=class extends rr{constructor(t){super(),Kr(this,t,EU,DU,zr,{task:0,onSubmit:27,statusOptions:1,allTasks:2},null,[-1,-1])}},eE=Iy;wi();Dr();var zi=class extends tE.Modal{constructor({app:e,task:r,onSubmit:i,allTasks:s}){super(e);this.task=r,this.allTasks=s,this.onSubmit=a=>{a.length&&i(a),this.close()}}onOpen(){this.titleEl.setText("Create or edit Task"),this.modalEl.style.paddingBottom="0";let{contentEl:e}=this;this.contentEl.style.paddingBottom="0";let r=this.getKnownStatusesAndCurrentTaskStatusIfNotKnown();new eE({target:e,props:{task:this.task,statusOptions:r,onSubmit:this.onSubmit,allTasks:this.allTasks}})}getKnownStatusesAndCurrentTaskStatusIfNotKnown(){let e=Be.getInstance().registeredStatuses;return Be.getInstance().bySymbol(this.task.status.symbol)===ge.EMPTY&&e.push(this.task.status),e}onClose(){let{contentEl:e}=this;e.empty()}};Gi();Dr();Kc();Nt();Gi();wi();rn();Mn();ja();ii();function xU(){let{setCreatedDate:n}=le();return n?window.moment():null}function OU(n){let{setCreatedDate:t}=le();if(!t||n.createdDate!==null)return!1;let e=n.description==="",r=!Fe.getInstance().isEmpty(),i=!Fe.getInstance().includedIn(n.description);return e||r&&i}var Sd=({line:n,path:t})=>{var f,p;let e=pe.parseTaskSignifiers(n,Lt.fromUnknownPosition(new mt(t)),Ft.fromPath(t)),r=xU();if(e!==null)return OU(e)?new pe(de(U({},e),{createdDate:r})):e;let i=n.match(fe.nonTaskRegex);if(i===null)return console.error("Tasks: Cannot create task on line:",n),new pe({status:ge.TODO,description:"",taskLocation:Lt.fromUnknownPosition(new mt(t)),indentation:"",listMarker:"-",priority:"3",createdDate:r,startDate:null,scheduledDate:null,dueDate:null,doneDate:null,cancelledDate:null,recurrence:null,onCompletion:"",dependsOn:[],id:"",blockLink:"",tags:[],originalMarkdown:"",scheduledDateIsInferred:!1});let s=i[1],a=(f=i[2])!=null?f:"-",o=(p=i[4])!=null?p:" ",l=Be.getInstance().bySymbolOrCreate(o),u=i[5],c=n.match(fe.blockLinkRegex),d=c!==null?c[0]:"";return d!==""&&(u=u.replace(fe.blockLinkRegex,"")),new pe({status:l,description:u,taskLocation:Lt.fromUnknownPosition(new mt(t)),indentation:s,listMarker:a,blockLink:d,priority:"3",createdDate:r,startDate:null,scheduledDate:null,dueDate:null,doneDate:null,cancelledDate:null,recurrence:null,onCompletion:"",tags:[],originalMarkdown:"",scheduledDateIsInferred:!1,id:"",dependsOn:[]})};var nE=(n,t,e,r,i)=>{var f;if(n)return e instanceof Fy.MarkdownView;if(!(e instanceof Fy.MarkdownView))return;let s=(f=e.file)==null?void 0:f.path;if(s===void 0)return;let o=t.getCursor().line,l=t.getLine(o),u=Sd({line:l,path:s}),c=p=>{let b=Ft.removeInferredStatusIfNeeded(u,p).map(T=>T.toFileLineString()).join(` +`);t.setLine(o,b)};new zi({app:r,task:u,onSubmit:c,allTasks:i}).open()};var Ly=require("obsidian");wi();Nt();ii();var rE=(n,t,e)=>{var c;if(n)return e instanceof Ly.MarkdownView;if(!(e instanceof Ly.MarkdownView))return;let r=(c=e.file)==null?void 0:c.path;if(r===void 0)return;let i=t.getCursor(),s=i.line,a=t.getLine(s),o=Uy(a,r),l=o.text.length>0,u=s>=t.lineCount()-1;if(l||u)t.setLine(s,o.text);else{let d={line:s,ch:0},f={line:s+1,ch:0};t.replaceRange("",d,f)}t.setCursor(CU(i,o))},Uy=(n,t)=>{let e=pe.fromLine({line:n,taskLocation:Lt.fromUnknownPosition(new mt(t)),fallbackDate:null});if(e!==null){let r=e.toggleWithRecurrenceInUsersOrder().map(s=>s.toFileLineString()),i=r.length>0?r.length-1:0;return{text:r.join(` +`),moveTo:{line:i}}}else{let r=n.match(fe.taskRegex);if(r!==null){let i=r[3],a=Be.getInstance().bySymbol(i).nextStatusSymbol;return{text:n.replace(fe.taskRegex,`$1- [${a}] $4`)}}else if(fe.listItemRegex.test(n)){let i=n.replace(fe.listItemRegex,"$1$2 [ ]");return{text:i,moveTo:{ch:i.length}}}else{let i=n.replace(fe.indentationRegex,"$1- ");return{text:i,moveTo:{ch:i.length}}}}},CU=(n,t)=>{var s;let e={line:0,ch:n.ch},r=U(U({},e),(s=t.moveTo)!=null?s:{}),i=t.text.split(` +`)[r.line].length;return{line:n.line+r.line,ch:Math.min(r.ch,i)}};var sb=require("obsidian");rn();var Ki=class{constructor(){this.hidePostponeButton=!1;this.hideTaskCount=!1;this.hideBacklinks=!1;this.hideEditButton=!1;this.hideUrgency=!0;this.hideTree=!0;this.shortMode=!1;this.explainQuery=!1}};function iE(n,t,e){let r=new Map([["backlink","hideBacklinks"],["edit button","hideEditButton"],["postpone button","hidePostponeButton"],["task count","hideTaskCount"],["tree","hideTree"],["urgency","hideUrgency"]]);for(let[i,s]of r.entries())if(t.startsWith(i))return n[s]=e,!0;return!1}Is();function Xs(n,t){let e=`Error: ${n}. The error message was: - `,r="";return t instanceof Error?r+=t:r+="Unknown error",`${e}"${r}"`}Ws();var CU=Object.prototype.toString,so=Array.isArray||function(t){return CU.call(t)==="[object Array]"};function jy(n){return typeof n=="function"}function MU(n){return so(n)?"array":typeof n}function Yy(n){return n.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function iD(n,t){return n!=null&&typeof n=="object"&&t in n}function RU(n,t){return n!=null&&typeof n!="object"&&n.hasOwnProperty&&n.hasOwnProperty(t)}var AU=RegExp.prototype.test;function PU(n,t){return AU.call(n,t)}var NU=/\S/;function IU(n){return!PU(NU,n)}var FU={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function LU(n){return String(n).replace(/[&<>"'`=\/]/g,function(e){return FU[e]})}var UU=/\s*/,YU=/\s+/,sD=/\s*=/,jU=/\s*\}/,WU=/#|\^|\/|>|\{|&|=|!/;function $U(n,t){if(!n)return[];var e=!1,r=[],i=[],s=[],a=!1,o=!1,l="",u=0;function c(){if(a&&!o)for(;s.length;)delete i[s.pop()];else s=[];a=!1,o=!1}var d,f,p;function b(Z){if(typeof Z=="string"&&(Z=Z.split(YU,2)),!so(Z)||Z.length!==2)throw new Error("Invalid tags: "+Z);d=new RegExp(Yy(Z[0])+"\\s*"),f=new RegExp("\\s*"+Yy(Z[1])),p=new RegExp("\\s*"+Yy("}"+Z[1]))}b(t||or.tags);for(var T=new bu(n),_,O,D,A,Y,q;!T.eos();){if(_=T.pos,D=T.scanUntil(d),D)for(var se=0,H=D.length;se<H;++se)A=D.charAt(se),IU(A)?(s.push(i.length),l+=A):(o=!0,e=!0,l+=" "),i.push(["text",A,_,_+1]),_+=1,A===` -`&&(c(),l="",u=0,e=!1);if(!T.scan(d))break;if(a=!0,O=T.scan(WU)||"name",T.scan(UU),O==="="?(D=T.scanUntil(sD),T.scan(sD),T.scanUntil(f)):O==="{"?(D=T.scanUntil(p),T.scan(jU),T.scanUntil(f),O="&"):D=T.scanUntil(f),!T.scan(f))throw new Error("Unclosed tag at "+T.pos);if(O==">"?Y=[O,D,_,T.pos,l,u,e]:Y=[O,D,_,T.pos],u++,i.push(Y),O==="#"||O==="^")r.push(Y);else if(O==="/"){if(q=r.pop(),!q)throw new Error('Unopened section "'+D+'" at '+_);if(q[1]!==D)throw new Error('Unclosed section "'+q[1]+'" at '+_)}else O==="name"||O==="{"||O==="&"?o=!0:O==="="&&b(D)}if(c(),q=r.pop(),q)throw new Error('Unclosed section "'+q[1]+'" at '+T.pos);return HU(qU(i))}function qU(n){for(var t=[],e,r,i=0,s=n.length;i<s;++i)e=n[i],e&&(e[0]==="text"&&r&&r[0]==="text"?(r[1]+=e[1],r[3]=e[3]):(t.push(e),r=e));return t}function HU(n){for(var t=[],e=t,r=[],i,s,a=0,o=n.length;a<o;++a)switch(i=n[a],i[0]){case"#":case"^":e.push(i),r.push(i),e=i[4]=[];break;case"/":s=r.pop(),s[5]=i[2],e=r.length>0?r[r.length-1][4]:t;break;default:e.push(i)}return t}function bu(n){this.string=n,this.tail=n,this.pos=0}bu.prototype.eos=function(){return this.tail===""};bu.prototype.scan=function(t){var e=this.tail.match(t);if(!e||e.index!==0)return"";var r=e[0];return this.tail=this.tail.substring(r.length),this.pos+=r.length,r};bu.prototype.scanUntil=function(t){var e=this.tail.search(t),r;switch(e){case-1:r=this.tail,this.tail="";break;case 0:r="";break;default:r=this.tail.substring(0,e),this.tail=this.tail.substring(e)}return this.pos+=r.length,r};function io(n,t){this.view=n,this.cache={".":this.view},this.parent=t}io.prototype.push=function(t){return new io(t,this)};io.prototype.lookup=function(t){var e=this.cache,r;if(e.hasOwnProperty(t))r=e[t];else{for(var i=this,s,a,o,l=!1;i;){if(t.indexOf(".")>0)for(s=i.view,a=t.split("."),o=0;s!=null&&o<a.length;)o===a.length-1&&(l=iD(s,a[o])||RU(s,a[o])),s=s[a[o++]];else s=i.view[t],l=iD(i.view,t);if(l){r=s;break}i=i.parent}e[t]=r}return jy(r)&&(r=r.call(this.view)),r};function on(){this.templateCache={_cache:{},set:function(t,e){this._cache[t]=e},get:function(t){return this._cache[t]},clear:function(){this._cache={}}}}on.prototype.clearCache=function(){typeof this.templateCache!="undefined"&&this.templateCache.clear()};on.prototype.parse=function(t,e){var r=this.templateCache,i=t+":"+(e||or.tags).join(":"),s=typeof r!="undefined",a=s?r.get(i):void 0;return a==null&&(a=$U(t,e),s&&r.set(i,a)),a};on.prototype.render=function(t,e,r,i){var s=this.getConfigTags(i),a=this.parse(t,s),o=e instanceof io?e:new io(e,void 0);return this.renderTokens(a,o,r,t,i)};on.prototype.renderTokens=function(t,e,r,i,s){for(var a="",o,l,u,c=0,d=t.length;c<d;++c)u=void 0,o=t[c],l=o[0],l==="#"?u=this.renderSection(o,e,r,i,s):l==="^"?u=this.renderInverted(o,e,r,i,s):l===">"?u=this.renderPartial(o,e,r,s):l==="&"?u=this.unescapedValue(o,e):l==="name"?u=this.escapedValue(o,e,s):l==="text"&&(u=this.rawValue(o)),u!==void 0&&(a+=u);return a};on.prototype.renderSection=function(t,e,r,i,s){var a=this,o="",l=e.lookup(t[1]);function u(f){return a.render(f,e,r,s)}if(!!l){if(so(l))for(var c=0,d=l.length;c<d;++c)o+=this.renderTokens(t[4],e.push(l[c]),r,i,s);else if(typeof l=="object"||typeof l=="string"||typeof l=="number")o+=this.renderTokens(t[4],e.push(l),r,i,s);else if(jy(l)){if(typeof i!="string")throw new Error("Cannot use higher-order sections without the original template");l=l.call(e.view,i.slice(t[3],t[5]),u),l!=null&&(o+=l)}else o+=this.renderTokens(t[4],e,r,i,s);return o}};on.prototype.renderInverted=function(t,e,r,i,s){var a=e.lookup(t[1]);if(!a||so(a)&&a.length===0)return this.renderTokens(t[4],e,r,i,s)};on.prototype.indentPartial=function(t,e,r){for(var i=e.replace(/[^ \t]/g,""),s=t.split(` + `,r="";return t instanceof Error?r+=t:r+="Unknown error",`${e}"${r}"`}Ws();var MU=Object.prototype.toString,so=Array.isArray||function(t){return MU.call(t)==="[object Array]"};function jy(n){return typeof n=="function"}function RU(n){return so(n)?"array":typeof n}function Yy(n){return n.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function sE(n,t){return n!=null&&typeof n=="object"&&t in n}function AU(n,t){return n!=null&&typeof n!="object"&&n.hasOwnProperty&&n.hasOwnProperty(t)}var PU=RegExp.prototype.test;function NU(n,t){return PU.call(n,t)}var IU=/\S/;function FU(n){return!NU(IU,n)}var LU={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function UU(n){return String(n).replace(/[&<>"'`=\/]/g,function(e){return LU[e]})}var YU=/\s*/,jU=/\s+/,aE=/\s*=/,WU=/\s*\}/,$U=/#|\^|\/|>|\{|&|=|!/;function qU(n,t){if(!n)return[];var e=!1,r=[],i=[],s=[],a=!1,o=!1,l="",u=0;function c(){if(a&&!o)for(;s.length;)delete i[s.pop()];else s=[];a=!1,o=!1}var d,f,p;function b(Z){if(typeof Z=="string"&&(Z=Z.split(jU,2)),!so(Z)||Z.length!==2)throw new Error("Invalid tags: "+Z);d=new RegExp(Yy(Z[0])+"\\s*"),f=new RegExp("\\s*"+Yy(Z[1])),p=new RegExp("\\s*"+Yy("}"+Z[1]))}b(t||lr.tags);for(var T=new bu(n),_,O,E,A,Y,q;!T.eos();){if(_=T.pos,E=T.scanUntil(d),E)for(var se=0,H=E.length;se<H;++se)A=E.charAt(se),FU(A)?(s.push(i.length),l+=A):(o=!0,e=!0,l+=" "),i.push(["text",A,_,_+1]),_+=1,A===` +`&&(c(),l="",u=0,e=!1);if(!T.scan(d))break;if(a=!0,O=T.scan($U)||"name",T.scan(YU),O==="="?(E=T.scanUntil(aE),T.scan(aE),T.scanUntil(f)):O==="{"?(E=T.scanUntil(p),T.scan(WU),T.scanUntil(f),O="&"):E=T.scanUntil(f),!T.scan(f))throw new Error("Unclosed tag at "+T.pos);if(O==">"?Y=[O,E,_,T.pos,l,u,e]:Y=[O,E,_,T.pos],u++,i.push(Y),O==="#"||O==="^")r.push(Y);else if(O==="/"){if(q=r.pop(),!q)throw new Error('Unopened section "'+E+'" at '+_);if(q[1]!==E)throw new Error('Unclosed section "'+q[1]+'" at '+_)}else O==="name"||O==="{"||O==="&"?o=!0:O==="="&&b(E)}if(c(),q=r.pop(),q)throw new Error('Unclosed section "'+q[1]+'" at '+T.pos);return GU(HU(i))}function HU(n){for(var t=[],e,r,i=0,s=n.length;i<s;++i)e=n[i],e&&(e[0]==="text"&&r&&r[0]==="text"?(r[1]+=e[1],r[3]=e[3]):(t.push(e),r=e));return t}function GU(n){for(var t=[],e=t,r=[],i,s,a=0,o=n.length;a<o;++a)switch(i=n[a],i[0]){case"#":case"^":e.push(i),r.push(i),e=i[4]=[];break;case"/":s=r.pop(),s[5]=i[2],e=r.length>0?r[r.length-1][4]:t;break;default:e.push(i)}return t}function bu(n){this.string=n,this.tail=n,this.pos=0}bu.prototype.eos=function(){return this.tail===""};bu.prototype.scan=function(t){var e=this.tail.match(t);if(!e||e.index!==0)return"";var r=e[0];return this.tail=this.tail.substring(r.length),this.pos+=r.length,r};bu.prototype.scanUntil=function(t){var e=this.tail.search(t),r;switch(e){case-1:r=this.tail,this.tail="";break;case 0:r="";break;default:r=this.tail.substring(0,e),this.tail=this.tail.substring(e)}return this.pos+=r.length,r};function io(n,t){this.view=n,this.cache={".":this.view},this.parent=t}io.prototype.push=function(t){return new io(t,this)};io.prototype.lookup=function(t){var e=this.cache,r;if(e.hasOwnProperty(t))r=e[t];else{for(var i=this,s,a,o,l=!1;i;){if(t.indexOf(".")>0)for(s=i.view,a=t.split("."),o=0;s!=null&&o<a.length;)o===a.length-1&&(l=sE(s,a[o])||AU(s,a[o])),s=s[a[o++]];else s=i.view[t],l=sE(i.view,t);if(l){r=s;break}i=i.parent}e[t]=r}return jy(r)&&(r=r.call(this.view)),r};function ln(){this.templateCache={_cache:{},set:function(t,e){this._cache[t]=e},get:function(t){return this._cache[t]},clear:function(){this._cache={}}}}ln.prototype.clearCache=function(){typeof this.templateCache!="undefined"&&this.templateCache.clear()};ln.prototype.parse=function(t,e){var r=this.templateCache,i=t+":"+(e||lr.tags).join(":"),s=typeof r!="undefined",a=s?r.get(i):void 0;return a==null&&(a=qU(t,e),s&&r.set(i,a)),a};ln.prototype.render=function(t,e,r,i){var s=this.getConfigTags(i),a=this.parse(t,s),o=e instanceof io?e:new io(e,void 0);return this.renderTokens(a,o,r,t,i)};ln.prototype.renderTokens=function(t,e,r,i,s){for(var a="",o,l,u,c=0,d=t.length;c<d;++c)u=void 0,o=t[c],l=o[0],l==="#"?u=this.renderSection(o,e,r,i,s):l==="^"?u=this.renderInverted(o,e,r,i,s):l===">"?u=this.renderPartial(o,e,r,s):l==="&"?u=this.unescapedValue(o,e):l==="name"?u=this.escapedValue(o,e,s):l==="text"&&(u=this.rawValue(o)),u!==void 0&&(a+=u);return a};ln.prototype.renderSection=function(t,e,r,i,s){var a=this,o="",l=e.lookup(t[1]);function u(f){return a.render(f,e,r,s)}if(!!l){if(so(l))for(var c=0,d=l.length;c<d;++c)o+=this.renderTokens(t[4],e.push(l[c]),r,i,s);else if(typeof l=="object"||typeof l=="string"||typeof l=="number")o+=this.renderTokens(t[4],e.push(l),r,i,s);else if(jy(l)){if(typeof i!="string")throw new Error("Cannot use higher-order sections without the original template");l=l.call(e.view,i.slice(t[3],t[5]),u),l!=null&&(o+=l)}else o+=this.renderTokens(t[4],e,r,i,s);return o}};ln.prototype.renderInverted=function(t,e,r,i,s){var a=e.lookup(t[1]);if(!a||so(a)&&a.length===0)return this.renderTokens(t[4],e,r,i,s)};ln.prototype.indentPartial=function(t,e,r){for(var i=e.replace(/[^ \t]/g,""),s=t.split(` `),a=0;a<s.length;a++)s[a].length&&(a>0||!r)&&(s[a]=i+s[a]);return s.join(` -`)};on.prototype.renderPartial=function(t,e,r,i){if(!!r){var s=this.getConfigTags(i),a=jy(r)?r(t[1]):r[t[1]];if(a!=null){var o=t[6],l=t[5],u=t[4],c=a;l==0&&u&&(c=this.indentPartial(a,u,o));var d=this.parse(c,s);return this.renderTokens(d,e,r,c,i)}}};on.prototype.unescapedValue=function(t,e){var r=e.lookup(t[1]);if(r!=null)return r};on.prototype.escapedValue=function(t,e,r){var i=this.getConfigEscape(r)||or.escape,s=e.lookup(t[1]);if(s!=null)return typeof s=="number"&&i===or.escape?String(s):i(s)};on.prototype.rawValue=function(t){return t[1]};on.prototype.getConfigTags=function(t){return so(t)?t:t&&typeof t=="object"?t.tags:void 0};on.prototype.getConfigEscape=function(t){if(t&&typeof t=="object"&&!so(t))return t.escape};var or={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(n){yu.templateCache=n},get templateCache(){return yu.templateCache}},yu=new on;or.clearCache=function(){return yu.clearCache()};or.parse=function(t,e){return yu.parse(t,e)};or.render=function(t,e,r,i){if(typeof t!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+MU(t)+'" was given as the first argument for mustache#render(template, view, partials)');return yu.render(t,e,r,i)};or.escape=LU;or.Scanner=bu;or.Context=io;or.Writer=on;var Wy=or;var cD=qo(uD());var Xr=class{constructor(t){this.instruction=t}get queryComponent(){return this._queryComponent}set queryComponent(t){this._queryComponent=t}get error(){return this._error}set error(t){this._error=t}isValid(){return this._queryComponent!==void 0}static fromObject(t,e){let r=new Xr(t);return r._queryComponent=e,r}static fromError(t,e){let r=new Xr(t);return r._error=e,r}};var Tu=class extends Xr{};function _u(n,t){try{let e=n.map(([s])=>s),r=t.includes("return")?t:`return ${t}`,i=t&&new Function(...e,r);return i instanceof Function?Tu.fromObject(t,i):Tu.fromError(t,`Problem parsing expression "${t}"`)}catch(e){return Tu.fromError(t,Xs(`Failed parsing expression "${t}"`,e))}}function vu(n,t){let e=t.map(([r,i])=>i);return n(...e)}function qy(n,t,e){try{return vu(n,t)}catch(r){return Xs(`Failed calculating expression "${e}"`,r)}}function dD(n,t){Wy.escape=function(e){return e};try{let e=BU(n,t);return Wy.render(e,(0,cD.default)(t))}catch(e){let r="";throw e instanceof Error?r=`There was an error expanding one or more placeholders. +`)};ln.prototype.renderPartial=function(t,e,r,i){if(!!r){var s=this.getConfigTags(i),a=jy(r)?r(t[1]):r[t[1]];if(a!=null){var o=t[6],l=t[5],u=t[4],c=a;l==0&&u&&(c=this.indentPartial(a,u,o));var d=this.parse(c,s);return this.renderTokens(d,e,r,c,i)}}};ln.prototype.unescapedValue=function(t,e){var r=e.lookup(t[1]);if(r!=null)return r};ln.prototype.escapedValue=function(t,e,r){var i=this.getConfigEscape(r)||lr.escape,s=e.lookup(t[1]);if(s!=null)return typeof s=="number"&&i===lr.escape?String(s):i(s)};ln.prototype.rawValue=function(t){return t[1]};ln.prototype.getConfigTags=function(t){return so(t)?t:t&&typeof t=="object"?t.tags:void 0};ln.prototype.getConfigEscape=function(t){if(t&&typeof t=="object"&&!so(t))return t.escape};var lr={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(n){yu.templateCache=n},get templateCache(){return yu.templateCache}},yu=new ln;lr.clearCache=function(){return yu.clearCache()};lr.parse=function(t,e){return yu.parse(t,e)};lr.render=function(t,e,r,i){if(typeof t!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+RU(t)+'" was given as the first argument for mustache#render(template, view, partials)');return yu.render(t,e,r,i)};lr.escape=UU;lr.Scanner=bu;lr.Context=io;lr.Writer=ln;var Wy=lr;var dE=qo(cE());var Xr=class{constructor(t){this.instruction=t}get queryComponent(){return this._queryComponent}set queryComponent(t){this._queryComponent=t}get error(){return this._error}set error(t){this._error=t}isValid(){return this._queryComponent!==void 0}static fromObject(t,e){let r=new Xr(t);return r._queryComponent=e,r}static fromError(t,e){let r=new Xr(t);return r._error=e,r}};var Tu=class extends Xr{};function _u(n,t){try{let e=n.map(([s])=>s),r=t.includes("return")?t:`return ${t}`,i=t&&new Function(...e,r);return i instanceof Function?Tu.fromObject(t,i):Tu.fromError(t,`Problem parsing expression "${t}"`)}catch(e){return Tu.fromError(t,Xs(`Failed parsing expression "${t}"`,e))}}function vu(n,t){let e=t.map(([r,i])=>i);return n(...e)}function qy(n,t,e){try{return vu(n,t)}catch(r){return Xs(`Failed calculating expression "${e}"`,r)}}function fE(n,t){Wy.escape=function(e){return e};try{let e=VU(n,t);return Wy.render(e,(0,dE.default)(t))}catch(e){let r="";throw e instanceof Error?r=`There was an error expanding one or more placeholders. The error message was: ${e.message.replace(/ > /g,".").replace("Missing Mustache data property","Unknown property")}`:r="Unknown error expanding placeholders.",r+=` The problem is in: - ${n}`,Error(r)}}var GU=new RegExp(["\\{\\{","(.*?)","\\}\\}"].join(""),"g");function BU(n,t){return n.replace(GU,(e,r)=>{let i=VU(t),s=_u(i,r);if(s.isValid()){let a=vu(s.queryComponent,i);if(a!==void 0)return a}return e})}function VU(n){return Object.entries(n)}function fD(n){return Hy(n,[])}function Hy(n,t){return{query:{file:n,allTasks:t,searchCache:{}}}}nn();var ao=class{constructor(t=""){this.indentation=t}explainQuery(t){if(t.error!==void 0)return this.explainError(t);let e=[];return e.push(this.explainIgnoreGlobalQuery(t)),e.push(this.explainFilters(t)),e.push(this.explainGroups(t)),e.push(this.explainSorters(t)),e.push(this.explainLayout(t)),e.push(this.explainQueryLimits(t)),e.push(this.explainDebugSettings()),e.filter(r=>r!=="").join(` + ${n}`,Error(r)}}var BU=new RegExp(["\\{\\{","(.*?)","\\}\\}"].join(""),"g");function VU(n,t){return n.replace(BU,(e,r)=>{let i=zU(t),s=_u(i,r);if(s.isValid()){let a=vu(s.queryComponent,i);if(a===null)throw Error(`Invalid placeholder result 'null'. + Check for missing file property in this expression: + {{${r}}}`);if(a!==void 0)return a}return e})}function zU(n){return Object.entries(n)}function pE(n){return Hy(n,[])}function Hy(n,t){return{query:{file:n,allTasks:t,searchCache:{}}}}rn();var ao=class{constructor(t=""){this.indentation=t}explainQuery(t){if(t.error!==void 0)return this.explainError(t);let e=[];return e.push(this.explainIgnoreGlobalQuery(t)),e.push(this.explainFilters(t)),e.push(this.explainGroups(t)),e.push(this.explainSorters(t)),e.push(this.explainLayout(t)),e.push(this.explainQueryLimits(t)),e.push(this.explainDebugSettings()),e.filter(r=>r!=="").join(` `)}explainError(t){let e="";return e+=`Query has an error: `,e+=t.error+` `,e}explainIgnoreGlobalQuery(t){return t.ignoreGlobalQuery?this.indent(`ignore global query @@ -294,19 +296,19 @@ to find them literally, you must add a \ before them: CAUTION! Regular expression (or 'regex') searching is a powerful but advanced feature that requires thorough knowledge in order to use successfully, and not miss intended search results. -`}explanation(e){let i=zU(e,"using regex: ",this.regexAsString());return new qe(i)}regexAsString(){let e=`'${this.regex.source}' with `;switch(this.regex.flags.length){case 0:e+="no flags";break;case 1:e+=`flag '${this.regex.flags}'`;break;default:e+=`flags '${this.regex.flags}'`;break}return e}};function zU(n,t,e){var o;let r=n.match(/\//);if(!r)return"Error explaining instruction. Could not find a slash character";let i=2,s=((o=r.index)!=null?o:i)-i;return`${t.padEnd(s)}${e}`}var yn=class{constructor(t,e){this._rawInstruction=t,this._anyContinuationLinesRemoved=e.trim(),this._anyPlaceholdersExpanded=this._anyContinuationLinesRemoved}recordExpandedPlaceholders(t){this._anyPlaceholdersExpanded=t}get rawInstruction(){return this._rawInstruction}get anyContinuationLinesRemoved(){return this._anyContinuationLinesRemoved}get anyPlaceholdersExpanded(){return this._anyPlaceholdersExpanded}explainStatement(t){function e(a,o){o!==a&&(s+=` => +`}explanation(e){let i=KU(e,"using regex: ",this.regexAsString());return new qe(i)}regexAsString(){let e=`'${this.regex.source}' with `;switch(this.regex.flags.length){case 0:e+="no flags";break;case 1:e+=`flag '${this.regex.flags}'`;break;default:e+=`flags '${this.regex.flags}'`;break}return e}};function KU(n,t,e){var o;let r=n.match(/\//);if(!r)return"Error explaining instruction. Could not find a slash character";let i=2,s=((o=r.index)!=null?o:i)-i;return`${t.padEnd(s)}${e}`}var gn=class{constructor(t,e){this._rawInstruction=t,this._anyContinuationLinesRemoved=e.trim(),this._anyPlaceholdersExpanded=this._anyContinuationLinesRemoved}recordExpandedPlaceholders(t){this._anyPlaceholdersExpanded=t}get rawInstruction(){return this._rawInstruction}get anyContinuationLinesRemoved(){return this._anyContinuationLinesRemoved}get anyPlaceholdersExpanded(){return this._anyPlaceholdersExpanded}explainStatement(t){function e(a,o){o!==a&&(s+=` => ${t}${o}`)}let r=this._rawInstruction.trim(),i=r.split(` `).join(` `+t),s=`${t}${i}`;return this._rawInstruction.includes(` `)&&(s+=` -`+t),e(r,this._anyContinuationLinesRemoved),e(this._anyContinuationLinesRemoved,this._anyPlaceholdersExpanded),s}allLinesIdentical(){return this._rawInstruction===this._anyContinuationLinesRemoved&&this._rawInstruction===this._anyPlaceholdersExpanded}};var Rr=class{constructor(t,e,r,i){this._statement=new yn(t,t),this.property=e,this.comparator=Rr.maybeReverse(i,r)}setStatement(t){this._statement=t}get statement(){return this._statement}get instruction(){return this._statement.anyPlaceholdersExpanded}static maybeReverse(t,e){return t?Rr.makeReversedComparator(e):e}static makeReversedComparator(t){return(e,r,i)=>t(e,r,i)*-1}};iu();var Xi=class{constructor(t,e,r,i){this._statement=new yn(t,t),this.property=e,this.grouper=r,this.reverse=i}setStatement(t){this._statement=t}get statement(){return this._statement}get instruction(){return this._statement.anyPlaceholdersExpanded}};var We=class{canCreateFilterForLine(t){return We.lineMatchesFilter(this.filterRegExp(),t)}static lineMatchesFilter(t,e){return t?t.test(e):!1}static getMatch(t,e){return t?e.match(t):null}fieldNameSingular(){return this.fieldName()}fieldNameSingularEscaped(){return qi(this.fieldNameSingular())}supportsSorting(){return!1}createSorterFromLine(t){if(!this.supportsSorting())return null;let e=We.getMatch(this.sorterRegExp(),t);if(e===null)return null;let r=!!e[1];return this.createSorter(r)}sorterRegExp(){if(!this.supportsSorting())throw Error(`sorterRegExp() unimplemented for ${this.fieldNameSingular()}`);return new RegExp(`^sort by ${this.fieldNameSingularEscaped()}( reverse)?`,"i")}sorterInstruction(t){let e=`sort by ${this.fieldNameSingular()}`;return t&&(e+=" reverse"),e}comparator(){throw Error(`comparator() unimplemented for ${this.fieldNameSingular()}`)}createSorter(t){return new Rr(this.sorterInstruction(t),this.fieldNameSingular(),this.comparator(),t)}createNormalSorter(){return this.createSorter(!1)}createReverseSorter(){return this.createSorter(!0)}supportsGrouping(){return!1}createGrouperFromLine(t){if(!this.supportsGrouping())return null;let e=We.getMatch(this.grouperRegExp(),t);if(e===null)return null;let r=!!e[1];return this.createGrouper(r)}grouperRegExp(){if(!this.supportsGrouping())throw Error(`grouperRegExp() unimplemented for ${this.fieldNameSingular()}`);return new RegExp(`^group by ${this.fieldNameSingularEscaped()}( reverse)?$`,"i")}grouperInstruction(t){let e=`group by ${this.fieldNameSingular()}`;return t&&(e+=" reverse"),e}grouper(){throw Error(`grouper() unimplemented for ${this.fieldNameSingular()}`)}createGrouper(t){return new Xi(this.grouperInstruction(t),this.fieldNameSingular(),this.grouper(),t)}createNormalGrouper(){return this.createGrouper(!1)}createReverseGrouper(){return this.createGrouper(!0)}};var Bt=class{constructor(t,e,r){this._statement=new yn(t,t),this.explanation=r,this.filterFunction=e}get statement(){return this._statement}setStatement(t){this._statement=t}get instruction(){return this._statement.anyPlaceholdersExpanded}explainFilterIndented(t){let e=this._statement.explainStatement(t);return this.onlyNeedsOneLineExplanation()?`${e} +`+t),e(r,this._anyContinuationLinesRemoved),e(this._anyContinuationLinesRemoved,this._anyPlaceholdersExpanded),s}allLinesIdentical(){return this._rawInstruction===this._anyContinuationLinesRemoved&&this._rawInstruction===this._anyPlaceholdersExpanded}};var Rr=class{constructor(t,e,r,i){this._statement=new gn(t,t),this.property=e,this.comparator=Rr.maybeReverse(i,r)}setStatement(t){this._statement=t}get statement(){return this._statement}get instruction(){return this._statement.anyPlaceholdersExpanded}static maybeReverse(t,e){return t?Rr.makeReversedComparator(e):e}static makeReversedComparator(t){return(e,r,i)=>t(e,r,i)*-1}};iu();var Xi=class{constructor(t,e,r,i){this._statement=new gn(t,t),this.property=e,this.grouper=r,this.reverse=i}setStatement(t){this._statement=t}get statement(){return this._statement}get instruction(){return this._statement.anyPlaceholdersExpanded}};var We=class{canCreateFilterForLine(t){return We.lineMatchesFilter(this.filterRegExp(),t)}static lineMatchesFilter(t,e){return t?t.test(e):!1}static getMatch(t,e){return t?e.match(t):null}fieldNameSingular(){return this.fieldName()}fieldNameSingularEscaped(){return qi(this.fieldNameSingular())}supportsSorting(){return!1}createSorterFromLine(t){if(!this.supportsSorting())return null;let e=We.getMatch(this.sorterRegExp(),t);if(e===null)return null;let r=!!e[1];return this.createSorter(r)}sorterRegExp(){if(!this.supportsSorting())throw Error(`sorterRegExp() unimplemented for ${this.fieldNameSingular()}`);return new RegExp(`^sort by ${this.fieldNameSingularEscaped()}( reverse)?`,"i")}sorterInstruction(t){let e=`sort by ${this.fieldNameSingular()}`;return t&&(e+=" reverse"),e}comparator(){throw Error(`comparator() unimplemented for ${this.fieldNameSingular()}`)}createSorter(t){return new Rr(this.sorterInstruction(t),this.fieldNameSingular(),this.comparator(),t)}createNormalSorter(){return this.createSorter(!1)}createReverseSorter(){return this.createSorter(!0)}supportsGrouping(){return!1}createGrouperFromLine(t){if(!this.supportsGrouping())return null;let e=We.getMatch(this.grouperRegExp(),t);if(e===null)return null;let r=!!e[1];return this.createGrouper(r)}grouperRegExp(){if(!this.supportsGrouping())throw Error(`grouperRegExp() unimplemented for ${this.fieldNameSingular()}`);return new RegExp(`^group by ${this.fieldNameSingularEscaped()}( reverse)?$`,"i")}grouperInstruction(t){let e=`group by ${this.fieldNameSingular()}`;return t&&(e+=" reverse"),e}grouper(){throw Error(`grouper() unimplemented for ${this.fieldNameSingular()}`)}createGrouper(t){return new Xi(this.grouperInstruction(t),this.fieldNameSingular(),this.grouper(),t)}createNormalGrouper(){return this.createGrouper(!1)}createReverseGrouper(){return this.createGrouper(!0)}};var Vt=class{constructor(t,e,r){this._statement=new gn(t,t),this.explanation=r,this.filterFunction=e}get statement(){return this._statement}setStatement(t){this._statement=t}get instruction(){return this._statement.anyPlaceholdersExpanded}explainFilterIndented(t){let e=this._statement.explainStatement(t);return this.onlyNeedsOneLineExplanation()?`${e} `:`${e} => ${this.explanation.asString(t+" ")} `}simulateExplainFilter(){return this.onlyNeedsOneLineExplanation()?this.explanation:new qe(this.instruction+" =>",[this.explanation])}onlyNeedsOneLineExplanation(){return this.explanation.asString("")===this.instruction}};var ke=class{constructor(t){this.object=t}get instruction(){return this.object.instruction}get filter(){return this.object.queryComponent}isValid(){return this.object.isValid()}get error(){return this.object.error}get filterFunction(){if(this.filter)return this.filter.filterFunction}static fromFilter(t){return new ke(Xr.fromObject(t.instruction,t))}static fromError(t,e){return new ke(Xr.fromError(t,e))}};var Ze=class extends We{createFilterOrErrorMessage(t){let e=We.getMatch(this.filterRegExp(),t);if(e===null)return ke.fromError(t,`do not understand query filter (${this.fieldName()})`);let r=e[1].toLowerCase(),i=e[2],s=null;if(r.includes("include"))s=new lo(i);else if(r.includes("regex")){try{s=Qi.validateAndConstruct(i)}catch(l){let u=Xs("Parsing regular expression",l)+` ${Qi.helpMessage()}`;return ke.fromError(t,u)}if(s===null)return ke.fromError(t,`Invalid instruction: '${t}' -${Qi.helpMessage()}`)}if(s===null)return ke.fromError(t,`do not understand query filter (${this.fieldName()})`);let a=r.match(/not/)!==null,o=new Bt(t,this.getFilter(s,a),s.explanation(t));return ke.fromFilter(o)}fieldPattern(){return this.fieldNameSingularEscaped()}filterOperatorPattern(){return"includes|does not include|regex matches|regex does not match"}filterRegExp(){return new RegExp(`^(?:${this.fieldPattern()}) (${this.filterOperatorPattern()}) (.*)`,"i")}getFilter(t,e){return r=>{let i=t.matches(this.value(r));return e?!i:i}}comparator(){return(t,e)=>this.value(t).localeCompare(this.value(e),void 0,{numeric:!0})}grouper(){return t=>[this.value(t)]}static escapeMarkdownCharacters(t){return t.replace(/\\/g,"\\\\").replace(/_/g,"\\_")}};var Zs=class extends Ze{fieldName(){return"description"}value(t){return Fe.getInstance().removeAsSubstringFrom(t.description)}supportsSorting(){return!0}comparator(){return(t,e)=>{let r=Zs.cleanDescription(t.description),i=Zs.cleanDescription(e.description);return r.localeCompare(i,void 0,{numeric:!0})}}static cleanDescription(t){t=Fe.getInstance().removeAsSubstringFrom(t);let e=/^\[\[?([^\]]*)]]?/,r=t.match(e);if(r!==null){let i=r[1];t=i.substring(i.indexOf("|")+1)+t.replace(e,"")}return t=this.replaceFormatting(t,/^\*\*([^*]+)\*\*/),t=this.replaceFormatting(t,/^\*([^*]+)\*/),t=this.replaceFormatting(t,/^==([^=]+)==/),t=this.replaceFormatting(t,/^__([^_]+)__/),t=this.replaceFormatting(t,/^_([^_]+)_/),t}static replaceFormatting(t,e){let r=t.match(e);return r!==null&&(t=r[1]+t.replace(e,"")),t}};Rg();Ag();Cs();var Ed=class{findUnexpandedDateText(t){let e=["<%","YYYY-MM-DD"];for(let r of e)if(t.includes(r))return this.unexpandedDateTextMessage(r);return null}unexpandedDateTextMessage(t){return`Instruction contains unexpanded template text: "${t}" - and cannot be interpreted. +${Qi.helpMessage()}`)}if(s===null)return ke.fromError(t,`do not understand query filter (${this.fieldName()})`);let a=r.match(/not/)!==null,o=new Vt(t,this.getFilter(s,a),s.explanation(t));return ke.fromFilter(o)}fieldPattern(){return this.fieldNameSingularEscaped()}filterOperatorPattern(){return"includes|does not include|regex matches|regex does not match"}filterRegExp(){return new RegExp(`^(?:${this.fieldPattern()}) (${this.filterOperatorPattern()}) (.*)`,"i")}getFilter(t,e){return r=>{let i=t.matches(this.value(r));return e?!i:i}}comparator(){return(t,e)=>this.value(t).localeCompare(this.value(e),void 0,{numeric:!0})}grouper(){return t=>[this.value(t)]}static escapeMarkdownCharacters(t){return t.replace(/\\/g,"\\\\").replace(/_/g,"\\_")}};var Zs=class extends Ze{fieldName(){return"description"}value(t){return Fe.getInstance().removeAsSubstringFrom(t.description)}supportsSorting(){return!0}comparator(){return(t,e)=>{let r=Zs.cleanDescription(t.description),i=Zs.cleanDescription(e.description);return r.localeCompare(i,void 0,{numeric:!0})}}static cleanDescription(t){t=Fe.getInstance().removeAsSubstringFrom(t);let e=/^\[\[?([^\]]*)]]?/,r=t.match(e);if(r!==null){let i=r[1];t=i.substring(i.indexOf("|")+1)+t.replace(e,"")}return t=this.replaceFormatting(t,/^\*\*([^*]+)\*\*/),t=this.replaceFormatting(t,/^\*([^*]+)\*/),t=this.replaceFormatting(t,/^==([^=]+)==/),t=this.replaceFormatting(t,/^__([^_]+)__/),t=this.replaceFormatting(t,/^_([^_]+)_/),t}static replaceFormatting(t,e){let r=t.match(e);return r!==null&&(t=r[1]+t.replace(e,"")),t}};Rg();Ag();Cs();var Dd=class{findUnexpandedDateText(t){let e=["<%","YYYY-MM-DD"];for(let r of e)if(t.includes(r))return this.unexpandedDateTextMessage(r);return null}unexpandedDateTextMessage(t){return`Instruction contains unexpanded template text: "${t}" - and cannot be interpreted. Possible causes: - The query is an a template file, and is not intended to be searched. @@ -317,7 +319,7 @@ Possible causes: instead of in to a template file. See: https://publish.obsidian.md/tasks/Advanced/Daily+Agenda#Instruction+contains+unexpanded+template+text -`}};var Dd=class{constructor(t,e){this._instruction=t,this._filter=e}canCreateFilterForLine(t){return t.toLocaleLowerCase()===this._instruction.toLocaleLowerCase()}createFilterOrErrorMessage(t){return this.canCreateFilterForLine(t)?ke.fromFilter(new Bt(t,this._filter,new qe(t))):ke.fromError(t,`do not understand filter: ${t}`)}};var bn=class{constructor(){this._filters=[]}add(t,e){this._filters.push(new Dd(t,e))}canCreateFilterForLine(t){return this._filters.some(e=>e.canCreateFilterForLine(t))}createFilterOrErrorMessage(t){for(let e of this._filters){let r=e.createFilterOrErrorMessage(t);if(r.isValid())return r}return ke.fromError(t,`do not understand filter: ${t}`)}};var Dt=class extends We{constructor(e=null){super();e!==null?this.filterInstructions=e:(this.filterInstructions=new bn,this.filterInstructions.add(`has ${this.fieldName()} date`,r=>this.date(r)!==null),this.filterInstructions.add(`no ${this.fieldName()} date`,r=>this.date(r)===null),this.filterInstructions.add(`${this.fieldName()} date is invalid`,r=>{let i=this.date(r);return i!==null&&!i.isValid()}))}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){var f;let r=this.checkForUnexpandedTemplateText(e);if(r)return ke.fromError(e,r);let i=this.filterInstructions.createFilterOrErrorMessage(e);if(i.isValid())return i;let s=We.getMatch(this.filterRegExp(),e);if(s===null)return ke.fromError(e,"do not understand query filter ("+this.fieldName()+" date)");let a=s[1],o=(f=s[2])==null?void 0:f.toLowerCase(),l=s[3],u=xn.parseDateRange(l);if(!u.isValid()){let p=xn.parseDate(a);p.isValid()&&(u=new Jt(p,p))}if(!u.isValid())return ke.fromError(e,"do not understand "+this.fieldName()+" date");let c=this.buildFilterFunction(o,u),d=Dt.buildExplanation(this.fieldNameForExplanation(),o,this.filterResultIfFieldMissing(),u);return ke.fromFilter(new Bt(e,c,d))}buildFilterFunction(e,r){let i;switch(e){case"before":i=s=>s?s.isBefore(r.start):this.filterResultIfFieldMissing();break;case"after":i=s=>s?s.isAfter(r.end):this.filterResultIfFieldMissing();break;case"on or before":case"in or before":i=s=>s?s.isSameOrBefore(r.end):this.filterResultIfFieldMissing();break;case"on or after":case"in or after":i=s=>s?s.isSameOrAfter(r.start):this.filterResultIfFieldMissing();break;default:i=s=>s?s.isSameOrAfter(r.start)&&s.isSameOrBefore(r.end):this.filterResultIfFieldMissing()}return this.getFilter(i)}getFilter(e){return r=>e(this.date(r))}filterRegExp(){return new RegExp(`^${this.fieldNameForFilterInstruction()} (((?:on|in) or before|before|(?:on|in) or after|after|on|in)? ?(.*))`,"i")}fieldNameForFilterInstruction(){return this.fieldName()}static buildExplanation(e,r,i,s){let a=r,o="YYYY-MM-DD (dddd Do MMMM YYYY)",l;switch(r){case"before":case"on or after":l=s.start.format(o);break;case"after":case"on or before":l=s.end.format(o);break;case"in or before":a="on or before",l=s.end.format(o);break;case"in or after":a="on or after",l=s.start.format(o);break;default:if(!s.start.isSame(s.end)){let c=`${e} date is between:`,d=[new qe(`${s.start.format(o)} and`),new qe(`${s.end.format(o)} inclusive`)];return i&&d.push(new qe(`OR no ${e} date`)),new qe(c,d)}a="on",l=s.start.format(o);break}let u=`${e} date is ${a} ${l}`;return i&&(u+=` OR no ${e} date`),new qe(u)}fieldNameForExplanation(){return this.fieldName()}supportsSorting(){return!0}comparator(){return(e,r)=>Kn(this.date(e),this.date(r))}supportsGrouping(){return!0}grouper(){return e=>{let r=this.date(e);return r===null?["No "+this.fieldName()+" date"]:r.isValid()?[r.format("YYYY-MM-DD dddd")]:["%%0%% Invalid "+this.fieldName()+" date"]}}checkForUnexpandedTemplateText(e){return new Ed().findUnexpandedDateText(e)}};var xd=class extends Dt{fieldName(){return"created"}date(t){return t.createdDate}filterResultIfFieldMissing(){return!1}};var Od=class extends Dt{fieldName(){return"done"}date(t){return t.doneDate}filterResultIfFieldMissing(){return!1}};var uo=class extends Dt{fieldName(){return"due"}date(t){return t.dueDate}filterResultIfFieldMissing(){return!1}};var lr=class extends We{constructor(){super(...arguments);this._filters=new bn}canCreateFilterForLine(e){return this._filters.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){return this._filters.createFilterOrErrorMessage(e)}filterRegExp(){return null}};var Cd=class extends lr{constructor(){super(),this._filters.add("exclude sub-items",t=>{if(t.indentation==="")return!0;let e=t.indentation.lastIndexOf(">");return e===-1?!1:/^ ?$/.test(t.indentation.slice(e+1))})}fieldName(){return"exclude"}};function Md(n,t){return[["task",n],["query",t?t.query:null]]}function pD(n,t,e){let r=Md(n,e||null),i=_u(r,t);return i.error?i.error:qy(i.queryComponent,r,t)}var wu=class{constructor(t){this.line=t,this.functionOrError=_u(Md(null,null),t)}isValid(){return this.functionOrError.isValid()}get parseError(){return this.functionOrError.error}evaluate(t,e){if(!this.isValid())throw Error(`Error: Cannot evaluate an expression which is not valid: "${this.line}" gave error: "${this.parseError}"`);return vu(this.functionOrError.queryComponent,Md(t,e||null))}evaluateOrCatch(t,e){return this.isValid()?qy(this.functionOrError.queryComponent,Md(t,e),this.line):`Error: Cannot evaluate an expression which is not valid: "${this.line}" gave error: "${this.parseError}"`}};Cs();function Gy(n){if(n===null)return"null";let t=typeof n;return t==="object"?n.constructor.name:t}var Rd=class extends We{createFilterOrErrorMessage(t){let e=We.getMatch(this.filterRegExp(),t);if(e===null)return ke.fromError(t,"Unable to parse line");let r=e[1],i=new wu(r);return i.isValid()?ke.fromFilter(new Bt(t,KU(i),new qe(t))):ke.fromError(t,i.parseError)}fieldName(){return"function"}filterRegExp(){return new RegExp(`^filter by ${this.fieldNameSingularEscaped()} (.*)`,"i")}supportsSorting(){return!0}sorterRegExp(){return new RegExp(`^sort by ${this.fieldNameSingularEscaped()}( reverse)? (.*)`,"i")}createSorterFromLine(t){let e=We.getMatch(this.sorterRegExp(),t);if(e===null)return null;let r=!!e[1],i=e[2],s=new wu(i);if(!s.isValid())throw new Error(s.parseError);let a=(o,l,u)=>{try{let c=u.queryContext(),d=this.validateTaskSortKey(s.evaluate(o,c)),f=this.validateTaskSortKey(s.evaluate(l,c));return this.compareTaskSortKeys(d,f)}catch(c){throw c instanceof Error&&(c.message+=`: while evaluating instruction '${t}'`),c}};return new Rr(t,this.fieldNameSingular(),a,r)}validateTaskSortKey(t){function e(r){throw new Error(`"${r}" is not a valid sort key`)}return t===void 0&&e("undefined"),Number.isNaN(t)&&e("NaN (Not a Number)"),Array.isArray(t)&&e("array"),t}compareTaskSortKeys(t,e){let r=Gy(t),i=Gy(e),s=this.compareTaskSortKeysIfOptionalMoment(t,e,r,i);if(s!==void 0)return s;let a=this.compareTaskSortKeysIfEitherIsNull(t,e);if(a!==void 0)return a;if(r!==i)throw new Error(`Unable to compare two different sort key types '${r}' and '${i}' order`);if(r==="string")return t.localeCompare(e,void 0,{numeric:!0});if(r==="TasksDate")return Kn(t.moment,e.moment);if(r==="boolean")return Number(e)-Number(t);let o=Number(t)-Number(e);if(isNaN(o))throw new Error(`Unable to determine sort order for sort key types '${r}' and '${i}'`);return o}compareTaskSortKeysIfOptionalMoment(t,e,r,i){let s=r==="Moment",a=i==="Moment";if(s&&a||s&&e===null||a&&t===null)return Kn(t,e)}compareTaskSortKeysIfEitherIsNull(t,e){if(t===null&&e===null)return 0;if(t===null&&e!==null)return-1;if(t!==null&&e===null)return 1}supportsGrouping(){return!0}createGrouperFromLine(t){let e=We.getMatch(this.grouperRegExp(),t);if(e===null)return null;let r=!!e[1],i=e[2];return new Xi(t,"function",XU(i),r)}grouperRegExp(){return new RegExp(`^group by ${this.fieldNameSingularEscaped()}( reverse)? (.*)`,"i")}grouper(){throw Error("grouper() function not valid for FunctionField. Use createGrouperFromLine() instead.")}};function KU(n){return(t,e)=>{let r=e.queryContext();return QU(n,t,r)}}function QU(n,t,e){let r=n.evaluate(t,e);if(typeof r=="boolean")return r;throw Error(`filtering function must return true or false. This returned "${r}".`)}function XU(n){return(t,e)=>{let r=e.queryContext();return ZU(t,n,r)}}function ZU(n,t,e){try{let r=pD(n,t,e);return Array.isArray(r)?r.map(s=>s.toString()):r===null?[]:[r.toString()]}catch(r){let i=`Error: Failed calculating expression "${t}". The error message was: `;return r instanceof Error?[i+r.message]:[i+"Unknown error"]}}var Ad=class extends Ze{fieldName(){return"heading"}value(t){return t.precedingHeader?t.precedingHeader:""}supportsSorting(){return!0}supportsGrouping(){return!0}grouper(){return t=>t.precedingHeader===null||t.precedingHeader.length===0?["(No heading)"]:[t.precedingHeader]}};var co=class extends Ze{fieldName(){return"path"}value(t){return t.path}supportsSorting(){return!0}supportsGrouping(){return!0}grouper(){return t=>[Ze.escapeMarkdownCharacters(t.path.replace(".md",""))]}};ja();var By=class extends We{createFilterOrErrorMessage(t){var r;let e=We.getMatch(this.filterRegExp(),t);if(e!==null){let i=e[5],s=null;switch(i.toLowerCase()){case"lowest":s="5";break;case"low":s="4";break;case"none":s="3";break;case"medium":s="2";break;case"high":s="1";break;case"highest":s="0";break}if(s===null)return ke.fromError(t,"do not understand priority");let a=t,o;switch((r=e[3])==null?void 0:r.toLowerCase()){case"above":o=l=>l.priority.localeCompare(s)<0;break;case"below":o=l=>l.priority.localeCompare(s)>0;break;case"not":o=l=>l.priority!==s;break;default:o=l=>l.priority===s,a=`${this.fieldName()} is ${i}`}return ke.fromFilter(new Bt(t,o,new qe(a)))}else return ke.fromError(t,"do not understand query filter (priority)")}fieldName(){return"priority"}filterRegExp(){return By.priorityRegexp}supportsSorting(){return!0}comparator(){return(t,e)=>t.priority.localeCompare(e.priority)}supportsGrouping(){return!0}grouper(){return t=>[t.priorityNameGroupText]}},Js=By;Js.priorityRegexp=/^priority(\s+is)?(\s+(above|below|not))?(\s+(lowest|low|none|medium|high|highest))$/i;var Pd=class extends Dt{fieldName(){return"scheduled"}date(t){return t.scheduledDate}filterResultIfFieldMissing(){return!1}};var Nd=class extends Dt{fieldName(){return"start"}fieldNameForFilterInstruction(){return"starts"}date(t){return t.startDate}filterResultIfFieldMissing(){return!0}};var Id=class extends Dt{constructor(){let t=new bn;t.add("has happens date",e=>this.dates(e).some(r=>r!==null)),t.add("no happens date",e=>!this.dates(e).some(r=>r!==null)),super(t)}fieldName(){return"happens"}fieldNameForExplanation(){return"due, start or scheduled"}date(t){return this.earliestDate(t)}dates(t){return t.happensDates}earliestDate(t){return t.happens.moment}filterResultIfFieldMissing(){return!1}getFilter(t){return e=>this.dates(e).some(r=>t(r))}};var Fd=class extends lr{constructor(){super(),this._filters.add("is recurring",t=>t.recurrence!==null),this._filters.add("is not recurring",t=>t.recurrence===null)}fieldName(){return"recurring"}supportsSorting(){return!0}comparator(){return(t,e)=>t.recurrence!==null&&e.recurrence===null?-1:t.recurrence===null&&e.recurrence!==null?1:0}supportsGrouping(){return!0}grouper(){return t=>t.recurrence!==null?["Recurring"]:["Not Recurring"]}};var Zi=class extends lr{constructor(){super(),this._filters.add("done",t=>t.isDone),this._filters.add("not done",t=>!t.isDone)}fieldName(){return"status"}supportsSorting(){return!0}comparator(){return(t,e)=>{let r=Zi.oldStatusName(t),i=Zi.oldStatusName(e);return r<i?1:r>i?-1:0}}static oldStatusName(t){return t.isDone?"Done":"Todo"}supportsGrouping(){return!0}grouper(){return t=>[Zi.oldStatusName(t)]}};var Ld=class extends Ze{fieldNamePlural(){return this.fieldNameSingular()+"s"}fieldName(){return`${this.fieldNameSingular()}/${this.fieldNamePlural()}`}fieldPattern(){return`${this.fieldNameSingular()}|${this.fieldNamePlural()}`}filterOperatorPattern(){return`${super.filterOperatorPattern()}|include|do not include`}value(t){return this.values(t).join(", ")}getFilter(t,e){return r=>{let i=t.matchesAnyOf(this.values(r));return e?!i:i}}createGrouper(t){return new Xi(this.grouperInstruction(t),this.fieldNamePlural(),this.grouper(),t)}grouperRegExp(){if(!this.supportsGrouping())throw Error(`grouperRegExp() unimplemented for ${this.fieldNameSingular()}`);return new RegExp(`^group by ${this.fieldNamePlural()}( reverse)?$`,"i")}grouperInstruction(t){let e=`group by ${this.fieldNamePlural()}`;return t&&(e+=" reverse"),e}};var ea=class extends Ld{constructor(){super();this.filterInstructions=new bn,this.filterInstructions.add(`has ${this.fieldNameSingular()}`,e=>this.values(e).length>0),this.filterInstructions.add(`has ${this.fieldNamePlural()}`,e=>this.values(e).length>0),this.filterInstructions.add(`no ${this.fieldNameSingular()}`,e=>this.values(e).length===0),this.filterInstructions.add(`no ${this.fieldNamePlural()}`,e=>this.values(e).length===0)}createFilterOrErrorMessage(e){let r=this.filterInstructions.createFilterOrErrorMessage(e);return r.isValid()?r:super.createFilterOrErrorMessage(e)}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}fieldNameSingular(){return"tag"}values(e){return e.tags}supportsSorting(){return!0}createSorterFromLine(e){let r=e.match(this.sorterRegExp());if(r===null)return null;let i=!!r[1],s=isNaN(+r[2])?1:+r[2],a=ea.makeCompareByTagComparator(s);return new Rr(e,this.fieldNameSingular(),a,i)}sorterRegExp(){return/^sort by tag( reverse)?[\s]*(\d+)?/i}comparator(){return ea.makeCompareByTagComparator(1)}static makeCompareByTagComparator(e){return(r,i)=>{if(r.tags.length===0&&i.tags.length===0)return 0;if(r.tags.length===0)return 1;if(i.tags.length===0)return-1;let s=e-1;if(r.tags.length<e&&i.tags.length>=e)return 1;if(i.tags.length<e&&r.tags.length>=e)return-1;if(r.tags.length<e&&i.tags.length<e)return 0;let a=r.tags[s],o=i.tags[s];return a.localeCompare(o,void 0,{numeric:!0})}}supportsGrouping(){return!0}grouper(){return e=>e.tags.length==0?["(No tags)"]:e.tags}};var xD=qo(DD());iu();function Ji(n){return new RegExp("["+qi(n)+"]").source}var nb=[["(",")"],["[","]"],["{","}"],['"','"']],xi=class{constructor(t,e,r){this.openFilterChars=t,this.closeFilterChars=e,this.openAndCloseFilterChars=r,this.openFilter=Ji(this.openFilterChars),this.closeFilter=Ji(this.closeFilterChars)}static allSupportedDelimiters(){let t="",e="",r="";for(let[i,s]of nb)t+=i,e+=s,r+=xi.openAndClosing(i,s);return new xi(t,e,r)}static fromInstructionLine(t){let e=t.trim(),i=/^[A-Z ]*\s*(.*)/.exec(e);if(i){let a=i[1],o=a[0],l=a.slice(-1);for(let[u,c]of nb)if(o===u&&l===c){let d=this.openAndClosing(u,c);return new xi(u,c,d)}}let s="All filters in a Boolean instruction must be inside one of these pairs of delimiter characters: "+nb.map(([a,o])=>a+"..."+o).join(" or ")+". Combinations of those delimiters are no longer supported.";throw new Error(s)}static openAndClosing(t,e){let r=t;return e!=t&&(r+=e),r}};var es=class{static preprocessExpression(t,e){let r=es.splitLine(t,e);return es.getFiltersAndSimplifiedLine(r,e)}static splitLine(t,e){let r=new RegExp("("+e.closeFilter+"\\s*(?:AND|OR|AND +NOT|OR +NOT|XOR)\\s*"+e.openFilter+")"),i=t.split(r),s=new RegExp("(NOT\\s*"+e.openFilter+")"),a=i.flatMap(u=>u.split(s)).filter(u=>u!==""),o=new RegExp("(^"+Ji(e.openFilterChars+" ")+"*)"),l=new RegExp("("+Ji(e.closeFilterChars+" ")+"*$)");return a.flatMap(u=>u.split(o)).flatMap(u=>u.split(l)).filter(u=>u!=="")}static getFiltersAndSimplifiedLine(t,e){let r="",i=1,s={};t.forEach(u=>{if(!es.isAFilter(u,e))r+=`${u}`;else{let c=`f${i}`;s[c]=u,r+=c,i++}});let a=new RegExp(`(${e.closeFilter})([A-Z])`,"g");r=r.replace(a,"$1 $2");let o=new RegExp(`([A-Z])(${e.openFilter})`,"g");r=r.replace(o,"$1 $2");let l=e.openFilterChars;if(l!='"'&&l!="("){let u=new RegExp(Ji(l),"g");r=r.replace(u,"(");let c=e.closeFilterChars,d=new RegExp(Ji(c),"g");r=r.replace(d,")")}return{simplifiedLine:r,filters:s}}static isAFilter(t,e){let r=new RegExp("^"+Ji(" "+e.openAndCloseFilterChars)+"+$"),i=new RegExp("^ *"+e.closeFilter+" *(AND|OR|XOR) *"+e.openFilter+" *$"),s=new RegExp("^(AND|OR|XOR|NOT) *"+e.openFilter+"$"),a=new RegExp("^"+e.closeFilter+" *(AND|OR|XOR)$");return![r,i,s,a,/^(AND|OR|XOR|NOT)$/].some(l=>RegExp(l).exec(t))}};var $d=class extends We{constructor(){super();this.supportedOperators=["AND","OR","XOR","NOT"];this.subFields={};let e=xi.allSupportedDelimiters();this.basicBooleanRegexp=new RegExp("(.*(AND|OR|XOR|NOT)\\s*"+e.openFilter+".*|"+e.openFilter+".+"+e.closeFilter+")","g")}filterRegExp(){return this.basicBooleanRegexp}createFilterOrErrorMessage(e){return this.parseLine(e)}fieldName(){return"boolean query"}parseLine(e){if(e.length===0)return ke.fromError(e,"empty line");let r;try{r=xi.fromInstructionLine(e)}catch(o){let l=o instanceof Error?o.message:"unknown error type";return ke.fromError(e,this.helpMessageFromSimpleError(e,l))}let i=es.preprocessExpression(e,r),s=i.simplifiedLine,a=i.filters;try{let o=(0,xD.parse)(s);for(let c of o)if(c.name==="IDENTIFIER"&&c.value){let d=c.value.trim(),f=a[d];if(c.value=f,!(f in this.subFields)){let p=Su(f);if(p===null)return this.helpMessage(e,`couldn't parse sub-expression '${f}'`,i);if(p.error)return this.helpMessage(e,`couldn't parse sub-expression '${f}': ${p.error}`,i);p.filter&&(this.subFields[f]=p.filter)}}else if(c.name==="OPERATOR"){if(c.value==null)return this.helpMessage(e,"empty operator in boolean query",i);if(!this.supportedOperators.includes(c.value))return this.helpMessage(e,`unknown boolean operator '${c.value}'`,i)}let l=(c,d)=>this.filterTaskWithParsedQuery(c,o,d),u=this.constructExplanation(o);return ke.fromFilter(new Bt(e,l,u))}catch(o){let l=o instanceof Error?o.message:"unknown error type";return this.helpMessage(e,`malformed boolean query -- ${l} (check the documentation for guidelines)`,i)}}filterTaskWithParsedQuery(e,r,i){let s=l=>l==="true",a=l=>l?"true":"false",o=[];for(let l of r)if(l.name==="IDENTIFIER"){if(l.value==null)throw Error("null token value");let c=this.subFields[l.value.trim()].filterFunction(e,i);o.push(a(c))}else if(l.name==="OPERATOR")if(l.value==="NOT"){let u=s(o.pop());o.push(a(!u))}else if(l.value==="OR"){let u=s(o.pop()),c=s(o.pop());o.push(a(u||c))}else if(l.value==="AND"){let u=s(o.pop()),c=s(o.pop());o.push(a(u&&c))}else if(l.value==="XOR"){let u=s(o.pop()),c=s(o.pop());o.push(a(u&&!c||!u&&c))}else throw Error("Unsupported operator: "+l.value);else throw Error("Unsupported token type: "+l);return s(o[0])}constructExplanation(e){let r=[];for(let i of e)if(i.name==="IDENTIFIER")this.explainExpression(i,r);else if(i.name==="OPERATOR")this.explainOperator(i,r);else throw Error("Unsupported token type: "+i.name);return r[0]}explainExpression(e,r){if(e.value==null)throw Error("null token value");let i=this.subFields[e.value.trim()],s=this.simulateExplainFilter(i);r.push(s)}simulateExplainFilter(e){return e.simulateExplainFilter()}explainOperator(e,r){if(e.value==="NOT"){let i=r.pop();r.push(qe.booleanNot([i]))}else if(e.value==="OR"){let i=r.pop(),s=r.pop();r.push(qe.booleanOr([s,i]))}else if(e.value==="AND"){let i=r.pop(),s=r.pop();r.push(qe.booleanAnd([s,i]))}else if(e.value==="XOR"){let i=r.pop(),s=r.pop();r.push(qe.booleanXor([s,i]))}else throw Error("Unsupported operator: "+e.value)}helpMessage(e,r,i){let s=i.filters,a=this.stringifySubExpressionsForErrorMessage(s),l=`${this.helpMessageFromSimpleError(e,r)} +`}};var Ed=class{constructor(t,e){this._instruction=t,this._filter=e}canCreateFilterForLine(t){return t.toLocaleLowerCase()===this._instruction.toLocaleLowerCase()}createFilterOrErrorMessage(t){return this.canCreateFilterForLine(t)?ke.fromFilter(new Vt(t,this._filter,new qe(t))):ke.fromError(t,`do not understand filter: ${t}`)}};var yn=class{constructor(){this._filters=[]}add(t,e){this._filters.push(new Ed(t,e))}canCreateFilterForLine(t){return this._filters.some(e=>e.canCreateFilterForLine(t))}createFilterOrErrorMessage(t){for(let e of this._filters){let r=e.createFilterOrErrorMessage(t);if(r.isValid())return r}return ke.fromError(t,`do not understand filter: ${t}`)}};var Et=class extends We{constructor(e=null){super();e!==null?this.filterInstructions=e:(this.filterInstructions=new yn,this.filterInstructions.add(`has ${this.fieldName()} date`,r=>this.date(r)!==null),this.filterInstructions.add(`no ${this.fieldName()} date`,r=>this.date(r)===null),this.filterInstructions.add(`${this.fieldName()} date is invalid`,r=>{let i=this.date(r);return i!==null&&!i.isValid()}))}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){var f;let r=this.checkForUnexpandedTemplateText(e);if(r)return ke.fromError(e,r);let i=this.filterInstructions.createFilterOrErrorMessage(e);if(i.isValid())return i;let s=We.getMatch(this.filterRegExp(),e);if(s===null)return ke.fromError(e,"do not understand query filter ("+this.fieldName()+" date)");let a=s[1],o=(f=s[2])==null?void 0:f.toLowerCase(),l=s[3],u=En.parseDateRange(l);if(!u.isValid()){let p=En.parseDate(a);p.isValid()&&(u=new tn(p,p))}if(!u.isValid())return ke.fromError(e,"do not understand "+this.fieldName()+" date");let c=this.buildFilterFunction(o,u),d=Et.buildExplanation(this.fieldNameForExplanation(),o,this.filterResultIfFieldMissing(),u);return ke.fromFilter(new Vt(e,c,d))}buildFilterFunction(e,r){let i;switch(e){case"before":i=s=>s?s.isBefore(r.start):this.filterResultIfFieldMissing();break;case"after":i=s=>s?s.isAfter(r.end):this.filterResultIfFieldMissing();break;case"on or before":case"in or before":i=s=>s?s.isSameOrBefore(r.end):this.filterResultIfFieldMissing();break;case"on or after":case"in or after":i=s=>s?s.isSameOrAfter(r.start):this.filterResultIfFieldMissing();break;default:i=s=>s?s.isSameOrAfter(r.start)&&s.isSameOrBefore(r.end):this.filterResultIfFieldMissing()}return this.getFilter(i)}getFilter(e){return r=>e(this.date(r))}filterRegExp(){return new RegExp(`^${this.fieldNameForFilterInstruction()} (((?:on|in) or before|before|(?:on|in) or after|after|on|in)? ?(.*))`,"i")}fieldNameForFilterInstruction(){return this.fieldName()}static buildExplanation(e,r,i,s){let a=r,o="YYYY-MM-DD (dddd Do MMMM YYYY)",l;switch(r){case"before":case"on or after":l=s.start.format(o);break;case"after":case"on or before":l=s.end.format(o);break;case"in or before":a="on or before",l=s.end.format(o);break;case"in or after":a="on or after",l=s.start.format(o);break;default:if(!s.start.isSame(s.end)){let c=`${e} date is between:`,d=[new qe(`${s.start.format(o)} and`),new qe(`${s.end.format(o)} inclusive`)];return i&&d.push(new qe(`OR no ${e} date`)),new qe(c,d)}a="on",l=s.start.format(o);break}let u=`${e} date is ${a} ${l}`;return i&&(u+=` OR no ${e} date`),new qe(u)}fieldNameForExplanation(){return this.fieldName()}supportsSorting(){return!0}comparator(){return(e,r)=>Qn(this.date(e),this.date(r))}supportsGrouping(){return!0}grouper(){return e=>{let r=this.date(e);return r===null?["No "+this.fieldName()+" date"]:r.isValid()?[r.format("YYYY-MM-DD dddd")]:["%%0%% Invalid "+this.fieldName()+" date"]}}checkForUnexpandedTemplateText(e){return new Dd().findUnexpandedDateText(e)}};var xd=class extends Et{fieldName(){return"created"}date(t){return t.createdDate}filterResultIfFieldMissing(){return!1}};var Od=class extends Et{fieldName(){return"done"}date(t){return t.doneDate}filterResultIfFieldMissing(){return!1}};var uo=class extends Et{fieldName(){return"due"}date(t){return t.dueDate}filterResultIfFieldMissing(){return!1}};var ur=class extends We{constructor(){super(...arguments);this._filters=new yn}canCreateFilterForLine(e){return this._filters.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){return this._filters.createFilterOrErrorMessage(e)}filterRegExp(){return null}};var Cd=class extends ur{constructor(){super(),this._filters.add("exclude sub-items",t=>{if(t.indentation==="")return!0;let e=t.indentation.lastIndexOf(">");return e===-1?!1:/^ ?$/.test(t.indentation.slice(e+1))})}fieldName(){return"exclude"}};function Md(n,t){return[["task",n],["query",t?t.query:null]]}function mE(n,t,e){let r=Md(n,e||null),i=_u(r,t);return i.error?i.error:qy(i.queryComponent,r,t)}var wu=class{constructor(t){this.line=t,this.functionOrError=_u(Md(null,null),t)}isValid(){return this.functionOrError.isValid()}get parseError(){return this.functionOrError.error}evaluate(t,e){if(!this.isValid())throw Error(`Error: Cannot evaluate an expression which is not valid: "${this.line}" gave error: "${this.parseError}"`);return vu(this.functionOrError.queryComponent,Md(t,e||null))}evaluateOrCatch(t,e){return this.isValid()?qy(this.functionOrError.queryComponent,Md(t,e),this.line):`Error: Cannot evaluate an expression which is not valid: "${this.line}" gave error: "${this.parseError}"`}};Cs();function Gy(n){if(n===null)return"null";let t=typeof n;return t==="object"?n.constructor.name:t}var Rd=class extends We{createFilterOrErrorMessage(t){let e=We.getMatch(this.filterRegExp(),t);if(e===null)return ke.fromError(t,"Unable to parse line");let r=e[1],i=new wu(r);return i.isValid()?ke.fromFilter(new Vt(t,QU(i),new qe(t))):ke.fromError(t,i.parseError)}fieldName(){return"function"}filterRegExp(){return new RegExp(`^filter by ${this.fieldNameSingularEscaped()} (.*)`,"i")}supportsSorting(){return!0}sorterRegExp(){return new RegExp(`^sort by ${this.fieldNameSingularEscaped()}( reverse)? (.*)`,"i")}createSorterFromLine(t){let e=We.getMatch(this.sorterRegExp(),t);if(e===null)return null;let r=!!e[1],i=e[2],s=new wu(i);if(!s.isValid())throw new Error(s.parseError);let a=(o,l,u)=>{try{let c=u.queryContext(),d=this.validateTaskSortKey(s.evaluate(o,c)),f=this.validateTaskSortKey(s.evaluate(l,c));return this.compareTaskSortKeys(d,f)}catch(c){throw c instanceof Error&&(c.message+=`: while evaluating instruction '${t}'`),c}};return new Rr(t,this.fieldNameSingular(),a,r)}validateTaskSortKey(t){function e(r){throw new Error(`"${r}" is not a valid sort key`)}return t===void 0&&e("undefined"),Number.isNaN(t)&&e("NaN (Not a Number)"),Array.isArray(t)&&e("array"),t}compareTaskSortKeys(t,e){let r=Gy(t),i=Gy(e),s=this.compareTaskSortKeysIfOptionalMoment(t,e,r,i);if(s!==void 0)return s;let a=this.compareTaskSortKeysIfEitherIsNull(t,e);if(a!==void 0)return a;if(r!==i)throw new Error(`Unable to compare two different sort key types '${r}' and '${i}' order`);if(r==="string")return t.localeCompare(e,void 0,{numeric:!0});if(r==="TasksDate")return Qn(t.moment,e.moment);if(r==="boolean")return Number(e)-Number(t);let o=Number(t)-Number(e);if(isNaN(o))throw new Error(`Unable to determine sort order for sort key types '${r}' and '${i}'`);return o}compareTaskSortKeysIfOptionalMoment(t,e,r,i){let s=r==="Moment",a=i==="Moment";if(s&&a||s&&e===null||a&&t===null)return Qn(t,e)}compareTaskSortKeysIfEitherIsNull(t,e){if(t===null&&e===null)return 0;if(t===null&&e!==null)return-1;if(t!==null&&e===null)return 1}supportsGrouping(){return!0}createGrouperFromLine(t){let e=We.getMatch(this.grouperRegExp(),t);if(e===null)return null;let r=!!e[1],i=e[2];return new Xi(t,"function",ZU(i),r)}grouperRegExp(){return new RegExp(`^group by ${this.fieldNameSingularEscaped()}( reverse)? (.*)`,"i")}grouper(){throw Error("grouper() function not valid for FunctionField. Use createGrouperFromLine() instead.")}};function QU(n){return(t,e)=>{let r=e.queryContext();return XU(n,t,r)}}function XU(n,t,e){let r=n.evaluate(t,e);if(typeof r=="boolean")return r;throw Error(`filtering function must return true or false. This returned "${r}".`)}function ZU(n){return(t,e)=>{let r=e.queryContext();return JU(t,n,r)}}function JU(n,t,e){try{let r=mE(n,t,e);return Array.isArray(r)?r.map(s=>s.toString()):r===null?[]:typeof r=="number"&&!Number.isInteger(r)?[r.toFixed(5)]:[r.toString()]}catch(r){let i=`Error: Failed calculating expression "${t}". The error message was: `;return r instanceof Error?[i+r.message]:[i+"Unknown error"]}}var Ad=class extends Ze{fieldName(){return"heading"}value(t){return t.precedingHeader?t.precedingHeader:""}supportsSorting(){return!0}supportsGrouping(){return!0}grouper(){return t=>t.precedingHeader===null||t.precedingHeader.length===0?["(No heading)"]:[t.precedingHeader]}};var co=class extends Ze{fieldName(){return"path"}value(t){return t.path}supportsSorting(){return!0}supportsGrouping(){return!0}grouper(){return t=>[Ze.escapeMarkdownCharacters(t.path.replace(".md",""))]}};ja();var By=class extends We{createFilterOrErrorMessage(t){var r;let e=We.getMatch(this.filterRegExp(),t);if(e!==null){let i=e[5],s=null;switch(i.toLowerCase()){case"lowest":s="5";break;case"low":s="4";break;case"none":s="3";break;case"medium":s="2";break;case"high":s="1";break;case"highest":s="0";break}if(s===null)return ke.fromError(t,"do not understand priority");let a=t,o;switch((r=e[3])==null?void 0:r.toLowerCase()){case"above":o=l=>l.priority.localeCompare(s)<0;break;case"below":o=l=>l.priority.localeCompare(s)>0;break;case"not":o=l=>l.priority!==s;break;default:o=l=>l.priority===s,a=`${this.fieldName()} is ${i}`}return ke.fromFilter(new Vt(t,o,new qe(a)))}else return ke.fromError(t,"do not understand query filter (priority)")}fieldName(){return"priority"}filterRegExp(){return By.priorityRegexp}supportsSorting(){return!0}comparator(){return(t,e)=>t.priority.localeCompare(e.priority)}supportsGrouping(){return!0}grouper(){return t=>[t.priorityNameGroupText]}},Js=By;Js.priorityRegexp=/^priority(\s+is)?(\s+(above|below|not))?(\s+(lowest|low|none|medium|high|highest))$/i;var Pd=class extends Et{fieldName(){return"scheduled"}date(t){return t.scheduledDate}filterResultIfFieldMissing(){return!1}};var Nd=class extends Et{fieldName(){return"start"}fieldNameForFilterInstruction(){return"starts"}date(t){return t.startDate}filterResultIfFieldMissing(){return!0}};var Id=class extends Et{constructor(){let t=new yn;t.add("has happens date",e=>this.dates(e).some(r=>r!==null)),t.add("no happens date",e=>!this.dates(e).some(r=>r!==null)),super(t)}fieldName(){return"happens"}fieldNameForExplanation(){return"due, start or scheduled"}date(t){return this.earliestDate(t)}dates(t){return t.happensDates}earliestDate(t){return t.happens.moment}filterResultIfFieldMissing(){return!1}getFilter(t){return e=>this.dates(e).some(r=>t(r))}};var Fd=class extends ur{constructor(){super(),this._filters.add("is recurring",t=>t.recurrence!==null),this._filters.add("is not recurring",t=>t.recurrence===null)}fieldName(){return"recurring"}supportsSorting(){return!0}comparator(){return(t,e)=>t.recurrence!==null&&e.recurrence===null?-1:t.recurrence===null&&e.recurrence!==null?1:0}supportsGrouping(){return!0}grouper(){return t=>t.recurrence!==null?["Recurring"]:["Not Recurring"]}};var Zi=class extends ur{constructor(){super(),this._filters.add("done",t=>t.isDone),this._filters.add("not done",t=>!t.isDone)}fieldName(){return"status"}supportsSorting(){return!0}comparator(){return(t,e)=>{let r=Zi.oldStatusName(t),i=Zi.oldStatusName(e);return r<i?1:r>i?-1:0}}static oldStatusName(t){return t.isDone?"Done":"Todo"}supportsGrouping(){return!0}grouper(){return t=>[Zi.oldStatusName(t)]}};var Ld=class extends Ze{fieldNamePlural(){return this.fieldNameSingular()+"s"}fieldName(){return`${this.fieldNameSingular()}/${this.fieldNamePlural()}`}fieldPattern(){return`${this.fieldNameSingular()}|${this.fieldNamePlural()}`}filterOperatorPattern(){return`${super.filterOperatorPattern()}|include|do not include`}value(t){return this.values(t).join(", ")}getFilter(t,e){return r=>{let i=t.matchesAnyOf(this.values(r));return e?!i:i}}createGrouper(t){return new Xi(this.grouperInstruction(t),this.fieldNamePlural(),this.grouper(),t)}grouperRegExp(){if(!this.supportsGrouping())throw Error(`grouperRegExp() unimplemented for ${this.fieldNameSingular()}`);return new RegExp(`^group by ${this.fieldNamePlural()}( reverse)?$`,"i")}grouperInstruction(t){let e=`group by ${this.fieldNamePlural()}`;return t&&(e+=" reverse"),e}};var ea=class extends Ld{constructor(){super();this.filterInstructions=new yn,this.filterInstructions.add(`has ${this.fieldNameSingular()}`,e=>this.values(e).length>0),this.filterInstructions.add(`has ${this.fieldNamePlural()}`,e=>this.values(e).length>0),this.filterInstructions.add(`no ${this.fieldNameSingular()}`,e=>this.values(e).length===0),this.filterInstructions.add(`no ${this.fieldNamePlural()}`,e=>this.values(e).length===0)}createFilterOrErrorMessage(e){let r=this.filterInstructions.createFilterOrErrorMessage(e);return r.isValid()?r:super.createFilterOrErrorMessage(e)}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}fieldNameSingular(){return"tag"}values(e){return e.tags}supportsSorting(){return!0}createSorterFromLine(e){let r=e.match(this.sorterRegExp());if(r===null)return null;let i=!!r[1],s=isNaN(+r[2])?1:+r[2],a=ea.makeCompareByTagComparator(s);return new Rr(e,this.fieldNameSingular(),a,i)}sorterRegExp(){return/^sort by tag( reverse)?[\s]*(\d+)?/i}comparator(){return ea.makeCompareByTagComparator(1)}static makeCompareByTagComparator(e){return(r,i)=>{if(r.tags.length===0&&i.tags.length===0)return 0;if(r.tags.length===0)return 1;if(i.tags.length===0)return-1;let s=e-1;if(r.tags.length<e&&i.tags.length>=e)return 1;if(i.tags.length<e&&r.tags.length>=e)return-1;if(r.tags.length<e&&i.tags.length<e)return 0;let a=r.tags[s],o=i.tags[s];return a.localeCompare(o,void 0,{numeric:!0})}}supportsGrouping(){return!0}grouper(){return e=>e.tags.length==0?["(No tags)"]:e.tags}};var OE=qo(xE());iu();function Ji(n){return new RegExp("["+qi(n)+"]").source}var nb=[["(",")"],["[","]"],["{","}"],['"','"']],xi=class{constructor(t,e,r){this.openFilterChars=t,this.closeFilterChars=e,this.openAndCloseFilterChars=r,this.openFilter=Ji(this.openFilterChars),this.closeFilter=Ji(this.closeFilterChars)}static allSupportedDelimiters(){let t="",e="",r="";for(let[i,s]of nb)t+=i,e+=s,r+=xi.openAndClosing(i,s);return new xi(t,e,r)}static fromInstructionLine(t){let e=t.trim(),i=/^[A-Z ]*\s*(.*)/.exec(e);if(i){let a=i[1],o=a[0],l=a.slice(-1);for(let[u,c]of nb)if(o===u&&l===c){let d=this.openAndClosing(u,c);return new xi(u,c,d)}}let s="All filters in a Boolean instruction must be inside one of these pairs of delimiter characters: "+nb.map(([a,o])=>a+"..."+o).join(" or ")+". Combinations of those delimiters are no longer supported.";throw new Error(s)}static openAndClosing(t,e){let r=t;return e!=t&&(r+=e),r}};var es=class{static preprocessExpression(t,e){let r=es.splitLine(t,e);return es.getFiltersAndSimplifiedLine(r,e)}static splitLine(t,e){let r=new RegExp("("+e.closeFilter+"\\s*(?:AND|OR|AND +NOT|OR +NOT|XOR)\\s*"+e.openFilter+")"),i=t.split(r),s=new RegExp("(NOT\\s*"+e.openFilter+")"),a=i.flatMap(u=>u.split(s)).filter(u=>u!==""),o=new RegExp("(^"+Ji(e.openFilterChars+" ")+"*)"),l=new RegExp("("+Ji(e.closeFilterChars+" ")+"*$)");return a.flatMap(u=>u.split(o)).flatMap(u=>u.split(l)).filter(u=>u!=="")}static getFiltersAndSimplifiedLine(t,e){let r="",i=1,s={};t.forEach(u=>{if(!es.isAFilter(u,e))r+=`${u}`;else{let c=`f${i}`;s[c]=u,r+=c,i++}});let a=new RegExp(`(${e.closeFilter})([A-Z])`,"g");r=r.replace(a,"$1 $2");let o=new RegExp(`([A-Z])(${e.openFilter})`,"g");r=r.replace(o,"$1 $2");let l=e.openFilterChars;if(l!='"'&&l!="("){let u=new RegExp(Ji(l),"g");r=r.replace(u,"(");let c=e.closeFilterChars,d=new RegExp(Ji(c),"g");r=r.replace(d,")")}return{simplifiedLine:r,filters:s}}static isAFilter(t,e){let r=new RegExp("^"+Ji(" "+e.openAndCloseFilterChars)+"+$"),i=new RegExp("^ *"+e.closeFilter+" *(AND|OR|XOR) *"+e.openFilter+" *$"),s=new RegExp("^(AND|OR|XOR|NOT) *"+e.openFilter+"$"),a=new RegExp("^"+e.closeFilter+" *(AND|OR|XOR)$");return![r,i,s,a,/^(AND|OR|XOR|NOT)$/].some(l=>RegExp(l).exec(t))}};var $d=class extends We{constructor(){super();this.supportedOperators=["AND","OR","XOR","NOT"];this.subFields={};let e=xi.allSupportedDelimiters();this.basicBooleanRegexp=new RegExp("(.*(AND|OR|XOR|NOT)\\s*"+e.openFilter+".*|"+e.openFilter+".+"+e.closeFilter+")","g")}filterRegExp(){return this.basicBooleanRegexp}createFilterOrErrorMessage(e){return this.parseLine(e)}fieldName(){return"boolean query"}parseLine(e){if(e.length===0)return ke.fromError(e,"empty line");let r;try{r=xi.fromInstructionLine(e)}catch(o){let l=o instanceof Error?o.message:"unknown error type";return ke.fromError(e,this.helpMessageFromSimpleError(e,l))}let i=es.preprocessExpression(e,r),s=i.simplifiedLine,a=i.filters;try{let o=(0,OE.parse)(s);for(let c of o)if(c.name==="IDENTIFIER"&&c.value){let d=c.value.trim(),f=a[d];if(c.value=f,!(f in this.subFields)){let p=Su(f);if(p===null)return this.helpMessage(e,`couldn't parse sub-expression '${f}'`,i);if(p.error)return this.helpMessage(e,`couldn't parse sub-expression '${f}': ${p.error}`,i);p.filter&&(this.subFields[f]=p.filter)}}else if(c.name==="OPERATOR"){if(c.value==null)return this.helpMessage(e,"empty operator in boolean query",i);if(!this.supportedOperators.includes(c.value))return this.helpMessage(e,`unknown boolean operator '${c.value}'`,i)}let l=(c,d)=>this.filterTaskWithParsedQuery(c,o,d),u=this.constructExplanation(o);return ke.fromFilter(new Vt(e,l,u))}catch(o){let l=o instanceof Error?o.message:"unknown error type";return this.helpMessage(e,`malformed boolean query -- ${l} (check the documentation for guidelines)`,i)}}filterTaskWithParsedQuery(e,r,i){let s=l=>l==="true",a=l=>l?"true":"false",o=[];for(let l of r)if(l.name==="IDENTIFIER"){if(l.value==null)throw Error("null token value");let c=this.subFields[l.value.trim()].filterFunction(e,i);o.push(a(c))}else if(l.name==="OPERATOR")if(l.value==="NOT"){let u=s(o.pop());o.push(a(!u))}else if(l.value==="OR"){let u=s(o.pop()),c=s(o.pop());o.push(a(u||c))}else if(l.value==="AND"){let u=s(o.pop()),c=s(o.pop());o.push(a(u&&c))}else if(l.value==="XOR"){let u=s(o.pop()),c=s(o.pop());o.push(a(u&&!c||!u&&c))}else throw Error("Unsupported operator: "+l.value);else throw Error("Unsupported token type: "+l);return s(o[0])}constructExplanation(e){let r=[];for(let i of e)if(i.name==="IDENTIFIER")this.explainExpression(i,r);else if(i.name==="OPERATOR")this.explainOperator(i,r);else throw Error("Unsupported token type: "+i.name);return r[0]}explainExpression(e,r){if(e.value==null)throw Error("null token value");let i=this.subFields[e.value.trim()],s=this.simulateExplainFilter(i);r.push(s)}simulateExplainFilter(e){return e.simulateExplainFilter()}explainOperator(e,r){if(e.value==="NOT"){let i=r.pop();r.push(qe.booleanNot([i]))}else if(e.value==="OR"){let i=r.pop(),s=r.pop();r.push(qe.booleanOr([s,i]))}else if(e.value==="AND"){let i=r.pop(),s=r.pop();r.push(qe.booleanAnd([s,i]))}else if(e.value==="XOR"){let i=r.pop(),s=r.pop();r.push(qe.booleanXor([s,i]))}else throw Error("Unsupported operator: "+e.value)}helpMessage(e,r,i){let s=i.filters,a=this.stringifySubExpressionsForErrorMessage(s),l=`${this.helpMessageFromSimpleError(e,r)} The instruction was converted to the following simplified line: ${i.simplifiedLine} @@ -337,12 +339,12 @@ For help, see: ${e} The error message is: - ${r}`}};var qd=class extends Ze{fieldName(){return"filename"}value(t){let e=t.filename;return e===null?"":e+".md"}supportsSorting(){return!0}supportsGrouping(){return!0}grouper(){return t=>{let e=t.filename;return e===null?["Unknown Location"]:["[["+e+"]]"]}}};var To=class extends We{canCreateFilterForLine(t){return!1}createFilterOrErrorMessage(t){return ke.fromError(t,"Filtering by urgency is not yet supported")}fieldName(){return"urgency"}filterRegExp(){throw Error(`filterRegExp() unimplemented for ${this.fieldName()}`)}supportsSorting(){return!0}comparator(){return(t,e)=>e.urgency-t.urgency}supportsGrouping(){return!0}grouper(){return t=>[`${t.urgency.toFixed(2)}`]}createGrouper(t){return super.createGrouper(!t)}grouperInstruction(t){return super.grouperInstruction(!t)}};var Hd=class extends Ze{constructor(){super()}fieldName(){return"status.name"}value(t){return t.status.name}supportsSorting(){return!0}supportsGrouping(){return!0}};er();var ti=class extends We{canCreateFilterForLine(t){let e=new RegExp(`^(?:${this.fieldNameSingularEscaped()})`,"i");return We.lineMatchesFilter(e,t)}createFilterOrErrorMessage(t){let e=We.getMatch(this.filterRegExp(),t);if(e===null)return this.helpMessage(t);let r=e[1].toLowerCase(),i=e[2],s=tn[i.toUpperCase()];if(!s)return this.helpMessage(t);let a;switch(r){case"is":a=o=>o.status.type===s;break;case"is not":a=o=>o.status.type!==s;break;default:return this.helpMessage(t)}return ke.fromFilter(new Bt(t,a,new qe(t)))}filterRegExp(){return new RegExp(`^(?:${this.fieldNameSingularEscaped()}) (is|is not) ([^ ]+)$`,"i")}helpMessage(t){let e=Object.values(tn).filter(i=>i!=="EMPTY").join(" "),r=`Invalid ${this.fieldNameSingular()} instruction: '${t}'. + ${r}`}};var qd=class extends Ze{fieldName(){return"filename"}value(t){let e=t.filename;return e===null?"":e+".md"}supportsSorting(){return!0}supportsGrouping(){return!0}grouper(){return t=>{let e=t.filename;return e===null?["Unknown Location"]:["[["+e+"]]"]}}};var To=class extends We{canCreateFilterForLine(t){return!1}createFilterOrErrorMessage(t){return ke.fromError(t,"Filtering by urgency is not yet supported")}fieldName(){return"urgency"}filterRegExp(){throw Error(`filterRegExp() unimplemented for ${this.fieldName()}`)}supportsSorting(){return!0}comparator(){return(t,e)=>e.urgency-t.urgency}supportsGrouping(){return!0}grouper(){return t=>[`${t.urgency.toFixed(2)}`]}createGrouper(t){return super.createGrouper(!t)}grouperInstruction(t){return super.grouperInstruction(!t)}};var Hd=class extends Ze{constructor(){super()}fieldName(){return"status.name"}value(t){return t.status.name}supportsSorting(){return!0}supportsGrouping(){return!0}};Cn();var ti=class extends We{canCreateFilterForLine(t){let e=new RegExp(`^(?:${this.fieldNameSingularEscaped()})`,"i");return We.lineMatchesFilter(e,t)}createFilterOrErrorMessage(t){let e=We.getMatch(this.filterRegExp(),t);if(e===null)return this.helpMessage(t);let r=e[1].toLowerCase(),i=e[2],s=Gt[i.toUpperCase()];if(!s)return this.helpMessage(t);let a;switch(r){case"is":a=o=>o.status.type===s;break;case"is not":a=o=>o.status.type!==s;break;default:return this.helpMessage(t)}return ke.fromFilter(new Vt(t,a,new qe(t)))}filterRegExp(){return new RegExp(`^(?:${this.fieldNameSingularEscaped()}) (is|is not) ([^ ]+)$`,"i")}helpMessage(t){let e=Object.values(Gt).filter(i=>i!=="EMPTY").join(" "),r=`Invalid ${this.fieldNameSingular()} instruction: '${t}'. Allowed options: 'is' and 'is not' (without quotes). Allowed values: ${e} Note: values are case-insensitive, so 'in_progress' works too, for example. - Example: ${this.fieldNameSingular()} is not NON_TASK`;return ke.fromError(t,r)}fieldName(){return"status.type"}value(t){return t.status.type}supportsSorting(){return!0}comparator(){return(t,e)=>{let r=ti.groupName(t),i=ti.groupName(e);return r.localeCompare(i,void 0,{numeric:!0})}}supportsGrouping(){return!0}grouper(){return t=>[ti.groupName(t)]}static groupName(t){return t.status.typeGroupText}};var Gd=class extends Ze{fieldName(){return"recurrence"}value(t){return t.recurrence!==null?t.recurrence.toText():""}supportsGrouping(){return!0}grouper(){return t=>t.recurrence!==null?[t.recurrence.toText()]:["None"]}};var Bd=class extends Ze{fieldName(){return"folder"}value(t){return t.file.folder}supportsGrouping(){return!0}grouper(){return t=>[Ze.escapeMarkdownCharacters(this.value(t))]}};var Vd=class extends Ze{fieldName(){return"root"}value(t){return t.file.root}supportsGrouping(){return!0}grouper(){return t=>[Ze.escapeMarkdownCharacters(this.value(t))]}};var zd=class extends Ze{fieldName(){return"backlink"}value(t){let e=t.getLinkText({isFilenameUnique:!0});return e===null?"Unknown Location":e}createFilterOrErrorMessage(t){return ke.fromError(t,"backlink field does not support filtering")}canCreateFilterForLine(t){return!1}supportsGrouping(){return!0}grouper(){return t=>{let e=t.filename;if(e===null)return["Unknown Location"];let r=t.precedingHeader;return r===null?["[["+e+"]]"]:[`[[${e}#${r}|${e} > ${r}]]`]}}};var Kd=class extends Dt{fieldName(){return"cancelled"}date(t){return t.cancelledDate}filterResultIfFieldMissing(){return!1}};var Qd=class extends lr{constructor(){super(),this._filters.add("is blocking",(t,e)=>t.isBlocking(e.allTasks)),this._filters.add("is not blocking",(t,e)=>!t.isBlocking(e.allTasks)),this._filters.add("is blocked",(t,e)=>t.isBlocked(e.allTasks)),this._filters.add("is not blocked",(t,e)=>!t.isBlocked(e.allTasks))}fieldName(){return"blocking"}};var Xd=class extends Ze{constructor(){super();this.filterInstructions=new bn;this.filterInstructions.add("has id",e=>e.id.length>0),this.filterInstructions.add("no id",e=>e.id.length===0)}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){let r=this.filterInstructions.createFilterOrErrorMessage(e);return r.isValid()?r:super.createFilterOrErrorMessage(e)}fieldName(){return"id"}value(e){return e.id}supportsSorting(){return!0}supportsGrouping(){return!0}};var Zd=class extends We{constructor(){super();this.filterInstructions=new bn;this.filterInstructions.add("has depends on",e=>e.dependsOn.length>0),this.filterInstructions.add("no depends on",e=>e.dependsOn.length===0)}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){let r=this.filterInstructions.createFilterOrErrorMessage(e);return r.isValid()?r:ke.fromError(e,"Unknown instruction")}fieldName(){return"blocked by"}filterRegExp(){return null}};var Jd=class extends lr{fieldName(){return"random"}supportsSorting(){return!0}comparator(){return(t,e)=>this.sortKey(t)-this.sortKey(e)}sortKey(t){let e=i=>{let s=0,a=9;for(;s<i.length;)a=Math.imul(a^i.charCodeAt(s++),387420489);return a^a>>>9},r=window.moment().format("Y-MM-DD");return e(r+" "+t.description)}};var rb=[()=>new Hd,()=>new ti,()=>new Zi,()=>new Fd,()=>new Js,()=>new Id,()=>new Kd,()=>new xd,()=>new Nd,()=>new Pd,()=>new uo,()=>new Od,()=>new co,()=>new Bd,()=>new Vd,()=>new zd,()=>new Zs,()=>new ea,()=>new Ad,()=>new Cd,()=>new qd,()=>new To,()=>new Gd,()=>new Rd,()=>new Xd,()=>new Zd,()=>new Qd,()=>new Jd,()=>new $d];function Su(n){for(let t of rb){let e=t();if(e.canCreateFilterForLine(n))return e.createFilterOrErrorMessage(n)}return null}function OD(n){let t=/^sort by /i;if(n.match(t)===null)return null;for(let e of rb){let i=e().createSorterFromLine(n);if(i)return i}return null}function CD(n){let t=/^group by /i;if(n.match(t)===null)return null;for(let e of rb){let i=e().createGrouperFromLine(n);if(i)return i}return null}var ef=class{constructor(t,e,r){this.nestingLevel=t,this.displayName=e,this.property=r}};var tf=class{constructor(t,e){this.lastHeadingAtLevel=new Array;this.groupers=e;let i=t.keys().next().value.length;for(let s=0;s<i;s++)this.lastHeadingAtLevel.push("")}getHeadingsForTaskGroup(t){let e=new Array;for(let r=0;r<t.length;r++){let i=t[r];if(i!=this.lastHeadingAtLevel[r]){e.push(new ef(r,i,this.groupers[r].property));for(let s=r;s<t.length;s++)this.lastHeadingAtLevel[s]="";this.lastHeadingAtLevel[r]=i}}return e}};var nf=class{constructor(t){this.children=new Map;this.values=[];this.values=t}generateAllPaths(t=[]){let e=new Map;if(this.children.size==0)return e.set([...t],this.values),e;for(let[r,i]of this.children)t.push(r),i.generateAllPaths(t).forEach((a,o)=>e.set(o,a)),t.pop();return e}};var rf=class extends nf{},sf=class{constructor(t,e,r){this.root=new rf(e),this.buildGroupingTree(t,r)}buildGroupingTree(t,e){let r=[this.root];for(let i of t){let s=[];for(let a of r)for(let o of a.values){let l=i.grouper(o,e);l.length===0&&l.push("");for(let u of l){let c=a.children.get(u);c===void 0&&(c=new rf([]),a.children.set(u,c),s.push(c)),c.values.push(o)}}r=s}}generateTaskTreeStorage(){return this.root.generateAllPaths()}};var af=class{constructor(t,e){this.groups=t,this.groupHeadings=[],this.tasks=e}setGroupHeadings(t){for(let e of t)this.groupHeadings.push(e)}applyTaskLimit(t){this.tasks=this.tasks.slice(0,t)}tasksAsStringOfLines(){let t="";for(let e of this.tasks)t+=e.toFileLineString()+` + Example: ${this.fieldNameSingular()} is not NON_TASK`;return ke.fromError(t,r)}fieldName(){return"status.type"}value(t){return t.status.type}supportsSorting(){return!0}comparator(){return(t,e)=>{let r=ti.groupName(t),i=ti.groupName(e);return r.localeCompare(i,void 0,{numeric:!0})}}supportsGrouping(){return!0}grouper(){return t=>[ti.groupName(t)]}static groupName(t){return t.status.typeGroupText}};var Gd=class extends Ze{fieldName(){return"recurrence"}value(t){return t.recurrence!==null?t.recurrence.toText():""}supportsGrouping(){return!0}grouper(){return t=>t.recurrence!==null?[t.recurrence.toText()]:["None"]}};var Bd=class extends Ze{fieldName(){return"folder"}value(t){return t.file.folder}supportsGrouping(){return!0}grouper(){return t=>[Ze.escapeMarkdownCharacters(this.value(t))]}};var Vd=class extends Ze{fieldName(){return"root"}value(t){return t.file.root}supportsGrouping(){return!0}grouper(){return t=>[Ze.escapeMarkdownCharacters(this.value(t))]}};var zd=class extends Ze{fieldName(){return"backlink"}value(t){let e=t.getLinkText({isFilenameUnique:!0});return e===null?"Unknown Location":e}createFilterOrErrorMessage(t){return ke.fromError(t,"backlink field does not support filtering")}canCreateFilterForLine(t){return!1}supportsGrouping(){return!0}grouper(){return t=>{let e=t.filename;if(e===null)return["Unknown Location"];let r=t.precedingHeader;return r===null?["[["+e+"]]"]:[`[[${e}#${r}|${e} > ${r}]]`]}}};var Kd=class extends Et{fieldName(){return"cancelled"}date(t){return t.cancelledDate}filterResultIfFieldMissing(){return!1}};var Qd=class extends ur{constructor(){super(),this._filters.add("is blocking",(t,e)=>t.isBlocking(e.allTasks)),this._filters.add("is not blocking",(t,e)=>!t.isBlocking(e.allTasks)),this._filters.add("is blocked",(t,e)=>t.isBlocked(e.allTasks)),this._filters.add("is not blocked",(t,e)=>!t.isBlocked(e.allTasks))}fieldName(){return"blocking"}};var Xd=class extends Ze{constructor(){super();this.filterInstructions=new yn;this.filterInstructions.add("has id",e=>e.id.length>0),this.filterInstructions.add("no id",e=>e.id.length===0)}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){let r=this.filterInstructions.createFilterOrErrorMessage(e);return r.isValid()?r:super.createFilterOrErrorMessage(e)}fieldName(){return"id"}value(e){return e.id}supportsSorting(){return!0}supportsGrouping(){return!0}};var Zd=class extends We{constructor(){super();this.filterInstructions=new yn;this.filterInstructions.add("has depends on",e=>e.dependsOn.length>0),this.filterInstructions.add("no depends on",e=>e.dependsOn.length===0)}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){let r=this.filterInstructions.createFilterOrErrorMessage(e);return r.isValid()?r:ke.fromError(e,"Unknown instruction")}fieldName(){return"blocked by"}filterRegExp(){return null}};var Jd=class extends ur{fieldName(){return"random"}supportsSorting(){return!0}comparator(){return(t,e)=>this.sortKey(t)-this.sortKey(e)}sortKey(t){let e=i=>{let s=0,a=9;for(;s<i.length;)a=Math.imul(a^i.charCodeAt(s++),387420489);return a^a>>>9},r=window.moment().format("Y-MM-DD");return e(r+" "+t.description)}};var rb=[()=>new Hd,()=>new ti,()=>new Zi,()=>new Fd,()=>new Js,()=>new Id,()=>new Kd,()=>new xd,()=>new Nd,()=>new Pd,()=>new uo,()=>new Od,()=>new co,()=>new Bd,()=>new Vd,()=>new zd,()=>new Zs,()=>new ea,()=>new Ad,()=>new Cd,()=>new qd,()=>new To,()=>new Gd,()=>new Rd,()=>new Xd,()=>new Zd,()=>new Qd,()=>new Jd,()=>new $d];function Su(n){for(let t of rb){let e=t();if(e.canCreateFilterForLine(n))return e.createFilterOrErrorMessage(n)}return null}function CE(n){let t=/^sort by /i;if(n.match(t)===null)return null;for(let e of rb){let i=e().createSorterFromLine(n);if(i)return i}return null}function ME(n){let t=/^group by /i;if(n.match(t)===null)return null;for(let e of rb){let i=e().createGrouperFromLine(n);if(i)return i}return null}var ef=class{constructor(t,e,r){this.nestingLevel=t,this.displayName=e,this.property=r}};var tf=class{constructor(t,e){this.lastHeadingAtLevel=new Array;this.groupers=e;let i=t.keys().next().value.length;for(let s=0;s<i;s++)this.lastHeadingAtLevel.push("")}getHeadingsForTaskGroup(t){let e=new Array;for(let r=0;r<t.length;r++){let i=t[r];if(i!=this.lastHeadingAtLevel[r]){e.push(new ef(r,i,this.groupers[r].property));for(let s=r;s<t.length;s++)this.lastHeadingAtLevel[s]="";this.lastHeadingAtLevel[r]=i}}return e}};var nf=class{constructor(t){this.children=new Map;this.values=[];this.values=t}generateAllPaths(t=[]){let e=new Map;if(this.children.size==0)return e.set([...t],this.values),e;for(let[r,i]of this.children)t.push(r),i.generateAllPaths(t).forEach((a,o)=>e.set(o,a)),t.pop();return e}};var rf=class extends nf{},sf=class{constructor(t,e,r){this.root=new rf(e),this.buildGroupingTree(t,r)}buildGroupingTree(t,e){let r=[this.root];for(let i of t){let s=[];for(let a of r)for(let o of a.values){let l=i.grouper(o,e);l.length===0&&l.push("");for(let u of l){let c=a.children.get(u);c===void 0&&(c=new rf([]),a.children.set(u,c),s.push(c)),c.values.push(o)}}r=s}}generateTaskTreeStorage(){return this.root.generateAllPaths()}};var af=class{constructor(t,e){this.groups=t,this.groupHeadings=[],this.tasks=e}setGroupHeadings(t){for(let e of t)this.groupHeadings.push(e)}applyTaskLimit(t){this.tasks=this.tasks.slice(0,t)}tasksAsStringOfLines(){let t="";for(let e of this.tasks)t+=e.toFileLineString()+` `;return t}toString(){let t=` `;t+=`Group names: [${this.groups}] `;for(let e of this.groupHeadings)t+=`${"#".repeat(4+e.nestingLevel)} [${e.property}] ${e.displayName} @@ -352,41 +354,41 @@ The error message is: --- `;return t+=` ${this.totalTasksCount()} tasks -`,t}addTaskGroups(t){for(let[e,r]of t){let i=new af(e,r);this.addTaskGroup(i)}}addTaskGroup(t){this._groups.push(t)}sortTaskGroups(){let t=(e,r)=>{let i=e.groups,s=r.groups;for(let a=0;a<i.length;a++){let o=this._groupers[a],l=i[a].localeCompare(s[a],void 0,{numeric:!0});if(l!==0)return o.reverse?-l:l}return 0};this._groups.sort(t)}setGroupsHeadings(t){let e=new tf(t,this._groupers);for(let r of this._groups)r.setGroupHeadings(e.getHeadingsForTaskGroup(r.groups))}applyTaskLimit(t){this._groupers.length!==0&&(this._groups.forEach(e=>{e.applyTaskLimit(t)}),this.recalculateTotalTaskCount())}recalculateTotalTaskCount(){let t=[];this._groups.forEach(r=>{t=[...t,...r.tasks]});let e=[...new Set(t)];this._totalTaskCount=e.length}};var ts=class{constructor(t,e){this.tasksFile=t,this.allTasks=[...e],this._queryContext=this.tasksFile?Hy(this.tasksFile,this.allTasks):void 0}static fromAllTasks(t){return new ts(void 0,t)}get queryPath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}queryContext(){return this._queryContext}};function MD(n){return`task${n!==1?"s":""}`}var ra=class{constructor(t,e){this.totalTasksCountBeforeLimit=0;this._searchErrorMessage=void 0;this.taskGroups=t,this.totalTasksCountBeforeLimit=e}get searchErrorMessage(){return this._searchErrorMessage}set searchErrorMessage(t){this._searchErrorMessage=t}get totalTasksCount(){return this.taskGroups.totalTasksCount()}totalTasksCountDisplayText(){let t=this.totalTasksCount,e=this.totalTasksCountBeforeLimit;return t===e?`${t} ${MD(t)}`:`${t} of ${e} ${MD(e)}`}get groups(){return this.taskGroups.groups}static fromError(t){let e=new ra(new _o([],[],ts.fromAllTasks([])),0);return e._searchErrorMessage=t,e}};function RD(n){return n.endsWith("\\")}function AD(n){return n.endsWith("\\\\")}function DY(n){return n.replace(/^[ \t]*/,"")}function xY(n){return n.replace(/[ \t]*\\$/,"")}function OY(n,t){let e=n;return t&&(e=DY(n)),AD(e)?e=e.slice(0,-1):RD(n)&&(e=xY(e)),e}function PD(n){let t=[],e=!1,r="",i="",s=n+` +`,t}addTaskGroups(t){for(let[e,r]of t){let i=new af(e,r);this.addTaskGroup(i)}}addTaskGroup(t){this._groups.push(t)}sortTaskGroups(){let t=(e,r)=>{let i=e.groups,s=r.groups;for(let a=0;a<i.length;a++){let o=this._groupers[a],l=i[a].localeCompare(s[a],void 0,{numeric:!0});if(l!==0)return o.reverse?-l:l}return 0};this._groups.sort(t)}setGroupsHeadings(t){let e=new tf(t,this._groupers);for(let r of this._groups)r.setGroupHeadings(e.getHeadingsForTaskGroup(r.groups))}applyTaskLimit(t){this._groupers.length!==0&&(this._groups.forEach(e=>{e.applyTaskLimit(t)}),this.recalculateTotalTaskCount())}recalculateTotalTaskCount(){let t=[];this._groups.forEach(r=>{t=[...t,...r.tasks]});let e=[...new Set(t)];this._totalTaskCount=e.length}};var ts=class{constructor(t,e){this.tasksFile=t,this.allTasks=[...e],this._queryContext=this.tasksFile?Hy(this.tasksFile,this.allTasks):void 0}static fromAllTasks(t){return new ts(void 0,t)}get queryPath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}queryContext(){return this._queryContext}};function RE(n){return`task${n!==1?"s":""}`}var ra=class{constructor(t,e){this.totalTasksCountBeforeLimit=0;this._searchErrorMessage=void 0;this.taskGroups=t,this.totalTasksCountBeforeLimit=e}get searchErrorMessage(){return this._searchErrorMessage}set searchErrorMessage(t){this._searchErrorMessage=t}get totalTasksCount(){return this.taskGroups.totalTasksCount()}totalTasksCountDisplayText(){let t=this.totalTasksCount,e=this.totalTasksCountBeforeLimit;return t===e?`${t} ${RE(t)}`:`${t} of ${e} ${RE(e)}`}get groups(){return this.taskGroups.groups}static fromError(t){let e=new ra(new _o([],[],ts.fromAllTasks([])),0);return e._searchErrorMessage=t,e}};function AE(n){return n.endsWith("\\")}function PE(n){return n.endsWith("\\\\")}function xY(n){return n.replace(/^[ \t]*/,"")}function OY(n){return n.replace(/[ \t]*\\$/,"")}function CY(n,t){let e=n;return t&&(e=xY(n)),PE(e)?e=e.slice(0,-1):AE(n)&&(e=OY(e)),e}function NE(n){let t=[],e=!1,r="",i="",s=n+` `;for(let a of s.split(` -`)){let o=OY(a,e);e?(r+=` -`+a,i+=" "+o):(r=a,i=o),AD(a)?e=!1:e=RD(a),e||(i.trim()!==""&&t.push(new yn(r,i)),r="",i="")}return t}var vo=class{static by(t,e,r){let i=this.defaultSorters().map(a=>a.comparator),s=[];for(let a of t)s.push(a.comparator);return e.sort(vo.makeCompositeComparator([...s,...i],r))}static defaultSorters(){return[new ti().createNormalSorter(),new To().createNormalSorter(),new uo().createNormalSorter(),new Js().createNormalSorter(),new co().createNormalSorter()]}static makeCompositeComparator(t,e){return(r,i)=>{for(let s of t){let a=s(r,i,e);if(a!==0)return a}return 0}}};var ND=0,Fn=class{constructor(t,e=void 0){this.statements=[];this._limit=void 0;this._taskGroupLimit=void 0;this._taskLayoutOptions=new Br;this._queryLayoutOptions=new Ki;this.layoutStatements=[];this._filters=[];this._error=void 0;this._sorting=[];this._grouping=[];this._ignoreGlobalQuery=!1;this.hideOptionsRegexp=/^(hide|show) +(.*)/i;this.shortModeRegexp=/^short/i;this.fullModeRegexp=/^full/i;this.explainQueryRegexp=/^explain/i;this.ignoreGlobalQueryRegexp=/^ignore global query/i;this.logger=rn.getLogger("tasks.Query");this.limitRegexp=/^limit (groups )?(to )?(\d+)( tasks?)?/i;this.commentRegexp=/^#.*/;this._queryId=this.generateQueryId(10),this.source=t,this.tasksFile=e;let r=PD(t);for(let i of r){let s=this.expandPlaceholders(i,e);if(this.error!==void 0)return;this.statements.push(...s)}for(let i of this.statements)try{if(this.parseLine(i),this.error!==void 0)return}catch(s){let a;s instanceof Error?a=s.message:a="Unknown error",this.setError(a,i);return}}removeIllegalGlobalQueryInstructions(){this._ignoreGlobalQuery=!1}get filePath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}get queryId(){return this._queryId}parseLine(t){let e=t.anyPlaceholdersExpanded;switch(!0){case this.shortModeRegexp.test(e):this._queryLayoutOptions.shortMode=!0,this.saveLayoutStatement(t);break;case this.fullModeRegexp.test(e):this._queryLayoutOptions.shortMode=!1,this.saveLayoutStatement(t);break;case this.explainQueryRegexp.test(e):this._queryLayoutOptions.explainQuery=!0;break;case this.ignoreGlobalQueryRegexp.test(e):this._ignoreGlobalQuery=!0;break;case this.limitRegexp.test(e):this.parseLimit(e);break;case this.parseSortBy(e,t):break;case this.parseGroupBy(e,t):break;case this.hideOptionsRegexp.test(e):this.parseHideOptions(t);break;case this.commentRegexp.test(e):break;case this.parseFilter(e,t):break;default:this.setError("do not understand query",t)}}formatQueryForLogging(){return` +`)){let o=CY(a,e);e?(r+=` +`+a,i+=" "+o):(r=a,i=o),PE(a)?e=!1:e=AE(a),e||(i.trim()!==""&&t.push(new gn(r,i)),r="",i="")}return t}var vo=class{static by(t,e,r){let i=this.defaultSorters().map(a=>a.comparator),s=[];for(let a of t)s.push(a.comparator);return e.sort(vo.makeCompositeComparator([...s,...i],r))}static defaultSorters(){return[new ti().createNormalSorter(),new To().createNormalSorter(),new uo().createNormalSorter(),new Js().createNormalSorter(),new co().createNormalSorter()]}static makeCompositeComparator(t,e){return(r,i)=>{for(let s of t){let a=s(r,i,e);if(a!==0)return a}return 0}}};var IE=0,Ln=class{constructor(t,e=void 0){this.statements=[];this._limit=void 0;this._taskGroupLimit=void 0;this._taskLayoutOptions=new Br;this._queryLayoutOptions=new Ki;this.layoutStatements=[];this._filters=[];this._error=void 0;this._sorting=[];this._grouping=[];this._ignoreGlobalQuery=!1;this.hideOptionsRegexp=/^(hide|show) +(.*)/i;this.shortModeRegexp=/^short/i;this.fullModeRegexp=/^full/i;this.explainQueryRegexp=/^explain/i;this.ignoreGlobalQueryRegexp=/^ignore global query/i;this.logger=sn.getLogger("tasks.Query");this.limitRegexp=/^limit (groups )?(to )?(\d+)( tasks?)?/i;this.commentRegexp=/^#.*/;this._queryId=this.generateQueryId(10),this.source=t,this.tasksFile=e;let r=NE(t);for(let i of r){let s=this.expandPlaceholders(i,e);if(this.error!==void 0)return;this.statements.push(...s)}for(let i of this.statements)try{if(this.parseLine(i),this.error!==void 0)return}catch(s){let a;s instanceof Error?a=s.message:a="Unknown error",this.setError(a,i);return}}removeIllegalGlobalQueryInstructions(){this._ignoreGlobalQuery=!1}get filePath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}get queryId(){return this._queryId}parseLine(t){let e=t.anyPlaceholdersExpanded;switch(!0){case this.shortModeRegexp.test(e):this._queryLayoutOptions.shortMode=!0,this.saveLayoutStatement(t);break;case this.fullModeRegexp.test(e):this._queryLayoutOptions.shortMode=!1,this.saveLayoutStatement(t);break;case this.explainQueryRegexp.test(e):this._queryLayoutOptions.explainQuery=!0;break;case this.ignoreGlobalQueryRegexp.test(e):this._ignoreGlobalQuery=!0;break;case this.limitRegexp.test(e):this.parseLimit(e);break;case this.parseSortBy(e,t):break;case this.parseGroupBy(e,t):break;case this.hideOptionsRegexp.test(e):this.parseHideOptions(t);break;case this.commentRegexp.test(e):break;case this.parseFilter(e,t):break;default:this.setError("do not understand query",t)}}formatQueryForLogging(){return` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ${this.source} <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< `}expandPlaceholders(t,e){let r=t.anyContinuationLinesRemoved;if(r.includes("{{")&&r.includes("}}")&&this.tasksFile===void 0)return this._error=`The query looks like it contains a placeholder, with "{{" and "}}" but no file path has been supplied, so cannot expand placeholder values. The query is: -${r}`,[t];let i=r;if(e){let s=fD(e);try{i=dD(r,s)}catch(a){return a instanceof Error?this._error=a.message:this._error="Internal error. expandPlaceholders() threw something other than Error.",[t]}}return this.createStatementsFromExpandedPlaceholders(i,t)}createStatementsFromExpandedPlaceholders(t,e){let r=t.split(` -`).map(i=>i.trim()).filter(i=>i.length>0);return r.length===1?(e.recordExpandedPlaceholders(r[0]),[e]):r.map((i,s)=>{let a=`: statement ${s+1} after expansion of placeholder`,o=new yn(e.rawInstruction+a,e.anyContinuationLinesRemoved+a);return o.recordExpandedPlaceholders(i),o})}append(t){return this.source===""?t:t.source===""?this:new Fn(`${this.source} -${t.source}`,this.tasksFile)}explainQuery(){return new ao().explainQuery(this)}get limit(){return this._limit}get taskGroupLimit(){return this._taskGroupLimit}get taskLayoutOptions(){return this._taskLayoutOptions}get queryLayoutOptions(){return this._queryLayoutOptions}get filters(){return this._filters}addFilter(t){this._filters.push(t)}get sorting(){return this._sorting}get grouping(){return this._grouping}get error(){return this._error}setError(t,e){this._error=Fn.generateErrorMessage(e,t)}static generateErrorMessage(t,e){return t.allLinesIdentical()?`${e} +${r}`,[t];let i=r;if(e){let s=pE(e);try{i=fE(r,s)}catch(a){return a instanceof Error?this._error=a.message:this._error="Internal error. expandPlaceholders() threw something other than Error.",[t]}}return this.createStatementsFromExpandedPlaceholders(i,t)}createStatementsFromExpandedPlaceholders(t,e){let r=t.split(` +`).map(i=>i.trim()).filter(i=>i.length>0);return r.length===1?(e.recordExpandedPlaceholders(r[0]),[e]):r.map((i,s)=>{let a=`: statement ${s+1} after expansion of placeholder`,o=new gn(e.rawInstruction+a,e.anyContinuationLinesRemoved+a);return o.recordExpandedPlaceholders(i),o})}append(t){return this.source===""?t:t.source===""?this:new Ln(`${this.source} +${t.source}`,this.tasksFile)}explainQuery(){return new ao().explainQuery(this)}get limit(){return this._limit}get taskGroupLimit(){return this._taskGroupLimit}get taskLayoutOptions(){return this._taskLayoutOptions}get queryLayoutOptions(){return this._queryLayoutOptions}get filters(){return this._filters}addFilter(t){this._filters.push(t)}get sorting(){return this._sorting}get grouping(){return this._grouping}get error(){return this._error}setError(t,e){this._error=Ln.generateErrorMessage(e,t)}static generateErrorMessage(t,e){return t.allLinesIdentical()?`${e} Problem line: "${t.rawInstruction}"`:`${e} Problem statement: ${t.explainStatement(" ")} -`}get ignoreGlobalQuery(){return this._ignoreGlobalQuery}applyQueryToTasks(t){this.debug(`[search] Executing query: ${this.formatQueryForLogging()}`);let e=new ts(this.tasksFile,t),r;try{this.filters.forEach(l=>{r=l.statement,t=t.filter(u=>l.filterFunction(u,e))}),r=void 0;let{debugSettings:i}=le(),s=i.ignoreSortInstructions?t:vo.by(this.sorting,t,e),a=s.slice(0,this.limit),o=new _o(this.grouping,a,e);return this._taskGroupLimit!==void 0&&o.applyTaskLimit(this._taskGroupLimit),new ra(o,s.length)}catch(i){let a=Xs("Search failed",i);return r&&(a=Fn.generateErrorMessage(r,a)),ra.fromError(a)}}parseHideOptions(t){let e=t.anyPlaceholdersExpanded,r=e.match(this.hideOptionsRegexp);if(r===null)return;let i=r[1].toLowerCase()==="hide",s=r[2].toLowerCase();if(rD(this._queryLayoutOptions,s,i)){this.saveLayoutStatement(t);return}if(kS(this._taskLayoutOptions,s,!i)){this.saveLayoutStatement(t);return}this.setError("do not understand hide/show option",new yn(e,e))}saveLayoutStatement(t){this.layoutStatements.push(t)}parseFilter(t,e){var i;let r=Su(t);return r!=null?(r.filter?(r.filter.setStatement(e),this._filters.push(r.filter)):this.setError((i=r.error)!=null?i:"Unknown error",e),!0):!1}parseLimit(t){let e=t.match(this.limitRegexp);if(e===null){this.setError("do not understand query limit",new yn(t,t));return}let r=Number.parseInt(e[3],10);e[1]!==void 0?this._taskGroupLimit=r:this._limit=r}parseSortBy(t,e){let r=OD(t);return r?(r.setStatement(e),this._sorting.push(r),!0):!1}parseGroupBy(t,e){let r=CD(t);return r?(r.setStatement(e),this._grouping.push(r),!0):!1}generateQueryId(t){return ND+=1,ND.toString().padStart(t,"0")}debug(t,e){this.logger.debugWithId(this._queryId,`"${this.filePath}": ${t}`,e)}};var ib=[{name:"TQ_explain",type:"checkbox",display:"explain",handler:"instruction",trueValue:"explain",falseValue:""},{name:"TQ_short_mode",type:"checkbox",display:"short mode",handler:"instruction",trueValue:"short mode",falseValue:"full mode"},{name:"TQ_show_tree",type:"checkbox",display:"tree",handler:"showAndHide"},{name:"TQ_show_tags",type:"checkbox",display:"tags",handler:"showAndHide"},{name:"TQ_show_id",type:"checkbox",display:"id",handler:"showAndHide"},{name:"TQ_show_depends_on",type:"checkbox",display:"depends on",handler:"showAndHide"},{name:"TQ_show_priority",type:"checkbox",display:"priority",handler:"showAndHide"},{name:"TQ_show_recurrence_rule",type:"checkbox",display:"recurrence rule",handler:"showAndHide"},{name:"TQ_show_on_completion",type:"checkbox",display:"on completion",handler:"showAndHide"},{name:"TQ_show_created_date",type:"checkbox",display:"created date",handler:"showAndHide"},{name:"TQ_show_start_date",type:"checkbox",display:"start date",handler:"showAndHide"},{name:"TQ_show_scheduled_date",type:"checkbox",display:"scheduled date",handler:"showAndHide"},{name:"TQ_show_due_date",type:"checkbox",display:"due date",handler:"showAndHide"},{name:"TQ_show_cancelled_date",type:"checkbox",display:"cancelled date",handler:"showAndHide"},{name:"TQ_show_done_date",type:"checkbox",display:"done date",handler:"showAndHide"},{name:"TQ_show_urgency",type:"checkbox",display:"urgency",handler:"showAndHide"},{name:"TQ_show_backlink",type:"checkbox",display:"backlink",handler:"showAndHide"},{name:"TQ_show_edit_button",type:"checkbox",display:"edit button",handler:"showAndHide"},{name:"TQ_show_postpone_button",type:"checkbox",display:"postpone button",handler:"showAndHide"},{name:"TQ_show_task_count",type:"checkbox",display:"task count",handler:"showAndHide"},{name:"TQ_extra_instructions",type:"text",handler:"addValue"}],Oi=class{source(t){return t?ib.map(r=>this.generateInstruction(t,r)).filter(r=>r!=="").join(` -`):""}generateInstruction(t,e){let r=t.hasProperty(e.name),i=t.property(e.name);switch(e.handler){case"instruction":return r&&(i?e.trueValue:e.falseValue)||"";case"showAndHide":return r&&(i?"show "+e.display:"hide "+e.display)||"";case"addValue":return r&&i||"";default:throw new Error("Unknown handler type: "+e.handler+".")}}query(t){return new Fn(this.source(t),t)}allPropertyNames(){return ib.map(t=>t.name)}allPropertyNamesSorted(){return this.allPropertyNames().sort((t,e)=>t.localeCompare(e))}propertyType(t){var e,r;return(r=(e=ib.find(i=>i.name===t))==null?void 0:e.type)!=null?r:void 0}metaBindPluginWidgets(){return"\nshort mode: `INPUT[toggle:TQ_short_mode]`\ntree: `INPUT[toggle:TQ_show_tree]`\ntags: `INPUT[toggle:TQ_show_tags]`\nid: `INPUT[toggle:TQ_show_id]` depends on: `INPUT[toggle:TQ_show_depends_on]`\npriority: `INPUT[toggle:TQ_show_priority]`\nrecurrence rule: `INPUT[toggle:TQ_show_recurrence_rule]` on completion: `INPUT[toggle:TQ_show_on_completion]`\nstart date: `INPUT[toggle:TQ_show_start_date]` scheduled date: `INPUT[toggle:TQ_show_scheduled_date]` due date: `INPUT[toggle:TQ_show_due_date]`\ncreated date: `INPUT[toggle:TQ_show_created_date]` cancelled date: `INPUT[toggle:TQ_show_cancelled_date]` done date: `INPUT[toggle:TQ_show_done_date]`\nurgency: `INPUT[toggle:TQ_show_urgency]`\nbacklink: `INPUT[toggle:TQ_show_backlink]`\nedit button: `INPUT[toggle:TQ_show_edit_button]` postpone button: `INPUT[toggle:TQ_show_postpone_button]`\ntask count: `INPUT[toggle:TQ_show_task_count]`\nextra instructions: `INPUT[textArea:TQ_extra_instructions]`\nexplain: `INPUT[toggle:TQ_explain]`\n"}};function ID(n,t){return L(this,null,function*(){yield n.fileManager.processFrontMatter(t,e=>{let r=new Oi().allPropertyNamesSorted(),i=!1;r.forEach(s=>{s in e||(e[s]=null,i=!0)}),i?new sb.Notice("Properties updated successfully."):new sb.Notice("All supported properties are already present.")})})}var of=class{get app(){return this.plugin.app}constructor({plugin:t}){this.plugin=t,t.addCommand({id:"edit-task",name:"Create or edit task",icon:"pencil",editorCheckCallback:(e,r,i)=>tD(e,r,i,this.app,this.plugin.getTasks())}),t.addCommand({id:"toggle-done",name:"Toggle task done",icon:"check-in-circle",editorCheckCallback:nD}),t.addCommand({id:"add-query-file-defaults-properties",name:"Add all Query File Defaults properties",icon:"settings",checkCallback:e=>{let r=this.app.workspace.getActiveFile();return!r||r.extension!=="md"?!1:(e||this.ensureQueryFileDefaultsFrontmatter(r).catch(console.error),!0)}})}ensureQueryFileDefaultsFrontmatter(t){return L(this,null,function*(){let{app:e}=this;yield ID(e,t)})}};var ns=class{constructor(t=ns.empty){this._source=t}static getInstance(){return ns.instance||(ns.instance=new ns),ns.instance}set(t){this._source=t}query(t=void 0){let e=new Fn(this._source,t);return e.removeIllegalGlobalQueryInstructions(),e}hasInstructions(){return this._source.trim()!==ns.empty}},dr=ns;dr.empty="";Ws();var lf=class{constructor({obsidianEvents:t}){this.logger=rn.getLogger("tasks.Events");this.obsidianEvents=t}onCacheUpdate(t){return this.logger.debug("TasksEvents.onCacheUpdate()"),this.obsidianEvents.on("obsidian-tasks-plugin:cache-update",t)}triggerCacheUpdate(t){this.logger.debug("TasksEvents.triggerCacheUpdate()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:cache-update",t)}onRequestCacheUpdate(t){return this.logger.debug("TasksEvents.onRequestCacheUpdate()"),this.obsidianEvents.on("obsidian-tasks-plugin:request-cache-update",t)}triggerRequestCacheUpdate(t){this.logger.debug("TasksEvents.triggerRequestCacheUpdate()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:request-cache-update",t)}off(t){this.logger.debug("TasksEvents.off()"),this.obsidianEvents.offref(t)}};var ax=require("obsidian");Mn();Is();Nt();var sx=require("obsidian");Mn();nn();Is();wi();Nt();ii();Sr();Ga();var ab=class{constructor(t){this.newStatus=t}apply(t){return this.isCheckedForTask(t)?[t]:t.handleNewStatusWithRecurrenceInUsersOrder(this.newStatus)}instructionDisplayName(){return`Change status to: [${this.newStatus.symbol}] ${this.newStatus.name}`}isCheckedForTask(t){return this.newStatus.symbol===t.status.symbol}};function FD(n){let t=[],e=new et().coreStatuses.map(r=>r.symbol);for(let r of[!0,!1])for(let i of n.registeredStatuses)e.includes(i.symbol)===r&&t.push(new ab(i));return t}var LD=require("obsidian");var ob="---",wo=class{apply(t){throw new Error("MenuDividerInstruction.apply(): Method not implemented.")}instructionDisplayName(){return ob}isCheckedForTask(t){return!1}};function ni(n,t){return L(this,null,function*(){yield gn({originalTask:n,newTasks:t})})}var rs=class extends LD.Menu{constructor(e){super();this.taskSaver=e}addItemsForInstructions(e,r){for(let i of e)this.addItemForInstruction(r,i)}addItemForInstruction(e,r){r.instructionDisplayName()===ob?this.addSeparator():this.addItem(i=>this.getMenuItemCallback(e,i,r))}getMenuItemCallback(e,r,i){r.setTitle(i.instructionDisplayName()).setChecked(i.isCheckedForTask(e)).onClick(()=>L(this,null,function*(){let s=i.apply(e);(s.length!==1||!Object.is(s[0],e))&&(yield this.taskSaver(e,s))}))}};var uf=class extends rs{constructor(t,e,r=ni){super(r);let i=FD(t);this.addItemsForInstructions(i,e)}};var cf=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],is={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(n){return typeof console!="undefined"&&console.warn(n)},getWeek:function(n){var t=new Date(n.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var e=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-e.getTime())/864e5-3+(e.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1};var df={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(n){var t=n%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},ff=df;var Kt=function(n,t){return t===void 0&&(t=2),("000"+n).slice(t*-1)},Tn=function(n){return n===!0?1:0};function lb(n,t){var e;return function(){var r=this,i=arguments;clearTimeout(e),e=setTimeout(function(){return n.apply(r,i)},t)}}var pf=function(n){return n instanceof Array?n:[n]};function Qt(n,t,e){if(e===!0)return n.classList.add(t);n.classList.remove(t)}function $e(n,t,e){var r=window.document.createElement(n);return t=t||"",e=e||"",r.className=t,e!==void 0&&(r.textContent=e),r}function Eu(n){for(;n.firstChild;)n.removeChild(n.firstChild)}function ub(n,t){if(t(n))return n;if(n.parentNode)return ub(n.parentNode,t)}function Du(n,t){var e=$e("div","numInputWrapper"),r=$e("input","numInput "+n),i=$e("span","arrowUp"),s=$e("span","arrowDown");if(navigator.userAgent.indexOf("MSIE 9.0")===-1?r.type="number":(r.type="text",r.pattern="\\d*"),t!==void 0)for(var a in t)r.setAttribute(a,t[a]);return e.appendChild(r),e.appendChild(i),e.appendChild(s),e}function _n(n){try{if(typeof n.composedPath=="function"){var t=n.composedPath();return t[0]}return n.target}catch(e){return n.target}}var cb=function(){},xu=function(n,t,e){return e.months[t?"shorthand":"longhand"][n]},UD={D:cb,F:function(n,t,e){n.setMonth(e.months.longhand.indexOf(t))},G:function(n,t){n.setHours((n.getHours()>=12?12:0)+parseFloat(t))},H:function(n,t){n.setHours(parseFloat(t))},J:function(n,t){n.setDate(parseFloat(t))},K:function(n,t,e){n.setHours(n.getHours()%12+12*Tn(new RegExp(e.amPM[1],"i").test(t)))},M:function(n,t,e){n.setMonth(e.months.shorthand.indexOf(t))},S:function(n,t){n.setSeconds(parseFloat(t))},U:function(n,t){return new Date(parseFloat(t)*1e3)},W:function(n,t,e){var r=parseInt(t),i=new Date(n.getFullYear(),0,2+(r-1)*7,0,0,0,0);return i.setDate(i.getDate()-i.getDay()+e.firstDayOfWeek),i},Y:function(n,t){n.setFullYear(parseFloat(t))},Z:function(n,t){return new Date(t)},d:function(n,t){n.setDate(parseFloat(t))},h:function(n,t){n.setHours((n.getHours()>=12?12:0)+parseFloat(t))},i:function(n,t){n.setMinutes(parseFloat(t))},j:function(n,t){n.setDate(parseFloat(t))},l:cb,m:function(n,t){n.setMonth(parseFloat(t)-1)},n:function(n,t){n.setMonth(parseFloat(t)-1)},s:function(n,t){n.setSeconds(parseFloat(t))},u:function(n,t){return new Date(parseFloat(t))},w:cb,y:function(n,t){n.setFullYear(2e3+parseFloat(t))}},Ci={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},ko={Z:function(n){return n.toISOString()},D:function(n,t,e){return t.weekdays.shorthand[ko.w(n,t,e)]},F:function(n,t,e){return xu(ko.n(n,t,e)-1,!1,t)},G:function(n,t,e){return Kt(ko.h(n,t,e))},H:function(n){return Kt(n.getHours())},J:function(n,t){return t.ordinal!==void 0?n.getDate()+t.ordinal(n.getDate()):n.getDate()},K:function(n,t){return t.amPM[Tn(n.getHours()>11)]},M:function(n,t){return xu(n.getMonth(),!0,t)},S:function(n){return Kt(n.getSeconds())},U:function(n){return n.getTime()/1e3},W:function(n,t,e){return e.getWeek(n)},Y:function(n){return Kt(n.getFullYear(),4)},d:function(n){return Kt(n.getDate())},h:function(n){return n.getHours()%12?n.getHours()%12:12},i:function(n){return Kt(n.getMinutes())},j:function(n){return n.getDate()},l:function(n,t){return t.weekdays.longhand[n.getDay()]},m:function(n){return Kt(n.getMonth()+1)},n:function(n){return n.getMonth()+1},s:function(n){return n.getSeconds()},u:function(n){return n.getTime()},w:function(n){return n.getDay()},y:function(n){return String(n.getFullYear()).substring(2)}};var db=function(n){var t=n.config,e=t===void 0?is:t,r=n.l10n,i=r===void 0?df:r,s=n.isMobile,a=s===void 0?!1:s;return function(o,l,u){var c=u||i;return e.formatDate!==void 0&&!a?e.formatDate(o,l,c):l.split("").map(function(d,f,p){return ko[d]&&p[f-1]!=="\\"?ko[d](o,c,e):d!=="\\"?d:""}).join("")}},mf=function(n){var t=n.config,e=t===void 0?is:t,r=n.l10n,i=r===void 0?df:r;return function(s,a,o,l){if(!(s!==0&&!s)){var u=l||i,c,d=s;if(s instanceof Date)c=new Date(s.getTime());else if(typeof s!="string"&&s.toFixed!==void 0)c=new Date(s);else if(typeof s=="string"){var f=a||(e||is).dateFormat,p=String(s).trim();if(p==="today")c=new Date,o=!0;else if(e&&e.parseDate)c=e.parseDate(s,f);else if(/Z$/.test(p)||/GMT$/.test(p))c=new Date(s);else{for(var b=void 0,T=[],_=0,O=0,D="";_<f.length;_++){var A=f[_],Y=A==="\\",q=f[_-1]==="\\"||Y;if(Ci[A]&&!q){D+=Ci[A];var se=new RegExp(D).exec(s);se&&(b=!0)&&T[A!=="Y"?"push":"unshift"]({fn:UD[A],val:se[++O]})}else Y||(D+=".")}c=!e||!e.noCalendar?new Date(new Date().getFullYear(),0,1,0,0,0,0):new Date(new Date().setHours(0,0,0,0)),T.forEach(function(H){var Z=H.fn,ye=H.val;return c=Z(c,ye,u)||c}),c=b?c:void 0}}if(!(c instanceof Date&&!isNaN(c.getTime()))){e.errorHandler(new Error("Invalid date provided: "+d));return}return o===!0&&c.setHours(0,0,0,0),c}}};function vn(n,t,e){return e===void 0&&(e=!0),e!==!1?new Date(n.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):n.getTime()-t.getTime()}var YD=function(n,t,e){return n>Math.min(t,e)&&n<Math.max(t,e)},hf=function(n,t,e){return n*3600+t*60+e},jD=function(n){var t=Math.floor(n/3600),e=(n-t*3600)/60;return[t,e,n-t*3600-e*60]},WD={DAY:864e5};function gf(n){var t=n.defaultHour,e=n.defaultMinute,r=n.defaultSeconds;if(n.minDate!==void 0){var i=n.minDate.getHours(),s=n.minDate.getMinutes(),a=n.minDate.getSeconds();t<i&&(t=i),t===i&&e<s&&(e=s),t===i&&e===s&&r<a&&(r=n.minDate.getSeconds())}if(n.maxDate!==void 0){var o=n.maxDate.getHours(),l=n.maxDate.getMinutes();t=Math.min(t,o),t===o&&(e=Math.min(l,e)),t===o&&e===l&&(r=n.maxDate.getSeconds())}return{hours:t,minutes:e,seconds:r}}typeof Object.assign!="function"&&(Object.assign=function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];if(!n)throw TypeError("Cannot convert undefined or null to object");for(var r=function(o){o&&Object.keys(o).forEach(function(l){return n[l]=o[l]})},i=0,s=t;i<s.length;i++){var a=s[i];r(a)}return n});var Xt=function(){return Xt=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++){t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Xt.apply(this,arguments)},$D=function(){for(var n=0,t=0,e=arguments.length;t<e;t++)n+=arguments[t].length;for(var r=Array(n),i=0,t=0;t<e;t++)for(var s=arguments[t],a=0,o=s.length;a<o;a++,i++)r[i]=s[a];return r},CY=300;function MY(n,t){var e={config:Xt(Xt({},is),pt.defaultConfig),l10n:ff};e.parseDate=mf({config:e.config,l10n:e.l10n}),e._handlers=[],e.pluginElements=[],e.loadedPlugins=[],e._bind=T,e._setHoursFromDate=f,e._positionCalendar=us,e.changeMonth=S,e.changeYear=W,e.clear=M,e.close=I,e.onMouseOver=Le,e._createElement=$e,e.createDay=se,e.destroy=j,e.isEnabled=de,e.jumpToDate=D,e.updateValue=mr,e.open=fr,e.redraw=oa,e.set=Ro,e.setDate=Ai,e.toggle=Yn;function r(){e.utils={getDaysInMonth:function(h,g){return h===void 0&&(h=e.currentMonth),g===void 0&&(g=e.currentYear),h===1&&(g%4===0&&g%100!==0||g%400===0)?29:e.l10n.daysInMonth[h]}}}function i(){e.element=e.input=n,e.isOpen=!1,te(),it(),ua(),Au(),r(),e.isMobile||q(),O(),(e.selectedDates.length||e.config.noCalendar)&&(e.config.enableTime&&f(e.config.noCalendar?e.latestSelectedDateObj:void 0),mr(!1)),o();var h=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!e.isMobile&&h&&us(),Xe("onReady")}function s(){var h;return((h=e.calendarContainer)===null||h===void 0?void 0:h.getRootNode()).activeElement||document.activeElement}function a(h){return h.bind(e)}function o(){var h=e.config;h.weekNumbers===!1&&h.showMonths===1||h.noCalendar!==!0&&window.requestAnimationFrame(function(){if(e.calendarContainer!==void 0&&(e.calendarContainer.style.visibility="hidden",e.calendarContainer.style.display="block"),e.daysContainer!==void 0){var g=(e.days.offsetWidth+1)*h.showMonths;e.daysContainer.style.width=g+"px",e.calendarContainer.style.width=g+(e.weekWrapper!==void 0?e.weekWrapper.offsetWidth:0)+"px",e.calendarContainer.style.removeProperty("visibility"),e.calendarContainer.style.removeProperty("display")}})}function l(h){if(e.selectedDates.length===0){var g=e.config.minDate===void 0||vn(new Date,e.config.minDate)>=0?new Date:new Date(e.config.minDate.getTime()),k=gf(e.config);g.setHours(k.hours,k.minutes,k.seconds,g.getMilliseconds()),e.selectedDates=[g],e.latestSelectedDateObj=g}h!==void 0&&h.type!=="blur"&&No(h);var R=e._input.value;d(),mr(),e._input.value!==R&&e._debouncedChange()}function u(h,g){return h%12+12*Tn(g===e.l10n.amPM[1])}function c(h){switch(h%24){case 0:case 12:return 12;default:return h%12}}function d(){if(!(e.hourElement===void 0||e.minuteElement===void 0)){var h=(parseInt(e.hourElement.value.slice(-2),10)||0)%24,g=(parseInt(e.minuteElement.value,10)||0)%60,k=e.secondElement!==void 0?(parseInt(e.secondElement.value,10)||0)%60:0;e.amPM!==void 0&&(h=u(h,e.amPM.textContent));var R=e.config.minTime!==void 0||e.config.minDate&&e.minDateHasTime&&e.latestSelectedDateObj&&vn(e.latestSelectedDateObj,e.config.minDate,!0)===0,G=e.config.maxTime!==void 0||e.config.maxDate&&e.maxDateHasTime&&e.latestSelectedDateObj&&vn(e.latestSelectedDateObj,e.config.maxDate,!0)===0;if(e.config.maxTime!==void 0&&e.config.minTime!==void 0&&e.config.minTime>e.config.maxTime){var X=hf(e.config.minTime.getHours(),e.config.minTime.getMinutes(),e.config.minTime.getSeconds()),_e=hf(e.config.maxTime.getHours(),e.config.maxTime.getMinutes(),e.config.maxTime.getSeconds()),ne=hf(h,g,k);if(ne>_e&&ne<X){var Oe=jD(X);h=Oe[0],g=Oe[1],k=Oe[2]}}else{if(G){var ie=e.config.maxTime!==void 0?e.config.maxTime:e.config.maxDate;h=Math.min(h,ie.getHours()),h===ie.getHours()&&(g=Math.min(g,ie.getMinutes())),g===ie.getMinutes()&&(k=Math.min(k,ie.getSeconds()))}if(R){var pe=e.config.minTime!==void 0?e.config.minTime:e.config.minDate;h=Math.max(h,pe.getHours()),h===pe.getHours()&&g<pe.getMinutes()&&(g=pe.getMinutes()),g===pe.getMinutes()&&(k=Math.max(k,pe.getSeconds()))}}p(h,g,k)}}function f(h){var g=h||e.latestSelectedDateObj;g&&g instanceof Date&&p(g.getHours(),g.getMinutes(),g.getSeconds())}function p(h,g,k){e.latestSelectedDateObj!==void 0&&e.latestSelectedDateObj.setHours(h%24,g,k||0,0),!(!e.hourElement||!e.minuteElement||e.isMobile)&&(e.hourElement.value=Kt(e.config.time_24hr?h:(12+h)%12+12*Tn(h%12===0)),e.minuteElement.value=Kt(g),e.amPM!==void 0&&(e.amPM.textContent=e.l10n.amPM[Tn(h>=12)]),e.secondElement!==void 0&&(e.secondElement.value=Kt(k)))}function b(h){var g=_n(h),k=parseInt(g.value)+(h.delta||0);(k/1e3>1||h.key==="Enter"&&!/[^\d]/.test(k.toString()))&&W(k)}function T(h,g,k,R){if(g instanceof Array)return g.forEach(function(G){return T(h,G,k,R)});if(h instanceof Array)return h.forEach(function(G){return T(G,g,k,R)});h.addEventListener(g,k,R),e._handlers.push({remove:function(){return h.removeEventListener(g,k,R)}})}function _(){Xe("onChange")}function O(){if(e.config.wrap&&["open","close","toggle","clear"].forEach(function(k){Array.prototype.forEach.call(e.element.querySelectorAll("[data-"+k+"]"),function(R){return T(R,"click",e[k])})}),e.isMobile){cs();return}var h=lb(Yt,50);if(e._debouncedChange=lb(_,CY),e.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&T(e.daysContainer,"mouseover",function(k){e.config.mode==="range"&&Le(_n(k))}),T(e._input,"keydown",He),e.calendarContainer!==void 0&&T(e.calendarContainer,"keydown",He),!e.config.inline&&!e.config.static&&T(window,"resize",h),window.ontouchstart!==void 0?T(window.document,"touchstart",P):T(window.document,"mousedown",P),T(window.document,"focus",P,{capture:!0}),e.config.clickOpens===!0&&(T(e._input,"focus",e.open),T(e._input,"click",e.open)),e.daysContainer!==void 0&&(T(e.monthNav,"click",Cf),T(e.monthNav,["keyup","increment"],b),T(e.daysContainer,"click",Un)),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0){var g=function(k){return _n(k).select()};T(e.timeContainer,["increment"],l),T(e.timeContainer,"blur",l,{capture:!0}),T(e.timeContainer,"click",A),T([e.hourElement,e.minuteElement],["focus","click"],g),e.secondElement!==void 0&&T(e.secondElement,"focus",function(){return e.secondElement&&e.secondElement.select()}),e.amPM!==void 0&&T(e.amPM,"click",function(k){l(k)})}e.config.allowInput&&T(e._input,"blur",xe)}function D(h,g){var k=h!==void 0?e.parseDate(h):e.latestSelectedDateObj||(e.config.minDate&&e.config.minDate>e.now?e.config.minDate:e.config.maxDate&&e.config.maxDate<e.now?e.config.maxDate:e.now),R=e.currentYear,G=e.currentMonth;try{k!==void 0&&(e.currentYear=k.getFullYear(),e.currentMonth=k.getMonth())}catch(X){X.message="Invalid date supplied: "+k,e.config.errorHandler(X)}g&&e.currentYear!==R&&(Xe("onYearChange"),C()),g&&(e.currentYear!==R||e.currentMonth!==G)&&Xe("onMonthChange"),e.redraw()}function A(h){var g=_n(h);~g.className.indexOf("arrow")&&Y(h,g.classList.contains("arrowUp")?1:-1)}function Y(h,g,k){var R=h&&_n(h),G=k||R&&R.parentNode&&R.parentNode.firstChild,X=ca("increment");X.delta=g,G&&G.dispatchEvent(X)}function q(){var h=window.document.createDocumentFragment();if(e.calendarContainer=$e("div","flatpickr-calendar"),e.calendarContainer.tabIndex=-1,!e.config.noCalendar){if(h.appendChild(oe()),e.innerContainer=$e("div","flatpickr-innerContainer"),e.config.weekNumbers){var g=w(),k=g.weekWrapper,R=g.weekNumbers;e.innerContainer.appendChild(k),e.weekNumbers=R,e.weekWrapper=k}e.rContainer=$e("div","flatpickr-rContainer"),e.rContainer.appendChild(y()),e.daysContainer||(e.daysContainer=$e("div","flatpickr-days"),e.daysContainer.tabIndex=-1),K(),e.rContainer.appendChild(e.daysContainer),e.innerContainer.appendChild(e.rContainer),h.appendChild(e.innerContainer)}e.config.enableTime&&h.appendChild(m()),Qt(e.calendarContainer,"rangeMode",e.config.mode==="range"),Qt(e.calendarContainer,"animate",e.config.animate===!0),Qt(e.calendarContainer,"multiMonth",e.config.showMonths>1),e.calendarContainer.appendChild(h);var G=e.config.appendTo!==void 0&&e.config.appendTo.nodeType!==void 0;if((e.config.inline||e.config.static)&&(e.calendarContainer.classList.add(e.config.inline?"inline":"static"),e.config.inline&&(!G&&e.element.parentNode?e.element.parentNode.insertBefore(e.calendarContainer,e._input.nextSibling):e.config.appendTo!==void 0&&e.config.appendTo.appendChild(e.calendarContainer)),e.config.static)){var X=$e("div","flatpickr-wrapper");e.element.parentNode&&e.element.parentNode.insertBefore(X,e.element),X.appendChild(e.element),e.altInput&&X.appendChild(e.altInput),X.appendChild(e.calendarContainer)}!e.config.static&&!e.config.inline&&(e.config.appendTo!==void 0?e.config.appendTo:window.document.body).appendChild(e.calendarContainer)}function se(h,g,k,R){var G=de(g,!0),X=$e("span",h,g.getDate().toString());return X.dateObj=g,X.$i=R,X.setAttribute("aria-label",e.formatDate(g,e.config.ariaDateFormat)),h.indexOf("hidden")===-1&&vn(g,e.now)===0&&(e.todayDateElem=X,X.classList.add("today"),X.setAttribute("aria-current","date")),G?(X.tabIndex=-1,Lr(g)&&(X.classList.add("selected"),e.selectedDateElem=X,e.config.mode==="range"&&(Qt(X,"startRange",e.selectedDates[0]&&vn(g,e.selectedDates[0],!0)===0),Qt(X,"endRange",e.selectedDates[1]&&vn(g,e.selectedDates[1],!0)===0),h==="nextMonthDay"&&X.classList.add("inRange")))):X.classList.add("flatpickr-disabled"),e.config.mode==="range"&&xt(g)&&!Lr(g)&&X.classList.add("inRange"),e.weekNumbers&&e.config.showMonths===1&&h!=="prevMonthDay"&&R%7===6&&e.weekNumbers.insertAdjacentHTML("beforeend","<span class='flatpickr-day'>"+e.config.getWeek(g)+"</span>"),Xe("onDayCreate",X),X}function H(h){h.focus(),e.config.mode==="range"&&Le(h)}function Z(h){for(var g=h>0?0:e.config.showMonths-1,k=h>0?e.config.showMonths:-1,R=g;R!=k;R+=h)for(var G=e.daysContainer.children[R],X=h>0?0:G.children.length-1,_e=h>0?G.children.length:-1,ne=X;ne!=_e;ne+=h){var Oe=G.children[ne];if(Oe.className.indexOf("hidden")===-1&&de(Oe.dateObj))return Oe}}function ye(h,g){for(var k=h.className.indexOf("Month")===-1?h.dateObj.getMonth():e.currentMonth,R=g>0?e.config.showMonths:-1,G=g>0?1:-1,X=k-e.currentMonth;X!=R;X+=G)for(var _e=e.daysContainer.children[X],ne=k-e.currentMonth===X?h.$i+g:g<0?_e.children.length-1:0,Oe=_e.children.length,ie=ne;ie>=0&&ie<Oe&&ie!=(g>0?Oe:-1);ie+=G){var pe=_e.children[ie];if(pe.className.indexOf("hidden")===-1&&de(pe.dateObj)&&Math.abs(h.$i-ie)>=Math.abs(g))return H(pe)}e.changeMonth(G),we(Z(G),0)}function we(h,g){var k=s(),R=be(k||document.body),G=h!==void 0?h:R?k:e.selectedDateElem!==void 0&&be(e.selectedDateElem)?e.selectedDateElem:e.todayDateElem!==void 0&&be(e.todayDateElem)?e.todayDateElem:Z(g>0?1:-1);G===void 0?e._input.focus():R?ye(G,g):H(G)}function V(h,g){for(var k=(new Date(h,g,1).getDay()-e.l10n.firstDayOfWeek+7)%7,R=e.utils.getDaysInMonth((g-1+12)%12,h),G=e.utils.getDaysInMonth(g,h),X=window.document.createDocumentFragment(),_e=e.config.showMonths>1,ne=_e?"prevMonthDay hidden":"prevMonthDay",Oe=_e?"nextMonthDay hidden":"nextMonthDay",ie=R+1-k,pe=0;ie<=R;ie++,pe++)X.appendChild(se("flatpickr-day "+ne,new Date(h,g-1,ie),ie,pe));for(ie=1;ie<=G;ie++,pe++)X.appendChild(se("flatpickr-day",new Date(h,g,ie),ie,pe));for(var ze=G+1;ze<=42-k&&(e.config.showMonths===1||pe%7!==0);ze++,pe++)X.appendChild(se("flatpickr-day "+Oe,new Date(h,g+1,ze%G),ze,pe));var jn=$e("div","dayContainer");return jn.appendChild(X),jn}function K(){if(e.daysContainer!==void 0){Eu(e.daysContainer),e.weekNumbers&&Eu(e.weekNumbers);for(var h=document.createDocumentFragment(),g=0;g<e.config.showMonths;g++){var k=new Date(e.currentYear,e.currentMonth,1);k.setMonth(e.currentMonth+g),h.appendChild(V(k.getFullYear(),k.getMonth()))}e.daysContainer.appendChild(h),e.days=e.daysContainer.firstChild,e.config.mode==="range"&&e.selectedDates.length===1&&Le()}}function C(){if(!(e.config.showMonths>1||e.config.monthSelectorType!=="dropdown")){var h=function(R){return e.config.minDate!==void 0&&e.currentYear===e.config.minDate.getFullYear()&&R<e.config.minDate.getMonth()?!1:!(e.config.maxDate!==void 0&&e.currentYear===e.config.maxDate.getFullYear()&&R>e.config.maxDate.getMonth())};e.monthsDropdownContainer.tabIndex=-1,e.monthsDropdownContainer.innerHTML="";for(var g=0;g<12;g++)if(!!h(g)){var k=$e("option","flatpickr-monthDropdown-month");k.value=new Date(e.currentYear,g).getMonth().toString(),k.textContent=xu(g,e.config.shorthandCurrentMonth,e.l10n),k.tabIndex=-1,e.currentMonth===g&&(k.selected=!0),e.monthsDropdownContainer.appendChild(k)}}}function J(){var h=$e("div","flatpickr-month"),g=window.document.createDocumentFragment(),k;e.config.showMonths>1||e.config.monthSelectorType==="static"?k=$e("span","cur-month"):(e.monthsDropdownContainer=$e("select","flatpickr-monthDropdown-months"),e.monthsDropdownContainer.setAttribute("aria-label",e.l10n.monthAriaLabel),T(e.monthsDropdownContainer,"change",function(_e){var ne=_n(_e),Oe=parseInt(ne.value,10);e.changeMonth(Oe-e.currentMonth),Xe("onMonthChange")}),C(),k=e.monthsDropdownContainer);var R=Du("cur-year",{tabindex:"-1"}),G=R.getElementsByTagName("input")[0];G.setAttribute("aria-label",e.l10n.yearAriaLabel),e.config.minDate&&G.setAttribute("min",e.config.minDate.getFullYear().toString()),e.config.maxDate&&(G.setAttribute("max",e.config.maxDate.getFullYear().toString()),G.disabled=!!e.config.minDate&&e.config.minDate.getFullYear()===e.config.maxDate.getFullYear());var X=$e("div","flatpickr-current-month");return X.appendChild(k),X.appendChild(R),g.appendChild(X),h.appendChild(g),{container:h,yearElement:G,monthElement:k}}function $(){Eu(e.monthNav),e.monthNav.appendChild(e.prevMonthNav),e.config.showMonths&&(e.yearElements=[],e.monthElements=[]);for(var h=e.config.showMonths;h--;){var g=J();e.yearElements.push(g.yearElement),e.monthElements.push(g.monthElement),e.monthNav.appendChild(g.container)}e.monthNav.appendChild(e.nextMonthNav)}function oe(){return e.monthNav=$e("div","flatpickr-months"),e.yearElements=[],e.monthElements=[],e.prevMonthNav=$e("span","flatpickr-prev-month"),e.prevMonthNav.innerHTML=e.config.prevArrow,e.nextMonthNav=$e("span","flatpickr-next-month"),e.nextMonthNav.innerHTML=e.config.nextArrow,$(),Object.defineProperty(e,"_hidePrevMonthArrow",{get:function(){return e.__hidePrevMonthArrow},set:function(h){e.__hidePrevMonthArrow!==h&&(Qt(e.prevMonthNav,"flatpickr-disabled",h),e.__hidePrevMonthArrow=h)}}),Object.defineProperty(e,"_hideNextMonthArrow",{get:function(){return e.__hideNextMonthArrow},set:function(h){e.__hideNextMonthArrow!==h&&(Qt(e.nextMonthNav,"flatpickr-disabled",h),e.__hideNextMonthArrow=h)}}),e.currentYearElement=e.yearElements[0],da(),e.monthNav}function m(){e.calendarContainer.classList.add("hasTime"),e.config.noCalendar&&e.calendarContainer.classList.add("noCalendar");var h=gf(e.config);e.timeContainer=$e("div","flatpickr-time"),e.timeContainer.tabIndex=-1;var g=$e("span","flatpickr-time-separator",":"),k=Du("flatpickr-hour",{"aria-label":e.l10n.hourAriaLabel});e.hourElement=k.getElementsByTagName("input")[0];var R=Du("flatpickr-minute",{"aria-label":e.l10n.minuteAriaLabel});if(e.minuteElement=R.getElementsByTagName("input")[0],e.hourElement.tabIndex=e.minuteElement.tabIndex=-1,e.hourElement.value=Kt(e.latestSelectedDateObj?e.latestSelectedDateObj.getHours():e.config.time_24hr?h.hours:c(h.hours)),e.minuteElement.value=Kt(e.latestSelectedDateObj?e.latestSelectedDateObj.getMinutes():h.minutes),e.hourElement.setAttribute("step",e.config.hourIncrement.toString()),e.minuteElement.setAttribute("step",e.config.minuteIncrement.toString()),e.hourElement.setAttribute("min",e.config.time_24hr?"0":"1"),e.hourElement.setAttribute("max",e.config.time_24hr?"23":"12"),e.hourElement.setAttribute("maxlength","2"),e.minuteElement.setAttribute("min","0"),e.minuteElement.setAttribute("max","59"),e.minuteElement.setAttribute("maxlength","2"),e.timeContainer.appendChild(k),e.timeContainer.appendChild(g),e.timeContainer.appendChild(R),e.config.time_24hr&&e.timeContainer.classList.add("time24hr"),e.config.enableSeconds){e.timeContainer.classList.add("hasSeconds");var G=Du("flatpickr-second");e.secondElement=G.getElementsByTagName("input")[0],e.secondElement.value=Kt(e.latestSelectedDateObj?e.latestSelectedDateObj.getSeconds():h.seconds),e.secondElement.setAttribute("step",e.minuteElement.getAttribute("step")),e.secondElement.setAttribute("min","0"),e.secondElement.setAttribute("max","59"),e.secondElement.setAttribute("maxlength","2"),e.timeContainer.appendChild($e("span","flatpickr-time-separator",":")),e.timeContainer.appendChild(G)}return e.config.time_24hr||(e.amPM=$e("span","flatpickr-am-pm",e.l10n.amPM[Tn((e.latestSelectedDateObj?e.hourElement.value:e.config.defaultHour)>11)]),e.amPM.title=e.l10n.toggleTitle,e.amPM.tabIndex=-1,e.timeContainer.appendChild(e.amPM)),e.timeContainer}function y(){e.weekdayContainer?Eu(e.weekdayContainer):e.weekdayContainer=$e("div","flatpickr-weekdays");for(var h=e.config.showMonths;h--;){var g=$e("div","flatpickr-weekdaycontainer");e.weekdayContainer.appendChild(g)}return v(),e.weekdayContainer}function v(){if(!!e.weekdayContainer){var h=e.l10n.firstDayOfWeek,g=$D(e.l10n.weekdays.shorthand);h>0&&h<g.length&&(g=$D(g.splice(h,g.length),g.splice(0,h)));for(var k=e.config.showMonths;k--;)e.weekdayContainer.children[k].innerHTML=` +`}get ignoreGlobalQuery(){return this._ignoreGlobalQuery}applyQueryToTasks(t){this.debug(`[search] Executing query: ${this.formatQueryForLogging()}`);let e=new ts(this.tasksFile,t),r;try{this.filters.forEach(l=>{r=l.statement,t=t.filter(u=>l.filterFunction(u,e))}),r=void 0;let{debugSettings:i}=le(),s=i.ignoreSortInstructions?t:vo.by(this.sorting,t,e),a=s.slice(0,this.limit),o=new _o(this.grouping,a,e);return this._taskGroupLimit!==void 0&&o.applyTaskLimit(this._taskGroupLimit),new ra(o,s.length)}catch(i){let a=Xs("Search failed",i);return r&&(a=Ln.generateErrorMessage(r,a)),ra.fromError(a)}}parseHideOptions(t){let e=t.anyPlaceholdersExpanded,r=e.match(this.hideOptionsRegexp);if(r===null)return;let i=r[1].toLowerCase()==="hide",s=r[2].toLowerCase();if(iE(this._queryLayoutOptions,s,i)){this.saveLayoutStatement(t);return}if(kS(this._taskLayoutOptions,s,!i)){this.saveLayoutStatement(t);return}this.setError("do not understand hide/show option",new gn(e,e))}saveLayoutStatement(t){this.layoutStatements.push(t)}parseFilter(t,e){var i;let r=Su(t);return r!=null?(r.filter?(r.filter.setStatement(e),this._filters.push(r.filter)):this.setError((i=r.error)!=null?i:"Unknown error",e),!0):!1}parseLimit(t){let e=t.match(this.limitRegexp);if(e===null){this.setError("do not understand query limit",new gn(t,t));return}let r=Number.parseInt(e[3],10);e[1]!==void 0?this._taskGroupLimit=r:this._limit=r}parseSortBy(t,e){let r=CE(t);return r?(r.setStatement(e),this._sorting.push(r),!0):!1}parseGroupBy(t,e){let r=ME(t);return r?(r.setStatement(e),this._grouping.push(r),!0):!1}generateQueryId(t){return IE+=1,IE.toString().padStart(t,"0")}debug(t,e){this.logger.debugWithId(this._queryId,`"${this.filePath}": ${t}`,e)}};var ib=[{name:"TQ_explain",type:"checkbox",display:"explain",handler:"instruction",trueValue:"explain",falseValue:""},{name:"TQ_short_mode",type:"checkbox",display:"short mode",handler:"instruction",trueValue:"short mode",falseValue:"full mode"},{name:"TQ_show_tree",type:"checkbox",display:"tree",handler:"showAndHide"},{name:"TQ_show_tags",type:"checkbox",display:"tags",handler:"showAndHide"},{name:"TQ_show_id",type:"checkbox",display:"id",handler:"showAndHide"},{name:"TQ_show_depends_on",type:"checkbox",display:"depends on",handler:"showAndHide"},{name:"TQ_show_priority",type:"checkbox",display:"priority",handler:"showAndHide"},{name:"TQ_show_recurrence_rule",type:"checkbox",display:"recurrence rule",handler:"showAndHide"},{name:"TQ_show_on_completion",type:"checkbox",display:"on completion",handler:"showAndHide"},{name:"TQ_show_created_date",type:"checkbox",display:"created date",handler:"showAndHide"},{name:"TQ_show_start_date",type:"checkbox",display:"start date",handler:"showAndHide"},{name:"TQ_show_scheduled_date",type:"checkbox",display:"scheduled date",handler:"showAndHide"},{name:"TQ_show_due_date",type:"checkbox",display:"due date",handler:"showAndHide"},{name:"TQ_show_cancelled_date",type:"checkbox",display:"cancelled date",handler:"showAndHide"},{name:"TQ_show_done_date",type:"checkbox",display:"done date",handler:"showAndHide"},{name:"TQ_show_urgency",type:"checkbox",display:"urgency",handler:"showAndHide"},{name:"TQ_show_backlink",type:"checkbox",display:"backlink",handler:"showAndHide"},{name:"TQ_show_edit_button",type:"checkbox",display:"edit button",handler:"showAndHide"},{name:"TQ_show_postpone_button",type:"checkbox",display:"postpone button",handler:"showAndHide"},{name:"TQ_show_task_count",type:"checkbox",display:"task count",handler:"showAndHide"},{name:"TQ_extra_instructions",type:"text",handler:"addValue"}],Oi=class{source(t){return t?ib.map(r=>this.generateInstruction(t,r)).filter(r=>r!=="").join(` +`):""}generateInstruction(t,e){let r=t.hasProperty(e.name),i=t.property(e.name);switch(e.handler){case"instruction":return r&&(i?e.trueValue:e.falseValue)||"";case"showAndHide":return r&&(i?"show "+e.display:"hide "+e.display)||"";case"addValue":return r&&i||"";default:throw new Error("Unknown handler type: "+e.handler+".")}}query(t){return new Ln(this.source(t),t)}allPropertyNames(){return ib.map(t=>t.name)}allPropertyNamesSorted(){return this.allPropertyNames().sort((t,e)=>t.localeCompare(e))}propertyType(t){var e,r;return(r=(e=ib.find(i=>i.name===t))==null?void 0:e.type)!=null?r:void 0}metaBindPluginWidgets(){return"\nshort mode: `INPUT[toggle:TQ_short_mode]`\ntree: `INPUT[toggle:TQ_show_tree]`\ntags: `INPUT[toggle:TQ_show_tags]`\nid: `INPUT[toggle:TQ_show_id]` depends on: `INPUT[toggle:TQ_show_depends_on]`\npriority: `INPUT[toggle:TQ_show_priority]`\nrecurrence rule: `INPUT[toggle:TQ_show_recurrence_rule]` on completion: `INPUT[toggle:TQ_show_on_completion]`\nstart date: `INPUT[toggle:TQ_show_start_date]` scheduled date: `INPUT[toggle:TQ_show_scheduled_date]` due date: `INPUT[toggle:TQ_show_due_date]`\ncreated date: `INPUT[toggle:TQ_show_created_date]` cancelled date: `INPUT[toggle:TQ_show_cancelled_date]` done date: `INPUT[toggle:TQ_show_done_date]`\nurgency: `INPUT[toggle:TQ_show_urgency]`\nbacklink: `INPUT[toggle:TQ_show_backlink]`\nedit button: `INPUT[toggle:TQ_show_edit_button]` postpone button: `INPUT[toggle:TQ_show_postpone_button]`\ntask count: `INPUT[toggle:TQ_show_task_count]`\nextra instructions: `INPUT[textArea:TQ_extra_instructions]`\nexplain: `INPUT[toggle:TQ_explain]`\n"}};function FE(n,t){return F(this,null,function*(){yield n.fileManager.processFrontMatter(t,e=>{let r=new Oi().allPropertyNamesSorted(),i=!1;r.forEach(s=>{s in e||(e[s]=null,i=!0)}),i?new sb.Notice("Properties updated successfully."):new sb.Notice("All supported properties are already present.")})})}var of=class{get app(){return this.plugin.app}constructor({plugin:t}){this.plugin=t,t.addCommand({id:"edit-task",name:"Create or edit task",icon:"pencil",editorCheckCallback:(e,r,i)=>nE(e,r,i,this.app,this.plugin.getTasks())}),t.addCommand({id:"toggle-done",name:"Toggle task done",icon:"check-in-circle",editorCheckCallback:rE}),t.addCommand({id:"add-query-file-defaults-properties",name:"Add all Query File Defaults properties",icon:"settings",checkCallback:e=>{let r=this.app.workspace.getActiveFile();return!r||r.extension!=="md"?!1:(e||this.ensureQueryFileDefaultsFrontmatter(r).catch(console.error),!0)}})}ensureQueryFileDefaultsFrontmatter(t){return F(this,null,function*(){let{app:e}=this;yield FE(e,t)})}};var ns=class{constructor(t=ns.empty){this._source=t}static getInstance(){return ns.instance||(ns.instance=new ns),ns.instance}set(t){this._source=t}query(t=void 0){let e=new Ln(this._source,t);return e.removeIllegalGlobalQueryInstructions(),e}hasInstructions(){return this._source.trim()!==ns.empty}},fr=ns;fr.empty="";Ws();var lf=class{constructor({obsidianEvents:t}){this.logger=sn.getLogger("tasks.Events");this.obsidianEvents=t}onCacheUpdate(t){return this.logger.debug("TasksEvents.onCacheUpdate()"),this.obsidianEvents.on("obsidian-tasks-plugin:cache-update",t)}triggerCacheUpdate(t){this.logger.debug("TasksEvents.triggerCacheUpdate()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:cache-update",t)}onRequestCacheUpdate(t){return this.logger.debug("TasksEvents.onRequestCacheUpdate()"),this.obsidianEvents.on("obsidian-tasks-plugin:request-cache-update",t)}triggerRequestCacheUpdate(t){this.logger.debug("TasksEvents.triggerRequestCacheUpdate()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:request-cache-update",t)}off(t){this.logger.debug("TasksEvents.off()"),this.obsidianEvents.offref(t)}};var ox=require("obsidian");Mn();Is();Nt();var ax=require("obsidian");Mn();rn();Is();wi();Nt();ii();Dr();Ga();var ab=class{constructor(t){this.newStatus=t}apply(t){return this.isCheckedForTask(t)?[t]:t.handleNewStatusWithRecurrenceInUsersOrder(this.newStatus)}instructionDisplayName(){return`Change status to: [${this.newStatus.symbol}] ${this.newStatus.name}`}isCheckedForTask(t){return this.newStatus.symbol===t.status.symbol}};function LE(n){let t=[],e=new et().coreStatuses.map(r=>r.symbol);for(let r of[!0,!1])for(let i of n.registeredStatuses)e.includes(i.symbol)===r&&t.push(new ab(i));return t}var UE=require("obsidian");var ob="---",wo=class{apply(t){throw new Error("MenuDividerInstruction.apply(): Method not implemented.")}instructionDisplayName(){return ob}isCheckedForTask(t){return!1}};function ni(n,t){return F(this,null,function*(){yield Nn({originalTask:n,newTasks:t})})}var rs=class extends UE.Menu{constructor(e){super();this.taskSaver=e}addItemsForInstructions(e,r){for(let i of e)this.addItemForInstruction(r,i)}addItemForInstruction(e,r){r.instructionDisplayName()===ob?this.addSeparator():this.addItem(i=>this.getMenuItemCallback(e,i,r))}getMenuItemCallback(e,r,i){r.setTitle(i.instructionDisplayName()).setChecked(i.isCheckedForTask(e)).onClick(()=>F(this,null,function*(){let s=i.apply(e);(s.length!==1||!Object.is(s[0],e))&&(yield this.taskSaver(e,s))}))}};var uf=class extends rs{constructor(t,e,r=ni){super(r);let i=LE(t);this.addItemsForInstructions(i,e)}};var cf=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],is={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(n){return typeof console!="undefined"&&console.warn(n)},getWeek:function(n){var t=new Date(n.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var e=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-e.getTime())/864e5-3+(e.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1};var df={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(n){var t=n%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},ff=df;var Qt=function(n,t){return t===void 0&&(t=2),("000"+n).slice(t*-1)},bn=function(n){return n===!0?1:0};function lb(n,t){var e;return function(){var r=this,i=arguments;clearTimeout(e),e=setTimeout(function(){return n.apply(r,i)},t)}}var pf=function(n){return n instanceof Array?n:[n]};function Xt(n,t,e){if(e===!0)return n.classList.add(t);n.classList.remove(t)}function $e(n,t,e){var r=window.document.createElement(n);return t=t||"",e=e||"",r.className=t,e!==void 0&&(r.textContent=e),r}function Du(n){for(;n.firstChild;)n.removeChild(n.firstChild)}function ub(n,t){if(t(n))return n;if(n.parentNode)return ub(n.parentNode,t)}function Eu(n,t){var e=$e("div","numInputWrapper"),r=$e("input","numInput "+n),i=$e("span","arrowUp"),s=$e("span","arrowDown");if(navigator.userAgent.indexOf("MSIE 9.0")===-1?r.type="number":(r.type="text",r.pattern="\\d*"),t!==void 0)for(var a in t)r.setAttribute(a,t[a]);return e.appendChild(r),e.appendChild(i),e.appendChild(s),e}function Tn(n){try{if(typeof n.composedPath=="function"){var t=n.composedPath();return t[0]}return n.target}catch(e){return n.target}}var cb=function(){},xu=function(n,t,e){return e.months[t?"shorthand":"longhand"][n]},YE={D:cb,F:function(n,t,e){n.setMonth(e.months.longhand.indexOf(t))},G:function(n,t){n.setHours((n.getHours()>=12?12:0)+parseFloat(t))},H:function(n,t){n.setHours(parseFloat(t))},J:function(n,t){n.setDate(parseFloat(t))},K:function(n,t,e){n.setHours(n.getHours()%12+12*bn(new RegExp(e.amPM[1],"i").test(t)))},M:function(n,t,e){n.setMonth(e.months.shorthand.indexOf(t))},S:function(n,t){n.setSeconds(parseFloat(t))},U:function(n,t){return new Date(parseFloat(t)*1e3)},W:function(n,t,e){var r=parseInt(t),i=new Date(n.getFullYear(),0,2+(r-1)*7,0,0,0,0);return i.setDate(i.getDate()-i.getDay()+e.firstDayOfWeek),i},Y:function(n,t){n.setFullYear(parseFloat(t))},Z:function(n,t){return new Date(t)},d:function(n,t){n.setDate(parseFloat(t))},h:function(n,t){n.setHours((n.getHours()>=12?12:0)+parseFloat(t))},i:function(n,t){n.setMinutes(parseFloat(t))},j:function(n,t){n.setDate(parseFloat(t))},l:cb,m:function(n,t){n.setMonth(parseFloat(t)-1)},n:function(n,t){n.setMonth(parseFloat(t)-1)},s:function(n,t){n.setSeconds(parseFloat(t))},u:function(n,t){return new Date(parseFloat(t))},w:cb,y:function(n,t){n.setFullYear(2e3+parseFloat(t))}},Ci={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},ko={Z:function(n){return n.toISOString()},D:function(n,t,e){return t.weekdays.shorthand[ko.w(n,t,e)]},F:function(n,t,e){return xu(ko.n(n,t,e)-1,!1,t)},G:function(n,t,e){return Qt(ko.h(n,t,e))},H:function(n){return Qt(n.getHours())},J:function(n,t){return t.ordinal!==void 0?n.getDate()+t.ordinal(n.getDate()):n.getDate()},K:function(n,t){return t.amPM[bn(n.getHours()>11)]},M:function(n,t){return xu(n.getMonth(),!0,t)},S:function(n){return Qt(n.getSeconds())},U:function(n){return n.getTime()/1e3},W:function(n,t,e){return e.getWeek(n)},Y:function(n){return Qt(n.getFullYear(),4)},d:function(n){return Qt(n.getDate())},h:function(n){return n.getHours()%12?n.getHours()%12:12},i:function(n){return Qt(n.getMinutes())},j:function(n){return n.getDate()},l:function(n,t){return t.weekdays.longhand[n.getDay()]},m:function(n){return Qt(n.getMonth()+1)},n:function(n){return n.getMonth()+1},s:function(n){return n.getSeconds()},u:function(n){return n.getTime()},w:function(n){return n.getDay()},y:function(n){return String(n.getFullYear()).substring(2)}};var db=function(n){var t=n.config,e=t===void 0?is:t,r=n.l10n,i=r===void 0?df:r,s=n.isMobile,a=s===void 0?!1:s;return function(o,l,u){var c=u||i;return e.formatDate!==void 0&&!a?e.formatDate(o,l,c):l.split("").map(function(d,f,p){return ko[d]&&p[f-1]!=="\\"?ko[d](o,c,e):d!=="\\"?d:""}).join("")}},mf=function(n){var t=n.config,e=t===void 0?is:t,r=n.l10n,i=r===void 0?df:r;return function(s,a,o,l){if(!(s!==0&&!s)){var u=l||i,c,d=s;if(s instanceof Date)c=new Date(s.getTime());else if(typeof s!="string"&&s.toFixed!==void 0)c=new Date(s);else if(typeof s=="string"){var f=a||(e||is).dateFormat,p=String(s).trim();if(p==="today")c=new Date,o=!0;else if(e&&e.parseDate)c=e.parseDate(s,f);else if(/Z$/.test(p)||/GMT$/.test(p))c=new Date(s);else{for(var b=void 0,T=[],_=0,O=0,E="";_<f.length;_++){var A=f[_],Y=A==="\\",q=f[_-1]==="\\"||Y;if(Ci[A]&&!q){E+=Ci[A];var se=new RegExp(E).exec(s);se&&(b=!0)&&T[A!=="Y"?"push":"unshift"]({fn:YE[A],val:se[++O]})}else Y||(E+=".")}c=!e||!e.noCalendar?new Date(new Date().getFullYear(),0,1,0,0,0,0):new Date(new Date().setHours(0,0,0,0)),T.forEach(function(H){var Z=H.fn,ye=H.val;return c=Z(c,ye,u)||c}),c=b?c:void 0}}if(!(c instanceof Date&&!isNaN(c.getTime()))){e.errorHandler(new Error("Invalid date provided: "+d));return}return o===!0&&c.setHours(0,0,0,0),c}}};function _n(n,t,e){return e===void 0&&(e=!0),e!==!1?new Date(n.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):n.getTime()-t.getTime()}var jE=function(n,t,e){return n>Math.min(t,e)&&n<Math.max(t,e)},hf=function(n,t,e){return n*3600+t*60+e},WE=function(n){var t=Math.floor(n/3600),e=(n-t*3600)/60;return[t,e,n-t*3600-e*60]},$E={DAY:864e5};function gf(n){var t=n.defaultHour,e=n.defaultMinute,r=n.defaultSeconds;if(n.minDate!==void 0){var i=n.minDate.getHours(),s=n.minDate.getMinutes(),a=n.minDate.getSeconds();t<i&&(t=i),t===i&&e<s&&(e=s),t===i&&e===s&&r<a&&(r=n.minDate.getSeconds())}if(n.maxDate!==void 0){var o=n.maxDate.getHours(),l=n.maxDate.getMinutes();t=Math.min(t,o),t===o&&(e=Math.min(l,e)),t===o&&e===l&&(r=n.maxDate.getSeconds())}return{hours:t,minutes:e,seconds:r}}typeof Object.assign!="function"&&(Object.assign=function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];if(!n)throw TypeError("Cannot convert undefined or null to object");for(var r=function(o){o&&Object.keys(o).forEach(function(l){return n[l]=o[l]})},i=0,s=t;i<s.length;i++){var a=s[i];r(a)}return n});var Zt=function(){return Zt=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++){t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Zt.apply(this,arguments)},qE=function(){for(var n=0,t=0,e=arguments.length;t<e;t++)n+=arguments[t].length;for(var r=Array(n),i=0,t=0;t<e;t++)for(var s=arguments[t],a=0,o=s.length;a<o;a++,i++)r[i]=s[a];return r},MY=300;function RY(n,t){var e={config:Zt(Zt({},is),pt.defaultConfig),l10n:ff};e.parseDate=mf({config:e.config,l10n:e.l10n}),e._handlers=[],e.pluginElements=[],e.loadedPlugins=[],e._bind=T,e._setHoursFromDate=f,e._positionCalendar=us,e.changeMonth=S,e.changeYear=W,e.clear=M,e.close=I,e.onMouseOver=Le,e._createElement=$e,e.createDay=se,e.destroy=j,e.isEnabled=ce,e.jumpToDate=E,e.updateValue=hr,e.open=pr,e.redraw=oa,e.set=Ro,e.setDate=Ai,e.toggle=jn;function r(){e.utils={getDaysInMonth:function(h,g){return h===void 0&&(h=e.currentMonth),g===void 0&&(g=e.currentYear),h===1&&(g%4===0&&g%100!==0||g%400===0)?29:e.l10n.daysInMonth[h]}}}function i(){e.element=e.input=n,e.isOpen=!1,te(),it(),ua(),Au(),r(),e.isMobile||q(),O(),(e.selectedDates.length||e.config.noCalendar)&&(e.config.enableTime&&f(e.config.noCalendar?e.latestSelectedDateObj:void 0),hr(!1)),o();var h=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!e.isMobile&&h&&us(),Xe("onReady")}function s(){var h;return((h=e.calendarContainer)===null||h===void 0?void 0:h.getRootNode()).activeElement||document.activeElement}function a(h){return h.bind(e)}function o(){var h=e.config;h.weekNumbers===!1&&h.showMonths===1||h.noCalendar!==!0&&window.requestAnimationFrame(function(){if(e.calendarContainer!==void 0&&(e.calendarContainer.style.visibility="hidden",e.calendarContainer.style.display="block"),e.daysContainer!==void 0){var g=(e.days.offsetWidth+1)*h.showMonths;e.daysContainer.style.width=g+"px",e.calendarContainer.style.width=g+(e.weekWrapper!==void 0?e.weekWrapper.offsetWidth:0)+"px",e.calendarContainer.style.removeProperty("visibility"),e.calendarContainer.style.removeProperty("display")}})}function l(h){if(e.selectedDates.length===0){var g=e.config.minDate===void 0||_n(new Date,e.config.minDate)>=0?new Date:new Date(e.config.minDate.getTime()),k=gf(e.config);g.setHours(k.hours,k.minutes,k.seconds,g.getMilliseconds()),e.selectedDates=[g],e.latestSelectedDateObj=g}h!==void 0&&h.type!=="blur"&&No(h);var R=e._input.value;d(),hr(),e._input.value!==R&&e._debouncedChange()}function u(h,g){return h%12+12*bn(g===e.l10n.amPM[1])}function c(h){switch(h%24){case 0:case 12:return 12;default:return h%12}}function d(){if(!(e.hourElement===void 0||e.minuteElement===void 0)){var h=(parseInt(e.hourElement.value.slice(-2),10)||0)%24,g=(parseInt(e.minuteElement.value,10)||0)%60,k=e.secondElement!==void 0?(parseInt(e.secondElement.value,10)||0)%60:0;e.amPM!==void 0&&(h=u(h,e.amPM.textContent));var R=e.config.minTime!==void 0||e.config.minDate&&e.minDateHasTime&&e.latestSelectedDateObj&&_n(e.latestSelectedDateObj,e.config.minDate,!0)===0,G=e.config.maxTime!==void 0||e.config.maxDate&&e.maxDateHasTime&&e.latestSelectedDateObj&&_n(e.latestSelectedDateObj,e.config.maxDate,!0)===0;if(e.config.maxTime!==void 0&&e.config.minTime!==void 0&&e.config.minTime>e.config.maxTime){var X=hf(e.config.minTime.getHours(),e.config.minTime.getMinutes(),e.config.minTime.getSeconds()),_e=hf(e.config.maxTime.getHours(),e.config.maxTime.getMinutes(),e.config.maxTime.getSeconds()),ne=hf(h,g,k);if(ne>_e&&ne<X){var Ce=WE(X);h=Ce[0],g=Ce[1],k=Ce[2]}}else{if(G){var ie=e.config.maxTime!==void 0?e.config.maxTime:e.config.maxDate;h=Math.min(h,ie.getHours()),h===ie.getHours()&&(g=Math.min(g,ie.getMinutes())),g===ie.getMinutes()&&(k=Math.min(k,ie.getSeconds()))}if(R){var me=e.config.minTime!==void 0?e.config.minTime:e.config.minDate;h=Math.max(h,me.getHours()),h===me.getHours()&&g<me.getMinutes()&&(g=me.getMinutes()),g===me.getMinutes()&&(k=Math.max(k,me.getSeconds()))}}p(h,g,k)}}function f(h){var g=h||e.latestSelectedDateObj;g&&g instanceof Date&&p(g.getHours(),g.getMinutes(),g.getSeconds())}function p(h,g,k){e.latestSelectedDateObj!==void 0&&e.latestSelectedDateObj.setHours(h%24,g,k||0,0),!(!e.hourElement||!e.minuteElement||e.isMobile)&&(e.hourElement.value=Qt(e.config.time_24hr?h:(12+h)%12+12*bn(h%12===0)),e.minuteElement.value=Qt(g),e.amPM!==void 0&&(e.amPM.textContent=e.l10n.amPM[bn(h>=12)]),e.secondElement!==void 0&&(e.secondElement.value=Qt(k)))}function b(h){var g=Tn(h),k=parseInt(g.value)+(h.delta||0);(k/1e3>1||h.key==="Enter"&&!/[^\d]/.test(k.toString()))&&W(k)}function T(h,g,k,R){if(g instanceof Array)return g.forEach(function(G){return T(h,G,k,R)});if(h instanceof Array)return h.forEach(function(G){return T(G,g,k,R)});h.addEventListener(g,k,R),e._handlers.push({remove:function(){return h.removeEventListener(g,k,R)}})}function _(){Xe("onChange")}function O(){if(e.config.wrap&&["open","close","toggle","clear"].forEach(function(k){Array.prototype.forEach.call(e.element.querySelectorAll("[data-"+k+"]"),function(R){return T(R,"click",e[k])})}),e.isMobile){cs();return}var h=lb(Yt,50);if(e._debouncedChange=lb(_,MY),e.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&T(e.daysContainer,"mouseover",function(k){e.config.mode==="range"&&Le(Tn(k))}),T(e._input,"keydown",He),e.calendarContainer!==void 0&&T(e.calendarContainer,"keydown",He),!e.config.inline&&!e.config.static&&T(window,"resize",h),window.ontouchstart!==void 0?T(window.document,"touchstart",P):T(window.document,"mousedown",P),T(window.document,"focus",P,{capture:!0}),e.config.clickOpens===!0&&(T(e._input,"focus",e.open),T(e._input,"click",e.open)),e.daysContainer!==void 0&&(T(e.monthNav,"click",Cf),T(e.monthNav,["keyup","increment"],b),T(e.daysContainer,"click",Yn)),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0){var g=function(k){return Tn(k).select()};T(e.timeContainer,["increment"],l),T(e.timeContainer,"blur",l,{capture:!0}),T(e.timeContainer,"click",A),T([e.hourElement,e.minuteElement],["focus","click"],g),e.secondElement!==void 0&&T(e.secondElement,"focus",function(){return e.secondElement&&e.secondElement.select()}),e.amPM!==void 0&&T(e.amPM,"click",function(k){l(k)})}e.config.allowInput&&T(e._input,"blur",Oe)}function E(h,g){var k=h!==void 0?e.parseDate(h):e.latestSelectedDateObj||(e.config.minDate&&e.config.minDate>e.now?e.config.minDate:e.config.maxDate&&e.config.maxDate<e.now?e.config.maxDate:e.now),R=e.currentYear,G=e.currentMonth;try{k!==void 0&&(e.currentYear=k.getFullYear(),e.currentMonth=k.getMonth())}catch(X){X.message="Invalid date supplied: "+k,e.config.errorHandler(X)}g&&e.currentYear!==R&&(Xe("onYearChange"),C()),g&&(e.currentYear!==R||e.currentMonth!==G)&&Xe("onMonthChange"),e.redraw()}function A(h){var g=Tn(h);~g.className.indexOf("arrow")&&Y(h,g.classList.contains("arrowUp")?1:-1)}function Y(h,g,k){var R=h&&Tn(h),G=k||R&&R.parentNode&&R.parentNode.firstChild,X=ca("increment");X.delta=g,G&&G.dispatchEvent(X)}function q(){var h=window.document.createDocumentFragment();if(e.calendarContainer=$e("div","flatpickr-calendar"),e.calendarContainer.tabIndex=-1,!e.config.noCalendar){if(h.appendChild(oe()),e.innerContainer=$e("div","flatpickr-innerContainer"),e.config.weekNumbers){var g=w(),k=g.weekWrapper,R=g.weekNumbers;e.innerContainer.appendChild(k),e.weekNumbers=R,e.weekWrapper=k}e.rContainer=$e("div","flatpickr-rContainer"),e.rContainer.appendChild(y()),e.daysContainer||(e.daysContainer=$e("div","flatpickr-days"),e.daysContainer.tabIndex=-1),K(),e.rContainer.appendChild(e.daysContainer),e.innerContainer.appendChild(e.rContainer),h.appendChild(e.innerContainer)}e.config.enableTime&&h.appendChild(m()),Xt(e.calendarContainer,"rangeMode",e.config.mode==="range"),Xt(e.calendarContainer,"animate",e.config.animate===!0),Xt(e.calendarContainer,"multiMonth",e.config.showMonths>1),e.calendarContainer.appendChild(h);var G=e.config.appendTo!==void 0&&e.config.appendTo.nodeType!==void 0;if((e.config.inline||e.config.static)&&(e.calendarContainer.classList.add(e.config.inline?"inline":"static"),e.config.inline&&(!G&&e.element.parentNode?e.element.parentNode.insertBefore(e.calendarContainer,e._input.nextSibling):e.config.appendTo!==void 0&&e.config.appendTo.appendChild(e.calendarContainer)),e.config.static)){var X=$e("div","flatpickr-wrapper");e.element.parentNode&&e.element.parentNode.insertBefore(X,e.element),X.appendChild(e.element),e.altInput&&X.appendChild(e.altInput),X.appendChild(e.calendarContainer)}!e.config.static&&!e.config.inline&&(e.config.appendTo!==void 0?e.config.appendTo:window.document.body).appendChild(e.calendarContainer)}function se(h,g,k,R){var G=ce(g,!0),X=$e("span",h,g.getDate().toString());return X.dateObj=g,X.$i=R,X.setAttribute("aria-label",e.formatDate(g,e.config.ariaDateFormat)),h.indexOf("hidden")===-1&&_n(g,e.now)===0&&(e.todayDateElem=X,X.classList.add("today"),X.setAttribute("aria-current","date")),G?(X.tabIndex=-1,Lr(g)&&(X.classList.add("selected"),e.selectedDateElem=X,e.config.mode==="range"&&(Xt(X,"startRange",e.selectedDates[0]&&_n(g,e.selectedDates[0],!0)===0),Xt(X,"endRange",e.selectedDates[1]&&_n(g,e.selectedDates[1],!0)===0),h==="nextMonthDay"&&X.classList.add("inRange")))):X.classList.add("flatpickr-disabled"),e.config.mode==="range"&&xt(g)&&!Lr(g)&&X.classList.add("inRange"),e.weekNumbers&&e.config.showMonths===1&&h!=="prevMonthDay"&&R%7===6&&e.weekNumbers.insertAdjacentHTML("beforeend","<span class='flatpickr-day'>"+e.config.getWeek(g)+"</span>"),Xe("onDayCreate",X),X}function H(h){h.focus(),e.config.mode==="range"&&Le(h)}function Z(h){for(var g=h>0?0:e.config.showMonths-1,k=h>0?e.config.showMonths:-1,R=g;R!=k;R+=h)for(var G=e.daysContainer.children[R],X=h>0?0:G.children.length-1,_e=h>0?G.children.length:-1,ne=X;ne!=_e;ne+=h){var Ce=G.children[ne];if(Ce.className.indexOf("hidden")===-1&&ce(Ce.dateObj))return Ce}}function ye(h,g){for(var k=h.className.indexOf("Month")===-1?h.dateObj.getMonth():e.currentMonth,R=g>0?e.config.showMonths:-1,G=g>0?1:-1,X=k-e.currentMonth;X!=R;X+=G)for(var _e=e.daysContainer.children[X],ne=k-e.currentMonth===X?h.$i+g:g<0?_e.children.length-1:0,Ce=_e.children.length,ie=ne;ie>=0&&ie<Ce&&ie!=(g>0?Ce:-1);ie+=G){var me=_e.children[ie];if(me.className.indexOf("hidden")===-1&&ce(me.dateObj)&&Math.abs(h.$i-ie)>=Math.abs(g))return H(me)}e.changeMonth(G),we(Z(G),0)}function we(h,g){var k=s(),R=be(k||document.body),G=h!==void 0?h:R?k:e.selectedDateElem!==void 0&&be(e.selectedDateElem)?e.selectedDateElem:e.todayDateElem!==void 0&&be(e.todayDateElem)?e.todayDateElem:Z(g>0?1:-1);G===void 0?e._input.focus():R?ye(G,g):H(G)}function V(h,g){for(var k=(new Date(h,g,1).getDay()-e.l10n.firstDayOfWeek+7)%7,R=e.utils.getDaysInMonth((g-1+12)%12,h),G=e.utils.getDaysInMonth(g,h),X=window.document.createDocumentFragment(),_e=e.config.showMonths>1,ne=_e?"prevMonthDay hidden":"prevMonthDay",Ce=_e?"nextMonthDay hidden":"nextMonthDay",ie=R+1-k,me=0;ie<=R;ie++,me++)X.appendChild(se("flatpickr-day "+ne,new Date(h,g-1,ie),ie,me));for(ie=1;ie<=G;ie++,me++)X.appendChild(se("flatpickr-day",new Date(h,g,ie),ie,me));for(var ze=G+1;ze<=42-k&&(e.config.showMonths===1||me%7!==0);ze++,me++)X.appendChild(se("flatpickr-day "+Ce,new Date(h,g+1,ze%G),ze,me));var Wn=$e("div","dayContainer");return Wn.appendChild(X),Wn}function K(){if(e.daysContainer!==void 0){Du(e.daysContainer),e.weekNumbers&&Du(e.weekNumbers);for(var h=document.createDocumentFragment(),g=0;g<e.config.showMonths;g++){var k=new Date(e.currentYear,e.currentMonth,1);k.setMonth(e.currentMonth+g),h.appendChild(V(k.getFullYear(),k.getMonth()))}e.daysContainer.appendChild(h),e.days=e.daysContainer.firstChild,e.config.mode==="range"&&e.selectedDates.length===1&&Le()}}function C(){if(!(e.config.showMonths>1||e.config.monthSelectorType!=="dropdown")){var h=function(R){return e.config.minDate!==void 0&&e.currentYear===e.config.minDate.getFullYear()&&R<e.config.minDate.getMonth()?!1:!(e.config.maxDate!==void 0&&e.currentYear===e.config.maxDate.getFullYear()&&R>e.config.maxDate.getMonth())};e.monthsDropdownContainer.tabIndex=-1,e.monthsDropdownContainer.innerHTML="";for(var g=0;g<12;g++)if(!!h(g)){var k=$e("option","flatpickr-monthDropdown-month");k.value=new Date(e.currentYear,g).getMonth().toString(),k.textContent=xu(g,e.config.shorthandCurrentMonth,e.l10n),k.tabIndex=-1,e.currentMonth===g&&(k.selected=!0),e.monthsDropdownContainer.appendChild(k)}}}function J(){var h=$e("div","flatpickr-month"),g=window.document.createDocumentFragment(),k;e.config.showMonths>1||e.config.monthSelectorType==="static"?k=$e("span","cur-month"):(e.monthsDropdownContainer=$e("select","flatpickr-monthDropdown-months"),e.monthsDropdownContainer.setAttribute("aria-label",e.l10n.monthAriaLabel),T(e.monthsDropdownContainer,"change",function(_e){var ne=Tn(_e),Ce=parseInt(ne.value,10);e.changeMonth(Ce-e.currentMonth),Xe("onMonthChange")}),C(),k=e.monthsDropdownContainer);var R=Eu("cur-year",{tabindex:"-1"}),G=R.getElementsByTagName("input")[0];G.setAttribute("aria-label",e.l10n.yearAriaLabel),e.config.minDate&&G.setAttribute("min",e.config.minDate.getFullYear().toString()),e.config.maxDate&&(G.setAttribute("max",e.config.maxDate.getFullYear().toString()),G.disabled=!!e.config.minDate&&e.config.minDate.getFullYear()===e.config.maxDate.getFullYear());var X=$e("div","flatpickr-current-month");return X.appendChild(k),X.appendChild(R),g.appendChild(X),h.appendChild(g),{container:h,yearElement:G,monthElement:k}}function $(){Du(e.monthNav),e.monthNav.appendChild(e.prevMonthNav),e.config.showMonths&&(e.yearElements=[],e.monthElements=[]);for(var h=e.config.showMonths;h--;){var g=J();e.yearElements.push(g.yearElement),e.monthElements.push(g.monthElement),e.monthNav.appendChild(g.container)}e.monthNav.appendChild(e.nextMonthNav)}function oe(){return e.monthNav=$e("div","flatpickr-months"),e.yearElements=[],e.monthElements=[],e.prevMonthNav=$e("span","flatpickr-prev-month"),e.prevMonthNav.innerHTML=e.config.prevArrow,e.nextMonthNav=$e("span","flatpickr-next-month"),e.nextMonthNav.innerHTML=e.config.nextArrow,$(),Object.defineProperty(e,"_hidePrevMonthArrow",{get:function(){return e.__hidePrevMonthArrow},set:function(h){e.__hidePrevMonthArrow!==h&&(Xt(e.prevMonthNav,"flatpickr-disabled",h),e.__hidePrevMonthArrow=h)}}),Object.defineProperty(e,"_hideNextMonthArrow",{get:function(){return e.__hideNextMonthArrow},set:function(h){e.__hideNextMonthArrow!==h&&(Xt(e.nextMonthNav,"flatpickr-disabled",h),e.__hideNextMonthArrow=h)}}),e.currentYearElement=e.yearElements[0],da(),e.monthNav}function m(){e.calendarContainer.classList.add("hasTime"),e.config.noCalendar&&e.calendarContainer.classList.add("noCalendar");var h=gf(e.config);e.timeContainer=$e("div","flatpickr-time"),e.timeContainer.tabIndex=-1;var g=$e("span","flatpickr-time-separator",":"),k=Eu("flatpickr-hour",{"aria-label":e.l10n.hourAriaLabel});e.hourElement=k.getElementsByTagName("input")[0];var R=Eu("flatpickr-minute",{"aria-label":e.l10n.minuteAriaLabel});if(e.minuteElement=R.getElementsByTagName("input")[0],e.hourElement.tabIndex=e.minuteElement.tabIndex=-1,e.hourElement.value=Qt(e.latestSelectedDateObj?e.latestSelectedDateObj.getHours():e.config.time_24hr?h.hours:c(h.hours)),e.minuteElement.value=Qt(e.latestSelectedDateObj?e.latestSelectedDateObj.getMinutes():h.minutes),e.hourElement.setAttribute("step",e.config.hourIncrement.toString()),e.minuteElement.setAttribute("step",e.config.minuteIncrement.toString()),e.hourElement.setAttribute("min",e.config.time_24hr?"0":"1"),e.hourElement.setAttribute("max",e.config.time_24hr?"23":"12"),e.hourElement.setAttribute("maxlength","2"),e.minuteElement.setAttribute("min","0"),e.minuteElement.setAttribute("max","59"),e.minuteElement.setAttribute("maxlength","2"),e.timeContainer.appendChild(k),e.timeContainer.appendChild(g),e.timeContainer.appendChild(R),e.config.time_24hr&&e.timeContainer.classList.add("time24hr"),e.config.enableSeconds){e.timeContainer.classList.add("hasSeconds");var G=Eu("flatpickr-second");e.secondElement=G.getElementsByTagName("input")[0],e.secondElement.value=Qt(e.latestSelectedDateObj?e.latestSelectedDateObj.getSeconds():h.seconds),e.secondElement.setAttribute("step",e.minuteElement.getAttribute("step")),e.secondElement.setAttribute("min","0"),e.secondElement.setAttribute("max","59"),e.secondElement.setAttribute("maxlength","2"),e.timeContainer.appendChild($e("span","flatpickr-time-separator",":")),e.timeContainer.appendChild(G)}return e.config.time_24hr||(e.amPM=$e("span","flatpickr-am-pm",e.l10n.amPM[bn((e.latestSelectedDateObj?e.hourElement.value:e.config.defaultHour)>11)]),e.amPM.title=e.l10n.toggleTitle,e.amPM.tabIndex=-1,e.timeContainer.appendChild(e.amPM)),e.timeContainer}function y(){e.weekdayContainer?Du(e.weekdayContainer):e.weekdayContainer=$e("div","flatpickr-weekdays");for(var h=e.config.showMonths;h--;){var g=$e("div","flatpickr-weekdaycontainer");e.weekdayContainer.appendChild(g)}return v(),e.weekdayContainer}function v(){if(!!e.weekdayContainer){var h=e.l10n.firstDayOfWeek,g=qE(e.l10n.weekdays.shorthand);h>0&&h<g.length&&(g=qE(g.splice(h,g.length),g.splice(0,h)));for(var k=e.config.showMonths;k--;)e.weekdayContainer.children[k].innerHTML=` <span class='flatpickr-weekday'> `+g.join("</span><span class='flatpickr-weekday'>")+` </span> - `}}function w(){e.calendarContainer.classList.add("hasWeeks");var h=$e("div","flatpickr-weekwrapper");h.appendChild($e("span","flatpickr-weekday",e.l10n.weekAbbreviation));var g=$e("div","flatpickr-weeks");return h.appendChild(g),{weekWrapper:h,weekNumbers:g}}function S(h,g){g===void 0&&(g=!0);var k=g?h:h-e.currentMonth;k<0&&e._hidePrevMonthArrow===!0||k>0&&e._hideNextMonthArrow===!0||(e.currentMonth+=k,(e.currentMonth<0||e.currentMonth>11)&&(e.currentYear+=e.currentMonth>11?1:-1,e.currentMonth=(e.currentMonth+12)%12,Xe("onYearChange"),C()),K(),Xe("onMonthChange"),da())}function M(h,g){if(h===void 0&&(h=!0),g===void 0&&(g=!0),e.input.value="",e.altInput!==void 0&&(e.altInput.value=""),e.mobileInput!==void 0&&(e.mobileInput.value=""),e.selectedDates=[],e.latestSelectedDateObj=void 0,g===!0&&(e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth()),e.config.enableTime===!0){var k=gf(e.config),R=k.hours,G=k.minutes,X=k.seconds;p(R,G,X)}e.redraw(),h&&Xe("onChange")}function I(){e.isOpen=!1,e.isMobile||(e.calendarContainer!==void 0&&e.calendarContainer.classList.remove("open"),e._input!==void 0&&e._input.classList.remove("active")),Xe("onClose")}function j(){e.config!==void 0&&Xe("onDestroy");for(var h=e._handlers.length;h--;)e._handlers[h].remove();if(e._handlers=[],e.mobileInput)e.mobileInput.parentNode&&e.mobileInput.parentNode.removeChild(e.mobileInput),e.mobileInput=void 0;else if(e.calendarContainer&&e.calendarContainer.parentNode)if(e.config.static&&e.calendarContainer.parentNode){var g=e.calendarContainer.parentNode;if(g.lastChild&&g.removeChild(g.lastChild),g.parentNode){for(;g.firstChild;)g.parentNode.insertBefore(g.firstChild,g);g.parentNode.removeChild(g)}}else e.calendarContainer.parentNode.removeChild(e.calendarContainer);e.altInput&&(e.input.type="text",e.altInput.parentNode&&e.altInput.parentNode.removeChild(e.altInput),delete e.altInput),e.input&&(e.input.type=e.input._type,e.input.classList.remove("flatpickr-input"),e.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(k){try{delete e[k]}catch(R){}})}function E(h){return e.calendarContainer.contains(h)}function P(h){if(e.isOpen&&!e.config.inline){var g=_n(h),k=E(g),R=g===e.input||g===e.altInput||e.element.contains(g)||h.path&&h.path.indexOf&&(~h.path.indexOf(e.input)||~h.path.indexOf(e.altInput)),G=!R&&!k&&!E(h.relatedTarget),X=!e.config.ignoredFocusElements.some(function(_e){return _e.contains(g)});G&&X&&(e.config.allowInput&&e.setDate(e._input.value,!1,e.config.altInput?e.config.altFormat:e.config.dateFormat),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0&&e.input.value!==""&&e.input.value!==void 0&&l(),e.close(),e.config&&e.config.mode==="range"&&e.selectedDates.length===1&&e.clear(!1))}}function W(h){if(!(!h||e.config.minDate&&h<e.config.minDate.getFullYear()||e.config.maxDate&&h>e.config.maxDate.getFullYear())){var g=h,k=e.currentYear!==g;e.currentYear=g||e.currentYear,e.config.maxDate&&e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth=Math.min(e.config.maxDate.getMonth(),e.currentMonth):e.config.minDate&&e.currentYear===e.config.minDate.getFullYear()&&(e.currentMonth=Math.max(e.config.minDate.getMonth(),e.currentMonth)),k&&(e.redraw(),Xe("onYearChange"),C())}}function de(h,g){var k;g===void 0&&(g=!0);var R=e.parseDate(h,void 0,g);if(e.config.minDate&&R&&vn(R,e.config.minDate,g!==void 0?g:!e.minDateHasTime)<0||e.config.maxDate&&R&&vn(R,e.config.maxDate,g!==void 0?g:!e.maxDateHasTime)>0)return!1;if(!e.config.enable&&e.config.disable.length===0)return!0;if(R===void 0)return!1;for(var G=!!e.config.enable,X=(k=e.config.enable)!==null&&k!==void 0?k:e.config.disable,_e=0,ne=void 0;_e<X.length;_e++){if(ne=X[_e],typeof ne=="function"&&ne(R))return G;if(ne instanceof Date&&R!==void 0&&ne.getTime()===R.getTime())return G;if(typeof ne=="string"){var Oe=e.parseDate(ne,void 0,!0);return Oe&&Oe.getTime()===R.getTime()?G:!G}else if(typeof ne=="object"&&R!==void 0&&ne.from&&ne.to&&R.getTime()>=ne.from.getTime()&&R.getTime()<=ne.to.getTime())return G}return!G}function be(h){return e.daysContainer!==void 0?h.className.indexOf("hidden")===-1&&h.className.indexOf("flatpickr-disabled")===-1&&e.daysContainer.contains(h):!1}function xe(h){var g=h.target===e._input,k=e._input.value.trimEnd()!==fa();g&&k&&!(h.relatedTarget&&E(h.relatedTarget))&&e.setDate(e._input.value,!0,h.target===e.altInput?e.config.altFormat:e.config.dateFormat)}function He(h){var g=_n(h),k=e.config.wrap?n.contains(g):g===e._input,R=e.config.allowInput,G=e.isOpen&&(!R||!k),X=e.config.inline&&k&&!R;if(h.keyCode===13&&k){if(R)return e.setDate(e._input.value,!0,g===e.altInput?e.config.altFormat:e.config.dateFormat),e.close(),g.blur();e.open()}else if(E(g)||G||X){var _e=!!e.timeContainer&&e.timeContainer.contains(g);switch(h.keyCode){case 13:_e?(h.preventDefault(),l(),la()):Un(h);break;case 27:h.preventDefault(),la();break;case 8:case 46:k&&!e.config.allowInput&&(h.preventDefault(),e.clear());break;case 37:case 39:if(!_e&&!k){h.preventDefault();var ne=s();if(e.daysContainer!==void 0&&(R===!1||ne&&be(ne))){var Oe=h.keyCode===39?1:-1;h.ctrlKey?(h.stopPropagation(),S(Oe),we(Z(1),0)):we(void 0,Oe)}}else e.hourElement&&e.hourElement.focus();break;case 38:case 40:h.preventDefault();var ie=h.keyCode===40?1:-1;e.daysContainer&&g.$i!==void 0||g===e.input||g===e.altInput?h.ctrlKey?(h.stopPropagation(),W(e.currentYear-ie),we(Z(1),0)):_e||we(void 0,ie*7):g===e.currentYearElement?W(e.currentYear-ie):e.config.enableTime&&(!_e&&e.hourElement&&e.hourElement.focus(),l(h),e._debouncedChange());break;case 9:if(_e){var pe=[e.hourElement,e.minuteElement,e.secondElement,e.amPM].concat(e.pluginElements).filter(function(Ot){return Ot}),ze=pe.indexOf(g);if(ze!==-1){var jn=pe[ze+(h.shiftKey?-1:1)];h.preventDefault(),(jn||e._input).focus()}}else!e.config.noCalendar&&e.daysContainer&&e.daysContainer.contains(g)&&h.shiftKey&&(h.preventDefault(),e._input.focus());break;default:break}}if(e.amPM!==void 0&&g===e.amPM)switch(h.key){case e.l10n.amPM[0].charAt(0):case e.l10n.amPM[0].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[0],d(),mr();break;case e.l10n.amPM[1].charAt(0):case e.l10n.amPM[1].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[1],d(),mr();break}(k||E(g))&&Xe("onKeyDown",h)}function Le(h,g){if(g===void 0&&(g="flatpickr-day"),!(e.selectedDates.length!==1||h&&(!h.classList.contains(g)||h.classList.contains("flatpickr-disabled")))){for(var k=h?h.dateObj.getTime():e.days.firstElementChild.dateObj.getTime(),R=e.parseDate(e.selectedDates[0],void 0,!0).getTime(),G=Math.min(k,e.selectedDates[0].getTime()),X=Math.max(k,e.selectedDates[0].getTime()),_e=!1,ne=0,Oe=0,ie=G;ie<X;ie+=WD.DAY)de(new Date(ie),!0)||(_e=_e||ie>G&&ie<X,ie<R&&(!ne||ie>ne)?ne=ie:ie>R&&(!Oe||ie<Oe)&&(Oe=ie));var pe=Array.from(e.rContainer.querySelectorAll("*:nth-child(-n+"+e.config.showMonths+") > ."+g));pe.forEach(function(ze){var jn=ze.dateObj,Ot=jn.getTime(),ds=ne>0&&Ot<ne||Oe>0&&Ot>Oe;if(ds){ze.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(Pi){ze.classList.remove(Pi)});return}else if(_e&&!ds)return;["startRange","inRange","endRange","notAllowed"].forEach(function(Pi){ze.classList.remove(Pi)}),h!==void 0&&(h.classList.add(k<=e.selectedDates[0].getTime()?"startRange":"endRange"),R<k&&Ot===R?ze.classList.add("startRange"):R>k&&Ot===R&&ze.classList.add("endRange"),Ot>=ne&&(Oe===0||Ot<=Oe)&&YD(Ot,R,k)&&ze.classList.add("inRange"))})}}function Yt(){e.isOpen&&!e.config.static&&!e.config.inline&&us()}function fr(h,g){if(g===void 0&&(g=e._positionElement),e.isMobile===!0){if(h){h.preventDefault();var k=_n(h);k&&k.blur()}e.mobileInput!==void 0&&(e.mobileInput.focus(),e.mobileInput.click()),Xe("onOpen");return}else if(e._input.disabled||e.config.inline)return;var R=e.isOpen;e.isOpen=!0,R||(e.calendarContainer.classList.add("open"),e._input.classList.add("active"),Xe("onOpen"),us(g)),e.config.enableTime===!0&&e.config.noCalendar===!0&&e.config.allowInput===!1&&(h===void 0||!e.timeContainer.contains(h.relatedTarget))&&setTimeout(function(){return e.hourElement.select()},50)}function wn(h){return function(g){var k=e.config["_"+h+"Date"]=e.parseDate(g,e.config.dateFormat),R=e.config["_"+(h==="min"?"max":"min")+"Date"];k!==void 0&&(e[h==="min"?"minDateHasTime":"maxDateHasTime"]=k.getHours()>0||k.getMinutes()>0||k.getSeconds()>0),e.selectedDates&&(e.selectedDates=e.selectedDates.filter(function(G){return de(G)}),!e.selectedDates.length&&h==="min"&&f(k),mr()),e.daysContainer&&(oa(),k!==void 0?e.currentYearElement[h]=k.getFullYear().toString():e.currentYearElement.removeAttribute(h),e.currentYearElement.disabled=!!R&&k!==void 0&&R.getFullYear()===k.getFullYear())}}function te(){var h=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],g=Xt(Xt({},JSON.parse(JSON.stringify(n.dataset||{}))),t),k={};e.config.parseDate=g.parseDate,e.config.formatDate=g.formatDate,Object.defineProperty(e.config,"enable",{get:function(){return e.config._enable},set:function(pe){e.config._enable=Fr(pe)}}),Object.defineProperty(e.config,"disable",{get:function(){return e.config._disable},set:function(pe){e.config._disable=Fr(pe)}});var R=g.mode==="time";if(!g.dateFormat&&(g.enableTime||R)){var G=pt.defaultConfig.dateFormat||is.dateFormat;k.dateFormat=g.noCalendar||R?"H:i"+(g.enableSeconds?":S":""):G+" H:i"+(g.enableSeconds?":S":"")}if(g.altInput&&(g.enableTime||R)&&!g.altFormat){var X=pt.defaultConfig.altFormat||is.altFormat;k.altFormat=g.noCalendar||R?"h:i"+(g.enableSeconds?":S K":" K"):X+(" h:i"+(g.enableSeconds?":S":"")+" K")}Object.defineProperty(e.config,"minDate",{get:function(){return e.config._minDate},set:wn("min")}),Object.defineProperty(e.config,"maxDate",{get:function(){return e.config._maxDate},set:wn("max")});var _e=function(pe){return function(ze){e.config[pe==="min"?"_minTime":"_maxTime"]=e.parseDate(ze,"H:i:S")}};Object.defineProperty(e.config,"minTime",{get:function(){return e.config._minTime},set:_e("min")}),Object.defineProperty(e.config,"maxTime",{get:function(){return e.config._maxTime},set:_e("max")}),g.mode==="time"&&(e.config.noCalendar=!0,e.config.enableTime=!0),Object.assign(e.config,k,g);for(var ne=0;ne<h.length;ne++)e.config[h[ne]]=e.config[h[ne]]===!0||e.config[h[ne]]==="true";cf.filter(function(pe){return e.config[pe]!==void 0}).forEach(function(pe){e.config[pe]=pf(e.config[pe]||[]).map(a)}),e.isMobile=!e.config.disableMobile&&!e.config.inline&&e.config.mode==="single"&&!e.config.disable.length&&!e.config.enable&&!e.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(var ne=0;ne<e.config.plugins.length;ne++){var Oe=e.config.plugins[ne](e)||{};for(var ie in Oe)cf.indexOf(ie)>-1?e.config[ie]=pf(Oe[ie]).map(a).concat(e.config[ie]):typeof g[ie]=="undefined"&&(e.config[ie]=Oe[ie])}g.altInputClass||(e.config.altInputClass=jt().className+" "+e.config.altInputClass),Xe("onParseConfig")}function jt(){return e.config.wrap?n.querySelector("[data-input]"):n}function it(){typeof e.config.locale!="object"&&typeof pt.l10ns[e.config.locale]=="undefined"&&e.config.errorHandler(new Error("flatpickr: invalid locale "+e.config.locale)),e.l10n=Xt(Xt({},pt.l10ns.default),typeof e.config.locale=="object"?e.config.locale:e.config.locale!=="default"?pt.l10ns[e.config.locale]:void 0),Ci.D="("+e.l10n.weekdays.shorthand.join("|")+")",Ci.l="("+e.l10n.weekdays.longhand.join("|")+")",Ci.M="("+e.l10n.months.shorthand.join("|")+")",Ci.F="("+e.l10n.months.longhand.join("|")+")",Ci.K="("+e.l10n.amPM[0]+"|"+e.l10n.amPM[1]+"|"+e.l10n.amPM[0].toLowerCase()+"|"+e.l10n.amPM[1].toLowerCase()+")";var h=Xt(Xt({},t),JSON.parse(JSON.stringify(n.dataset||{})));h.time_24hr===void 0&&pt.defaultConfig.time_24hr===void 0&&(e.config.time_24hr=e.l10n.time_24hr),e.formatDate=db(e),e.parseDate=mf({config:e.config,l10n:e.l10n})}function us(h){if(typeof e.config.position=="function")return void e.config.position(e,h);if(e.calendarContainer!==void 0){Xe("onPreCalendarPosition");var g=h||e._positionElement,k=Array.prototype.reduce.call(e.calendarContainer.children,function(ps,ms){return ps+ms.offsetHeight},0),R=e.calendarContainer.offsetWidth,G=e.config.position.split(" "),X=G[0],_e=G.length>1?G[1]:null,ne=g.getBoundingClientRect(),Oe=window.innerHeight-ne.bottom,ie=X==="above"||X!=="below"&&Oe<k&&ne.top>k,pe=window.pageYOffset+ne.top+(ie?-k-2:g.offsetHeight+2);if(Qt(e.calendarContainer,"arrowTop",!ie),Qt(e.calendarContainer,"arrowBottom",ie),!e.config.inline){var ze=window.pageXOffset+ne.left,jn=!1,Ot=!1;_e==="center"?(ze-=(R-ne.width)/2,jn=!0):_e==="right"&&(ze-=R-ne.width,Ot=!0),Qt(e.calendarContainer,"arrowLeft",!jn&&!Ot),Qt(e.calendarContainer,"arrowCenter",jn),Qt(e.calendarContainer,"arrowRight",Ot);var ds=window.document.body.offsetWidth-(window.pageXOffset+ne.right),Pi=ze+R>window.document.body.offsetWidth,Io=ds+R>window.document.body.offsetWidth;if(Qt(e.calendarContainer,"rightMost",Pi),!e.config.static)if(e.calendarContainer.style.top=pe+"px",!Pi)e.calendarContainer.style.left=ze+"px",e.calendarContainer.style.right="auto";else if(!Io)e.calendarContainer.style.left="auto",e.calendarContainer.style.right=ds+"px";else{var Fo=pr();if(Fo===void 0)return;var Mf=window.document.body.offsetWidth,Lo=Math.max(0,Mf/2-R/2),F=".flatpickr-calendar.centerMost:before",he=".flatpickr-calendar.centerMost:after",hr=Fo.cssRules.length,fs="{left:"+ne.left+"px;right:auto;}";Qt(e.calendarContainer,"rightMost",!1),Qt(e.calendarContainer,"centerMost",!0),Fo.insertRule(F+","+he+fs,hr),e.calendarContainer.style.left=Lo+"px",e.calendarContainer.style.right="auto"}}}}function pr(){for(var h=null,g=0;g<document.styleSheets.length;g++){var k=document.styleSheets[g];if(!!k.cssRules){try{k.cssRules}catch(R){continue}h=k;break}}return h!=null?h:Mo()}function Mo(){var h=document.createElement("style");return document.head.appendChild(h),h.sheet}function oa(){e.config.noCalendar||e.isMobile||(C(),da(),K())}function la(){e._input.focus(),window.navigator.userAgent.indexOf("MSIE")!==-1||navigator.msMaxTouchPoints!==void 0?setTimeout(e.close,0):e.close()}function Un(h){h.preventDefault(),h.stopPropagation();var g=function(pe){return pe.classList&&pe.classList.contains("flatpickr-day")&&!pe.classList.contains("flatpickr-disabled")&&!pe.classList.contains("notAllowed")},k=ub(_n(h),g);if(k!==void 0){var R=k,G=e.latestSelectedDateObj=new Date(R.dateObj.getTime()),X=(G.getMonth()<e.currentMonth||G.getMonth()>e.currentMonth+e.config.showMonths-1)&&e.config.mode!=="range";if(e.selectedDateElem=R,e.config.mode==="single")e.selectedDates=[G];else if(e.config.mode==="multiple"){var _e=Lr(G);_e?e.selectedDates.splice(parseInt(_e),1):e.selectedDates.push(G)}else e.config.mode==="range"&&(e.selectedDates.length===2&&e.clear(!1,!1),e.latestSelectedDateObj=G,e.selectedDates.push(G),vn(G,e.selectedDates[0],!0)!==0&&e.selectedDates.sort(function(pe,ze){return pe.getTime()-ze.getTime()}));if(d(),X){var ne=e.currentYear!==G.getFullYear();e.currentYear=G.getFullYear(),e.currentMonth=G.getMonth(),ne&&(Xe("onYearChange"),C()),Xe("onMonthChange")}if(da(),K(),mr(),!X&&e.config.mode!=="range"&&e.config.showMonths===1?H(R):e.selectedDateElem!==void 0&&e.hourElement===void 0&&e.selectedDateElem&&e.selectedDateElem.focus(),e.hourElement!==void 0&&e.hourElement!==void 0&&e.hourElement.focus(),e.config.closeOnSelect){var Oe=e.config.mode==="single"&&!e.config.enableTime,ie=e.config.mode==="range"&&e.selectedDates.length===2&&!e.config.enableTime;(Oe||ie)&&la()}_()}}var Ri={locale:[it,v],showMonths:[$,o,y],minDate:[D],maxDate:[D],positionElement:[Po],clickOpens:[function(){e.config.clickOpens===!0?(T(e._input,"focus",e.open),T(e._input,"click",e.open)):(e._input.removeEventListener("focus",e.open),e._input.removeEventListener("click",e.open))}]};function Ro(h,g){if(h!==null&&typeof h=="object"){Object.assign(e.config,h);for(var k in h)Ri[k]!==void 0&&Ri[k].forEach(function(R){return R()})}else e.config[h]=g,Ri[h]!==void 0?Ri[h].forEach(function(R){return R()}):cf.indexOf(h)>-1&&(e.config[h]=pf(g));e.redraw(),mr(!0)}function Ao(h,g){var k=[];if(h instanceof Array)k=h.map(function(R){return e.parseDate(R,g)});else if(h instanceof Date||typeof h=="number")k=[e.parseDate(h,g)];else if(typeof h=="string")switch(e.config.mode){case"single":case"time":k=[e.parseDate(h,g)];break;case"multiple":k=h.split(e.config.conjunction).map(function(R){return e.parseDate(R,g)});break;case"range":k=h.split(e.l10n.rangeSeparator).map(function(R){return e.parseDate(R,g)});break;default:break}else e.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(h)));e.selectedDates=e.config.allowInvalidPreload?k:k.filter(function(R){return R instanceof Date&&de(R,!1)}),e.config.mode==="range"&&e.selectedDates.sort(function(R,G){return R.getTime()-G.getTime()})}function Ai(h,g,k){if(g===void 0&&(g=!1),k===void 0&&(k=e.config.dateFormat),h!==0&&!h||h instanceof Array&&h.length===0)return e.clear(g);Ao(h,k),e.latestSelectedDateObj=e.selectedDates[e.selectedDates.length-1],e.redraw(),D(void 0,g),f(),e.selectedDates.length===0&&e.clear(!1),mr(g),g&&Xe("onChange")}function Fr(h){return h.slice().map(function(g){return typeof g=="string"||typeof g=="number"||g instanceof Date?e.parseDate(g,void 0,!0):g&&typeof g=="object"&&g.from&&g.to?{from:e.parseDate(g.from,void 0),to:e.parseDate(g.to,void 0)}:g}).filter(function(g){return g})}function Au(){e.selectedDates=[],e.now=e.parseDate(e.config.now)||new Date;var h=e.config.defaultDate||((e.input.nodeName==="INPUT"||e.input.nodeName==="TEXTAREA")&&e.input.placeholder&&e.input.value===e.input.placeholder?null:e.input.value);h&&Ao(h,e.config.dateFormat),e._initialDate=e.selectedDates.length>0?e.selectedDates[0]:e.config.minDate&&e.config.minDate.getTime()>e.now.getTime()?e.config.minDate:e.config.maxDate&&e.config.maxDate.getTime()<e.now.getTime()?e.config.maxDate:e.now,e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth(),e.selectedDates.length>0&&(e.latestSelectedDateObj=e.selectedDates[0]),e.config.minTime!==void 0&&(e.config.minTime=e.parseDate(e.config.minTime,"H:i")),e.config.maxTime!==void 0&&(e.config.maxTime=e.parseDate(e.config.maxTime,"H:i")),e.minDateHasTime=!!e.config.minDate&&(e.config.minDate.getHours()>0||e.config.minDate.getMinutes()>0||e.config.minDate.getSeconds()>0),e.maxDateHasTime=!!e.config.maxDate&&(e.config.maxDate.getHours()>0||e.config.maxDate.getMinutes()>0||e.config.maxDate.getSeconds()>0)}function ua(){if(e.input=jt(),!e.input){e.config.errorHandler(new Error("Invalid input element specified"));return}e.input._type=e.input.type,e.input.type="text",e.input.classList.add("flatpickr-input"),e._input=e.input,e.config.altInput&&(e.altInput=$e(e.input.nodeName,e.config.altInputClass),e._input=e.altInput,e.altInput.placeholder=e.input.placeholder,e.altInput.disabled=e.input.disabled,e.altInput.required=e.input.required,e.altInput.tabIndex=e.input.tabIndex,e.altInput.type="text",e.input.setAttribute("type","hidden"),!e.config.static&&e.input.parentNode&&e.input.parentNode.insertBefore(e.altInput,e.input.nextSibling)),e.config.allowInput||e._input.setAttribute("readonly","readonly"),Po()}function Po(){e._positionElement=e.config.positionElement||e._input}function cs(){var h=e.config.enableTime?e.config.noCalendar?"time":"datetime-local":"date";e.mobileInput=$e("input",e.input.className+" flatpickr-mobile"),e.mobileInput.tabIndex=1,e.mobileInput.type=h,e.mobileInput.disabled=e.input.disabled,e.mobileInput.required=e.input.required,e.mobileInput.placeholder=e.input.placeholder,e.mobileFormatStr=h==="datetime-local"?"Y-m-d\\TH:i:S":h==="date"?"Y-m-d":"H:i:S",e.selectedDates.length>0&&(e.mobileInput.defaultValue=e.mobileInput.value=e.formatDate(e.selectedDates[0],e.mobileFormatStr)),e.config.minDate&&(e.mobileInput.min=e.formatDate(e.config.minDate,"Y-m-d")),e.config.maxDate&&(e.mobileInput.max=e.formatDate(e.config.maxDate,"Y-m-d")),e.input.getAttribute("step")&&(e.mobileInput.step=String(e.input.getAttribute("step"))),e.input.type="hidden",e.altInput!==void 0&&(e.altInput.type="hidden");try{e.input.parentNode&&e.input.parentNode.insertBefore(e.mobileInput,e.input.nextSibling)}catch(g){}T(e.mobileInput,"change",function(g){e.setDate(_n(g).value,!1,e.mobileFormatStr),Xe("onChange"),Xe("onClose")})}function Yn(h){if(e.isOpen===!0)return e.close();e.open(h)}function Xe(h,g){if(e.config!==void 0){var k=e.config[h];if(k!==void 0&&k.length>0)for(var R=0;k[R]&&R<k.length;R++)k[R](e.selectedDates,e.input.value,e,g);h==="onChange"&&(e.input.dispatchEvent(ca("change")),e.input.dispatchEvent(ca("input")))}}function ca(h){var g=document.createEvent("Event");return g.initEvent(h,!0,!0),g}function Lr(h){for(var g=0;g<e.selectedDates.length;g++){var k=e.selectedDates[g];if(k instanceof Date&&vn(k,h)===0)return""+g}return!1}function xt(h){return e.config.mode!=="range"||e.selectedDates.length<2?!1:vn(h,e.selectedDates[0])>=0&&vn(h,e.selectedDates[1])<=0}function da(){e.config.noCalendar||e.isMobile||!e.monthNav||(e.yearElements.forEach(function(h,g){var k=new Date(e.currentYear,e.currentMonth,1);k.setMonth(e.currentMonth+g),e.config.showMonths>1||e.config.monthSelectorType==="static"?e.monthElements[g].textContent=xu(k.getMonth(),e.config.shorthandCurrentMonth,e.l10n)+" ":e.monthsDropdownContainer.value=k.getMonth().toString(),h.value=k.getFullYear().toString()}),e._hidePrevMonthArrow=e.config.minDate!==void 0&&(e.currentYear===e.config.minDate.getFullYear()?e.currentMonth<=e.config.minDate.getMonth():e.currentYear<e.config.minDate.getFullYear()),e._hideNextMonthArrow=e.config.maxDate!==void 0&&(e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth+1>e.config.maxDate.getMonth():e.currentYear>e.config.maxDate.getFullYear()))}function fa(h){var g=h||(e.config.altInput?e.config.altFormat:e.config.dateFormat);return e.selectedDates.map(function(k){return e.formatDate(k,g)}).filter(function(k,R,G){return e.config.mode!=="range"||e.config.enableTime||G.indexOf(k)===R}).join(e.config.mode!=="range"?e.config.conjunction:e.l10n.rangeSeparator)}function mr(h){h===void 0&&(h=!0),e.mobileInput!==void 0&&e.mobileFormatStr&&(e.mobileInput.value=e.latestSelectedDateObj!==void 0?e.formatDate(e.latestSelectedDateObj,e.mobileFormatStr):""),e.input.value=fa(e.config.dateFormat),e.altInput!==void 0&&(e.altInput.value=fa(e.config.altFormat)),h!==!1&&Xe("onValueUpdate")}function Cf(h){var g=_n(h),k=e.prevMonthNav.contains(g),R=e.nextMonthNav.contains(g);k||R?S(k?-1:1):e.yearElements.indexOf(g)>=0?g.select():g.classList.contains("arrowUp")?e.changeYear(e.currentYear+1):g.classList.contains("arrowDown")&&e.changeYear(e.currentYear-1)}function No(h){h.preventDefault();var g=h.type==="keydown",k=_n(h),R=k;e.amPM!==void 0&&k===e.amPM&&(e.amPM.textContent=e.l10n.amPM[Tn(e.amPM.textContent===e.l10n.amPM[0])]);var G=parseFloat(R.getAttribute("min")),X=parseFloat(R.getAttribute("max")),_e=parseFloat(R.getAttribute("step")),ne=parseInt(R.value,10),Oe=h.delta||(g?h.which===38?1:-1:0),ie=ne+_e*Oe;if(typeof R.value!="undefined"&&R.value.length===2){var pe=R===e.hourElement,ze=R===e.minuteElement;ie<G?(ie=X+ie+Tn(!pe)+(Tn(pe)&&Tn(!e.amPM)),ze&&Y(void 0,-1,e.hourElement)):ie>X&&(ie=R===e.hourElement?ie-X-Tn(!e.amPM):G,ze&&Y(void 0,1,e.hourElement)),e.amPM&&pe&&(_e===1?ie+ne===23:Math.abs(ie-ne)>_e)&&(e.amPM.textContent=e.l10n.amPM[Tn(e.amPM.textContent===e.l10n.amPM[0])]),R.value=Kt(ie)}}return i(),e}function So(n,t){for(var e=Array.prototype.slice.call(n).filter(function(a){return a instanceof HTMLElement}),r=[],i=0;i<e.length;i++){var s=e[i];try{if(s.getAttribute("data-fp-omit")!==null)continue;s._flatpickr!==void 0&&(s._flatpickr.destroy(),s._flatpickr=void 0),s._flatpickr=MY(s,t||{}),r.push(s._flatpickr)}catch(a){console.error(a)}}return r.length===1?r[0]:r}typeof HTMLElement!="undefined"&&typeof HTMLCollection!="undefined"&&typeof NodeList!="undefined"&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(n){return So(this,n)},HTMLElement.prototype.flatpickr=function(n){return So([this],n)});var pt=function(n,t){return typeof n=="string"?So(window.document.querySelectorAll(n),t):n instanceof Node?So([n],t):So(n,t)};pt.defaultConfig={};pt.l10ns={en:Xt({},ff),default:Xt({},ff)};pt.localize=function(n){pt.l10ns.default=Xt(Xt({},pt.l10ns.default),n)};pt.setDefaults=function(n){pt.defaultConfig=Xt(Xt({},pt.defaultConfig),n)};pt.parseDate=mf({});pt.formatDate=db({});pt.compareDates=vn;typeof jQuery!="undefined"&&typeof jQuery.fn!="undefined"&&(jQuery.fn.flatpickr=function(n){return So(this,n)});Date.prototype.fp_incr=function(n){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(typeof n=="string"?parseInt(n,10):n))};typeof window!="undefined"&&(window.flatpickr=pt);var qD=pt;Nt();Nt();Gi();sd();function HD(n){for(let e of fe.allDateFields()){let r=n[e];if(r&&!r.isValid())return!1}let t=n.happensDates.some(e=>!!(e!=null&&e.isValid()));return!n.isDone&&t}function Eo(n){return n.dueDate?"dueDate":n.scheduledDate?"scheduledDate":n.startDate?"startDate":null}function fb(n,t,e,r){let i=n[t];return VD(i,n,t,e,r)}function GD(n,t,e,r){let i=window.moment();return VD(i,n,t,e,r)}function BD(n,t,e,r){return zD(n,t,null)}function VD(n,t,e,r,i){let s=new It(n).postpone(r,i);return zD(t,e,s)}function zD(n,t,e){let r=Ft.removeInferredStatusIfNeeded(n,[new fe(me(U({},n),{[t]:e}))])[0];return{postponedDate:e,postponedTask:r}}function KD(n,t){if(n){let e=n==null?void 0:n.format("DD MMM YYYY");return`Task's ${t} changed to ${e}`}else return`Task's ${t} removed`}function QD(n,t,e){return`\u2139\uFE0F ${pb(n,t,e)} (right-click for more options)`}function pb(n,t,e){let r=Eo(n),i=n[r];return Do(r,i,t,e)}function XD(n,t,e){let r=Eo(n),i=window.moment().startOf("day");return Do(r,i,t,e)}function ZD(n,t,e){let r=Eo(n);return mb(r,n)}function mb(n,t){return n==="scheduledDate"&&t.scheduledDateIsInferred?"Cannot remove inferred scheduled date":`Remove ${yf(n)}`}function RY(n){return Za(n.replace("Date",""))}function yf(n){return n.replace("Date"," date")}function Do(n,t,e,r){let s=new It(t).postpone(r,e).format("ddd Do MMM"),a=e!=1?e:"a";if(t.isSameOrBefore(window.moment(),"day")){let l=RY(n);return(e>=0?`${l} in ${a} ${r}, on ${s}`:`${l} ${-a} ${r} ago, on ${s}`).replace(" 1 day ago"," yesterday").replace(" in 0 days"," today").replace("in a day","tomorrow")}let o=yf(n);return e>=0?`Postpone ${o} by ${a} ${r}, to ${s}`:`Backdate ${o} by ${-a} ${r}, to ${s}`}sd();var ss=class{constructor(t,e,r){this.newDate=e,this.dateFieldToEdit=t,this.displayName=r!=null?r:`Set Date: ${this.newDate.toDateString()}`}apply(t){return this.isCheckedForTask(t)?[t]:[new fe(me(U({},t),{[this.dateFieldToEdit]:window.moment(this.newDate)}))]}instructionDisplayName(){return this.displayName}isCheckedForTask(t){var e;return((e=t[this.dateFieldToEdit])==null?void 0:e.isSame(window.moment(this.newDate)))||!1}},Pr=class extends ss{constructor(t,e,r,i){var l;let s=(l=e[t])!=null?l:window.moment(),a=Do(t,s,r,i),o=new It(window.moment(s)).postpone(i,r).toDate();super(t,o,a)}},Ou=class{constructor(t,e){this.dateFieldToEdit=t,this.displayName=mb(t,e)}apply(t){let e=this.dateFieldToEdit==="scheduledDate"&&t.scheduledDateIsInferred;return t[this.dateFieldToEdit]===null||e?[t]:[new fe(me(U({},t),{[this.dateFieldToEdit]:null}))]}instructionDisplayName(){return this.displayName}isCheckedForTask(t){return!1}};function JD(n,t){return tx(t,n,1)}function ex(n,t){return tx(t,n,-1)}function tx(n,t,e){let r=window.moment().startOf("day"),i=r.toDate(),s=new It(r.clone());return[new ss(t,i,Do(t,r,0,"days")),new ss(t,s.postpone("day",e).toDate(),Do(t,r,e,"day")),new wo,new Pr(t,n,e*2,"days"),new Pr(t,n,e*3,"days"),new Pr(t,n,e*4,"days"),new Pr(t,n,e*5,"days"),new Pr(t,n,e*6,"days"),new wo,new Pr(t,n,e,"week"),new Pr(t,n,e*2,"weeks"),new Pr(t,n,e*3,"weeks"),new Pr(t,n,e,"month"),new wo,new Ou(t,n)]}function rx(n,t,e,r){var a,o;let i=t[e];qD(n,{defaultDate:i?i.format("YYYY-MM-DD"):new Date,disableMobile:!0,enableTime:!1,dateFormat:"Y-m-d",locale:{firstDayOfWeek:(o=(a=new Intl.Locale(navigator.language).weekInfo)==null?void 0:a.firstDay)!=null?o:1},onClose:(l,u,c)=>L(this,null,function*(){if(l.length>0){let d=l[0],f=new ss(e,d).apply(t);yield r(t,f)}c.destroy()}),onReady:(l,u,c)=>{let d=document.createElement("div");d.style.display="flex",d.style.justifyContent="space-between",d.style.marginTop="10px",nx(d,c,t,r,"Clear",()=>new Ou(e,t).apply(t)),nx(d,c,t,r,"Today",()=>{let p=new Date;return new ss(e,p).apply(t)}),c.calendarContainer.appendChild(d)}}).open()}function nx(n,t,e,r,i,s){let a=document.createElement("button");a.type="button",a.textContent=i,a.classList.add("flatpickr-button"),a.addEventListener("click",()=>L(this,null,function*(){let o=s();yield r(e,o),t.destroy()})),n.appendChild(a)}function ix(n){return["startDate","scheduledDate","dueDate"].includes(n)}var bf=class extends rs{constructor(t,e,r=ni){super(r);let i=ix(t)?JD(t,e):ex(t,e);this.addItemsForInstructions(i,e)}};su();var Tf=class{constructor(){this.data=AY}addDataAttribute(t,e,r){this.data[r].addDataAttribute(t,e,r)}addClassName(t,e){let r=this.data[e].className;t.classList.add(r)}},hb=class{constructor(t,e,r){if(t==="")throw Error("Developer note: CSS class cannot be an empty string, please specify one.");this.className=t,this.attributeName=e,this.attributeValueCalculator=r}addDataAttribute(t,e,r){if(this.attributeName===hb.noAttributeName)return;let i=this.attributeValueCalculator(r,e);i!==""&&(t.dataset[this.attributeName]=i)}},Nr=hb;Nr.noAttributeName="",Nr.noAttributeValueCalculator=()=>"",Nr.dateAttributeCalculator=(t,e)=>{let i="far";function s(o){let u=window.moment().startOf("day").diff(o,"days");if(isNaN(u))return null;if(u===0)return"today";let c="";return u>0?c+="past-":u<0&&(c+="future-"),Math.abs(u)<=7?c+=Math.abs(u).toString()+"d":c+=i,c}let a=e[t];if(!Array.isArray(a)&&a instanceof window.moment){let o=s(a);if(o)return o}return""};function xo(n){return new Nr(n,Nr.noAttributeName,Nr.noAttributeValueCalculator)}function Oo(n,t){return new Nr(n,t,Nr.dateAttributeCalculator)}var AY={createdDate:Oo("task-created","taskCreated"),dueDate:Oo("task-due","taskDue"),startDate:Oo("task-start","taskStart"),scheduledDate:Oo("task-scheduled","taskScheduled"),doneDate:Oo("task-done","taskDone"),cancelledDate:Oo("task-cancelled","taskCancelled"),priority:new Nr("task-priority","taskPriority",(n,t)=>Rn.priorityNameUsingNormal(t.priority).toLocaleLowerCase()),description:xo("task-description"),recurrenceRule:xo("task-recurring"),onCompletion:xo("task-onCompletion"),dependsOn:xo("task-dependsOn"),id:xo("task-id"),blockLink:xo("task-block-link")};function ot(n,t){let e=document.createElement(n);return t.appendChild(e),e}var Mi=class{static obsidianMarkdownRenderer(t,e,r,i){return L(this,null,function*(){!i||(yield sx.MarkdownRenderer.renderMarkdown(t,e,r,i))})}constructor({textRenderer:t=Mi.obsidianMarkdownRenderer,obsidianComponent:e,parentUlElement:r,taskLayoutOptions:i,queryLayoutOptions:s}){this.textRenderer=t,this.obsidianComponent=e,this.parentUlElement=r,this.taskLayoutOptions=i,this.queryLayoutOptions=s}renderTaskLine(t,e,r){return L(this,null,function*(){let i=ot("li",this.parentUlElement);i.classList.add("task-list-item","plugin-tasks-list-item");let s=ot("span",i);s.classList.add("tasks-list-text"),yield this.taskToHtml(t,s,i);let a=ot("input",i);return a.classList.add("task-list-item-checkbox"),a.type="checkbox",t.status.symbol!==" "&&(a.checked=!0,i.classList.add("is-checked")),t.taskLocation.hasKnownPath&&(a.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),a.disabled=!0;let u=t.toggleWithRecurrenceInUsersOrder();gn({originalTask:t,newTasks:u})}),a.addEventListener("contextmenu",l=>{new uf(Be.getInstance(),t).showAtPosition({x:l.clientX,y:l.clientY})}),a.setAttribute("title","Right-click for options")),i.prepend(a),i.setAttribute("data-task",t.status.symbol.trim()),i.setAttribute("data-line",e.toString()),i.setAttribute("data-task-status-name",t.status.name),i.setAttribute("data-task-status-type",t.status.type),a.setAttribute("data-line",e.toString()),this.queryLayoutOptions.shortMode&&this.addTooltip(t,s,r),i})}taskToHtml(t,e,r){return L(this,null,function*(){let i=new Tf,s=Er.tasksPluginEmoji.taskSerializer;for(let a of this.taskLayoutOptions.shownComponents){let o=s.componentToString(t,this.queryLayoutOptions.shortMode,a);if(o){let l=ot("span",e),u=ot("span",l);if(yield this.renderComponentText(u,o,a,t),this.addInternalClasses(a,u),i.addClassName(l,a),i.addDataAttribute(l,t,a),i.addDataAttribute(r,t,a),fe.allDateFields().includes(a)){let c=a;l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),rx(l,t,c,ni)}),l.addEventListener("contextmenu",d=>{d.preventDefault(),d.stopPropagation(),new bf(c,t,ni).showAtPosition({x:d.clientX,y:d.clientY})}),l.setAttribute("title",`Click to edit ${yf(c)}, Right-click for more options`)}}}for(let a of this.taskLayoutOptions.hiddenComponents)i.addDataAttribute(r,t,a);r.dataset.taskPriority===void 0&&i.addDataAttribute(r,t,"priority")})}renderComponentText(t,e,r,i){return L(this,null,function*(){if(r==="description"){e=Fe.getInstance().removeAsWordFromDependingOnSettings(e);let{debugSettings:s}=le();s.showTaskHiddenData&&(e+=`<br>\u{1F41B} <b>${i.lineNumber}</b> . ${i.sectionStart} . ${i.sectionIndex} . '<code>${i.originalMarkdown}</code>'<br>'<code>${i.path}</code>' > '<code>${i.precedingHeader}</code>'<br>`),yield this.textRenderer(e,t,i.path,this.obsidianComponent);let a=t.querySelector("blockquote"),o=a!=null?a:t,l=o.querySelector("p");if(l!==null){for(;l.firstChild;)o.insertBefore(l.firstChild,l);l.remove()}t.querySelectorAll("p").forEach(u=>{u.hasChildNodes()||u.remove()}),t.querySelectorAll(".footnotes").forEach(u=>{u.remove()})}else t.innerHTML=e})}addInternalClasses(t,e){function r(i){let s=/["&\x00\r\n]/g,a=i.replace(s,"-");return a=a.replace(/^[-_]+/,""),a.length>0?a:null}if(t==="description"){let i=e.getElementsByClassName("tag");for(let s=0;s<i.length;s++){let a=i[s].textContent;if(a){let o=r(a),l=i[s];o&&(l.dataset.tagName=o)}}}}addTooltip(t,e,r){let{recurrenceSymbol:i,startDateSymbol:s,createdDateSymbol:a,scheduledDateSymbol:o,dueDateSymbol:l,cancelledDateSymbol:u,doneDateSymbol:c}=Er.tasksPluginEmoji.taskSerializer.symbols;e.addEventListener("mouseenter",()=>{function d(T,_,O){_&&T.createDiv().setText(f({signifier:O,date:_}))}function f({signifier:T,date:_}){return`${T} ${_.format(ce.dateFormat)} (${_.from(window.moment().startOf("day"))})`}let p=e.createDiv();p.addClasses(["tooltip","pop-up"]),t.recurrence&&p.createDiv().setText(`${i} ${t.recurrence.toText()}`),d(p,t.createdDate,a),d(p,t.startDate,s),d(p,t.scheduledDate,o),d(p,t.dueDate,l),d(p,t.cancelledDate,u),d(p,t.doneDate,c);let b=t.getLinkText({isFilenameUnique:r});b&&p.createDiv().setText(`\u{1F517} ${b}`),e.addEventListener("mouseleave",()=>{p.remove()})})}};var _f=class{constructor({plugin:t}){this.markdownPostProcessor=this._markdownPostProcessor.bind(this);t.registerMarkdownPostProcessor((e,r)=>{t.app.workspace.onLayoutReady(()=>{this.markdownPostProcessor(e,r)})})}_markdownPostProcessor(t,e){return L(this,null,function*(){var d;let r=new ax.MarkdownRenderChild(t);e.addChild(r);let i=t.findAll(".task-list-item").filter(f=>{var T;let p=(T=f.textContent)==null?void 0:T.split(` + `}}function w(){e.calendarContainer.classList.add("hasWeeks");var h=$e("div","flatpickr-weekwrapper");h.appendChild($e("span","flatpickr-weekday",e.l10n.weekAbbreviation));var g=$e("div","flatpickr-weeks");return h.appendChild(g),{weekWrapper:h,weekNumbers:g}}function S(h,g){g===void 0&&(g=!0);var k=g?h:h-e.currentMonth;k<0&&e._hidePrevMonthArrow===!0||k>0&&e._hideNextMonthArrow===!0||(e.currentMonth+=k,(e.currentMonth<0||e.currentMonth>11)&&(e.currentYear+=e.currentMonth>11?1:-1,e.currentMonth=(e.currentMonth+12)%12,Xe("onYearChange"),C()),K(),Xe("onMonthChange"),da())}function M(h,g){if(h===void 0&&(h=!0),g===void 0&&(g=!0),e.input.value="",e.altInput!==void 0&&(e.altInput.value=""),e.mobileInput!==void 0&&(e.mobileInput.value=""),e.selectedDates=[],e.latestSelectedDateObj=void 0,g===!0&&(e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth()),e.config.enableTime===!0){var k=gf(e.config),R=k.hours,G=k.minutes,X=k.seconds;p(R,G,X)}e.redraw(),h&&Xe("onChange")}function I(){e.isOpen=!1,e.isMobile||(e.calendarContainer!==void 0&&e.calendarContainer.classList.remove("open"),e._input!==void 0&&e._input.classList.remove("active")),Xe("onClose")}function j(){e.config!==void 0&&Xe("onDestroy");for(var h=e._handlers.length;h--;)e._handlers[h].remove();if(e._handlers=[],e.mobileInput)e.mobileInput.parentNode&&e.mobileInput.parentNode.removeChild(e.mobileInput),e.mobileInput=void 0;else if(e.calendarContainer&&e.calendarContainer.parentNode)if(e.config.static&&e.calendarContainer.parentNode){var g=e.calendarContainer.parentNode;if(g.lastChild&&g.removeChild(g.lastChild),g.parentNode){for(;g.firstChild;)g.parentNode.insertBefore(g.firstChild,g);g.parentNode.removeChild(g)}}else e.calendarContainer.parentNode.removeChild(e.calendarContainer);e.altInput&&(e.input.type="text",e.altInput.parentNode&&e.altInput.parentNode.removeChild(e.altInput),delete e.altInput),e.input&&(e.input.type=e.input._type,e.input.classList.remove("flatpickr-input"),e.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(k){try{delete e[k]}catch(R){}})}function D(h){return e.calendarContainer.contains(h)}function P(h){if(e.isOpen&&!e.config.inline){var g=Tn(h),k=D(g),R=g===e.input||g===e.altInput||e.element.contains(g)||h.path&&h.path.indexOf&&(~h.path.indexOf(e.input)||~h.path.indexOf(e.altInput)),G=!R&&!k&&!D(h.relatedTarget),X=!e.config.ignoredFocusElements.some(function(_e){return _e.contains(g)});G&&X&&(e.config.allowInput&&e.setDate(e._input.value,!1,e.config.altInput?e.config.altFormat:e.config.dateFormat),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0&&e.input.value!==""&&e.input.value!==void 0&&l(),e.close(),e.config&&e.config.mode==="range"&&e.selectedDates.length===1&&e.clear(!1))}}function W(h){if(!(!h||e.config.minDate&&h<e.config.minDate.getFullYear()||e.config.maxDate&&h>e.config.maxDate.getFullYear())){var g=h,k=e.currentYear!==g;e.currentYear=g||e.currentYear,e.config.maxDate&&e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth=Math.min(e.config.maxDate.getMonth(),e.currentMonth):e.config.minDate&&e.currentYear===e.config.minDate.getFullYear()&&(e.currentMonth=Math.max(e.config.minDate.getMonth(),e.currentMonth)),k&&(e.redraw(),Xe("onYearChange"),C())}}function ce(h,g){var k;g===void 0&&(g=!0);var R=e.parseDate(h,void 0,g);if(e.config.minDate&&R&&_n(R,e.config.minDate,g!==void 0?g:!e.minDateHasTime)<0||e.config.maxDate&&R&&_n(R,e.config.maxDate,g!==void 0?g:!e.maxDateHasTime)>0)return!1;if(!e.config.enable&&e.config.disable.length===0)return!0;if(R===void 0)return!1;for(var G=!!e.config.enable,X=(k=e.config.enable)!==null&&k!==void 0?k:e.config.disable,_e=0,ne=void 0;_e<X.length;_e++){if(ne=X[_e],typeof ne=="function"&&ne(R))return G;if(ne instanceof Date&&R!==void 0&&ne.getTime()===R.getTime())return G;if(typeof ne=="string"){var Ce=e.parseDate(ne,void 0,!0);return Ce&&Ce.getTime()===R.getTime()?G:!G}else if(typeof ne=="object"&&R!==void 0&&ne.from&&ne.to&&R.getTime()>=ne.from.getTime()&&R.getTime()<=ne.to.getTime())return G}return!G}function be(h){return e.daysContainer!==void 0?h.className.indexOf("hidden")===-1&&h.className.indexOf("flatpickr-disabled")===-1&&e.daysContainer.contains(h):!1}function Oe(h){var g=h.target===e._input,k=e._input.value.trimEnd()!==fa();g&&k&&!(h.relatedTarget&&D(h.relatedTarget))&&e.setDate(e._input.value,!0,h.target===e.altInput?e.config.altFormat:e.config.dateFormat)}function He(h){var g=Tn(h),k=e.config.wrap?n.contains(g):g===e._input,R=e.config.allowInput,G=e.isOpen&&(!R||!k),X=e.config.inline&&k&&!R;if(h.keyCode===13&&k){if(R)return e.setDate(e._input.value,!0,g===e.altInput?e.config.altFormat:e.config.dateFormat),e.close(),g.blur();e.open()}else if(D(g)||G||X){var _e=!!e.timeContainer&&e.timeContainer.contains(g);switch(h.keyCode){case 13:_e?(h.preventDefault(),l(),la()):Yn(h);break;case 27:h.preventDefault(),la();break;case 8:case 46:k&&!e.config.allowInput&&(h.preventDefault(),e.clear());break;case 37:case 39:if(!_e&&!k){h.preventDefault();var ne=s();if(e.daysContainer!==void 0&&(R===!1||ne&&be(ne))){var Ce=h.keyCode===39?1:-1;h.ctrlKey?(h.stopPropagation(),S(Ce),we(Z(1),0)):we(void 0,Ce)}}else e.hourElement&&e.hourElement.focus();break;case 38:case 40:h.preventDefault();var ie=h.keyCode===40?1:-1;e.daysContainer&&g.$i!==void 0||g===e.input||g===e.altInput?h.ctrlKey?(h.stopPropagation(),W(e.currentYear-ie),we(Z(1),0)):_e||we(void 0,ie*7):g===e.currentYearElement?W(e.currentYear-ie):e.config.enableTime&&(!_e&&e.hourElement&&e.hourElement.focus(),l(h),e._debouncedChange());break;case 9:if(_e){var me=[e.hourElement,e.minuteElement,e.secondElement,e.amPM].concat(e.pluginElements).filter(function(Ot){return Ot}),ze=me.indexOf(g);if(ze!==-1){var Wn=me[ze+(h.shiftKey?-1:1)];h.preventDefault(),(Wn||e._input).focus()}}else!e.config.noCalendar&&e.daysContainer&&e.daysContainer.contains(g)&&h.shiftKey&&(h.preventDefault(),e._input.focus());break;default:break}}if(e.amPM!==void 0&&g===e.amPM)switch(h.key){case e.l10n.amPM[0].charAt(0):case e.l10n.amPM[0].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[0],d(),hr();break;case e.l10n.amPM[1].charAt(0):case e.l10n.amPM[1].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[1],d(),hr();break}(k||D(g))&&Xe("onKeyDown",h)}function Le(h,g){if(g===void 0&&(g="flatpickr-day"),!(e.selectedDates.length!==1||h&&(!h.classList.contains(g)||h.classList.contains("flatpickr-disabled")))){for(var k=h?h.dateObj.getTime():e.days.firstElementChild.dateObj.getTime(),R=e.parseDate(e.selectedDates[0],void 0,!0).getTime(),G=Math.min(k,e.selectedDates[0].getTime()),X=Math.max(k,e.selectedDates[0].getTime()),_e=!1,ne=0,Ce=0,ie=G;ie<X;ie+=$E.DAY)ce(new Date(ie),!0)||(_e=_e||ie>G&&ie<X,ie<R&&(!ne||ie>ne)?ne=ie:ie>R&&(!Ce||ie<Ce)&&(Ce=ie));var me=Array.from(e.rContainer.querySelectorAll("*:nth-child(-n+"+e.config.showMonths+") > ."+g));me.forEach(function(ze){var Wn=ze.dateObj,Ot=Wn.getTime(),ds=ne>0&&Ot<ne||Ce>0&&Ot>Ce;if(ds){ze.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(Pi){ze.classList.remove(Pi)});return}else if(_e&&!ds)return;["startRange","inRange","endRange","notAllowed"].forEach(function(Pi){ze.classList.remove(Pi)}),h!==void 0&&(h.classList.add(k<=e.selectedDates[0].getTime()?"startRange":"endRange"),R<k&&Ot===R?ze.classList.add("startRange"):R>k&&Ot===R&&ze.classList.add("endRange"),Ot>=ne&&(Ce===0||Ot<=Ce)&&jE(Ot,R,k)&&ze.classList.add("inRange"))})}}function Yt(){e.isOpen&&!e.config.static&&!e.config.inline&&us()}function pr(h,g){if(g===void 0&&(g=e._positionElement),e.isMobile===!0){if(h){h.preventDefault();var k=Tn(h);k&&k.blur()}e.mobileInput!==void 0&&(e.mobileInput.focus(),e.mobileInput.click()),Xe("onOpen");return}else if(e._input.disabled||e.config.inline)return;var R=e.isOpen;e.isOpen=!0,R||(e.calendarContainer.classList.add("open"),e._input.classList.add("active"),Xe("onOpen"),us(g)),e.config.enableTime===!0&&e.config.noCalendar===!0&&e.config.allowInput===!1&&(h===void 0||!e.timeContainer.contains(h.relatedTarget))&&setTimeout(function(){return e.hourElement.select()},50)}function vn(h){return function(g){var k=e.config["_"+h+"Date"]=e.parseDate(g,e.config.dateFormat),R=e.config["_"+(h==="min"?"max":"min")+"Date"];k!==void 0&&(e[h==="min"?"minDateHasTime":"maxDateHasTime"]=k.getHours()>0||k.getMinutes()>0||k.getSeconds()>0),e.selectedDates&&(e.selectedDates=e.selectedDates.filter(function(G){return ce(G)}),!e.selectedDates.length&&h==="min"&&f(k),hr()),e.daysContainer&&(oa(),k!==void 0?e.currentYearElement[h]=k.getFullYear().toString():e.currentYearElement.removeAttribute(h),e.currentYearElement.disabled=!!R&&k!==void 0&&R.getFullYear()===k.getFullYear())}}function te(){var h=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],g=Zt(Zt({},JSON.parse(JSON.stringify(n.dataset||{}))),t),k={};e.config.parseDate=g.parseDate,e.config.formatDate=g.formatDate,Object.defineProperty(e.config,"enable",{get:function(){return e.config._enable},set:function(me){e.config._enable=Fr(me)}}),Object.defineProperty(e.config,"disable",{get:function(){return e.config._disable},set:function(me){e.config._disable=Fr(me)}});var R=g.mode==="time";if(!g.dateFormat&&(g.enableTime||R)){var G=pt.defaultConfig.dateFormat||is.dateFormat;k.dateFormat=g.noCalendar||R?"H:i"+(g.enableSeconds?":S":""):G+" H:i"+(g.enableSeconds?":S":"")}if(g.altInput&&(g.enableTime||R)&&!g.altFormat){var X=pt.defaultConfig.altFormat||is.altFormat;k.altFormat=g.noCalendar||R?"h:i"+(g.enableSeconds?":S K":" K"):X+(" h:i"+(g.enableSeconds?":S":"")+" K")}Object.defineProperty(e.config,"minDate",{get:function(){return e.config._minDate},set:vn("min")}),Object.defineProperty(e.config,"maxDate",{get:function(){return e.config._maxDate},set:vn("max")});var _e=function(me){return function(ze){e.config[me==="min"?"_minTime":"_maxTime"]=e.parseDate(ze,"H:i:S")}};Object.defineProperty(e.config,"minTime",{get:function(){return e.config._minTime},set:_e("min")}),Object.defineProperty(e.config,"maxTime",{get:function(){return e.config._maxTime},set:_e("max")}),g.mode==="time"&&(e.config.noCalendar=!0,e.config.enableTime=!0),Object.assign(e.config,k,g);for(var ne=0;ne<h.length;ne++)e.config[h[ne]]=e.config[h[ne]]===!0||e.config[h[ne]]==="true";cf.filter(function(me){return e.config[me]!==void 0}).forEach(function(me){e.config[me]=pf(e.config[me]||[]).map(a)}),e.isMobile=!e.config.disableMobile&&!e.config.inline&&e.config.mode==="single"&&!e.config.disable.length&&!e.config.enable&&!e.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(var ne=0;ne<e.config.plugins.length;ne++){var Ce=e.config.plugins[ne](e)||{};for(var ie in Ce)cf.indexOf(ie)>-1?e.config[ie]=pf(Ce[ie]).map(a).concat(e.config[ie]):typeof g[ie]=="undefined"&&(e.config[ie]=Ce[ie])}g.altInputClass||(e.config.altInputClass=jt().className+" "+e.config.altInputClass),Xe("onParseConfig")}function jt(){return e.config.wrap?n.querySelector("[data-input]"):n}function it(){typeof e.config.locale!="object"&&typeof pt.l10ns[e.config.locale]=="undefined"&&e.config.errorHandler(new Error("flatpickr: invalid locale "+e.config.locale)),e.l10n=Zt(Zt({},pt.l10ns.default),typeof e.config.locale=="object"?e.config.locale:e.config.locale!=="default"?pt.l10ns[e.config.locale]:void 0),Ci.D="("+e.l10n.weekdays.shorthand.join("|")+")",Ci.l="("+e.l10n.weekdays.longhand.join("|")+")",Ci.M="("+e.l10n.months.shorthand.join("|")+")",Ci.F="("+e.l10n.months.longhand.join("|")+")",Ci.K="("+e.l10n.amPM[0]+"|"+e.l10n.amPM[1]+"|"+e.l10n.amPM[0].toLowerCase()+"|"+e.l10n.amPM[1].toLowerCase()+")";var h=Zt(Zt({},t),JSON.parse(JSON.stringify(n.dataset||{})));h.time_24hr===void 0&&pt.defaultConfig.time_24hr===void 0&&(e.config.time_24hr=e.l10n.time_24hr),e.formatDate=db(e),e.parseDate=mf({config:e.config,l10n:e.l10n})}function us(h){if(typeof e.config.position=="function")return void e.config.position(e,h);if(e.calendarContainer!==void 0){Xe("onPreCalendarPosition");var g=h||e._positionElement,k=Array.prototype.reduce.call(e.calendarContainer.children,function(ps,ms){return ps+ms.offsetHeight},0),R=e.calendarContainer.offsetWidth,G=e.config.position.split(" "),X=G[0],_e=G.length>1?G[1]:null,ne=g.getBoundingClientRect(),Ce=window.innerHeight-ne.bottom,ie=X==="above"||X!=="below"&&Ce<k&&ne.top>k,me=window.pageYOffset+ne.top+(ie?-k-2:g.offsetHeight+2);if(Xt(e.calendarContainer,"arrowTop",!ie),Xt(e.calendarContainer,"arrowBottom",ie),!e.config.inline){var ze=window.pageXOffset+ne.left,Wn=!1,Ot=!1;_e==="center"?(ze-=(R-ne.width)/2,Wn=!0):_e==="right"&&(ze-=R-ne.width,Ot=!0),Xt(e.calendarContainer,"arrowLeft",!Wn&&!Ot),Xt(e.calendarContainer,"arrowCenter",Wn),Xt(e.calendarContainer,"arrowRight",Ot);var ds=window.document.body.offsetWidth-(window.pageXOffset+ne.right),Pi=ze+R>window.document.body.offsetWidth,Io=ds+R>window.document.body.offsetWidth;if(Xt(e.calendarContainer,"rightMost",Pi),!e.config.static)if(e.calendarContainer.style.top=me+"px",!Pi)e.calendarContainer.style.left=ze+"px",e.calendarContainer.style.right="auto";else if(!Io)e.calendarContainer.style.left="auto",e.calendarContainer.style.right=ds+"px";else{var Fo=mr();if(Fo===void 0)return;var Mf=window.document.body.offsetWidth,Lo=Math.max(0,Mf/2-R/2),L=".flatpickr-calendar.centerMost:before",he=".flatpickr-calendar.centerMost:after",gr=Fo.cssRules.length,fs="{left:"+ne.left+"px;right:auto;}";Xt(e.calendarContainer,"rightMost",!1),Xt(e.calendarContainer,"centerMost",!0),Fo.insertRule(L+","+he+fs,gr),e.calendarContainer.style.left=Lo+"px",e.calendarContainer.style.right="auto"}}}}function mr(){for(var h=null,g=0;g<document.styleSheets.length;g++){var k=document.styleSheets[g];if(!!k.cssRules){try{k.cssRules}catch(R){continue}h=k;break}}return h!=null?h:Mo()}function Mo(){var h=document.createElement("style");return document.head.appendChild(h),h.sheet}function oa(){e.config.noCalendar||e.isMobile||(C(),da(),K())}function la(){e._input.focus(),window.navigator.userAgent.indexOf("MSIE")!==-1||navigator.msMaxTouchPoints!==void 0?setTimeout(e.close,0):e.close()}function Yn(h){h.preventDefault(),h.stopPropagation();var g=function(me){return me.classList&&me.classList.contains("flatpickr-day")&&!me.classList.contains("flatpickr-disabled")&&!me.classList.contains("notAllowed")},k=ub(Tn(h),g);if(k!==void 0){var R=k,G=e.latestSelectedDateObj=new Date(R.dateObj.getTime()),X=(G.getMonth()<e.currentMonth||G.getMonth()>e.currentMonth+e.config.showMonths-1)&&e.config.mode!=="range";if(e.selectedDateElem=R,e.config.mode==="single")e.selectedDates=[G];else if(e.config.mode==="multiple"){var _e=Lr(G);_e?e.selectedDates.splice(parseInt(_e),1):e.selectedDates.push(G)}else e.config.mode==="range"&&(e.selectedDates.length===2&&e.clear(!1,!1),e.latestSelectedDateObj=G,e.selectedDates.push(G),_n(G,e.selectedDates[0],!0)!==0&&e.selectedDates.sort(function(me,ze){return me.getTime()-ze.getTime()}));if(d(),X){var ne=e.currentYear!==G.getFullYear();e.currentYear=G.getFullYear(),e.currentMonth=G.getMonth(),ne&&(Xe("onYearChange"),C()),Xe("onMonthChange")}if(da(),K(),hr(),!X&&e.config.mode!=="range"&&e.config.showMonths===1?H(R):e.selectedDateElem!==void 0&&e.hourElement===void 0&&e.selectedDateElem&&e.selectedDateElem.focus(),e.hourElement!==void 0&&e.hourElement!==void 0&&e.hourElement.focus(),e.config.closeOnSelect){var Ce=e.config.mode==="single"&&!e.config.enableTime,ie=e.config.mode==="range"&&e.selectedDates.length===2&&!e.config.enableTime;(Ce||ie)&&la()}_()}}var Ri={locale:[it,v],showMonths:[$,o,y],minDate:[E],maxDate:[E],positionElement:[Po],clickOpens:[function(){e.config.clickOpens===!0?(T(e._input,"focus",e.open),T(e._input,"click",e.open)):(e._input.removeEventListener("focus",e.open),e._input.removeEventListener("click",e.open))}]};function Ro(h,g){if(h!==null&&typeof h=="object"){Object.assign(e.config,h);for(var k in h)Ri[k]!==void 0&&Ri[k].forEach(function(R){return R()})}else e.config[h]=g,Ri[h]!==void 0?Ri[h].forEach(function(R){return R()}):cf.indexOf(h)>-1&&(e.config[h]=pf(g));e.redraw(),hr(!0)}function Ao(h,g){var k=[];if(h instanceof Array)k=h.map(function(R){return e.parseDate(R,g)});else if(h instanceof Date||typeof h=="number")k=[e.parseDate(h,g)];else if(typeof h=="string")switch(e.config.mode){case"single":case"time":k=[e.parseDate(h,g)];break;case"multiple":k=h.split(e.config.conjunction).map(function(R){return e.parseDate(R,g)});break;case"range":k=h.split(e.l10n.rangeSeparator).map(function(R){return e.parseDate(R,g)});break;default:break}else e.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(h)));e.selectedDates=e.config.allowInvalidPreload?k:k.filter(function(R){return R instanceof Date&&ce(R,!1)}),e.config.mode==="range"&&e.selectedDates.sort(function(R,G){return R.getTime()-G.getTime()})}function Ai(h,g,k){if(g===void 0&&(g=!1),k===void 0&&(k=e.config.dateFormat),h!==0&&!h||h instanceof Array&&h.length===0)return e.clear(g);Ao(h,k),e.latestSelectedDateObj=e.selectedDates[e.selectedDates.length-1],e.redraw(),E(void 0,g),f(),e.selectedDates.length===0&&e.clear(!1),hr(g),g&&Xe("onChange")}function Fr(h){return h.slice().map(function(g){return typeof g=="string"||typeof g=="number"||g instanceof Date?e.parseDate(g,void 0,!0):g&&typeof g=="object"&&g.from&&g.to?{from:e.parseDate(g.from,void 0),to:e.parseDate(g.to,void 0)}:g}).filter(function(g){return g})}function Au(){e.selectedDates=[],e.now=e.parseDate(e.config.now)||new Date;var h=e.config.defaultDate||((e.input.nodeName==="INPUT"||e.input.nodeName==="TEXTAREA")&&e.input.placeholder&&e.input.value===e.input.placeholder?null:e.input.value);h&&Ao(h,e.config.dateFormat),e._initialDate=e.selectedDates.length>0?e.selectedDates[0]:e.config.minDate&&e.config.minDate.getTime()>e.now.getTime()?e.config.minDate:e.config.maxDate&&e.config.maxDate.getTime()<e.now.getTime()?e.config.maxDate:e.now,e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth(),e.selectedDates.length>0&&(e.latestSelectedDateObj=e.selectedDates[0]),e.config.minTime!==void 0&&(e.config.minTime=e.parseDate(e.config.minTime,"H:i")),e.config.maxTime!==void 0&&(e.config.maxTime=e.parseDate(e.config.maxTime,"H:i")),e.minDateHasTime=!!e.config.minDate&&(e.config.minDate.getHours()>0||e.config.minDate.getMinutes()>0||e.config.minDate.getSeconds()>0),e.maxDateHasTime=!!e.config.maxDate&&(e.config.maxDate.getHours()>0||e.config.maxDate.getMinutes()>0||e.config.maxDate.getSeconds()>0)}function ua(){if(e.input=jt(),!e.input){e.config.errorHandler(new Error("Invalid input element specified"));return}e.input._type=e.input.type,e.input.type="text",e.input.classList.add("flatpickr-input"),e._input=e.input,e.config.altInput&&(e.altInput=$e(e.input.nodeName,e.config.altInputClass),e._input=e.altInput,e.altInput.placeholder=e.input.placeholder,e.altInput.disabled=e.input.disabled,e.altInput.required=e.input.required,e.altInput.tabIndex=e.input.tabIndex,e.altInput.type="text",e.input.setAttribute("type","hidden"),!e.config.static&&e.input.parentNode&&e.input.parentNode.insertBefore(e.altInput,e.input.nextSibling)),e.config.allowInput||e._input.setAttribute("readonly","readonly"),Po()}function Po(){e._positionElement=e.config.positionElement||e._input}function cs(){var h=e.config.enableTime?e.config.noCalendar?"time":"datetime-local":"date";e.mobileInput=$e("input",e.input.className+" flatpickr-mobile"),e.mobileInput.tabIndex=1,e.mobileInput.type=h,e.mobileInput.disabled=e.input.disabled,e.mobileInput.required=e.input.required,e.mobileInput.placeholder=e.input.placeholder,e.mobileFormatStr=h==="datetime-local"?"Y-m-d\\TH:i:S":h==="date"?"Y-m-d":"H:i:S",e.selectedDates.length>0&&(e.mobileInput.defaultValue=e.mobileInput.value=e.formatDate(e.selectedDates[0],e.mobileFormatStr)),e.config.minDate&&(e.mobileInput.min=e.formatDate(e.config.minDate,"Y-m-d")),e.config.maxDate&&(e.mobileInput.max=e.formatDate(e.config.maxDate,"Y-m-d")),e.input.getAttribute("step")&&(e.mobileInput.step=String(e.input.getAttribute("step"))),e.input.type="hidden",e.altInput!==void 0&&(e.altInput.type="hidden");try{e.input.parentNode&&e.input.parentNode.insertBefore(e.mobileInput,e.input.nextSibling)}catch(g){}T(e.mobileInput,"change",function(g){e.setDate(Tn(g).value,!1,e.mobileFormatStr),Xe("onChange"),Xe("onClose")})}function jn(h){if(e.isOpen===!0)return e.close();e.open(h)}function Xe(h,g){if(e.config!==void 0){var k=e.config[h];if(k!==void 0&&k.length>0)for(var R=0;k[R]&&R<k.length;R++)k[R](e.selectedDates,e.input.value,e,g);h==="onChange"&&(e.input.dispatchEvent(ca("change")),e.input.dispatchEvent(ca("input")))}}function ca(h){var g=document.createEvent("Event");return g.initEvent(h,!0,!0),g}function Lr(h){for(var g=0;g<e.selectedDates.length;g++){var k=e.selectedDates[g];if(k instanceof Date&&_n(k,h)===0)return""+g}return!1}function xt(h){return e.config.mode!=="range"||e.selectedDates.length<2?!1:_n(h,e.selectedDates[0])>=0&&_n(h,e.selectedDates[1])<=0}function da(){e.config.noCalendar||e.isMobile||!e.monthNav||(e.yearElements.forEach(function(h,g){var k=new Date(e.currentYear,e.currentMonth,1);k.setMonth(e.currentMonth+g),e.config.showMonths>1||e.config.monthSelectorType==="static"?e.monthElements[g].textContent=xu(k.getMonth(),e.config.shorthandCurrentMonth,e.l10n)+" ":e.monthsDropdownContainer.value=k.getMonth().toString(),h.value=k.getFullYear().toString()}),e._hidePrevMonthArrow=e.config.minDate!==void 0&&(e.currentYear===e.config.minDate.getFullYear()?e.currentMonth<=e.config.minDate.getMonth():e.currentYear<e.config.minDate.getFullYear()),e._hideNextMonthArrow=e.config.maxDate!==void 0&&(e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth+1>e.config.maxDate.getMonth():e.currentYear>e.config.maxDate.getFullYear()))}function fa(h){var g=h||(e.config.altInput?e.config.altFormat:e.config.dateFormat);return e.selectedDates.map(function(k){return e.formatDate(k,g)}).filter(function(k,R,G){return e.config.mode!=="range"||e.config.enableTime||G.indexOf(k)===R}).join(e.config.mode!=="range"?e.config.conjunction:e.l10n.rangeSeparator)}function hr(h){h===void 0&&(h=!0),e.mobileInput!==void 0&&e.mobileFormatStr&&(e.mobileInput.value=e.latestSelectedDateObj!==void 0?e.formatDate(e.latestSelectedDateObj,e.mobileFormatStr):""),e.input.value=fa(e.config.dateFormat),e.altInput!==void 0&&(e.altInput.value=fa(e.config.altFormat)),h!==!1&&Xe("onValueUpdate")}function Cf(h){var g=Tn(h),k=e.prevMonthNav.contains(g),R=e.nextMonthNav.contains(g);k||R?S(k?-1:1):e.yearElements.indexOf(g)>=0?g.select():g.classList.contains("arrowUp")?e.changeYear(e.currentYear+1):g.classList.contains("arrowDown")&&e.changeYear(e.currentYear-1)}function No(h){h.preventDefault();var g=h.type==="keydown",k=Tn(h),R=k;e.amPM!==void 0&&k===e.amPM&&(e.amPM.textContent=e.l10n.amPM[bn(e.amPM.textContent===e.l10n.amPM[0])]);var G=parseFloat(R.getAttribute("min")),X=parseFloat(R.getAttribute("max")),_e=parseFloat(R.getAttribute("step")),ne=parseInt(R.value,10),Ce=h.delta||(g?h.which===38?1:-1:0),ie=ne+_e*Ce;if(typeof R.value!="undefined"&&R.value.length===2){var me=R===e.hourElement,ze=R===e.minuteElement;ie<G?(ie=X+ie+bn(!me)+(bn(me)&&bn(!e.amPM)),ze&&Y(void 0,-1,e.hourElement)):ie>X&&(ie=R===e.hourElement?ie-X-bn(!e.amPM):G,ze&&Y(void 0,1,e.hourElement)),e.amPM&&me&&(_e===1?ie+ne===23:Math.abs(ie-ne)>_e)&&(e.amPM.textContent=e.l10n.amPM[bn(e.amPM.textContent===e.l10n.amPM[0])]),R.value=Qt(ie)}}return i(),e}function So(n,t){for(var e=Array.prototype.slice.call(n).filter(function(a){return a instanceof HTMLElement}),r=[],i=0;i<e.length;i++){var s=e[i];try{if(s.getAttribute("data-fp-omit")!==null)continue;s._flatpickr!==void 0&&(s._flatpickr.destroy(),s._flatpickr=void 0),s._flatpickr=RY(s,t||{}),r.push(s._flatpickr)}catch(a){console.error(a)}}return r.length===1?r[0]:r}typeof HTMLElement!="undefined"&&typeof HTMLCollection!="undefined"&&typeof NodeList!="undefined"&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(n){return So(this,n)},HTMLElement.prototype.flatpickr=function(n){return So([this],n)});var pt=function(n,t){return typeof n=="string"?So(window.document.querySelectorAll(n),t):n instanceof Node?So([n],t):So(n,t)};pt.defaultConfig={};pt.l10ns={en:Zt({},ff),default:Zt({},ff)};pt.localize=function(n){pt.l10ns.default=Zt(Zt({},pt.l10ns.default),n)};pt.setDefaults=function(n){pt.defaultConfig=Zt(Zt({},pt.defaultConfig),n)};pt.parseDate=mf({});pt.formatDate=db({});pt.compareDates=_n;typeof jQuery!="undefined"&&typeof jQuery.fn!="undefined"&&(jQuery.fn.flatpickr=function(n){return So(this,n)});Date.prototype.fp_incr=function(n){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(typeof n=="string"?parseInt(n,10):n))};typeof window!="undefined"&&(window.flatpickr=pt);var HE=pt;Nt();Nt();Gi();sd();function GE(n){for(let e of pe.allDateFields()){let r=n[e];if(r&&!r.isValid())return!1}let t=n.happensDates.some(e=>!!(e!=null&&e.isValid()));return!n.isDone&&t}function Do(n){return n.dueDate?"dueDate":n.scheduledDate?"scheduledDate":n.startDate?"startDate":null}function fb(n,t,e,r){let i=n[t];return zE(i,n,t,e,r)}function BE(n,t,e,r){let i=window.moment();return zE(i,n,t,e,r)}function VE(n,t,e,r){return KE(n,t,null)}function zE(n,t,e,r,i){let s=new It(n).postpone(r,i);return KE(t,e,s)}function KE(n,t,e){let r=Ft.removeInferredStatusIfNeeded(n,[new pe(de(U({},n),{[t]:e}))])[0];return{postponedDate:e,postponedTask:r}}function QE(n,t){if(n){let e=n==null?void 0:n.format("DD MMM YYYY");return`Task's ${t} changed to ${e}`}else return`Task's ${t} removed`}function XE(n,t,e){return`\u2139\uFE0F ${pb(n,t,e)} (right-click for more options)`}function pb(n,t,e){let r=Do(n),i=n[r];return Eo(r,i,t,e)}function ZE(n,t,e){let r=Do(n),i=window.moment().startOf("day");return Eo(r,i,t,e)}function JE(n,t,e){let r=Do(n);return mb(r,n)}function mb(n,t){return n==="scheduledDate"&&t.scheduledDateIsInferred?"Cannot remove inferred scheduled date":`Remove ${yf(n)}`}function AY(n){return Za(n.replace("Date",""))}function yf(n){return n.replace("Date"," date")}function Eo(n,t,e,r){let s=new It(t).postpone(r,e).format("ddd Do MMM"),a=e!=1?e:"a";if(t.isSameOrBefore(window.moment(),"day")){let l=AY(n);return(e>=0?`${l} in ${a} ${r}, on ${s}`:`${l} ${-a} ${r} ago, on ${s}`).replace(" 1 day ago"," yesterday").replace(" in 0 days"," today").replace("in a day","tomorrow")}let o=yf(n);return e>=0?`Postpone ${o} by ${a} ${r}, to ${s}`:`Backdate ${o} by ${-a} ${r}, to ${s}`}sd();var ss=class{constructor(t,e,r){this.newDate=e,this.dateFieldToEdit=t,this.displayName=r!=null?r:`Set Date: ${this.newDate.toDateString()}`}apply(t){return this.isCheckedForTask(t)?[t]:[new pe(de(U({},t),{[this.dateFieldToEdit]:window.moment(this.newDate)}))]}instructionDisplayName(){return this.displayName}isCheckedForTask(t){var e;return((e=t[this.dateFieldToEdit])==null?void 0:e.isSame(window.moment(this.newDate)))||!1}},Pr=class extends ss{constructor(t,e,r,i){var l;let s=(l=e[t])!=null?l:window.moment(),a=Eo(t,s,r,i),o=new It(window.moment(s)).postpone(i,r).toDate();super(t,o,a)}},Ou=class{constructor(t,e){this.dateFieldToEdit=t,this.displayName=mb(t,e)}apply(t){let e=this.dateFieldToEdit==="scheduledDate"&&t.scheduledDateIsInferred;return t[this.dateFieldToEdit]===null||e?[t]:[new pe(de(U({},t),{[this.dateFieldToEdit]:null}))]}instructionDisplayName(){return this.displayName}isCheckedForTask(t){return!1}};function ex(n,t){return nx(t,n,1)}function tx(n,t){return nx(t,n,-1)}function nx(n,t,e){let r=window.moment().startOf("day"),i=r.toDate(),s=new It(r.clone());return[new ss(t,i,Eo(t,r,0,"days")),new ss(t,s.postpone("day",e).toDate(),Eo(t,r,e,"day")),new wo,new Pr(t,n,e*2,"days"),new Pr(t,n,e*3,"days"),new Pr(t,n,e*4,"days"),new Pr(t,n,e*5,"days"),new Pr(t,n,e*6,"days"),new wo,new Pr(t,n,e,"week"),new Pr(t,n,e*2,"weeks"),new Pr(t,n,e*3,"weeks"),new Pr(t,n,e,"month"),new wo,new Ou(t,n)]}function ix(n,t,e,r){var a,o;let i=t[e];HE(n,{defaultDate:i?i.format("YYYY-MM-DD"):new Date,disableMobile:!0,enableTime:!1,dateFormat:"Y-m-d",locale:{firstDayOfWeek:(o=(a=new Intl.Locale(navigator.language).weekInfo)==null?void 0:a.firstDay)!=null?o:1},onClose:(l,u,c)=>F(this,null,function*(){if(l.length>0){let d=l[0],f=new ss(e,d).apply(t);yield r(t,f)}c.destroy()}),onReady:(l,u,c)=>{let d=document.createElement("div");d.style.display="flex",d.style.justifyContent="space-between",d.style.marginTop="10px",rx(d,c,t,r,"Clear",()=>new Ou(e,t).apply(t)),rx(d,c,t,r,"Today",()=>{let p=new Date;return new ss(e,p).apply(t)}),c.calendarContainer.appendChild(d)}}).open()}function rx(n,t,e,r,i,s){let a=document.createElement("button");a.type="button",a.textContent=i,a.classList.add("flatpickr-button"),a.addEventListener("click",()=>F(this,null,function*(){let o=s();yield r(e,o),t.destroy()})),n.appendChild(a)}function sx(n){return["startDate","scheduledDate","dueDate"].includes(n)}var bf=class extends rs{constructor(t,e,r=ni){super(r);let i=sx(t)?ex(t,e):tx(t,e);this.addItemsForInstructions(i,e)}};su();var Tf=class{constructor(){this.data=PY}addDataAttribute(t,e,r){this.data[r].addDataAttribute(t,e,r)}addClassName(t,e){let r=this.data[e].className;t.classList.add(r)}},hb=class{constructor(t,e,r){if(t==="")throw Error("Developer note: CSS class cannot be an empty string, please specify one.");this.className=t,this.attributeName=e,this.attributeValueCalculator=r}addDataAttribute(t,e,r){if(this.attributeName===hb.noAttributeName)return;let i=this.attributeValueCalculator(r,e);i!==""&&(t.dataset[this.attributeName]=i)}},Nr=hb;Nr.noAttributeName="",Nr.noAttributeValueCalculator=()=>"",Nr.dateAttributeCalculator=(t,e)=>{let i="far";function s(o){let u=window.moment().startOf("day").diff(o,"days");if(isNaN(u))return null;if(u===0)return"today";let c="";return u>0?c+="past-":u<0&&(c+="future-"),Math.abs(u)<=7?c+=Math.abs(u).toString()+"d":c+=i,c}let a=e[t];if(!Array.isArray(a)&&a instanceof window.moment){let o=s(a);if(o)return o}return""};function xo(n){return new Nr(n,Nr.noAttributeName,Nr.noAttributeValueCalculator)}function Oo(n,t){return new Nr(n,t,Nr.dateAttributeCalculator)}var PY={createdDate:Oo("task-created","taskCreated"),dueDate:Oo("task-due","taskDue"),startDate:Oo("task-start","taskStart"),scheduledDate:Oo("task-scheduled","taskScheduled"),doneDate:Oo("task-done","taskDone"),cancelledDate:Oo("task-cancelled","taskCancelled"),priority:new Nr("task-priority","taskPriority",(n,t)=>Rn.priorityNameUsingNormal(t.priority).toLocaleLowerCase()),description:xo("task-description"),recurrenceRule:xo("task-recurring"),onCompletion:xo("task-onCompletion"),dependsOn:xo("task-dependsOn"),id:xo("task-id"),blockLink:xo("task-block-link")};function lt(n,t){let e=document.createElement(n);return t.appendChild(e),e}var Mi=class{static obsidianMarkdownRenderer(t,e,r,i){return F(this,null,function*(){!i||(yield ax.MarkdownRenderer.renderMarkdown(t,e,r,i))})}constructor({textRenderer:t=Mi.obsidianMarkdownRenderer,obsidianComponent:e,parentUlElement:r,taskLayoutOptions:i,queryLayoutOptions:s}){this.textRenderer=t,this.obsidianComponent=e,this.parentUlElement=r,this.taskLayoutOptions=i,this.queryLayoutOptions=s}renderTaskLine(s){return F(this,arguments,function*({task:t,taskIndex:e,isTaskInQueryFile:r,isFilenameUnique:i}){let a=lt("li",this.parentUlElement);a.classList.add("task-list-item","plugin-tasks-list-item");let o=lt("span",a);o.classList.add("tasks-list-text"),yield this.taskToHtml(t,o,a,r);let l=lt("input",a);return l.classList.add("task-list-item-checkbox"),l.type="checkbox",t.status.symbol!==" "&&(l.checked=!0,a.classList.add("is-checked")),t.taskLocation.hasKnownPath&&(l.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),l.disabled=!0;let d=t.toggleWithRecurrenceInUsersOrder();Nn({originalTask:t,newTasks:d})}),l.addEventListener("contextmenu",c=>{new uf(Be.getInstance(),t).showAtPosition({x:c.clientX,y:c.clientY})}),l.setAttribute("title","Right-click for options")),a.prepend(l),a.setAttribute("data-task",t.status.symbol.trim()),a.setAttribute("data-line",e.toString()),a.setAttribute("data-task-status-name",t.status.name),a.setAttribute("data-task-status-type",t.status.type),l.setAttribute("data-line",e.toString()),this.queryLayoutOptions.shortMode&&this.addTooltip(t,o,i),a})}taskToHtml(t,e,r,i){return F(this,null,function*(){let s=new Tf,a=Er.tasksPluginEmoji.taskSerializer;for(let o of this.taskLayoutOptions.shownComponents){let l=a.componentToString(t,this.queryLayoutOptions.shortMode,o);if(l){let u=lt("span",e),c=lt("span",u);if(yield this.renderComponentText(c,l,o,t,i),this.addInternalClasses(o,c),s.addClassName(u,o),s.addDataAttribute(u,t,o),s.addDataAttribute(r,t,o),pe.allDateFields().includes(o)){let d=o;u.addEventListener("click",f=>{f.preventDefault(),f.stopPropagation(),ix(u,t,d,ni)}),u.addEventListener("contextmenu",f=>{f.preventDefault(),f.stopPropagation(),new bf(d,t,ni).showAtPosition({x:f.clientX,y:f.clientY})}),u.setAttribute("title",`Click to edit ${yf(d)}, Right-click for more options`)}}}for(let o of this.taskLayoutOptions.hiddenComponents)s.addDataAttribute(r,t,o);r.dataset.taskPriority===void 0&&s.addDataAttribute(r,t,"priority")})}renderComponentText(t,e,r,i,s){return F(this,null,function*(){if(r==="description")return yield this.renderDescription(i,t,s);t.innerHTML=e})}renderDescription(t,e,r){return F(this,null,function*(){let i=this.adjustRelativeLinksInDescription(t,r);i=Fe.getInstance().removeAsWordFromDependingOnSettings(i);let{debugSettings:s}=le();s.showTaskHiddenData&&(i+=`<br>\u{1F41B} <b>${t.lineNumber}</b> . ${t.sectionStart} . ${t.sectionIndex} . '<code>${t.originalMarkdown}</code>'<br>'<code>${t.path}</code>' > '<code>${t.precedingHeader}</code>'<br>`),yield this.textRenderer(i,e,t.path,this.obsidianComponent);let a=e.querySelector("blockquote"),o=a!=null?a:e,l=o.querySelector("p");if(l!==null){for(;l.firstChild;)o.insertBefore(l.firstChild,l);l.remove()}e.querySelectorAll("p").forEach(u=>{u.hasChildNodes()||u.remove()}),e.querySelectorAll(".footnotes").forEach(u=>{u.remove()})})}adjustRelativeLinksInDescription(t,e){if(e)return t.description;let r=t.file.cachedMetadata.links;if(!r)return t.description;let i=r.filter(a=>a.position.start.line===t.taskLocation.lineNumber&&t.description.includes(a.original)&&a.link.startsWith("#")),s=t.description;if(i.length!==0)for(let a of i){let o=`[[${t.path}${a.link}|${a.displayText}]]`;s=s.replace(a.original,o)}return s}addInternalClasses(t,e){function r(i){let s=/["&\x00\r\n]/g,a=i.replace(s,"-");return a=a.replace(/^[-_]+/,""),a.length>0?a:null}if(t==="description"){let i=e.getElementsByClassName("tag");for(let s=0;s<i.length;s++){let a=i[s].textContent;if(a){let o=r(a),l=i[s];o&&(l.dataset.tagName=o)}}}}addTooltip(t,e,r){let{recurrenceSymbol:i,startDateSymbol:s,createdDateSymbol:a,scheduledDateSymbol:o,dueDateSymbol:l,cancelledDateSymbol:u,doneDateSymbol:c}=Er.tasksPluginEmoji.taskSerializer.symbols;e.addEventListener("mouseenter",()=>{function d(T,_,O){_&&T.createDiv().setText(f({signifier:O,date:_}))}function f({signifier:T,date:_}){return`${T} ${_.format(fe.dateFormat)} (${_.from(window.moment().startOf("day"))})`}let p=e.createDiv();p.addClasses(["tooltip","pop-up"]),t.recurrence&&p.createDiv().setText(`${i} ${t.recurrence.toText()}`),d(p,t.createdDate,a),d(p,t.startDate,s),d(p,t.scheduledDate,o),d(p,t.dueDate,l),d(p,t.cancelledDate,u),d(p,t.doneDate,c);let b=t.getLinkText({isFilenameUnique:r});b&&p.createDiv().setText(`\u{1F517} ${b}`),e.addEventListener("mouseleave",()=>{p.remove()})})}renderListItem(t,e,r){return F(this,null,function*(){var o,l;let i=lt("li",t);if(e.statusCharacter){let u=lt("input",i);u.classList.add("task-list-item-checkbox"),u.type="checkbox",u.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),u.disabled=!0;let d=e.checkOrUncheck();Nn({originalTask:e,newTasks:d})}),e.statusCharacter!==" "&&(u.checked=!0,i.classList.add("is-checked")),i.classList.add("task-list-item"),i.setAttribute("data-task",e.statusCharacter.trim()),i.setAttribute("data-line",r.toString())}let s=lt("span",i);yield this.textRenderer(e.description,s,(l=(o=e.findClosestParentTask())==null?void 0:o.path)!=null?l:"",this.obsidianComponent);let a=s.querySelector("p");if(a!==null){for(;a.firstChild;)s.insertBefore(a.firstChild,a);a.remove()}return i})}};var _f=class{constructor({plugin:t}){this.markdownPostProcessor=this._markdownPostProcessor.bind(this);t.registerMarkdownPostProcessor((e,r)=>{t.app.workspace.onLayoutReady(()=>{this.markdownPostProcessor(e,r)})})}_markdownPostProcessor(t,e){return F(this,null,function*(){var d;let r=new ox.MarkdownRenderChild(t);e.addChild(r);let i=t.findAll(".task-list-item").filter(f=>{var T;let p=(T=f.textContent)==null?void 0:T.split(` `);if(p===void 0)return!1;let b=null;for(let _=0;_<p.length;_=_+1)if(p[_]!==""){b=p[_];break}return b===null?!1:Fe.getInstance().includedIn(b)});if(i.length===0)return;let s=e.sourcePath,a=e.getSectionInfo(t);if(a===null)return;let o=a.text.split(` -`),l=0,u=[];for(let f=a.lineStart;f<=a.lineEnd;f++){let p=o[f];if(p===void 0)continue;let b=null,T=fe.fromLine({line:p,taskLocation:new Lt(new mt(s),f,a.lineStart,l,b),fallbackDate:null});T!==null&&(u.push(T),l++)}let c=new Mi({obsidianComponent:r,parentUlElement:t,taskLayoutOptions:new Br,queryLayoutOptions:new Ki});for(let f=0;f<i.length;f++){let p=u[f],b=i[f];if(p===void 0||b===void 0)continue;let T=(d=b.getAttr("data-line"))!=null?d:"0",_=Number.parseInt(T,10),O=yield c.renderTaskLine(p,_),D=b.childNodes;for(let q=0;q<D.length;q=q+1){let se=D[q],H=se.nodeName.toLowerCase();H==="div"?O.prepend(se):(H==="ul"||H==="ol")&&O.append(se)}let A=b.querySelectorAll("[data-footnote-id]"),Y=O.querySelectorAll("[data-footnote-id]");if(A.length===Y.length)for(let q=0;q<A.length;q++)Y[q].replaceWith(A[q]);b.replaceWith(O)}})}};var ox=require("@codemirror/view"),lx=require("obsidian");Nt();var ux=()=>ox.ViewPlugin.fromClass(gb),gb=class{constructor(t){this.view=t,this.handleClickEvent=this.handleClickEvent.bind(this),this.view.dom.addEventListener("click",this.handleClickEvent)}destroy(){this.view.dom.removeEventListener("click",this.handleClickEvent)}handleClickEvent(t){let{target:e}=t;if(!e||!(e instanceof HTMLInputElement)||e.type!=="checkbox")return!1;let r=e.closest("ul.plugin-tasks-query-result, div.callout-content");if(r){if(r.matches("div.callout-content")){let f=`obsidian-tasks-plugin warning: Tasks cannot add or remove completion dates or make the next copy of a recurring task for tasks written inside a callout when you click their checkboxes in Live Preview. -If you wanted Tasks to do these things, please undo your change, then either click the line of the task and use the "Toggle Task Done" command, or switch to Reading View to click the checkbox.`;console.warn(f),new lx.Notice(f,45e3)}return!1}let{state:i}=this.view,s=this.view.posAtDOM(e),a=i.doc.lineAt(s),o=fe.fromLine({line:a.text,taskLocation:Lt.fromUnknownPosition(new mt("")),fallbackDate:null});if(o===null)return!1;t.preventDefault();let l=o.toggleWithRecurrenceInUsersOrder(),u=l.map(f=>f.toFileLineString()).join(i.lineBreak),c=i.update({changes:{from:a.from,to:a.to,insert:u}});if(this.view.dispatch(c),l.length===1){let f=l[0].status.symbol!==" ";setTimeout(()=>{e.checked=f},1)}return!0}};var ia=require("obsidian"),dx=require("obsidian");function cx(n,t,e,r=void 0){let i="";t.isEmpty()||(i+=`Only tasks containing the global filter '${t.get()}'. +`),l=0,u=[];for(let f=a.lineStart;f<=a.lineEnd;f++){let p=o[f];if(p===void 0)continue;let b=null,T=pe.fromLine({line:p,taskLocation:new Lt(new mt(s),f,a.lineStart,l,b),fallbackDate:null});T!==null&&(u.push(T),l++)}let c=new Mi({obsidianComponent:r,parentUlElement:t,taskLayoutOptions:new Br,queryLayoutOptions:new Ki});for(let f=0;f<i.length;f++){let p=u[f],b=i[f];if(p===void 0||b===void 0)continue;let T=(d=b.getAttr("data-line"))!=null?d:"0",_=Number.parseInt(T,10),O=yield c.renderTaskLine({task:p,taskIndex:_,isTaskInQueryFile:!0}),E=b.childNodes;for(let q=0;q<E.length;q=q+1){let se=E[q],H=se.nodeName.toLowerCase();H==="div"?O.prepend(se):(H==="ul"||H==="ol")&&O.append(se)}let A=b.querySelectorAll("[data-footnote-id]"),Y=O.querySelectorAll("[data-footnote-id]");if(A.length===Y.length)for(let q=0;q<A.length;q++)Y[q].replaceWith(A[q]);b.replaceWith(O)}})}};var lx=require("@codemirror/view"),ux=require("obsidian");Nt();var cx=()=>lx.ViewPlugin.fromClass(gb),gb=class{constructor(t){this.view=t,this.handleClickEvent=this.handleClickEvent.bind(this),this.view.dom.addEventListener("click",this.handleClickEvent)}destroy(){this.view.dom.removeEventListener("click",this.handleClickEvent)}handleClickEvent(t){let{target:e}=t;if(!e||!(e instanceof HTMLInputElement)||e.type!=="checkbox")return!1;let r=e.closest("ul.plugin-tasks-query-result, div.callout-content");if(r){if(r.matches("div.callout-content")){let p=`obsidian-tasks-plugin warning: Tasks cannot add or remove completion dates or make the next copy of a recurring task for tasks written inside a callout when you click their checkboxes in Live Preview. +If you wanted Tasks to do these things, please undo your change, then either click the line of the task and use the "Toggle Task Done" command, or switch to Reading View to click the checkbox.`;console.warn(p),new ux.Notice(p,45e3)}return!1}let{state:i}=this.view,s=this.view.posAtDOM(e),a=i.doc.lineAt(s),o=pe.fromLine({line:a.text,taskLocation:Lt.fromUnknownPosition(new mt("")),fallbackDate:null});if(o===null)return!1;t.preventDefault();let l=o.toggleWithRecurrenceInUsersOrder(),u=l.map(p=>p.toFileLineString()).join(i.lineBreak),c=a.to;if(u===""){let p=a.number<i.doc.lines?i.doc.line(a.number+1):null;p&&(c=p.from)}let d=i.update({changes:{from:a.from,to:c,insert:u}});if(this.view.dispatch(d),l.length===1){let p=l[0].status.symbol!==" ";setTimeout(()=>{e.checked=p},1)}return!0}};var ia=require("obsidian"),fx=require("obsidian");function dx(n,t,e,r=void 0){let i="";t.isEmpty()||(i+=`Only tasks containing the global filter '${t.get()}'. `);let s=new ao(" ");function a(c,d){return`${c}: -${s.explainQuery(d)}`}let o=new Fn(n,r),l=new Oi().query(r);if(!(o.ignoreGlobalQuery||l.ignoreGlobalQuery)&&e.hasInstructions()){let c=e.query(r);i+=a("Explanation of the global query",c)+` +${s.explainQuery(d)}`}let o=new Ln(n,r),l=new Oi().query(r);if(!(o.ignoreGlobalQuery||l.ignoreGlobalQuery)&&e.hasInstructions()){let c=e.query(r);i+=a("Explanation of the global query",c)+` `}return l.source!==""&&(i+=a("Explanation of the Query File Defaults (from properties/frontmatter in the query's file)",l)+` -`),i+=a("Explanation of this Tasks code block query",o),i}function vf(n,t,e){let i=new Oi().query(e).append(new Fn(n,e));return i.ignoreGlobalQuery?i:t.query(e).append(i)}Gi();Mn();function Cu(n,t,e){t&&n.push(PY(e))}function PY(n){return`tasks-layout-hide-${n}`}var wf=class{constructor(t){t?this.queryLayoutOptions=t:this.queryLayoutOptions=new Ki}getHiddenClasses(){let t=[],e=[[this.queryLayoutOptions.hideUrgency,"urgency"],[this.queryLayoutOptions.hideBacklinks,"backlinks"],[this.queryLayoutOptions.hideEditButton,"edit-button"],[this.queryLayoutOptions.hidePostponeButton,"postpone-button"]];for(let[r,i]of e)Cu(t,r,i);return this.queryLayoutOptions.shortMode&&t.push("tasks-layout-short-mode"),t}};Is();var kf=class{constructor(t){t?this.taskLayoutOptions=t:this.taskLayoutOptions=new Br}generateHiddenClasses(){let t=[];return this.taskLayoutOptions.toggleableComponents.forEach(e=>{Cu(t,!this.taskLayoutOptions.isShown(e),e)}),Cu(t,!this.taskLayoutOptions.areTagsShown(),"tags"),t}};nn();var Mu=class{constructor(t){this.label=t,this.start()}start(){!this.recordTimings()||performance.mark(this.labelForStart())}finish(){!this.recordTimings()||(performance.mark(this.labelForEnd()),performance.measure(this.label,this.labelForStart(),this.labelForEnd()),this.printDuration())}printDuration(){let t=performance.getEntriesByName(this.label),e=t[t.length-1];e?console.log(this.label+":",e.duration.toFixed(2),"milliseconds"):console.log(`Measurement for ${this.label} not found`)}labelForStart(){return`${this.label} - start`}labelForEnd(){return`${this.label} - end`}recordTimings(){let{debugSettings:t}=le();return t.recordTimings}};Nt();var yb=require("obsidian");var as=class extends rs{constructor(t,e,r=ni){super(r);let i=(u,c,d,f,p,b)=>{var D;let T=!1,_=Eo(e);if(_){let{postponedDate:A}=b(e,_,d,f);(D=e[_])!=null&&D.isSame(A,"day")&&(T=!0)}let O=p(e,f,d);c.setChecked(T).setTitle(O).onClick(()=>as.postponeOnClickCallback(u,e,f,d,b,r))},s=XD,a=GD;this.addItem(u=>i(t,u,"days",0,s,a)),this.addItem(u=>i(t,u,"day",1,s,a)),this.addSeparator();let o=pb,l=fb;this.addItem(u=>i(t,u,"days",2,o,l)),this.addItem(u=>i(t,u,"days",3,o,l)),this.addItem(u=>i(t,u,"days",4,o,l)),this.addItem(u=>i(t,u,"days",5,o,l)),this.addItem(u=>i(t,u,"days",6,o,l)),this.addSeparator(),this.addItem(u=>i(t,u,"week",1,o,l)),this.addItem(u=>i(t,u,"weeks",2,o,l)),this.addItem(u=>i(t,u,"weeks",3,o,l)),this.addItem(u=>i(t,u,"month",1,o,l)),this.addSeparator(),this.addItem(u=>i(t,u,"days",2,ZD,BD))}static postponeOnClickCallback(o,l,u,c){return L(this,arguments,function*(t,e,r,i,s=fb,a=ni){var b;let d=Eo(e);if(d===null){let T="\u26A0\uFE0F Postponement requires a date: due, scheduled or start.";return new yb.Notice(T,1e4)}let{postponedDate:f,postponedTask:p}=s(e,d,i,r);(b=e[d])!=null&&b.isSame(f,"day")||(yield a(e,p),as.postponeSuccessCallback(t,d,f))})}static postponeSuccessCallback(t,e,r){t.style.pointerEvents="none";let i=KD(r,e);new yb.Notice(i,2e3)}};var Sf=class{constructor(t,e,r,i,s,a=Mi.obsidianMarkdownRenderer){switch(this.source=e,this._tasksFile=r,this.renderMarkdown=i,this.obsidianComponent=s,this.textRenderer=a,t){case"block-language-tasks":this.query=this.makeQueryFromSourceAndTasksFile(),this.queryType="tasks";break;default:this.query=this.makeQueryFromSourceAndTasksFile(),this.queryType="tasks";break}}makeQueryFromSourceAndTasksFile(){return vf(this.source,dr.getInstance(),this.tasksFile)}get tasksFile(){return this._tasksFile}setTasksFile(t){this._tasksFile=t,this.query=this.makeQueryFromSourceAndTasksFile()}get filePath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}render(t,e,r,i){return L(this,null,function*(){t==="Warm"&&this.query.error===void 0?yield this.renderQuerySearchResults(e,t,r,i):this.query.error!==void 0?this.renderErrorMessage(r,this.query.error):this.renderLoadingMessage(r)})}renderQuerySearchResults(t,e,r,i){return L(this,null,function*(){let s=this.explainAndPerformSearch(e,t,r);if(s.searchErrorMessage!==void 0){this.renderErrorMessage(r,s.searchErrorMessage);return}yield this.renderSearchResults(s,r,i)})}explainAndPerformSearch(t,e,r){let i=new Mu(`Search: ${this.query.queryId} - ${this.filePath}`);i.start(),this.query.debug(`[render] Render called: plugin state: ${t}; searching ${e.length} tasks`),this.query.queryLayoutOptions.explainQuery&&this.createExplanation(r);let s=this.query.applyQueryToTasks(e);return i.finish(),s}renderSearchResults(t,e,r){return L(this,null,function*(){let i=new Mu(`Render: ${this.query.queryId} - ${this.filePath}`);i.start(),yield this.addAllTaskGroups(t.taskGroups,e,r);let s=t.totalTasksCount;this.addTaskCount(e,t),this.query.debug(`[render] ${s} tasks displayed`),i.finish()})}renderErrorMessage(t,e){t.createDiv().innerHTML=`<pre>Tasks query: ${e.replace(/\n/g,"<br>")}</pre>`}renderLoadingMessage(t){t.setText("Loading Tasks ...")}createExplanation(t){let e=cx(this.source,Fe.getInstance(),dr.getInstance(),this.tasksFile),r=ot("pre",t);r.classList.add("plugin-tasks-query-explanation"),r.setText(e),t.appendChild(r)}addAllTaskGroups(t,e,r){return L(this,null,function*(){for(let i of t.groups){yield this.addGroupHeadings(e,i.groupHeadings);let s=new Set;yield this.createTaskList(i.tasks,e,r,s)}})}createTaskList(t,e,r,i){return L(this,null,function*(){let s=ot("ul",e);s.classList.add("contains-task-list","plugin-tasks-query-result"),s.classList.add(...new kf(this.query.taskLayoutOptions).generateHiddenClasses()),s.classList.add(...new wf(this.query.queryLayoutOptions).getHiddenClasses());let a=this.getGroupingAttribute();a&&a.length>0&&(s.dataset.taskGroupBy=a);let o=new Mi({textRenderer:this.textRenderer,obsidianComponent:this.obsidianComponent,parentUlElement:s,taskLayoutOptions:this.query.taskLayoutOptions,queryLayoutOptions:this.query.queryLayoutOptions});for(let[l,u]of t.entries())this.query.queryLayoutOptions.hideTree?u instanceof fe&&(yield this.addTask(s,o,u,l,r)):yield this.addTaskOrListItemAndChildren(s,o,u,l,r,t,i);e.appendChild(s)})}willBeRenderedLater(t,e,r){let i=t.findClosestParentTask();return i?!!(!e.has(i)&&r.includes(i)):!1}alreadyRendered(t,e){return e.has(t)}addTaskOrListItemAndChildren(t,e,r,i,s,a,o){return L(this,null,function*(){if(this.alreadyRendered(r,o)||this.willBeRenderedLater(r,o,a))return;let l=yield this.addTaskOrListItem(t,e,r,i,s);o.add(r),r.children.length>0&&(yield this.createTaskList(r.children,l,s,o),r.children.forEach(u=>{o.add(u)}))})}addTaskOrListItem(t,e,r,i,s){return L(this,null,function*(){return r instanceof fe?yield this.addTask(t,e,r,i,s):yield this.addListItem(t,r,i)})}addListItem(t,e,r){return L(this,null,function*(){var o,l;let i=ot("li",t);if(e.statusCharacter){let u=ot("input",i);u.classList.add("task-list-item-checkbox"),u.type="checkbox",u.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),u.disabled=!0;let d=e.checkOrUncheck();gn({originalTask:e,newTasks:d})}),e.statusCharacter!==" "&&(u.checked=!0,i.classList.add("is-checked")),i.classList.add("task-list-item"),i.setAttribute("data-task",e.statusCharacter.trim()),i.setAttribute("data-line",r.toString())}let s=ot("span",i);yield this.textRenderer(e.description,s,(l=(o=e.findClosestParentTask())==null?void 0:o.path)!=null?l:"",this.obsidianComponent);let a=s.querySelector("p");if(a!==null){for(;a.firstChild;)s.insertBefore(a.firstChild,a);a.remove()}return i})}addTask(t,e,r,i,s){return L(this,null,function*(){let a=this.isFilenameUnique({task:r},s.allMarkdownFiles),o=yield e.renderTaskLine(r,i,a);o.querySelectorAll("[data-footnote-id]").forEach(d=>d.remove());let u=ot("span",o);u.classList.add("task-extras"),this.query.queryLayoutOptions.hideUrgency||this.addUrgency(u,r);let c=this.query.queryLayoutOptions.shortMode;return this.query.queryLayoutOptions.hideBacklinks||this.addBacklinks(u,r,c,a,s),this.query.queryLayoutOptions.hideEditButton||this.addEditButton(u,r,s),!this.query.queryLayoutOptions.hidePostponeButton&&HD(r)&&this.addPostponeButton(u,r,c),t.appendChild(o),o})}addEditButton(t,e,r){let i=ot("a",t);i.classList.add("tasks-edit"),i.title="Edit task",i.href="#",i.addEventListener("click",s=>r.editTaskPencilClickHandler(s,e,r.allTasks))}addUrgency(t,e){let r=new Intl.NumberFormat().format(e.urgency),i=ot("span",t);i.textContent=r,i.classList.add("tasks-urgency")}addGroupHeadings(t,e){return L(this,null,function*(){for(let r of e)yield this.addGroupHeading(t,r)})}addGroupHeading(t,e){return L(this,null,function*(){let r="h6";e.nestingLevel===0?r="h4":e.nestingLevel===1&&(r="h5");let i=ot(r,t);i.classList.add("tasks-group-heading"),this.obsidianComponent!==null&&(yield this.renderMarkdown(e.displayName,i,this.tasksFile.path,this.obsidianComponent))})}addBacklinks(t,e,r,i,s){var u;let a=ot("span",t);a.classList.add("tasks-backlink"),r||a.append(" (");let o=ot("a",a);o.rel="noopener",o.target="_blank",o.classList.add("internal-link"),r&&o.classList.add("internal-link-short-mode");let l;r?l=" \u{1F517}":l=(u=e.getLinkText({isFilenameUnique:i}))!=null?u:"",o.text=l,o.addEventListener("click",c=>L(this,null,function*(){yield s.backlinksClickHandler(c,e)})),o.addEventListener("mousedown",c=>L(this,null,function*(){yield s.backlinksMousedownHandler(c,e)})),r||a.append(")")}addPostponeButton(t,e,r){let s="day",a=QD(e,1,s),o=ot("a",t);o.classList.add("tasks-postpone"),r&&o.classList.add("tasks-postpone-short-mode"),o.title=a,o.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),as.postponeOnClickCallback(o,e,1,s)}),o.addEventListener("contextmenu",l=>L(this,null,function*(){l.preventDefault(),l.stopPropagation(),new as(o,e).showAtPosition({x:l.clientX,y:l.clientY})}))}addTaskCount(t,e){if(!this.query.queryLayoutOptions.hideTaskCount){let r=ot("div",t);r.classList.add("task-count"),r.textContent=e.totalTasksCountDisplayText()}}isFilenameUnique({task:t},e){let r=t.path.match(/([^/]*)\..+$/i);if(r===null)return;let i=r[1];return e.filter(a=>{if(a.basename===i)return!0}).length<2}getGroupingAttribute(){let t=[];for(let e of this.query.grouping)t.push(e.property);return t.join(",")}};var Ef=class{constructor({plugin:t,events:e}){this.addQueryRenderChild=this._addQueryRenderChild.bind(this);this.app=t.app,this.plugin=t,this.events=e,t.registerMarkdownCodeBlockProcessor("tasks",(r,i,s)=>{t.app.workspace.onLayoutReady(()=>{this.addQueryRenderChild(r,i,s)})})}_addQueryRenderChild(t,e,r){return L(this,null,function*(){let i=this.app,s=r.sourcePath,a=i.vault.getAbstractFileByPath(s),o=null;a&&a instanceof ia.TFile&&(o=i.metadataCache.getFileCache(a));let l=new mt(s,o!=null?o:{}),u=new bb({app:i,plugin:this.plugin,events:this.events,container:e,source:t,tasksFile:l});r.addChild(u),u.load()})}},bb=class extends ia.MarkdownRenderChild{constructor({app:e,plugin:r,events:i,container:s,source:a,tasksFile:o}){super(s);this.queryResultsRenderer=new Sf(this.containerEl.className,a,o,ia.MarkdownRenderer.renderMarkdown,this),this.queryResultsRenderer.query.debug("[render] QueryRenderChild.constructor() entered"),this.app=e,this.plugin=r,this.events=i}onload(){this.queryResultsRenderer.query.debug("[render] QueryRenderChild.onload() entered"),this.events.triggerRequestCacheUpdate(this.render.bind(this)),this.renderEventRef=this.events.onCacheUpdate(this.render.bind(this)),this.reloadQueryAtMidnight(),this.registerEvent(this.app.metadataCache.on("changed",(e,r,i)=>{let s=e.path;s===this.queryResultsRenderer.filePath&&this.handleMetadataOrFilePathChange(s,i)})),this.registerEvent(this.app.vault.on("rename",(e,r)=>{let i=null;e&&e instanceof ia.TFile&&(i=this.app.metadataCache.getFileCache(e)),this.handleMetadataOrFilePathChange(e.path,i)}))}handleMetadataOrFilePathChange(e,r){let i=this.queryResultsRenderer.tasksFile,s=new mt(e,r!=null?r:{}),a=i.path!==s.path,o=!i.rawFrontmatterIdenticalTo(s);(a||o)&&(this.queryResultsRenderer.setTasksFile(s),this.events.triggerRequestCacheUpdate(this.render.bind(this)))}onunload(){this.queryResultsRenderer.query.debug("[render] QueryRenderChild.onunload() entered"),this.renderEventRef!==void 0&&this.events.off(this.renderEventRef),this.queryReloadTimeout!==void 0&&clearTimeout(this.queryReloadTimeout)}reloadQueryAtMidnight(){let e=new Date;e.setHours(24,0,0,0);let r=new Date,i=e.getTime()-r.getTime();this.queryReloadTimeout=setTimeout(()=>{this.queryResultsRenderer.query=vf(this.queryResultsRenderer.source,dr.getInstance(),this.queryResultsRenderer.tasksFile),this.events.triggerRequestCacheUpdate(this.render.bind(this)),this.reloadQueryAtMidnight()},i+1e3)}render(i){return L(this,arguments,function*({tasks:e,state:r}){var a;let s=ot("div",this.containerEl);yield this.queryResultsRenderer.render(r,e,s,{allTasks:this.plugin.getTasks(),allMarkdownFiles:this.app.vault.getMarkdownFiles(),backlinksClickHandler:IY(this.app),backlinksMousedownHandler:FY(this.app),editTaskPencilClickHandler:NY(this.app)}),(a=this.containerEl.firstChild)==null||a.replaceWith(s)})}};function NY(n){return function(e,r,i){e.preventDefault();let s=o=>L(this,null,function*(){yield gn({originalTask:r,newTasks:Ft.removeInferredStatusIfNeeded(r,o)})});new zi({app:n,task:r,onSubmit:s,allTasks:i}).open()}}function IY(n){return function(e,r){return L(this,null,function*(){let i=yield Ay(r,n.vault);if(i){let[s,a]=i,o=n.workspace.getLeaf(dx.Keymap.isModEvent(e));e.preventDefault(),yield o.openFile(a,{eState:{line:s}})}})}}function FY(n){return function(e,r){return L(this,null,function*(){if(e.button===1){let i=yield Ay(r,n.vault);if(i){let[s,a]=i,o=n.workspace.getLeaf("tab");e.preventDefault(),yield o.openFile(a,{eState:{line:s}})}}})}}nn();var Ce=require("obsidian");er();wi();Sr();gs();Ga();var Df=class{constructor(t){this._markdown="";this.columnNames=t,this.addTitleRow()}get markdown(){return this._markdown}addTitleRow(){let t="|",e="|";this.columnNames.forEach(r=>{t+=` ${r} |`,e+=" ----- |"}),this._markdown+=`${t} +`),i+=a("Explanation of this Tasks code block query",o),i}function vf(n,t,e){let i=new Oi().query(e).append(new Ln(n,e));return i.ignoreGlobalQuery?i:t.query(e).append(i)}Gi();Mn();function Cu(n,t,e){t&&n.push(NY(e))}function NY(n){return`tasks-layout-hide-${n}`}var wf=class{constructor(t){t?this.queryLayoutOptions=t:this.queryLayoutOptions=new Ki}getHiddenClasses(){let t=[],e=[[this.queryLayoutOptions.hideUrgency,"urgency"],[this.queryLayoutOptions.hideBacklinks,"backlinks"],[this.queryLayoutOptions.hideEditButton,"edit-button"],[this.queryLayoutOptions.hidePostponeButton,"postpone-button"]];for(let[r,i]of e)Cu(t,r,i);return this.queryLayoutOptions.shortMode&&t.push("tasks-layout-short-mode"),t}};Is();var kf=class{constructor(t){t?this.taskLayoutOptions=t:this.taskLayoutOptions=new Br}generateHiddenClasses(){let t=[];return this.taskLayoutOptions.toggleableComponents.forEach(e=>{Cu(t,!this.taskLayoutOptions.isShown(e),e)}),Cu(t,!this.taskLayoutOptions.areTagsShown(),"tags"),t}};rn();var Mu=class{constructor(t){this.label=t,this.start()}start(){!this.recordTimings()||performance.mark(this.labelForStart())}finish(){!this.recordTimings()||(performance.mark(this.labelForEnd()),performance.measure(this.label,this.labelForStart(),this.labelForEnd()),this.printDuration())}printDuration(){let t=performance.getEntriesByName(this.label),e=t[t.length-1];e?console.log(this.label+":",e.duration.toFixed(2),"milliseconds"):console.log(`Measurement for ${this.label} not found`)}labelForStart(){return`${this.label} - start`}labelForEnd(){return`${this.label} - end`}recordTimings(){let{debugSettings:t}=le();return t.recordTimings}};Nt();var yb=require("obsidian");var as=class extends rs{constructor(t,e,r=ni){super(r);let i=(u,c,d,f,p,b)=>{var E;let T=!1,_=Do(e);if(_){let{postponedDate:A}=b(e,_,d,f);(E=e[_])!=null&&E.isSame(A,"day")&&(T=!0)}let O=p(e,f,d);c.setChecked(T).setTitle(O).onClick(()=>as.postponeOnClickCallback(u,e,f,d,b,r))},s=ZE,a=BE;this.addItem(u=>i(t,u,"days",0,s,a)),this.addItem(u=>i(t,u,"day",1,s,a)),this.addSeparator();let o=pb,l=fb;this.addItem(u=>i(t,u,"days",2,o,l)),this.addItem(u=>i(t,u,"days",3,o,l)),this.addItem(u=>i(t,u,"days",4,o,l)),this.addItem(u=>i(t,u,"days",5,o,l)),this.addItem(u=>i(t,u,"days",6,o,l)),this.addSeparator(),this.addItem(u=>i(t,u,"week",1,o,l)),this.addItem(u=>i(t,u,"weeks",2,o,l)),this.addItem(u=>i(t,u,"weeks",3,o,l)),this.addItem(u=>i(t,u,"month",1,o,l)),this.addSeparator(),this.addItem(u=>i(t,u,"days",2,JE,VE))}static postponeOnClickCallback(o,l,u,c){return F(this,arguments,function*(t,e,r,i,s=fb,a=ni){var b;let d=Do(e);if(d===null){let T="\u26A0\uFE0F Postponement requires a date: due, scheduled or start.";return new yb.Notice(T,1e4)}let{postponedDate:f,postponedTask:p}=s(e,d,i,r);(b=e[d])!=null&&b.isSame(f,"day")||(yield a(e,p),as.postponeSuccessCallback(t,d,f))})}static postponeSuccessCallback(t,e,r){t.style.pointerEvents="none";let i=QE(r,e);new yb.Notice(i,2e3)}};var Sf=class{constructor(t,e,r,i,s,a=Mi.obsidianMarkdownRenderer){switch(this.source=e,this._tasksFile=r,this.renderMarkdown=i,this.obsidianComponent=s,this.textRenderer=a,t){case"block-language-tasks":this.query=this.makeQueryFromSourceAndTasksFile(),this.queryType="tasks";break;default:this.query=this.makeQueryFromSourceAndTasksFile(),this.queryType="tasks";break}}makeQueryFromSourceAndTasksFile(){return vf(this.source,fr.getInstance(),this.tasksFile)}get tasksFile(){return this._tasksFile}setTasksFile(t){this._tasksFile=t,this.query=this.makeQueryFromSourceAndTasksFile()}get filePath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}render(t,e,r,i){return F(this,null,function*(){t==="Warm"&&this.query.error===void 0?yield this.renderQuerySearchResults(e,t,r,i):this.query.error!==void 0?this.renderErrorMessage(r,this.query.error):this.renderLoadingMessage(r)})}renderQuerySearchResults(t,e,r,i){return F(this,null,function*(){let s=this.explainAndPerformSearch(e,t,r);if(s.searchErrorMessage!==void 0){this.renderErrorMessage(r,s.searchErrorMessage);return}yield this.renderSearchResults(s,r,i)})}explainAndPerformSearch(t,e,r){let i=new Mu(`Search: ${this.query.queryId} - ${this.filePath}`);i.start(),this.query.debug(`[render] Render called: plugin state: ${t}; searching ${e.length} tasks`),this.query.queryLayoutOptions.explainQuery&&this.createExplanation(r);let s=this.query.applyQueryToTasks(e);return i.finish(),s}renderSearchResults(t,e,r){return F(this,null,function*(){let i=new Mu(`Render: ${this.query.queryId} - ${this.filePath}`);i.start(),yield this.addAllTaskGroups(t.taskGroups,e,r);let s=t.totalTasksCount;this.addTaskCount(e,t),this.query.debug(`[render] ${s} tasks displayed`),i.finish()})}renderErrorMessage(t,e){t.createDiv().innerHTML=`<pre>Tasks query: ${e.replace(/\n/g,"<br>")}</pre>`}renderLoadingMessage(t){t.setText("Loading Tasks ...")}createExplanation(t){let e=dx(this.source,Fe.getInstance(),fr.getInstance(),this.tasksFile),r=lt("pre",t);r.classList.add("plugin-tasks-query-explanation"),r.setText(e),t.appendChild(r)}addAllTaskGroups(t,e,r){return F(this,null,function*(){for(let i of t.groups){yield this.addGroupHeadings(e,i.groupHeadings);let s=new Set;yield this.createTaskList(i.tasks,e,r,s)}})}createTaskList(t,e,r,i){return F(this,null,function*(){let s=lt("ul",e);s.classList.add("contains-task-list","plugin-tasks-query-result"),s.classList.add(...new kf(this.query.taskLayoutOptions).generateHiddenClasses()),s.classList.add(...new wf(this.query.queryLayoutOptions).getHiddenClasses());let a=this.getGroupingAttribute();a&&a.length>0&&(s.dataset.taskGroupBy=a);let o=new Mi({textRenderer:this.textRenderer,obsidianComponent:this.obsidianComponent,parentUlElement:s,taskLayoutOptions:this.query.taskLayoutOptions,queryLayoutOptions:this.query.queryLayoutOptions});for(let[l,u]of t.entries())this.query.queryLayoutOptions.hideTree?u instanceof pe&&(yield this.addTask(s,o,u,l,r)):yield this.addTaskOrListItemAndChildren(s,o,u,l,r,t,i);e.appendChild(s)})}willBeRenderedLater(t,e,r){let i=t.findClosestParentTask();return i?!!(!e.has(i)&&r.includes(i)):!1}alreadyRendered(t,e){return e.has(t)}addTaskOrListItemAndChildren(t,e,r,i,s,a,o){return F(this,null,function*(){if(this.alreadyRendered(r,o)||this.willBeRenderedLater(r,o,a))return;let l=yield this.addTaskOrListItem(t,e,r,i,s);o.add(r),r.children.length>0&&(yield this.createTaskList(r.children,l,s,o),r.children.forEach(u=>{o.add(u)}))})}addTaskOrListItem(t,e,r,i,s){return F(this,null,function*(){return r instanceof pe?yield this.addTask(t,e,r,i,s):yield this.addListItem(t,e,r,i)})}addListItem(t,e,r,i){return F(this,null,function*(){return yield e.renderListItem(t,r,i)})}addTask(t,e,r,i,s){return F(this,null,function*(){let a=this.isFilenameUnique({task:r},s.allMarkdownFiles),o=yield e.renderTaskLine({task:r,taskIndex:i,isTaskInQueryFile:this.filePath===r.path,isFilenameUnique:a});o.querySelectorAll("[data-footnote-id]").forEach(d=>d.remove());let u=lt("span",o);u.classList.add("task-extras"),this.query.queryLayoutOptions.hideUrgency||this.addUrgency(u,r);let c=this.query.queryLayoutOptions.shortMode;return this.query.queryLayoutOptions.hideBacklinks||this.addBacklinks(u,r,c,a,s),this.query.queryLayoutOptions.hideEditButton||this.addEditButton(u,r,s),!this.query.queryLayoutOptions.hidePostponeButton&&GE(r)&&this.addPostponeButton(u,r,c),t.appendChild(o),o})}addEditButton(t,e,r){let i=lt("a",t);i.classList.add("tasks-edit"),i.title="Edit task",i.href="#",i.addEventListener("click",s=>r.editTaskPencilClickHandler(s,e,r.allTasks))}addUrgency(t,e){let r=new Intl.NumberFormat().format(e.urgency),i=lt("span",t);i.textContent=r,i.classList.add("tasks-urgency")}addGroupHeadings(t,e){return F(this,null,function*(){for(let r of e)yield this.addGroupHeading(t,r)})}addGroupHeading(t,e){return F(this,null,function*(){let r="h6";e.nestingLevel===0?r="h4":e.nestingLevel===1&&(r="h5");let i=lt(r,t);i.classList.add("tasks-group-heading"),this.obsidianComponent!==null&&(yield this.renderMarkdown(e.displayName,i,this.tasksFile.path,this.obsidianComponent))})}addBacklinks(t,e,r,i,s){var u;let a=lt("span",t);a.classList.add("tasks-backlink"),r||a.append(" (");let o=lt("a",a);o.rel="noopener",o.target="_blank",o.classList.add("internal-link"),r&&o.classList.add("internal-link-short-mode");let l;r?l=" \u{1F517}":l=(u=e.getLinkText({isFilenameUnique:i}))!=null?u:"",o.text=l,o.addEventListener("click",c=>F(this,null,function*(){yield s.backlinksClickHandler(c,e)})),o.addEventListener("mousedown",c=>F(this,null,function*(){yield s.backlinksMousedownHandler(c,e)})),r||a.append(")")}addPostponeButton(t,e,r){let s="day",a=XE(e,1,s),o=lt("a",t);o.classList.add("tasks-postpone"),r&&o.classList.add("tasks-postpone-short-mode"),o.title=a,o.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),as.postponeOnClickCallback(o,e,1,s)}),o.addEventListener("contextmenu",l=>F(this,null,function*(){l.preventDefault(),l.stopPropagation(),new as(o,e).showAtPosition({x:l.clientX,y:l.clientY})}))}addTaskCount(t,e){if(!this.query.queryLayoutOptions.hideTaskCount){let r=lt("div",t);r.classList.add("task-count"),r.textContent=e.totalTasksCountDisplayText()}}isFilenameUnique({task:t},e){let r=t.path.match(/([^/]*)\..+$/i);if(r===null)return;let i=r[1];return e.filter(a=>{if(a.basename===i)return!0}).length<2}getGroupingAttribute(){let t=[];for(let e of this.query.grouping)t.push(e.property);return t.join(",")}};var Df=class{constructor({plugin:t,events:e}){this.addQueryRenderChild=this._addQueryRenderChild.bind(this);this.app=t.app,this.plugin=t,this.events=e,t.registerMarkdownCodeBlockProcessor("tasks",(r,i,s)=>{t.app.workspace.onLayoutReady(()=>{this.addQueryRenderChild(r,i,s)})})}_addQueryRenderChild(t,e,r){return F(this,null,function*(){let i=this.app,s=r.sourcePath,a=i.vault.getAbstractFileByPath(s),o=null;a&&a instanceof ia.TFile&&(o=i.metadataCache.getFileCache(a));let l=new mt(s,o!=null?o:{}),u=new bb({app:i,plugin:this.plugin,events:this.events,container:e,source:t,tasksFile:l});r.addChild(u),u.load()})}},bb=class extends ia.MarkdownRenderChild{constructor({app:e,plugin:r,events:i,container:s,source:a,tasksFile:o}){super(s);this.queryResultsRenderer=new Sf(this.containerEl.className,a,o,ia.MarkdownRenderer.renderMarkdown,this),this.queryResultsRenderer.query.debug("[render] QueryRenderChild.constructor() entered"),this.app=e,this.plugin=r,this.events=i}onload(){this.queryResultsRenderer.query.debug("[render] QueryRenderChild.onload() entered"),this.events.triggerRequestCacheUpdate(this.render.bind(this)),this.renderEventRef=this.events.onCacheUpdate(this.render.bind(this)),this.reloadQueryAtMidnight(),this.registerEvent(this.app.metadataCache.on("changed",(e,r,i)=>{let s=e.path;s===this.queryResultsRenderer.filePath&&this.handleMetadataOrFilePathChange(s,i)})),this.registerEvent(this.app.vault.on("rename",(e,r)=>{let i=null;e&&e instanceof ia.TFile&&(i=this.app.metadataCache.getFileCache(e)),this.handleMetadataOrFilePathChange(e.path,i)}))}handleMetadataOrFilePathChange(e,r){let i=this.queryResultsRenderer.tasksFile,s=new mt(e,r!=null?r:{}),a=i.path!==s.path,o=!i.rawFrontmatterIdenticalTo(s);(a||o)&&(this.queryResultsRenderer.setTasksFile(s),this.events.triggerRequestCacheUpdate(this.render.bind(this)))}onunload(){this.queryResultsRenderer.query.debug("[render] QueryRenderChild.onunload() entered"),this.renderEventRef!==void 0&&this.events.off(this.renderEventRef),this.queryReloadTimeout!==void 0&&clearTimeout(this.queryReloadTimeout)}reloadQueryAtMidnight(){let e=new Date;e.setHours(24,0,0,0);let r=new Date,i=e.getTime()-r.getTime();this.queryReloadTimeout=setTimeout(()=>{this.queryResultsRenderer.query=vf(this.queryResultsRenderer.source,fr.getInstance(),this.queryResultsRenderer.tasksFile),this.events.triggerRequestCacheUpdate(this.render.bind(this)),this.reloadQueryAtMidnight()},i+1e3)}render(i){return F(this,arguments,function*({tasks:e,state:r}){var a;let s=lt("div",this.containerEl);yield this.queryResultsRenderer.render(r,e,s,{allTasks:this.plugin.getTasks(),allMarkdownFiles:this.app.vault.getMarkdownFiles(),backlinksClickHandler:FY(this.app),backlinksMousedownHandler:LY(this.app),editTaskPencilClickHandler:IY(this.app)}),(a=this.containerEl.firstChild)==null||a.replaceWith(s)})}};function IY(n){return function(e,r,i){e.preventDefault();let s=o=>F(this,null,function*(){yield Nn({originalTask:r,newTasks:Ft.removeInferredStatusIfNeeded(r,o)})});new zi({app:n,task:r,onSubmit:s,allTasks:i}).open()}}function FY(n){return function(e,r){return F(this,null,function*(){let i=yield Ay(r,n.vault);if(i){let[s,a]=i,o=n.workspace.getLeaf(fx.Keymap.isModEvent(e));e.preventDefault(),yield o.openFile(a,{eState:{line:s}})}})}}function LY(n){return function(e,r){return F(this,null,function*(){if(e.button===1){let i=yield Ay(r,n.vault);if(i){let[s,a]=i,o=n.workspace.getLeaf("tab");e.preventDefault(),yield o.openFile(a,{eState:{line:s}})}}})}}rn();var xe=require("obsidian");Cn();wi();Dr();gs();Ga();var Ef=class{constructor(t){this._markdown="";this.columnNames=t,this.addTitleRow()}get markdown(){return this._markdown}addTitleRow(){let t="|",e="|";this.columnNames.forEach(r=>{t+=` ${r} |`,e+=" ----- |"}),this._markdown+=`${t} `,this._markdown+=`${e} `}addRow(t){let e=this.makeRowText(t);this._markdown+=`${e} `}addRowIfNew(t){let e=this.makeRowText(t);this._markdown.includes(e)||(this._markdown+=`${e} -`)}makeRowText(t){let e="|";return t.forEach(r=>{e+=` ${r} |`}),e}};gs();er();Sr();function fx(n,t){return n.findIndex(e=>e.symbol===t)}function os(n){return n===""?n:"`"+(n!==" "?n:"space")+"`"}function LY(n,t){let e=ge.getTypeForUnknownSymbol(n.symbol);if(n.type===e||e==="TODO"&&n.symbol!==" ")return;let r=os(n.symbol),i=os(e);t.push(N.t("reports.statusRegistry.messages.notConventionalType",{symbol:r,type:i}))}function UY(n,t,e){let r=t.nextStatusSymbol,i=fx(n,r);if(i===-1){let a=os(r);e.push(N.t("reports.statusRegistry.messages.nextSymbolUnknown",{symbol:a}));return}if(t.type!=="DONE")return;let s=n[i];if(s){if(s.type!=="TODO"&&s.type!=="IN_PROGRESS"){let a="https://publish.obsidian.md/tasks/Getting+Started/Statuses/Recurring+Tasks+and+Custom+Statuses",o=os(s.type),l=[N.t("reports.statusRegistry.messages.wrongTypeAfterDone.line1",{nextType:o}),N.t("reports.statusRegistry.messages.wrongTypeAfterDone.line2"),N.t("reports.statusRegistry.messages.wrongTypeAfterDone.line3",{helpURL:a})].join("<br>");e.push(l)}}else e.push(N.t("reports.statusRegistry.messages.cannotFindNextStatus"))}function YY(n,t,e){let r=[];if(t.symbol===ge.EMPTY.symbol)return r.push(N.t("reports.statusRegistry.messages.emptySymbol")),r;if(fx(n,t.symbol)!=e){let s=os(t.symbol);return r.push(N.t("reports.statusRegistry.messages.duplicateSymbol",{symbol:s})),r}return LY(t,r),UY(n,t,r),r}function px(n){let t=new Df([N.t("reports.statusRegistry.columnHeadings.statusSymbol"),N.t("reports.statusRegistry.columnHeadings.nextStatusSymbol"),N.t("reports.statusRegistry.columnHeadings.statusName"),N.t("reports.statusRegistry.columnHeadings.statusType"),N.t("reports.statusRegistry.columnHeadings.problems")]),e=et.allStatuses(n);return e.forEach((r,i)=>{t.addRow([os(r.symbol),os(r.nextStatusSymbol),r.name,os(r.type),YY(e,r,i).join("<br>")])}),t.markdown}function mx(n,t,e,r){let s=px(n),a=t.mermaidDiagram(!0);return`# ${e} +`)}makeRowText(t){let e="|";return t.forEach(r=>{e+=` ${r} |`}),e}};gs();Cn();Dr();function px(n,t){return n.findIndex(e=>e.symbol===t)}function os(n){return n===""?n:"`"+(n!==" "?n:"space")+"`"}function UY(n,t){let e=ge.getTypeForUnknownSymbol(n.symbol);if(n.type===e||e==="TODO"&&n.symbol!==" ")return;let r=os(n.symbol),i=os(e);t.push(N.t("reports.statusRegistry.messages.notConventionalType",{symbol:r,type:i}))}function YY(n,t,e){let r=t.nextStatusSymbol,i=px(n,r);if(i===-1){let a=os(r);e.push(N.t("reports.statusRegistry.messages.nextSymbolUnknown",{symbol:a}));return}if(t.type!=="DONE")return;let s=n[i];if(s){if(s.type!=="TODO"&&s.type!=="IN_PROGRESS"){let a="https://publish.obsidian.md/tasks/Getting+Started/Statuses/Recurring+Tasks+and+Custom+Statuses",o=os(s.type),l=[N.t("reports.statusRegistry.messages.wrongTypeAfterDone.line1",{nextType:o}),N.t("reports.statusRegistry.messages.wrongTypeAfterDone.line2"),N.t("reports.statusRegistry.messages.wrongTypeAfterDone.line3",{helpURL:a})].join("<br>");e.push(l)}}else e.push(N.t("reports.statusRegistry.messages.cannotFindNextStatus"))}function jY(n,t,e){let r=[];if(t.symbol===ge.EMPTY.symbol)return r.push(N.t("reports.statusRegistry.messages.emptySymbol")),r;if(px(n,t.symbol)!=e){let s=os(t.symbol);return r.push(N.t("reports.statusRegistry.messages.duplicateSymbol",{symbol:s})),r}return UY(t,r),YY(n,t,r),r}function mx(n){let t=new Ef([N.t("reports.statusRegistry.columnHeadings.statusSymbol"),N.t("reports.statusRegistry.columnHeadings.nextStatusSymbol"),N.t("reports.statusRegistry.columnHeadings.statusName"),N.t("reports.statusRegistry.columnHeadings.statusType"),N.t("reports.statusRegistry.columnHeadings.problems")]),e=et.allStatuses(n);return e.forEach((r,i)=>{t.addRow([os(r.symbol),os(r.nextStatusSymbol),r.name,os(r.type),jY(e,r,i).join("<br>")])}),t.markdown}function hx(n,t,e,r){let s=mx(n),a=t.mermaidDiagram(!0);return`# ${e} ## ${N.t("reports.statusRegistry.about.title")} @@ -415,20 +417,20 @@ ${s} <!-- ${N.t("reports.statusRegistry.loadedSettings.switchToLivePreview")} --> ${N.t("reports.statusRegistry.loadedSettings.settingsActuallyUsed")} -${a}`}gs();function hx(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],["?","Question","x","TODO"],["*","Star","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["i","Information","x","TODO"],["I","Idea","x","TODO"],["S","Amount","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["b","Bookmark","x","TODO"],['"',"Quote","x","TODO"],["0","Speech bubble 0","0","NON_TASK"],["1","Speech bubble 1","1","NON_TASK"],["2","Speech bubble 2","2","NON_TASK"],["3","Speech bubble 3","3","NON_TASK"],["4","Speech bubble 4","4","NON_TASK"],["5","Speech bubble 5","5","NON_TASK"],["6","Speech bubble 6","6","NON_TASK"],["7","Speech bubble 7","7","NON_TASK"],["8","Speech bubble 8","8","NON_TASK"],["9","Speech bubble 9","9","NON_TASK"]]}function gx(){return[[" ","incomplete","x","TODO"],["x","complete / done"," ","DONE"],["-","cancelled"," ","CANCELLED"],[">","deferred","x","TODO"],["/","in progress, or half-done","x","IN_PROGRESS"],["!","Important","x","TODO"],["?","question","x","TODO"],["R","review","x","TODO"],["+","Inbox / task that should be processed later","x","TODO"],["b","bookmark","x","TODO"],["B","brainstorm","x","TODO"],["D","deferred or scheduled","x","TODO"],["I","Info","x","TODO"],["i","idea","x","TODO"],["N","note","x","TODO"],["Q","quote","x","TODO"],["W","win / success / reward","x","TODO"],["P","pro","x","TODO"],["C","con","x","TODO"]]}function yx(){return[[" ","To Do","x","TODO"],["/","In Progress","x","IN_PROGRESS"],["x","Done"," ","DONE"],["-","Cancelled"," ","CANCELLED"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["?","Question","x","TODO"],["i","Infomation","x","TODO"],["S","Amount","x","TODO"],["*","Star","x","TODO"],["b","Bookmark","x","TODO"],["\u201C","Quote","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["I","Idea","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["u","Up","x","TODO"],["d","Down","x","TODO"]]}function bx(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],[">","Deferred","x","TODO"],["!","Important","x","TODO"],["?","Question","x","TODO"],["r","Review","x","TODO"]]}function Tx(){return[[" ","Unchecked","x","TODO"],["x","Regular"," ","DONE"],["X","Checked"," ","DONE"],["-","Dropped"," ","CANCELLED"],[">","Forward","x","TODO"],["D","Date","x","TODO"],["?","Question","x","TODO"],["/","Half Done","x","IN_PROGRESS"],["+","Add","x","TODO"],["R","Research","x","TODO"],["!","Important","x","TODO"],["i","Idea","x","TODO"],["B","Brainstorm","x","TODO"],["P","Pro","x","TODO"],["C","Con","x","TODO"],["Q","Quote","x","TODO"],["N","Note","x","TODO"],["b","Bookmark","x","TODO"],["I","Information","x","TODO"],["p","Paraphrase","x","TODO"],["L","Location","x","TODO"],["E","Example","x","TODO"],["A","Answer","x","TODO"],["r","Reward","x","TODO"],["c","Choice","x","TODO"],["d","Doing","x","IN_PROGRESS"],["T","Time","x","TODO"],["@","Character / Person","x","TODO"],["t","Talk","x","TODO"],["O","Outline / Plot","x","TODO"],["~","Conflict","x","TODO"],["W","World","x","TODO"],["f","Clue / Find","x","TODO"],["F","Foreshadow","x","TODO"],["H","Favorite / Health","x","TODO"],["&","Symbolism","x","TODO"],["s","Secret","x","TODO"]]}function _x(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],["?","Question","x","TODO"],["*","Star","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["i","Information","x","TODO"],["I","Idea","x","TODO"],["S","Amount","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["b","Bookmark","x","TODO"],["f","Fire","x","TODO"],["k","Key","x","TODO"],["w","Win","x","TODO"],["u","Up","x","TODO"],["d","Down","x","TODO"]]}function vx(){return[[" ","to-do","x","TODO"],["/","incomplete","x","IN_PROGRESS"],["x","done"," ","DONE"],["-","canceled"," ","CANCELLED"],[">","forwarded","x","TODO"],["<","scheduling","x","TODO"],["?","question","x","TODO"],["!","important","x","TODO"],["*","star","x","TODO"],['"',"quote","x","TODO"],["l","location","x","TODO"],["b","bookmark","x","TODO"],["i","information","x","TODO"],["S","savings","x","TODO"],["I","idea","x","TODO"],["p","pros","x","TODO"],["c","cons","x","TODO"],["f","fire","x","TODO"],["k","key","x","TODO"],["w","win","x","TODO"],["u","up","x","TODO"],["d","down","x","TODO"]]}function wx(){return[[" ","to-do","x","TODO"],["/","incomplete","x","IN_PROGRESS"],["x","done"," ","DONE"],["-","canceled"," ","CANCELLED"],[">","forwarded","x","TODO"],["<","scheduling","x","TODO"],["?","question","x","TODO"],["!","important","x","TODO"],["*","star","x","TODO"],['"',"quote","x","TODO"],["l","location","x","TODO"],["b","bookmark","x","TODO"],["i","information","x","TODO"],["S","savings","x","TODO"],["I","idea","x","TODO"],["p","pros","x","TODO"],["c","cons","x","TODO"],["f","fire","x","TODO"],["k","key","x","TODO"],["w","win","x","TODO"],["u","up","x","TODO"],["d","down","x","TODO"]]}nn();nn();Mn();Ga();var Ir=require("obsidian");er();er();Sr();wi();var sa=class{validate(t){let e=[];return e.push(...this.validateSymbol(t)),e.push(...this.validateName(t)),e.push(...this.validateNextSymbol(t)),e}validateStatusCollectionEntry(t){let[e,r,i,s]=t,a=[];if(a.push(...this.validateType(s)),e===i&&s!=="NON_TASK"&&a.push(`Status symbol '${e}' toggles to itself`),a.length>0)return a;let o=ge.createFromImportedValue(t).configuration;return a.push(...this.validateSymbolTypeConventions(o)),a.push(...this.validate(o)),a}validateSymbol(t){return sa.validateOneSymbol(t.symbol,"Task Status Symbol")}validateNextSymbol(t){return sa.validateOneSymbol(t.nextStatusSymbol,"Task Next Status Symbol")}validateName(t){let e=[];return t.name.length===0&&e.push("Task Status Name cannot be empty."),e}validateType(t){let e=tn[t],r=[];return e||r.push(`Status Type "${t}" is not a valid type`),e=="EMPTY"&&r.push('Status Type "EMPTY" is not permitted in user data'),r}validateSymbolTypeConventions(t){let e=[],r=t.symbol,i=new Be,s=r==="X"?"x":r,a=i.bySymbol(s);return a.type!=="EMPTY"&&(t.nextStatusSymbol!==a.nextStatusSymbol&&e.push(`Next Status Symbol for symbol '${r}': '${t.nextStatusSymbol}' is inconsistent with convention '${a.nextStatusSymbol}'`),t.type!==a.type&&e.push(`Status Type for symbol '${r}': '${t.type}' is inconsistent with convention '${a.type}'`)),e}static validateOneSymbol(t,e){let r=[];return t.length===0&&r.push(`${e} cannot be empty.`),t.length>1&&r.push(`${e} ("${t}") must be a single character.`),r}};Sr();gs();var aa=new sa,Ln=class extends Ir.Modal{constructor(e,r,i){super(e.app);this.plugin=e;this.saved=!1;this.error=!1;this.statusSymbol=r.symbol,this.statusName=r.name,this.statusNextSymbol=r.nextStatusSymbol,this.statusAvailableAsCommand=r.availableAsCommand,this.type=r.type,this.isCoreStatus=i}statusConfiguration(){return new gt(this.statusSymbol,this.statusName,this.statusNextSymbol,this.statusAvailableAsCommand,this.type)}display(){return L(this,null,function*(){let{contentEl:e}=this;e.empty();let r=e.createDiv(),i;new Ir.Setting(r).setName(N.t("modals.customStatusModal.editStatusSymbol.name")).setDesc(N.t("modals.customStatusModal.editStatusSymbol.description")).addText(u=>{i=u,u.setValue(this.statusSymbol).onChange(c=>{this.statusSymbol=c,Ln.setValid(u,aa.validateSymbol(this.statusConfiguration()))})}).setDisabled(this.isCoreStatus).then(u=>{Ln.setValid(i,aa.validateSymbol(this.statusConfiguration()))});let s;new Ir.Setting(r).setName(N.t("modals.customStatusModal.editStatusName.name")).setDesc(N.t("modals.customStatusModal.editStatusName.description")).addText(u=>{s=u,u.setValue(this.statusName).onChange(c=>{this.statusName=c,Ln.setValid(u,aa.validateName(this.statusConfiguration()))})}).then(u=>{Ln.setValid(s,aa.validateName(this.statusConfiguration()))});let a;new Ir.Setting(r).setName(N.t("modals.customStatusModal.editNextStatusSymbol.name")).setDesc(N.t("modals.customStatusModal.editNextStatusSymbol.description")).addText(u=>{a=u,u.setValue(this.statusNextSymbol).onChange(c=>{this.statusNextSymbol=c,Ln.setValid(u,aa.validateNextSymbol(this.statusConfiguration()))})}).then(u=>{Ln.setValid(a,aa.validateNextSymbol(this.statusConfiguration()))}),new Ir.Setting(r).setName(N.t("modals.customStatusModal.editStatusType.name")).setDesc(N.t("modals.customStatusModal.editStatusType.description")).addDropdown(u=>{["TODO","IN_PROGRESS","DONE","CANCELLED","NON_TASK"].forEach(d=>{u.addOption(d,d)}),u.setValue(this.type).onChange(d=>{this.type=ge.getTypeFromStatusTypeString(d)})}),ge.tasksPluginCanCreateCommandsForStatuses()&&new Ir.Setting(r).setName(N.t("modals.customStatusModal.editAvailableAsCommand.name")).setDesc(N.t("modals.customStatusModal.editAvailableAsCommand.description")).addToggle(u=>{u.setValue(this.statusAvailableAsCommand).onChange(c=>L(this,null,function*(){this.statusAvailableAsCommand=c}))});let o=e.createDiv(),l=new Ir.Setting(o);l.addButton(u=>(u.setTooltip("Save").setIcon("checkmark").onClick(()=>L(this,null,function*(){let c=aa.validate(this.statusConfiguration());if(c.length>0){let d=c.join(` +${a}`}gs();function gx(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],["?","Question","x","TODO"],["*","Star","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["i","Information","x","TODO"],["I","Idea","x","TODO"],["S","Amount","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["b","Bookmark","x","TODO"],['"',"Quote","x","TODO"],["0","Speech bubble 0","0","NON_TASK"],["1","Speech bubble 1","1","NON_TASK"],["2","Speech bubble 2","2","NON_TASK"],["3","Speech bubble 3","3","NON_TASK"],["4","Speech bubble 4","4","NON_TASK"],["5","Speech bubble 5","5","NON_TASK"],["6","Speech bubble 6","6","NON_TASK"],["7","Speech bubble 7","7","NON_TASK"],["8","Speech bubble 8","8","NON_TASK"],["9","Speech bubble 9","9","NON_TASK"]]}function yx(){return[[" ","incomplete","x","TODO"],["x","complete / done"," ","DONE"],["-","cancelled"," ","CANCELLED"],[">","deferred","x","TODO"],["/","in progress, or half-done","x","IN_PROGRESS"],["!","Important","x","TODO"],["?","question","x","TODO"],["R","review","x","TODO"],["+","Inbox / task that should be processed later","x","TODO"],["b","bookmark","x","TODO"],["B","brainstorm","x","TODO"],["D","deferred or scheduled","x","TODO"],["I","Info","x","TODO"],["i","idea","x","TODO"],["N","note","x","TODO"],["Q","quote","x","TODO"],["W","win / success / reward","x","TODO"],["P","pro","x","TODO"],["C","con","x","TODO"]]}function bx(){return[[" ","To Do","x","TODO"],["/","In Progress","x","IN_PROGRESS"],["x","Done"," ","DONE"],["-","Cancelled"," ","CANCELLED"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["?","Question","x","TODO"],["i","Infomation","x","TODO"],["S","Amount","x","TODO"],["*","Star","x","TODO"],["b","Bookmark","x","TODO"],["\u201C","Quote","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["I","Idea","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["u","Up","x","TODO"],["d","Down","x","TODO"]]}function Tx(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],[">","Deferred","x","TODO"],["!","Important","x","TODO"],["?","Question","x","TODO"],["r","Review","x","TODO"]]}function _x(){return[[" ","Unchecked","x","TODO"],["x","Regular"," ","DONE"],["X","Checked"," ","DONE"],["-","Dropped"," ","CANCELLED"],[">","Forward","x","TODO"],["D","Date","x","TODO"],["?","Question","x","TODO"],["/","Half Done","x","IN_PROGRESS"],["+","Add","x","TODO"],["R","Research","x","TODO"],["!","Important","x","TODO"],["i","Idea","x","TODO"],["B","Brainstorm","x","TODO"],["P","Pro","x","TODO"],["C","Con","x","TODO"],["Q","Quote","x","TODO"],["N","Note","x","TODO"],["b","Bookmark","x","TODO"],["I","Information","x","TODO"],["p","Paraphrase","x","TODO"],["L","Location","x","TODO"],["E","Example","x","TODO"],["A","Answer","x","TODO"],["r","Reward","x","TODO"],["c","Choice","x","TODO"],["d","Doing","x","IN_PROGRESS"],["T","Time","x","TODO"],["@","Character / Person","x","TODO"],["t","Talk","x","TODO"],["O","Outline / Plot","x","TODO"],["~","Conflict","x","TODO"],["W","World","x","TODO"],["f","Clue / Find","x","TODO"],["F","Foreshadow","x","TODO"],["H","Favorite / Health","x","TODO"],["&","Symbolism","x","TODO"],["s","Secret","x","TODO"]]}function vx(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],["?","Question","x","TODO"],["*","Star","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["i","Information","x","TODO"],["I","Idea","x","TODO"],["S","Amount","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["b","Bookmark","x","TODO"],["f","Fire","x","TODO"],["k","Key","x","TODO"],["w","Win","x","TODO"],["u","Up","x","TODO"],["d","Down","x","TODO"]]}function wx(){return[[" ","to-do","x","TODO"],["/","incomplete","x","IN_PROGRESS"],["x","done"," ","DONE"],["-","canceled"," ","CANCELLED"],[">","forwarded","x","TODO"],["<","scheduling","x","TODO"],["?","question","x","TODO"],["!","important","x","TODO"],["*","star","x","TODO"],['"',"quote","x","TODO"],["l","location","x","TODO"],["b","bookmark","x","TODO"],["i","information","x","TODO"],["S","savings","x","TODO"],["I","idea","x","TODO"],["p","pros","x","TODO"],["c","cons","x","TODO"],["f","fire","x","TODO"],["k","key","x","TODO"],["w","win","x","TODO"],["u","up","x","TODO"],["d","down","x","TODO"]]}function kx(){return[[" ","to-do","x","TODO"],["/","incomplete","x","IN_PROGRESS"],["x","done"," ","DONE"],["-","canceled"," ","CANCELLED"],[">","forwarded","x","TODO"],["<","scheduling","x","TODO"],["?","question","x","TODO"],["!","important","x","TODO"],["*","star","x","TODO"],['"',"quote","x","TODO"],["l","location","x","TODO"],["b","bookmark","x","TODO"],["i","information","x","TODO"],["S","savings","x","TODO"],["I","idea","x","TODO"],["p","pros","x","TODO"],["c","cons","x","TODO"],["f","fire","x","TODO"],["k","key","x","TODO"],["w","win","x","TODO"],["u","up","x","TODO"],["d","down","x","TODO"]]}rn();rn();Mn();Ga();var Ir=require("obsidian");Cn();Cn();Dr();wi();var sa=class{validate(t){let e=[];return e.push(...this.validateSymbol(t)),e.push(...this.validateName(t)),e.push(...this.validateNextSymbol(t)),e}validateStatusCollectionEntry(t){let[e,r,i,s]=t,a=[];if(a.push(...this.validateType(s)),e===i&&s!=="NON_TASK"&&a.push(`Status symbol '${e}' toggles to itself`),a.length>0)return a;let o=ge.createFromImportedValue(t).configuration;return a.push(...this.validateSymbolTypeConventions(o)),a.push(...this.validate(o)),a}validateSymbol(t){return sa.validateOneSymbol(t.symbol,"Task Status Symbol")}validateNextSymbol(t){return sa.validateOneSymbol(t.nextStatusSymbol,"Task Next Status Symbol")}validateName(t){let e=[];return t.name.length===0&&e.push("Task Status Name cannot be empty."),e}validateType(t){let e=Gt[t],r=[];return e||r.push(`Status Type "${t}" is not a valid type`),e=="EMPTY"&&r.push('Status Type "EMPTY" is not permitted in user data'),r}validateSymbolTypeConventions(t){let e=[],r=t.symbol,i=new Be,s=r==="X"?"x":r,a=i.bySymbol(s);return a.type!=="EMPTY"&&(t.nextStatusSymbol!==a.nextStatusSymbol&&e.push(`Next Status Symbol for symbol '${r}': '${t.nextStatusSymbol}' is inconsistent with convention '${a.nextStatusSymbol}'`),t.type!==a.type&&e.push(`Status Type for symbol '${r}': '${t.type}' is inconsistent with convention '${a.type}'`)),e}static validateOneSymbol(t,e){let r=[];return t.length===0&&r.push(`${e} cannot be empty.`),t.length>1&&r.push(`${e} ("${t}") must be a single character.`),r}};Dr();gs();var aa=new sa,Un=class extends Ir.Modal{constructor(e,r,i){super(e.app);this.plugin=e;this.saved=!1;this.error=!1;this.statusSymbol=r.symbol,this.statusName=r.name,this.statusNextSymbol=r.nextStatusSymbol,this.statusAvailableAsCommand=r.availableAsCommand,this.type=r.type,this.isCoreStatus=i}statusConfiguration(){return new gt(this.statusSymbol,this.statusName,this.statusNextSymbol,this.statusAvailableAsCommand,this.type)}display(){return F(this,null,function*(){let{contentEl:e}=this;e.empty();let r=e.createDiv(),i;new Ir.Setting(r).setName(N.t("modals.customStatusModal.editStatusSymbol.name")).setDesc(N.t("modals.customStatusModal.editStatusSymbol.description")).addText(u=>{i=u,u.setValue(this.statusSymbol).onChange(c=>{this.statusSymbol=c,Un.setValid(u,aa.validateSymbol(this.statusConfiguration()))})}).setDisabled(this.isCoreStatus).then(u=>{Un.setValid(i,aa.validateSymbol(this.statusConfiguration()))});let s;new Ir.Setting(r).setName(N.t("modals.customStatusModal.editStatusName.name")).setDesc(N.t("modals.customStatusModal.editStatusName.description")).addText(u=>{s=u,u.setValue(this.statusName).onChange(c=>{this.statusName=c,Un.setValid(u,aa.validateName(this.statusConfiguration()))})}).then(u=>{Un.setValid(s,aa.validateName(this.statusConfiguration()))});let a;new Ir.Setting(r).setName(N.t("modals.customStatusModal.editNextStatusSymbol.name")).setDesc(N.t("modals.customStatusModal.editNextStatusSymbol.description")).addText(u=>{a=u,u.setValue(this.statusNextSymbol).onChange(c=>{this.statusNextSymbol=c,Un.setValid(u,aa.validateNextSymbol(this.statusConfiguration()))})}).then(u=>{Un.setValid(a,aa.validateNextSymbol(this.statusConfiguration()))}),new Ir.Setting(r).setName(N.t("modals.customStatusModal.editStatusType.name")).setDesc(N.t("modals.customStatusModal.editStatusType.description")).addDropdown(u=>{["TODO","IN_PROGRESS","DONE","CANCELLED","NON_TASK"].forEach(d=>{u.addOption(d,d)}),u.setValue(this.type).onChange(d=>{this.type=ge.getTypeFromStatusTypeString(d)})}),ge.tasksPluginCanCreateCommandsForStatuses()&&new Ir.Setting(r).setName(N.t("modals.customStatusModal.editAvailableAsCommand.name")).setDesc(N.t("modals.customStatusModal.editAvailableAsCommand.description")).addToggle(u=>{u.setValue(this.statusAvailableAsCommand).onChange(c=>F(this,null,function*(){this.statusAvailableAsCommand=c}))});let o=e.createDiv(),l=new Ir.Setting(o);l.addButton(u=>(u.setTooltip("Save").setIcon("checkmark").onClick(()=>F(this,null,function*(){let c=aa.validate(this.statusConfiguration());if(c.length>0){let d=c.join(` `)+` -`+N.t("modals.customStatusModal.fixErrorsBeforeSaving");new Ir.Notice(d);return}this.saved=!0,this.close()})),u)),l.addExtraButton(u=>(u.setIcon("cross").setTooltip("Cancel").onClick(()=>{this.saved=!1,this.close()}),u))})}onOpen(){this.display()}static setValidationError(e){e.inputEl.addClass("tasks-settings-is-invalid")}static removeValidationError(e){e.inputEl.removeClass("tasks-settings-is-invalid")}static setValid(e,r){r.length===0?Ln.removeValidationError(e):Ln.setValidationError(e)}};var ln=class extends Ce.PluginSettingTab{constructor({plugin:e}){super(e.app,e);this.customFunctions={insertTaskCoreStatusSettings:this.insertTaskCoreStatusSettings.bind(this),insertCustomTaskStatusSettings:this.insertCustomTaskStatusSettings.bind(this)};this.plugin=e}saveSettings(e){return L(this,null,function*(){yield this.plugin.saveSettings(),e&&this.display()})}display(){let{containerEl:e}=this;e.empty(),this.containerEl.addClass("tasks-settings"),e.createEl("p",{cls:"tasks-setting-important",text:N.t("settings.changeRequiresRestart")}),new Ce.Setting(e).setName(N.t("settings.format.name")).setDesc(ln.createFragmentWithHTML(`<p>${N.t("settings.format.description.line1")}</p><p>${N.t("settings.format.description.line2")}</p>`+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Reference/Task+Formats/About+Task+Formats"))).addDropdown(c=>{for(let d of Object.keys(Er))c.addOption(d,Er[d].getDisplayName());c.setValue(le().taskFormat).onChange(d=>L(this,null,function*(){ft({taskFormat:d}),yield this.plugin.saveSettings()}))}),new Ce.Setting(e).setName(N.t("settings.globalFilter.heading")).setHeading();let r=null;new Ce.Setting(e).setName(N.t("settings.globalFilter.filter.name")).setDesc(ln.createFragmentWithHTML(`<p><b>${N.t("settings.globalFilter.filter.description.line1")}</b></p><p>${N.t("settings.globalFilter.filter.description.line2")}<p><p>${N.t("settings.globalFilter.filter.description.line3")}</br>${N.t("settings.globalFilter.filter.description.line4")}</p>`+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Global+Filter"))).addText(c=>{c.setPlaceholder(N.t("settings.globalFilter.filter.placeholder")).setValue(Fe.getInstance().get()).onChange(d=>L(this,null,function*(){ft({globalFilter:d}),Fe.getInstance().set(d),yield this.plugin.saveSettings(),ri(r,d.length>0)}))}),r=new Ce.Setting(e).setName(N.t("settings.globalFilter.removeFilter.name")).setDesc(N.t("settings.globalFilter.removeFilter.description")).addToggle(c=>{let d=le();c.setValue(d.removeGlobalFilter).onChange(f=>L(this,null,function*(){ft({removeGlobalFilter:f}),Fe.getInstance().setRemoveGlobalFilter(f),yield this.plugin.saveSettings()}))}),ri(r,le().globalFilter.length>0),new Ce.Setting(e).setName(N.t("settings.globalQuery.heading")).setHeading(),$Y(new Ce.Setting(e).setDesc(ln.createFragmentWithHTML(`<p>${N.t("settings.globalQuery.query.description")}</p>`+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Queries/Global+Query"))).addTextArea(c=>{let d=le();c.inputEl.rows=4,c.setPlaceholder("# "+N.t("settings.globalQuery.query.placeholder")).setValue(d.globalQuery).onChange(f=>L(this,null,function*(){ft({globalQuery:f}),dr.getInstance().set(f),yield this.plugin.saveSettings()}))})),new Ce.Setting(e).setName(N.t("settings.statuses.heading")).setHeading();let{headingOpened:i}=le();[{text:N.t("settings.statuses.coreStatuses.heading"),level:"h3",class:"",open:!0,notice:{class:"setting-item-description",text:null,html:"<p>"+N.t("settings.statuses.coreStatuses.description.line1")+"</p><p>"+N.t("settings.statuses.coreStatuses.description.line2")+"</p>"},settings:[{name:"",description:"",type:"function",initialValue:"",placeholder:"",settingName:"insertTaskCoreStatusSettings",featureFlag:"",notice:null}]},{text:N.t("settings.statuses.customStatuses.heading"),level:"h3",class:"",open:!0,notice:{class:"setting-item-description",text:null,html:"<p>"+N.t("settings.statuses.customStatuses.description.line1")+"</p><p>"+N.t("settings.statuses.customStatuses.description.line2")+"</p><p>"+N.t("settings.statuses.customStatuses.description.line3")+`</p><p></p><p><a href="https://publish.obsidian.md/tasks/Getting+Started/Statuses">${N.t("settings.statuses.customStatuses.description.line4")}</a></p>`},settings:[{name:"",description:"",type:"function",initialValue:"",placeholder:"",settingName:"insertCustomTaskStatusSettings",featureFlag:"",notice:null}]}].forEach(c=>{var p;let d=(p=i[c.text])!=null?p:!0,f=this.addOneSettingsBlock(e,c,i);f.open=d}),new Ce.Setting(e).setName(N.t("settings.dates.heading")).setHeading(),new Ce.Setting(e).setName(N.t("settings.dates.createdDate.name")).setDesc(ln.createFragmentWithHTML(N.t("settings.dates.createdDate.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Dates#Created+date"))).addToggle(c=>{let d=le();c.setValue(d.setCreatedDate).onChange(f=>L(this,null,function*(){ft({setCreatedDate:f}),yield this.plugin.saveSettings()}))}),new Ce.Setting(e).setName(N.t("settings.dates.doneDate.name")).setDesc(ln.createFragmentWithHTML(N.t("settings.dates.doneDate.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Dates#Done+date"))).addToggle(c=>{let d=le();c.setValue(d.setDoneDate).onChange(f=>L(this,null,function*(){ft({setDoneDate:f}),yield this.plugin.saveSettings()}))}),new Ce.Setting(e).setName(N.t("settings.dates.cancelledDate.name")).setDesc(ln.createFragmentWithHTML(N.t("settings.dates.cancelledDate.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Dates#Cancelled+date"))).addToggle(c=>{let d=le();c.setValue(d.setCancelledDate).onChange(f=>L(this,null,function*(){ft({setCancelledDate:f}),yield this.plugin.saveSettings()}))}),new Ce.Setting(e).setName(N.t("settings.datesFromFileNames.heading")).setHeading();let a=null,o=null;new Ce.Setting(e).setName(N.t("settings.datesFromFileNames.scheduledDate.toggle.name")).setDesc(ln.createFragmentWithHTML(N.t("settings.datesFromFileNames.scheduledDate.toggle.description.line1")+"</br>"+N.t("settings.datesFromFileNames.scheduledDate.toggle.description.line2")+"</br>"+N.t("settings.datesFromFileNames.scheduledDate.toggle.description.line3")+"</br>"+N.t("settings.datesFromFileNames.scheduledDate.toggle.description.line4")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Use+Filename+as+Default+Date"))).addToggle(c=>{let d=le();c.setValue(d.useFilenameAsScheduledDate).onChange(f=>L(this,null,function*(){ft({useFilenameAsScheduledDate:f}),ri(a,f),ri(o,f),yield this.plugin.saveSettings()}))}),a=new Ce.Setting(e).setName(N.t("settings.datesFromFileNames.scheduledDate.extraFormat.name")).setDesc(ln.createFragmentWithHTML(N.t("settings.datesFromFileNames.scheduledDate.extraFormat.description.line1")+`</br><p><a href="https://momentjs.com/docs/#/displaying/format/">${N.t("settings.datesFromFileNames.scheduledDate.extraFormat.description.line2")}</a></p>`)).addText(c=>{let d=le();c.setPlaceholder(N.t("settings.datesFromFileNames.scheduledDate.extraFormat.placeholder")).setValue(d.filenameAsScheduledDateFormat).onChange(f=>L(this,null,function*(){ft({filenameAsScheduledDateFormat:f}),yield this.plugin.saveSettings()}))}),o=new Ce.Setting(e).setName(N.t("settings.datesFromFileNames.scheduledDate.folders.name")).setDesc(N.t("settings.datesFromFileNames.scheduledDate.folders.description")).addText(c=>L(this,null,function*(){let d=le();yield this.plugin.saveSettings(),c.setValue(ln.renderFolderArray(d.filenameAsDateFolders)).onChange(f=>L(this,null,function*(){let p=ln.parseCommaSeparatedFolders(f);ft({filenameAsDateFolders:p}),yield this.plugin.saveSettings()}))})),ri(a,le().useFilenameAsScheduledDate),ri(o,le().useFilenameAsScheduledDate),new Ce.Setting(e).setName(N.t("settings.recurringTasks.heading")).setHeading(),new Ce.Setting(e).setName(N.t("settings.recurringTasks.nextLine.name")).setDesc(ln.createFragmentWithHTML(N.t("settings.recurringTasks.nextLine.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Recurring+Tasks"))).addToggle(c=>{let{recurrenceOnNextLine:d}=le();c.setValue(d).onChange(f=>L(this,null,function*(){ft({recurrenceOnNextLine:f}),yield this.plugin.saveSettings()}))}),new Ce.Setting(e).setName(N.t("settings.autoSuggest.heading")).setHeading();let l=null,u=null;new Ce.Setting(e).setName(N.t("settings.autoSuggest.toggle.name")).setDesc(ln.createFragmentWithHTML(N.t("settings.autoSuggest.toggle.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Auto-Suggest"))).addToggle(c=>{let d=le();c.setValue(d.autoSuggestInEditor).onChange(f=>L(this,null,function*(){ft({autoSuggestInEditor:f}),yield this.plugin.saveSettings(),ri(l,f),ri(u,f)}))}),l=new Ce.Setting(e).setName(N.t("settings.autoSuggest.minLength.name")).setDesc(N.t("settings.autoSuggest.minLength.description")).addSlider(c=>{let d=le();c.setLimits(0,3,1).setValue(d.autoSuggestMinMatch).setDynamicTooltip().onChange(f=>L(this,null,function*(){ft({autoSuggestMinMatch:f}),yield this.plugin.saveSettings()}))}),u=new Ce.Setting(e).setName(N.t("settings.autoSuggest.maxSuggestions.name")).setDesc(N.t("settings.autoSuggest.maxSuggestions.description")).addSlider(c=>{let d=le();c.setLimits(3,20,1).setValue(d.autoSuggestMaxItems).setDynamicTooltip().onChange(f=>L(this,null,function*(){ft({autoSuggestMaxItems:f}),yield this.plugin.saveSettings()}))}),ri(l,le().autoSuggestInEditor),ri(u,le().autoSuggestInEditor),new Ce.Setting(e).setName(N.t("settings.dialogs.heading")).setHeading(),new Ce.Setting(e).setName(N.t("settings.dialogs.accessKeys.name")).setDesc(ln.createFragmentWithHTML(N.t("settings.dialogs.accessKeys.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Create+or+edit+Task#Keyboard+shortcuts"))).addToggle(c=>{let d=le();c.setValue(d.provideAccessKeys).onChange(f=>L(this,null,function*(){ft({provideAccessKeys:f}),yield this.plugin.saveSettings()}))})}seeTheDocumentation(e){return`<p><a href="${e}">${N.t("settings.seeTheDocumentation")}</a>.</p>`}addOneSettingsBlock(e,r,i){let s=e.createEl("details",{cls:"tasks-nested-settings",attr:U({},r.open||i[r.text]?{open:!0}:{})});s.empty(),s.ontoggle=()=>{i[r.text]=s.open,ft({headingOpened:i}),this.plugin.saveSettings()};let a=s.createEl("summary");if(new Ce.Setting(a).setHeading().setName(r.text),a.createDiv("collapser").createDiv("handle"),r.notice!==null){let o=s.createEl("div",{cls:r.notice.class,text:r.notice.text});r.notice.html!==null&&o.insertAdjacentHTML("beforeend",r.notice.html)}return r.settings.forEach(o=>{if(!(o.featureFlag!==""&&!jS(o.featureFlag))&&(o.type==="checkbox"?new Ce.Setting(s).setName(o.name).setDesc(o.description).addToggle(l=>{let u=le();u.generalSettings[o.settingName]||js(o.settingName,o.initialValue),l.setValue(u.generalSettings[o.settingName]).onChange(c=>L(this,null,function*(){js(o.settingName,c),yield this.plugin.saveSettings()}))}):o.type==="text"?new Ce.Setting(s).setName(o.name).setDesc(o.description).addText(l=>{let u=le();u.generalSettings[o.settingName]||js(o.settingName,o.initialValue);let c=d=>L(this,null,function*(){js(o.settingName,d),yield this.plugin.saveSettings()});l.setPlaceholder(o.placeholder.toString()).setValue(u.generalSettings[o.settingName].toString()).onChange((0,Ce.debounce)(c,500,!0))}):o.type==="textarea"?new Ce.Setting(s).setName(o.name).setDesc(o.description).addTextArea(l=>{let u=le();u.generalSettings[o.settingName]||js(o.settingName,o.initialValue);let c=d=>L(this,null,function*(){js(o.settingName,d),yield this.plugin.saveSettings()});l.setPlaceholder(o.placeholder.toString()).setValue(u.generalSettings[o.settingName].toString()).onChange((0,Ce.debounce)(c,500,!0)),l.inputEl.rows=8,l.inputEl.cols=40}):o.type==="function"&&this.customFunctions[o.settingName](s,this),o.notice!==null)){let l=s.createEl("p",{cls:o.notice.class,text:o.notice.text});o.notice.html!==null&&l.insertAdjacentHTML("beforeend",o.notice.html)}}),s}static parseCommaSeparatedFolders(e){return e.split(",").map(r=>r.trim()).map(r=>r.replace(/^\/|\/$/g,"")).filter(r=>r!=="")}static renderFolderArray(e){return e.join(",")}insertTaskCoreStatusSettings(e,r){let{statusSettings:i}=le();i.coreStatuses.forEach(a=>{kx(e,a,i.coreStatuses,i,r,r.plugin,!0)}),new Ce.Setting(e).addButton(a=>{let o=N.t("settings.statuses.coreStatuses.buttons.checkStatuses.name");a.setButtonText(o).setCta().onClick(()=>L(this,null,function*(){let u=window.moment().format("YYYY-MM-DD HH-mm-ss"),c=`Tasks Plugin - ${o} ${u}.md`,d=this.plugin.manifest.version,f=Be.getInstance(),p=mx(i,f,o,d),b=yield this.app.vault.create(c,p);yield this.app.workspace.getLeaf(!0).openFile(b)})),a.setTooltip(N.t("settings.statuses.coreStatuses.buttons.checkStatuses.tooltip"))}).infoEl.remove()}insertCustomTaskStatusSettings(e,r){let{statusSettings:i}=le();i.customStatuses.forEach(u=>{kx(e,u,i.customStatuses,i,r,r.plugin,!1)}),e.createEl("div"),new Ce.Setting(e).addButton(u=>{u.setButtonText(N.t("settings.statuses.customStatuses.buttons.addNewStatus.name")).setCta().onClick(()=>L(this,null,function*(){et.addStatus(i.customStatuses,new gt("","","",!1,"TODO")),yield Co(i,r)}))}).infoEl.remove();let a=[[N.t("settings.statuses.collections.anuppuccinTheme"),hx()],[N.t("settings.statuses.collections.auraTheme"),gx()],[N.t("settings.statuses.collections.borderTheme"),yx()],[N.t("settings.statuses.collections.ebullientworksTheme"),bx()],[N.t("settings.statuses.collections.itsThemeAndSlrvbCheckboxes"),Tx()],[N.t("settings.statuses.collections.minimalTheme"),vx()],[N.t("settings.statuses.collections.thingsTheme"),wx()],[N.t("settings.statuses.collections.lytModeTheme"),_x()]];for(let[u,c]of a)new Ce.Setting(e).addButton(f=>{let p=N.t("settings.statuses.collections.buttons.addCollection.name",{themeName:u,numberOfStatuses:c.length});f.setButtonText(p).onClick(()=>L(this,null,function*(){yield WY(c,i,r)}))}).infoEl.remove();new Ce.Setting(e).addButton(u=>{u.setButtonText(N.t("settings.statuses.customStatuses.buttons.addAllUnknown.name")).setCta().onClick(()=>L(this,null,function*(){let d=this.plugin.getTasks().map(p=>p.status),f=Be.getInstance().findUnknownStatuses(d);f.length!==0&&(f.forEach(p=>{et.addStatus(i.customStatuses,p)}),yield Co(i,r))}))}).infoEl.remove(),new Ce.Setting(e).addButton(u=>{u.setButtonText(N.t("settings.statuses.customStatuses.buttons.resetCustomStatuses.name")).setWarning().onClick(()=>L(this,null,function*(){et.resetAllCustomStatuses(i),yield Co(i,r)}))}).infoEl.remove()}},Ru=ln;Ru.createFragmentWithHTML=e=>createFragment(r=>r.createDiv().innerHTML=e);function kx(n,t,e,r,i,s,a){let o=n.createEl("pre");o.addClass("row-for-status"),o.textContent=new ge(t).previewText();let l=new Ce.Setting(n);l.infoEl.replaceWith(o),a||l.addExtraButton(u=>{u.setIcon("cross").setTooltip("Delete").onClick(()=>L(this,null,function*(){et.deleteStatus(e,t)&&(yield Co(r,i))}))}),l.addExtraButton(u=>{u.setIcon("pencil").setTooltip("Edit").onClick(()=>L(this,null,function*(){let c=new Ln(s,t,a);c.onClose=()=>L(this,null,function*(){c.saved&&et.replaceStatus(e,t,c.statusConfiguration())&&(yield Co(r,i))}),c.open()}))}),l.infoEl.remove()}function WY(n,t,e){return L(this,null,function*(){et.bulkAddStatusCollection(t,n).forEach(i=>{new Ce.Notice(i)}),yield Co(t,e)})}function Co(n,t){return L(this,null,function*(){ft({statusSettings:n}),et.applyToStatusRegistry(n,Be.getInstance()),yield t.saveSettings(!0)})}function $Y(n){let{settingEl:t,infoEl:e,controlEl:r}=n,i=r.querySelector("textarea");i!==null&&(t.style.display="block",e.style.marginRight="0px",i.style.minWidth="-webkit-fill-available")}function ri(n,t){n?n.setVisibility(t):console.warn("Setting has not be initialised. Can update visibility of setting UI - in setSettingVisibility")}wi();Ws();var ls=require("obsidian");Jc();nn();ry();function qY(n){console.error(n),new ls.Notice(n+` +`+N.t("modals.customStatusModal.fixErrorsBeforeSaving");new Ir.Notice(d);return}this.saved=!0,this.close()})),u)),l.addExtraButton(u=>(u.setIcon("cross").setTooltip("Cancel").onClick(()=>{this.saved=!1,this.close()}),u))})}onOpen(){this.display()}static setValidationError(e){e.inputEl.addClass("tasks-settings-is-invalid")}static removeValidationError(e){e.inputEl.removeClass("tasks-settings-is-invalid")}static setValid(e,r){r.length===0?Un.removeValidationError(e):Un.setValidationError(e)}};var Jt=class extends xe.PluginSettingTab{constructor({plugin:e}){super(e.app,e);this.customFunctions={insertTaskCoreStatusSettings:this.insertTaskCoreStatusSettings.bind(this),insertCustomTaskStatusSettings:this.insertCustomTaskStatusSettings.bind(this)};this.plugin=e}saveSettings(e){return F(this,null,function*(){yield this.plugin.saveSettings(),e&&this.display()})}display(){let{containerEl:e}=this;e.empty(),this.containerEl.addClass("tasks-settings"),e.createEl("p",{cls:"tasks-setting-important",text:N.t("settings.changeRequiresRestart")}),new xe.Setting(e).setName(N.t("settings.format.name")).setDesc(Jt.createFragmentWithHTML(`<p>${N.t("settings.format.description.line1")}</p><p>${N.t("settings.format.description.line2")}</p>`+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Reference/Task+Formats/About+Task+Formats"))).addDropdown(c=>{for(let d of Object.keys(Er))c.addOption(d,Er[d].getDisplayName());c.setValue(le().taskFormat).onChange(d=>F(this,null,function*(){at({taskFormat:d}),yield this.plugin.saveSettings()}))}),new xe.Setting(e).setName(N.t("settings.globalFilter.heading")).setHeading();let r=null;new xe.Setting(e).setName(N.t("settings.globalFilter.filter.name")).setDesc(Jt.createFragmentWithHTML(`<p><b>${N.t("settings.globalFilter.filter.description.line1")}</b></p><p>${N.t("settings.globalFilter.filter.description.line2")}<p><p>${N.t("settings.globalFilter.filter.description.line3")}</br>${N.t("settings.globalFilter.filter.description.line4")}</p>`+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Global+Filter"))).addText(c=>{c.setPlaceholder(N.t("settings.globalFilter.filter.placeholder")).setValue(Fe.getInstance().get()).onChange(d=>F(this,null,function*(){at({globalFilter:d}),Fe.getInstance().set(d),yield this.plugin.saveSettings(),ri(r,d.length>0)}))}),r=new xe.Setting(e).setName(N.t("settings.globalFilter.removeFilter.name")).setDesc(N.t("settings.globalFilter.removeFilter.description")).addToggle(c=>{let d=le();c.setValue(d.removeGlobalFilter).onChange(f=>F(this,null,function*(){at({removeGlobalFilter:f}),Fe.getInstance().setRemoveGlobalFilter(f),yield this.plugin.saveSettings()}))}),ri(r,le().globalFilter.length>0),new xe.Setting(e).setName(N.t("settings.globalQuery.heading")).setHeading(),qY(new xe.Setting(e).setDesc(Jt.createFragmentWithHTML(`<p>${N.t("settings.globalQuery.query.description")}</p>`+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Queries/Global+Query"))).addTextArea(c=>{let d=le();c.inputEl.rows=4,c.setPlaceholder("# "+N.t("settings.globalQuery.query.placeholder")).setValue(d.globalQuery).onChange(f=>F(this,null,function*(){at({globalQuery:f}),fr.getInstance().set(f),yield this.plugin.saveSettings()}))})),new xe.Setting(e).setName(N.t("settings.statuses.heading")).setHeading();let{headingOpened:i}=le();[{text:N.t("settings.statuses.coreStatuses.heading"),level:"h3",class:"",open:!0,notice:{class:"setting-item-description",text:null,html:"<p>"+N.t("settings.statuses.coreStatuses.description.line1")+"</p><p>"+N.t("settings.statuses.coreStatuses.description.line2")+"</p>"},settings:[{name:"",description:"",type:"function",initialValue:"",placeholder:"",settingName:"insertTaskCoreStatusSettings",featureFlag:"",notice:null}]},{text:N.t("settings.statuses.customStatuses.heading"),level:"h3",class:"",open:!0,notice:{class:"setting-item-description",text:null,html:"<p>"+N.t("settings.statuses.customStatuses.description.line1")+"</p><p>"+N.t("settings.statuses.customStatuses.description.line2")+"</p><p>"+N.t("settings.statuses.customStatuses.description.line3")+`</p><p></p><p><a href="https://publish.obsidian.md/tasks/Getting+Started/Statuses">${N.t("settings.statuses.customStatuses.description.line4")}</a></p>`},settings:[{name:"",description:"",type:"function",initialValue:"",placeholder:"",settingName:"insertCustomTaskStatusSettings",featureFlag:"",notice:null}]}].forEach(c=>{var p;let d=(p=i[c.text])!=null?p:!0,f=this.addOneSettingsBlock(e,c,i);f.open=d}),new xe.Setting(e).setName(N.t("settings.dates.heading")).setHeading(),new xe.Setting(e).setName(N.t("settings.dates.createdDate.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.dates.createdDate.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Dates#Created+date"))).addToggle(c=>{let d=le();c.setValue(d.setCreatedDate).onChange(f=>F(this,null,function*(){at({setCreatedDate:f}),yield this.plugin.saveSettings()}))}),new xe.Setting(e).setName(N.t("settings.dates.doneDate.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.dates.doneDate.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Dates#Done+date"))).addToggle(c=>{let d=le();c.setValue(d.setDoneDate).onChange(f=>F(this,null,function*(){at({setDoneDate:f}),yield this.plugin.saveSettings()}))}),new xe.Setting(e).setName(N.t("settings.dates.cancelledDate.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.dates.cancelledDate.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Dates#Cancelled+date"))).addToggle(c=>{let d=le();c.setValue(d.setCancelledDate).onChange(f=>F(this,null,function*(){at({setCancelledDate:f}),yield this.plugin.saveSettings()}))}),new xe.Setting(e).setName(N.t("settings.datesFromFileNames.heading")).setHeading();let a=null,o=null;new xe.Setting(e).setName(N.t("settings.datesFromFileNames.scheduledDate.toggle.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.datesFromFileNames.scheduledDate.toggle.description.line1")+"</br>"+N.t("settings.datesFromFileNames.scheduledDate.toggle.description.line2")+"</br>"+N.t("settings.datesFromFileNames.scheduledDate.toggle.description.line3")+"</br>"+N.t("settings.datesFromFileNames.scheduledDate.toggle.description.line4")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Use+Filename+as+Default+Date"))).addToggle(c=>{let d=le();c.setValue(d.useFilenameAsScheduledDate).onChange(f=>F(this,null,function*(){at({useFilenameAsScheduledDate:f}),ri(a,f),ri(o,f),yield this.plugin.saveSettings()}))}),a=new xe.Setting(e).setName(N.t("settings.datesFromFileNames.scheduledDate.extraFormat.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.datesFromFileNames.scheduledDate.extraFormat.description.line1")+`</br><p><a href="https://momentjs.com/docs/#/displaying/format/">${N.t("settings.datesFromFileNames.scheduledDate.extraFormat.description.line2")}</a></p>`)).addText(c=>{let d=le();c.setPlaceholder(N.t("settings.datesFromFileNames.scheduledDate.extraFormat.placeholder")).setValue(d.filenameAsScheduledDateFormat).onChange(f=>F(this,null,function*(){at({filenameAsScheduledDateFormat:f}),yield this.plugin.saveSettings()}))}),o=new xe.Setting(e).setName(N.t("settings.datesFromFileNames.scheduledDate.folders.name")).setDesc(N.t("settings.datesFromFileNames.scheduledDate.folders.description")).addText(c=>F(this,null,function*(){let d=le();yield this.plugin.saveSettings(),c.setValue(Jt.renderFolderArray(d.filenameAsDateFolders)).onChange(f=>F(this,null,function*(){let p=Jt.parseCommaSeparatedFolders(f);at({filenameAsDateFolders:p}),yield this.plugin.saveSettings()}))})),ri(a,le().useFilenameAsScheduledDate),ri(o,le().useFilenameAsScheduledDate),new xe.Setting(e).setName(N.t("settings.recurringTasks.heading")).setHeading(),new xe.Setting(e).setName(N.t("settings.recurringTasks.nextLine.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.recurringTasks.nextLine.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Recurring+Tasks"))).addToggle(c=>{let{recurrenceOnNextLine:d}=le();c.setValue(d).onChange(f=>F(this,null,function*(){at({recurrenceOnNextLine:f}),yield this.plugin.saveSettings()}))}),new xe.Setting(e).setName(N.t("settings.recurringTasks.removeScheduledDate.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.recurringTasks.removeScheduledDate.description.line1")+"</br>"+N.t("settings.recurringTasks.removeScheduledDate.description.line2")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Recurring+Tasks"))).addToggle(c=>{let{removeScheduledDateOnRecurrence:d}=le();c.setValue(d).onChange(f=>F(this,null,function*(){at({removeScheduledDateOnRecurrence:f}),yield this.plugin.saveSettings()}))}),new xe.Setting(e).setName(N.t("settings.autoSuggest.heading")).setHeading();let l=null,u=null;new xe.Setting(e).setName(N.t("settings.autoSuggest.toggle.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.autoSuggest.toggle.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Auto-Suggest"))).addToggle(c=>{let d=le();c.setValue(d.autoSuggestInEditor).onChange(f=>F(this,null,function*(){at({autoSuggestInEditor:f}),yield this.plugin.saveSettings(),ri(l,f),ri(u,f)}))}),l=new xe.Setting(e).setName(N.t("settings.autoSuggest.minLength.name")).setDesc(N.t("settings.autoSuggest.minLength.description")).addSlider(c=>{let d=le();c.setLimits(0,3,1).setValue(d.autoSuggestMinMatch).setDynamicTooltip().onChange(f=>F(this,null,function*(){at({autoSuggestMinMatch:f}),yield this.plugin.saveSettings()}))}),u=new xe.Setting(e).setName(N.t("settings.autoSuggest.maxSuggestions.name")).setDesc(N.t("settings.autoSuggest.maxSuggestions.description")).addSlider(c=>{let d=le();c.setLimits(3,20,1).setValue(d.autoSuggestMaxItems).setDynamicTooltip().onChange(f=>F(this,null,function*(){at({autoSuggestMaxItems:f}),yield this.plugin.saveSettings()}))}),ri(l,le().autoSuggestInEditor),ri(u,le().autoSuggestInEditor),new xe.Setting(e).setName(N.t("settings.dialogs.heading")).setHeading(),new xe.Setting(e).setName(N.t("settings.dialogs.accessKeys.name")).setDesc(Jt.createFragmentWithHTML(N.t("settings.dialogs.accessKeys.description")+"</br>"+this.seeTheDocumentation("https://publish.obsidian.md/tasks/Getting+Started/Create+or+edit+Task#Keyboard+shortcuts"))).addToggle(c=>{let d=le();c.setValue(d.provideAccessKeys).onChange(f=>F(this,null,function*(){at({provideAccessKeys:f}),yield this.plugin.saveSettings()}))})}seeTheDocumentation(e){return`<p><a href="${e}">${N.t("settings.seeTheDocumentation")}</a>.</p>`}addOneSettingsBlock(e,r,i){let s=e.createEl("details",{cls:"tasks-nested-settings",attr:U({},r.open||i[r.text]?{open:!0}:{})});s.empty(),s.ontoggle=()=>{i[r.text]=s.open,at({headingOpened:i}),this.plugin.saveSettings()};let a=s.createEl("summary");if(new xe.Setting(a).setHeading().setName(r.text),a.createDiv("collapser").createDiv("handle"),r.notice!==null){let o=s.createEl("div",{cls:r.notice.class,text:r.notice.text});r.notice.html!==null&&o.insertAdjacentHTML("beforeend",r.notice.html)}return r.settings.forEach(o=>{if(!(o.featureFlag!==""&&!jS(o.featureFlag))&&(o.type==="checkbox"?new xe.Setting(s).setName(o.name).setDesc(o.description).addToggle(l=>{let u=le();u.generalSettings[o.settingName]||js(o.settingName,o.initialValue),l.setValue(u.generalSettings[o.settingName]).onChange(c=>F(this,null,function*(){js(o.settingName,c),yield this.plugin.saveSettings()}))}):o.type==="text"?new xe.Setting(s).setName(o.name).setDesc(o.description).addText(l=>{let u=le();u.generalSettings[o.settingName]||js(o.settingName,o.initialValue);let c=d=>F(this,null,function*(){js(o.settingName,d),yield this.plugin.saveSettings()});l.setPlaceholder(o.placeholder.toString()).setValue(u.generalSettings[o.settingName].toString()).onChange((0,xe.debounce)(c,500,!0))}):o.type==="textarea"?new xe.Setting(s).setName(o.name).setDesc(o.description).addTextArea(l=>{let u=le();u.generalSettings[o.settingName]||js(o.settingName,o.initialValue);let c=d=>F(this,null,function*(){js(o.settingName,d),yield this.plugin.saveSettings()});l.setPlaceholder(o.placeholder.toString()).setValue(u.generalSettings[o.settingName].toString()).onChange((0,xe.debounce)(c,500,!0)),l.inputEl.rows=8,l.inputEl.cols=40}):o.type==="function"&&this.customFunctions[o.settingName](s,this),o.notice!==null)){let l=s.createEl("p",{cls:o.notice.class,text:o.notice.text});o.notice.html!==null&&l.insertAdjacentHTML("beforeend",o.notice.html)}}),s}static parseCommaSeparatedFolders(e){return e.split(",").map(r=>r.trim()).map(r=>r.replace(/^\/|\/$/g,"")).filter(r=>r!=="")}static renderFolderArray(e){return e.join(",")}insertTaskCoreStatusSettings(e,r){let{statusSettings:i}=le();i.coreStatuses.forEach(a=>{Sx(e,a,i.coreStatuses,i,r,r.plugin,!0)}),new xe.Setting(e).addButton(a=>{let o=N.t("settings.statuses.coreStatuses.buttons.checkStatuses.name");a.setButtonText(o).setCta().onClick(()=>F(this,null,function*(){let u=window.moment().format("YYYY-MM-DD HH-mm-ss"),c=`Tasks Plugin - ${o} ${u}.md`,d=this.plugin.manifest.version,f=Be.getInstance(),p=hx(i,f,o,d),b=yield this.app.vault.create(c,p);yield this.app.workspace.getLeaf(!0).openFile(b)})),a.setTooltip(N.t("settings.statuses.coreStatuses.buttons.checkStatuses.tooltip"))}).infoEl.remove()}insertCustomTaskStatusSettings(e,r){let{statusSettings:i}=le();i.customStatuses.forEach(u=>{Sx(e,u,i.customStatuses,i,r,r.plugin,!1)}),e.createEl("div"),new xe.Setting(e).addButton(u=>{u.setButtonText(N.t("settings.statuses.customStatuses.buttons.addNewStatus.name")).setCta().onClick(()=>F(this,null,function*(){et.addStatus(i.customStatuses,new gt("","","",!1,"TODO")),yield Co(i,r)}))}).infoEl.remove();let a=[[N.t("settings.statuses.collections.anuppuccinTheme"),gx()],[N.t("settings.statuses.collections.auraTheme"),yx()],[N.t("settings.statuses.collections.borderTheme"),bx()],[N.t("settings.statuses.collections.ebullientworksTheme"),Tx()],[N.t("settings.statuses.collections.itsThemeAndSlrvbCheckboxes"),_x()],[N.t("settings.statuses.collections.minimalTheme"),wx()],[N.t("settings.statuses.collections.thingsTheme"),kx()],[N.t("settings.statuses.collections.lytModeTheme"),vx()]];for(let[u,c]of a)new xe.Setting(e).addButton(f=>{let p=N.t("settings.statuses.collections.buttons.addCollection.name",{themeName:u,numberOfStatuses:c.length});f.setButtonText(p).onClick(()=>F(this,null,function*(){yield $Y(c,i,r)}))}).infoEl.remove();new xe.Setting(e).addButton(u=>{u.setButtonText(N.t("settings.statuses.customStatuses.buttons.addAllUnknown.name")).setCta().onClick(()=>F(this,null,function*(){let d=this.plugin.getTasks().map(p=>p.status),f=Be.getInstance().findUnknownStatuses(d);f.length!==0&&(f.forEach(p=>{et.addStatus(i.customStatuses,p)}),yield Co(i,r))}))}).infoEl.remove(),new xe.Setting(e).addButton(u=>{u.setButtonText(N.t("settings.statuses.customStatuses.buttons.resetCustomStatuses.name")).setWarning().onClick(()=>F(this,null,function*(){et.resetAllCustomStatuses(i),yield Co(i,r)}))}).infoEl.remove()}},Ru=Jt;Ru.createFragmentWithHTML=e=>createFragment(r=>r.createDiv().innerHTML=e);function Sx(n,t,e,r,i,s,a){let o=n.createEl("pre");o.addClass("row-for-status"),o.textContent=new ge(t).previewText();let l=new xe.Setting(n);l.infoEl.replaceWith(o),a||l.addExtraButton(u=>{u.setIcon("cross").setTooltip("Delete").onClick(()=>F(this,null,function*(){et.deleteStatus(e,t)&&(yield Co(r,i))}))}),l.addExtraButton(u=>{u.setIcon("pencil").setTooltip("Edit").onClick(()=>F(this,null,function*(){let c=new Un(s,t,a);c.onClose=()=>F(this,null,function*(){c.saved&&et.replaceStatus(e,t,c.statusConfiguration())&&(yield Co(r,i))}),c.open()}))}),l.infoEl.remove()}function $Y(n,t,e){return F(this,null,function*(){et.bulkAddStatusCollection(t,n).forEach(i=>{new xe.Notice(i)}),yield Co(t,e)})}function Co(n,t){return F(this,null,function*(){at({statusSettings:n}),et.applyToStatusRegistry(n,Be.getInstance()),yield t.saveSettings(!0)})}function qY(n){let{settingEl:t,infoEl:e,controlEl:r}=n,i=r.querySelector("textarea");i!==null&&(t.style.display="block",e.style.marginRight="0px",i.style.minWidth="-webkit-fill-available")}function ri(n,t){n?n.setVisibility(t):console.warn("Setting has not be initialised. Can update visibility of setting UI - in setSettingVisibility")}wi();Ws();var ls=require("obsidian");Jc();rn();ry();function HY(n){console.error(n),new ls.Notice(n+` This message has been written to the console. -`,1e4)}var xf=class extends ls.EditorSuggest{constructor(e,r,i){super(e);this.settings=r,this.plugin=i,e.scope.register([],"Tab",()=>{var a;let s=(a=this.context)==null?void 0:a.editor;return s?(s.exec("indentMore"),!1):!0})}onTrigger(e,r,i){if(!this.settings.autoSuggestInEditor)return null;let s=r.getLine(e.line);return NS(s,e,r)?{start:{line:e.line,ch:0},end:{line:e.line,ch:s.length},query:s}:null}getSuggestions(e){var c,d,f;let r=e.query,i=e.editor.getCursor(),s=this.plugin.getTasks(),a=s.find(p=>p.taskLocation.path==e.file.path&&p.taskLocation.lineNumber==i.line),o=this.getMarkdownFileInfo(e),l=this.canSaveEdits(o);return((f=(d=(c=au()).buildSuggestions)==null?void 0:d.call(c,r,i.ch,this.settings,s,l,a))!=null?f:[]).map(p=>me(U({},p),{context:e}))}getMarkdownFileInfo(e){return e.editor.cm.state.field(ls.editorInfoField)}canSaveEdits(e){return e instanceof ls.MarkdownView}renderSuggestion(e,r){r.setText(e.displayText)}selectSuggestion(e,r){return L(this,null,function*(){var u,c,d;let i=e.context.editor;if(e.suggestionType==="empty"){this.close();let f=new KeyboardEvent("keydown",{code:"Enter",key:"Enter"});(c=(u=i==null?void 0:i.cm)==null?void 0:u.contentDOM)==null||c.dispatchEvent(f);return}if(e.taskItDependsOn!=null){let f=Zc(e.taskItDependsOn,this.plugin.getTasks().map(p=>p.id));if(e.appendText+=` ${f.id}`,e.taskItDependsOn!==f)if(e.context.file.path==f.path){let p=e.taskItDependsOn.originalMarkdown,b={line:e.taskItDependsOn.lineNumber,ch:0},T={line:e.taskItDependsOn.lineNumber,ch:p.length},_=e.context.editor.getRange(b,T);if(_!==p){let O=`Error adding new ID, due to mismatched data in Tasks memory and the editor: +`,1e4)}var xf=class extends ls.EditorSuggest{constructor(e,r,i){super(e);this.settings=r,this.plugin=i,e.scope.register([],"Tab",()=>{var a;let s=(a=this.context)==null?void 0:a.editor;return s?(s.exec("indentMore"),!1):!0})}onTrigger(e,r,i){if(!this.settings.autoSuggestInEditor)return null;let s=r.getLine(e.line);return NS(s,e,r)?{start:{line:e.line,ch:0},end:{line:e.line,ch:s.length},query:s}:null}getSuggestions(e){var c,d,f;let r=e.query,i=e.editor.getCursor(),s=this.plugin.getTasks(),a=s.find(p=>p.taskLocation.path==e.file.path&&p.taskLocation.lineNumber==i.line),o=this.getMarkdownFileInfo(e),l=this.canSaveEdits(o);return((f=(d=(c=au()).buildSuggestions)==null?void 0:d.call(c,r,i.ch,this.settings,s,l,a))!=null?f:[]).map(p=>de(U({},p),{context:e}))}getMarkdownFileInfo(e){return e.editor.cm.state.field(ls.editorInfoField)}canSaveEdits(e){return e instanceof ls.MarkdownView}renderSuggestion(e,r){r.setText(e.displayText)}selectSuggestion(e,r){return F(this,null,function*(){var u,c,d;let i=e.context.editor;if(e.suggestionType==="empty"){this.close();let f=new KeyboardEvent("keydown",{code:"Enter",key:"Enter"});(c=(u=i==null?void 0:i.cm)==null?void 0:u.contentDOM)==null||c.dispatchEvent(f);return}if(e.taskItDependsOn!=null){let f=Zc(e.taskItDependsOn,this.plugin.getTasks().map(p=>p.id));if(e.appendText+=` ${f.id}`,e.taskItDependsOn!==f)if(e.context.file.path==f.path){let p=e.taskItDependsOn.originalMarkdown,b={line:e.taskItDependsOn.lineNumber,ch:0},T={line:e.taskItDependsOn.lineNumber,ch:p.length},_=e.context.editor.getRange(b,T);if(_!==p){let O=`Error adding new ID, due to mismatched data in Tasks memory and the editor: task line in memory: '${e.taskItDependsOn.originalMarkdown}' task line in editor: '${_}' file: '${f.path}' -`;qY(O);return}e.context.editor.replaceRange(f.toFileLineString(),b,T)}else gn({originalTask:e.taskItDependsOn,newTasks:f})}let s=e.context.editor.getCursor(),a={line:s.line,ch:(d=e.insertAt)!=null?d:s.ch},o=e.insertSkip?{line:s.line,ch:a.ch+e.insertSkip}:void 0;e.context.editor.replaceRange(e.appendText,a,o),e.context.editor.setCursor({line:s.line,ch:a.ch+e.appendText.length});let l=this.getMarkdownFileInfo(e.context);this.canSaveEdits(l)&&(yield l.save())})}};Ga();var Sx=(n,t)=>{let e,r=new Promise((a,o)=>{e=a});return t(n,a=>{let o=a.map(l=>l.toFileLineString()).join(` -`);e(o)}).open(),r};var Ex=(n,t)=>{let e=Sd({line:"",path:""});return new zi({app:n,task:e,onSubmit:t,allTasks:[]})};var Dx=n=>({createTaskLineModal:()=>Sx(n,Ex),executeToggleTaskDoneCommand:(t,e)=>Uy(t,e).text});Mn();var Of=class extends xx.Plugin{get apiV1(){return Dx(this.app)}onload(){return L(this,null,function*(){yield zb(),rn.registerConsoleLogger(),cy("info",N.t("main.loadingPlugin",{name:this.manifest.name,version:this.manifest.version})),yield this.loadSettings();let{loggingOptions:e}=le();rn.configure(e),this.addSettingTab(new Ru({plugin:this})),WE({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace}),yield this.loadTaskStatuses();let r=new lf({obsidianEvents:this.app.workspace});this.cache=new $s({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace,events:r}),this.inlineRenderer=new _f({plugin:this}),this.queryRenderer=new Ef({plugin:this,events:r}),this.setObsidianPropertiesTypes(),this.registerEditorExtension(ux()),this.registerEditorSuggest(new xf(this.app,le(),this)),new of({plugin:this})})}loadTaskStatuses(){return L(this,null,function*(){let{statusSettings:e}=le();et.applyToStatusRegistry(e,Be.getInstance())})}onunload(){var e;cy("info",N.t("main.unloadingPlugin",{name:this.manifest.name,version:this.manifest.version})),(e=this.cache)==null||e.unload()}loadSettings(){return L(this,null,function*(){let e=yield this.loadData();ft(e),e=le(),Fe.getInstance().set(e.globalFilter),Fe.getInstance().setRemoveGlobalFilter(e.removeGlobalFilter),dr.getInstance().set(e.globalQuery),yield this.loadTaskStatuses()})}saveSettings(){return L(this,null,function*(){yield this.saveData(le())})}getTasks(){return this.cache===void 0?[]:this.cache.getTasks()}setObsidianPropertiesTypes(){var e;try{let r=this.app.metadataTypeManager,i=r.getAllProperties(),s=new Oi;for(let a of s.allPropertyNamesSorted()){let o=s.propertyType(a);((e=i[a])==null?void 0:e.type)!==o&&r.setType(a,o)}}catch(r){console.error("setObsidianPropertiesTypes error",r)}}}; +`;HY(O);return}e.context.editor.replaceRange(f.toFileLineString(),b,T)}else Nn({originalTask:e.taskItDependsOn,newTasks:f})}let s=e.context.editor.getCursor(),a={line:s.line,ch:(d=e.insertAt)!=null?d:s.ch},o=e.insertSkip?{line:s.line,ch:a.ch+e.insertSkip}:void 0;e.context.editor.replaceRange(e.appendText,a,o),e.context.editor.setCursor({line:s.line,ch:a.ch+e.appendText.length});let l=this.getMarkdownFileInfo(e.context);this.canSaveEdits(l)&&(yield l.save())})}};Ga();var Dx=(n,t)=>{let e,r=new Promise((a,o)=>{e=a});return t(n,a=>{let o=a.map(l=>l.toFileLineString()).join(` +`);e(o)}).open(),r};var Ex=(n,t)=>{let e=Sd({line:"",path:""});return new zi({app:n,task:e,onSubmit:t,allTasks:[]})};var xx=n=>({createTaskLineModal:()=>Dx(n,Ex),executeToggleTaskDoneCommand:(t,e)=>Uy(t,e).text});Mn();var Of=class extends Ox.Plugin{get apiV1(){return xx(this.app)}onload(){return F(this,null,function*(){yield zb(),sn.registerConsoleLogger(),cy("info",N.t("main.loadingPlugin",{name:this.manifest.name,version:this.manifest.version})),yield this.loadSettings();let{loggingOptions:e}=le();sn.configure(e),this.addSettingTab(new Ru({plugin:this})),$D({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace}),yield this.loadTaskStatuses();let r=new lf({obsidianEvents:this.app.workspace});this.cache=new $s({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace,events:r}),this.inlineRenderer=new _f({plugin:this}),this.queryRenderer=new Df({plugin:this,events:r}),this.setObsidianPropertiesTypes(),this.registerEditorExtension(cx()),this.registerEditorSuggest(new xf(this.app,le(),this)),new of({plugin:this})})}loadTaskStatuses(){return F(this,null,function*(){let{statusSettings:e}=le();et.applyToStatusRegistry(e,Be.getInstance())})}onunload(){var e;cy("info",N.t("main.unloadingPlugin",{name:this.manifest.name,version:this.manifest.version})),(e=this.cache)==null||e.unload()}loadSettings(){return F(this,null,function*(){let e=yield this.loadData();at(e),e=le(),Fe.getInstance().set(e.globalFilter),Fe.getInstance().setRemoveGlobalFilter(e.removeGlobalFilter),fr.getInstance().set(e.globalQuery),yield this.loadTaskStatuses()})}saveSettings(){return F(this,null,function*(){yield this.saveData(le())})}getTasks(){return this.cache===void 0?[]:this.cache.getTasks()}setObsidianPropertiesTypes(){var e;try{let r=this.app.metadataTypeManager,i=r.getAllProperties(),s=new Oi;for(let a of s.allPropertyNamesSorted()){let o=s.propertyType(a);((e=i[a])==null?void 0:e.type)!==o&&r.setType(a,o)}}catch(r){console.error("setObsidianPropertiesTypes error",r)}}}; /*! * EventEmitter2 * https://github.com/hij1nx/EventEmitter2 diff --git a/.obsidian/plugins/obsidian-tasks-plugin/manifest.json b/.obsidian/plugins/obsidian-tasks-plugin/manifest.json index d355d2c..69ac35a 100644 --- a/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +++ b/.obsidian/plugins/obsidian-tasks-plugin/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tasks-plugin", "name": "Tasks", - "version": "7.18.1", + "version": "7.19.0", "minAppVersion": "1.4.0", "description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.", "helpUrl": "https://publish.obsidian.md/tasks/",