-
- Our privacy policy is based on the terms used by the European legislator for the adoption of the General Data Protection Regulation (GDPR).
-
- General information
-
-
- -
- The whole process of generating the pass file happens locally in your browser. For the signing step, only a hashed representation of your data is sent to the server.
-
- -
- Your data is not stored beyond the active browser session and the site does not use cookies.
-
- -
- No data is sent to third parties.
-
- -
- We transmit your data securely over https.
-
- -
- Our server is hosted in Nuremberg, Germany.
-
- -
- The source code of this site is available on GitHub.
-
- -
- By default, Apple Wallet passes are accessible from the lock screen. This can be changed in the settings.
-
- -
- The server provider processes data to provide this site. In order to better understand what measures they take to protect your data, please also read their privacy policy and the data privacy FAQ.
-
-
-
- Contact
-
- Marvin Sextro
- Wilhelm-Busch-Str. 8A
- 30167 Hannover
- Germany
- Email: marvin.sextro@gmail.com
- Website: https://marvinsextro.de
-
- Simplified explanation of the process
-
- This process is only started after accepting this policy and clicking on the Add to Wallet button.
-
-
- First, the following steps happen locally in your browser:
-
-
-
- - Recognizing and extracting the QR code data from your selected certificate
- - Decoding your personal and health-related data from the QR code payload
- - Assembling an incomplete pass file out of your data
- - Generating a file containing hashes of the data stored in the pass file
- - Sending only the file containing the hashes to our server
-
-
-
- Second, the following steps happen on our server:
-
-
-
- - Receiving and checking the hashes which were generated locally
- - Signing the file containing the hashes
- - Sending the signature back
-
-
-
- Finally, the following steps happen locally in your browser:
-
-
-
- - Assembling the signed pass file out of the incomplete file generated locally and the signature
- - Saving the file on your device
-
-
- Locally processed data
-
- The following data is processed on in your browser to generate the pass file.
-
-
- Processed personal data contained in the QR code:
-
-
-
- - Your first and last name
- - Your date of birth
-
-
-
- For each vaccination certificate contained in the QR code, the following data is processed:
-
-
-
- - Targeted disease
- - Vaccine medical product
- - Manufacturer/Marketing Authorization Holder
- - Dose number
- - Total series of doses
- - Date of vaccination
- - Country of vaccination
- - Certificate issuer
- - Unique certificate identifier (UVCI)
-
-
-
- For each test certificate contained in the QR code, the following data is processed:
-
-
-
- - Targeted disease
- - Test type
- - NAA Test name
- - RAT Test name and manufacturer
- - Date/Time of Sample Collection
- - Test Result
- - Testing Centre
- - Country of test
- - Certificate Issuer
- - Unique Certificate Identifier (UVCI)
-
-
-
- For each recovery certificate contained in the QR code, the following data is processed:
-
-
-
- - Targeted disease
- - Date of first positive NAA test result
- - Country of test
- - Certificate Issuer
- - Certificate valid from
- - Certificate valid until
- - Unique Certificate Identifier (UVCI)
-
-
-
- The Digital Covid Certificate Schema contains a detailed specification of which data can be contained in the QR code.
-
- Server provider
-
- Our server provider is Hetzner Online GmbH.
- The following data may be collected and stored in the server log files:
-
-
-
- - The browser types and versions used
- - The operating system used by the accessing system
- - The website from which an accessing system reaches our website (so-called referrers)
- - The date and time of access
- - The pseudonymised IP addresses
-
-
- Your rights
- In accordance with the GDPR you have the following rights:
-
-
- -
- Right of access to your data: You have the right to know what data has been collected about you and how it was processed.
-
- -
- Right to be forgotten: Erasure of your personal data.
-
- -
- Right of rectification: You have the right to correct inaccurate data.
-
- -
- Right of data portability: You have the right to transfer your data from one processing system into another.
-
-
-
- Third parties linked
-
-
- }/>
- }/>
- )
-}
\ No newline at end of file
diff --git a/pages/privacy.tsx b/pages/privacy.tsx
new file mode 100644
index 0000000..1920ac6
--- /dev/null
+++ b/pages/privacy.tsx
@@ -0,0 +1,177 @@
+import {useTranslation} from 'next-i18next';
+import {serverSideTranslations} from 'next-i18next/serverSideTranslations';
+
+import Page from '../components/Page'
+import Card from '../components/Card'
+
+function Privacy(): JSX.Element {
+ const { t } = useTranslation(['common', 'index', 'privacy']);
+ return (
+
+ {t('privacy:gdprNotice')}
+ {t('privacy:generalInfo')}
+
+ {t('privacy:contact')}
+
+ Marvin Sextro
+ Wilhelm-Busch-Str. 8A
+ 30167 Hannover
+ {t('privacy:email')}:
+
+ marvin.sextro@gmail.com
+
+ {t('privacy:website')}:
+
+ https://marvinsextro.de
+
+ {t('privacy:process')}
+ {t('privacy:processFirst')}:
+
+
+ - {t('privacy:processRecognizing')}
+ - {t('privacy:processDecoding')}
+ - {t('privacy:processAssembling')}
+ - {t('privacy:processGenerating')}
+ - {t('privacy:processSending')}
+
+
+ {t('privacy:processSecond')}:
+
+
+ - {t('privacy:processReceiving')}
+ - {t('privacy:processSigning')}
+ - {t('privacy:processSendingBack')}
+
+
+ {t('privacy:processThird')}:
+
+
+ - {t('privacy:processCompleting')}
+ - {t('privacy:processSaving')}
+
+
+ {t('privacy:locallyProcessedData')}
+
+ {t('privacy:the')}
+
+
+ {t('privacy:schema')}
+
+
+ {t('privacy:specification')}
+
+ {t('privacy:serverProvider')}
+ {t('privacy:serverProviderIs')}
+
+
+ Hetzner Online GmbH
+
+
+ Industriestr. 25
+ 91710 Gunzenhausen
+
+ {t('privacy:logFiles')}:
+
+
+ - {t('privacy:logFilesBrowser')}
+ - {t('privacy:logFilesOs')}
+ - {t('privacy:logFilesReferrer')}
+ - {t('privacy:logFilesTime')}
+ - {t('privacy:logFilesIpAddress')}
+
+
+ {t('privacy:rights')}
+ {t('privacy:rightsGranted')}:
+
+
+ - {t('privacy:rightsAccess')}
+ - {t('privacy:rightsErasure')}
+ - {t('privacy:rightsRectification')}
+ - {t('privacy:rightsPortability')}
+
+
+ {t('privacy:thirdParties')}
+
+
+ }/>
+ }/>
+ )
+}
+
+export async function getStaticProps({ locale }) {
+ return {
+ props: {
+ ...(await serverSideTranslations(locale, ['index', 'privacy', 'common'])),
+ },
+ };
+}
+
+export default Privacy;
\ No newline at end of file
diff --git a/public/locales/de/common.yml b/public/locales/de/common.yml
new file mode 100644
index 0000000..986d934
--- /dev/null
+++ b/public/locales/de/common.yml
@@ -0,0 +1,6 @@
+title: CovidPass
+subtitle: Ãœbertrage Deine digitalen EU COVID-Impfzertifikate in Deine Wallet-Apps.
+privacyPolicy: Datenschutz
+donate: Unterstützen
+gitHub: GitHub
+imprint: Impressum
\ No newline at end of file
diff --git a/public/locales/de/errors.yml b/public/locales/de/errors.yml
new file mode 100644
index 0000000..c39b54f
--- /dev/null
+++ b/public/locales/de/errors.yml
@@ -0,0 +1,14 @@
+noFileOrQrCode: Bitte scanne einen QR-Code oder wähle eine Datei aus
+signatureFailed: Fehler beim Signieren der Karte auf dem Server
+decodingFailed: Dekodierung der QR-Code-Daten fehlgeschlagen
+invalidColor: Ungültige Farbe
+vaccinationInfo: Impfinformationen konnten nicht gelesen werden
+nameMissing: Name konnte nicht gelesen werden
+dobMissing: Geburtsdatum konnte nicht gelesen werden
+invalidMedicalProduct: Ungültiges Medizinprodukt
+invalidCountryCode: Ungültiger Ländercode
+invalidManufacturer: Ungültiger Hersteller
+invalidFileType: Ungültiger Dateityp
+couldNotDecode: Dekodierung aus QR-Code fehlgeschlagen
+couldNotFindQrCode: QR-Code konnte in der ausgewählten Datei nicht gefunden werden
+invalidQrCode: Ungültiger QR-Code
diff --git a/public/locales/de/imprint.yml b/public/locales/de/imprint.yml
new file mode 100644
index 0000000..d406c07
--- /dev/null
+++ b/public/locales/de/imprint.yml
@@ -0,0 +1,31 @@
+heading: Angaben gemäß § 5 TMG
+contact: Kontakt
+euDisputeResolution: EU-Streitschlichtung
+euDisputeResolutionParagraph: |
+ Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit: https://ec.europa.eu/consumers/odr.
+ Unsere E-Mail-Adresse finden Sie oben im Impressum.
+consumerDisputeResolution: Verbraucherstreitbeilegung / Universalschlichtungsstelle
+consumerDisputeResolutionParagraph: Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen.
+liabilityForContents: Haftung für Inhalte
+liabilityForContentsParagraph: |
+ Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den
+ allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht
+ verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu
+ forschen, die auf eine rechtswidrige Tätigkeit hinweisen.
+ Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen
+ Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der
+ Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden
+ Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
+liabilityForLinks: Haftung für Links
+liabilityForLinksParagraph: |
+ Unser Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen Einfluss haben.
+ Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der
+ verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten
+ Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte
+ waren zum Zeitpunkt der Verlinkung nicht erkennbar.
+ Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer
+ Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links
+ umgehend entfernen.
+credits: Quellen
+creditsSource: Mit Auszügen aus https://www.e-recht24.de/impressum-generator.html
+creditsTranslation: Ãœbersetzt mit https://www.DeepL.com/Translator (kostenlose Version)
\ No newline at end of file
diff --git a/public/locales/de/index.yml b/public/locales/de/index.yml
new file mode 100644
index 0000000..0b4f9c9
--- /dev/null
+++ b/public/locales/de/index.yml
@@ -0,0 +1,26 @@
+iosHint: Bitte verwende unter iOS den Safari Browser.
+errorClose: Schließen
+selectCertificate: Zertifikat auswählen
+selectCertificateDescription: |
+ Scanne den QR-Code auf Deinem Zertifikat oder wähle einen Screenshot oder eine PDF-Datei mit dem QR-Code.
+ Bitte beachte, dass die Auswahl einer Datei direkt von der Kamera nicht unterstützt wird.
+stopCamera: Kamera stoppen
+startCamera: Kamera starten
+openFile: Datei auswählen (PDF, PNG)
+foundQrCode: QR-Code gefunden!
+pickColor: Farbe auswählen
+pickColorDescription: Wähle eine Hintergrundfarbe für Deine Karte.
+colorWhite: weiß
+colorBlack: schwarz
+colorGrey: grau
+colorGreen: grün
+colorIndigo: indigo
+colorBlue: blau
+colorPurple: lila
+colorTeal: blaugrün
+addToWallet: Zu Wallet hinzufügen
+dataPrivacyDescription: |
+ Datenschutz hat einen besonders hohen Stellenwert, wenn es um die Verarbeitung von gesundheitsbezogenen Daten geht.
+ Damit Du eine fundierte Entscheidung triffst, lies bitte die
+iAcceptThe: Ich akzeptiere die
+privacyPolicy: Datenschutzerklärung
\ No newline at end of file
diff --git a/public/locales/de/privacy.yml b/public/locales/de/privacy.yml
new file mode 100644
index 0000000..1017f2c
--- /dev/null
+++ b/public/locales/de/privacy.yml
@@ -0,0 +1,56 @@
+gdprNotice: |
+ Unsere Datenschutzerklärung orientiert sich an den Vorgaben des europäischen Gesetzgebers für die Umsetzung der Datenschutz-Grundverordnung (DSGVO).
+generalInfo: Generelle Informationen
+generalInfoProcess: |
+ Der gesamte Prozess der Erstellung der Karte findet lokal im Browser statt.
+ Für den Schritt des Signierens wird nur eine gehashte Repräsentation der Daten an den Server geschickt.
+generalInfoStoring: Ihre Daten werden nicht über die aktive Browsersitzung hinaus gespeichert und es werden keine Cookies verwendet.
+generalInfoThirdParties: Keine Daten werden an Dritte weitergeleitet.
+generalInfoHttps: Wir übertragen Ihre Daten sicher über https.
+generalInfoLocation: Unser Server befindet sich in Nürnberg.
+generalInfoGitHub: Der Quellcode dieser Seite ist öffentlich verfügbar auf
+generalInfoLockScreen: Standardmäßig sind Apple Wallet Karten vom Sperrbildschirm erreichbar. Um dies zu ändern, gehen Sie in die
+settings: Einstellungen
+generalInfoProvider: |
+ Der Server-Anbieter verarbeitet Daten, um diese Seite bereitzustellen.
+ Um besser zu verstehen, welche Maßnahmen der Anbieter ergreift, um ihre Daten zu schützen, lesen Sie bitte auch die
+privacyPolicy: Datenschutzerklärung
+andThe: und das
+dataPrivacyFaq: Datenschutz FAQ
+contact: Kontakt
+email: E-Mail
+website: Webseite
+process: Vereinfachte Erklärung des Prozesses
+processFirst: Die folgenden Schritte werden zunächst in Ihrem Browser durchgeführt
+processSecond: Dann werden die folgenden Schritte auf unserem Server abgearbeitet
+processThird: Zuletzt werden die folgenden Schritte in Ihrem Browser durchgeführt
+processRecognizing: Erkennung und Extraktion der QR-Code Daten aus dem von Ihnen gewählten Zertifikat
+processDecoding: Dekodierung Ihrer persönlichen und gesundheitsbezogenen Daten aus den QR-Code Daten
+processAssembling: Erstellung einer unvollständigen Karten-Datei aus Ihren Daten
+processGenerating: Generierung einer Datei, welche Hashes der Daten aus der Karten-Datei beinhaltet
+processSending: Senden der Datei mit den Hashes an unseren Server
+processReceiving: Empfangen und kontrollieren der lokal generierten Hashes
+processSigning: Signieren der Datei, welche die Hashes beinhaltet
+processSendingBack: Zurücksenden der Signatur
+processCompleting: Erstellung der signierten Karten-Datei aus der unvollständigen lokal generierten Datei und der Signatur
+processSaving: Speichern der Datei auf dem Endgerät
+locallyProcessedData: Lokal verarbeitete Daten
+the: Das
+schema: Digital Covid Certificate Schema
+specification: enthält eine detaillierte Spezifikation darüber, welche Daten in dem QR-Code enthalten sind und lokal verarbeitet werden können.
+serverProvider: Server-Anbieter
+serverProviderIs: Unser Server-Anbieter ist
+logFiles: Die folgenden Daten können gesammelt und in den Server Log-Dateien gespeichert werden
+logFilesBrowser: Browser Typ und Version
+logFilesOs: Verwendetes Betriebssystem
+logFilesReferrer: Die Website von der unsere Seite erreicht wird (sog. Referrer)
+logFilesTime: Das Datum und die Uhrzeit des Zugriffs
+logFilesIpAddress: Die pseudonymisierten IP-Adressen
+rights: Ihre Rechte
+rightsGranted: In Ãœbereinstimmung mit der DSGVO haben Sie die folgenden Rechte
+rightsAccess: Das Recht auf Zugriff auf Ihre Daten; Sie haben das Recht, zu erfahren welche Daten über Sie gesammelt wurden und wie diese verarbeitet wurden.
+rightsErasure: Das Recht, vergessen zu werden; Löschung Ihrer persönlichen Daten.
+rightsRectification: Recht der Richtigstellung; Sie haben das Recht, inkorrekte Daten zu korrigieren.
+rightsPortability: Recht auf Portabilität; Sie haben das Recht, Ihre Daten von einem informationsverarbeitenden System in ein anderes zu übertragen.
+thirdParties: Verlinkte Dritte
+appleSync: Apple kann Ihre Apple Wallet Karten über iCloud synchronisieren
\ No newline at end of file
diff --git a/public/locales/en/common.yml b/public/locales/en/common.yml
new file mode 100644
index 0000000..770c203
--- /dev/null
+++ b/public/locales/en/common.yml
@@ -0,0 +1,6 @@
+title: CovidPass
+subtitle: Add your EU Digital Covid Vaccination Certificates to your favorite wallet apps.
+privacyPolicy: Privacy Policy
+donate: Sponsor
+gitHub: GitHub
+imprint: Imprint
\ No newline at end of file
diff --git a/public/locales/en/errors.yml b/public/locales/en/errors.yml
new file mode 100644
index 0000000..b7659a1
--- /dev/null
+++ b/public/locales/en/errors.yml
@@ -0,0 +1,14 @@
+noFileOrQrCode: Please scan a QR Code, or select a file
+signatureFailed: Error while signing pass on server
+decodingFailed: Failed to decode QR code payload
+invalidColor: Invalid color
+vaccinationInfo: Failed to read vaccination information
+nameMissing: Failed to read name
+dobMissing: Failed to read date of birth
+invalidMedicalProduct: Invalid medical product
+invalidCountryCode: Invalid country code
+invalidManufacturer: Invalid manufacturer
+invalidFileType: Invalid file type
+couldNotDecode: Could not decode QR code from file
+couldNotFindQrCode: Could not find QR Code in provided file
+invalidQrCode: Invalid QR code
diff --git a/public/locales/en/imprint.yml b/public/locales/en/imprint.yml
new file mode 100644
index 0000000..4250e5b
--- /dev/null
+++ b/public/locales/en/imprint.yml
@@ -0,0 +1,27 @@
+heading: Information according to § 5 TMG
+contact: Contact
+euDisputeResolution: EU Dispute Resolution
+euDisputeResolutionParagraph: |
+ The European Commission provides a platform for online dispute resolution (OS) https://ec.europa.eu/consumers/odr.
+ You can find our e-mail address in the imprint above.
+consumerDisputeResolution: Consumer dispute resolution / universal arbitration board
+consumerDisputeResolutionParagraph: We are not willing or obliged to participate in dispute resolution proceedings before a consumer arbitration board.
+liabilityForContents: Liability for contents
+liabilityForContentsParagraph: |
+ As a service provider, we are responsible for our own content on these pages in accordance with § 7 paragraph 1 TMG under the general laws.
+ According to §§ 8 to 10 TMG, we are not obligated to monitor transmitted or stored information or to investigate circumstances that indicate illegal activity.
+ Obligations to remove or block the use of information under the general laws remain unaffected.
+ However, liability in this regard is only possible from the point in time at which a concrete infringement of the law becomes known.
+ If we become aware of any such infringements, we will remove the relevant content immediately.
+liabilityForLinks: Liability for links
+liabilityForLinksParagraph: |
+ Our offer contains links to external websites of third parties, on whose contents we have no influence.
+ Therefore, we cannot assume any liability for these external contents.
+ The respective provider or operator of the sites is always responsible for the content of the linked sites.
+ The linked pages were checked for possible legal violations at the time of linking.
+ Illegal contents were not recognizable at the time of linking.
+ However, a permanent control of the contents of the linked pages is not reasonable without concrete evidence of a violation of the law.
+ If we become aware of any infringements, we will remove such links immediately.
+credits: Credits
+creditsSource: With excerpts from https://www.e-recht24.de/impressum-generator.html
+creditsTranslation: Translated with https://www.DeepL.com/Translator (free version)
\ No newline at end of file
diff --git a/public/locales/en/index.yml b/public/locales/en/index.yml
new file mode 100644
index 0000000..6564f63
--- /dev/null
+++ b/public/locales/en/index.yml
@@ -0,0 +1,26 @@
+iosHint: On iOS, please use the Safari Browser.
+errorClose: Close
+selectCertificate: Select Certificate
+selectCertificateDescription: |
+ Please scan the QR code on your certificate or select a screenshot or PDF page with the QR code.
+ Note that selecting a file directly from camera is not supported.
+stopCamera: Stop Camera
+startCamera: Start Camera
+openFile: Select File (PDF, PNG)
+foundQrCode: Found QR Code!
+pickColor: Pick a Color
+pickColorDescription: Pick a background color for your pass.
+colorWhite: white
+colorBlack: black
+colorGrey: grey
+colorGreen: green
+colorIndigo: indigo
+colorBlue: blue
+colorPurple: purple
+colorTeal: teal
+addToWallet: Add to Wallet
+dataPrivacyDescription: |
+ Data privacy is of special importance when processing health-related data.
+ In order for you to make an informed decision, please read the
+iAcceptThe: I accept the
+privacyPolicy: Privacy Policy
\ No newline at end of file
diff --git a/public/locales/en/privacy.yml b/public/locales/en/privacy.yml
new file mode 100644
index 0000000..65c62a4
--- /dev/null
+++ b/public/locales/en/privacy.yml
@@ -0,0 +1,57 @@
+gdprNotice: |
+ Our privacy policy is based on the terms used by the European legislator
+ for the adoption of the General Data Protection Regulation (GDPR).
+generalInfo: General information
+generalInfoProcess: |
+ The whole process of generating the pass file happens locally in your browser.
+ For the signing step, only a hashed representation of your data is sent to the server.
+generalInfoStoring: Your data is not stored beyond the active browser session and the site does not use cookies.
+generalInfoThirdParties: No data is sent to third parties.
+generalInfoHttps: We transmit your data securely over https.
+generalInfoLocation: Our server is hosted in Nuremberg, Germany.
+generalInfoGitHub: The source code of this site is available on
+generalInfoLockScreen: By default, Apple Wallet passes are accessible from the lock screen. This can be changed in the
+settings: settings
+generalInfoProvider: |
+ The server provider processes data to provide this site.
+ In order to better understand what measures they take to protect your data, please also read their
+privacyPolicy: privacy policy
+andThe: and the
+dataPrivacyFaq: data privacy FAQ
+contact: Contact
+email: Email
+website: Website
+process: Simplified of the process
+processFirst: First, the following steps happen locally in your browser
+processSecond: Second, the following steps happen on our server
+processThird: Finally, the following steps happen locally in your browser
+processRecognizing: Recognizing and extracting the QR code data from your selected certificate
+processDecoding: Decoding your personal and health-related data from the QR code payload
+processAssembling: Assembling an incomplete pass file out of your data
+processGenerating: Generating a file containing hashes of the data stored in the pass file
+processSending: Sending only the file containing the hashes to our server
+processReceiving: Receiving and checking the hashes which were generated locally
+processSigning: Signing the file containing the hashes
+processSendingBack: Sending the signature back
+processCompleting: Assembling the signed pass file out of the incomplete file generated locally and the signature
+processSaving: Saving the file on your device
+locallyProcessedData: Locally processed data
+the: The
+schema: Digital Covid Certificate Schema
+specification: contains a detailed specification of which data can be contained in the QR code and will be processed in your browser.
+serverProvider: Server provider
+serverProviderIs: Our server provider is
+logFiles: The following data may be collected and stored in the server log files
+logFilesBrowser: The browser types and versions used
+logFilesOs: The operating system used by the accessing system
+logFilesReferrer: The website from which an accessing system reaches our website (so-called referrers)
+logFilesTime: The date and time of access
+logFilesIpAddress: The pseudonymised IP addresses
+rights: Your rights
+rightsGranted: In accordance with the GDPR you have the following rights
+rightsAccess: Right of access to your data; You have the right to know what data has been collected about you and how it was processed.
+rightsErasure: Right to be forgotten; Erasure of your personal data.
+rightsRectification: Right of rectification; You have the right to correct inaccurate data.
+rightsPortability: Right of data portability; You have the right to transfer your data from one processing system into another.
+thirdParties: Third parties linked
+appleSync: Apple may sync your passes via iCloud
\ No newline at end of file
diff --git a/src/constants.js b/src/constants.js
deleted file mode 100644
index af4c362..0000000
--- a/src/constants.js
+++ /dev/null
@@ -1,19 +0,0 @@
-exports.VALUE_SET_BASE_URL = 'https://raw.githubusercontent.com/ehn-dcc-development/ehn-dcc-valuesets/main/'
-exports.VALUE_TYPES = {
- medicalProducts: 'vaccine-medicinal-product.json',
- countryCodes: 'country-2-codes.json',
- manufacturers: 'vaccine-mah-manf.json',
-}
-exports.COLORS = {
- white: 'rgb(255, 255, 255)',
- black: 'rgb(0, 0, 0)',
- grey: 'rgb(33, 33, 33)',
- green: 'rgb(27, 94, 32)',
- indigo: 'rgb(26, 35, 126)',
- blue: 'rgb(1, 87, 155)',
- purple: 'rgb(74, 20, 140)',
- teal: 'rgb(0, 77, 64)',
-}
-exports.NAME = 'CovidPass'
-exports.PASS_IDENTIFIER = 'pass.de.marvinsextro.covidpass' // WELL KNOWN
-exports.TEAM_IDENTIFIER = 'X8Q7Q2RLTD' // WELL KNOWN
diff --git a/src/constants.ts b/src/constants.ts
new file mode 100644
index 0000000..87fc425
--- /dev/null
+++ b/src/constants.ts
@@ -0,0 +1,21 @@
+export class Constants {
+ public static NAME = 'CovidPass'
+ public static PASS_IDENTIFIER = 'pass.de.marvinsextro.covidpass'
+ public static TEAM_IDENTIFIER = 'X8Q7Q2RLTD'
+
+ public static COLORS = {
+ white: 'rgb(255, 255, 255)',
+ black: 'rgb(0, 0, 0)',
+ grey: 'rgb(33, 33, 33)',
+ green: 'rgb(27, 94, 32)',
+ indigo: 'rgb(26, 35, 126)',
+ blue: 'rgb(1, 87, 155)',
+ purple: 'rgb(74, 20, 140)',
+ teal: 'rgb(0, 77, 64)',
+ }
+
+ public static img1xBlack: Buffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAABU0lEQVR4AWIYaWAUiAExoB06gGggDOMwripJthAgGwBoCGYDBIDIgAFBwDAABoJjhBgEAEChBBBaAA0JyeKAqR0hmnWx3p5o8MHdvfd9Z7SHH8Dr723iCpdoYBOZtoJ9XOALYghxjj0sw1k7OEEAiekVxyjBShto4h6SUg8N5KGqhCHEshdsI3FdiCM3SNwnxA1uKxKXZm3QfJCPQ3RmYVAfW5j2YH+QfkweQ1uDviEmdNHBR8SYddxCDOC2ojeI4RlL+K2Kd8UYcFvRE8TQxyKmVdFLOAbcVnQNMeEUCzCKPQbcVnQEiRilGQNuK9qFRI1SjAG3Fa0iiDh8hgPcQWIKwG1dHsQyD+qKCCGWhCgiVZ7T7yhagw9JyQe37FTGCKI0QhlWq2GiGDNBDU6qYwyJaYw6nFbBABJhgAoyKYc2QoghRBs5ZF4BLTz+aaGAef+nHwt5/579e2c2AAAAAElFTkSuQmCC', 'base64');
+ public static img2xBlack: Buffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAACZ0lEQVR4Ae3TA8xcURRF4dq2ozqqbRtxUjeq7Zi127C2bXvSsLZtu/PP6ardjs577765K/li7mQnizGbzWaz2Wx50BXjMRYdkR0JXRq0xVq8g/ziDZaiGVIiYSqLybgPCdMtjEZpP1+oP45CYnQYPZDd7xeKnPMX1L+QAoULmnUhX12wVrwupHjBKnC8tFgEMcRcpIFjrYQYZhkcqQXEUM2h3haIoTZDvRsQQ92AeiGIoUJQTwxnB7ID2YHsQHYgO5B7zmMlztiBfhbCCKQAJUuOYbADIYRe+FP7TB1IfxyiUaYOpD8O0TJzB9IfpyqCZg6kP05ZPIBESL0gJAIBVENONMRJF8cJQr1nkDBdRWb8WBYEHB8HeAb1bkPCNB5E/xlJfRzgNtQ7CQnTWNB/R9IfBzgJ9TZCwnQJGcMYSX8cYCPUmw6JwCqkwt9K5cg4wHSo1x0SoZX/GUJ/HKA71KsAURhJdxygAtRLg1cKI2mP8wpp4EibIQoj6YwDbIZj9YIojKQzDtALjlUESZAYrEN2fK2u4jhJKAJH2wmJ0UOsRQBJECU74XjtIYZoD8dLi1sQj7uFtHClIRCPGwLXyox7EI+6h8xwtR4Qj+oB10uFExCPOYFU8ERVEIR4RBBV4KlGQTxiFDxXWgQgLgsgLTxZQdyBuOQOCsLTVcELiMNeoAqMqBHeQhzyFo1gVC3wCqLsFVrAyGrgMUTJY9SA0RXDMYVxjqEYfFEGzITEyUxkgO9qhEuQKF1CI/i69BiCB5AwPcAQpEfClBUDcR7yF+cxEFmR0NXDVFz5YirqwWaz2Ww2W9R9AE/cBAw+cEeMAAAAAElFTkSuQmCC', 'base64')
+ public static img1xWhite: Buffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAQAAABLCVATAAABUUlEQVRIx+XWP0tCURjH8cf+IBLaELSEvoIcWkRHX0AQbm4tbQ7uTi4XhIbAxfdQQ9HqkK05RINIgZtUgoOQ6A3026Sc9D73jzblb73P/XAOnPM8R2RTwyFF7rmjwMGqxC5n3PLNLDY3nLITDDnhih5O+eCSpB9inyLPeKVJgZgbk+QTv3nnWIcaBMmDDo0DQWMdCpj/A3W4oLo+9MqRiAgv60EzJmaeNB2aGr82qPK1wOzxaFRMdag/L3pjW4QMA5WBvg61ja1siYiQoakw0NahulFWI2R8WWagrkPlX4VzypGBsg5lF0prhFQGsjoUXmpn15zz5Mj0CLt1JMv3/bDcO2QC2xdjk/BqttYfrEdEhAgdT6ZDxM8ASDF0ZYak/I6jHBOVmZALMtnyjByZEfmgkzZNd4npkl5laEepGIfBpkJ09UdEnBItWpSIb+xL6gcK3j+JspcAUAAAAABJRU5ErkJggg==', 'base64')
+ public static img2xWhite: Buffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAQAAAD/5HvMAAACZklEQVRo3u3YsWsTYRiA8VcNCa3UIoJLoVsXt0KHKEWwYAfN4l4c3Bq6SCGIf0GkdJDSsYOLYCFChVKXLi7B0dKAEAgVSlpqpVBKsJLmcajFXHKXu/e7+3IZ7llzvPmF9458iUhSUtLAx11esMwSz7kdNyXNMzb4w1W/+cATbsSDmeQtP3Grzhvu9XdFL/mGX1/JW19h14r8srnCHivyK+oVBlxRf1bIQ9WKgqwwa47J8B4bvSNtBiphq3UTTg6bPdWDPlsFbelB+1ZB+3pQyyqopQdZLgEloAQU+h2rlPg+KKAWr7kuwjVeDQKoxULbnC9xgxwcEYrxgjo4IqzHCerm3KcZH6ibM8lxdDe1xyejzAPu8JhKGA5NPejUddAPRv69fouyMQdO9aAD10HLbVf8J2k5cKAHVVwHLTmuuSTpOVDRgzZdB9W42UXSc2BTD1r1GPWRlOO6lAEHVvWgec9hpU6EmgPzetBUj3EepMAcmNKD0jR0JAWnYfRjmq2eQztICo7Jz0QRERZ8xraRVBw6n8ugoHEufAZ/uvzHh0cqzgXjYhbbvsN/sUHZF+5sW0xjDhvNmYMy1CPn1MmIeRQiBxUkTIxwFCnn6Or4Yk7KRwrKS9hIsRsZZ9f7W1BDynoeZ3U1Q/wl3EEqRgIqSlSRcZyfzSqHety7SGMchuIcMibRRpYzY85ZZHePgzTLuRHnnFmxE7mehzb3GuTEXkxzouKcMC12Y4KdwJwdJsR+DLMWiLPGsPQrZqn1xNSs3ciepCEKHgfXYwoMSRwxyiJVB6bKIqMSb8ywwh57rDAjSUlJA99fMZuE+02zWzkAAAAASUVORK5CYII=', 'base64')
+}
diff --git a/src/decode.js b/src/decode.js
deleted file mode 100644
index fe17213..0000000
--- a/src/decode.js
+++ /dev/null
@@ -1,65 +0,0 @@
-// Taken from https://github.com/ehn-dcc-development/ehn-sign-verify-javascript-trivial/blob/main/cose_verify.js
-// and https://github.com/ehn-dcc-development/dgc-check-mobile-app/blob/2c2ebf4e9b7650ceef44f7e1fb05a57572830c5b/src/app/cose-js/sign.js
-
-const base45 = require('base45-js')
-const zlib = require('pako')
-const cbor = require('cbor-js')
-
-export function typedArrayToBufferSliced(array) {
- return array.buffer.slice(array.byteOffset, array.byteLength + array.byteOffset)
-}
-
-export function typedArrayToBuffer(array) {
- var buffer = new ArrayBuffer(array.length)
-
- array.map(function(value, i) {
- buffer[i] = value
- })
- return array.buffer
-}
-
-export function toBuffer(ab) {
- var buf = Buffer.alloc(ab.byteLength)
- var view = new Uint8Array(ab)
-
- for (var i = 0; i < buf.length; ++i) {
- buf[i] = view[i]
- }
- return buf
-}
-
-export function decodeData(data) {
- data = data.toString('ASCII')
-
- if (data.startsWith('HC1')) {
- data = data.substring(3)
- if (data.startsWith(':')) {
- data = data.substring(1)
- } else {
- console.log("Warning: unsafe HC1: header - update to v0.0.4")
- }
- } else {
- console.log("Warning: no HC1: header - update to v0.0.4")
- }
-
- data = base45.decode(data)
-
- if (data[0] == 0x78) {
- data = zlib.inflate(data)
- }
-
- data = cbor.decode(typedArrayToBuffer(data))
-
- if (!Array.isArray(data)) {
- throw new Error('Expecting Array')
- }
-
- if (data.length !== 4) {
- throw new Error('Expecting Array of length 4')
- }
-
- let plaintext = data[2]
- let decoded = cbor.decode(typedArrayToBufferSliced(plaintext))
-
- return decoded
-}
\ No newline at end of file
diff --git a/src/decode.ts b/src/decode.ts
new file mode 100644
index 0000000..ae20528
--- /dev/null
+++ b/src/decode.ts
@@ -0,0 +1,48 @@
+// Taken from https://github.com/ehn-dcc-development/ehn-sign-verify-javascript-trivial/blob/main/cose_verify.js
+// and https://github.com/ehn-dcc-development/dgc-check-mobile-app/blob/main/src/app/cose-js/sign.js
+
+import base45 from 'base45';
+import pako from 'pako';
+import cbor from 'cbor-js';
+
+export function typedArrayToBufferSliced(array: Uint8Array): ArrayBuffer {
+ return array.buffer.slice(array.byteOffset, array.byteLength + array.byteOffset);
+}
+
+export function typedArrayToBuffer(array: Uint8Array): ArrayBuffer {
+ var buffer = new ArrayBuffer(array.length);
+
+ array.map(function (value, i) {
+ return buffer[i] = value;
+ })
+
+ return array.buffer;
+}
+
+export function decodeData(data: string): Object {
+
+ if (data.startsWith('HC1')) {
+ data = data.substring(3);
+
+ if (data.startsWith(':')) {
+ data = data.substring(1);
+ }
+ }
+
+ var arrayBuffer: Uint8Array = base45.decode(data);
+
+ if (arrayBuffer[0] == 0x78) {
+ arrayBuffer = pako.inflate(arrayBuffer);
+ }
+
+ var payloadArray: Array = cbor.decode(typedArrayToBuffer(arrayBuffer));
+
+ if (!Array.isArray(payloadArray) || payloadArray.length !== 4) {
+ throw new Error('decodingFailed');
+ }
+
+ var plaintext: Uint8Array = payloadArray[2];
+ var decoded: Object = cbor.decode(typedArrayToBufferSliced(plaintext));
+
+ return decoded;
+}
\ No newline at end of file
diff --git a/src/img.js b/src/img.js
deleted file mode 100644
index 6eed8f5..0000000
--- a/src/img.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
- img1xblack: new Buffer.from('iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAABU0lEQVR4AWIYaWAUiAExoB06gGggDOMwripJthAgGwBoCGYDBIDIgAFBwDAABoJjhBgEAEChBBBaAA0JyeKAqR0hmnWx3p5o8MHdvfd9Z7SHH8Dr723iCpdoYBOZtoJ9XOALYghxjj0sw1k7OEEAiekVxyjBShto4h6SUg8N5KGqhCHEshdsI3FdiCM3SNwnxA1uKxKXZm3QfJCPQ3RmYVAfW5j2YH+QfkweQ1uDviEmdNHBR8SYddxCDOC2ojeI4RlL+K2Kd8UYcFvRE8TQxyKmVdFLOAbcVnQNMeEUCzCKPQbcVnQEiRilGQNuK9qFRI1SjAG3Fa0iiDh8hgPcQWIKwG1dHsQyD+qKCCGWhCgiVZ7T7yhagw9JyQe37FTGCKI0QhlWq2GiGDNBDU6qYwyJaYw6nFbBABJhgAoyKYc2QoghRBs5ZF4BLTz+aaGAef+nHwt5/579e2c2AAAAAElFTkSuQmCC', 'base64'),
- img2xblack: new Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAACZ0lEQVR4Ae3TA8xcURRF4dq2ozqqbRtxUjeq7Zi127C2bXvSsLZtu/PP6ardjs577765K/li7mQnizGbzWaz2Wx50BXjMRYdkR0JXRq0xVq8g/ziDZaiGVIiYSqLybgPCdMtjEZpP1+oP45CYnQYPZDd7xeKnPMX1L+QAoULmnUhX12wVrwupHjBKnC8tFgEMcRcpIFjrYQYZhkcqQXEUM2h3haIoTZDvRsQQ92AeiGIoUJQTwxnB7ID2YHsQHYgO5B7zmMlztiBfhbCCKQAJUuOYbADIYRe+FP7TB1IfxyiUaYOpD8O0TJzB9IfpyqCZg6kP05ZPIBESL0gJAIBVENONMRJF8cJQr1nkDBdRWb8WBYEHB8HeAb1bkPCNB5E/xlJfRzgNtQ7CQnTWNB/R9IfBzgJ9TZCwnQJGcMYSX8cYCPUmw6JwCqkwt9K5cg4wHSo1x0SoZX/GUJ/HKA71KsAURhJdxygAtRLg1cKI2mP8wpp4EibIQoj6YwDbIZj9YIojKQzDtALjlUESZAYrEN2fK2u4jhJKAJH2wmJ0UOsRQBJECU74XjtIYZoD8dLi1sQj7uFtHClIRCPGwLXyox7EI+6h8xwtR4Qj+oB10uFExCPOYFU8ERVEIR4RBBV4KlGQTxiFDxXWgQgLgsgLTxZQdyBuOQOCsLTVcELiMNeoAqMqBHeQhzyFo1gVC3wCqLsFVrAyGrgMUTJY9SA0RXDMYVxjqEYfFEGzITEyUxkgO9qhEuQKF1CI/i69BiCB5AwPcAQpEfClBUDcR7yF+cxEFmR0NXDVFz5YirqwWaz2Ww2W9R9AE/cBAw+cEeMAAAAAElFTkSuQmCC', 'base64'),
- img1xwhite: new Buffer.from('iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAQAAABLCVATAAABUUlEQVRIx+XWP0tCURjH8cf+IBLaELSEvoIcWkRHX0AQbm4tbQ7uTi4XhIbAxfdQQ9HqkK05RINIgZtUgoOQ6A3026Sc9D73jzblb73P/XAOnPM8R2RTwyFF7rmjwMGqxC5n3PLNLDY3nLITDDnhih5O+eCSpB9inyLPeKVJgZgbk+QTv3nnWIcaBMmDDo0DQWMdCpj/A3W4oLo+9MqRiAgv60EzJmaeNB2aGr82qPK1wOzxaFRMdag/L3pjW4QMA5WBvg61ja1siYiQoakw0NahulFWI2R8WWagrkPlX4VzypGBsg5lF0prhFQGsjoUXmpn15zz5Mj0CLt1JMv3/bDcO2QC2xdjk/BqttYfrEdEhAgdT6ZDxM8ASDF0ZYak/I6jHBOVmZALMtnyjByZEfmgkzZNd4npkl5laEepGIfBpkJ09UdEnBItWpSIb+xL6gcK3j+JspcAUAAAAABJRU5ErkJggg==', 'base64'),
- img2xwhite: new Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAQAAAD/5HvMAAACZklEQVRo3u3YsWsTYRiA8VcNCa3UIoJLoVsXt0KHKEWwYAfN4l4c3Bq6SCGIf0GkdJDSsYOLYCFChVKXLi7B0dKAEAgVSlpqpVBKsJLmcajFXHKXu/e7+3IZ7llzvPmF9458iUhSUtLAx11esMwSz7kdNyXNMzb4w1W/+cATbsSDmeQtP3Grzhvu9XdFL/mGX1/JW19h14r8srnCHivyK+oVBlxRf1bIQ9WKgqwwa47J8B4bvSNtBiphq3UTTg6bPdWDPlsFbelB+1ZB+3pQyyqopQdZLgEloAQU+h2rlPg+KKAWr7kuwjVeDQKoxULbnC9xgxwcEYrxgjo4IqzHCerm3KcZH6ibM8lxdDe1xyejzAPu8JhKGA5NPejUddAPRv69fouyMQdO9aAD10HLbVf8J2k5cKAHVVwHLTmuuSTpOVDRgzZdB9W42UXSc2BTD1r1GPWRlOO6lAEHVvWgec9hpU6EmgPzetBUj3EepMAcmNKD0jR0JAWnYfRjmq2eQztICo7Jz0QRERZ8xraRVBw6n8ugoHEufAZ/uvzHh0cqzgXjYhbbvsN/sUHZF+5sW0xjDhvNmYMy1CPn1MmIeRQiBxUkTIxwFCnn6Or4Yk7KRwrKS9hIsRsZZ9f7W1BDynoeZ3U1Q/wl3EEqRgIqSlSRcZyfzSqHety7SGMchuIcMibRRpYzY85ZZHePgzTLuRHnnFmxE7mehzb3GuTEXkxzouKcMC12Y4KdwJwdJsR+DLMWiLPGsPQrZqn1xNSs3ciepCEKHgfXYwoMSRwxyiJVB6bKIqMSb8ywwh57rDAjSUlJA99fMZuE+02zWzkAAAAASUVORK5CYII=', 'base64'),
-}
diff --git a/src/pass.js b/src/pass.js
deleted file mode 100644
index df54ecf..0000000
--- a/src/pass.js
+++ /dev/null
@@ -1,185 +0,0 @@
-'use strict';
-
-const constants = require('./constants')
-const utils = require('./utils')
-
-const { Payload } = require('./payload')
-const { toBuffer } = require('do-not-zip')
-const crypto = require('crypto')
-
-exports.createPass = async function(data) {
- function getBufferHash(buffer) {
- // creating hash
- const sha = crypto.createHash('sha1');
- sha.update(buffer);
- return sha.digest('hex');
- }
-
- async function signPassWithRemote(pass, payload) {
- // From pass-js
- // https://github.com/walletpass/pass-js/blob/2b6475749582ca3ea742a91466303cb0eb01a13a/src/pass.ts
-
- // Creating new Zip file
- const zip = []
-
- // Adding required files
- // Create pass.json
- zip.push({ path: 'pass.json', data: Buffer.from(JSON.stringify(pass)) })
- const passHash = getBufferHash(Buffer.from(JSON.stringify(pass)))
-
- zip.push({ path: 'icon.png', data: payload.img1x })
- zip.push({ path: 'icon@2x.png', data: payload.img2x })
- zip.push({ path: 'logo.png', data: payload.img1x })
- zip.push({ path: 'logo@2x.png', data: payload.img2x })
-
- // adding manifest
- // Construct manifest here
- const manifestJson = JSON.stringify(
- zip.reduce(
- (res, { path, data }) => {
- res[path] = getBufferHash(data);
- return res;
- },
- {},
- ),
- );
- zip.push({ path: 'manifest.json', data: manifestJson });
-
- // Load API_BASE_URL form nextjs backend
- const configResponse = await fetch('/api/config')
- const apiBaseUrl = (await configResponse.json()).apiBaseUrl
-
- const response = await fetch(`${apiBaseUrl}/sign`, {
- method: 'POST',
- headers: {
- 'Accept': 'application/octet-stream',
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify({
- PassJsonHash: passHash,
- useBlackVersion: !payload.dark
- })
- })
-
- if (response.status !== 200) {
- return undefined
- }
-
- const manifestSignature = await response.arrayBuffer()
-
- zip.push({ path: 'signature', data: Buffer.from(manifestSignature) });
-
- // finished!
- return toBuffer(zip);
- }
-
- let valueSets
-
- try {
- valueSets = await utils.getValueSets()
- } catch {
- return undefined
- }
-
- let payload
-
- try {
- payload = new Payload(data, valueSets)
- } catch (e) {
- return undefined
- }
-
- const qrCode = {
- message: payload.raw,
- format: "PKBarcodeFormatQR",
- messageEncoding: "utf-8"
- }
-
- const pass = {
- passTypeIdentifier: constants.PASS_IDENTIFIER,
- teamIdentifier: constants.TEAM_IDENTIFIER,
- sharingProhibited: false,
- voided: false,
- formatVersion: 1,
- logoText: constants.NAME,
- organizationName: constants.NAME,
- description: constants.NAME,
- labelColor: payload.labelColor,
- foregroundColor: payload.foregroundColor,
- backgroundColor: payload.backgroundColor,
- serialNumber: payload.uvci,
- barcodes: [qrCode],
- barcode: qrCode,
- generic: {
- headerFields: [
- {
- key: "type",
- label: "Certificate Type",
- value: payload.certificateType
- }
- ],
- primaryFields: [
- {
- key: "name",
- label: "Name",
- value: payload.name
- }
- ],
- secondaryFields: [
- {
- key: "dose",
- label: "Dose",
- value: payload.dose
- },
- {
- key: "dov",
- label: "Date of Vaccination",
- value: payload.dateOfVaccination,
- textAlignment: "PKTextAlignmentRight"
- }
- ],
- auxiliaryFields: [
- {
- key: "vaccine",
- label: "Vaccine",
- value: payload.vaccineName
- },
- {
- key: "dob",
- label: "Date of Birth", value:
- payload.dateOfBirth,
- textAlignment: "PKTextAlignmentRight"
- }
- ],
- backFields: [
- {
- key: "uvci",
- label: "Unique Certificate Identifier (UVCI)",
- value: payload.uvci
- },
- {
- key: "issuer",
- label: "Certificate Issuer",
- value: payload.certificateIssuer
- },
- {
- key: "country",
- label: "Country of Vaccination",
- value: payload.countryOfVaccination
- },
- {
- key: "manufacturer",
- label: "Manufacturer",
- value: payload.manufacturer
- },
- {
- key: "disclaimer",
- label: "Disclaimer",
- value: "This certificate is only valid in combination with the ID card of the certificate holder and expires one year + 14 days after the last dose. The validity of this certificate was not checked by CovidPass."
- }
- ]
- }
- };
-
- return await signPassWithRemote(pass, payload)
-}
diff --git a/src/pass.ts b/src/pass.ts
new file mode 100644
index 0000000..92e1463
--- /dev/null
+++ b/src/pass.ts
@@ -0,0 +1,230 @@
+import {toBuffer as createZip} from 'do-not-zip';
+import {v4 as uuid4} from 'uuid';
+
+import {Constants} from "./constants";
+import {Payload, PayloadBody} from "./payload";
+import {ValueSets} from "./value_sets";
+
+const crypto = require('crypto')
+
+enum QrFormat {
+ PKBarcodeFormatQR = 'PKBarcodeFormatQR',
+}
+
+enum Encoding {
+ utf8 = "utf-8",
+}
+
+interface QrCode {
+ message: string;
+ format: QrFormat;
+ messageEncoding: Encoding;
+}
+
+interface Field {
+ key: string;
+ label: string;
+ value: string;
+ textAlignment?: string;
+}
+
+interface PassStructureDictionary {
+ headerFields: Array;
+ primaryFields: Array;
+ secondaryFields: Array;
+ auxiliaryFields: Array;
+ backFields: Array;
+}
+
+interface SignData {
+ PassJsonHash: string;
+ useBlackVersion: boolean;
+}
+
+export class PassData {
+ passTypeIdentifier: string = Constants.PASS_IDENTIFIER;
+ teamIdentifier: string = Constants.TEAM_IDENTIFIER;
+ sharingProhibited: boolean = false;
+ voided: boolean = false;
+ formatVersion: number = 1;
+ logoText: string = Constants.NAME;
+ organizationName: string = Constants.NAME;
+ description: string = Constants.NAME;
+ labelColor: string;
+ foregroundColor: string;
+ backgroundColor: string;
+ serialNumber: string;
+ barcodes: Array;
+ barcode: QrCode;
+ generic: PassStructureDictionary;
+
+ // Generates a sha1 hash from a given buffer
+ private static getBufferHash(buffer: Buffer | string): string {
+ const sha = crypto.createHash('sha1');
+ sha.update(buffer);
+ return sha.digest('hex');
+ }
+
+ private static async signWithRemote(signData: SignData): Promise {
+ // Load API_BASE_URL form nextjs backend
+ const configResponse = await fetch('/api/config')
+ const apiBaseUrl = (await configResponse.json()).apiBaseUrl
+
+ const response = await fetch(`${apiBaseUrl}/sign`, {
+ method: 'POST',
+ headers: {
+ 'Accept': 'application/octet-stream',
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(signData)
+ })
+
+ if (response.status !== 200) {
+ throw Error('signatureFailed')
+ }
+
+ return await response.arrayBuffer()
+ }
+
+ static async generatePass(payloadBody: PayloadBody): Promise {
+ // Get the Value Sets from GitHub
+ const valueSets: ValueSets = await ValueSets.loadValueSets();
+
+ // Create Payload
+ const payload: Payload = new Payload(payloadBody, valueSets);
+
+ // Create QR Code Object
+ const qrCode: QrCode = {
+ message: payload.rawData,
+ format: QrFormat.PKBarcodeFormatQR,
+ messageEncoding: Encoding.utf8,
+ }
+
+ // Create pass data
+ const pass: PassData = new PassData(payload, qrCode);
+
+ // Create new zip
+ const zip = [] as { path: string; data: Buffer | string }[];
+
+ // Adding required fields
+
+ // Create pass.json
+ const passJson = JSON.stringify(pass);
+
+ // Add pass.json to zip
+ zip.push({path: 'pass.json', data: Buffer.from(passJson)});
+
+ // Add Images to zip
+ zip.push({path: 'icon.png', data: payload.img1x})
+ zip.push({path: 'icon@2x.png', data: payload.img2x})
+ zip.push({path: 'logo.png', data: payload.img1x})
+ zip.push({path: 'logo@2x.png', data: payload.img2x})
+
+ // Adding manifest
+ // Construct manifest
+ const manifestJson = JSON.stringify(
+ zip.reduce(
+ (res, {path, data}) => {
+ res[path] = PassData.getBufferHash(data);
+ return res;
+ },
+ {},
+ ),
+ );
+
+ // Add Manifest JSON to zip
+ zip.push({path: 'manifest.json', data: Buffer.from(manifestJson)});
+
+ // Create pass hash
+ const passHash = PassData.getBufferHash(Buffer.from(passJson));
+
+ // Sign hash with server
+ const manifestSignature = await PassData.signWithRemote({
+ PassJsonHash: passHash,
+ useBlackVersion: !payload.dark,
+ });
+
+ // Add signature to zip
+ zip.push({path: 'signature', data: Buffer.from(manifestSignature)});
+
+ return createZip(zip);
+ }
+
+ private constructor(payload: Payload, qrCode: QrCode) {
+ this.labelColor = payload.labelColor;
+ this.foregroundColor = payload.foregroundColor;
+ this.backgroundColor = payload.backgroundColor;
+ this.serialNumber = uuid4(); // Generate random UUID v4
+ this.barcodes = [qrCode];
+ this.barcode = qrCode;
+ this.generic = {
+ headerFields: [
+ {
+ key: "type",
+ label: "Certificate Type",
+ value: payload.certificateType
+ }
+ ],
+ primaryFields: [
+ {
+ key: "name",
+ label: "Name",
+ value: payload.name
+ }
+ ],
+ secondaryFields: [
+ {
+ key: "dose",
+ label: "Dose",
+ value: payload.dose
+ },
+ {
+ key: "dov",
+ label: "Date of Vaccination",
+ value: payload.dateOfVaccination,
+ textAlignment: "PKTextAlignmentRight"
+ }
+ ],
+ auxiliaryFields: [
+ {
+ key: "vaccine",
+ label: "Vaccine",
+ value: payload.vaccineName
+ },
+ {
+ key: "dob",
+ label: "Date of Birth",
+ value: payload.dateOfBirth,
+ textAlignment: "PKTextAlignmentRight"
+ }
+ ],
+ backFields: [
+ {
+ key: "uvci",
+ label: "Unique Certificate Identifier (UVCI)",
+ value: payload.uvci
+ },
+ {
+ key: "issuer",
+ label: "Certificate Issuer",
+ value: payload.certificateIssuer
+ },
+ {
+ key: "country",
+ label: "Country of Vaccination",
+ value: payload.countryOfVaccination
+ },
+ {
+ key: "manufacturer",
+ label: "Manufacturer",
+ value: payload.manufacturer
+ },
+ {
+ key: "disclaimer",
+ label: "Disclaimer",
+ value: "This certificate is only valid in combination with the ID card of the certificate holder and expires one year + 14 days after the last dose. The validity of this certificate was not checked by CovidPass."
+ }
+ ]
+ };
+ }
+}
diff --git a/src/payload.js b/src/payload.js
deleted file mode 100644
index 6b1921d..0000000
--- a/src/payload.js
+++ /dev/null
@@ -1,100 +0,0 @@
-const img = require('./img')
-const consts = require('./constants')
-
-exports.Payload = class {
- constructor(body, valueSets) {
-
- const color = body["color"]
- const rawData = body["raw"]
- const decoded = body["decoded"]
-
- if (!(color in consts.COLORS)) {
- throw new Error('Invalid color')
- }
-
- const dark = (color !== 'white')
-
- let backgroundColor = dark ? consts.COLORS[color] : consts.COLORS.white
- let labelColor = dark ? consts.COLORS.white : consts.COLORS.grey
- let foregroundColor = dark ? consts.COLORS.white : consts.COLORS.black
- let img1x = dark ? img.img1xwhite : img.img1xblack
- let img2x = dark ? img.img2xwhite : img.img2xblack
-
- if (typeof rawData === 'undefined') {
- throw new Error('No raw payload')
- }
-
- if (typeof decoded === 'undefined') {
- throw new Error('No decoded payload')
- }
-
- const v = decoded["-260"]["1"]["v"][0]
- if (typeof v === 'undefined') {
- throw new Error('Failed to read vaccination information')
- }
-
- const nam = decoded["-260"]["1"]["nam"]
- if (typeof nam === 'undefined') {
- throw new Error('Failed to read name')
- }
-
- const dob = decoded["-260"]["1"]["dob"]
- if (typeof dob === 'undefined') {
- throw new Error('Failed to read date of birth')
- }
-
- const firstName = nam["gn"]
- const lastName = nam["fn"]
- const name = lastName + ', ' + firstName
-
- const doseIndex = v["dn"]
- const totalDoses = v["sd"]
- const dose = doseIndex + '/' + totalDoses
-
- const dateOfVaccination = v["dt"]
- const uvci = v["ci"]
- const certificateIssuer = v["is"]
-
- const medicalProducts = valueSets.medicalProducts["valueSetValues"]
- const countryCodes = valueSets.countryCodes["valueSetValues"]
- const manufacturers = valueSets.manufacturers["valueSetValues"]
-
- const medicalProductKey = v["mp"]
- if(!(medicalProductKey in medicalProducts)) {
- throw new Error('Invalid medical product key')
- }
-
- const countryCode = v["co"]
- if(!(countryCode in countryCodes)) {
- throw new Error('Invalid country code')
- }
-
- const manufacturerKey = v["ma"]
- if(!(manufacturerKey in manufacturers)) {
- throw new Error('Invalid manufacturer')
- }
-
- this.certificateType = 'Vaccination'
-
- this.backgroundColor = backgroundColor
- this.labelColor = labelColor
- this.foregroundColor = foregroundColor
- this.img1x = img1x
- this.img2x = img2x
-
- this.raw = rawData
- this.dark = dark
-
- this.name = name
- this.dose = dose
- this.dateOfVaccination = dateOfVaccination
- this.dateOfBirth = dob
- this.uvci = uvci
- this.certificateIssuer = certificateIssuer
- this.medicalProductKey = medicalProductKey
-
- this.countryOfVaccination = countryCodes[countryCode].display
- this.vaccineName = medicalProducts[medicalProductKey].display
- this.manufacturer = manufacturers[manufacturerKey].display
- }
-}
diff --git a/src/payload.ts b/src/payload.ts
new file mode 100644
index 0000000..7bdd0aa
--- /dev/null
+++ b/src/payload.ts
@@ -0,0 +1,100 @@
+import {ValueSets} from "./value_sets";
+import {Constants} from "./constants";
+
+export interface PayloadBody {
+ color: string;
+ rawData: string;
+ decodedData: Uint8Array;
+}
+
+export class Payload {
+ certificateType: string = 'Vaccination';
+
+ rawData: string;
+
+ backgroundColor: string;
+ labelColor: string;
+ foregroundColor: string;
+ img1x: Buffer;
+ img2x: Buffer;
+ dark: boolean;
+
+ name: string;
+ dose: string;
+ dateOfVaccination: string;
+ dateOfBirth: string;
+ uvci: string;
+ certificateIssuer: string;
+ medicalProductKey: string;
+
+ countryOfVaccination: string;
+ vaccineName: string;
+ manufacturer: string;
+
+ constructor(body: PayloadBody, valueSets: ValueSets) {
+
+ let colors = Constants.COLORS;
+
+ if (!(body.color in colors)) {
+ throw new Error('invalidColor');
+ }
+
+ const dark = body.color != 'white'
+
+
+ // Get Vaccine, Name and Date of Birth information
+ const vaccinationInformation = body.decodedData['-260']['1']['v'][0];
+ const nameInformation = body.decodedData['-260']['1']['nam'];
+ const dateOfBirthInformation = body.decodedData['-260']['1']['dob'];
+
+ if (vaccinationInformation == undefined) {
+ throw new Error('vaccinationInfo');
+ }
+
+ if (nameInformation == undefined) {
+ throw new Error('nameMissing');
+ }
+
+ if (dateOfBirthInformation == undefined) {
+ throw new Error('dobMissing');
+ }
+
+ // Get Medical, country and manufacturer information
+ const medialProductKey = vaccinationInformation['mp'];
+ const countryCode = vaccinationInformation['co'];
+ const manufacturerKey = vaccinationInformation['ma'];
+
+ if (!(medialProductKey in valueSets.medicalProducts)) {
+ throw new Error('invalidMedicalProduct');
+ }
+ if (!(countryCode in valueSets.countryCodes)) {
+ throw new Error('invalidCountryCode')
+ }
+ if (!(manufacturerKey in valueSets.manufacturers)) {
+ throw new Error('invalidManufacturer')
+ }
+
+
+ // Set Values
+ this.rawData = body.rawData;
+
+ this.backgroundColor = dark ? colors[body.color] : colors.white
+ this.labelColor = dark ? colors.white : colors.grey
+ this.foregroundColor = dark ? colors.white : colors.black
+ this.img1x = dark ? Constants.img1xWhite : Constants.img1xBlack
+ this.img2x = dark ? Constants.img2xWhite : Constants.img2xBlack
+ this.dark = dark;
+
+ this.name = `${nameInformation['fn']}, ${nameInformation['gn']}`;
+ this.dose = `${vaccinationInformation['dn']}/${vaccinationInformation['sd']}`;
+ this.dateOfVaccination = vaccinationInformation['dt'];
+ this.dateOfBirth = dateOfBirthInformation;
+ this.uvci = vaccinationInformation['ci'];
+ this.certificateIssuer = vaccinationInformation['is'];
+
+ this.countryOfVaccination = valueSets.countryCodes[countryCode].display;
+ this.vaccineName = valueSets.medicalProducts[medialProductKey].display;
+ this.manufacturer = valueSets.manufacturers[manufacturerKey].display;
+ }
+
+}
\ No newline at end of file
diff --git a/src/process.js b/src/process.js
deleted file mode 100644
index bc640da..0000000
--- a/src/process.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import {PNG} from 'pngjs'
-import * as PdfJS from 'pdfjs-dist'
-
-PdfJS.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${PdfJS.version}/pdf.worker.js`
-
-// Processes a pdf file and returns it as ImageData
-export async function processPdf(file) {
- // Array to store ImageData information
- const typedArray = new Uint8Array(file)
-
- // PDF scale, increase to read smaller QR Codes
- const pdfScale = 2;
-
- // Get the canvas and context to render PDF
- const canvas = document.getElementById('canvas')
- const ctx = canvas.getContext('2d')
-
- let loadingTask = PdfJS.getDocument(typedArray)
-
- await loadingTask.promise.then(async function (pdfDocument) {
- // Load last PDF page
- const pageNumber = pdfDocument.numPages;
-
- const pdfPage = await pdfDocument.getPage(pageNumber)
- const viewport = pdfPage.getViewport({scale: pdfScale})
-
- // Set correct canvas width / height
- canvas.width = viewport.width
- canvas.height = viewport.height
-
- // render PDF
- const renderTask = pdfPage.render({
- canvasContext: ctx,
- viewport,
- })
-
- return await renderTask.promise
- })
-
- // Return PDF Image Data
- return ctx.getImageData(0, 0, canvas.width, canvas.height)
-}
-
-// Processes a PNG File and returns it as ImageData
-export async function processPng(file) {
- return new Promise(async (resolve, reject) => {
- let png = new PNG({filterType: 4})
-
- png.parse(file, (error, data) => {
- if (error) {
- reject()
- }
-
- resolve(data)
- })
- })
-}
\ No newline at end of file
diff --git a/src/process.ts b/src/process.ts
new file mode 100644
index 0000000..e08d6e1
--- /dev/null
+++ b/src/process.ts
@@ -0,0 +1,128 @@
+import {PayloadBody} from "./payload";
+import {PNG} from 'pngjs'
+import * as PdfJS from 'pdfjs-dist'
+import jsQR, {QRCode} from "jsqr";
+import {decodeData} from "./decode";
+import {Result} from "@zxing/library";
+
+PdfJS.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${PdfJS.version}/pdf.worker.js`
+
+export async function getPayloadBodyFromFile(file: File, color: string): Promise {
+ // Read file
+ const fileBuffer = await file.arrayBuffer();
+
+ let imageData: ImageData;
+
+ switch (file.type) {
+ case 'application/pdf':
+ console.log('pdf')
+ imageData = await getImageDataFromPdf(fileBuffer)
+ break
+ case 'image/png':
+ console.log('png')
+ imageData = await getImageDataFromPng(fileBuffer)
+ break
+ default:
+ throw Error('invalidFileType')
+ }
+
+ let code: QRCode;
+
+ try {
+ code = jsQR(imageData.data, imageData.width, imageData.height, {
+ inversionAttempts: "dontInvert",
+ });
+ } catch (e) {
+ throw Error('couldNotDecode');
+ }
+
+ if (code == undefined) {
+ throw Error('couldNotFindQrCode')
+ }
+
+ // Get raw data
+ let rawData = code.data;
+
+ // Decode Data
+ let decodedData;
+
+ try {
+ decodedData = decodeData(rawData);
+ } catch (e) {
+ throw Error('invalidQrCode')
+ }
+
+ return {
+ rawData: rawData,
+ decodedData: decodedData,
+ color: color,
+ }
+}
+
+export async function getPayloadBodyFromQR(qrCodeResult: Result, color: string): Promise {
+
+ // Get raw data
+ let rawData = qrCodeResult.getText();
+
+ // Decode Data
+ let decodedData;
+
+ try {
+ decodedData = decodeData(rawData);
+ } catch (e) {
+ throw Error("invalidQrCode")
+ }
+
+ return {
+ rawData: rawData,
+ decodedData: decodedData,
+ color: color,
+ }
+}
+
+async function getImageDataFromPng(fileBuffer: ArrayBuffer): Promise {
+ return new Promise(async (resolve, reject) => {
+ let png = new PNG({filterType: 4})
+
+ png.parse(fileBuffer, (error, data) => {
+ if (error) {
+ reject();
+ }
+
+ resolve(data);
+ })
+ })
+}
+
+async function getImageDataFromPdf(fileBuffer: ArrayBuffer): Promise {
+ const typedArray = new Uint8Array(fileBuffer);
+ const pdfScale = 2;
+
+ const canvas = document.getElementById('canvas');
+ const canvasContext = canvas.getContext('2d');
+
+ let loadingTask = PdfJS.getDocument(typedArray);
+
+ await loadingTask.promise.then(async function (pdfDocument) {
+ // Load last PDF page
+ const pageNumber = pdfDocument.numPages;
+
+ const pdfPage = await pdfDocument.getPage(pageNumber)
+ const viewport = pdfPage.getViewport({scale: pdfScale})
+
+ // Set correct canvas width / height
+ canvas.width = viewport.width
+ canvas.height = viewport.height
+
+ // render PDF
+ const renderTask = pdfPage.render({
+ canvasContext: canvasContext,
+ viewport,
+ })
+
+ return await renderTask.promise
+ });
+
+ // Return PDF Image Data
+ return canvasContext.getImageData(0, 0, canvas.width, canvas.height)
+}
\ No newline at end of file
diff --git a/src/utils.js b/src/utils.js
deleted file mode 100644
index a08e30f..0000000
--- a/src/utils.js
+++ /dev/null
@@ -1,16 +0,0 @@
-const { VALUE_TYPES, VALUE_SET_BASE_URL } = require("./constants")
-const fetch = require("node-fetch")
-
-exports.getValueSets = async function() {
- async function getJSONFromURL(url) {
- return await (await fetch(url)).json()
- }
-
- let valueSets = {}
-
- for (const [key, value] of Object.entries(VALUE_TYPES)) {
- valueSets[key] = await getJSONFromURL(VALUE_SET_BASE_URL + value)
- }
-
- return valueSets
-}
diff --git a/src/value_sets.ts b/src/value_sets.ts
new file mode 100644
index 0000000..d1a3ac0
--- /dev/null
+++ b/src/value_sets.ts
@@ -0,0 +1,34 @@
+interface ValueTypes {
+ medicalProducts: string;
+ countryCodes: string;
+ manufacturers: string;
+}
+
+export class ValueSets {
+ private static VALUE_SET_BASE_URL: string = 'https://raw.githubusercontent.com/ehn-dcc-development/ehn-dcc-valuesets/main/';
+ private static VALUE_TYPES: ValueTypes = {
+ medicalProducts: 'vaccine-medicinal-product.json',
+ countryCodes: 'country-2-codes.json',
+ manufacturers: 'vaccine-mah-manf.json',
+ }
+
+ medicalProducts: object;
+ countryCodes: object;
+ manufacturers: object;
+
+
+ private constructor(medicalProducts: object, countryCodes: object, manufacturers: object) {
+ this.medicalProducts = medicalProducts;
+ this.countryCodes = countryCodes;
+ this.manufacturers = manufacturers;
+ }
+
+ public static async loadValueSets(): Promise {
+ // Load all Value Sets from GitHub
+ let medicalProducts = await (await fetch(ValueSets.VALUE_SET_BASE_URL + ValueSets.VALUE_TYPES.medicalProducts)).json();
+ let countryCodes = await (await fetch(ValueSets.VALUE_SET_BASE_URL + ValueSets.VALUE_TYPES.countryCodes)).json();
+ let manufacturers = await (await fetch(ValueSets.VALUE_SET_BASE_URL + ValueSets.VALUE_TYPES.manufacturers)).json();
+
+ return new ValueSets(medicalProducts['valueSetValues'], countryCodes['valueSetValues'], manufacturers['valueSetValues']);
+ }
+}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..35d51ea
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,29 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": false,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve"
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..c22cbf8
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3108 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@7.12.11":
+ version "7.12.11"
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz"
+ integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
+ dependencies:
+ "@babel/highlight" "^7.10.4"
+
+"@babel/code-frame@^7.0.0":
+ version "7.14.5"
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz"
+ integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
+ dependencies:
+ "@babel/highlight" "^7.14.5"
+
+"@babel/helper-validator-identifier@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz"
+ integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==
+
+"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz"
+ integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.14.5"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+"@babel/runtime@7.12.5":
+ version "7.12.5"
+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz"
+ integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@babel/runtime@^7.12.0", "@babel/runtime@^7.13.17", "@babel/runtime@^7.14.5":
+ version "7.14.6"
+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz"
+ integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@babel/types@7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz"
+ integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.13"
+ to-fast-properties "^2.0.0"
+
+"@fullhuman/postcss-purgecss@^4.0.3":
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-4.0.3.tgz"
+ integrity sha512-/EnQ9UDWGGqHkn1UKAwSgh+gJHPKmD+Z+5dQ4gWT4qq2NUyez3zqAfZNwFH3eSgmgO+wjTXfhlLchx2M9/K+7Q==
+ dependencies:
+ purgecss "^4.0.3"
+
+"@hapi/accept@5.0.2":
+ version "5.0.2"
+ resolved "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz"
+ integrity sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==
+ dependencies:
+ "@hapi/boom" "9.x.x"
+ "@hapi/hoek" "9.x.x"
+
+"@hapi/boom@9.x.x":
+ version "9.1.2"
+ resolved "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.2.tgz"
+ integrity sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==
+ dependencies:
+ "@hapi/hoek" "9.x.x"
+
+"@hapi/hoek@9.x.x":
+ version "9.2.0"
+ resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz"
+ integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==
+
+"@next/env@11.0.1":
+ version "11.0.1"
+ resolved "https://registry.npmjs.org/@next/env/-/env-11.0.1.tgz"
+ integrity sha512-yZfKh2U6R9tEYyNUrs2V3SBvCMufkJ07xMH5uWy8wqcl5gAXoEw6A/1LDqwX3j7pUutF9d1ZxpdGDA3Uag+aQQ==
+
+"@next/polyfill-module@11.0.1":
+ version "11.0.1"
+ resolved "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.1.tgz"
+ integrity sha512-Cjs7rrKCg4CF4Jhri8PCKlBXhszTfOQNl9AjzdNy4K5jXFyxyoSzuX2rK4IuoyE+yGp5A3XJCBEmOQ4xbUp9Mg==
+
+"@next/react-dev-overlay@11.0.1":
+ version "11.0.1"
+ resolved "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.0.1.tgz"
+ integrity sha512-lvUjMVpLsgzADs9Q8wtC5LNqvfdN+M0BDMSrqr04EDWAyyX0vURHC9hkvLbyEYWyh+WW32pwjKBXdkMnJhoqMg==
+ dependencies:
+ "@babel/code-frame" "7.12.11"
+ anser "1.4.9"
+ chalk "4.0.0"
+ classnames "2.2.6"
+ css.escape "1.5.1"
+ data-uri-to-buffer "3.0.1"
+ platform "1.3.6"
+ shell-quote "1.7.2"
+ source-map "0.8.0-beta.0"
+ stacktrace-parser "0.1.10"
+ strip-ansi "6.0.0"
+
+"@next/react-refresh-utils@11.0.1":
+ version "11.0.1"
+ resolved "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.0.1.tgz"
+ integrity sha512-K347DM6Z7gBSE+TfUaTTceWvbj0B6iNAsFZXbFZOlfg3uyz2sbKpzPYYFocCc27yjLaS8OfR8DEdS2mZXi8Saw==
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+ version "1.2.7"
+ resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz"
+ integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
+"@types/eslint-scope@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz"
+ integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==
+ dependencies:
+ "@types/eslint" "*"
+ "@types/estree" "*"
+
+"@types/eslint@*":
+ version "7.2.13"
+ resolved "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz"
+ integrity sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg==
+ dependencies:
+ "@types/estree" "*"
+ "@types/json-schema" "*"
+
+"@types/estree@*", "@types/estree@^0.0.48":
+ version "0.0.48"
+ resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz"
+ integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==
+
+"@types/hoist-non-react-statics@^3.3.1":
+ version "3.3.1"
+ resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz"
+ integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
+ dependencies:
+ "@types/react" "*"
+ hoist-non-react-statics "^3.3.0"
+
+"@types/i18next-fs-backend@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@types/i18next-fs-backend/-/i18next-fs-backend-1.0.0.tgz"
+ integrity sha512-PotQ0NE17NavxXCsdyq9qIKZQOB7+A5O/2nDdvfbfm6/IgvvC1YUO6hxK3nIHASu+QGjO1QV5J8PJw4OL12LMQ==
+ dependencies:
+ i18next "^19.7.0"
+
+"@types/json-schema@*", "@types/json-schema@^7.0.6":
+ version "7.0.7"
+ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz"
+ integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
+
+"@types/node@*":
+ version "15.12.5"
+ resolved "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz"
+ integrity sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==
+
+"@types/pako@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/@types/pako/-/pako-1.0.1.tgz"
+ integrity sha512-GdZbRSJ3Cv5fiwT6I0SQ3ckeN2PWNqxd26W9Z2fCK1tGrrasGy4puvNFtnddqH9UJFMQYXxEuuB7B8UK+LLwSg==
+
+"@types/parse-json@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
+ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
+"@types/prop-types@*":
+ version "15.7.3"
+ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz"
+ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
+
+"@types/react@*", "@types/react@^17.0.11":
+ version "17.0.13"
+ resolved "https://registry.npmjs.org/@types/react/-/react-17.0.13.tgz"
+ integrity sha512-D/G3PiuqTfE3IMNjLn/DCp6umjVCSvtZTPdtAFy5+Ved6CsdRvivfKeCzw79W4AatShtU4nGqgvOv5Gro534vQ==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.1"
+ resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz"
+ integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==
+
+"@webassemblyjs/ast@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz"
+ integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==
+ dependencies:
+ "@webassemblyjs/helper-numbers" "1.11.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+
+"@webassemblyjs/floating-point-hex-parser@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz"
+ integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==
+
+"@webassemblyjs/helper-api-error@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz"
+ integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==
+
+"@webassemblyjs/helper-buffer@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz"
+ integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==
+
+"@webassemblyjs/helper-numbers@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz"
+ integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==
+ dependencies:
+ "@webassemblyjs/floating-point-hex-parser" "1.11.0"
+ "@webassemblyjs/helper-api-error" "1.11.0"
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/helper-wasm-bytecode@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz"
+ integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==
+
+"@webassemblyjs/helper-wasm-section@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz"
+ integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.0"
+ "@webassemblyjs/helper-buffer" "1.11.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+ "@webassemblyjs/wasm-gen" "1.11.0"
+
+"@webassemblyjs/ieee754@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz"
+ integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==
+ dependencies:
+ "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz"
+ integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz"
+ integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==
+
+"@webassemblyjs/wasm-edit@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz"
+ integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.0"
+ "@webassemblyjs/helper-buffer" "1.11.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+ "@webassemblyjs/helper-wasm-section" "1.11.0"
+ "@webassemblyjs/wasm-gen" "1.11.0"
+ "@webassemblyjs/wasm-opt" "1.11.0"
+ "@webassemblyjs/wasm-parser" "1.11.0"
+ "@webassemblyjs/wast-printer" "1.11.0"
+
+"@webassemblyjs/wasm-gen@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz"
+ integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+ "@webassemblyjs/ieee754" "1.11.0"
+ "@webassemblyjs/leb128" "1.11.0"
+ "@webassemblyjs/utf8" "1.11.0"
+
+"@webassemblyjs/wasm-opt@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz"
+ integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.0"
+ "@webassemblyjs/helper-buffer" "1.11.0"
+ "@webassemblyjs/wasm-gen" "1.11.0"
+ "@webassemblyjs/wasm-parser" "1.11.0"
+
+"@webassemblyjs/wasm-parser@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz"
+ integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.0"
+ "@webassemblyjs/helper-api-error" "1.11.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+ "@webassemblyjs/ieee754" "1.11.0"
+ "@webassemblyjs/leb128" "1.11.0"
+ "@webassemblyjs/utf8" "1.11.0"
+
+"@webassemblyjs/wast-printer@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz"
+ integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.0"
+ "@xtuc/long" "4.2.2"
+
+"@xtuc/ieee754@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz"
+ integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
+
+"@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz"
+ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+
+"@zxing/browser@^0.0.9":
+ version "0.0.9"
+ resolved "https://registry.npmjs.org/@zxing/browser/-/browser-0.0.9.tgz"
+ integrity sha512-yqYz/FHQXbUnfSK+oeDXUa4ezC/qdXkVpqEFAnxM7LqIWvNWEQyUpdaTr0X6MGtIcP0Smakj5D8J7/l276plBw==
+ optionalDependencies:
+ "@zxing/text-encoding" "^0.9.0"
+
+"@zxing/library@^0.18.6":
+ version "0.18.6"
+ resolved "https://registry.npmjs.org/@zxing/library/-/library-0.18.6.tgz"
+ integrity sha512-bulZ9JHoLFd9W36pi+7e7DnEYNJhljYjZ1UTsKPOoLMU3qtC+REHITeCRNx40zTRJZx18W5TBRXt5pq2Uopjsw==
+ dependencies:
+ ts-custom-error "^3.0.0"
+ optionalDependencies:
+ "@zxing/text-encoding" "~0.9.0"
+
+"@zxing/text-encoding@^0.9.0", "@zxing/text-encoding@~0.9.0":
+ version "0.9.0"
+ resolved "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz"
+ integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==
+
+acorn-node@^1.6.1:
+ version "1.8.2"
+ resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
+ integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
+ dependencies:
+ acorn "^7.0.0"
+ acorn-walk "^7.0.0"
+ xtend "^4.0.2"
+
+acorn-walk@^7.0.0:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
+ integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
+acorn@^7.0.0:
+ version "7.4.1"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+acorn@^8.2.1:
+ version "8.4.1"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz"
+ integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==
+
+ajv-keywords@^3.5.2:
+ version "3.5.2"
+ resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^6.12.5:
+ version "6.12.6"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+anser@1.4.9:
+ version "1.4.9"
+ resolved "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz"
+ integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==
+
+ansi-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz"
+ integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+anymatch@~3.1.1, anymatch@~3.1.2:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+arg@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/arg/-/arg-5.0.0.tgz"
+ integrity sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ==
+
+asn1.js@^5.2.0:
+ version "5.4.1"
+ resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz"
+ integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+ safer-buffer "^2.1.0"
+
+assert@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz"
+ integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==
+ dependencies:
+ es6-object-assign "^1.1.0"
+ is-nan "^1.2.1"
+ object-is "^1.0.1"
+ util "^0.12.0"
+
+assert@^1.1.1:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz"
+ integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
+ dependencies:
+ object-assign "^4.1.1"
+ util "0.10.3"
+
+ast-types@0.13.2:
+ version "0.13.2"
+ resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz"
+ integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==
+
+autoprefixer@^10.0.4:
+ version "10.2.6"
+ resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz"
+ integrity sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg==
+ dependencies:
+ browserslist "^4.16.6"
+ caniuse-lite "^1.0.30001230"
+ colorette "^1.2.2"
+ fraction.js "^4.1.1"
+ normalize-range "^0.1.2"
+ postcss-value-parser "^4.1.0"
+
+available-typed-arrays@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz"
+ integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==
+
+babel-plugin-syntax-jsx@6.18.0:
+ version "6.18.0"
+ resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz"
+ integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base45@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/base45/-/base45-3.0.0.tgz"
+ integrity sha512-SWayzDiUFaga+G3X/oL2XIDbjhdpmBGUqLU6T7zB89aNWYnEcfa36DIWW95rxn0sWAWbwrKcSyqcWw6AApYwsg==
+
+base64-js@^1.0.2:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
+ version "4.12.0"
+ resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz"
+ integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
+
+bn.js@^5.0.0, bn.js@^5.1.1:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz"
+ integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^3.0.1, braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+brorand@^1.0.1, brorand@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
+ integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
+
+browserify-aes@^1.0.0, browserify-aes@^1.0.4:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz"
+ integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
+ dependencies:
+ buffer-xor "^1.0.3"
+ cipher-base "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.3"
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+browserify-cipher@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz"
+ integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
+ dependencies:
+ browserify-aes "^1.0.4"
+ browserify-des "^1.0.0"
+ evp_bytestokey "^1.0.0"
+
+browserify-des@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz"
+ integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
+ dependencies:
+ cipher-base "^1.0.1"
+ des.js "^1.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz"
+ integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
+ dependencies:
+ bn.js "^5.0.0"
+ randombytes "^2.0.1"
+
+browserify-sign@^4.0.0:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz"
+ integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
+ dependencies:
+ bn.js "^5.1.1"
+ browserify-rsa "^4.0.1"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ elliptic "^6.5.3"
+ inherits "^2.0.4"
+ parse-asn1 "^5.1.5"
+ readable-stream "^3.6.0"
+ safe-buffer "^5.2.0"
+
+browserify-zlib@0.2.0, browserify-zlib@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz"
+ integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
+ dependencies:
+ pako "~1.0.5"
+
+browserslist@4.16.6, browserslist@^4.14.5, browserslist@^4.16.6:
+ version "4.16.6"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz"
+ integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
+ dependencies:
+ caniuse-lite "^1.0.30001219"
+ colorette "^1.2.2"
+ electron-to-chromium "^1.3.723"
+ escalade "^3.1.1"
+ node-releases "^1.1.71"
+
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+buffer-xor@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz"
+ integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
+
+buffer@5.6.0:
+ version "5.6.0"
+ resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz"
+ integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+
+buffer@^4.3.0:
+ version "4.9.2"
+ resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz"
+ integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+ isarray "^1.0.0"
+
+builtin-status-codes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"
+ integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
+
+bytes@3.1.0, bytes@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"
+ integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
+call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase-css@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
+ integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
+caniuse-lite@^1.0.30001202, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228, caniuse-lite@^1.0.30001230:
+ version "1.0.30001241"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz"
+ integrity sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==
+
+cbor-js@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/cbor-js/-/cbor-js-0.1.0.tgz"
+ integrity sha1-yAzmEg84fo+qdDcN/aIdlluPx/k=
+
+chalk@2.4.2, chalk@^2.0.0:
+ version "2.4.2"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chalk@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz"
+ integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+chalk@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz"
+ integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+chokidar@3.5.1:
+ version "3.5.1"
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz"
+ integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
+ dependencies:
+ anymatch "~3.1.1"
+ braces "~3.0.2"
+ glob-parent "~5.1.0"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.5.0"
+ optionalDependencies:
+ fsevents "~2.3.1"
+
+chokidar@^3.5.2:
+ version "3.5.2"
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz"
+ integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+chrome-trace-event@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz"
+ integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+
+cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz"
+ integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+classnames@2.2.6:
+ version "2.2.6"
+ resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz"
+ integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
+
+color-convert@^1.9.0, color-convert@^1.9.1:
+ version "1.9.3"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@^1.0.0, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^1.5.4:
+ version "1.5.5"
+ resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz"
+ integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.npmjs.org/color/-/color-3.1.3.tgz"
+ integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==
+ dependencies:
+ color-convert "^1.9.1"
+ color-string "^1.5.4"
+
+colorette@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz"
+ integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
+
+commander@^2.20.0:
+ version "2.20.3"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commander@^6.0.0:
+ version "6.2.1"
+ resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz"
+ integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"
+ integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+console-browserify@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz"
+ integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
+
+constants-browserify@1.0.0, constants-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz"
+ integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
+
+convert-source-map@1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz"
+ integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
+core-js@^3:
+ version "3.15.2"
+ resolved "https://registry.npmjs.org/core-js/-/core-js-3.15.2.tgz"
+ integrity sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q==
+
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+cosmiconfig@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz"
+ integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.2.1"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.10.0"
+
+create-ecdh@^4.0.0:
+ version "4.0.4"
+ resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz"
+ integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
+ dependencies:
+ bn.js "^4.1.0"
+ elliptic "^6.5.3"
+
+create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz"
+ integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
+ dependencies:
+ cipher-base "^1.0.1"
+ inherits "^2.0.1"
+ md5.js "^1.3.4"
+ ripemd160 "^2.0.1"
+ sha.js "^2.4.0"
+
+create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz"
+ integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
+ dependencies:
+ cipher-base "^1.0.3"
+ create-hash "^1.1.0"
+ inherits "^2.0.1"
+ ripemd160 "^2.0.0"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+crypto-browserify@3.12.0, crypto-browserify@^3.11.0:
+ version "3.12.0"
+ resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz"
+ integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
+ dependencies:
+ browserify-cipher "^1.0.0"
+ browserify-sign "^4.0.0"
+ create-ecdh "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.0"
+ diffie-hellman "^5.0.0"
+ inherits "^2.0.1"
+ pbkdf2 "^3.0.3"
+ public-encrypt "^4.0.0"
+ randombytes "^2.0.0"
+ randomfill "^1.0.3"
+
+css-unit-converter@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz"
+ integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==
+
+css.escape@1.5.1:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz"
+ integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=
+
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+cssnano-preset-simple@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-2.0.0.tgz"
+ integrity sha512-HkufSLkaBJbKBFx/7aj5HmCK9Ni/JedRQm0mT2qBzMG/dEuJOLnMt2lK6K1rwOOyV4j9aSY+knbW9WoS7BYpzg==
+ dependencies:
+ caniuse-lite "^1.0.30001202"
+
+cssnano-simple@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-2.0.0.tgz"
+ integrity sha512-0G3TXaFxlh/szPEG/o3VcmCwl0N3E60XNb9YZZijew5eIs6fLjJuOPxQd9yEBaX2p/YfJtt49i4vYi38iH6/6w==
+ dependencies:
+ cssnano-preset-simple "^2.0.0"
+
+csstype@^3.0.2:
+ version "3.0.8"
+ resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz"
+ integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==
+
+data-uri-to-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz"
+ integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==
+
+debug@2:
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ dependencies:
+ object-keys "^1.0.12"
+
+defined@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
+ integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
+
+depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+des.js@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz"
+ integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
+ dependencies:
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+detective@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz"
+ integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
+ dependencies:
+ acorn-node "^1.6.1"
+ defined "^1.0.0"
+ minimist "^1.1.1"
+
+didyoumean@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
+ integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
+
+diffie-hellman@^5.0.0:
+ version "5.0.3"
+ resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz"
+ integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
+ dependencies:
+ bn.js "^4.1.0"
+ miller-rabin "^4.0.0"
+ randombytes "^2.0.0"
+
+dlv@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
+ integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+
+do-not-zip@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/do-not-zip/-/do-not-zip-1.0.0.tgz"
+ integrity sha512-Pgd81ET43bhAGaN2Hq1zluSX1FmD7kl7KcV9ER/lawiLsRUB9pRA5y8r6us29Xk6BrINZETO8TjhYwtwafWUww==
+
+domain-browser@4.19.0:
+ version "4.19.0"
+ resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz"
+ integrity sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==
+
+domain-browser@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz"
+ integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
+
+electron-to-chromium@^1.3.723:
+ version "1.3.763"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.763.tgz"
+ integrity sha512-UyvEPae0wvzsyNJhVfGeFSOlUkHEze8xSIiExO5tZQ8QTr7obFiJWGk3U4e7afFOJMQJDszqU/3Pk5jtKiaSEg==
+
+elliptic@^6.5.3:
+ version "6.5.4"
+ resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz"
+ integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
+emojis-list@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz"
+ integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
+
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+encoding@0.1.13:
+ version "0.1.13"
+ resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz"
+ integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
+ dependencies:
+ iconv-lite "^0.6.2"
+
+enhanced-resolve@^5.8.0:
+ version "5.8.2"
+ resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz"
+ integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==
+ dependencies:
+ graceful-fs "^4.2.4"
+ tapable "^2.2.0"
+
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2:
+ version "1.18.3"
+ resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz"
+ integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==
+ dependencies:
+ call-bind "^1.0.2"
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ get-intrinsic "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.2"
+ is-callable "^1.2.3"
+ is-negative-zero "^2.0.1"
+ is-regex "^1.1.3"
+ is-string "^1.0.6"
+ object-inspect "^1.10.3"
+ object-keys "^1.1.1"
+ object.assign "^4.1.2"
+ string.prototype.trimend "^1.0.4"
+ string.prototype.trimstart "^1.0.4"
+ unbox-primitive "^1.0.1"
+
+es-module-lexer@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz"
+ integrity sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA==
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
+es6-object-assign@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz"
+ integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+eslint-scope@5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz"
+ integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@1.8.1:
+ version "1.8.1"
+ resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
+ integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+
+events@^3.0.0, events@^3.2.0:
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz"
+ integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
+ dependencies:
+ md5.js "^1.3.4"
+ safe-buffer "^5.1.1"
+
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-glob@^3.2.5:
+ version "3.2.6"
+ resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz"
+ integrity sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fastq@^1.6.0:
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz"
+ integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==
+ dependencies:
+ reusify "^1.0.4"
+
+file-saver@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz"
+ integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+find-cache-dir@3.3.1:
+ version "3.3.1"
+ resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz"
+ integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^3.0.2"
+ pkg-dir "^4.1.0"
+
+find-up@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+foreach@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz"
+ integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
+
+fraction.js@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz"
+ integrity sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==
+
+fs-extra@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz"
+ integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+fsevents@~2.3.1, fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
+ integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+
+get-orientation@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz"
+ integrity sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==
+ dependencies:
+ stream-parser "^0.3.1"
+
+glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob-parent@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.0.tgz"
+ integrity sha512-Hdd4287VEJcZXUwv1l8a+vXC1GjOQqXe+VS30w/ypihpcnu9M1n3xeYeJu5CBpeEQj2nAab2xxz28GuA3vp4Ww==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob-to-regexp@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
+ integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+glob@^7.0.0, glob@^7.1.3:
+ version "7.1.7"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz"
+ integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
+ version "4.2.6"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz"
+ integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
+
+has-bigints@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz"
+ integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbols@^1.0.1, has-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz"
+ integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+hash-base@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz"
+ integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
+ dependencies:
+ inherits "^2.0.4"
+ readable-stream "^3.6.0"
+ safe-buffer "^5.2.0"
+
+hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.7"
+ resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"
+ integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.1"
+
+he@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
+ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+hmac-drbg@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
+ integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+hoist-non-react-statics@^3.2.0, hoist-non-react-statics@^3.3.0:
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
+html-parse-stringify@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz"
+ integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==
+ dependencies:
+ void-elements "3.1.0"
+
+html-tags@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz"
+ integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
+
+http-errors@1.7.3:
+ version "1.7.3"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz"
+ integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+https-browserify@1.0.0, https-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz"
+ integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
+
+i18next-fs-backend@^1.0.7:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-1.1.1.tgz"
+ integrity sha512-RFkfy10hNxJqc7MVAp5iAZq0Tum6msBCNebEe3OelOBvrROvzHUPaR8Qe10RQrOGokTm0W4vJGEJzruFkEt+hQ==
+
+i18next@^19.7.0:
+ version "19.9.2"
+ resolved "https://registry.npmjs.org/i18next/-/i18next-19.9.2.tgz"
+ integrity sha512-0i6cuo6ER6usEOtKajUUDj92zlG+KArFia0857xxiEHAQcUwh/RtOQocui1LPJwunSYT574Pk64aNva1kwtxZg==
+ dependencies:
+ "@babel/runtime" "^7.12.0"
+
+i18next@^20.1.0:
+ version "20.3.2"
+ resolved "https://registry.npmjs.org/i18next/-/i18next-20.3.2.tgz"
+ integrity sha512-e8CML2R9Ng2sSQOM80wb/PrM2j8mDm84o/T4Amzn9ArVyNX5/ENWxxAXkRpZdTQNDaxKImF93Wep4mAoozFrKw==
+ dependencies:
+ "@babel/runtime" "^7.12.0"
+
+iconv-lite@0.4.24:
+ version "0.4.24"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+iconv-lite@^0.6.2:
+ version "0.6.3"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+ieee754@^1.1.4:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+image-size@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz"
+ integrity sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==
+ dependencies:
+ queue "6.0.2"
+
+import-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz"
+ integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==
+ dependencies:
+ import-from "^3.0.0"
+
+import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+import-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz"
+ integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==
+ dependencies:
+ resolve-from "^5.0.0"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inherits@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
+
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
+is-arguments@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz"
+ integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==
+ dependencies:
+ call-bind "^1.0.0"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+is-bigint@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz"
+ integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-boolean-object@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz"
+ integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==
+ dependencies:
+ call-bind "^1.0.2"
+
+is-callable@^1.1.4, is-callable@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz"
+ integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==
+
+is-core-module@^2.2.0:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz"
+ integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==
+ dependencies:
+ has "^1.0.3"
+
+is-date-object@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz"
+ integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-generator-function@^1.0.7:
+ version "1.0.9"
+ resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz"
+ integrity sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==
+
+is-glob@^4.0.1, is-glob@~4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"
+ integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-nan@^1.2.1:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz"
+ integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+
+is-negative-zero@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz"
+ integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
+
+is-number-object@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz"
+ integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-regex@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz"
+ integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==
+ dependencies:
+ call-bind "^1.0.2"
+ has-symbols "^1.0.2"
+
+is-string@^1.0.5, is-string@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz"
+ integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==
+
+is-symbol@^1.0.2, is-symbol@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
+ integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+ dependencies:
+ has-symbols "^1.0.2"
+
+is-typed-array@^1.1.3:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz"
+ integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==
+ dependencies:
+ available-typed-arrays "^1.0.2"
+ call-bind "^1.0.2"
+ es-abstract "^1.18.0-next.2"
+ foreach "^2.0.5"
+ has-symbols "^1.0.1"
+
+isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+jest-worker@27.0.0-next.5:
+ version "27.0.0-next.5"
+ resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz"
+ integrity sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==
+ dependencies:
+ "@types/node" "*"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+jest-worker@^27.0.2:
+ version "27.0.6"
+ resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz"
+ integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==
+ dependencies:
+ "@types/node" "*"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+jpeg-js@^0.4.3:
+ version "0.4.3"
+ resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz"
+ integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+json-parse-better-errors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"
+ integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+ dependencies:
+ minimist "^1.2.0"
+
+json5@^2.1.2:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz"
+ integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+ dependencies:
+ minimist "^1.2.5"
+
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsqr@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz"
+ integrity sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==
+
+lilconfig@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz"
+ integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==
+
+lines-and-columns@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz"
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+
+loader-runner@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz"
+ integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
+
+loader-utils@1.2.3:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz"
+ integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^2.0.0"
+ json5 "^1.0.1"
+
+loader-utils@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz"
+ integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^2.1.2"
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+lodash.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz"
+ integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+
+lodash.toarray@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz"
+ integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=
+
+lodash.topath@^4.5.2:
+ version "4.5.2"
+ resolved "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz"
+ integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=
+
+lodash@^4.17.13, lodash@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+loose-envify@^1.1.0, loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+make-dir@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
+md5.js@^1.3.4:
+ version "1.3.5"
+ resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz"
+ integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromatch@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
+ integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.2.3"
+
+miller-rabin@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz"
+ integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
+ dependencies:
+ bn.js "^4.0.0"
+ brorand "^1.0.1"
+
+mime-db@1.48.0:
+ version "1.48.0"
+ resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz"
+ integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==
+
+mime-types@^2.1.27:
+ version "2.1.31"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz"
+ integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==
+ dependencies:
+ mime-db "1.48.0"
+
+minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
+ integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
+
+minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+modern-normalize@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz"
+ integrity sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+nanoid@^3.1.22, nanoid@^3.1.23:
+ version "3.1.23"
+ resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz"
+ integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
+
+native-url@0.3.4:
+ version "0.3.4"
+ resolved "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz"
+ integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==
+ dependencies:
+ querystring "^0.2.0"
+
+neo-async@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+next-i18next@^8.5.1:
+ version "8.5.1"
+ resolved "https://registry.npmjs.org/next-i18next/-/next-i18next-8.5.1.tgz"
+ integrity sha512-ETr6yOw69PPvbUCH2RoujgRzreTzcbSS4YrTusP5878ovBSmoah/mZ4+iUVVRU4ToeaSBZiIIJA6MtAJWGFBTw==
+ dependencies:
+ "@babel/runtime" "^7.13.17"
+ "@types/hoist-non-react-statics" "^3.3.1"
+ "@types/i18next-fs-backend" "^1.0.0"
+ core-js "^3"
+ hoist-non-react-statics "^3.2.0"
+ i18next "^20.1.0"
+ i18next-fs-backend "^1.0.7"
+ react-i18next "^11.8.13"
+
+next-seo@^4.26.0:
+ version "4.26.0"
+ resolved "https://registry.npmjs.org/next-seo/-/next-seo-4.26.0.tgz"
+ integrity sha512-5TqywQ3XAwqdmEU1AyNZjR7WdDKFTkDD8aBtgQelPvzBUEy8i0mTjtiw+09jhiHFNik6FqS8uPKCaYcY6jRgSQ==
+
+next@latest:
+ version "11.0.1"
+ resolved "https://registry.npmjs.org/next/-/next-11.0.1.tgz"
+ integrity sha512-yR7be7asNbvpVNpi6xxEg28wZ7Gqmj1nOt0sABH9qORmF3+pms2KZ7Cng33oK5nqPIzEEFJD0pp2PCe3/ueMIg==
+ dependencies:
+ "@babel/runtime" "7.12.5"
+ "@hapi/accept" "5.0.2"
+ "@next/env" "11.0.1"
+ "@next/polyfill-module" "11.0.1"
+ "@next/react-dev-overlay" "11.0.1"
+ "@next/react-refresh-utils" "11.0.1"
+ assert "2.0.0"
+ ast-types "0.13.2"
+ browserify-zlib "0.2.0"
+ browserslist "4.16.6"
+ buffer "5.6.0"
+ caniuse-lite "^1.0.30001228"
+ chalk "2.4.2"
+ chokidar "3.5.1"
+ constants-browserify "1.0.0"
+ crypto-browserify "3.12.0"
+ cssnano-simple "2.0.0"
+ domain-browser "4.19.0"
+ encoding "0.1.13"
+ etag "1.8.1"
+ find-cache-dir "3.3.1"
+ get-orientation "1.1.2"
+ https-browserify "1.0.0"
+ image-size "1.0.0"
+ jest-worker "27.0.0-next.5"
+ native-url "0.3.4"
+ node-fetch "2.6.1"
+ node-html-parser "1.4.9"
+ node-libs-browser "^2.2.1"
+ os-browserify "0.3.0"
+ p-limit "3.1.0"
+ path-browserify "1.0.1"
+ pnp-webpack-plugin "1.6.4"
+ postcss "8.2.13"
+ process "0.11.10"
+ prop-types "15.7.2"
+ querystring-es3 "0.2.1"
+ raw-body "2.4.1"
+ react-is "17.0.2"
+ react-refresh "0.8.3"
+ stream-browserify "3.0.0"
+ stream-http "3.1.1"
+ string_decoder "1.3.0"
+ styled-jsx "3.3.2"
+ timers-browserify "2.0.12"
+ tty-browserify "0.0.1"
+ use-subscription "1.5.1"
+ util "0.12.3"
+ vm-browserify "1.1.2"
+ watchpack "2.1.1"
+
+node-emoji@^1.8.1:
+ version "1.10.0"
+ resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz"
+ integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==
+ dependencies:
+ lodash.toarray "^4.4.0"
+
+node-fetch@2.6.1, node-fetch@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz"
+ integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+
+node-html-parser@1.4.9:
+ version "1.4.9"
+ resolved "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz"
+ integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==
+ dependencies:
+ he "1.2.0"
+
+node-libs-browser@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz"
+ integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
+ dependencies:
+ assert "^1.1.1"
+ browserify-zlib "^0.2.0"
+ buffer "^4.3.0"
+ console-browserify "^1.1.0"
+ constants-browserify "^1.0.0"
+ crypto-browserify "^3.11.0"
+ domain-browser "^1.1.1"
+ events "^3.0.0"
+ https-browserify "^1.0.0"
+ os-browserify "^0.3.0"
+ path-browserify "0.0.1"
+ process "^0.11.10"
+ punycode "^1.2.4"
+ querystring-es3 "^0.2.0"
+ readable-stream "^2.3.3"
+ stream-browserify "^2.0.1"
+ stream-http "^2.7.2"
+ string_decoder "^1.0.0"
+ timers-browserify "^2.0.4"
+ tty-browserify "0.0.0"
+ url "^0.11.0"
+ util "^0.11.0"
+ vm-browserify "^1.0.1"
+
+node-releases@^1.1.71:
+ version "1.1.73"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz"
+ integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
+ integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+
+object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-hash@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
+ integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
+
+object-inspect@^1.10.3:
+ version "1.10.3"
+ resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz"
+ integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==
+
+object-is@^1.0.1:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz"
+ integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object.assign@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz"
+ integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ has-symbols "^1.0.1"
+ object-keys "^1.1.1"
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+os-browserify@0.3.0, os-browserify@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz"
+ integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
+
+p-limit@3.1.0, p-limit@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
+p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+pako@~1.0.5:
+ version "1.0.11"
+ resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-asn1@^5.0.0, parse-asn1@^5.1.5:
+ version "5.1.6"
+ resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz"
+ integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
+ dependencies:
+ asn1.js "^5.2.0"
+ browserify-aes "^1.0.0"
+ evp_bytestokey "^1.0.0"
+ pbkdf2 "^3.0.3"
+ safe-buffer "^5.1.1"
+
+parse-json@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+path-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz"
+ integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
+
+path-browserify@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz"
+ integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-parse@^1.0.6:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+pbkdf2@^3.0.3:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz"
+ integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
+ dependencies:
+ create-hash "^1.1.2"
+ create-hmac "^1.1.4"
+ ripemd160 "^2.0.1"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+pdfjs-dist@^2.5.207:
+ version "2.8.335"
+ resolved "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.8.335.tgz"
+ integrity sha512-2IKw7wP1RnzzWJcpkeZwF+cKROFiQext+/WburB6cgKwt9zc8rOyDH7a3FepdcciSGs8SDs/AuWe8qVx+iI6pw==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz"
+ integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
+
+pkg-dir@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+platform@1.3.6:
+ version "1.3.6"
+ resolved "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz"
+ integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==
+
+pngjs@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz"
+ integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==
+
+pnp-webpack-plugin@1.6.4:
+ version "1.6.4"
+ resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz"
+ integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==
+ dependencies:
+ ts-pnp "^1.1.6"
+
+postcss-js@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz"
+ integrity sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==
+ dependencies:
+ camelcase-css "^2.0.1"
+ postcss "^8.1.6"
+
+postcss-load-config@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz"
+ integrity sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==
+ dependencies:
+ import-cwd "^3.0.0"
+ lilconfig "^2.0.3"
+ yaml "^1.10.2"
+
+postcss-nested@5.0.5:
+ version "5.0.5"
+ resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.5.tgz"
+ integrity sha512-GSRXYz5bccobpTzLQZXOnSOfKl6TwVr5CyAQJUPub4nuRJSOECK5AqurxVgmtxP48p0Kc/ndY/YyS1yqldX0Ew==
+ dependencies:
+ postcss-selector-parser "^6.0.4"
+
+postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6:
+ version "6.0.6"
+ resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz"
+ integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
+postcss-value-parser@^3.3.0:
+ version "3.3.1"
+ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz"
+ integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
+
+postcss-value-parser@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz"
+ integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
+
+postcss@8.2.13:
+ version "8.2.13"
+ resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz"
+ integrity sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==
+ dependencies:
+ colorette "^1.2.2"
+ nanoid "^3.1.22"
+ source-map "^0.6.1"
+
+postcss@^8.1.10, postcss@^8.1.6, postcss@^8.2.1:
+ version "8.3.5"
+ resolved "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz"
+ integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==
+ dependencies:
+ colorette "^1.2.2"
+ nanoid "^3.1.23"
+ source-map-js "^0.6.2"
+
+pretty-hrtime@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz"
+ integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+process@0.11.10, process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz"
+ integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
+
+prop-types@15.7.2:
+ version "15.7.2"
+ resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz"
+ integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.8.1"
+
+public-encrypt@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz"
+ integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
+ dependencies:
+ bn.js "^4.1.0"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ parse-asn1 "^5.0.0"
+ randombytes "^2.0.1"
+ safe-buffer "^5.1.2"
+
+punycode@1.3.2:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"
+ integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
+
+punycode@^1.2.4:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+ integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
+
+punycode@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+purgecss@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz"
+ integrity sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==
+ dependencies:
+ commander "^6.0.0"
+ glob "^7.0.0"
+ postcss "^8.2.1"
+ postcss-selector-parser "^6.0.2"
+
+querystring-es3@0.2.1, querystring-es3@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz"
+ integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
+
+querystring@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
+ integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
+
+querystring@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz"
+ integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==
+
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+queue@6.0.2:
+ version "6.0.2"
+ resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz"
+ integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==
+ dependencies:
+ inherits "~2.0.3"
+
+quick-lru@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
+ integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+ dependencies:
+ safe-buffer "^5.1.0"
+
+randomfill@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz"
+ integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
+ dependencies:
+ randombytes "^2.0.5"
+ safe-buffer "^5.1.0"
+
+raw-body@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz"
+ integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
+ dependencies:
+ bytes "3.1.0"
+ http-errors "1.7.3"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+react-dom@^17.0.2:
+ version "17.0.2"
+ resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz"
+ integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ scheduler "^0.20.2"
+
+react-i18next@^11.8.13:
+ version "11.11.0"
+ resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-11.11.0.tgz"
+ integrity sha512-p1jHmoyJgDFQmyubUEjrx6kCsr1izW/C8i9pOiJy+9lJqLYwNA8sElVplm0VAnop3kH68edT0/g3wB3UvAcRCQ==
+ dependencies:
+ "@babel/runtime" "^7.14.5"
+ html-parse-stringify "^3.0.1"
+
+react-is@17.0.2:
+ version "17.0.2"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
+ integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+
+react-is@^16.7.0, react-is@^16.8.1:
+ version "16.13.1"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-refresh@0.8.3:
+ version "0.8.3"
+ resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz"
+ integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
+
+react@^17.0.2:
+ version "17.0.2"
+ resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz"
+ integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
+readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6:
+ version "2.3.7"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readable-stream@^3.5.0, readable-stream@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+readdirp@~3.5.0:
+ version "3.5.0"
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz"
+ integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
+ dependencies:
+ picomatch "^2.2.1"
+
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
+reduce-css-calc@^2.1.8:
+ version "2.1.8"
+ resolved "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz"
+ integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==
+ dependencies:
+ css-unit-converter "^1.1.1"
+ postcss-value-parser "^3.3.0"
+
+regenerator-runtime@^0.13.4:
+ version "0.13.7"
+ resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz"
+ integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve@^1.20.0:
+ version "1.20.0"
+ resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz"
+ integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
+
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rimraf@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
+ripemd160@^2.0.0, ripemd160@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz"
+ integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+scheduler@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz"
+ integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
+schema-utils@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz"
+ integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==
+ dependencies:
+ "@types/json-schema" "^7.0.6"
+ ajv "^6.12.5"
+ ajv-keywords "^3.5.2"
+
+semver@^6.0.0:
+ version "6.3.0"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+serialize-javascript@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz"
+ integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
+ dependencies:
+ randombytes "^2.1.0"
+
+setimmediate@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
+
+setprototypeof@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
+ integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+
+sha.js@^2.4.0, sha.js@^2.4.8:
+ version "2.4.11"
+ resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz"
+ integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+shell-quote@1.7.2:
+ version "1.7.2"
+ resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz"
+ integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
+
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
+source-list-map@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz"
+ integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+
+source-map-js@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz"
+ integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==
+
+source-map-support@~0.5.19:
+ version "0.5.19"
+ resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz"
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map@0.7.3, source-map@~0.7.2:
+ version "0.7.3"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+source-map@0.8.0-beta.0:
+ version "0.8.0-beta.0"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz"
+ integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==
+ dependencies:
+ whatwg-url "^7.0.0"
+
+source-map@^0.6.0, source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+stacktrace-parser@0.1.10:
+ version "0.1.10"
+ resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz"
+ integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==
+ dependencies:
+ type-fest "^0.7.1"
+
+"statuses@>= 1.5.0 < 2":
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
+ integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
+
+stream-browserify@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz"
+ integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==
+ dependencies:
+ inherits "~2.0.4"
+ readable-stream "^3.5.0"
+
+stream-browserify@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz"
+ integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "^2.0.2"
+
+stream-http@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz"
+ integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.4"
+ readable-stream "^3.6.0"
+ xtend "^4.0.2"
+
+stream-http@^2.7.2:
+ version "2.8.3"
+ resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz"
+ integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.3.6"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
+stream-parser@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz"
+ integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=
+ dependencies:
+ debug "2"
+
+string-hash@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz"
+ integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
+
+string.prototype.trimend@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz"
+ integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+string.prototype.trimstart@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz"
+ integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+string_decoder@1.3.0, string_decoder@^1.0.0, string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz"
+ integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+ dependencies:
+ ansi-regex "^5.0.0"
+
+styled-jsx@3.3.2:
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-3.3.2.tgz"
+ integrity sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g==
+ dependencies:
+ "@babel/types" "7.8.3"
+ babel-plugin-syntax-jsx "6.18.0"
+ convert-source-map "1.7.0"
+ loader-utils "1.2.3"
+ source-map "0.7.3"
+ string-hash "1.1.3"
+ stylis "3.5.4"
+ stylis-rule-sheet "0.0.10"
+
+stylis-rule-sheet@0.0.10:
+ version "0.0.10"
+ resolved "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz"
+ integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==
+
+stylis@3.5.4:
+ version "3.5.4"
+ resolved "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz"
+ integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-color@^8.0.0:
+ version "8.1.1"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
+
+tailwindcss@^2.1.1:
+ version "2.2.4"
+ resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.4.tgz"
+ integrity sha512-OdBCPgazNNsknSP+JfrPzkay9aqKjhKtFhbhgxHgvEFdHy/GuRPo2SCJ4w1SFTN8H6FPI4m6qD/Jj20NWY1GkA==
+ dependencies:
+ "@fullhuman/postcss-purgecss" "^4.0.3"
+ arg "^5.0.0"
+ bytes "^3.0.0"
+ chalk "^4.1.1"
+ chokidar "^3.5.2"
+ color "^3.1.3"
+ cosmiconfig "^7.0.0"
+ detective "^5.2.0"
+ didyoumean "^1.2.1"
+ dlv "^1.1.3"
+ fast-glob "^3.2.5"
+ fs-extra "^10.0.0"
+ glob-parent "^6.0.0"
+ html-tags "^3.1.0"
+ is-glob "^4.0.1"
+ lodash "^4.17.21"
+ lodash.topath "^4.5.2"
+ modern-normalize "^1.1.0"
+ node-emoji "^1.8.1"
+ normalize-path "^3.0.0"
+ object-hash "^2.2.0"
+ postcss-js "^3.0.3"
+ postcss-load-config "^3.1.0"
+ postcss-nested "5.0.5"
+ postcss-selector-parser "^6.0.6"
+ postcss-value-parser "^4.1.0"
+ pretty-hrtime "^1.0.3"
+ quick-lru "^5.1.1"
+ reduce-css-calc "^2.1.8"
+ resolve "^1.20.0"
+ tmp "^0.2.1"
+
+tapable@^2.1.1, tapable@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz"
+ integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==
+
+terser-webpack-plugin@^5.1.3:
+ version "5.1.4"
+ resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz"
+ integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==
+ dependencies:
+ jest-worker "^27.0.2"
+ p-limit "^3.1.0"
+ schema-utils "^3.0.0"
+ serialize-javascript "^6.0.0"
+ source-map "^0.6.1"
+ terser "^5.7.0"
+
+terser@^5.7.0:
+ version "5.7.1"
+ resolved "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz"
+ integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.7.2"
+ source-map-support "~0.5.19"
+
+timers-browserify@2.0.12, timers-browserify@^2.0.4:
+ version "2.0.12"
+ resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz"
+ integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
+ dependencies:
+ setimmediate "^1.0.4"
+
+tmp@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz"
+ integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
+ dependencies:
+ rimraf "^3.0.0"
+
+to-arraybuffer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"
+ integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+toidentifier@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
+ integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+
+tr46@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz"
+ integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
+ dependencies:
+ punycode "^2.1.0"
+
+ts-custom-error@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.0.tgz"
+ integrity sha512-cBvC2QjtvJ9JfWLvstVnI45Y46Y5dMxIaG1TDMGAD/R87hpvqFL+7LhvUDhnRCfOnx/xitollFWWvUKKKhbN0A==
+
+ts-pnp@^1.1.6:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz"
+ integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
+
+tty-browserify@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz"
+ integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
+
+tty-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz"
+ integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
+
+type-fest@^0.7.1:
+ version "0.7.1"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz"
+ integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
+
+typescript@^4.3.4:
+ version "4.3.5"
+ resolved "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz"
+ integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
+
+unbox-primitive@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz"
+ integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
+ dependencies:
+ function-bind "^1.1.1"
+ has-bigints "^1.0.1"
+ has-symbols "^1.0.2"
+ which-boxed-primitive "^1.0.2"
+
+universalify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
+ integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
+unpipe@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+url@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz"
+ integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
+ dependencies:
+ punycode "1.3.2"
+ querystring "0.2.0"
+
+use-subscription@1.5.1:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz"
+ integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==
+ dependencies:
+ object-assign "^4.1.1"
+
+util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+util@0.10.3:
+ version "0.10.3"
+ resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz"
+ integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
+ dependencies:
+ inherits "2.0.1"
+
+util@0.12.3:
+ version "0.12.3"
+ resolved "https://registry.npmjs.org/util/-/util-0.12.3.tgz"
+ integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==
+ dependencies:
+ inherits "^2.0.3"
+ is-arguments "^1.0.4"
+ is-generator-function "^1.0.7"
+ is-typed-array "^1.1.3"
+ safe-buffer "^5.1.2"
+ which-typed-array "^1.1.2"
+
+util@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz"
+ integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
+ dependencies:
+ inherits "2.0.3"
+
+util@^0.12.0:
+ version "0.12.4"
+ resolved "https://registry.npmjs.org/util/-/util-0.12.4.tgz"
+ integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==
+ dependencies:
+ inherits "^2.0.3"
+ is-arguments "^1.0.4"
+ is-generator-function "^1.0.7"
+ is-typed-array "^1.1.3"
+ safe-buffer "^5.1.2"
+ which-typed-array "^1.1.2"
+
+uuid@^8.3.2:
+ version "8.3.2"
+ resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+vm-browserify@1.1.2, vm-browserify@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz"
+ integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
+
+void-elements@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz"
+ integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=
+
+watchpack@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz"
+ integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==
+ dependencies:
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.1.2"
+
+watchpack@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz"
+ integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==
+ dependencies:
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.1.2"
+
+webidl-conversions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz"
+ integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+
+webpack-sources@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz"
+ integrity sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==
+ dependencies:
+ source-list-map "^2.0.1"
+ source-map "^0.6.1"
+
+webpack@^5.0.0:
+ version "5.41.1"
+ resolved "https://registry.npmjs.org/webpack/-/webpack-5.41.1.tgz"
+ integrity sha512-AJZIIsqJ/MVTmegEq9Tlw5mk5EHdGiJbDdz9qP15vmUH+oxI1FdWcL0E9EO8K/zKaRPWqEs7G/OPxq1P61u5Ug==
+ dependencies:
+ "@types/eslint-scope" "^3.7.0"
+ "@types/estree" "^0.0.48"
+ "@webassemblyjs/ast" "1.11.0"
+ "@webassemblyjs/wasm-edit" "1.11.0"
+ "@webassemblyjs/wasm-parser" "1.11.0"
+ acorn "^8.2.1"
+ browserslist "^4.14.5"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^5.8.0"
+ es-module-lexer "^0.6.0"
+ eslint-scope "5.1.1"
+ events "^3.2.0"
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.2.4"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^4.2.0"
+ mime-types "^2.1.27"
+ neo-async "^2.6.2"
+ schema-utils "^3.0.0"
+ tapable "^2.1.1"
+ terser-webpack-plugin "^5.1.3"
+ watchpack "^2.2.0"
+ webpack-sources "^2.3.0"
+
+whatwg-url@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
+
+which-boxed-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
+ integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+ dependencies:
+ is-bigint "^1.0.1"
+ is-boolean-object "^1.1.0"
+ is-number-object "^1.0.4"
+ is-string "^1.0.5"
+ is-symbol "^1.0.3"
+
+which-typed-array@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz"
+ integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==
+ dependencies:
+ available-typed-arrays "^1.0.2"
+ call-bind "^1.0.0"
+ es-abstract "^1.18.0-next.1"
+ foreach "^2.0.5"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.1"
+ is-typed-array "^1.1.3"
+
+worker-loader@^3.0.7:
+ version "3.0.8"
+ resolved "https://registry.npmjs.org/worker-loader/-/worker-loader-3.0.8.tgz"
+ integrity sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g==
+ dependencies:
+ loader-utils "^2.0.0"
+ schema-utils "^3.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+xtend@^4.0.0, xtend@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+yaml@^1.10.0, yaml@^1.10.2:
+ version "1.10.2"
+ resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==