[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"i-lucide:chevron-down":3,"i-lucide:equal":8,"i-simple-icons:github":10,"i-brand:linkedin":12,"i-simple-icons:medium":16,"i-lucide:sun":18,"home":20,"i-simple-icons:x":1475,"i-lucide:mail":1477,"contributions":1479,"open-source":1528,"i-lucide:wrench":1830,"i-simple-icons:raspberrypi":1832,"i-simple-icons:cursor":1834,"i-simple-icons:nestjs":1836,"i-simple-icons:vuedotjs":1838,"i-simple-icons:nuxt":1840,"i-simple-icons:tailwindcss":1842,"i-simple-icons:mysql":1844,"i-simple-icons:postgresql":1846,"i-simple-icons:redis":1848,"i-simple-icons:amazonwebservices":1850,"i-simple-icons:digitalocean":1852,"i-simple-icons:cloudflare":1854,"i-simple-icons:docker":1856,"i-lucide:workflow":1858,"i-simple-icons:javascript":1860,"i-simple-icons:laravel":1862,"i-simple-icons:apple":1864,"i-simple-icons:phpstorm":1866,"i-simple-icons:iterm2":1868,"i-simple-icons:notion":1870,"i-simple-icons:claude":1872,"i-simple-icons:googlechrome":1874},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 9h14M5 15h14\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":4,"top":13,"width":14,"height":14,"rotate":4,"vFlip":6,"hFlip":6,"body":15},32,448,"\u003Cpath fill=\"currentColor\" d=\"M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M4.21 0A4.2 4.2 0 0 0 0 4.21v15.58A4.2 4.2 0 0 0 4.21 24h15.58A4.2 4.2 0 0 0 24 19.79v-1.093a5 5 0 0 1-.422.02c-2.577 0-4.027-2.146-4.09-4.832a8 8 0 0 1 .022-.708c.093-1.186.475-2.241 1.105-3.022a3.9 3.9 0 0 1 1.395-1.1c.468-.237 1.127-.367 1.664-.367h.023q.151 0 .303.01V4.211A4.2 4.2 0 0 0 19.79 0Zm.198 5.583h4.165l3.588 8.435l3.59-8.435h3.864v.146l-.019.004c-.705.16-1.063.397-1.063 1.254h-.003l.003 10.274c.06.676.424.885 1.063 1.03l.02.004v.145h-4.923v-.145l.019-.005c.639-.144.994-.353 1.054-1.03V7.267l-4.745 11.15h-.261L6.15 7.569v9.445c0 .857.358 1.094 1.063 1.253l.02.004v.147H4.405v-.147l.019-.004c.705-.16 1.065-.397 1.065-1.253V6.987c0-.857-.358-1.094-1.064-1.254l-.018-.004zm19.25 3.668c-1.086.023-1.733 1.323-1.813 3.124H24V9.298a1.4 1.4 0 0 0-.342-.047m-1.862 3.632c-.1 1.756.86 3.239 2.204 3.634v-3.634z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"work":21,"stack":143,"articles":262,"desk":1444},[22,55,84,109,126],{"id":23,"title":24,"context":25,"description":26,"extension":27,"highlight":28,"links":32,"mark":36,"meta":38,"order":31,"stem":39,"tags":40,"year":53,"__hash__":54},"projects\u002Fprojects\u002Fwinch.yml","WINCH · Business and carrier platforms","Senior Software Engineer · Feb 2023 – now","APIs for WINCH's business app and Business Sector dashboard, and for its carriers app and Carriers dashboard. Behind them sit the components every product shares: security, notifications, and an integration engine for government platforms such as Tamm, Yaqeen and ZATCA, payment gateways and AI models. The back end follows a Domain-Driven Design structure, and the AI agents and skills the engineers code with keep new work inside it.","yml",{"title":24,"description":29,"period":30,"order":31},"The APIs behind the business and carrier apps and dashboards, plus the security, notification and integration components every product relies on.","2023 – now",1,[33],{"label":34,"to":35},"winch.sa","https:\u002F\u002Fwinch.sa\u002F",{"logo":37},"winch",{},"projects\u002Fwinch",[41,44,47,49,51],{"label":42,"icon":43},"Laravel","simple-icons:laravel",{"label":45,"icon":46},"Vue","simple-icons:vuedotjs",{"label":48},"DDD",{"label":50},"Integrations",{"label":52},"AI agents",2023,"7jufc-90q68W9CtuduOj2Y5pTi0148HbP69Q73CReUI",{"id":56,"title":57,"context":58,"description":59,"extension":27,"highlight":60,"links":65,"mark":69,"meta":71,"order":31,"stem":72,"tags":73,"year":82,"__hash__":83},"projects\u002Fprojects\u002Frunarks.yml","Runarks · Governed access to production databases","Founder · Aug 2026 – now","A SaaS that puts every query against a production database through review. Each statement is read for what it does before anyone approves it; reads need one approval and writes two by default, adjustable per project, and nobody approves their own request. The person who asked runs it once, sensitive fields are masked before results leave, DROP and TRUNCATE never run, and every step lands in an append-only log. Nobody is shown a database password.",{"title":61,"description":62,"period":63,"order":64},"Runarks · Governed database access","Every query against production is reviewed, approved, run once and logged, with sensitive fields masked and no shared passwords.","2026 – now",2,[66],{"label":67,"to":68},"runarks.com","https:\u002F\u002Frunarks.com\u002F",{"logo":70},"runarks",{},"projects\u002Frunarks",[74,75,76,79,80],{"label":42,"icon":43},{"label":45,"icon":46},{"label":77,"icon":78},"Inertia.js","simple-icons:inertia",{"label":48},{"label":81},"Security",2026,"gKIp9OiTFJbhYfKpSfb_ng7W3b0TBDmhmJmBK5TD6PI",{"id":85,"title":86,"context":87,"description":88,"extension":27,"highlight":89,"links":93,"mark":97,"meta":99,"order":31,"stem":100,"tags":101,"year":107,"__hash__":108},"projects\u002Fprojects\u002Fsanad.yml","Sanad · Real-estate financing platform","Full-stack engineer · May 2024 – May 2025","An investment platform for real-estate financing, with its admin dashboard. Investors verify their identity through Absher, invest from a wallet, and receive their profits and returns. The money flows sit on a Domain-Driven Design core, so every financial transaction stays consistent.",{"title":86,"description":90,"period":91,"order":92},"Investors verify their identity through Absher, invest from a wallet and receive their returns.","2024 – 2025",3,[94],{"label":95,"to":96},"investsanad.sa","https:\u002F\u002Finvestsanad.sa\u002F",{"logo":98},"sanad",{},"projects\u002Fsanad",[102,103,104,105],{"label":42,"icon":43},{"label":45,"icon":46},{"label":48},{"label":106},"Payments",2024,"zbMAPxAb4cxgoWLQc3FS9zn3GXKOJdbIpoVXIiUwVsc",{"id":110,"title":111,"context":112,"description":113,"extension":27,"highlight":114,"links":118,"mark":119,"meta":121,"order":31,"stem":122,"tags":123,"year":124,"__hash__":125},"projects\u002Fprojects\u002Fworkshop-management.yml","Vehicle inspection & maintenance","Faris Petrol · May 2021 – Dec 2022","The inspection and maintenance system for the company's workshops. Technicians record every check, from oils and filters to battery and tyres, and supervisors follow each branch and technician on one dashboard. It handled thousands of inspections a month across several branches.",{"title":111,"description":115,"period":116,"order":117},"Thousands of inspections a month across Faris Petrol's workshops, with a dashboard for every branch, technician and supervisor.","2021 – 2022",4,[],{"icon":120},"lucide:wrench",{},"projects\u002Fworkshop-management",[],2021,"gkvq8WeGU1B5Kx5WmNKQM5b1RXnKqUzrr1lYU6fnq8o",{"id":127,"title":128,"context":129,"description":130,"extension":27,"highlight":131,"links":135,"mark":136,"meta":138,"order":31,"stem":139,"tags":140,"year":141,"__hash__":142},"projects\u002Fprojects\u002Fwash-pump-reservations.yml","IoT wash stations","Faris Petrol · Dec 2022 – Jan 2023","Raspberry Pi controllers that switch vehicle wash pumps on and off at several stations, driven by a web booking system built with Laravel, Vue and Python.",{"title":128,"description":132,"period":133,"order":134},"Raspberry Pi controllers that switch wash pumps on and off from web bookings at several stations.","2022",5,[],{"icon":137},"simple-icons:raspberrypi",{},"projects\u002Fwash-pump-reservations",[],2022,"bb3gGIEzK7FgLyI0v6PjYDHIgBooyZeOmDzd_-9eu6o",[144,154,163,170,177,184,192,201,208,216,223,231,239,247,254],{"id":145,"extension":27,"group":146,"home":147,"icon":148,"meta":149,"name":150,"order":31,"stem":151,"url":152,"__hash__":153},"technologies\u002Ftechnologies\u002Faws.yml","DevOps",true,"simple-icons:amazonwebservices",{},"AWS","technologies\u002Faws","https:\u002F\u002Faws.amazon.com\u002F","WLG130PrbQR-RxdM7pZGOcisqcDXD6VQkpSJTXLgjWs",{"id":155,"extension":27,"group":156,"home":147,"icon":157,"meta":158,"name":159,"order":31,"stem":160,"url":161,"__hash__":162},"technologies\u002Ftechnologies\u002Fclaude-code.yml","AI & agents","simple-icons:claude",{},"Claude Code","technologies\u002Fclaude-code",null,"t1qVANhTxuKSGZRJTjeWOKwAZIVVAnQ93gDFIAwgfs0",{"id":164,"extension":27,"group":165,"home":147,"icon":43,"meta":166,"name":42,"order":31,"stem":167,"url":168,"__hash__":169},"technologies\u002Ftechnologies\u002Flaravel.yml","Back end",{},"technologies\u002Flaravel","https:\u002F\u002Flaravel.com\u002F","WouUBdPSq8S940XKPfkRU_Ekm3ub_zBIm1ITQkeEoRQ",{"id":171,"extension":27,"group":172,"home":147,"icon":46,"meta":173,"name":45,"order":31,"stem":174,"url":175,"__hash__":176},"technologies\u002Ftechnologies\u002Fvuejs.yml","Front end",{},"technologies\u002Fvuejs","https:\u002F\u002Fvuejs.org","vDgM9VMEiaTQwGB4dxNS2q6Dj4jaWOix4-a6mmIkb_E",{"id":178,"extension":27,"group":156,"home":147,"icon":179,"meta":180,"name":181,"order":64,"stem":182,"url":161,"__hash__":183},"technologies\u002Ftechnologies\u002Fcursor.yml","simple-icons:cursor",{},"Cursor","technologies\u002Fcursor","uqtMCzPiR7yOXlntHkjgopi9F8OQ_kk0UA145mlfbV4",{"id":185,"extension":27,"group":146,"home":147,"icon":186,"meta":187,"name":188,"order":64,"stem":189,"url":190,"__hash__":191},"technologies\u002Ftechnologies\u002Fdigitalocean.yml","simple-icons:digitalocean",{},"DigitalOcean","technologies\u002Fdigitalocean","https:\u002F\u002Fwww.digitalocean.com\u002F","bE5oKTEo06agAANinoiaNO1u49djlU7y6Dn5jvK7viY",{"id":193,"extension":27,"group":194,"home":147,"icon":195,"meta":196,"name":197,"order":64,"stem":198,"url":199,"__hash__":200},"technologies\u002Ftechnologies\u002Fmysql.yml","Data","simple-icons:mysql",{},"MySQL","technologies\u002Fmysql","https:\u002F\u002Fwww.mysql.com\u002F","xa8cnCfmZQ-_HMVgjofyKbKbD46vrLRpoiGNQgnMVLQ",{"id":202,"extension":27,"group":165,"home":147,"icon":203,"meta":204,"name":205,"order":64,"stem":206,"url":161,"__hash__":207},"technologies\u002Ftechnologies\u002Fnestjs.yml","simple-icons:nestjs",{},"NestJS","technologies\u002Fnestjs","ZSzLcapxUR9VNKoeexGuFLXxYc7bKyU3I3PPjxeusaE",{"id":209,"extension":27,"group":172,"home":147,"icon":210,"meta":211,"name":212,"order":64,"stem":213,"url":214,"__hash__":215},"technologies\u002Ftechnologies\u002Fnuxtjs.yml","simple-icons:nuxt",{},"Nuxt","technologies\u002Fnuxtjs","https:\u002F\u002Fnuxt.com\u002F","lFcaONk9B_O1EjCYUKDE_0qSwmNp3nm8NwOLQlWEELM",{"id":217,"extension":27,"group":146,"home":147,"icon":218,"meta":219,"name":220,"order":92,"stem":221,"url":161,"__hash__":222},"technologies\u002Ftechnologies\u002Fcloudflare.yml","simple-icons:cloudflare",{},"Cloudflare","technologies\u002Fcloudflare","0IXaRufjCEcBJa_w4o9CvzYGamZaOevEhzFkQKMRewE",{"id":224,"extension":27,"group":194,"home":147,"icon":225,"meta":226,"name":227,"order":92,"stem":228,"url":229,"__hash__":230},"technologies\u002Ftechnologies\u002Fpostgresql.yml","simple-icons:postgresql",{},"PostgreSQL","technologies\u002Fpostgresql","https:\u002F\u002Fwww.postgresql.org\u002F","uWqkvxNq_AzTP9MKC53Fio0IeNTl5T9aIcnldrn7Mgw",{"id":232,"extension":27,"group":146,"home":147,"icon":233,"meta":234,"name":235,"order":117,"stem":236,"url":237,"__hash__":238},"technologies\u002Ftechnologies\u002Fdocker.yml","simple-icons:docker",{},"Docker","technologies\u002Fdocker","https:\u002F\u002Fwww.docker.com\u002F","-g6kQEO7roMdsqVQrsZzggHE0GfXGCjsrskLaZVqXqs",{"id":240,"extension":27,"group":172,"home":147,"icon":241,"meta":242,"name":243,"order":117,"stem":244,"url":245,"__hash__":246},"technologies\u002Ftechnologies\u002Ftailwindcss.yml","simple-icons:tailwindcss",{},"Tailwind CSS","technologies\u002Ftailwindcss","https:\u002F\u002Ftailwindcss.com\u002F","iptQIuMBnx446vq7uxRPFDqD14jZ-bJb3gBWLfFA1TI",{"id":248,"extension":27,"group":146,"home":147,"icon":249,"meta":250,"name":251,"order":134,"stem":252,"url":161,"__hash__":253},"technologies\u002Ftechnologies\u002Fci-cd.yml","lucide:workflow",{},"CI\u002FCD pipelines","technologies\u002Fci-cd","yNyPWzIDRoWbKlelyUql0Biv8aqWwiDUh7jArL9AboQ",{"id":255,"extension":27,"group":194,"home":147,"icon":256,"meta":257,"name":258,"order":134,"stem":259,"url":260,"__hash__":261},"technologies\u002Ftechnologies\u002Fredis.yml","simple-icons:redis",{},"Redis","technologies\u002Fredis","https:\u002F\u002Fredis.io\u002F","AiO8SE075PBIc7Lgtn5ZKUgLVu952vhOF_iQPQ0ePlU",[263,418,869],{"id":264,"title":265,"body":266,"category":404,"date":405,"description":406,"extension":407,"icon":408,"meta":409,"navigation":147,"path":410,"readingTime":411,"seo":412,"sitemap":413,"stem":416,"__hash__":417},"articles\u002Farticles\u002Fsoftware-engineering\u002Fhow_to_contribute_to_open_source_projects.md","How to contribute to open-source projects",{"type":267,"value":268,"toc":392},"minimark",[269,277,280,285,288,292,295,299,302,306,309,312,346,350,353,357,360,364,367,372,389],[270,271,272],"p",{},[273,274],"img",{"alt":275,"src":276},"Ways to contribute to open-source projects","\u002Farticles\u002Fhow_to_contribute_to_open_source_projects.png",[270,278,279],{},"Contributing to open-source projects is a fantastic way to give back and grow as a developer. Drawing from my experiences with six projects in 2023, let’s explore valuable ways to contribute, with examples.",[281,282,284],"h2",{"id":283},"_1-finding-a-project","1. Finding a Project:",[270,286,287],{},"Start by finding an open-source project that aligns with your interests and skills. GitHub, GitLab, and other code hosting platforms are excellent places to discover active projects.",[281,289,291],{"id":290},"_2-understanding-the-project-and-keeping-track-of-activity","2. Understanding the Project and Keeping Track of Activity:",[270,293,294],{},"Once you’ve selected a project, take some time to understand its codebase, structure, and the issues\u002Froadmap it has. Familiarize yourself with the contribution guidelines and code of conduct for the project.",[281,296,298],{"id":297},"_3-ways-of-contributing","3. Ways of Contributing:",[270,300,301],{},"There are various ways to contribute to open-source projects. Let’s dive into them:",[281,303,305],{"id":304},"_31-adding-a-new-feature-or-enhancement","3.1. Adding a New Feature or Enhancement:",[270,307,308],{},"One of the best ways to contribute is to review the issues and choose one that you understand and can work on, following the specific rules of each repository. Alternatively, if you come across a missing feature that you need and others might benefit from, you can suggest and implement it.",[270,310,311],{},"For example:",[313,314,315,332],"ol",{},[316,317,318,319,326,327],"li",{},"I used “",[320,321,325],"a",{"href":322,"rel":323},"https:\u002F\u002Fgithub.com\u002Flouislam\u002Fuptime-kuma",[324],"nofollow","Uptime Kuma","”, a tool for monitoring the status of servers and services and sending notifications through various channels like Telegram. As the number of servers grew, the Telegram notifications became overwhelming. I suggested and implemented the idea of organizing servers into specific Topics, and after understanding the project’s internals, I worked on the feature, submitted a pull request, and it was merged, making it available for everyone. ",[320,328,331],{"href":329,"rel":330},"https:\u002F\u002Fgithub.com\u002Flouislam\u002Fuptime-kuma\u002Fpull\u002F2716",[324],"PR2716",[316,333,334,335,340,341],{},"I recently started using the ",[320,336,339],{"href":337,"rel":338},"https:\u002F\u002Fgithub.com\u002Fxiaoluoboding\u002Fvue-sonner",[324],"Vue Sonner"," alerts package, which is a nice and lightweight library. However, I noticed that the icon color was inconsistent with the UI because the styles were not customizable through the available properties. Therefore, I submitted a pull request that allows users to define separate variables for icon and text colors, supporting both dark and light modes. ",[320,342,345],{"href":343,"rel":344},"https:\u002F\u002Fgithub.com\u002Fxiaoluoboding\u002Fvue-sonner\u002Fpull\u002F12",[324],"PR12",[281,347,349],{"id":348},"_32-improving-documentation-or-adding-missing-examples","3.2. Improving Documentation or Adding Missing Examples:",[270,351,352],{},"Contributing to documentation or adding examples can be one of the easiest and most satisfying PRs. They are often merged quickly after the maintainer confirms their value. I’ve experienced this with Nuxt.js and NuxtLabs.",[281,354,356],{"id":355},"_33-fixing-bugs-or-addressing-issues","3.3. Fixing Bugs or Addressing Issues:",[270,358,359],{},"Bugs, open issues, and unexpected behavior to fix can be found in the issues section. If the maintainer confirms it’s a valid bug, you can submit a PR to resolve it. Avoid issues with extensive discussions and ambiguity. (Note: I haven’t had personal experience with this type of contribution.)",[281,361,363],{"id":362},"_34-other-contributions-comments-reviews-and-discussions","3.4. Other Contributions: Comments, Reviews, and Discussions",[270,365,366],{},"Participating in discussions, reviewing PRs, suggesting improvements, and answering questions from others are valuable contributions. Even if they don’t appear in the contributors list, they are visible in your profile and are essential for project success.",[368,369,371],"h3",{"id":370},"remember-to-keep-the-following-in-mind-while-contributing","Remember to keep the following in mind while contributing:",[313,373,374,377,380,383,386],{},[316,375,376],{},"Respect the project’s established code style and guidelines.",[316,378,379],{},"Include Tests for Contributions: Writing tests for your contributions ensures that your code functions as intended and helps prevent regressions.",[316,381,382],{},"Be patient and open to feedback from maintainers and other contributors.",[316,384,385],{},"Stay Proactive and Consistent: Consistency is key to becoming a valued contributor. Regularly engage with the project, submit new contributions, and actively participate in discussions.",[316,387,388],{},"Learn from Rejections: If a contribution gets rejected, view it as an opportunity to learn and grow. Understand the reasons behind the rejection and use them to improve your skills and future contributions.",[270,390,391],{},"Contributing to open-source projects is a rewarding journey that empowers you to collaborate with a global community and make a positive impact. So, go ahead and dive into the world of open source! 🚀✨",{"title":393,"searchDepth":64,"depth":64,"links":394},"",[395,396,397,398,399,400,401],{"id":283,"depth":64,"text":284},{"id":290,"depth":64,"text":291},{"id":297,"depth":64,"text":298},{"id":304,"depth":64,"text":305},{"id":348,"depth":64,"text":349},{"id":355,"depth":64,"text":356},{"id":362,"depth":64,"text":363,"children":402},[403],{"id":370,"depth":92,"text":371},"Software engineering","2023-07-21","What I learned contributing to six projects in one year, with real examples of each way to help.","md","simple-icons:github",{},"\u002Farticles\u002Fsoftware-engineering\u002Fhow_to_contribute_to_open_source_projects","2 min read",{"title":265,"description":406},{"loc":410,"images":414},[415],{"loc":276},"articles\u002Fsoftware-engineering\u002Fhow_to_contribute_to_open_source_projects","QpJ2AlojeP8KTf2bjGZ6-TAVI6pb8UgubFMpgb9tMCE",{"id":419,"title":420,"body":421,"category":172,"date":859,"description":860,"extension":407,"icon":861,"meta":862,"navigation":147,"path":863,"readingTime":864,"seo":865,"sitemap":866,"stem":867,"__hash__":868},"articles\u002Farticles\u002Ffront-end\u002Fconfiguring-prettier-pre-commit-hook.md","Configuring a Prettier pre-commit hook",{"type":267,"value":422,"toc":851},[423,427,459,463,476,692,696,753,761,813,817,847],[368,424,426],{"id":425},"_1-install-prettier","1. Install Prettier",[428,429,434],"pre",{"className":430,"code":431,"filename":432,"language":433,"meta":393,"style":393},"language-bash shiki shiki-themes haytham-dark haytham-light","npm install --save-dev --save-exact prettier\n","terminal","bash",[435,436,437],"code",{"__ignoreMap":393},[438,439,441,445,449,453,456],"span",{"class":440,"line":31},"line",[438,442,444],{"class":443},"sVz7n","npm",[438,446,448],{"class":447},"sUOzB"," install",[438,450,452],{"class":451},"sheII"," --save-dev",[438,454,455],{"class":451}," --save-exact",[438,457,458],{"class":447}," prettier\n",[368,460,462],{"id":461},"_2-create-prettier-configuration-file","2. Create Prettier Configuration File",[270,464,465,466,469,470,475],{},"Create a ",[435,467,468],{},".prettierrc"," file and paste your configuration into it. For more options, refer to the ",[320,471,474],{"href":472,"rel":473},"https:\u002F\u002Fprettier.io\u002Fdocs\u002Fen\u002Foptions.html",[324],"Prettier documentation",".",[428,477,481],{"className":478,"code":479,"filename":468,"language":480,"meta":393,"style":393},"language-json shiki shiki-themes haytham-dark haytham-light","{\n  \"arrowParens\": \"avoid\",\n  \"singleQuote\": true,\n  \"semi\": true,\n  \"bracketSameLine\": false,\n  \"bracketSpacing\": true,\n  \"vueIndentScriptAndStyle\": true,\n  \"trailingComma\": \"es5\",\n  \"singleAttributePerLine\": true,\n  \"jsxBracketSameLine\": true,\n  \"tabWidth\": 2,\n  \"useTabs\": false,\n  \"printWidth\": 100\n}\n","json",[435,482,483,489,510,526,541,557,573,589,606,622,638,655,671,686],{"__ignoreMap":393},[438,484,485],{"class":440,"line":31},[438,486,488],{"class":487},"sVG6I","{\n",[438,490,491,494,498,501,504,507],{"class":440,"line":64},[438,492,493],{"class":487},"  \"",[438,495,497],{"class":496},"s4Awn","arrowParens",[438,499,500],{"class":487},"\"",[438,502,503],{"class":487},":",[438,505,506],{"class":447}," \"avoid\"",[438,508,509],{"class":487},",\n",[438,511,512,514,517,519,521,524],{"class":440,"line":92},[438,513,493],{"class":487},[438,515,516],{"class":496},"singleQuote",[438,518,500],{"class":487},[438,520,503],{"class":487},[438,522,523],{"class":451}," true",[438,525,509],{"class":487},[438,527,528,530,533,535,537,539],{"class":440,"line":117},[438,529,493],{"class":487},[438,531,532],{"class":496},"semi",[438,534,500],{"class":487},[438,536,503],{"class":487},[438,538,523],{"class":451},[438,540,509],{"class":487},[438,542,543,545,548,550,552,555],{"class":440,"line":134},[438,544,493],{"class":487},[438,546,547],{"class":496},"bracketSameLine",[438,549,500],{"class":487},[438,551,503],{"class":487},[438,553,554],{"class":451}," false",[438,556,509],{"class":487},[438,558,560,562,565,567,569,571],{"class":440,"line":559},6,[438,561,493],{"class":487},[438,563,564],{"class":496},"bracketSpacing",[438,566,500],{"class":487},[438,568,503],{"class":487},[438,570,523],{"class":451},[438,572,509],{"class":487},[438,574,576,578,581,583,585,587],{"class":440,"line":575},7,[438,577,493],{"class":487},[438,579,580],{"class":496},"vueIndentScriptAndStyle",[438,582,500],{"class":487},[438,584,503],{"class":487},[438,586,523],{"class":451},[438,588,509],{"class":487},[438,590,592,594,597,599,601,604],{"class":440,"line":591},8,[438,593,493],{"class":487},[438,595,596],{"class":496},"trailingComma",[438,598,500],{"class":487},[438,600,503],{"class":487},[438,602,603],{"class":447}," \"es5\"",[438,605,509],{"class":487},[438,607,609,611,614,616,618,620],{"class":440,"line":608},9,[438,610,493],{"class":487},[438,612,613],{"class":496},"singleAttributePerLine",[438,615,500],{"class":487},[438,617,503],{"class":487},[438,619,523],{"class":451},[438,621,509],{"class":487},[438,623,625,627,630,632,634,636],{"class":440,"line":624},10,[438,626,493],{"class":487},[438,628,629],{"class":496},"jsxBracketSameLine",[438,631,500],{"class":487},[438,633,503],{"class":487},[438,635,523],{"class":451},[438,637,509],{"class":487},[438,639,641,643,646,648,650,653],{"class":440,"line":640},11,[438,642,493],{"class":487},[438,644,645],{"class":496},"tabWidth",[438,647,500],{"class":487},[438,649,503],{"class":487},[438,651,652],{"class":451}," 2",[438,654,509],{"class":487},[438,656,658,660,663,665,667,669],{"class":440,"line":657},12,[438,659,493],{"class":487},[438,661,662],{"class":496},"useTabs",[438,664,500],{"class":487},[438,666,503],{"class":487},[438,668,554],{"class":451},[438,670,509],{"class":487},[438,672,674,676,679,681,683],{"class":440,"line":673},13,[438,675,493],{"class":487},[438,677,678],{"class":496},"printWidth",[438,680,500],{"class":487},[438,682,503],{"class":487},[438,684,685],{"class":451}," 100\n",[438,687,689],{"class":440,"line":688},14,[438,690,691],{"class":487},"}\n",[368,693,695],{"id":694},"_3-set-up-pre-commit-hook","3. Set Up Pre-commit Hook",[428,697,699],{"className":430,"code":698,"filename":432,"language":433,"meta":393,"style":393},"npm install --save-dev husky lint-staged\nnpx husky install\nnpm pkg set scripts.prepare=\"husky install\"\nnpx husky add .husky\u002Fpre-commit \"lint-staged\"\n",[435,700,701,715,725,738],{"__ignoreMap":393},[438,702,703,705,707,709,712],{"class":440,"line":31},[438,704,444],{"class":443},[438,706,448],{"class":447},[438,708,452],{"class":451},[438,710,711],{"class":447}," husky",[438,713,714],{"class":447}," lint-staged\n",[438,716,717,720,722],{"class":440,"line":64},[438,718,719],{"class":443},"npx",[438,721,711],{"class":447},[438,723,724],{"class":447}," install\n",[438,726,727,729,732,735],{"class":440,"line":92},[438,728,444],{"class":443},[438,730,731],{"class":447}," pkg",[438,733,734],{"class":447}," set",[438,736,737],{"class":447}," scripts.prepare=\"husky install\"\n",[438,739,740,742,744,747,750],{"class":440,"line":117},[438,741,719],{"class":443},[438,743,711],{"class":447},[438,745,746],{"class":447}," add",[438,748,749],{"class":447}," .husky\u002Fpre-commit",[438,751,752],{"class":447}," \"lint-staged\"\n",[368,754,756,757,760],{"id":755},"_4-update-packagejson-with-lint-staged-configuration","4. Update ",[435,758,759],{},"package.json"," with lint-staged Configuration",[428,762,764],{"className":478,"code":763,"filename":759,"language":480,"meta":393,"style":393}," \"lint-staged\": {\n    \"*.js\": \"eslint --fix\",\n    \"{**\u002F*,*}.{js,vue,html,css}\": \"prettier --write\"\n }\n",[435,765,766,777,794,808],{"__ignoreMap":393},[438,767,768,771,775],{"class":440,"line":31},[438,769,770],{"class":447}," \"lint-staged\"",[438,772,774],{"class":773},"sWFPS",": ",[438,776,488],{"class":487},[438,778,779,782,785,787,789,792],{"class":440,"line":64},[438,780,781],{"class":487},"    \"",[438,783,784],{"class":496},"*.js",[438,786,500],{"class":487},[438,788,503],{"class":487},[438,790,791],{"class":447}," \"eslint --fix\"",[438,793,509],{"class":487},[438,795,796,798,801,803,805],{"class":440,"line":92},[438,797,781],{"class":487},[438,799,800],{"class":496},"{**\u002F*,*}.{js,vue,html,css}",[438,802,500],{"class":487},[438,804,503],{"class":487},[438,806,807],{"class":447}," \"prettier --write\"\n",[438,809,810],{"class":440,"line":117},[438,811,812],{"class":487}," }\n",[368,814,816],{"id":815},"references","References",[818,819,820,827,834,840],"ul",{},[316,821,822],{},[320,823,826],{"href":824,"rel":825},"https:\u002F\u002Fgithub.com\u002Fokonet\u002Flint-staged",[324],"lint-staged",[316,828,829],{},[320,830,833],{"href":831,"rel":832},"https:\u002F\u002Fgithub.com\u002Ftypicode\u002Fhusky",[324],"Husky",[316,835,836],{},[320,837,839],{"href":472,"rel":838},[324],"Prettier options",[316,841,842],{},[320,843,846],{"href":844,"rel":845},"https:\u002F\u002Fprettier.io\u002Fdocs\u002Fen\u002Fprecommit.html",[324],"Prettier pre-commit hook",[848,849,850],"style",{},"html pre.shiki code .sVz7n, html code.shiki .sVz7n{--shiki-default:#EDEDEF;--shiki-light:#0B0B0C}html pre.shiki code .sUOzB, html code.shiki .sUOzB{--shiki-default:#9EC7FE;--shiki-light:#2873D1}html pre.shiki code .sheII, html code.shiki .sheII{--shiki-default:#70ADFF;--shiki-light:#195CAE}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html pre.shiki code .sVG6I, html code.shiki .sVG6I{--shiki-default:#85858F;--shiki-light:#71717A}html pre.shiki code .s4Awn, html code.shiki .s4Awn{--shiki-default:#C5DDFE;--shiki-light:#534DAF}html pre.shiki code .sWFPS, html code.shiki .sWFPS{--shiki-default:#C4C4CC;--shiki-light:#3F3F46}",{"title":393,"searchDepth":64,"depth":64,"links":852},[853,854,855,856,858],{"id":425,"depth":92,"text":426},{"id":461,"depth":92,"text":462},{"id":694,"depth":92,"text":695},{"id":755,"depth":92,"text":857},"4. Update package.json with lint-staged Configuration",{"id":815,"depth":92,"text":816},"2023-01-16","Prettier, Husky and lint-staged in four steps, so unformatted code never reaches a commit.","simple-icons:javascript",{},"\u002Farticles\u002Ffront-end\u002Fconfiguring-prettier-pre-commit-hook","1 min read",{"title":420,"description":860},{"loc":863},"articles\u002Ffront-end\u002Fconfiguring-prettier-pre-commit-hook","ARSO2JQMli5hJNru2be_N96No1AkM9wHrDte3y1WQJM",{"id":870,"title":871,"body":872,"category":42,"date":1436,"description":1437,"extension":407,"icon":43,"meta":1438,"navigation":147,"path":1439,"readingTime":411,"seo":1440,"sitemap":1441,"stem":1442,"__hash__":1443},"articles\u002Farticles\u002Flaravel\u002Fsetting_up_authentication_for_laravel_single_page_applications.md","Setting up authentication for Laravel single-page apps",{"type":267,"value":873,"toc":1427},[874,877,885,889,909,979,986,1125,1137,1144,1172,1178,1185,1287,1293,1300,1390,1393,1417,1424],[270,875,876],{},"Suppose you have two websites that require authentication:",[313,878,879,882],{},[316,880,881],{},"localhost:8000 (backend)",[316,883,884],{},"localhost:3000 (frontend)",[368,886,888],{"id":887},"configuration-steps","Configuration Steps:",[313,890,891,897,903],{},[316,892,893,894],{},"Allow origins for ",[435,895,896],{},"https:\u002F\u002Flocalhost:3000",[316,898,899,900],{},"Set the session domain to ",[435,901,902],{},"localhost",[316,904,905,906],{},"Configure Sanctum stateful domains for ",[435,907,908],{},"localhost:3000",[910,911,912,928],"table",{},[913,914,915],"thead",{},[916,917,918,922,925],"tr",{},[919,920,921],"th",{},"Setting",[919,923,924],{},"Value",[919,926,927],{},"Format",[929,930,931,951,965],"tbody",{},[916,932,933,937,941],{},[934,935,936],"td",{},"FRONTEND_URL",[934,938,939],{},[435,940,896],{},[934,942,943,946,947,950],{},[435,944,945],{},"scheme:\u002F\u002Fhost:port"," without ",[435,948,949],{},"\u002F"," at the end of the URL",[916,952,953,956,960],{},[934,954,955],{},"SESSION_DOMAIN",[934,957,958],{},[435,959,902],{},[934,961,962],{},[435,963,964],{},"host",[916,966,967,970,974],{},[934,968,969],{},"SANCTUM_STATEFUL_DOMAINS",[934,971,972],{},[435,973,908],{},[934,975,976],{},[435,977,978],{},"host:port",[368,980,982,983],{"id":981},"_1-update-configcorsphp","1. Update ",[435,984,985],{},"config\u002Fcors.php",[428,987,991],{"className":988,"code":989,"filename":985,"language":990,"meta":393,"style":393},"language-php shiki shiki-themes haytham-dark haytham-light","return [\n  'paths' => ['api\u002F*', 'sanctum\u002Fcsrf-cookie'],\n  'allowed_methods' => ['*'],\n  'allowed_origins' => [env('FRONTEND_URL', 'http:\u002F\u002F127.0.0.1:8000')],\n  'allowed_origins_patterns' => [],\n  'allowed_headers' => ['*'],\n  'exposed_headers' => [],\n  'max_age' => 0,\n  'supports_credentials' => true,\n];\n","php",[435,992,993,1002,1025,1039,1065,1075,1088,1097,1109,1120],{"__ignoreMap":393},[438,994,995,999],{"class":440,"line":31},[438,996,998],{"class":997},"sVsk0","return",[438,1000,1001],{"class":487}," [\n",[438,1003,1004,1007,1010,1013,1016,1019,1022],{"class":440,"line":64},[438,1005,1006],{"class":447},"  'paths'",[438,1008,1009],{"class":487}," =>",[438,1011,1012],{"class":487}," [",[438,1014,1015],{"class":447},"'api\u002F*'",[438,1017,1018],{"class":487},",",[438,1020,1021],{"class":447}," 'sanctum\u002Fcsrf-cookie'",[438,1023,1024],{"class":487},"],\n",[438,1026,1027,1030,1032,1034,1037],{"class":440,"line":92},[438,1028,1029],{"class":447},"  'allowed_methods'",[438,1031,1009],{"class":487},[438,1033,1012],{"class":487},[438,1035,1036],{"class":447},"'*'",[438,1038,1024],{"class":487},[438,1040,1041,1044,1046,1048,1051,1054,1057,1059,1062],{"class":440,"line":117},[438,1042,1043],{"class":447},"  'allowed_origins'",[438,1045,1009],{"class":487},[438,1047,1012],{"class":487},[438,1049,1050],{"class":443},"env",[438,1052,1053],{"class":487},"(",[438,1055,1056],{"class":447},"'FRONTEND_URL'",[438,1058,1018],{"class":487},[438,1060,1061],{"class":447}," 'http:\u002F\u002F127.0.0.1:8000'",[438,1063,1064],{"class":487},")],\n",[438,1066,1067,1070,1072],{"class":440,"line":134},[438,1068,1069],{"class":447},"  'allowed_origins_patterns'",[438,1071,1009],{"class":487},[438,1073,1074],{"class":487}," [],\n",[438,1076,1077,1080,1082,1084,1086],{"class":440,"line":559},[438,1078,1079],{"class":447},"  'allowed_headers'",[438,1081,1009],{"class":487},[438,1083,1012],{"class":487},[438,1085,1036],{"class":447},[438,1087,1024],{"class":487},[438,1089,1090,1093,1095],{"class":440,"line":575},[438,1091,1092],{"class":447},"  'exposed_headers'",[438,1094,1009],{"class":487},[438,1096,1074],{"class":487},[438,1098,1099,1102,1104,1107],{"class":440,"line":591},[438,1100,1101],{"class":447},"  'max_age'",[438,1103,1009],{"class":487},[438,1105,1106],{"class":451}," 0",[438,1108,509],{"class":487},[438,1110,1111,1114,1116,1118],{"class":440,"line":608},[438,1112,1113],{"class":447},"  'supports_credentials'",[438,1115,1009],{"class":487},[438,1117,523],{"class":451},[438,1119,509],{"class":487},[438,1121,1122],{"class":440,"line":624},[438,1123,1124],{"class":487},"];\n",[270,1126,1127,1128,1130,1131,1134,1135,475],{},"In allowed_origins, add the ",[435,1129,936],{}," in the format ",[435,1132,1133],{},"scheme:\u002F\u002Fhostname",", such as ",[435,1136,896],{},[368,1138,1140,1141],{"id":1139},"_2-update-configsessionphp","2. Update ",[435,1142,1143],{},"config\u002Fsession.php",[428,1145,1147],{"className":988,"code":1146,"filename":1143,"language":990,"meta":393,"style":393},"'domain' => env('SESSION_DOMAIN', null),\n",[435,1148,1149],{"__ignoreMap":393},[438,1150,1151,1154,1156,1159,1161,1164,1166,1169],{"class":440,"line":31},[438,1152,1153],{"class":447},"'domain'",[438,1155,1009],{"class":487},[438,1157,1158],{"class":443}," env",[438,1160,1053],{"class":487},[438,1162,1163],{"class":447},"'SESSION_DOMAIN'",[438,1165,1018],{"class":487},[438,1167,1168],{"class":451}," null",[438,1170,1171],{"class":487},"),\n",[270,1173,1174,1175,1177],{},"Set the ",[435,1176,955],{}," to the main host, e.g., localhost.",[368,1179,1181,1182],{"id":1180},"_3-update-configsanctumphp","3. Update ",[435,1183,1184],{},"config\u002Fsanctum.php",[428,1186,1188],{"className":988,"code":1187,"filename":1184,"language":990,"meta":393,"style":393},"'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(\n    '%s%s',\n    'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',\n    env('APP_URL') ? ','.parse_url(env('APP_URL'), PHP_URL_HOST) : ''\n))),\n",[435,1189,1190,1222,1229,1236,1282],{"__ignoreMap":393},[438,1191,1192,1195,1197,1200,1202,1205,1207,1209,1211,1214,1216,1219],{"class":440,"line":31},[438,1193,1194],{"class":447},"'stateful'",[438,1196,1009],{"class":487},[438,1198,1199],{"class":443}," explode",[438,1201,1053],{"class":487},[438,1203,1204],{"class":447},"','",[438,1206,1018],{"class":487},[438,1208,1158],{"class":443},[438,1210,1053],{"class":487},[438,1212,1213],{"class":447},"'SANCTUM_STATEFUL_DOMAINS'",[438,1215,1018],{"class":487},[438,1217,1218],{"class":443}," sprintf",[438,1220,1221],{"class":487},"(\n",[438,1223,1224,1227],{"class":440,"line":64},[438,1225,1226],{"class":447},"    '%s%s'",[438,1228,509],{"class":487},[438,1230,1231,1234],{"class":440,"line":92},[438,1232,1233],{"class":447},"    'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1'",[438,1235,509],{"class":487},[438,1237,1238,1241,1243,1246,1249,1252,1255,1257,1260,1262,1264,1266,1268,1271,1274,1276,1279],{"class":440,"line":117},[438,1239,1240],{"class":443},"    env",[438,1242,1053],{"class":487},[438,1244,1245],{"class":447},"'APP_URL'",[438,1247,1248],{"class":487},")",[438,1250,1251],{"class":487}," ?",[438,1253,1254],{"class":447}," ','",[438,1256,475],{"class":487},[438,1258,1259],{"class":443},"parse_url",[438,1261,1053],{"class":487},[438,1263,1050],{"class":443},[438,1265,1053],{"class":487},[438,1267,1245],{"class":447},[438,1269,1270],{"class":487},"),",[438,1272,1273],{"class":451}," PHP_URL_HOST",[438,1275,1248],{"class":487},[438,1277,1278],{"class":487}," :",[438,1280,1281],{"class":447}," ''\n",[438,1283,1284],{"class":440,"line":134},[438,1285,1286],{"class":487},"))),\n",[270,1288,1289,1290,1292],{},"Add ",[435,1291,969],{}," only for the main host, e.g., localhost.",[270,1294,1295,1296,1299],{},"Update the ",[435,1297,1298],{},".env"," file:",[428,1301,1305],{"className":1302,"code":1303,"filename":1298,"language":1304,"meta":393,"style":393},"language-dotenv shiki shiki-themes haytham-dark haytham-light","APP_NAME=\nAPP_ENV=local\nAPP_KEY=\nAPP_DEBUG=true\nAPP_URL=http:\u002F\u002Flocalhost:8000\nFRONTEND_URL=http:\u002F\u002Flocalhost:3000\nSESSION_DOMAIN=localhost\nSANCTUM_STATEFUL_DOMAINS=localhost:3000\n\n\u002F\u002F etc...\n","dotenv",[435,1306,1307,1315,1326,1333,1343,1353,1362,1371,1380,1385],{"__ignoreMap":393},[438,1308,1309,1312],{"class":440,"line":31},[438,1310,1311],{"class":773},"APP_NAME",[438,1313,1314],{"class":487},"=\n",[438,1316,1317,1320,1323],{"class":440,"line":64},[438,1318,1319],{"class":773},"APP_ENV",[438,1321,1322],{"class":487},"=",[438,1324,1325],{"class":773},"local\n",[438,1327,1328,1331],{"class":440,"line":92},[438,1329,1330],{"class":773},"APP_KEY",[438,1332,1314],{"class":487},[438,1334,1335,1338,1340],{"class":440,"line":117},[438,1336,1337],{"class":773},"APP_DEBUG",[438,1339,1322],{"class":487},[438,1341,1342],{"class":773},"true\n",[438,1344,1345,1348,1350],{"class":440,"line":134},[438,1346,1347],{"class":773},"APP_URL",[438,1349,1322],{"class":487},[438,1351,1352],{"class":773},"http:\u002F\u002Flocalhost:8000\n",[438,1354,1355,1357,1359],{"class":440,"line":559},[438,1356,936],{"class":773},[438,1358,1322],{"class":487},[438,1360,1361],{"class":773},"http:\u002F\u002Flocalhost:3000\n",[438,1363,1364,1366,1368],{"class":440,"line":575},[438,1365,955],{"class":773},[438,1367,1322],{"class":487},[438,1369,1370],{"class":773},"localhost\n",[438,1372,1373,1375,1377],{"class":440,"line":591},[438,1374,969],{"class":773},[438,1376,1322],{"class":487},[438,1378,1379],{"class":773},"localhost:3000\n",[438,1381,1382],{"class":440,"line":608},[438,1383,1384],{"emptyLinePlaceholder":147},"\n",[438,1386,1387],{"class":440,"line":624},[438,1388,1389],{"class":773},"\u002F\u002F etc...\n",[270,1391,1392],{},"Notes:",[313,1394,1395,1410],{},[316,1396,1397,1398,1400,1401,1403,1404,1406,1407,1409],{},"The domain in ",[435,1399,969],{}," must be part of the same domain as ",[435,1402,955],{}," (e.g., ",[435,1405,908],{}," -> ",[435,1408,902],{},").",[316,1411,1412,1413,1416],{},"The default ",[435,1414,1415],{},"SESSION_LIFETIME"," is set to expire after 2 hours.",[1418,1419,1421],"alert-info",{"to":1420},"https:\u002F\u002Flaravel.com\u002Fdocs\u002F10.x\u002Fsanctum#spa-authentication",[270,1422,1423],{},"For more information, refer to the Laravel Sanctum SPA Authentication documentation",[848,1425,1426],{},"html pre.shiki code .sVsk0, html code.shiki .sVsk0{--shiki-default:#9D9FFE;--shiki-light:#6762D3}html pre.shiki code .sVG6I, html code.shiki .sVG6I{--shiki-default:#85858F;--shiki-light:#71717A}html pre.shiki code .sUOzB, html code.shiki .sUOzB{--shiki-default:#9EC7FE;--shiki-light:#2873D1}html pre.shiki code .sVz7n, html code.shiki .sVz7n{--shiki-default:#EDEDEF;--shiki-light:#0B0B0C}html pre.shiki code .sheII, html code.shiki .sheII{--shiki-default:#70ADFF;--shiki-light:#195CAE}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html pre.shiki code .sWFPS, html code.shiki .sWFPS{--shiki-default:#C4C4CC;--shiki-light:#3F3F46}",{"title":393,"searchDepth":64,"depth":64,"links":1428},[1429,1430,1432,1434],{"id":887,"depth":92,"text":888},{"id":981,"depth":92,"text":1431},"1. Update config\u002Fcors.php",{"id":1139,"depth":92,"text":1433},"2. Update config\u002Fsession.php",{"id":1180,"depth":92,"text":1435},"3. Update config\u002Fsanctum.php","2022-10-11","The three settings (CORS origins, session domain and Sanctum stateful domains) that make a separate SPA front end log in cleanly.",{},"\u002Farticles\u002Flaravel\u002Fsetting_up_authentication_for_laravel_single_page_applications",{"title":871,"description":1437},{"loc":1439},"articles\u002Flaravel\u002Fsetting_up_authentication_for_laravel_single_page_applications","ZOVjNZhF0WlXK9LjAfMFORzskj7wQ0RP1UGF-FdFcYI",[1445,1450,1456,1461,1466,1470],{"name":1446,"note":1447,"mark":1448,"desk":31},"MacBook Pro M5","16GB",{"icon":1449},"simple-icons:apple",{"name":1451,"note":1452,"mark":1453,"theme":1455,"desk":64},"PhpStorm","Laravel & PHP",{"icon":1454},"simple-icons:phpstorm","GitHub Dark",{"name":1457,"note":1458,"mark":1459,"desk":117},"iTerm2","Terminal",{"icon":1460},"simple-icons:iterm2",{"name":1462,"note":1463,"mark":1464,"desk":559},"Notion","Notes & docs",{"icon":1465},"simple-icons:notion",{"name":1467,"note":1468,"mark":1469,"desk":575},"Claude","Thinking, writing & code",{"icon":157},{"name":1471,"note":1472,"mark":1473,"desk":591},"Chrome","Development",{"icon":1474},"simple-icons:googlechrome",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1476},"\u003Cpath fill=\"currentColor\" d=\"M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1478},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",[1480,1501,1517],{"id":1481,"avatar":1482,"extension":27,"kind":1483,"links":1484,"meta":1494,"note":1495,"order":31,"repo":1496,"role":1497,"stem":1498,"url":1499,"__hash__":1500},"contributions\u002Fcontributions\u002Fnuxt-ui.yml","\u002Favatars\u002Fnuxt.png","maintainer",[1485,1488,1491],{"label":1486,"to":1487},"My commits","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fcommits?author=Haythamasalama",{"label":1489,"to":1490},"Nuxt UI team","https:\u002F\u002Fui.nuxt.com\u002Fteam",{"label":1492,"to":1493},"Nuxters profile","https:\u002F\u002Fnuxters.nuxt.com\u002FHaythamasalama",{},"A maintainer of Nuxt's official UI library for two months, reviewing, fixing and shaping components the Vue community builds on.","nuxt\u002Fui","Maintainer · 2 months","contributions\u002Fnuxt-ui","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui","kwmNOZCuGyoSinPgx2Qss4LMn3hCYCzGCHx-6pIdh0k",{"id":1502,"avatar":1503,"extension":27,"kind":1504,"links":1505,"meta":1512,"note":161,"order":64,"repo":1513,"role":161,"stem":1514,"url":1515,"__hash__":1516},"contributions\u002Fcontributions\u002Fgithub-community.yml","\u002Favatars\u002Fcommunity.png","discussion",[1506,1509],{"label":1507,"to":1508},"#69527","https:\u002F\u002Fgithub.com\u002Forgs\u002Fcommunity\u002Fdiscussions\u002F69527",{"label":1510,"to":1511},"#69586","https:\u002F\u002Fgithub.com\u002Forgs\u002Fcommunity\u002Fdiscussions\u002F69586",{},"github\u002Fcommunity","contributions\u002Fgithub-community","https:\u002F\u002Fgithub.com\u002Forgs\u002Fcommunity\u002Fdiscussions","eOqySVKHqIgOZUYXmknAX3JxDlnVVbHAwwuKFf2GFmQ",{"id":1518,"avatar":1519,"extension":27,"kind":1520,"links":1521,"meta":1522,"note":1523,"order":92,"repo":1524,"role":161,"stem":1525,"url":1526,"__hash__":1527},"contributions\u002Fcontributions\u002Faug-projects.yml","\u002Favatars\u002Faug-projects.png","created",[],{},"AUG Projects · Software Engineering","aug-projects","contributions\u002Faug-projects","https:\u002F\u002Fgithub.com\u002Faug-projects","wFMflRVoyjpweeoT4DWYbVH-0hKjOhrTDK5Q7NCRUBg",{"username":1529,"repos":1530,"totals":1827,"fetchedAt":1829},"Haythamasalama",[1531,1699,1712,1726,1741,1753,1767,1782,1797,1812],{"name":1496,"url":1499,"avatar":1532,"description":1533,"stars":1534,"pullRequests":1535,"issues":1670,"pullRequestsUrl":1696,"issuesUrl":1697,"rank":657,"commits":1698,"lastActive":1540},"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F23360933?v=4&s=88","The Intuitive Vue UI Library powered by Reka UI & Tailwind CSS.",6994,[1536,1541,1546,1551,1556,1561,1566,1571,1576,1581,1586,1591,1596,1601,1605,1610,1615,1620,1625,1630,1635,1640,1645,1650,1655,1660,1665],{"number":1537,"title":1538,"url":1539,"date":1540},506,"feat(Breadcrumb): new component","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F506","2023-11-16T17:06:52Z",{"number":1542,"title":1543,"url":1544,"date":1545},787,"docs: add link to the `FormExampleElements`","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F787","2023-10-06T15:33:24Z",{"number":1547,"title":1548,"url":1549,"date":1550},757,"feat(Divider): new component","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F757","2023-10-05T12:43:58Z",{"number":1552,"title":1553,"url":1554,"date":1555},758,"docs: improve select options from types","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F758","2023-10-05T11:55:36Z",{"number":1557,"title":1558,"url":1559,"date":1560},759,"docs: add discord link to the section community","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F759","2023-09-29T09:34:01Z",{"number":1562,"title":1563,"url":1564,"date":1565},729,"docs: add contributing page","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F729","2023-09-29T09:10:03Z",{"number":1567,"title":1568,"url":1569,"date":1570},728,"fix(Pagination): handle `max > 5` and `max` equal total pages","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F728","2023-09-28T15:01:45Z",{"number":1572,"title":1573,"url":1574,"date":1575},741,"feat(Table): add ability to custom style for  `td` and  `tr`","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F741","2023-09-28T10:11:26Z",{"number":1577,"title":1578,"url":1579,"date":1580},735,"fix(Accordion): close other items in circular order","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F735","2023-09-24T09:36:35Z",{"number":1582,"title":1583,"url":1584,"date":1585},535,"feat(Link): add `as` prop","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F535","2023-09-16T19:50:55Z",{"number":1587,"title":1588,"url":1589,"date":1590},618,"docs: add examples link in header","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F618","2023-09-09T16:21:23Z",{"number":1592,"title":1593,"url":1594,"date":1595},526,"chore: add eslint rules for spacing","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F526","2023-08-11T19:59:10Z",{"number":1597,"title":1598,"url":1599,"date":1600},393,"docs(examples): add advanced table example","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F393","2023-07-30T14:55:39Z",{"number":1602,"title":1593,"url":1603,"date":1604},464,"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F464","2023-07-30T13:56:02Z",{"number":1606,"title":1607,"url":1608,"date":1609},460,"fix(Table): hide data when loading state is active","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F460","2023-07-29T21:31:29Z",{"number":1611,"title":1612,"url":1613,"date":1614},304,"docs(Dropdown): add an example item slot","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F304","2023-07-12T12:52:57Z",{"number":1616,"title":1617,"url":1618,"date":1619},379,"fix(Accordion): solve the shift between buttons when they are opened","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F379","2023-07-03T15:20:08Z",{"number":1621,"title":1622,"url":1623,"date":1624},347,"chore: add `lint:fix` command ","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F347","2023-06-27T20:20:25Z",{"number":1626,"title":1627,"url":1628,"date":1629},301,"feat(Accordion): new component","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F301","2023-06-27T19:54:06Z",{"number":1631,"title":1632,"url":1633,"date":1634},348,"docs: add support for RTL and LTR","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F348","2023-06-27T10:42:41Z",{"number":1636,"title":1637,"url":1638,"date":1639},334,"chore: improve RTL support","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F334","2023-06-23T21:19:28Z",{"number":1641,"title":1642,"url":1643,"date":1644},302,"docs(ComponentCard): preview component only","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F302","2023-06-22T16:38:04Z",{"number":1646,"title":1647,"url":1648,"date":1649},323,"feat(Radio\u002FCheckbox\u002FToggle)!: handle `color` prop for form elements","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F323","2023-06-20T15:35:53Z",{"number":1651,"title":1652,"url":1653,"date":1654},271,"feat(CommandPalette): handle `empty-state`","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F271","2023-06-12T12:54:34Z",{"number":1656,"title":1657,"url":1658,"date":1659},259,"feat(table): add loading state","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F259","2023-06-12T12:26:29Z",{"number":1661,"title":1662,"url":1663,"date":1664},266,"feat(pagination): add slots for prev and next","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F266","2023-06-09T16:08:34Z",{"number":1666,"title":1667,"url":1668,"date":1669},260,"feat(table): add slot for empty state","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F260","2023-06-09T15:06:43Z",[1671,1676,1681,1686,1691],{"number":1672,"title":1673,"url":1674,"date":1675},754,"[Docs] The `ComponentCard` and `ComponentExample` do not change when the color switcher is changed.","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fissues\u002F754","2023-09-28T10:59:40Z",{"number":1677,"title":1678,"url":1679,"date":1680},333,"Are there any free or paid themes built with Nuxt UI?","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fissues\u002F333","2023-06-22T14:14:33Z",{"number":1682,"title":1683,"url":1684,"date":1685},329,"[Docs] Add ability to preview components only","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fissues\u002F329","2023-06-21T17:22:13Z",{"number":1687,"title":1688,"url":1689,"date":1690},325,"[Docs] Community section","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fissues\u002F325","2023-06-20T11:55:47Z",{"number":1692,"title":1693,"url":1694,"date":1695},324,"[Slideover] Add header and footer slot","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fissues\u002F324","2023-06-20T11:36:13Z","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",26,{"name":1700,"url":322,"avatar":1701,"description":1702,"stars":1703,"pullRequests":1704,"issues":1709,"pullRequestsUrl":1710,"issuesUrl":1711,"lastActive":1708},"louislam\u002Fuptime-kuma","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1336778?v=4&s=88","A fancy self-hosted monitoring tool",92301,[1705],{"number":1706,"title":1707,"url":329,"date":1708},2716,"feat: support topics message for telegram nonfiction","2023-02-23T13:10:30Z",[],"https:\u002F\u002Fgithub.com\u002Flouislam\u002Fuptime-kuma\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002Flouislam\u002Fuptime-kuma\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"name":1713,"url":1714,"avatar":1532,"description":1715,"stars":1716,"pullRequests":1717,"issues":1723,"pullRequestsUrl":1724,"issuesUrl":1725,"lastActive":1722},"nuxt\u002Fframework","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fframework","Old repo of Nuxt 3 framework, now on nuxt\u002Fnuxt",10411,[1718],{"number":1719,"title":1720,"url":1721,"date":1722},6394,"docs(schema) : add a missing comma in example config ","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fframework\u002Fpull\u002F6394","2022-08-05T19:00:40Z",[],"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fframework\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fframework\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"name":1727,"url":1728,"avatar":1729,"description":1730,"stars":1731,"pullRequests":1732,"issues":1738,"pullRequestsUrl":1739,"issuesUrl":1740,"lastActive":1737},"Vuepic\u002Fvue-datepicker","https:\u002F\u002Fgithub.com\u002FVuepic\u002Fvue-datepicker","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F84636073?v=4&s=88","Datepicker component for Vue 3",1768,[1733],{"number":1734,"title":1735,"url":1736,"date":1737},488,"feat(style): support RTL ","https:\u002F\u002Fgithub.com\u002FVuepic\u002Fvue-datepicker\u002Fpull\u002F488","2023-07-16T21:26:58Z",[],"https:\u002F\u002Fgithub.com\u002FVuepic\u002Fvue-datepicker\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002FVuepic\u002Fvue-datepicker\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"name":1742,"url":337,"avatar":1743,"description":1744,"stars":1745,"pullRequests":1746,"issues":1750,"pullRequestsUrl":1751,"issuesUrl":1752,"lastActive":1749},"xiaoluoboding\u002Fvue-sonner","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6118824?v=4&s=88","🔔 An opinionated toast component for Vue & Nuxt.",1468,[1747],{"number":657,"title":1748,"url":343,"date":1749},"feat: ability to add a cutom color icon","2023-05-15T02:32:13Z",[],"https:\u002F\u002Fgithub.com\u002Fxiaoluoboding\u002Fvue-sonner\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002Fxiaoluoboding\u002Fvue-sonner\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"name":1754,"url":1755,"avatar":1532,"description":1756,"stars":1757,"pullRequests":1758,"issues":1759,"pullRequestsUrl":1765,"issuesUrl":1766,"lastActive":1764},"nuxt\u002Fnuxt","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt","The full-stack Vue framework.",60925,[],[1760],{"number":1761,"title":1762,"url":1763,"date":1764},14571,"Error:  [nuxt] [request error] Context is not available","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F14571","2022-08-12T22:20:21Z","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"name":1768,"url":1769,"avatar":1770,"description":1771,"stars":1772,"pullRequests":1773,"issues":1774,"pullRequestsUrl":1780,"issuesUrl":1781,"lastActive":1779},"Sequel-Ace\u002FSequel-Ace","https:\u002F\u002Fgithub.com\u002FSequel-Ace\u002FSequel-Ace","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F66785829?v=4&s=88","MySQL\u002FMariaDB database management for macOS",7553,[],[1775],{"number":1776,"title":1777,"url":1778,"date":1779},1949,"Can't select ssh key in SSH connection","https:\u002F\u002Fgithub.com\u002FSequel-Ace\u002FSequel-Ace\u002Fissues\u002F1949","2024-01-09T12:16:11Z","https:\u002F\u002Fgithub.com\u002FSequel-Ace\u002FSequel-Ace\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002FSequel-Ace\u002FSequel-Ace\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"name":1783,"url":1784,"avatar":1785,"description":1786,"stars":1787,"pullRequests":1788,"issues":1789,"pullRequestsUrl":1795,"issuesUrl":1796,"lastActive":1794},"intlify\u002Fvue-i18n","https:\u002F\u002Fgithub.com\u002Fintlify\u002Fvue-i18n","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54627341?v=4&s=88","Vue I18n for Vue 3",2713,[],[1790],{"number":1791,"title":1792,"url":1793,"date":1794},1406,"Search Functionality Not Working in Vue i18n Documentation","https:\u002F\u002Fgithub.com\u002Fintlify\u002Fvue-i18n\u002Fissues\u002F1406","2023-05-17T09:49:49Z","https:\u002F\u002Fgithub.com\u002Fintlify\u002Fvue-i18n\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002Fintlify\u002Fvue-i18n\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"name":1798,"url":1799,"avatar":1800,"description":1801,"stars":1802,"pullRequests":1803,"issues":1804,"pullRequestsUrl":1810,"issuesUrl":1811,"lastActive":1809},"beste\u002Flaravel-firebase","https:\u002F\u002Fgithub.com\u002Fbeste\u002Flaravel-firebase","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F78486255?v=4&s=88","A Laravel package for the Firebase PHP Admin SDK",1302,[],[1805],{"number":1806,"title":1807,"url":1808,"date":1809},245,"Unable to upgrade to Laravel 12","https:\u002F\u002Fgithub.com\u002Fbeste\u002Flaravel-firebase\u002Fissues\u002F245","2025-04-20T13:29:56Z","https:\u002F\u002Fgithub.com\u002Fbeste\u002Flaravel-firebase\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002Fbeste\u002Flaravel-firebase\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"name":1813,"url":1814,"avatar":1815,"description":1816,"stars":1817,"pullRequests":1818,"issues":1819,"pullRequestsUrl":1825,"issuesUrl":1826,"lastActive":1824},"Innologica\u002Fvue2-daterange-picker","https:\u002F\u002Fgithub.com\u002FInnologica\u002Fvue2-daterange-picker","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F8224044?v=4&s=88","Vue2 date range picker",327,[],[1820],{"number":1821,"title":1822,"url":1823,"date":1824},288,"Return date like  this format  YYYY-MM-DD","https:\u002F\u002Fgithub.com\u002FInnologica\u002Fvue2-daterange-picker\u002Fissues\u002F288","2022-01-07T11:54:23Z","https:\u002F\u002Fgithub.com\u002FInnologica\u002Fvue2-daterange-picker\u002Fpulls?q=is%3Apr%20is%3Amerged%20author%3AHaythamasalama","https:\u002F\u002Fgithub.com\u002FInnologica\u002Fvue2-daterange-picker\u002Fissues?q=is%3Aissue%20author%3AHaythamasalama",{"pullRequests":1828,"issues":624,"repositories":624},31,"2026-10-10T21:47:47.819Z",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1831},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1833},"\u003Cpath fill=\"currentColor\" d=\"m19.896 10.896l-.173-.303c.007-2.174-1.002-3.06-2.179-3.734c.356-.094.724-.172.825-.619c.611-.156.74-.44.8-.74c.16-.106.696-.406.64-.92c.3-.207.467-.473.382-.85c.322-.35.407-.641.27-.909c.387-.48.215-.73.05-.982c.29-.525.034-1.088-.776-.994c-.322-.473-1.024-.366-1.133-.364c-.121-.152-.281-.282-.775-.219c-.32-.285-.677-.236-1.046-.096c-.438-.34-.727-.068-1.058.036c-.53-.171-.652.063-.912.158c-.578-.12-.754.141-1.03.418l-.323-.006c-.872.506-1.305 1.536-1.459 2.066c-.153-.53-.586-1.56-1.457-2.066l-.323.006C9.942.501 9.766.239 9.19.36C8.927.265 8.806.03 8.276.202C8.059.134 7.86-.007 7.624 0a.7.7 0 0 0-.405.166c-.37-.14-.727-.189-1.046.096c-.494-.063-.654.068-.776.22c-.108-.003-.81-.11-1.133.363c-.81-.094-1.065.47-.776.994c-.165.252-.336.502.05.982c-.136.268-.051.558.27.91c-.084.376.083.642.383.849c-.056.515.48.814.639.92c.061.3.19.584.801.74c.1.448.469.525.825.619c-1.177.673-2.186 1.56-2.18 3.735l-.172.302c-1.349.809-2.562 3.406-.664 5.517c.124.661.332 1.136.517 1.661c.277 2.117 2.084 3.108 2.56 3.226c.699.524 1.443 1.02 2.45 1.37c.948.963 1.976 1.33 3.01 1.33h.046c1.034 0 2.062-.367 3.01-1.33c1.007-.35 1.751-.847 2.45-1.37c.476-.118 2.284-1.109 2.56-3.226c.186-.525.394-1 .517-1.66c1.899-2.112.685-4.71-.664-5.518m-1.04-.371c-.07.876-4.635-3.05-3.846-3.181c2.139-.356 3.919.896 3.847 3.18m-2.015 4.365c-1.148.74-2.802.262-3.695-1.069s-.686-3.01.462-3.75s2.803-.263 3.696 1.068c.892 1.33.686 3.01-.463 3.75M13.66 1.372c.04.197.084.321.135.358c.254-.272.462-.55.788-.813c.001.154-.077.321.117.443a2.3 2.3 0 0 1 .727-.624c-.152.26-.026.34.055.448c.24-.206.468-.414.91-.576c-.12.148-.29.292-.11.461c.247-.154.496-.309 1.083-.418c-.132.147-.406.295-.24.442Q17.59.915 18.158.84c-.182.15-.334.296-.184.412c.332-.102.79-.24 1.237-.121l-.283.285c-.032.038.662.03 1.12.036c-.167.232-.338.456-.437.855c.045.046.272.02.486 0c-.22.462-.6.578-.69.776c.135.101.32.075.524.006c-.158.325-.49.548-.751.812c.066.047.182.075.456.043a4.2 4.2 0 0 1-.88.703c.06.07.272.068.467.072c-.313.307-.717.466-1.095.667c.188.13.323.1.467.097c-.267.22-.722.335-1.144.467c.08.125.16.159.332.194c-.447.247-1.087.134-1.268.26c.044.125.167.206.314.274c-.72.041-2.688-.027-3.065-1.516c.737-.81 2.081-1.76 4.394-2.934c-1.8.602-3.423 1.405-4.782 2.51c-1.598-.744-.496-2.62.283-3.365m-1.613 5.372c1.133-.012 2.536.832 2.53 1.629c-.005.702-.985 1.271-2.52 1.26c-1.505-.017-2.518-.715-2.514-1.395c.002-.56 1.228-1.527 2.504-1.494m-5.764-.6c.172-.036.252-.07.332-.195c-.422-.132-.877-.247-1.145-.466c.145.001.28.031.468-.097c-.378-.201-.782-.36-1.095-.667c.195-.005.406-.002.467-.073a4.2 4.2 0 0 1-.88-.703c.274.032.39.004.456-.043c-.262-.264-.593-.487-.751-.812c.203.069.389.095.523-.006c-.089-.198-.47-.314-.69-.776c.215.02.442.046.487 0c-.1-.399-.27-.623-.437-.855c.458-.007 1.152.002 1.12-.036l-.283-.285c.447-.119.905.019 1.237.121c.15-.116-.002-.263-.184-.412q.569.076 1.034.254C7.106.946 6.833.798 6.7.651c.587.11.836.264 1.083.418c.18-.17.01-.313-.111-.46c.443.161.67.37.911.575c.081-.108.207-.187.055-.448c.315.178.552.389.727.624c.194-.122.116-.289.117-.442c.326.261.534.54.788.812c.05-.037.095-.161.135-.358c.78.745 1.88 2.621.283 3.365C9.33 3.633 7.707 2.83 5.909 2.228c2.312 1.174 3.656 2.124 4.392 2.933c-.377 1.49-2.345 1.558-3.065 1.516c.147-.068.27-.149.314-.273c-.18-.126-.821-.013-1.268-.26m2.817 1.133c.788.13-3.777 4.056-3.847 3.18C5.18 8.174 6.96 6.922 9.1 7.278m-4.847 8.756c-1.109-.879-1.466-3.453.59-4.61c1.24-.327.419 5.052-.59 4.61m4.266 4.6c-.626.371-2.145.218-3.225-1.31c-.729-1.282-.635-2.587-.123-2.97c.765-.46 1.946.16 2.856 1.2c.792.94 1.153 2.592.492 3.08m-1.242-5.61c-1.148-.74-1.355-2.42-.462-3.75s2.547-1.81 3.695-1.068c1.148.74 1.355 2.42.463 3.75c-.893 1.331-2.547 1.81-3.695 1.069m4.795 8.229c-1.376.058-2.726-1.11-2.708-1.516c-.02-.594 1.676-1.058 2.782-1.03c1.113-.049 2.607.352 2.61.884c.018.517-1.355 1.684-2.684 1.662m2.759-5.858c.008 1.39-1.226 2.522-2.757 2.53c-1.53.007-2.777-1.114-2.785-2.504v-.026c-.008-1.39 1.226-2.523 2.756-2.53s2.778 1.113 2.786 2.503zm3.855 2.003c-1.186 1.62-2.792 1.684-3.39 1.232c-.625-.58-.148-2.385.71-3.374c.98-1.092 2.03-1.804 2.76-1.248c.492.483.78 2.301-.08 3.39m1.072-3.43c-1.009.44-1.83-4.938-.59-4.61c2.057 1.157 1.7 3.73.59 4.61m-.026-8.328h.299v-.53h.299c.15 0 .205.062.226.205c.015.108.011.239.048.325h.298c-.053-.076-.052-.236-.057-.321c-.01-.138-.051-.28-.198-.318v-.004c.15-.06.215-.18.215-.34c0-.206-.154-.375-.397-.375h-.732zm.299-1.126h.327c.133 0 .205.058.205.188c0 .137-.072.194-.205.194h-.327zm-1.034.464a1.27 1.27 0 1 0 2.54 0a1.27 1.27 0 0 0-2.54 0m2.328 0a1.058 1.058 0 1 1-2.116 0a1.058 1.058 0 0 1 2.116 0\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1835},"\u003Cpath fill=\"currentColor\" d=\"M11.503.131L1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1837},"\u003Cpath fill=\"currentColor\" d=\"M14.131.047c-.173 0-.334.037-.483.087c.316.21.49.49.576.806c.007.043.019.074.025.117a1 1 0 0 1 .013.112c.024.545-.143.614-.26.936c-.18.415-.13.861.086 1.22a.7.7 0 0 0 .074.137c-.235-1.568 1.073-1.803 1.314-2.293c.019-.428-.334-.713-.613-.911a1.37 1.37 0 0 0-.732-.21zM16.102.4c-.024.143-.006.106-.012.18c-.006.05-.006.112-.012.161c-.013.05-.025.1-.044.149q-.019.075-.05.149l-.067.142c-.02.025-.031.05-.05.075l-.037.055a2 2 0 0 1-.093.124c-.037.038-.068.081-.112.112v.006c-.037.031-.074.068-.118.1c-.13.099-.278.173-.415.266c-.043.03-.087.056-.124.093a1 1 0 0 0-.118.099c-.043.037-.074.074-.111.118c-.031.037-.068.08-.093.124a2 2 0 0 0-.087.13c-.025.05-.043.093-.068.142c-.019.05-.037.093-.05.143a2 2 0 0 0-.043.155c-.006.025-.006.056-.012.08c-.007.025-.007.05-.013.075c0 .05-.006.105-.006.155q-.002.055.006.111q0 .074.019.155q.01.075.03.15c.02.049.032.098.05.148c.013.03.031.062.044.087l-1.426-.552c-.241-.068-.477-.13-.719-.186l-.39-.093q-.56-.111-1.128-.167c-.013 0-.019-.006-.031-.006A11 11 0 0 0 8.9 2.855c-.378.025-.756.074-1.134.136a13 13 0 0 0-.837.174l-.279.074c-.092.037-.18.08-.266.118l-.205.093c-.012.006-.024.006-.03.012c-.063.031-.118.056-.174.087a3 3 0 0 0-.236.118c-.043.018-.086.043-.124.062l-.055.03q-.085.048-.162.094a2 2 0 0 0-.148.093c-.044.03-.087.055-.124.086c-.006.007-.013.007-.019.013c-.037.025-.08.056-.118.087l-.012.012l-.093.074c-.012.007-.025.019-.037.025c-.031.025-.062.056-.093.08c-.006.013-.019.02-.025.025c-.037.038-.074.069-.111.106c-.007 0-.007.006-.013.012a2 2 0 0 0-.111.106c-.007.006-.007.012-.013.012a2 2 0 0 0-.093.1c-.012.012-.03.024-.043.036a1 1 0 0 1-.106.112c-.006.012-.018.019-.024.03c-.05.05-.093.1-.143.15l-.018.018c-.1.106-.205.211-.317.304q-.168.15-.347.273a3.8 3.8 0 0 1-.762.421c-.13.056-.267.106-.403.149c-.26.056-.527.161-.756.18c-.05 0-.105.012-.155.018l-.155.037l-.149.056q-.075.03-.148.068c-.044.031-.093.056-.137.087a1 1 0 0 0-.124.106c-.043.03-.087.074-.124.111c-.037.043-.074.08-.105.124c-.031.05-.068.093-.093.143a1 1 0 0 0-.087.142c-.025.056-.05.106-.068.161q-.028.077-.056.161c-.012.05-.025.1-.03.15c0 .005-.007.012-.007.018c-.012.056-.012.13-.019.167C.006 7.95 0 7.986 0 8.03a.66.66 0 0 0 .074.31v.006q.03.056.069.112q.035.056.08.111c.031.031.068.069.106.1a1 1 0 0 0 .117.099c.149.13.186.173.378.272c.031.019.062.031.1.05c.006 0 .012.006.018.006c0 .013 0 .019.006.031a1.3 1.3 0 0 0 .08.298c.02.037.032.074.05.111q.01.02.02.031c.024.05.049.093.073.137l.093.13c.031.037.069.08.106.118s.074.068.118.105c0 0 .006.006.012.006q.055.048.112.087a1 1 0 0 0 .136.08c.043.025.093.05.142.069a1 1 0 0 0 .124.043c.007.006.013.006.025.012c.025.007.056.013.08.019c-.018.335-.024.65.026.762c.055.124.328-.254.6-.688c-.036.428-.061.93 0 1.079c.069.155.44-.329.763-.862c4.395-1.016 8.405 2.02 8.826 6.31c-.08-.67-.905-1.041-1.283-.948c-.186.458-.502 1.047-1.01 1.413c.043-.41.025-.83-.062-1.24a4 4 0 0 1-.769 1.562c-.588.043-1.177-.242-1.487-.67c-.025-.018-.031-.055-.05-.08q-.029-.065-.05-.13a.5.5 0 0 1-.037-.13q-.008-.064-.006-.137v-.093a1 1 0 0 1 .031-.13q.017-.064.044-.13c.024-.043.043-.087.074-.13c.105-.298.105-.54-.087-.682a1 1 0 0 0-.118-.062c-.024-.006-.055-.018-.08-.025l-.05-.018a1 1 0 0 0-.13-.031a.5.5 0 0 0-.13-.019a1 1 0 0 0-.136-.012c-.031 0-.062.006-.093.006a.5.5 0 0 0-.137.019q-.064.008-.13.024a1 1 0 0 0-.13.044c-.043.018-.08.037-.124.056c-.037.018-.074.043-.118.062c-1.444.942-.582 3.148.403 3.787c-.372.068-.75.148-.855.229l-.013.012q.4.24.837.416c.397.13.818.247 1.004.297v.006a6 6 0 0 0 1.562.112c2.746-.192 4.996-2.281 5.405-5.033l.037.161c.019.112.043.23.056.347v.006q.016.085.025.162v.024q.01.085.012.162q.01.102.012.204v.1c0 .03.007.067.007.098c0 .038-.007.075-.007.112v.087c0 .043-.006.08-.006.124q.002.036-.006.08c0 .044-.006.087-.006.137q-.007.027-.006.055l-.02.143q.001.028-.005.056c-.007.062-.019.118-.025.18v.012l-.037.174v.018l-.037.167c0 .007-.007.02-.007.025a2 2 0 0 1-.043.168v.018q-.03.091-.05.174q-.008.01-.006.012l-.056.186c-.024.062-.043.118-.068.18s-.043.124-.068.18c-.025.062-.05.117-.074.18h-.007c-.024.055-.05.117-.08.173l-.019.043c-.006.006-.006.013-.012.019a5.9 5.9 0 0 1-1.742 2.082c-.05.031-.099.069-.149.106c-.012.012-.03.018-.043.03a3 3 0 0 1-.136.094l.018.037h.007l.26-.037h.006q.241-.039.483-.087c.044-.006.093-.019.137-.031l.087-.019c.043-.006.086-.018.13-.024c.037-.013.074-.02.111-.031c.62-.15 1.221-.354 1.798-.595a9.9 9.9 0 0 1-3.85 3.142c.714-.05 1.426-.167 2.114-.366a9.9 9.9 0 0 0 5.857-4.68a9.9 9.9 0 0 1-1.667 3.986a9.8 9.8 0 0 0 1.655-1.376a9.8 9.8 0 0 0 2.61-5.268c.21.98.272 1.99.18 2.987c4.474-6.241.371-12.712-1.346-14.416c-.006-.013-.012-.019-.012-.031c-.006.006-.006.006-.006.012c0-.006 0-.006-.007-.012q-.002.11-.012.223a8 8 0 0 1-.062.415c-.03.136-.068.273-.105.41c-.044.13-.093.266-.15.396a5 5 0 0 1-.185.378a5 5 0 0 1-.477.688c-.093.111-.192.21-.292.31a4 4 0 0 1-.18.155l-.142.124a4 4 0 0 1-.347.241a4 4 0 0 1-.366.211q-.195.091-.39.174a4.4 4.4 0 0 1-.818.223c-.143.025-.285.037-.422.05a5 5 0 0 1-.297.012a5 5 0 0 1-.422-.025a3 3 0 0 1-.421-.062a3 3 0 0 1-.415-.105h-.007c.137-.013.273-.025.41-.05a4.5 4.5 0 0 0 .818-.223c.136-.05.266-.112.39-.174c.13-.062.248-.13.372-.204q.178-.119.347-.248q.168-.13.316-.279c.105-.093.198-.198.291-.304q.14-.167.26-.334c.013-.019.026-.044.038-.062q.095-.15.18-.298a4.3 4.3 0 0 0 .334-.775c.044-.13.075-.266.106-.403c.025-.142.05-.278.062-.415c.012-.142.025-.285.025-.421c0-.1-.007-.199-.013-.298a7 7 0 0 0-.05-.415a5 5 0 0 0-.092-.415c-.044-.13-.087-.267-.137-.397s-.111-.26-.173-.384q-.102-.187-.211-.366a7 7 0 0 0-.248-.34q-.138-.16-.285-.317a4 4 0 0 0-.161-.155q-.422-.327-.862-.607a1 1 0 0 0-.124-.062a2.4 2.4 0 0 0-.589-.26Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1839},"\u003Cpath fill=\"currentColor\" d=\"M24 1.61h-9.94L12 5.16L9.94 1.61H0l12 20.78ZM12 14.08L5.16 2.23h4.43L12 6.41l2.41-4.18h4.43Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1841},"\u003Cpath fill=\"currentColor\" d=\"M13.464 19.83h8.922c.283 0 .562-.073.807-.21a1.6 1.6 0 0 0 .591-.574a1.53 1.53 0 0 0 .216-.783a1.53 1.53 0 0 0-.217-.782L17.792 7.414a1.6 1.6 0 0 0-.591-.573a1.65 1.65 0 0 0-.807-.21c-.283 0-.562.073-.807.21a1.6 1.6 0 0 0-.59.573L13.463 9.99L10.47 4.953a1.6 1.6 0 0 0-.591-.573a1.65 1.65 0 0 0-.807-.21c-.284 0-.562.073-.807.21a1.6 1.6 0 0 0-.591.573L.216 17.481a1.53 1.53 0 0 0-.217.782c0 .275.074.545.216.783a1.6 1.6 0 0 0 .59.574c.246.137.525.21.808.21h5.6c2.22 0 3.856-.946 4.982-2.79l2.733-4.593l1.464-2.457l4.395 7.382h-5.859Zm-6.341-2.46l-3.908-.002l5.858-9.842l2.923 4.921l-1.957 3.29c-.748 1.196-1.597 1.632-2.916 1.632\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1843},"\u003Cpath fill=\"currentColor\" d=\"M12.001 4.8q-4.8 0-6 4.8q1.8-2.4 4.2-1.8c.913.228 1.565.89 2.288 1.624C13.666 10.618 15.027 12 18.001 12q4.8 0 6-4.8q-1.8 2.4-4.2 1.8c-.913-.228-1.565-.89-2.288-1.624C16.337 6.182 14.976 4.8 12.001 4.8m-6 7.2q-4.8 0-6 4.8q1.8-2.4 4.2-1.8c.913.228 1.565.89 2.288 1.624c1.177 1.194 2.538 2.576 5.512 2.576q4.8 0 6-4.8q-1.8 2.4-4.2 1.8c-.913-.228-1.565-.89-2.288-1.624C10.337 13.382 8.976 12 6.001 12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1845},"\u003Cpath fill=\"currentColor\" d=\"M16.405 5.501c-.115 0-.193.014-.274.033v.013h.014c.054.104.146.18.214.273c.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333c-.04-.047-.046-.094-.08-.14c-.04-.067-.126-.1-.18-.153zM5.77 18.695h-.927a51 51 0 0 0-.27-4.41h-.008l-1.41 4.41H2.45l-1.4-4.41h-.01a73 73 0 0 0-.195 4.41H0q.083-2.95.41-5.53h1.15l1.335 4.064h.008l1.347-4.064h1.095q.363 3.024.428 5.53zm4.017-4.08q-.567 3.069-1.492 4.46q-.723 1.074-1.583 1.073q-.228 0-.566-.138v-.494q.166.026.386.026q.402 0 .647-.222q.295-.27.295-.605q0-.233-.23-.944L6.23 14.615h.91l.727 2.36q.247.804.205 1.123q.6-1.598.835-3.483zm12.325 4.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5q.136-.113.255-.25q.649-.76.648-2.253q0-2.745-2.155-2.746q-1.056 0-1.65.697q-.646.762-.646 2.245q-.001 1.459.574 2.14q.524.615 1.583.615q.396 0 .725-.098l1.325.772l.36-.622zM15.5 17.588q-.337-.541-.337-1.736q0-2.09 1.27-2.09q.666 0 .977.5q.336.543.336 1.723q0 2.107-1.27 2.108q-.667 0-.978-.5zm-1.658-.425q0 .706-.516 1.156q-.514.45-1.384.45c-.543 0-1.064-.172-1.573-.515l.237-.476q.656.329 1.19.328q.498 0 .783-.22a.75.75 0 0 0 .3-.615c0-.33-.23-.61-.648-.845c-.388-.213-1.163-.657-1.163-.657c-.422-.307-.632-.636-.632-1.177q0-.674.47-1.085q.471-.416 1.22-.415q.769 0 1.4.41l-.213.476a2.7 2.7 0 0 0-1.064-.23q-.425 0-.654.206a.69.69 0 0 0-.248.524c0 .328.234.61.666.85c.393.215 1.187.67 1.187.67c.433.305.648.63.648 1.168zm9.382-5.852c-.535-.014-.95.04-1.297.188c-.1.04-.26.04-.274.167c.055.053.063.14.11.214c.08.134.218.313.346.407q.208.167.427.31c.26.16.555.255.81.416c.145.094.293.213.44.313c.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214c-.067-.067-.134-.127-.2-.193a3.2 3.2 0 0 0-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106c.227-.06.435-.047.67-.106q.16-.042.32-.094v-.06c-.12-.12-.21-.283-.334-.395a9 9 0 0 0-1.104-.823c-.21-.134-.476-.22-.697-.334c-.08-.04-.214-.06-.26-.127c-.12-.146-.19-.34-.275-.514a18 18 0 0 1-.547-1.163c-.12-.262-.193-.523-.34-.763c-.69-1.137-1.437-1.826-2.586-2.5c-.247-.14-.543-.2-.856-.274c-.167-.008-.334-.02-.5-.027c-.11-.047-.216-.174-.31-.235c-.38-.24-1.364-.76-1.644-.072c-.18.434.267.862.422 1.082c.115.153.26.328.34.5c.047.116.06.235.107.356c.106.294.207.622.347.897c.073.14.153.287.247.413c.054.073.146.107.167.227c-.094.136-.1.334-.154.5c-.24.757-.146 1.693.194 2.25c.107.166.362.534.703.393c.3-.12.234-.5.32-.835c.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555c.206.328.566.668.867.895c.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.5 3.5 0 0 1-.35-.4a9 9 0 0 1-.747-1.218c-.11-.21-.202-.436-.29-.643c-.04-.08-.04-.2-.107-.24c-.1.146-.247.273-.32.453c-.127.288-.14.642-.188 1.01c-.027.007-.014 0-.027.014c-.214-.052-.287-.274-.367-.46c-.2-.475-.233-1.238-.06-1.785c.047-.14.247-.582.167-.716c-.042-.127-.174-.2-.247-.303a2.5 2.5 0 0 1-.24-.427c-.16-.374-.24-.788-.414-1.162c-.08-.173-.22-.354-.334-.513c-.127-.18-.267-.307-.368-.52c-.033-.073-.08-.194-.027-.274c.014-.054.042-.075.094-.09c.088-.072.335.022.422.062c.247.1.455.194.662.334c.094.066.195.193.315.226h.14c.214.047.455.014.655.073c.355.114.675.28.962.46a5.95 5.95 0 0 1 2.085 2.286c.08.154.115.295.188.455c.14.33.313.663.455.982c.14.315.275.636.476.897c.1.14.502.213.682.286c.133.06.34.115.46.188c.23.14.454.3.67.454c.11.076.443.243.463.378\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1847},"\u003Cpath fill=\"currentColor\" d=\"M23.56 14.723a.5.5 0 0 0-.057-.12q-.21-.395-1.007-.231c-1.654.34-2.294.13-2.526-.02c1.342-2.048 2.445-4.522 3.041-6.83c.272-1.05.798-3.523.122-4.73a1.6 1.6 0 0 0-.15-.236C21.693.91 19.8.025 17.51.001c-1.495-.016-2.77.346-3.116.479a10 10 0 0 0-.516-.082a8 8 0 0 0-1.312-.127c-1.182-.019-2.203.264-3.05.84C8.66.79 4.729-.534 2.296 1.19C.935 2.153.309 3.873.43 6.304c.041.818.507 3.334 1.243 5.744q.69 2.26 1.433 3.582q.83 1.493 1.714 1.79c.448.148 1.133.143 1.858-.729a56 56 0 0 1 1.945-2.206c.435.235.906.362 1.39.377v.004a11 11 0 0 0-.247.305c-.339.43-.41.52-1.5.745c-.31.064-1.134.233-1.146.811a.6.6 0 0 0 .091.327c.227.423.922.61 1.015.633c1.335.333 2.505.092 3.372-.679c-.017 2.231.077 4.418.345 5.088c.221.553.762 1.904 2.47 1.904q.375.001.829-.094c1.782-.382 2.556-1.17 2.855-2.906c.15-.87.402-2.875.539-4.101c.017-.07.036-.12.057-.136c0 0 .07-.048.427.03l.044.007l.254.022l.015.001c.847.039 1.911-.142 2.531-.43c.644-.3 1.806-1.033 1.595-1.67M2.37 11.876c-.744-2.435-1.178-4.885-1.212-5.571c-.109-2.172.417-3.683 1.562-4.493c1.837-1.299 4.84-.54 6.108-.13l-.01.01C6.795 3.734 6.843 7.226 6.85 7.44c0 .082.006.199.016.36c.034.586.1 1.68-.074 2.918c-.16 1.15.194 2.276.973 3.089q.12.126.252.237c-.347.371-1.1 1.193-1.903 2.158c-.568.682-.96.551-1.088.508c-.392-.13-.813-.587-1.239-1.322c-.48-.839-.963-2.032-1.415-3.512m6.007 5.088a1.6 1.6 0 0 1-.432-.178c.089-.039.237-.09.483-.14c1.284-.265 1.482-.451 1.915-1a8 8 0 0 1 .367-.443a.4.4 0 0 0 .074-.13c.17-.151.272-.11.436-.042c.156.065.308.26.37.475c.03.102.062.295-.045.445c-.904 1.266-2.222 1.25-3.168 1.013m2.094-3.988l-.052.14c-.133.357-.257.689-.334 1.004c-.667-.002-1.317-.288-1.81-.803c-.628-.655-.913-1.566-.783-2.5c.183-1.308.116-2.447.08-3.059l-.013-.22c.296-.262 1.666-.996 2.643-.772c.446.102.718.406.83.928c.585 2.704.078 3.83-.33 4.736a9 9 0 0 0-.23.546m7.364 4.572q-.024.266-.062.596l-.146.438a.4.4 0 0 0-.018.108c-.006.475-.054.649-.115.87a4.8 4.8 0 0 0-.18 1.057c-.11 1.414-.878 2.227-2.417 2.556c-1.515.325-1.784-.496-2.02-1.221a7 7 0 0 0-.078-.227c-.215-.586-.19-1.412-.157-2.555c.016-.561-.025-1.901-.33-2.646q.006-.44.019-.892a.4.4 0 0 0-.016-.113a2 2 0 0 0-.044-.208c-.122-.428-.42-.786-.78-.935c-.142-.059-.403-.167-.717-.087c.067-.276.183-.587.309-.925l.053-.142c.06-.16.134-.325.213-.5c.426-.948 1.01-2.246.376-5.178c-.237-1.098-1.03-1.634-2.232-1.51c-.72.075-1.38.366-1.709.532a6 6 0 0 0-.196.104c.092-1.106.439-3.174 1.736-4.482a4 4 0 0 1 .303-.276a.35.35 0 0 0 .145-.064c.752-.57 1.695-.85 2.802-.833q.616.01 1.174.081c1.94.355 3.244 1.447 4.036 2.383c.814.962 1.255 1.931 1.431 2.454c-1.323-.134-2.223.127-2.68.78c-.992 1.418.544 4.172 1.282 5.496c.135.242.252.452.289.54c.24.583.551.972.778 1.256c.07.087.138.171.189.245c-.4.116-1.12.383-1.055 1.717a35 35 0 0 1-.084.815c-.046.208-.07.46-.1.766m.89-1.621c-.04-.832.27-.919.597-1.01l.135-.041a1 1 0 0 0 .134.103c.57.376 1.583.421 3.007.134c-.202.177-.519.4-.953.601c-.41.19-1.096.333-1.747.364c-.72.034-1.086-.08-1.173-.151m.57-9.271a7 7 0 0 1-.105 1.001c-.055.358-.112.728-.127 1.177c-.014.436.04.89.093 1.33c.107.887.216 1.8-.207 2.701a4 4 0 0 1-.188-.385a8 8 0 0 0-.325-.617c-.616-1.104-2.057-3.69-1.32-4.744c.38-.543 1.342-.566 2.179-.463m.228 7.013l-.085-.107l-.035-.044c.726-1.2.584-2.387.457-3.439c-.052-.432-.1-.84-.088-1.222c.013-.407.066-.755.118-1.092c.064-.415.13-.844.111-1.35a.6.6 0 0 0 .012-.19c-.046-.486-.6-1.938-1.73-3.253a7.8 7.8 0 0 0-2.688-2.04A9.3 9.3 0 0 1 17.62.746c2.052.046 3.675.814 4.824 2.283a1 1 0 0 1 .067.1c.723 1.356-.276 6.275-2.987 10.54m-8.816-6.116c-.025.18-.31.423-.621.423l-.081-.006a.8.8 0 0 1-.506-.315c-.046-.06-.12-.178-.106-.285a.22.22 0 0 1 .093-.149c.118-.089.352-.122.61-.086c.316.044.642.193.61.418m7.93-.411c.011.08-.049.2-.153.31a.72.72 0 0 1-.408.223l-.075.005c-.293 0-.541-.234-.56-.371c-.024-.177.264-.31.56-.352c.298-.042.612.009.636.185\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1849},"\u003Cpath fill=\"currentColor\" d=\"M22.71 13.145c-1.66 2.092-3.452 4.483-7.038 4.483c-3.203 0-4.397-2.825-4.48-5.12c.701 1.484 2.073 2.685 4.214 2.63c4.117-.133 6.94-3.852 6.94-7.239c0-4.05-3.022-6.972-8.268-6.972c-3.752 0-8.4 1.428-11.455 3.685C2.59 6.937 3.885 9.958 4.35 9.626c2.648-1.904 4.748-3.13 6.784-3.744C8.12 9.244.886 17.05 0 18.425c.1 1.261 1.66 4.648 2.424 4.648c.232 0 .431-.133.664-.365a101 101 0 0 0 5.54-6.765c.222 3.104 1.748 6.898 6.014 6.898c3.819 0 7.604-2.756 9.33-8.965c.2-.764-.73-1.361-1.261-.73zm-4.349-5.013c0 1.959-1.926 2.922-3.685 2.922a4.45 4.45 0 0 1-2.235-.568c1.051-1.592 2.092-3.225 3.21-4.973c1.972.334 2.71 1.43 2.71 2.619\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1851,"hidden":147},"\u003Cpath fill=\"currentColor\" d=\"M6.763 10.036q.002.446.088.71c.064.176.144.368.256.576c.04.063.056.127.056.183q.002.12-.152.24l-.503.335a.4.4 0 0 1-.208.072q-.12-.002-.239-.112a2.5 2.5 0 0 1-.287-.375a6 6 0 0 1-.248-.471q-.934 1.101-2.347 1.101c-.67 0-1.205-.191-1.596-.574q-.588-.575-.59-1.533c0-.678.239-1.23.726-1.644c.487-.415 1.133-.623 1.955-.623c.272 0 .551.024.846.064c.296.04.6.104.918.176v-.583q-.001-.909-.375-1.277c-.255-.248-.686-.367-1.3-.367c-.28 0-.568.031-.863.103q-.443.106-.862.272a2 2 0 0 1-.28.104a.5.5 0 0 1-.127.023q-.168.002-.168-.247v-.391c0-.128.016-.224.056-.28a.6.6 0 0 1 .224-.167a4.6 4.6 0 0 1 1.005-.36a4.8 4.8 0 0 1 1.246-.151c.95 0 1.644.216 2.091.647q.66.645.662 1.963v2.586zm-3.24 1.214c.263 0 .534-.048.822-.144a1.8 1.8 0 0 0 .758-.51a1.3 1.3 0 0 0 .272-.512c.047-.191.08-.423.08-.694v-.335a7 7 0 0 0-.735-.136a6 6 0 0 0-.75-.048c-.535 0-.926.104-1.19.32c-.263.215-.39.518-.39.917c0 .375.095.655.295.846c.191.2.47.296.838.296m6.41.862c-.144 0-.24-.024-.304-.08c-.064-.048-.12-.16-.168-.311L7.586 5.55a1.4 1.4 0 0 1-.072-.32c0-.128.064-.2.191-.2h.783q.227-.001.31.08c.065.048.113.16.16.312l1.342 5.284l1.245-5.284q.058-.24.151-.312a.55.55 0 0 1 .32-.08h.638c.152 0 .256.025.32.08c.063.048.12.16.151.312l1.261 5.348l1.381-5.348q.074-.24.16-.312a.52.52 0 0 1 .311-.08h.743c.127 0 .2.065.2.2c0 .04-.009.08-.017.128a1 1 0 0 1-.056.2l-1.923 6.17q-.072.24-.168.311a.5.5 0 0 1-.303.08h-.687c-.151 0-.255-.024-.32-.08c-.063-.056-.119-.16-.15-.32l-1.238-5.148l-1.23 5.14c-.04.16-.087.264-.15.32c-.065.056-.177.08-.32.08zm10.256.215c-.415 0-.83-.048-1.229-.143c-.399-.096-.71-.2-.918-.32c-.128-.071-.215-.151-.247-.223a.6.6 0 0 1-.048-.224v-.407c0-.167.064-.247.183-.247q.072 0 .144.024c.048.016.12.048.2.08q.408.181.878.279c.319.064.63.096.95.096c.502 0 .894-.088 1.165-.264a.86.86 0 0 0 .415-.758a.78.78 0 0 0-.215-.559c-.144-.151-.416-.287-.807-.415l-1.157-.36c-.583-.183-1.014-.454-1.277-.813a1.9 1.9 0 0 1-.4-1.158q0-.502.216-.886c.144-.255.335-.479.575-.654c.24-.184.51-.32.83-.415c.32-.096.655-.136 1.006-.136c.175 0 .359.008.535.032c.183.024.35.056.518.088q.24.058.455.127q.216.072.336.144a.7.7 0 0 1 .24.2a.43.43 0 0 1 .071.263v.375q-.002.254-.184.256a.8.8 0 0 1-.303-.096a3.65 3.65 0 0 0-1.532-.311c-.455 0-.815.071-1.062.223s-.375.383-.375.71c0 .224.08.416.24.567c.159.152.454.304.877.44l1.134.358c.574.184.99.44 1.237.767s.367.702.367 1.117c0 .343-.072.655-.207.926a2.2 2.2 0 0 1-.583.703c-.248.2-.543.343-.886.447c-.36.111-.734.167-1.142.167m1.509 3.88c-2.626 1.94-6.442 2.969-9.722 2.969c-4.598 0-8.74-1.7-11.87-4.526c-.247-.223-.024-.527.272-.351c3.384 1.963 7.559 3.153 11.877 3.153c2.914 0 6.114-.607 9.06-1.852c.439-.2.814.287.383.607m1.094-1.246c-.336-.43-2.22-.207-3.074-.103c-.255.032-.295-.192-.063-.36c1.5-1.053 3.967-.75 4.254-.399c.287.36-.08 2.826-1.485 4.007c-.215.184-.423.088-.327-.151c.32-.79 1.03-2.57.695-2.994\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1853},"\u003Cpath fill=\"currentColor\" d=\"M12.04 0C5.408-.02.005 5.37.005 11.992h4.638c0-4.923 4.882-8.731 10.064-6.855a6.95 6.95 0 0 1 4.147 4.148c1.889 5.177-1.924 10.055-6.84 10.064v-4.61H7.391v4.623h4.61V24c7.86 0 13.967-7.588 11.397-15.83c-1.115-3.59-3.985-6.446-7.575-7.575A12.8 12.8 0 0 0 12.039 0zM7.39 19.362H3.828v3.564H7.39zm-3.563 0v-2.978H.85v2.978z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1855},"\u003Cpath fill=\"currentColor\" d=\"M16.509 16.845c.147-.507.09-.971-.155-1.316c-.225-.316-.605-.499-1.062-.52l-8.66-.113a.16.16 0 0 1-.133-.07a.2.2 0 0 1-.02-.156a.24.24 0 0 1 .203-.156l8.736-.113c1.035-.049 2.16-.886 2.554-1.913l.499-1.302a.27.27 0 0 0 .014-.168a5.689 5.689 0 0 0-10.937-.584a2.58 2.58 0 0 0-1.794-.498a2.56 2.56 0 0 0-2.223 3.18A3.634 3.634 0 0 0 0 16.751q.002.264.035.527a.174.174 0 0 0 .17.148h15.98a.22.22 0 0 0 .204-.155zm2.757-5.564c-.077 0-.161 0-.239.011c-.056 0-.105.042-.127.098l-.337 1.174c-.148.507-.092.971.154 1.317c.225.316.605.498 1.062.52l1.844.113c.056 0 .105.026.133.07a.2.2 0 0 1 .021.156a.24.24 0 0 1-.204.156l-1.92.112c-1.042.049-2.159.887-2.553 1.914l-.141.358c-.028.072.021.142.099.142h6.597a.174.174 0 0 0 .17-.126a5 5 0 0 0 .175-1.28a4.74 4.74 0 0 0-4.734-4.727\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1857},"\u003Cpath fill=\"currentColor\" d=\"M13.983 11.078h2.119a.186.186 0 0 0 .186-.185V9.006a.186.186 0 0 0-.186-.186h-2.119a.185.185 0 0 0-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 0 0 .186-.186V3.574a.186.186 0 0 0-.186-.185h-2.118a.185.185 0 0 0-.185.185v1.888c0 .102.082.185.185.185m0 2.716h2.118a.187.187 0 0 0 .186-.186V6.29a.186.186 0 0 0-.186-.185h-2.118a.185.185 0 0 0-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 0 0 .184-.186V6.29a.185.185 0 0 0-.185-.185H8.1a.185.185 0 0 0-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 0 0 .185-.186V6.29a.185.185 0 0 0-.185-.185H5.136a.186.186 0 0 0-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 0 0 .186-.185V9.006a.186.186 0 0 0-.186-.186h-2.118a.185.185 0 0 0-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 0 0 .184-.185V9.006a.185.185 0 0 0-.184-.186h-2.12a.185.185 0 0 0-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 0 0 .185-.185V9.006a.185.185 0 0 0-.184-.186h-2.12a.186.186 0 0 0-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 0 0 .184-.185V9.006a.185.185 0 0 0-.184-.186h-2.12a.185.185 0 0 0-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51q-.508.001-1.01.087c-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199l-.226.327c-.284.438-.49.922-.612 1.43c-.23.97-.09 1.882.403 2.661c-.595.332-1.55.413-1.744.42H.751a.75.75 0 0 0-.75.748a11.4 11.4 0 0 0 .692 4.062c.545 1.428 1.355 2.48 2.41 3.124c1.18.723 3.1 1.137 5.275 1.137a15.7 15.7 0 0 0 2.93-.266a12.3 12.3 0 0 0 3.823-1.389a10.5 10.5 0 0 0 2.61-2.136c1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009c.309-.293.55-.65.707-1.046l.098-.288Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1859},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"8\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M7 11v4a2 2 0 0 0 2 2h4\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"13\" y=\"13\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1861},"\u003Cpath fill=\"currentColor\" d=\"M0 0h24v24H0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873c-.736-.345-1.554-.585-1.797-1.14c-.091-.33-.105-.51-.046-.705c.15-.646.915-.84 1.515-.66c.39.12.75.42.976.9c1.034-.676 1.034-.676 1.755-1.125c-.27-.42-.404-.601-.586-.78c-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005c-1.14 1.291-.811 3.541.569 4.471c1.365 1.02 3.361 1.244 3.616 2.205c.24 1.17-.87 1.545-1.966 1.41c-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109c1.74 1.756 6.09 1.666 6.871-1.004c.029-.09.24-.705.074-1.65zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805c0 1.232.063 2.363-.138 2.711c-.33.689-1.18.601-1.566.48c-.396-.196-.597-.466-.83-.855c-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517c.855.51 2.004.675 3.207.405c.783-.226 1.458-.691 1.811-1.411c.51-.93.402-2.07.397-3.346c.012-2.054 0-4.109 0-6.179z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1863},"\u003Cpath fill=\"currentColor\" d=\"M23.642 5.43a.4.4 0 0 1 .014.1v5.149c0 .135-.073.26-.189.326l-4.323 2.49v4.934a.38.38 0 0 1-.188.326L9.93 23.949a.3.3 0 0 1-.066.027l-.024.01a.35.35 0 0 1-.192 0q-.016-.005-.03-.012q-.031-.01-.062-.025L.533 18.755a.38.38 0 0 1-.189-.326V2.974q0-.05.014-.098c.003-.012.01-.02.014-.032a.4.4 0 0 1 .023-.058c.004-.013.015-.022.023-.033l.033-.045l.037-.027q.02-.018.041-.034H.53L5.043.05a.38.38 0 0 1 .375 0L9.93 2.647h.002q.021.015.04.033l.038.027c.013.014.02.03.033.045c.008.011.02.021.025.033q.014.029.024.058c.003.011.01.021.013.032q.014.047.014.098v9.652l3.76-2.164V5.527q0-.05.013-.098q.007-.014.013-.032l.024-.059c.007-.012.018-.02.025-.033l.033-.043q.019-.017.037-.028q.02-.017.041-.032h.001l4.513-2.598a.38.38 0 0 1 .375 0l4.513 2.598c.016.01.027.021.042.031l.036.028l.034.044c.008.012.019.021.024.033a.3.3 0 0 1 .024.06q.01.015.015.032m-.74 5.032V6.179l-1.578.908l-2.182 1.256v4.283zm-4.51 7.75v-4.287l-2.147 1.225l-6.126 3.498v4.325zM1.093 3.624v14.588l8.273 4.761v-4.325l-4.322-2.445l-.002-.003H5.04L5 16.169l-.035-.027l-.001-.002q-.018-.018-.031-.04q-.016-.016-.028-.036h-.002l-.02-.047c-.006-.016-.014-.027-.018-.043l-.008-.057q-.005-.02-.006-.041V5.789l-2.18-1.257zM5.23.81L1.47 2.974l3.76 2.164l3.758-2.164zm1.956 13.505l2.182-1.256V3.624l-1.58.91l-2.182 1.255v9.435zm11.581-10.95l-3.76 2.163l3.76 2.163l3.759-2.164zm-.376 4.978L16.21 7.087l-1.58-.907v4.283l2.182 1.256l1.58.908zm-8.65 9.654l5.514-3.148l2.756-1.572l-3.757-2.163l-4.323 2.489l-3.941 2.27z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1865},"\u003Cpath fill=\"currentColor\" d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04c-2.04.027-3.91 1.183-4.961 3.014c-2.117 3.675-.546 9.103 1.519 12.09c1.013 1.454 2.208 3.09 3.792 3.039c1.52-.065 2.09-.987 3.935-.987c1.831 0 2.35.987 3.96.948c1.637-.026 2.676-1.48 3.676-2.948c1.156-1.688 1.636-3.325 1.662-3.415c-.039-.013-3.182-1.221-3.22-4.857c-.026-3.04 2.48-4.494 2.597-4.559c-1.429-2.09-3.623-2.324-4.39-2.376c-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83c-1.207.052-2.662.805-3.532 1.818c-.78.896-1.454 2.338-1.273 3.714c1.338.104 2.715-.688 3.559-1.701\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1867},"\u003Cpath fill=\"currentColor\" d=\"M7.833 6.611v-.055c0-1-.667-1.5-1.778-1.5H4.389v3.056h1.722c1.111-.001 1.722-.668 1.722-1.501M0 0v24h24V0zm2.167 3.111h4.056c2.389 0 3.833 1.389 3.833 3.445v.055c0 2.333-1.778 3.5-4.056 3.5H4.333v3H2.167zM11.278 21h-9v-1.5h9zM18.5 10.222c0 2-1.5 3.111-3.667 3.111c-1.5-.056-3-.611-4.222-1.667l1.278-1.556c.89.722 1.833 1.222 3 1.222c.889 0 1.444-.333 1.444-.944v-.056c0-.555-.333-.833-2-1.277C12.333 8.555 11 8 11 6v-.056c0-1.833 1.444-3 3.5-3c1.444 0 2.723.444 3.723 1.278l-1.167 1.667c-.889-.611-1.777-1-2.611-1c-.833 0-1.278.389-1.278.889v.056c0 .667.445.889 2.167 1.333c2 .556 3.167 1.278 3.167 3z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1869},"\u003Cpath fill=\"currentColor\" d=\"M24 5.359v13.282A5.36 5.36 0 0 1 18.641 24H5.359A5.36 5.36 0 0 1 0 18.641V5.359A5.36 5.36 0 0 1 5.359 0h13.282A5.36 5.36 0 0 1 24 5.359m-.932-.233A4.196 4.196 0 0 0 18.874.932H5.126A4.196 4.196 0 0 0 .932 5.126v13.748a4.196 4.196 0 0 0 4.194 4.194h13.748a4.196 4.196 0 0 0 4.194-4.194zm-.816.233v13.282a3.613 3.613 0 0 1-3.611 3.611H5.359a3.613 3.613 0 0 1-3.611-3.611V5.359a3.613 3.613 0 0 1 3.611-3.611h13.282a3.613 3.613 0 0 1 3.611 3.611M8.854 4.194v6.495h.962V4.194zM5.483 9.493v1.085h.597V9.48q.283-.037.508-.133q.373-.165.575-.448q.208-.284.208-.649a.9.9 0 0 0-.171-.568a1.4 1.4 0 0 0-.426-.388a3 3 0 0 0-.544-.261a32 32 0 0 0-.545-.209a1.8 1.8 0 0 1-.426-.216q-.164-.12-.164-.284q0-.223.179-.351q.18-.126.485-.127q.344 0 .575.105q.239.105.5.298l.433-.5a2.3 2.3 0 0 0-.605-.433a1.6 1.6 0 0 0-.582-.159v-.968h-.597v.978a2 2 0 0 0-.477.127a1.2 1.2 0 0 0-.545.411q-.194.268-.194.634q0 .335.164.56q.164.224.418.38a4 4 0 0 0 .552.262q.291.104.545.209q.261.104.425.238a.39.39 0 0 1 .165.321q0 .225-.187.359q-.18.134-.537.134q-.381 0-.717-.134a4.4 4.4 0 0 1-.649-.351l-.388.589q.209.173.477.306q.276.135.575.217q.191.046.373.064\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1871},"\u003Cpath fill=\"currentColor\" d=\"M4.459 4.208c.746.606 1.026.56 2.428.466l13.215-.793c.28 0 .047-.28-.046-.326L17.86 1.968c-.42-.326-.981-.7-2.055-.607L3.01 2.295c-.466.046-.56.28-.374.466zm.793 3.08v13.904c0 .747.373 1.027 1.214.98l14.523-.84c.841-.046.935-.56.935-1.167V6.354c0-.606-.233-.933-.748-.887l-15.177.887c-.56.047-.747.327-.747.933zm14.337.745c.093.42 0 .84-.42.888l-.7.14v10.264c-.608.327-1.168.514-1.635.514c-.748 0-.935-.234-1.495-.933l-4.577-7.186v6.952L12.21 19s0 .84-1.168.84l-3.222.186c-.093-.186 0-.653.327-.746l.84-.233V9.854L7.822 9.76c-.094-.42.14-1.026.793-1.073l3.456-.233l4.764 7.279v-6.44l-1.215-.139c-.093-.514.28-.887.747-.933zM1.936 1.035l13.31-.98c1.634-.14 2.055-.047 3.082.7l4.249 2.986c.7.513.934.653.934 1.213v16.378c0 1.026-.373 1.634-1.68 1.726l-15.458.934c-.98.047-1.448-.093-1.962-.747l-3.129-4.06c-.56-.747-.793-1.306-.793-1.96V2.667c0-.839.374-1.54 1.447-1.632\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1873},"\u003Cpath fill=\"currentColor\" d=\"m4.714 15.956l4.718-2.648l.079-.23l-.08-.128h-.23l-.79-.048l-2.695-.073l-2.337-.097l-2.265-.122l-.57-.121l-.535-.704l.055-.353l.48-.321l.685.06l1.518.104l2.277.157l1.651.098l2.447.255h.389l.054-.158l-.133-.097l-.103-.098l-2.356-1.596l-2.55-1.688l-1.336-.972l-.722-.491L2 6.223l-.158-1.008l.656-.722l.88.06l.224.061l.893.686l1.906 1.476l2.49 1.833l.364.304l.146-.104l.018-.072l-.164-.274l-1.354-2.446l-1.445-2.49l-.644-1.032l-.17-.619a3 3 0 0 1-.103-.729L6.287.133L6.7 0l.995.134l.42.364l.619 1.415L9.735 4.14l1.555 3.03l.455.898l.243.832l.09.255h.159V9.01l.127-1.706l.237-2.095l.23-2.695l.08-.76l.376-.91l.747-.492l.583.28l.48.685l-.067.444l-.286 1.851l-.558 2.903l-.365 1.942h.213l.243-.242l.983-1.306l1.652-2.064l.728-.82l.85-.904l.547-.431h1.032l.759 1.129l-.34 1.166l-1.063 1.347l-.88 1.142l-1.263 1.7l-.79 1.36l.074.11l.188-.02l2.853-.606l1.542-.28l1.84-.315l.832.388l.09.395l-.327.807l-1.967.486l-2.307.462l-3.436.813l-.043.03l.049.061l1.548.146l.662.036h1.62l3.018.225l.79.522l.473.638l-.08.485l-1.213.62l-1.64-.389l-3.825-.91l-1.31-.329h-.183v.11l1.093 1.068l2.003 1.81l2.508 2.33l.127.578l-.321.455l-.34-.049l-2.204-1.657l-.85-.747l-1.925-1.62h-.127v.17l.443.649l2.343 3.521l.122 1.08l-.17.353l-.607.213l-.668-.122l-1.372-1.924l-1.415-2.168l-1.141-1.943l-.14.08l-.674 7.254l-.316.37l-.728.28l-.607-.461l-.322-.747l.322-1.476l.388-1.924l.316-1.53l.285-1.9l.17-.632l-.012-.042l-.14.018l-1.432 1.967l-2.18 2.945l-1.724 1.845l-.413.164l-.716-.37l.066-.662l.401-.589l2.386-3.036l1.439-1.882l.929-1.086l-.006-.158h-.055L4.138 18.56l-1.13.146l-.485-.456l.06-.746l.231-.243l1.907-1.312Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1875},"\u003Cpath fill=\"currentColor\" d=\"M12 0C8.21 0 4.831 1.757 2.632 4.501l3.953 6.848A5.454 5.454 0 0 1 12 6.545h10.691A12 12 0 0 0 12 0M1.931 5.47A11.94 11.94 0 0 0 0 12c0 6.012 4.42 10.991 10.189 11.864l3.953-6.847a5.45 5.45 0 0 1-6.865-2.29zm13.342 2.166a5.446 5.446 0 0 1 1.45 7.09l.002.001h-.002l-5.344 9.257q.309.015.621.016c6.627 0 12-5.373 12-12c0-1.54-.29-3.011-.818-4.364zM12 16.364a4.364 4.364 0 1 1 0-8.728a4.364 4.364 0 0 1 0 8.728\"\u002F>"]