import{inspect as q,parseArgs as yD}from"node:util";var iD=({onlyFirst:u=!1}={})=>{let t="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(t,u?void 0:"g")},FD=iD(),P=u=>u.replace(FD,""),rD=u=>{var t=u.charCodeAt(0),e=u.length==2?u.charCodeAt(1):0,D=t;return 55296<=t&&t<=56319&&56320<=e&&e<=57343&&(t&=1023,e&=1023,D=t<<10|e,D+=65536),D==12288||65281<=D&&D<=65376||65504<=D&&D<=65510?"F":D==8361||65377<=D&&D<=65470||65474<=D&&D<=65479||65482<=D&&D<=65487||65490<=D&&D<=65495||65498<=D&&D<=65500||65512<=D&&D<=65518?"H":4352<=D&&D<=4447||4515<=D&&D<=4519||4602<=D&&D<=4607||9001<=D&&D<=9002||11904<=D&&D<=11929||11931<=D&&D<=12019||12032<=D&&D<=12245||12272<=D&&D<=12283||12289<=D&&D<=12350||12353<=D&&D<=12438||12441<=D&&D<=12543||12549<=D&&D<=12589||12593<=D&&D<=12686||12688<=D&&D<=12730||12736<=D&&D<=12771||12784<=D&&D<=12830||12832<=D&&D<=12871||12880<=D&&D<=13054||13056<=D&&D<=19903||19968<=D&&D<=42124||42128<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||55216<=D&&D<=55238||55243<=D&&D<=55291||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65106||65108<=D&&D<=65126||65128<=D&&D<=65131||110592<=D&&D<=110593||127488<=D&&D<=127490||127504<=D&&D<=127546||127552<=D&&D<=127560||127568<=D&&D<=127569||131072<=D&&D<=194367||177984<=D&&D<=196605||196608<=D&&D<=262141?"W":32<=D&&D<=126||162<=D&&D<=163||165<=D&&D<=166||D==172||D==175||10214<=D&&D<=10221||10629<=D&&D<=10630?"Na":D==161||D==164||167<=D&&D<=168||D==170||173<=D&&D<=174||176<=D&&D<=180||182<=D&&D<=186||188<=D&&D<=191||D==198||D==208||215<=D&&D<=216||222<=D&&D<=225||D==230||232<=D&&D<=234||236<=D&&D<=237||D==240||242<=D&&D<=243||247<=D&&D<=250||D==252||D==254||D==257||D==273||D==275||D==283||294<=D&&D<=295||D==299||305<=D&&D<=307||D==312||319<=D&&D<=322||D==324||328<=D&&D<=331||D==333||338<=D&&D<=339||358<=D&&D<=359||D==363||D==462||D==464||D==466||D==468||D==470||D==472||D==474||D==476||D==593||D==609||D==708||D==711||713<=D&&D<=715||D==717||D==720||728<=D&&D<=731||D==733||D==735||768<=D&&D<=879||913<=D&&D<=929||931<=D&&D<=937||945<=D&&D<=961||963<=D&&D<=969||D==1025||1040<=D&&D<=1103||D==1105||D==8208||8211<=D&&D<=8214||8216<=D&&D<=8217||8220<=D&&D<=8221||8224<=D&&D<=8226||8228<=D&&D<=8231||D==8240||8242<=D&&D<=8243||D==8245||D==8251||D==8254||D==8308||D==8319||8321<=D&&D<=8324||D==8364||D==8451||D==8453||D==8457||D==8467||D==8470||8481<=D&&D<=8482||D==8486||D==8491||8531<=D&&D<=8532||8539<=D&&D<=8542||8544<=D&&D<=8555||8560<=D&&D<=8569||D==8585||8592<=D&&D<=8601||8632<=D&&D<=8633||D==8658||D==8660||D==8679||D==8704||8706<=D&&D<=8707||8711<=D&&D<=8712||D==8715||D==8719||D==8721||D==8725||D==8730||8733<=D&&D<=8736||D==8739||D==8741||8743<=D&&D<=8748||D==8750||8756<=D&&D<=8759||8764<=D&&D<=8765||D==8776||D==8780||D==8786||8800<=D&&D<=8801||8804<=D&&D<=8807||8810<=D&&D<=8811||8814<=D&&D<=8815||8834<=D&&D<=8835||8838<=D&&D<=8839||D==8853||D==8857||D==8869||D==8895||D==8978||9312<=D&&D<=9449||9451<=D&&D<=9547||9552<=D&&D<=9587||9600<=D&&D<=9615||9618<=D&&D<=9621||9632<=D&&D<=9633||9635<=D&&D<=9641||9650<=D&&D<=9651||9654<=D&&D<=9655||9660<=D&&D<=9661||9664<=D&&D<=9665||9670<=D&&D<=9672||D==9675||9678<=D&&D<=9681||9698<=D&&D<=9701||D==9711||9733<=D&&D<=9734||D==9737||9742<=D&&D<=9743||9748<=D&&D<=9749||D==9756||D==9758||D==9792||D==9794||9824<=D&&D<=9825||9827<=D&&D<=9829||9831<=D&&D<=9834||9836<=D&&D<=9837||D==9839||9886<=D&&D<=9887||9918<=D&&D<=9919||9924<=D&&D<=9933||9935<=D&&D<=9953||D==9955||9960<=D&&D<=9983||D==10045||D==10071||10102<=D&&D<=10111||11093<=D&&D<=11097||12872<=D&&D<=12879||57344<=D&&D<=63743||65024<=D&&D<=65039||D==65533||127232<=D&&D<=127242||127248<=D&&D<=127277||127280<=D&&D<=127337||127344<=D&&D<=127386||917760<=D&&D<=917999||983040<=D&&D<=1048573||1048576<=D&&D<=1114109?"A":"N"},sD=()=>/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\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|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\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]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\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]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\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\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;function h(u,t={}){if(typeof u!="string"||u.length===0||(t={ambiguousIsNarrow:!0,...t},u=P(u),u.length===0))return 0;u=u.replace(sD()," ");let e=t.ambiguousIsNarrow?1:2,D=0;for(let n of u){let i=n.codePointAt(0);if(!(!i||i<=31||i>=127&&i<=159||i>=768&&i<=879))switch(rD(n)){case"F":case"W":D+=2;break;case"A":D+=e;break;default:D+=1}}return D}var y={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},jD=Object.keys(y.modifier),CD=Object.keys(y.color),oD=Object.keys(y.bgColor),SD=[...CD,...oD],U=class{},G=new Map,T=u=>Object.fromEntries(Object.entries(u).map(([t,[e,D]])=>(G.set(e,D),[t,U.prototype[t]={open:`\x1B[${e}m`,close:`\x1B[${D}m`}]))),ED=new class extends U{codes=G;modifier=T(y.modifier);color={...T(y.color),close:"\x1B[39m",ansi:u=>`\x1B[${u}m`,ansi256:u=>`\x1B[38;5;${u}m`,ansi16m:(u,t,e)=>`\x1B[38;2;${u};${t};${e}m`};bgColor={...T(y.bgColor),close:"\x1B[49m",ansi:u=>`\x1B[${u+10}m`,ansi256:u=>`\x1B[48;5;${u}m`,ansi16m:(u,t,e)=>`\x1B[48;2;${u};${t};${e}m`};rgbToAnsi256(u,t,e){return u===t&&t===e?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(t/255*5)+Math.round(e/255*5)}hexToRgb(u){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!t)return[0,0,0];let[e]=t;e.length===3&&(e=[...e].map(n=>n+n).join(""));let D=Number.parseInt(e,16);return[D>>16&255,D>>8&255,D&255]}hexToAnsi256(u){return this.rgbToAnsi256(...this.hexToRgb(u))}ansi256ToAnsi(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let t,e,D;if(u>=232)t=((u-232)*10+8)/255,e=t,D=t;else{u-=16;let r=u%36;t=Math.floor(u/36)/5,e=Math.floor(r/6)/5,D=r%6/5}let n=Math.max(t,e,D)*2;if(n===0)return 30;let i=30+(Math.round(D)<<2|Math.round(e)<<1|Math.round(t));return n===2&&(i+=60),i}rgbToAnsi(u,t,e){return this.ansi256ToAnsi(this.rgbToAnsi256(u,t,e))}hexToAnsi(u){return this.ansi256ToAnsi(this.hexToAnsi256(u))}},j=new Set(["\x1B","\x9B"]),aD=39,M="\x07",_="[",lD="]",H="m",N=`${lD}8;;`,R=u=>`${j.values().next().value}${_}${u}${H}`,V=u=>`${j.values().next().value}${N}${u}${M}`,dD=u=>u.split(" ").map(t=>h(t)),k=(u,t,e)=>{let D=[...t],n=!1,i=!1,r=h(P(String(u[u.length-1])));for(let[F,s]of D.entries()){let C=h(s);if(r+C<=e?u[u.length-1]+=s:(u.push(s),r=0),j.has(s)&&(n=!0,i=D.slice(F+1).join("").startsWith(N)),n){i?s===M&&(n=!1,i=!1):s===H&&(n=!1);continue}r+=C,r===e&&F0&&u.length>1&&(u[u.length-2]=String(u[u.length-1])+u.pop())},hD=u=>{let t=u.split(" "),e=t.length;for(;e>0&&!(h(String(t[e-1]))>0);)e--;return e===t.length?u:t.slice(0,e).join(" ")+t.slice(e).join("")},pD=(u,t,e={})=>{if(e.trim!==!1&&u.trim()==="")return"";let D="",n,i,r=dD(u),F=[""];for(let[C,o]of u.split(" ").entries()){e.trim!==!1&&(F[F.length-1]=String(F[F.length-1]).trimStart());let E=h(String(F[F.length-1]));C!==0&&(E>=t&&(e.wordWrap===!1||e.trim===!1)&&(F.push(""),E=0),(E>0||e.trim===!1)&&(F[F.length-1]+=" ",E++));let l=Number(r[C]);if(e.hard&&l>t){let p=t-E,c=1+Math.floor((l-p-1)/t);Math.floor((l-1)/t)t&&E>0&&l>0){if(e.wordWrap===!1&&Et&&e.wordWrap===!1){k(F,o,t);continue}F[F.length-1]+=o}e.trim!==!1&&(F=F.map(C=>hD(C)));let s=[...F.join(` `)];for(let[C,o]of s.entries()){if(D+=o,j.has(o)){let{groups:l}=new RegExp(`(?:\\${_}(?\\d+)m|\\${N}(?.*)${M})`).exec(s.slice(C).join(""))||{groups:{}};if(l.code!==void 0){let p=Number.parseFloat(l.code);n=p===aD?void 0:p}else l.uri!==void 0&&(i=l.uri.length===0?void 0:l.uri)}let E=ED.codes.get(Number(n));s[C+1]===` `?(i&&(D+=V("")),n&&E&&(D+=R(E))):o===` `&&(n&&E&&(D+=R(n)),i&&(D+=V(i)))}return D},BD=(u,t,e)=>String(u).normalize().replace(/\r\n/g,` `).split(` `).map(D=>pD(D,t,e)).join(` `),cD={right:(u,t)=>`${" ".repeat(Math.max(0,t-h(u)))}${u}`,center:(u,t)=>`${" ".repeat(Math.max(0,t-h(u))>>1)}${u}`},fD=0,$=1,gD=2,x=3,AD=class{width;wrap;rows;constructor(u){this.width=u.width,this.wrap=u.wrap??!0,this.rows=[]}span(...u){let t=this.div(...u);t.span=!0}resetOutput(){this.rows=[]}div(...u){if(u.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...u)&&typeof u[0]=="string")return this.applyLayoutDSL(u[0]);let t=Object.assign(u.map(e=>typeof e=="string"?this.colFromString(e):e),{span:!1});return this.rows.push(t),t}shouldApplyLayoutDSL(...u){return u.length===1&&typeof u[0]=="string"&&/[\t\n]/.test(u[0])}applyLayoutDSL(u){let t=u.split(` `).map(n=>n.split(" ")),e=0;t.forEach(n=>{n.length>1&&h(String(n[0]))>e&&(e=Math.min(Math.floor(this.width*.5),h(String(n[0]))))}),t.forEach(n=>{this.div(...n.map((i,r)=>({text:i.trim(),padding:this.measurePadding(i),width:r===0&&n.length>1?e:void 0})))});let D=this.rows[this.rows.length-1];if(!D)throw new Error("no rows found");return D}colFromString(u){return{text:u,padding:this.measurePadding(u)}}measurePadding(u){let t=P(u),[e="",D=""]=[t.match(/\s*$/)?.[0],t.match(/^\s*/)?.[0]];return[0,e.length,0,D.length]}toString(){let u=[];return this.rows.forEach(t=>{this.rowToString(t,u)}),u.filter(t=>!t.hidden).map(t=>t.text).join(` `)}rowToString(u,t){return this.rasterize(u).forEach((e,D)=>{let n="";e.forEach((i,r)=>{let F=u[r],{width:s}=F,C=this.negatePadding(F),o=i;if(C>h(i)&&(o+=" ".repeat(C-h(i))),F.align&&F.align!=="left"&&this.wrap){let l=cD[F.align];if(o=l(o.trim(),C),h(o)0){let l=t[t.length-1];if(!l)throw new Error("last line not found");n=this.renderInline(n,l)}}),t.push({text:n.replace(/ +$/,""),span:u.span})}),t}renderInline(u,t){let e=u.match(/^ */),D=e?e[0].length:0,n=t.text,i=h(n.trimEnd());return t.span?this.wrap?D{n.width=e[i],this.wrap?D=BD(n.text,this.negatePadding(n),{hard:!0}).split(` `):D=n.text.split(` `),n.border&&(D.unshift("."+"-".repeat(this.negatePadding(n)+2)+"."),D.push("'"+"-".repeat(this.negatePadding(n)+2)+"'")),n.padding&&(D.unshift(...new Array(n.padding[fD]||0).fill("")),D.push(...new Array(n.padding[gD]||0).fill(""))),D.forEach((r,F)=>{t[F]||t.push([]);let s=t[F]??[];for(let C=0;Ci.width||h(i.text));let t=u.length,e=this.width,D=u.map(i=>{if(i.width)return t--,e-=i.width,i.width}),n=t?Math.floor(e/t):0;return D.map((i,r)=>{if(i===void 0){let F=u[r]??{text:"",padding:[]};return Math.max(n,mD(F))}return i})}},Z=(u,t,e)=>u.border?/[.']-+[.']/.test(t)?"":t.trim().length!==0?e:" ":"",mD=u=>{let t=u.padding||[],e=1+(t[x]||0)+(t[$]||0);return u.border?e+4:e},wD=()=>typeof process=="object"&&process.stdout&&process.stdout.columns?process.stdout.columns:80,Y=(u={})=>new AD({width:u?.width||wD(),wrap:u?.wrap});import{basename as Q}from"node:path";var uD=u=>typeof u=="string"&&(u==="string"||u==="number"||u==="boolean"),O=(u,t,e)=>e?Array.isArray(u)?!u.some(D=>!O(D,t,!1)):!1:Array.isArray(u)?!1:typeof u===t,W=(u,t)=>!!t&&(Array.isArray(u)?u.every(e=>W(e,t)):t.includes(u)),g=(u,t,e)=>!!u&&typeof u=="object"&&"type"in u&&uD(u.type)&&u.type===t&&!!u.multiple===e,b=(u,t,e)=>g(u,t,e)&&S(u.short,"string")&&S(u.description,"string")&&S(u.hint,"string")&&S(u.validate,"function")&&(u.type==="boolean"?u.validOptions===void 0:nD(u.validOptions,u.type))&&(u.default===void 0||O(u.default,t,e)),K=u=>u.type==="heading",X=u=>u.type==="description",I=Math.min(process?.stdout?.columns??80,80),J=u=>(u-1)*2,DD=(u,t)=>[u,t.replace(/[^a-zA-Z0-9]+/g," ")].join(" ").trim().toUpperCase().replace(/ /g,"_"),tD=(u,t=` `)=>{let e=typeof u=="string"?u:typeof u=="boolean"?u?"1":"0":typeof u=="number"?String(u):Array.isArray(u)?u.map(D=>tD(D)).join(t):void 0;if(typeof e!="string")throw new Error(`could not serialize value to environment: ${JSON.stringify(u)}`,{cause:{code:"JACKSPEAK"}});return e},eD=(u,t,e,D=` `)=>e?u?u.split(D).map(n=>eD(n,t,!1)):[]:t==="string"?u:t==="boolean"?u==="1":+u.trim(),S=(u,t)=>u===void 0||typeof u===t,nD=(u,t)=>u===void 0||Array.isArray(u)&&u.every(e=>typeof e===t),m=u=>typeof u=="string"?"string":typeof u=="boolean"?"boolean":typeof u=="number"?"number":Array.isArray(u)?`${bD([...new Set(u.map(t=>m(t)))])}[]`:`${u.type}${u.multiple?"[]":""}`,bD=u=>u.length===1&&typeof u[0]=="string"?u[0]:`(${u.join("|")})`,vD=(u,t)=>{if(t){if(u.type!==void 0&&u.type!==t.type)throw new TypeError("invalid type",{cause:{found:u.type,wanted:[t.type,void 0]}});if(u.multiple!==void 0&&!!u.multiple!==t.multiple)throw new TypeError("invalid multiple",{cause:{found:u.multiple,wanted:[t.multiple,void 0]}});return t}if(!uD(u.type))throw new TypeError("invalid type",{cause:{found:u.type,wanted:["string","number","boolean"]}});return{type:u.type,multiple:!!u.multiple}},$D=(u,t,e)=>{let D=(n,i)=>{if(!nD(i,t))throw new TypeError("invalid validOptions",{cause:{found:i,wanted:m({type:t,multiple:!0})}});if(n!==void 0&&i!==void 0&&!(Array.isArray(n)?n.every(F=>i.includes(F)):i.includes(n)))throw new TypeError("invalid default value not in validOptions",{cause:{found:n,wanted:i}})};if(u.default!==void 0&&!O(u.default,t,e))throw new TypeError("invalid default value",{cause:{found:u.default,wanted:m({type:t,multiple:e})}});if(g(u,"number",!1)||g(u,"number",!0))D(u.default,u.validOptions);else if(g(u,"string",!1)||g(u,"string",!0))D(u.default,u.validOptions);else if(g(u,"boolean",!1)||g(u,"boolean",!0)){if(u.hint!==void 0)throw new TypeError("cannot provide hint for flag");if(u.validOptions!==void 0)throw new TypeError("cannot provide validOptions for flag")}return u},xD=u=>Object.entries(u).reduce((t,[e,D])=>{let n={type:"string",multiple:!!D.multiple,...typeof D.short=="string"?{short:D.short}:void 0},i=()=>{!e.startsWith("no-")&&!u[`no-${e}`]&&(t[`no-${e}`]={type:"boolean",multiple:!!D.multiple})},r=(F,s)=>{F!==void 0&&(n.default=s(F))};return b(D,"number",!1)?r(D.default,String):b(D,"number",!0)?r(D.default,F=>F.map(s=>String(s))):b(D,"string",!1)||b(D,"string",!0)?r(D.default,F=>F):(b(D,"boolean",!1)||b(D,"boolean",!0))&&(n.type="boolean",r(D.default,F=>F),i()),t[e]=n,t},{}),z=class{#D;#e;#u;#t=[];#F;#i;#C;#r;#s;constructor(t={}){this.#u=t,this.#C=t.allowPositionals!==!1,this.#F=this.#u.env===void 0?process.env:this.#u.env,this.#i=t.envPrefix,this.#D=Object.create(null),this.#e=Object.create(null)}get definitions(){return this.#D}get shorts(){return this.#e}get jackOptions(){return this.#u}get usageFields(){return this.#t}setConfigValues(t,e=""){try{this.validate(t)}catch(D){if(e&&D instanceof Error){let n=typeof D.cause=="object"?D.cause:{};D.cause={...n,path:e},Error.captureStackTrace(D,this.setConfigValues)}throw D}for(let[D,n]of Object.entries(t)){let i=this.#D[D];if(!i)throw new Error("unexpected field in config set: "+D,{cause:{code:"JACKSPEAK",found:D}});i.default=n}return this}parse(t=process.argv){this.loadEnvDefaults();let e=this.parseRaw(t);return this.applyDefaults(e),this.writeEnv(e),e}loadEnvDefaults(){if(this.#i)for(let[t,e]of Object.entries(this.#D)){let D=DD(this.#i,t),n=this.#F[D];n!==void 0&&(e.default=eD(n,e.type,!!e.multiple,e.delim))}}applyDefaults(t){for(let[e,D]of Object.entries(this.#D))D.default!==void 0&&!(e in t.values)&&(t.values[e]=D.default)}parseRaw(t){t===process.argv&&(t=t.slice(process._eval!==void 0?1:2));let e=yD({args:t,options:xD(this.#D),strict:!1,allowPositionals:this.#C,tokens:!0}),D={values:{},positionals:[]};for(let n of e.tokens)if(n.kind==="positional"){if(D.positionals.push(n.value),this.#u.stopAtPositional||this.#u.stopAtPositionalTest?.(n.value)){D.positionals.push(...t.slice(n.index+1));break}}else if(n.kind==="option"){let i;if(n.name.startsWith("no-")){let F=this.#D[n.name],s=n.name.substring(3),C=this.#D[s];C&&C.type==="boolean"&&(!F||F.type==="boolean"&&!!F.multiple==!!C.multiple)&&(i=!1,n.name=s)}let r=this.#D[n.name];if(!r)throw new Error(`Unknown option '${n.rawName}'. To specify a positional argument starting with a '-', place it at the end of the command after '--', as in '-- ${n.rawName}'`,{cause:{code:"JACKSPEAK",found:n.rawName+(n.value?`=${n.value}`:"")}});if(i===void 0)if(n.value===void 0){if(r.type!=="boolean")throw new Error(`No value provided for ${n.rawName}, expected ${r.type}`,{cause:{code:"JACKSPEAK",name:n.rawName,wanted:m(r)}});i=!0}else{if(r.type==="boolean")throw new Error(`Flag ${n.rawName} does not take a value, received '${n.value}'`,{cause:{code:"JACKSPEAK",found:n}});if(r.type==="string")i=n.value;else if(i=+n.value,i!==i)throw new Error(`Invalid value '${n.value}' provided for '${n.rawName}' option, expected number`,{cause:{code:"JACKSPEAK",name:n.rawName,found:n.value,wanted:"number"}})}if(r.multiple){let F=D.values,s=F[n.name]??[];F[n.name]=s,s.push(i)}else{let F=D.values;F[n.name]=i}}for(let[n,i]of Object.entries(D.values)){let r=this.#D[n]?.validate,F=this.#D[n]?.validOptions,s=F&&!W(i,F)?{name:n,found:i,validOptions:F}:r&&!r(i)?{name:n,found:i}:void 0;if(s)throw new Error(`Invalid value provided for --${n}: ${JSON.stringify(i)}`,{cause:{...s,code:"JACKSPEAK"}})}return D}#o(t,e,D=t){if(!t.startsWith("no-")||typeof e!="boolean")return;let n=t.substring(3);if(this.#o(n,e,D),this.#D[n]?.type==="boolean")throw new Error(`do not set '${D}', instead set '${n}' as desired.`,{cause:{code:"JACKSPEAK",found:D,wanted:n}})}validate(t){if(!t||typeof t!="object")throw new Error("Invalid config: not an object",{cause:{code:"JACKSPEAK",found:t}});let e=t;for(let D in t){let n=e[D];if(n===void 0)continue;this.#o(D,n);let i=this.#D[D];if(!i)throw new Error(`Unknown config option: ${D}`,{cause:{code:"JACKSPEAK",found:D}});if(!O(n,i.type,!!i.multiple))throw new Error(`Invalid value ${m(n)} for ${D}, expected ${m(i)}`,{cause:{code:"JACKSPEAK",name:D,found:n,wanted:m(i)}});let r=i.validOptions&&!W(n,i.validOptions)?{name:D,found:n,validOptions:i.validOptions}:i.validate&&!i.validate(n)?{name:D,found:n}:void 0;if(r)throw new Error(`Invalid config value for ${D}: ${JSON.stringify(n)}`,{cause:{...r,code:"JACKSPEAK"}})}}writeEnv(t){if(!(!this.#F||!this.#i))for(let[e,D]of Object.entries(t.values)){let n=this.#D[e];this.#F[DD(this.#i,e)]=tD(D,n?.delim)}}heading(t,e,{pre:D=!1}={}){return e===void 0&&(e=this.#t.some(n=>K(n))?2:1),this.#t.push({type:"heading",text:t,level:e,pre:D}),this}description(t,{pre:e}={}){return this.#t.push({type:"description",text:t,pre:e}),this}num(t){return this.#n(t,"number",!1)}numList(t){return this.#n(t,"number",!0)}opt(t){return this.#n(t,"string",!1)}optList(t){return this.#n(t,"string",!0)}flag(t){return this.#n(t,"boolean",!1)}flagList(t){return this.#n(t,"boolean",!0)}addFields(t){return this.#E(this,t)}#n(t,e,D){return this.#E(this,t,{type:e,multiple:D})}#E(t,e,D){return Object.assign(t.#D,Object.fromEntries(Object.entries(e).map(([n,i])=>{this.#l(n,i);let{type:r,multiple:F}=vD(i,D),s={...i,type:r,multiple:F};return $D(s,r,F),t.#t.push({type:"config",name:n,value:s}),[n,s]}))),t}#l(t,e){if(!/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(t))throw new TypeError(`Invalid option name: ${t}, must be '-' delimited ASCII alphanumeric`);if(this.#D[t])throw new TypeError(`Cannot redefine option ${t}`);if(this.#e[t])throw new TypeError(`Cannot redefine option ${t}, already in use for ${this.#e[t]}`);if(e.short){if(!/^[a-zA-Z0-9]$/.test(e.short))throw new TypeError(`Invalid ${t} short option: ${e.short}, must be 1 ASCII alphanumeric character`);if(this.#e[e.short])throw new TypeError(`Invalid ${t} short option: ${e.short}, already in use for ${this.#e[e.short]}`);this.#e[e.short]=t,this.#e[t]=t}}usage(){if(this.#r)return this.#r;let t=1,e=Y({width:I}),D=this.#t[0],n=D?.type==="heading"?1:0;if(D?.type==="heading"&&e.div({padding:[0,0,0,0],text:A(D.text)}),e.div({padding:[0,0,0,0],text:"Usage:"}),this.#u.usage)e.div({text:this.#u.usage,padding:[0,0,0,2]});else{let s=Q(String(process.argv[1])),C=[],o=[],E=[],l=[];for(let[a,B]of Object.entries(this.#D))B.short?B.type==="boolean"?C.push(B.short):o.push([B.short,B.hint||a]):B.type==="boolean"?E.push(a):l.push([a,B.hint||a]);let p=C.length?" -"+C.join(""):"",c=o.map(([a,B])=>` --${a}=<${B}>`).join(""),w=E.map(a=>` --${a}`).join(""),f=l.map(([a,B])=>` --${a}=<${B}>`).join(""),d=`${s}${p}${c}${w}${f}`.trim();e.div({text:d,padding:[0,0,0,2]})}e.div({padding:[0,0,0,0],text:""});let i=this.#t[n];if(i&&X(i)){let s=A(i.text,i.pre);n++,e.div({padding:[0,0,0,0],text:s}),e.div({padding:[0,0,0,0],text:""})}let{rows:r,maxWidth:F}=this.#a(n);for(let s of r)if(s.left){let C=J(Math.max(t,2));s.left.length>F-3?(e.div({text:s.left,padding:[0,0,0,C]}),e.div({text:s.text,padding:[0,0,0,F]})):e.div({text:s.left,padding:[0,1,0,C],width:F},{padding:[0,0,0,0],text:s.text}),s.skipLine&&e.div({padding:[0,0,0,0],text:""})}else if(K(s)){let{level:C}=s;t=C;let o=C<=2?1:0;e.div({...s,padding:[0,0,o,J(C)]})}else e.div({...s,padding:[0,0,1,J(t+1)]});return this.#r=e.toString()}usageMarkdown(){if(this.#s)return this.#s;let t=[],e=1,D=this.#t[0],n=D?.type==="heading"?1:0;if(D?.type==="heading"&&t.push(`# ${L(D.text)}`),t.push("Usage:"),this.#u.usage)t.push(v(this.#u.usage,!0));else{let F=Q(String(process.argv[1])),s=[],C=[],o=[],E=[];for(let[d,a]of Object.entries(this.#D))a.short?a.type==="boolean"?s.push(a.short):C.push([a.short,a.hint||d]):a.type==="boolean"?o.push(d):E.push([d,a.hint||d]);let l=s.length?" -"+s.join(""):"",p=C.map(([d,a])=>` --${d}=<${a}>`).join(""),c=o.map(d=>` --${d}`).join(""),w=E.map(([d,a])=>` --${d}=<${a}>`).join(""),f=`${F}${l}${p}${c}${w}`.trim();t.push(v(f,!0))}let i=this.#t[n];i&&X(i)&&(t.push(v(i.text,i.pre)),n++);let{rows:r}=this.#a(n);for(let F of r)if(F.left)t.push("#".repeat(e+1)+" "+L(F.left,!0)),F.text&&t.push(v(F.text));else if(K(F)){let{level:s}=F;e=s,t.push(`${"#".repeat(e)} ${L(F.text,F.pre)}`)}else t.push(v(F.text,!!F.pre));return this.#s=t.join(` `)+` `}#a(t){let e=Math.max(12,Math.min(26,Math.floor(I/3))),D=8,n,i=[];for(let r of this.#t.slice(t)){if(r.type!=="config"){n?.type==="config"&&(n.skipLine=!0),n=void 0,r.text=A(r.text,!!r.pre),i.push(r);continue}let{value:F}=r,s=F.description||"",C=F.multiple?"Can be set multiple times":"",o=F.validOptions?.length?"Valid options: "+F.validOptions.map(B=>JSON.stringify(B)).join(", "):"",E=s.includes(` `)?` `:` `,l=[o,C].join(E).trim(),p=(A(s)+E+l).trim(),c=F.hint||(F.type==="number"?"n":F.type==="string"?r.name:void 0),w=F.short?F.type==="boolean"?`-${F.short} `:`-${F.short}<${c}> `:"",f=F.type==="boolean"?`${w}--${r.name}`:`${w}--${r.name}=<${c}>`,d={text:p,left:f,type:"config"};p.length>I-e&&(d.skipLine=!0),n&&f.length>e&&(n.skipLine=!0),n=d;let a=f.length+4;a>D&&a[t,{type:e.type,...e.multiple?{multiple:!0}:{},...e.delim?{delim:e.delim}:{},...e.short?{short:e.short}:{},...e.description?{description:A(e.description)}:{},...e.validate?{validate:e.validate}:{},...e.validOptions?{validOptions:e.validOptions}:{},...e.default!==void 0?{default:e.default}:{},...e.hint?{hint:e.hint}:{}}]))}[q.custom](t,e){return`Jack ${q(this.toJSON(),e)}`}},ID=(u={})=>new z(u),A=(u,t=!1)=>t?u.split(` `).map(e=>`\u200B${e}`).join(` `):u.split(/^\s*```\s*$/gm).map((e,D)=>{if(D%2===1){if(!e.trim())return"```\n```\n";let n=e.split(` `);n.pop(),n.shift();let i=n.reduce((F,s)=>{let C=s.match(/^\s*/)?.[0]??"";return C.length?Math.min(C.length,F):F},1/0),r=isFinite(i)?i:0;return"\n```\n"+n.map(F=>`\u200B${F.substring(r)}`).join(` `)+"\n```\n"}return e.replace(/([^\n])\n[ \t]*([^\n])/g,(n,i,r)=>/^[-*]/.test(r)?`${i} ${r}`:`${i} ${r}`).replace(/([^\n])[ \t]+([^\n])/g,"$1 $2").replace(/\n{3,}/g,` `).replace(/\n[ \t]+/g,` `).trim()}).join(` `),v=(u,t=!1)=>{let e=A(u,t).replace(/\\/g,"\\\\");return t?`\`\`\` ${e.replace(/\u200b/g,"")} \`\`\``:e.replace(/\n +/g,` `).trim()},L=(u,t=!1)=>{let e=A(u,t).replace(/[\s\u200b]+/g," ").trim();return t?`\`${e}\``:e};export{z as Jack,b as isConfigOption,g as isConfigOptionOfType,uD as isConfigType,ID as jack}; //# sourceMappingURL=index.min.js.map