H5PIntegration = {
  ajax: { setFinished: "", contentUserData: "" },
  ajaxPath: "undefinedundefined/api/v1/h5p/ajax?action=",
  contents: {
    "cid-67fce07f39d5b91be8f9d65a": {
      displayOptions: {
        copy: false,
        copyright: false,
        embed: false,
        export: false,
        frame: false,
        icon: false,
      },
      fullScreen: "0",
      jsonContent:
        '{"content":[{"content":{"params":{"text":"<p>Στον παρακάτω πίνακα παρουσιάζονται τα δεδομένα που αφορούν στην <strong>Oμάδα ηλικιών 0-19 ανά Περιφέρεια</strong> για τον μόνιμο πληθυσμό. Στο ραβδόγραμμα παρουσιάζονται ορισμένες από τις περιφέρειες. </p>"},"library":"H5P.AdvancedText 1.1","metadata":{"contentType":"Text","license":"U","title":"Text χωρίς τίτλο","authors":[],"changes":[]},"subContentId":"93ec717f-59ee-4015-91f3-5c49a03df82f"},"useSeparator":"auto"},{"content":{"params":{"text":"<table><colgroup></colgroup><tbody><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ</td><td style=\\"text-align:right\\">107.947</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ</td><td style=\\"text-align:right\\">337.954</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ</td><td style=\\"text-align:right\\">45.064</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΗΠΕΙΡΟΥ</td><td style=\\"text-align:right\\">56.440</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΘΕΣΣΑΛΙΑΣ</td><td style=\\"text-align:right\\">128.810</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ</td><td style=\\"text-align:right\\">90.019</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΙΟΝΙΩΝ ΝΗΣΩΝ</td><td style=\\"text-align:right\\">37.962</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ</td><td style=\\"text-align:right\\">123.971</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΠΕΛΟΠΟΝΝΗΣΟΥ</td><td style=\\"text-align:right\\">93.676</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΑΤΤΙΚΗΣ</td><td style=\\"text-align:right\\">687.248</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΒΟΡΕΙΟΥ ΑΙΓΑΙΟΥ</td><td style=\\"text-align:right\\">36.825</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΝΟΤΙΟΥ ΑΙΓΑΙΟΥ</td><td style=\\"text-align:right\\">68.331</td></tr><tr><td>ΠΕΡΙΦΕΡΕΙΑ ΚΡΗΤΗΣ</td><td style=\\"text-align:right\\">132.461</td></tr></tbody></table><div></div><div></div>"},"library":"H5P.Table 1.2","metadata":{"contentType":"Table","license":"U","title":"Πίνακας δεδομένων","authors":[],"changes":[],"extraTitle":"Πίνακας δεδομένων"},"subContentId":"cd1598a6-c6fa-4570-ba20-c6aa8a3c07bc"},"useSeparator":"auto"},{"content":{"params":{"graphMode":"barChart","listOfTypes":[{"value":107.947,"color":"#dadf2b","fontColor":"#fff","text":"ΑΝ. ΜΑΚΕΔ.-ΘΡΑΚΗΣ"},{"value":128.81,"color":"#8eea26","fontColor":"#fff","text":"ΘΕΣΣΑΛΙΑΣ"},{"value":37.962,"color":"#d788e8","fontColor":"#fff","text":"ΙΟΝΙΩΝ ΝΗΣΩΝ"},{"value":123.971,"color":"#179421","fontColor":"#fff","text":"ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ"},{"value":93.676,"color":"#d0378d","fontColor":"#fff","text":"ΠΕΛΟΠΟΝΝΗΣΟΥ"},{"value":36.825,"color":"#7bb4e4","fontColor":"#fff","text":"ΒΟΡΕΙΟΥ ΑΙΓΑΙΟΥ"},{"value":68.331,"color":"#120cec","fontColor":"#fff","text":"ΝΟΤΙΟΥ ΑΙΓΑΙΟΥ"},{"value":132.461,"color":"#fffb1e","fontColor":"#fff","text":"ΚΡΗΤΗΣ"}],"figureDefinition":"Γράφημα"},"library":"H5P.Chart 1.2","metadata":{"contentType":"Chart","license":"U","title":"Απογραφή Πληθυσμού 2021. Μόνιμος πληθυσμός. Oμάδα ηλικιών 0-19 ανά Περιφέρεια (εμφανίζονται ορισμένες περιφέρειες με τη μορφή ραβδογράμματος)","authors":[],"changes":[],"extraTitle":"Απογραφή Πληθυσμού 2021. Μόνιμος πληθυσμός. Oμάδα ηλικιών 0-19 ανά Περιφέρεια (εμφανίζονται ορισμένες περιφέρειες με τη μορφή ραβδογράμματος)"},"subContentId":"0d8a41ce-2309-4a4c-900c-9de1228f369d"},"useSeparator":"auto"},{"content":{"params":{"media":{"disableImageZooming":false},"answers":[{"correct":false,"tipsAndFeedback":{"tip":"","chosenFeedback":"<div>Ο γενικός πληθυσμός μιας περιοχής εξαρτάται όχι μόνο από τις γεννήσεις, αλλά και από άλλους παράγοντες όπως:</div><div><strong>Θάνατοι</strong> (φυσική μείωση ή αύξηση του πληθυσμού)</div><div><strong>Μεταναστεύσεις</strong> (εσωτερικές ή εξωτερικές μετακινήσεις πληθυσμού)</div><div>Επομένως, το γεγονός ότι η Περιφέρεια Κρήτης έχει περισσότερα άτομα στην ηλικιακή κατηγορία 0-19 ετών <strong>δεν σημαίνει απαραίτητα</strong> ότι ο συνολικός πληθυσμός της είναι μεγαλύτερος από της Δυτικής Ελλάδας.</div>","notChosenFeedback":""},"text":"<div>Ναι, γιατί ο γενικός πληθυσμός εξαρτάται από τις γεννήσεις. </div>\\n"},{"correct":true,"tipsAndFeedback":{"tip":"","chosenFeedback":"<div>Ο γενικός πληθυσμός μιας περιοχής εξαρτάται όχι μόνο από τις γεννήσεις, αλλά και από άλλους παράγοντες όπως:</div><div><strong>Θάνατοι</strong> (φυσική μείωση ή αύξηση του πληθυσμού)</div><div><strong>Μεταναστεύσεις</strong> (εσωτερικές ή εξωτερικές μετακινήσεις πληθυσμού)</div><div>Επομένως, το γεγονός ότι η Περιφέρεια Κρήτης έχει περισσότερα άτομα στην ηλικιακή κατηγορία 0-19 ετών <strong>δεν σημαίνει απαραίτητα</strong> ότι ο συνολικός πληθυσμός της είναι μεγαλύτερος από της Δυτικής Ελλάδας.</div>","notChosenFeedback":""},"text":"<div>Όχι, γιατί ο γενικός πληθυσμός δεν συνδέεται μόνο με τις γεννήσεις.</div>\\n"}],"overallFeedback":[{"from":0,"to":100}],"behaviour":{"enableRetry":true,"enableSolutionsButton":true,"enableCheckButton":true,"type":"auto","singlePoint":false,"randomAnswers":true,"showSolutionsRequiresInput":true,"confirmCheckDialog":false,"confirmRetryDialog":false,"autoCheck":false,"passPercentage":100,"showScorePoints":true},"UI":{"checkAnswerButton":"Έλεγχος","submitAnswerButton":"Υποβολή","showSolutionButton":"Λύση","tryAgainButton":"Επανάληψη","tipsLabel":"Εμφάνιση επεξήγησης","scoreBarLabel":"Έχεις :num από :total πόντους","tipAvailable":"Επεξήγηση διαθέσιμη","feedbackAvailable":"Ανατροφοδότηση διαθέσιμη","readFeedback":"Ανάγνωση ανατροφοδότησης","wrongAnswer":"Λάθος απάντηση","correctAnswer":"Σωστή απάντηση","shouldCheck":"Θα πρέπει να έχει επιλεγεί","shouldNotCheck":"Δεν θα πρέπει να έχει επιλεγεί","noInput":"Παρακαλώ απάντησε προτού δεις τη λύση","a11yCheck":"Έλεγχος απαντήσεων. Οι απαντήσεις θα μαρκαριστούν ως σωστές, λάθος και μη απαντημένες.","a11yShowSolution":"Προβολή της λύσης. Η άσκηση θα επισημανθεί με την σωστή απάντση.","a11yRetry":"Επανάληψη της εργασίας. Επαναφορά όλων των απαντήσεων και έναρξη από την αρχή."},"confirmCheck":{"header":"Ολοκλήρωση άσκησης","body":"Είσαι σίγουρος ότι θέλεις να ολοκληρώσεις την άσκηση;","cancelLabel":"Όχι","confirmLabel":"Ναι"},"confirmRetry":{"header":"Επανάληψη","body":"Είσαι σίγουρος ότι θέλεις να προσπαθήσεις ξανά;","cancelLabel":"Όχι","confirmLabel":"Ναι"},"question":"<p>Από τα στοιχεία φαίνεται ότι η Περιφέρεια Κρήτης έχει περισσότερο πληθυσμό (132.461) στην κατηγορία 0-19 ετών, σε σχέση με την Περιφέρεια Δυτικής Ελλάδας (123.971). Οπότε, εύκολα προκύπτει το συμπέρασμα ότι ο γενικός πληθυσμός της Κρήτης είναι περισσότερος απ\' ότι στη Δυτική Ελλάδα. </p>"},"library":"H5P.MultiChoice 1.16","metadata":{"contentType":"Multiple Choice","license":"U","title":"Ερώτηση πολλαπλής επιλογής (μία απάντηση)","authors":[],"changes":[],"extraTitle":"Ερώτηση πολλαπλής επιλογής (μία απάντηση)"},"subContentId":"02c9f32c-f4a6-4607-b5f3-a7741ae940d2"},"useSeparator":"auto"},{"useSeparator":"auto","content":{"params":{"media":{"disableImageZooming":false},"text":"<p>Αντιγράψτε τα στοιχεία του πίνακα σε ένα υπολογιστικό φύλλο. Υπολογίστε τον μέσο όρο του πληθυσμού ηλικίας 0-19 ετών.</p>\\n","overallFeedback":[{"from":0,"to":100}],"showSolutions":"Λύση","tryAgain":"Επανάληψη","checkAnswer":"Έλεγχος","submitAnswer":"Υποβολή","notFilledOut":"Παρακαλώ συμπλήρωσε όλα τα κενά για να δεις τις σωστές απαντήσεις","answerIsCorrect":"Η απάντηση &#039;:ans&#039; είναι σωστή","answerIsWrong":"Η απάντηση &#039;:ans&#039; είναι λάθος","answeredCorrectly":"Απαντήθηκε σωστά","answeredIncorrectly":"Απαντήθηκε λάθος","solutionLabel":"Σωστή απάντηση:","inputLabel":"@num κενά από @total","inputHasTipLabel":"Επεξήγηση διαθέσιμη","tipLabel":"Επεξήγηση","behaviour":{"enableRetry":true,"enableSolutionsButton":true,"enableCheckButton":true,"autoCheck":false,"caseSensitive":true,"showSolutionsRequiresInput":true,"separateLines":false,"confirmCheckDialog":false,"confirmRetryDialog":false,"acceptSpellingErrors":false},"scoreBarLabel":"Έχεις :num από :total βαθμούς","a11yCheck":"Έλεγχος απαντήσεων. Οι απαντήσεις θα μαρκαριστούν ως σωστές, λάθος και μη απαντημένες.","a11yShowSolution":"Προβολή της λύσης. Η άσκηση θα επισημανθεί με την σωστή απάντση.","a11yRetry":"Επανάληψη της άσκησης. Επαναφορά όλων των απαντήσεων και έναρξη από την αρχή.","a11yCheckingModeHeader":"Λειτουργία Ελέγχου","confirmCheck":{"header":"Ολοκλήρωση άσκησης","body":"Είσαι σίγουρος ότι θέλεις να ολοκληρώσεις την άσκηση;","cancelLabel":"Όχι","confirmLabel":"Ναι"},"confirmRetry":{"header":"Επανάληψη","body":"Είσαι σίγουρος ότι θέλεις να προσπαθήσεις ξανά;","cancelLabel":"Όχι","confirmLabel":"Ναι"},"questions":["<p>Ο μέσος όρος είναι *149.747*.</p>\\n\\n<p>(τελεία για τον διαχωρισμό των χιλιάδων)</p>\\n\\n<p>&nbsp;</p>\\n"]},"library":"H5P.Blanks 1.14","metadata":{"contentType":"Fill in the Blanks","license":"U","title":"Άσκηση συμπλήρωσης κενού","authors":[],"changes":[],"extraTitle":"Άσκηση συμπλήρωσης κενού"},"subContentId":"0a0d25aa-ad38-48bb-a380-dce7a1c85ad2"}},{"content":{"params":{"media":{"disableImageZooming":false},"options":[{"media":{"params":{"decorative":true,"contentName":"Εικόνα","expandImage":"Ανάπτυξη εικόνας","minimizeImage":"Ελαχιστοποίηση εικόνας","file":{"path":"data:image/png;base64, ","mime":"image/png","copyright":{"license":"U"},"width":560,"height":389}},"library":"H5P.Image 1.1","subContentId":"3f5f9f8a-3158-4304-ae06-eb589e513e28","metadata":{"contentType":"Image","license":"U","title":"Image χωρίς τίτλο","authors":[],"changes":[]}},"correct":false},{"media":{"params":{"decorative":true,"contentName":"Εικόνα","expandImage":"Ανάπτυξη εικόνας","minimizeImage":"Ελαχιστοποίηση εικόνας","file":{"path":"data:image/png;base64, ","mime":"image/png","copyright":{"license":"U"},"width":598,"height":440}},"library":"H5P.Image 1.1","subContentId":"24577ffa-c5a0-465c-9048-615db872eb63","metadata":{"contentType":"Image","license":"U","title":"Image χωρίς τίτλο","authors":[],"changes":[]}},"correct":false},{"media":{"params":{"decorative":true,"contentName":"Εικόνα","expandImage":"Ανάπτυξη εικόνας","minimizeImage":"Ελαχιστοποίηση εικόνας","file":{"path":"data:image/png;base64, ","mime":"image/png","copyright":{"license":"U"},"width":622,"height":447}},"library":"H5P.Image 1.1","subContentId":"3b8426a5-8800-4ba1-8c4e-2f73d7b3e00e","metadata":{"contentType":"Image","license":"U","title":"Image χωρίς τίτλο","authors":[],"changes":[]}},"correct":true}],"overallFeedback":[{"from":0,"to":100}],"behaviour":{"enableRetry":"true","enableSolutionsButton":"true","confirmCheckDialog":false,"confirmRetryDialog":false,"singlePoint":false,"showSolutionsRequiresInput":true,"questionType":"auto","aspectRatio":"auto","maxAlternativesPerRow":"4","passPercentage":100},"l10n":{"checkAnswerButtonText":"Έλεγχος","submitAnswerButtonText":"Υποβολή","checkAnswer":"Ελέγξτε τις απαντήσεις. Οι απαντήσεις θα επισημαίνονται ως σωστές, λανθασμένες ή απαντημένες.","showSolutionButtonText":"Εμφάνιση λύσης","showSolution":"Εμφάνιση της λύσης. Οι σωστές επιλογές θα επισημαίνονται.","correctAnswer":"Σωστή απάντηση","wrongAnswer":"Λάθος απάντηση","shouldCheck":"Έπρεπε να έχει επιλεγεί","shouldNotCheck":"Δεν έπρεπε να έχει επιλεγεί","noAnswer":"Παρακαλούμε απαντήστε πριν προβάλετε τη λύση","retryText":"Επανάληψη","retry":"Επανάληψη της εργασίας. Επαναφέρετε όλες τις απαντήσεις και ξεκινήστε την εργασία από την αρχή.","result":"Πήρατε :num από :total βαθμούς","missingAltText":"Λείπει το εναλλακτικό κείμενο","confirmCheck":{"header":"Ολοκλήρωση;","body":"Θέλετε σίγουρα να ολοκληρώσετε την προσπάθεια;","cancelLabel":"Άκυρο","confirmLabel":"Εντάξει"},"confirmRetry":{"header":"Επανάληψη;","body":"Θέλετε σίγουρα να ξαναπροσπαθήσετε;","cancelLabel":"Άκυρο","confirmLabel":"Επανάληψη"},"closeModalText":"Κλείσιμο modal"},"question":"<p>Ποιο γράφημα θα επιλέγατε για να παρουσιάσετε την τάση του πληθυσμού και να εντοπίσετε τις αποκλίσεις;</p>\\n"},"library":"H5P.MultiMediaChoice 0.3","metadata":{"contentType":"Multimedia Choice","license":"U","title":"Ποιο είναι το σωστό γράφημα","authors":[],"changes":[],"extraTitle":"Ποιο είναι το σωστό γράφημα"},"subContentId":"07c86b11-7924-4cc6-8366-2a2e5048e01a"},"useSeparator":"auto"}]}',
      library: "H5P.Column 1.18",
      contentUrl: ".",
      metadata: {
        license: "U",
        title: "Στοιχεία απογραφής 2021 (ΕΛΣΤΑΤ)",
        defaultLanguage: "el",
      },
      scripts: [
        "undefined/libraries/H5P.AdvancedText-1.1/text.js?version=1.1.14",
        "undefined/libraries/H5P.Table-1.2/scripts/table.js?version=1.2.2",
        "undefined/libraries/H5P.Chart-1.2/chart.js?version=1.2.22",
        "undefined/libraries/H5P.Chart-1.2/d3.js?version=1.2.22",
        "undefined/libraries/H5P.Chart-1.2/pie.js?version=1.2.22",
        "undefined/libraries/H5P.Chart-1.2/bar.js?version=1.2.22",
        "undefined/libraries/H5P.Transition-1.0/transition.js?version=1.0.4",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?version=1.3.19",
        "undefined/libraries/H5P.Question-1.5/scripts/question.js?version=1.5.15",
        "undefined/libraries/H5P.Question-1.5/scripts/explainer.js?version=1.5.15",
        "undefined/libraries/H5P.Question-1.5/scripts/score-points.js?version=1.5.15",
        "undefined/libraries/H5P.MultiChoice-1.16/js/multichoice.js?version=1.16.14",
        "undefined/libraries/H5P.TextUtilities-1.3/scripts/text-utilities.js?version=1.3.0",
        "undefined/libraries/H5P.Blanks-1.14/js/blanks.js?version=1.14.13",
        "undefined/libraries/H5P.Blanks-1.14/js/cloze.js?version=1.14.13",
        "undefined/libraries/H5P.Image-1.1/image.js?version=1.1.22",
        "undefined/libraries/H5P.MultiMediaChoice-0.3/dist/h5p-multi-media-choice.js?version=0.3.27",
        "undefined/libraries/H5P.Column-1.18/scripts/h5p-column.js?version=1.18.1",
      ],
      styles: [
        "undefined/libraries/H5P.AdvancedText-1.1/text.css?version=1.1.14",
        "undefined/libraries/H5P.Table-1.2/styles/table.css?version=1.2.2",
        "undefined/libraries/H5P.Chart-1.2/chart.css?version=1.2.22",
        "undefined/libraries/FontAwesome-4.5/h5p-font-awesome.min.css?version=4.5.4",
        "undefined/libraries/H5P.FontIcons-1.0/styles/h5p-font-icons.css?version=1.0.11",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-help-dialog.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-message-dialog.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-progress-circle.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-simple-rounded-button.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-speech-bubble.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-tip.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-slider.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-score-bar.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-progressbar.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-ui.css?version=1.3.19",
        "undefined/libraries/H5P.JoubelUI-1.3/css/joubel-icon.css?version=1.3.19",
        "undefined/libraries/H5P.Question-1.5/styles/question.css?version=1.5.15",
        "undefined/libraries/H5P.Question-1.5/styles/explainer.css?version=1.5.15",
        "undefined/libraries/H5P.MultiChoice-1.16/css/multichoice.css?version=1.16.14",
        "undefined/libraries/H5P.Blanks-1.14/css/blanks.css?version=1.14.13",
        "undefined/libraries/H5P.Image-1.1/image.css?version=1.1.22",
        "undefined/libraries/H5P.MaterialDesignIcons-1.0/h5p-material-icons.css?version=1.0.0",
        "undefined/libraries/H5P.MultiMediaChoice-0.3/dist/h5p-multi-media-choice.css?version=0.3.27",
        "undefined/libraries/H5P.Column-1.18/styles/h5p-column.css?version=1.18.1",
      ],
      url: ".",
      exportUrl: "undefined/download/67fce07f39d5b91be8f9d65a",
    },
  },
  core: {
    scripts: [
      "undefined/core/js/jquery.js?version=1.27",
      "undefined/core/js/h5p.js?version=1.27",
      "undefined/core/js/h5p-event-dispatcher.js?version=1.27",
      "undefined/core/js/h5p-x-api-event.js?version=1.27",
      "undefined/core/js/h5p-x-api.js?version=1.27",
      "undefined/core/js/h5p-content-type.js?version=1.27",
      "undefined/core/js/h5p-confirmation-dialog.js?version=1.27",
      "undefined/core/js/h5p-action-bar.js?version=1.27",
      "undefined/core/js/request-queue.js?version=1.27",
    ],
    styles: [
      "undefined/core/styles/h5p.css?version=1.27",
      "undefined/core/styles/h5p-confirmation-dialog.css?version=1.27",
      "undefined/core/styles/h5p-core-button.css?version=1.27",
    ],
  },
  l10n: {
    H5P: {
      fullscreen: "Fullscreen",
      disableFullscreen: "Disable fullscreen",
      download: "Download",
      copyrights: "Rights of use",
      embed: "Embed",
      size: "Size",
      showAdvanced: "Show advanced",
      hideAdvanced: "Hide advanced",
      advancedHelp:
        "Include this script on your website if you want dynamic sizing of the embedded content:",
      copyrightInformation: "Rights of use",
      close: "Close",
      title: "Title",
      author: "Author",
      year: "Year",
      source: "Source",
      license: "License",
      thumbnail: "Thumbnail",
      noCopyrights: "No copyright information available for this content.",
      reuse: "Reuse",
      reuseContent: "Reuse Content",
      reuseDescription: "Reuse this content.",
      downloadDescription: "Download this content as a H5P file.",
      copyrightsDescription: "View copyright information for this content.",
      embedDescription: "View the embed code for this content.",
      h5pDescription: "Visit H5P.org to check out more cool content.",
      contentChanged: "This content has changed since you last used it.",
      startingOver: "You'll be starting over.",
      by: "by",
      showMore: "Show more",
      showLess: "Show less",
      subLevel: "Sublevel",
      confirmDialogHeader: "Confirm action",
      confirmDialogBody:
        "Please confirm that you wish to proceed. This action is not reversible.",
      cancelLabel: "Cancel",
      confirmLabel: "Confirm",
      licenseU: "Undisclosed",
      licenseCCBY: "Attribution",
      licenseCCBYSA: "Attribution-ShareAlike",
      licenseCCBYND: "Attribution-NoDerivs",
      licenseCCBYNC: "Attribution-NonCommercial",
      licenseCCBYNCSA: "Attribution-NonCommercial-ShareAlike",
      licenseCCBYNCND: "Attribution-NonCommercial-NoDerivs",
      licenseCC40: "4.0 International",
      licenseCC30: "3.0 Unported",
      licenseCC25: "2.5 Generic",
      licenseCC20: "2.0 Generic",
      licenseCC10: "1.0 Generic",
      licenseGPL: "General Public License",
      licenseV3: "Version 3",
      licenseV2: "Version 2",
      licenseV1: "Version 1",
      licensePD: "Public Domain",
      licenseCC010: "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication",
      licensePDM: "Public Domain Mark",
      licenseC: "Copyright",
      contentType: "Content Type",
      licenseExtras: "License Extras",
      changes: "Changelog",
      contentCopied: "Content is copied to the clipboard",
      connectionLost:
        "Connection lost. Results will be stored and sent when you regain connection.",
      connectionReestablished: "Connection reestablished.",
      resubmitScores: "Attempting to submit stored results.",
      offlineDialogHeader: "Your connection to the server was lost",
      offlineDialogBody:
        "We were unable to send information about your completion of this task. Please check your internet connection.",
      offlineDialogRetryMessage: "Retrying in :num....",
      offlineDialogRetryButtonLabel: "Retry now",
      offlineSuccessfulSubmit: "Successfully submitted results.",
      mainTitle: "Sharing <strong>:title</strong>",
      editInfoTitle: "Edit info for <strong>:title</strong>",
      cancel: "Cancel",
      back: "Back",
      next: "Next",
      reviewInfo: "Review info",
      share: "Share",
      saveChanges: "Save changes",
      registerOnHub: "Register on the H5P Hub",
      updateRegistrationOnHub: "Save account settings",
      requiredInfo: "Required Info",
      optionalInfo: "Optional Info",
      reviewAndShare: "Review & Share",
      reviewAndSave: "Review & Save",
      shared: "Shared",
      currentStep: "Step :step of :total",
      sharingNote: "All content details can be edited after sharing",
      licenseDescription: "Select a license for your content",
      licenseVersion: "License Version",
      licenseVersionDescription: "Select a license version",
      disciplineLabel: "Disciplines",
      disciplineDescription: "You can select multiple disciplines",
      disciplineLimitReachedMessage:
        "You can select up to :numDisciplines disciplines",
      discipline: {
        searchPlaceholder: "Type to search for disciplines",
        in: "in",
        dropdownButton: "Dropdown button",
      },
      removeChip: "Remove :chip from the list",
      keywordsPlaceholder: "Add keywords",
      keywords: "Keywords",
      keywordsDescription:
        'You can add multiple keywords separated by commas. Press "Enter" or "Add" to confirm keywords',
      altText: "Alt text",
      reviewMessage: "Please review the info below before you share",
      subContentWarning:
        "Sub-content (images, questions etc.) will be shared under :license unless otherwise specified in the authoring tool",
      disciplines: "Disciplines",
      shortDescription: "Short description",
      longDescription: "Long description",
      icon: "Icon",
      screenshots: "Screenshots",
      helpChoosingLicense: "Help me choose a license",
      shareFailed: "Share failed.",
      editingFailed: "Editing failed.",
      shareTryAgain: "Something went wrong, please try to share again.",
      pleaseWait: "Please wait...",
      language: "Language",
      level: "Level",
      shortDescriptionPlaceholder: "Short description of your content",
      longDescriptionPlaceholder: "Long description of your content",
      description: "Description",
      iconDescription:
        "640x480px. If not selected content will use category icon",
      screenshotsDescription: "Add up to five screenshots of your content",
      submitted: "Submitted!",
      isNowSubmitted: "Is now submitted to H5P Hub",
      changeHasBeenSubmitted: "A change has been submited for",
      contentAvailable:
        "Your content will normally be available in the Hub within one business day.",
      contentUpdateSoon: "Your content will update soon",
      contentLicenseTitle: "Content License Info",
      licenseDialogDescription:
        "Click on a specific license to get info about proper usage",
      publisherFieldTitle: "Publisher",
      publisherFieldDescription:
        'This will display as the "Publisher name" on shared content',
      emailAddress: "Email Address",
      publisherDescription: "Publisher description",
      publisherDescriptionText:
        'This will be displayed under "Publisher info" on shared content',
      contactPerson: "Contact Person",
      phone: "Phone",
      address: "Address",
      city: "City",
      zip: "Zip",
      country: "Country",
      logoUploadText: "Organization logo or avatar",
      acceptTerms:
        "I accept the <a href=':url' target='_blank'>terms of use</a>",
      successfullyRegistred:
        "You have successfully registered an account on the H5P Hub",
      successfullyRegistredDescription: "You account details can be changed",
      successfullyUpdated:
        "Your H5P Hub account settings have successfully been changed",
      accountDetailsLinkText: "here",
      registrationTitle: "H5P Hub Registration",
      registrationFailed: "An error occurred",
      registrationFailedDescription:
        "We were not able to create an account at this point. Something went wrong. Try again later.",
      maxLength: ":length is the maximum number of characters",
      keywordExists: "Keyword already exists!",
      licenseDetails: "License details",
      remove: "Remove",
      removeImage: "Remove image",
      cancelPublishConfirmationDialogTitle: "Cancel sharing",
      cancelPublishConfirmationDialogDescription:
        "Are you sure you want to cancel the sharing process?",
      cancelPublishConfirmationDialogCancelButtonText: "No",
      cancelPublishConfirmationDialogConfirmButtonText: "Yes",
      add: "Add",
      age: "Typical age",
      ageDescription:
        'The target audience of this content. Possible input formats separated by commas: "1,34-45,-50,59-".',
      invalidAge:
        'Invalid input format for Typical age. Possible input formats separated by commas: "1, 34-45, -50, -59-".',
      contactPersonDescription:
        'H5P will reach out to the contact person in case there are any issues with the content shared by the publisher. The contact person"s name or other information will not be published or shared with third parties',
      emailAddressDescription:
        "The email address will be used by H5P to reach out to the publisher in case of any issues with the content or in case the publisher needs to recover their account. It will not be published or shared with any third parties",
      copyrightWarning:
        "Copyrighted material cannot be shared in the H5P Content Hub. If the content is licensed with a OER friendly license like Creative Commons, please choose the appropriate license. If not this content cannot be shared.",
      keywordsExits: "Keywords already exists!",
      someKeywordsExits: "Some of these keywords already exist",
    },
  },
  postUserStatistics: true,
  saveFreq: false,
  url: ".",
  hubIsEnabled: true,
  fullscreenDisabled: 0,
  user: { name: "name", mail: "undefined@users.lumi.education" },
  baseUrl: ".",
  libraryUrl: "",
};
/*!@license js/jquery.js by Joubel and other contributors, licensed under GNU GENERAL PUBLIC LICENSE Version 3*/
!(function (t, e) {
  "use strict";
  "object" == typeof module && "object" == typeof module.exports
    ? (module.exports = t.document
        ? e(t, !0)
        : function (t) {
            if (t.document) return e(t);
            throw new Error("jQuery requires a window with a document");
          })
    : e(t);
})("undefined" != typeof window ? window : this, function (P, j) {
  "use strict";
  function y(t) {
    return "function" == typeof t && "number" != typeof t.nodeType;
  }
  function g(t) {
    return null != t && t === t.window;
  }
  var e = [],
    z = Object.getPrototypeOf,
    s = e.slice,
    R = e.flat
      ? function (t) {
          return e.flat.call(t);
        }
      : function (t) {
          return e.concat.apply([], t);
        },
    O = e.push,
    q = e.indexOf,
    B = {},
    F = B.toString,
    $ = B.hasOwnProperty,
    U = $.toString,
    V = U.call(Object),
    m = {},
    H = P.document,
    Q = { type: !0, src: !0, nonce: !0, noModule: !0 };
  function W(t, e, n) {
    var r,
      i,
      o = (n = n || H).createElement("script");
    if (((o.text = t), e))
      for (r in Q)
        (i = e[r] || (e.getAttribute && e.getAttribute(r))) &&
          o.setAttribute(r, i);
    n.head.appendChild(o).parentNode.removeChild(o);
  }
  function p(t) {
    return null == t
      ? t + ""
      : "object" == typeof t || "function" == typeof t
        ? B[F.call(t)] || "object"
        : typeof t;
  }
  var t = "3.5.1",
    C = function (t, e) {
      return new C.fn.init(t, e);
    };
  function X(t) {
    var e = !!t && "length" in t && t.length,
      n = p(t);
    return (
      !y(t) &&
      !g(t) &&
      ("array" === n ||
        0 === e ||
        ("number" == typeof e && 0 < e && e - 1 in t))
    );
  }
  ((C.fn = C.prototype =
    {
      jquery: t,
      constructor: C,
      length: 0,
      toArray: function () {
        return s.call(this);
      },
      get: function (t) {
        return null == t
          ? s.call(this)
          : t < 0
            ? this[t + this.length]
            : this[t];
      },
      pushStack: function (t) {
        t = C.merge(this.constructor(), t);
        return ((t.prevObject = this), t);
      },
      each: function (t) {
        return C.each(this, t);
      },
      map: function (n) {
        return this.pushStack(
          C.map(this, function (t, e) {
            return n.call(t, e, t);
          }),
        );
      },
      slice: function () {
        return this.pushStack(s.apply(this, arguments));
      },
      first: function () {
        return this.eq(0);
      },
      last: function () {
        return this.eq(-1);
      },
      even: function () {
        return this.pushStack(
          C.grep(this, function (t, e) {
            return (e + 1) % 2;
          }),
        );
      },
      odd: function () {
        return this.pushStack(
          C.grep(this, function (t, e) {
            return e % 2;
          }),
        );
      },
      eq: function (t) {
        var e = this.length,
          t = +t + (t < 0 ? e : 0);
        return this.pushStack(0 <= t && t < e ? [this[t]] : []);
      },
      end: function () {
        return this.prevObject || this.constructor();
      },
      push: O,
      sort: e.sort,
      splice: e.splice,
    }),
    (C.extend = C.fn.extend =
      function () {
        var t,
          e,
          n,
          r,
          i,
          o = arguments[0] || {},
          a = 1,
          s = arguments.length,
          u = !1;
        for (
          "boolean" == typeof o && ((u = o), (o = arguments[a] || {}), a++),
            "object" == typeof o || y(o) || (o = {}),
            a === s && ((o = this), a--);
          a < s;
          a++
        )
          if (null != (t = arguments[a]))
            for (e in t)
              ((n = t[e]),
                "__proto__" !== e &&
                  o !== n &&
                  (u && n && (C.isPlainObject(n) || (r = Array.isArray(n)))
                    ? ((i = o[e]),
                      (i =
                        r && !Array.isArray(i)
                          ? []
                          : r || C.isPlainObject(i)
                            ? i
                            : {}),
                      (r = !1),
                      (o[e] = C.extend(u, i, n)))
                    : void 0 !== n && (o[e] = n)));
        return o;
      }),
    C.extend({
      expando: "jQuery" + (t + Math.random()).replace(/\D/g, ""),
      isReady: !0,
      error: function (t) {
        throw new Error(t);
      },
      noop: function () {},
      isPlainObject: function (t) {
        return !(
          !t ||
          "[object Object]" !== F.call(t) ||
          ((t = z(t)) &&
            ("function" !=
              typeof (t = $.call(t, "constructor") && t.constructor) ||
              U.call(t) !== V))
        );
      },
      isEmptyObject: function (t) {
        for (var e in t) return !1;
        return !0;
      },
      globalEval: function (t, e, n) {
        W(t, { nonce: e && e.nonce }, n);
      },
      each: function (t, e) {
        var n,
          r = 0;
        if (X(t))
          for (n = t.length; r < n && !1 !== e.call(t[r], r, t[r]); r++);
        else for (r in t) if (!1 === e.call(t[r], r, t[r])) break;
        return t;
      },
      makeArray: function (t, e) {
        e = e || [];
        return (
          null != t &&
            (X(Object(t))
              ? C.merge(e, "string" == typeof t ? [t] : t)
              : O.call(e, t)),
          e
        );
      },
      inArray: function (t, e, n) {
        return null == e ? -1 : q.call(e, t, n);
      },
      merge: function (t, e) {
        for (var n = +e.length, r = 0, i = t.length; r < n; r++) t[i++] = e[r];
        return ((t.length = i), t);
      },
      grep: function (t, e, n) {
        for (var r = [], i = 0, o = t.length, a = !n; i < o; i++)
          !e(t[i], i) != a && r.push(t[i]);
        return r;
      },
      map: function (t, e, n) {
        var r,
          i,
          o = 0,
          a = [];
        if (X(t))
          for (r = t.length; o < r; o++)
            null != (i = e(t[o], o, n)) && a.push(i);
        else for (o in t) null != (i = e(t[o], o, n)) && a.push(i);
        return R(a);
      },
      guid: 1,
      support: m,
    }),
    "function" == typeof Symbol && (C.fn[Symbol.iterator] = e[Symbol.iterator]),
    C.each(
      "Boolean Number String Function Array Date RegExp Object Error Symbol".split(
        " ",
      ),
      function (t, e) {
        B["[object " + e + "]"] = e.toLowerCase();
      },
    ));
  function r(t, e, n) {
    for (var r = [], i = void 0 !== n; (t = t[e]) && 9 !== t.nodeType; )
      if (1 === t.nodeType) {
        if (i && C(t).is(n)) break;
        r.push(t);
      }
    return r;
  }
  function Y(t, e) {
    for (var n = []; t; t = t.nextSibling)
      1 === t.nodeType && t !== e && n.push(t);
    return n;
  }
  var t = (function (j) {
      function h(t, e) {
        return (
          (t = "0x" + t.slice(1) - 65536),
          e ||
            (t < 0
              ? String.fromCharCode(65536 + t)
              : String.fromCharCode((t >> 10) | 55296, (1023 & t) | 56320))
        );
      }
      function z(t, e) {
        return e
          ? "\0" === t
            ? "�"
            : t.slice(0, -1) +
              "\\" +
              t.charCodeAt(t.length - 1).toString(16) +
              " "
          : "\\" + t;
      }
      function R() {
        P();
      }
      var t,
        f,
        x,
        o,
        O,
        d,
        q,
        B,
        w,
        u,
        c,
        P,
        H,
        n,
        C,
        p,
        r,
        i,
        g,
        S = "sizzle" + +new Date(),
        l = j.document,
        k = 0,
        F = 0,
        $ = I(),
        U = I(),
        V = I(),
        m = I(),
        Q = function (t, e) {
          return (t === e && (c = !0), 0);
        },
        W = {}.hasOwnProperty,
        e = [],
        X = e.pop,
        Y = e.push,
        T = e.push,
        G = e.slice,
        y = function (t, e) {
          for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n;
          return -1;
        },
        J =
          "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
        a = "[\\x20\\t\\r\\n\\f]",
        s =
          "(?:\\\\[\\da-fA-F]{1,6}" +
          a +
          "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
        Z =
          "\\[" +
          a +
          "*(" +
          s +
          ")(?:" +
          a +
          "*([*^$|!~]?=)" +
          a +
          "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" +
          s +
          "))|)" +
          a +
          "*\\]",
        K =
          ":(" +
          s +
          ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" +
          Z +
          ")*)|.*)\\)|)",
        tt = new RegExp(a + "+", "g"),
        v = new RegExp("^" + a + "+|((?:^|[^\\\\])(?:\\\\.)*)" + a + "+$", "g"),
        et = new RegExp("^" + a + "*," + a + "*"),
        nt = new RegExp("^" + a + "*([>+~]|" + a + ")" + a + "*"),
        rt = new RegExp(a + "|>"),
        it = new RegExp(K),
        ot = new RegExp("^" + s + "$"),
        b = {
          ID: new RegExp("^#(" + s + ")"),
          CLASS: new RegExp("^\\.(" + s + ")"),
          TAG: new RegExp("^(" + s + "|[*])"),
          ATTR: new RegExp("^" + Z),
          PSEUDO: new RegExp("^" + K),
          CHILD: new RegExp(
            "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
              a +
              "*(even|odd|(([+-]|)(\\d*)n|)" +
              a +
              "*(?:([+-]|)" +
              a +
              "*(\\d+)|))" +
              a +
              "*\\)|)",
            "i",
          ),
          bool: new RegExp("^(?:" + J + ")$", "i"),
          needsContext: new RegExp(
            "^" +
              a +
              "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
              a +
              "*((?:-\\d)?\\d*)" +
              a +
              "*\\)|)(?=[^-]|$)",
            "i",
          ),
        },
        at = /HTML$/i,
        st = /^(?:input|select|textarea|button)$/i,
        ut = /^h\d$/i,
        M = /^[^{]+\{\s*\[native \w/,
        ct = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
        lt = /[+~]/,
        A = new RegExp(
          "\\\\[\\da-fA-F]{1,6}" + a + "?|\\\\([^\\r\\n\\f])",
          "g",
        ),
        ht = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
        ft = yt(
          function (t) {
            return !0 === t.disabled && "fieldset" === t.nodeName.toLowerCase();
          },
          { dir: "parentNode", next: "legend" },
        );
      try {
        (T.apply((e = G.call(l.childNodes)), l.childNodes),
          e[l.childNodes.length].nodeType);
      } catch (t) {
        T = {
          apply: e.length
            ? function (t, e) {
                Y.apply(t, G.call(e));
              }
            : function (t, e) {
                for (var n = t.length, r = 0; (t[n++] = e[r++]); );
                t.length = n - 1;
              },
        };
      }
      function E(t, e, n, r) {
        var i,
          o,
          a,
          s,
          u,
          c,
          l = e && e.ownerDocument,
          h = e ? e.nodeType : 9;
        if (
          ((n = n || []),
          "string" != typeof t || !t || (1 !== h && 9 !== h && 11 !== h))
        )
          return n;
        if (!r && (P(e), (e = e || H), C)) {
          if (11 !== h && (s = ct.exec(t)))
            if ((i = s[1])) {
              if (9 === h) {
                if (!(c = e.getElementById(i))) return n;
                if (c.id === i) return (n.push(c), n);
              } else if (
                l &&
                (c = l.getElementById(i)) &&
                g(e, c) &&
                c.id === i
              )
                return (n.push(c), n);
            } else {
              if (s[2]) return (T.apply(n, e.getElementsByTagName(t)), n);
              if (
                (i = s[3]) &&
                f.getElementsByClassName &&
                e.getElementsByClassName
              )
                return (T.apply(n, e.getElementsByClassName(i)), n);
            }
          if (
            f.qsa &&
            !m[t + " "] &&
            (!p || !p.test(t)) &&
            (1 !== h || "object" !== e.nodeName.toLowerCase())
          ) {
            if (((c = t), (l = e), 1 === h && (rt.test(t) || nt.test(t)))) {
              for (
                ((l = (lt.test(t) && mt(e.parentNode)) || e) === e &&
                  f.scope) ||
                  ((a = e.getAttribute("id"))
                    ? (a = a.replace(ht, z))
                    : e.setAttribute("id", (a = S))),
                  o = (u = d(t)).length;
                o--;
              )
                u[o] = (a ? "#" + a : ":scope") + " " + N(u[o]);
              c = u.join(",");
            }
            try {
              return (T.apply(n, l.querySelectorAll(c)), n);
            } catch (e) {
              m(t, !0);
            } finally {
              a === S && e.removeAttribute("id");
            }
          }
        }
        return B(t.replace(v, "$1"), e, n, r);
      }
      function I() {
        var r = [];
        return function t(e, n) {
          return (
            r.push(e + " ") > x.cacheLength && delete t[r.shift()],
            (t[e + " "] = n)
          );
        };
      }
      function D(t) {
        return ((t[S] = !0), t);
      }
      function L(t) {
        var e = H.createElement("fieldset");
        try {
          return !!t(e);
        } catch (t) {
          return !1;
        } finally {
          e.parentNode && e.parentNode.removeChild(e);
        }
      }
      function dt(t, e) {
        for (var n = t.split("|"), r = n.length; r--; ) x.attrHandle[n[r]] = e;
      }
      function pt(t, e) {
        var n = e && t,
          r =
            n &&
            1 === t.nodeType &&
            1 === e.nodeType &&
            t.sourceIndex - e.sourceIndex;
        if (r) return r;
        if (n) for (; (n = n.nextSibling); ) if (n === e) return -1;
        return t ? 1 : -1;
      }
      function gt(e) {
        return function (t) {
          return "form" in t
            ? t.parentNode && !1 === t.disabled
              ? "label" in t
                ? "label" in t.parentNode
                  ? t.parentNode.disabled === e
                  : t.disabled === e
                : t.isDisabled === e || (t.isDisabled !== !e && ft(t) === e)
              : t.disabled === e
            : "label" in t && t.disabled === e;
        };
      }
      function _(a) {
        return D(function (o) {
          return (
            (o = +o),
            D(function (t, e) {
              for (var n, r = a([], t.length, o), i = r.length; i--; )
                t[(n = r[i])] && (t[n] = !(e[n] = t[n]));
            })
          );
        });
      }
      function mt(t) {
        return t && void 0 !== t.getElementsByTagName && t;
      }
      for (t in ((f = E.support = {}),
      (O = E.isXML =
        function (t) {
          var e = t.namespaceURI,
            t = (t.ownerDocument || t).documentElement;
          return !at.test(e || (t && t.nodeName) || "HTML");
        }),
      (P = E.setDocument =
        function (t) {
          var t = t ? t.ownerDocument || t : l;
          return (
            t != H &&
              9 === t.nodeType &&
              t.documentElement &&
              ((n = (H = t).documentElement),
              (C = !O(H)),
              l != H &&
                (t = H.defaultView) &&
                t.top !== t &&
                (t.addEventListener
                  ? t.addEventListener("unload", R, !1)
                  : t.attachEvent && t.attachEvent("onunload", R)),
              (f.scope = L(function (t) {
                return (
                  n.appendChild(t).appendChild(H.createElement("div")),
                  void 0 !== t.querySelectorAll &&
                    !t.querySelectorAll(":scope fieldset div").length
                );
              })),
              (f.attributes = L(function (t) {
                return ((t.className = "i"), !t.getAttribute("className"));
              })),
              (f.getElementsByTagName = L(function (t) {
                return (
                  t.appendChild(H.createComment("")),
                  !t.getElementsByTagName("*").length
                );
              })),
              (f.getElementsByClassName = M.test(H.getElementsByClassName)),
              (f.getById = L(function (t) {
                return (
                  (n.appendChild(t).id = S),
                  !H.getElementsByName || !H.getElementsByName(S).length
                );
              })),
              f.getById
                ? ((x.filter.ID = function (t) {
                    var e = t.replace(A, h);
                    return function (t) {
                      return t.getAttribute("id") === e;
                    };
                  }),
                  (x.find.ID = function (t, e) {
                    if (void 0 !== e.getElementById && C)
                      return (e = e.getElementById(t)) ? [e] : [];
                  }))
                : ((x.filter.ID = function (t) {
                    var e = t.replace(A, h);
                    return function (t) {
                      t =
                        void 0 !== t.getAttributeNode &&
                        t.getAttributeNode("id");
                      return t && t.value === e;
                    };
                  }),
                  (x.find.ID = function (t, e) {
                    if (void 0 !== e.getElementById && C) {
                      var n,
                        r,
                        i,
                        o = e.getElementById(t);
                      if (o) {
                        if ((n = o.getAttributeNode("id")) && n.value === t)
                          return [o];
                        for (i = e.getElementsByName(t), r = 0; (o = i[r++]); )
                          if ((n = o.getAttributeNode("id")) && n.value === t)
                            return [o];
                      }
                      return [];
                    }
                  })),
              (x.find.TAG = f.getElementsByTagName
                ? function (t, e) {
                    return void 0 !== e.getElementsByTagName
                      ? e.getElementsByTagName(t)
                      : f.qsa
                        ? e.querySelectorAll(t)
                        : void 0;
                  }
                : function (t, e) {
                    var n,
                      r = [],
                      i = 0,
                      o = e.getElementsByTagName(t);
                    if ("*" !== t) return o;
                    for (; (n = o[i++]); ) 1 === n.nodeType && r.push(n);
                    return r;
                  }),
              (x.find.CLASS =
                f.getElementsByClassName &&
                function (t, e) {
                  if (void 0 !== e.getElementsByClassName && C)
                    return e.getElementsByClassName(t);
                }),
              (r = []),
              (p = []),
              (f.qsa = M.test(H.querySelectorAll)) &&
                (L(function (t) {
                  var e;
                  ((n.appendChild(t).innerHTML =
                    "<a id='" +
                    S +
                    "'></a><select id='" +
                    S +
                    "-\r\\' msallowcapture=''><option selected=''></option></select>"),
                    t.querySelectorAll("[msallowcapture^='']").length &&
                      p.push("[*^$]=" + a + "*(?:''|\"\")"),
                    t.querySelectorAll("[selected]").length ||
                      p.push("\\[" + a + "*(?:value|" + J + ")"),
                    t.querySelectorAll("[id~=" + S + "-]").length ||
                      p.push("~="),
                    (e = H.createElement("input")).setAttribute("name", ""),
                    t.appendChild(e),
                    t.querySelectorAll("[name='']").length ||
                      p.push(
                        "\\[" + a + "*name" + a + "*=" + a + "*(?:''|\"\")",
                      ),
                    t.querySelectorAll(":checked").length || p.push(":checked"),
                    t.querySelectorAll("a#" + S + "+*").length ||
                      p.push(".#.+[+~]"),
                    t.querySelectorAll("\\\f"),
                    p.push("[\\r\\n\\f]"));
                }),
                L(function (t) {
                  t.innerHTML =
                    "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
                  var e = H.createElement("input");
                  (e.setAttribute("type", "hidden"),
                    t.appendChild(e).setAttribute("name", "D"),
                    t.querySelectorAll("[name=d]").length &&
                      p.push("name" + a + "*[*^$|!~]?="),
                    2 !== t.querySelectorAll(":enabled").length &&
                      p.push(":enabled", ":disabled"),
                    (n.appendChild(t).disabled = !0),
                    2 !== t.querySelectorAll(":disabled").length &&
                      p.push(":enabled", ":disabled"),
                    t.querySelectorAll("*,:x"),
                    p.push(",.*:"));
                })),
              (f.matchesSelector = M.test(
                (i =
                  n.matches ||
                  n.webkitMatchesSelector ||
                  n.mozMatchesSelector ||
                  n.oMatchesSelector ||
                  n.msMatchesSelector),
              )) &&
                L(function (t) {
                  ((f.disconnectedMatch = i.call(t, "*")),
                    i.call(t, "[s!='']:x"),
                    r.push("!=", K));
                }),
              (p = p.length && new RegExp(p.join("|"))),
              (r = r.length && new RegExp(r.join("|"))),
              (t = M.test(n.compareDocumentPosition)),
              (g =
                t || M.test(n.contains)
                  ? function (t, e) {
                      var n = 9 === t.nodeType ? t.documentElement : t,
                        e = e && e.parentNode;
                      return (
                        t === e ||
                        !(
                          !e ||
                          1 !== e.nodeType ||
                          !(n.contains
                            ? n.contains(e)
                            : t.compareDocumentPosition &&
                              16 & t.compareDocumentPosition(e))
                        )
                      );
                    }
                  : function (t, e) {
                      if (e)
                        for (; (e = e.parentNode); ) if (e === t) return !0;
                      return !1;
                    }),
              (Q = t
                ? function (t, e) {
                    var n;
                    return t === e
                      ? ((c = !0), 0)
                      : !t.compareDocumentPosition -
                          !e.compareDocumentPosition ||
                          (1 &
                            (n =
                              (t.ownerDocument || t) == (e.ownerDocument || e)
                                ? t.compareDocumentPosition(e)
                                : 1) ||
                          (!f.sortDetached &&
                            e.compareDocumentPosition(t) === n)
                            ? t == H || (t.ownerDocument == l && g(l, t))
                              ? -1
                              : e == H || (e.ownerDocument == l && g(l, e))
                                ? 1
                                : u
                                  ? y(u, t) - y(u, e)
                                  : 0
                            : 4 & n
                              ? -1
                              : 1);
                  }
                : function (t, e) {
                    if (t === e) return ((c = !0), 0);
                    var n,
                      r = 0,
                      i = t.parentNode,
                      o = e.parentNode,
                      a = [t],
                      s = [e];
                    if (!i || !o)
                      return t == H
                        ? -1
                        : e == H
                          ? 1
                          : i
                            ? -1
                            : o
                              ? 1
                              : u
                                ? y(u, t) - y(u, e)
                                : 0;
                    if (i === o) return pt(t, e);
                    for (n = t; (n = n.parentNode); ) a.unshift(n);
                    for (n = e; (n = n.parentNode); ) s.unshift(n);
                    for (; a[r] === s[r]; ) r++;
                    return r
                      ? pt(a[r], s[r])
                      : a[r] == l
                        ? -1
                        : s[r] == l
                          ? 1
                          : 0;
                  })),
            H
          );
        }),
      (E.matches = function (t, e) {
        return E(t, null, null, e);
      }),
      (E.matchesSelector = function (t, e) {
        if (
          (P(t),
          f.matchesSelector &&
            C &&
            !m[e + " "] &&
            (!r || !r.test(e)) &&
            (!p || !p.test(e)))
        )
          try {
            var n = i.call(t, e);
            if (
              n ||
              f.disconnectedMatch ||
              (t.document && 11 !== t.document.nodeType)
            )
              return n;
          } catch (t) {
            m(e, !0);
          }
        return 0 < E(e, H, null, [t]).length;
      }),
      (E.contains = function (t, e) {
        return ((t.ownerDocument || t) != H && P(t), g(t, e));
      }),
      (E.attr = function (t, e) {
        (t.ownerDocument || t) != H && P(t);
        var n = x.attrHandle[e.toLowerCase()],
          n = n && W.call(x.attrHandle, e.toLowerCase()) ? n(t, e, !C) : void 0;
        return void 0 !== n
          ? n
          : f.attributes || !C
            ? t.getAttribute(e)
            : (n = t.getAttributeNode(e)) && n.specified
              ? n.value
              : null;
      }),
      (E.escape = function (t) {
        return (t + "").replace(ht, z);
      }),
      (E.error = function (t) {
        throw new Error("Syntax error, unrecognized expression: " + t);
      }),
      (E.uniqueSort = function (t) {
        var e,
          n = [],
          r = 0,
          i = 0;
        if (
          ((c = !f.detectDuplicates),
          (u = !f.sortStable && t.slice(0)),
          t.sort(Q),
          c)
        ) {
          for (; (e = t[i++]); ) e === t[i] && (r = n.push(i));
          for (; r--; ) t.splice(n[r], 1);
        }
        return ((u = null), t);
      }),
      (o = E.getText =
        function (t) {
          var e,
            n = "",
            r = 0,
            i = t.nodeType;
          if (i) {
            if (1 === i || 9 === i || 11 === i) {
              if ("string" == typeof t.textContent) return t.textContent;
              for (t = t.firstChild; t; t = t.nextSibling) n += o(t);
            } else if (3 === i || 4 === i) return t.nodeValue;
          } else for (; (e = t[r++]); ) n += o(e);
          return n;
        }),
      ((x = E.selectors =
        {
          cacheLength: 50,
          createPseudo: D,
          match: b,
          attrHandle: {},
          find: {},
          relative: {
            ">": { dir: "parentNode", first: !0 },
            " ": { dir: "parentNode" },
            "+": { dir: "previousSibling", first: !0 },
            "~": { dir: "previousSibling" },
          },
          preFilter: {
            ATTR: function (t) {
              return (
                (t[1] = t[1].replace(A, h)),
                (t[3] = (t[3] || t[4] || t[5] || "").replace(A, h)),
                "~=" === t[2] && (t[3] = " " + t[3] + " "),
                t.slice(0, 4)
              );
            },
            CHILD: function (t) {
              return (
                (t[1] = t[1].toLowerCase()),
                "nth" === t[1].slice(0, 3)
                  ? (t[3] || E.error(t[0]),
                    (t[4] = +(t[4]
                      ? t[5] + (t[6] || 1)
                      : 2 * ("even" === t[3] || "odd" === t[3]))),
                    (t[5] = +(t[7] + t[8] || "odd" === t[3])))
                  : t[3] && E.error(t[0]),
                t
              );
            },
            PSEUDO: function (t) {
              var e,
                n = !t[6] && t[2];
              return b.CHILD.test(t[0])
                ? null
                : (t[3]
                    ? (t[2] = t[4] || t[5] || "")
                    : n &&
                      it.test(n) &&
                      (e =
                        (e = d(n, !0)) &&
                        n.indexOf(")", n.length - e) - n.length) &&
                      ((t[0] = t[0].slice(0, e)), (t[2] = n.slice(0, e))),
                  t.slice(0, 3));
            },
          },
          filter: {
            TAG: function (t) {
              var e = t.replace(A, h).toLowerCase();
              return "*" === t
                ? function () {
                    return !0;
                  }
                : function (t) {
                    return t.nodeName && t.nodeName.toLowerCase() === e;
                  };
            },
            CLASS: function (t) {
              var e = $[t + " "];
              return (
                e ||
                ((e = new RegExp("(^|" + a + ")" + t + "(" + a + "|$)")) &&
                  $(t, function (t) {
                    return e.test(
                      ("string" == typeof t.className && t.className) ||
                        (void 0 !== t.getAttribute &&
                          t.getAttribute("class")) ||
                        "",
                    );
                  }))
              );
            },
            ATTR: function (e, n, r) {
              return function (t) {
                t = E.attr(t, e);
                return null == t
                  ? "!=" === n
                  : !n ||
                      ((t += ""),
                      "=" === n
                        ? t === r
                        : "!=" === n
                          ? t !== r
                          : "^=" === n
                            ? r && 0 === t.indexOf(r)
                            : "*=" === n
                              ? r && -1 < t.indexOf(r)
                              : "$=" === n
                                ? r && t.slice(-r.length) === r
                                : "~=" === n
                                  ? -1 <
                                    (" " + t.replace(tt, " ") + " ").indexOf(r)
                                  : "|=" === n &&
                                    (t === r ||
                                      t.slice(0, r.length + 1) === r + "-"));
              };
            },
            CHILD: function (p, t, e, g, m) {
              var v = "nth" !== p.slice(0, 3),
                y = "last" !== p.slice(-4),
                b = "of-type" === t;
              return 1 === g && 0 === m
                ? function (t) {
                    return !!t.parentNode;
                  }
                : function (t, e, n) {
                    var r,
                      i,
                      o,
                      a,
                      s,
                      u,
                      c = v != y ? "nextSibling" : "previousSibling",
                      l = t.parentNode,
                      h = b && t.nodeName.toLowerCase(),
                      f = !n && !b,
                      d = !1;
                    if (l) {
                      if (v) {
                        for (; c; ) {
                          for (a = t; (a = a[c]); )
                            if (
                              b
                                ? a.nodeName.toLowerCase() === h
                                : 1 === a.nodeType
                            )
                              return !1;
                          u = c = "only" === p && !u && "nextSibling";
                        }
                        return !0;
                      }
                      if (((u = [y ? l.firstChild : l.lastChild]), y && f)) {
                        for (
                          d =
                            (s =
                              (r =
                                (i =
                                  (o = (a = l)[S] || (a[S] = {}))[a.uniqueID] ||
                                  (o[a.uniqueID] = {}))[p] || [])[0] === k &&
                              r[1]) && r[2],
                            a = s && l.childNodes[s];
                          (a = (++s && a && a[c]) || ((d = s = 0), u.pop()));
                        )
                          if (1 === a.nodeType && ++d && a === t) {
                            i[p] = [k, s, d];
                            break;
                          }
                      } else if (
                        !1 ===
                        (d = f
                          ? (s =
                              (r =
                                (i =
                                  (o = (a = t)[S] || (a[S] = {}))[a.uniqueID] ||
                                  (o[a.uniqueID] = {}))[p] || [])[0] === k &&
                              r[1])
                          : d)
                      )
                        for (
                          ;
                          (a = (++s && a && a[c]) || ((d = s = 0), u.pop())) &&
                          ((b
                            ? a.nodeName.toLowerCase() !== h
                            : 1 !== a.nodeType) ||
                            !++d ||
                            (f &&
                              ((i =
                                (o = a[S] || (a[S] = {}))[a.uniqueID] ||
                                (o[a.uniqueID] = {}))[p] = [k, d]),
                            a !== t));
                        );
                      return (d -= m) === g || (d % g == 0 && 0 <= d / g);
                    }
                  };
            },
            PSEUDO: function (t, o) {
              var e,
                a =
                  x.pseudos[t] ||
                  x.setFilters[t.toLowerCase()] ||
                  E.error("unsupported pseudo: " + t);
              return a[S]
                ? a(o)
                : 1 < a.length
                  ? ((e = [t, t, "", o]),
                    x.setFilters.hasOwnProperty(t.toLowerCase())
                      ? D(function (t, e) {
                          for (var n, r = a(t, o), i = r.length; i--; )
                            t[(n = y(t, r[i]))] = !(e[n] = r[i]);
                        })
                      : function (t) {
                          return a(t, 0, e);
                        })
                  : a;
            },
          },
          pseudos: {
            not: D(function (t) {
              var r = [],
                i = [],
                s = q(t.replace(v, "$1"));
              return s[S]
                ? D(function (t, e, n, r) {
                    for (var i, o = s(t, null, r, []), a = t.length; a--; )
                      (i = o[a]) && (t[a] = !(e[a] = i));
                  })
                : function (t, e, n) {
                    return (
                      (r[0] = t),
                      s(r, null, n, i),
                      (r[0] = null),
                      !i.pop()
                    );
                  };
            }),
            has: D(function (e) {
              return function (t) {
                return 0 < E(e, t).length;
              };
            }),
            contains: D(function (e) {
              return (
                (e = e.replace(A, h)),
                function (t) {
                  return -1 < (t.textContent || o(t)).indexOf(e);
                }
              );
            }),
            lang: D(function (n) {
              return (
                ot.test(n || "") || E.error("unsupported lang: " + n),
                (n = n.replace(A, h).toLowerCase()),
                function (t) {
                  var e;
                  do {
                    if (
                      (e = C
                        ? t.lang
                        : t.getAttribute("xml:lang") || t.getAttribute("lang"))
                    )
                      return (
                        (e = e.toLowerCase()) === n || 0 === e.indexOf(n + "-")
                      );
                  } while ((t = t.parentNode) && 1 === t.nodeType);
                  return !1;
                }
              );
            }),
            target: function (t) {
              var e = j.location && j.location.hash;
              return e && e.slice(1) === t.id;
            },
            root: function (t) {
              return t === n;
            },
            focus: function (t) {
              return (
                t === H.activeElement &&
                (!H.hasFocus || H.hasFocus()) &&
                !!(t.type || t.href || ~t.tabIndex)
              );
            },
            enabled: gt(!1),
            disabled: gt(!0),
            checked: function (t) {
              var e = t.nodeName.toLowerCase();
              return (
                ("input" === e && !!t.checked) ||
                ("option" === e && !!t.selected)
              );
            },
            selected: function (t) {
              return (
                t.parentNode && t.parentNode.selectedIndex,
                !0 === t.selected
              );
            },
            empty: function (t) {
              for (t = t.firstChild; t; t = t.nextSibling)
                if (t.nodeType < 6) return !1;
              return !0;
            },
            parent: function (t) {
              return !x.pseudos.empty(t);
            },
            header: function (t) {
              return ut.test(t.nodeName);
            },
            input: function (t) {
              return st.test(t.nodeName);
            },
            button: function (t) {
              var e = t.nodeName.toLowerCase();
              return ("input" === e && "button" === t.type) || "button" === e;
            },
            text: function (t) {
              return (
                "input" === t.nodeName.toLowerCase() &&
                "text" === t.type &&
                (null == (t = t.getAttribute("type")) ||
                  "text" === t.toLowerCase())
              );
            },
            first: _(function () {
              return [0];
            }),
            last: _(function (t, e) {
              return [e - 1];
            }),
            eq: _(function (t, e, n) {
              return [n < 0 ? n + e : n];
            }),
            even: _(function (t, e) {
              for (var n = 0; n < e; n += 2) t.push(n);
              return t;
            }),
            odd: _(function (t, e) {
              for (var n = 1; n < e; n += 2) t.push(n);
              return t;
            }),
            lt: _(function (t, e, n) {
              for (var r = n < 0 ? n + e : e < n ? e : n; 0 <= --r; ) t.push(r);
              return t;
            }),
            gt: _(function (t, e, n) {
              for (var r = n < 0 ? n + e : n; ++r < e; ) t.push(r);
              return t;
            }),
          },
        }).pseudos.nth = x.pseudos.eq),
      { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }))
        x.pseudos[t] = (function (e) {
          return function (t) {
            return "input" === t.nodeName.toLowerCase() && t.type === e;
          };
        })(t);
      for (t in { submit: !0, reset: !0 })
        x.pseudos[t] = (function (n) {
          return function (t) {
            var e = t.nodeName.toLowerCase();
            return ("input" === e || "button" === e) && t.type === n;
          };
        })(t);
      function vt() {}
      function N(t) {
        for (var e = 0, n = t.length, r = ""; e < n; e++) r += t[e].value;
        return r;
      }
      function yt(a, t, e) {
        var s = t.dir,
          u = t.next,
          c = u || s,
          l = e && "parentNode" === c,
          h = F++;
        return t.first
          ? function (t, e, n) {
              for (; (t = t[s]); ) if (1 === t.nodeType || l) return a(t, e, n);
              return !1;
            }
          : function (t, e, n) {
              var r,
                i,
                o = [k, h];
              if (n) {
                for (; (t = t[s]); )
                  if ((1 === t.nodeType || l) && a(t, e, n)) return !0;
              } else
                for (; (t = t[s]); )
                  if (1 === t.nodeType || l)
                    if (
                      ((i =
                        (i = t[S] || (t[S] = {}))[t.uniqueID] ||
                        (i[t.uniqueID] = {})),
                      u && u === t.nodeName.toLowerCase())
                    )
                      t = t[s] || t;
                    else {
                      if ((r = i[c]) && r[0] === k && r[1] === h)
                        return (o[2] = r[2]);
                      if (((i[c] = o)[2] = a(t, e, n))) return !0;
                    }
              return !1;
            };
      }
      function bt(i) {
        return 1 < i.length
          ? function (t, e, n) {
              for (var r = i.length; r--; ) if (!i[r](t, e, n)) return !1;
              return !0;
            }
          : i[0];
      }
      function xt(t, e, n, r, i) {
        for (var o, a = [], s = 0, u = t.length, c = null != e; s < u; s++)
          !(o = t[s]) || (n && !n(o, r, i)) || (a.push(o), c && e.push(s));
        return a;
      }
      function wt(t) {
        for (
          var r,
            e,
            n,
            i = t.length,
            o = x.relative[t[0].type],
            a = o || x.relative[" "],
            s = o ? 1 : 0,
            u = yt(
              function (t) {
                return t === r;
              },
              a,
              !0,
            ),
            c = yt(
              function (t) {
                return -1 < y(r, t);
              },
              a,
              !0,
            ),
            l = [
              function (t, e, n) {
                t =
                  (!o && (n || e !== w)) || ((r = e).nodeType ? u : c)(t, e, n);
                return ((r = null), t);
              },
            ];
          s < i;
          s++
        )
          if ((e = x.relative[t[s].type])) l = [yt(bt(l), e)];
          else {
            if ((e = x.filter[t[s].type].apply(null, t[s].matches))[S]) {
              for (n = ++s; n < i && !x.relative[t[n].type]; n++);
              return (function t(d, p, g, m, v, e) {
                return (
                  m && !m[S] && (m = t(m)),
                  v && !v[S] && (v = t(v, e)),
                  D(function (t, e, n, r) {
                    var i,
                      o,
                      a,
                      s = [],
                      u = [],
                      c = e.length,
                      l =
                        t ||
                        (function (t, e, n) {
                          for (var r = 0, i = e.length; r < i; r++)
                            E(t, e[r], n);
                          return n;
                        })(p || "*", n.nodeType ? [n] : n, []),
                      h = !d || (!t && p) ? l : xt(l, s, d, n, r),
                      f = g ? (v || (t ? d : c || m) ? [] : e) : h;
                    if ((g && g(h, f, n, r), m))
                      for (i = xt(f, u), m(i, [], n, r), o = i.length; o--; )
                        (a = i[o]) && (f[u[o]] = !(h[u[o]] = a));
                    if (t) {
                      if (v || d) {
                        if (v) {
                          for (i = [], o = f.length; o--; )
                            (a = f[o]) && i.push((h[o] = a));
                          v(null, (f = []), i, r);
                        }
                        for (o = f.length; o--; )
                          (a = f[o]) &&
                            -1 < (i = v ? y(t, a) : s[o]) &&
                            (t[i] = !(e[i] = a));
                      }
                    } else
                      ((f = xt(f === e ? f.splice(c, f.length) : f)),
                        v ? v(null, e, f, r) : T.apply(e, f));
                  })
                );
              })(
                1 < s && bt(l),
                1 < s &&
                  N(
                    t
                      .slice(0, s - 1)
                      .concat({ value: " " === t[s - 2].type ? "*" : "" }),
                  ).replace(v, "$1"),
                e,
                s < n && wt(t.slice(s, n)),
                n < i && wt((t = t.slice(n))),
                n < i && N(t),
              );
            }
            l.push(e);
          }
        return bt(l);
      }
      return (
        (vt.prototype = x.filters = x.pseudos),
        (x.setFilters = new vt()),
        (d = E.tokenize =
          function (t, e) {
            var n,
              r,
              i,
              o,
              a,
              s,
              u,
              c = U[t + " "];
            if (c) return e ? 0 : c.slice(0);
            for (a = t, s = [], u = x.preFilter; a; ) {
              for (o in ((n && !(r = et.exec(a))) ||
                (r && (a = a.slice(r[0].length) || a), s.push((i = []))),
              (n = !1),
              (r = nt.exec(a)) &&
                ((n = r.shift()),
                i.push({ value: n, type: r[0].replace(v, " ") }),
                (a = a.slice(n.length))),
              x.filter))
                !(r = b[o].exec(a)) ||
                  (u[o] && !(r = u[o](r))) ||
                  ((n = r.shift()),
                  i.push({ value: n, type: o, matches: r }),
                  (a = a.slice(n.length)));
              if (!n) break;
            }
            return e ? a.length : a ? E.error(t) : U(t, s).slice(0);
          }),
        (q = E.compile =
          function (t, e) {
            var n,
              m,
              v,
              y,
              b,
              r,
              i = [],
              o = [],
              a = V[t + " "];
            if (!a) {
              for (n = (e = e || d(t)).length; n--; )
                ((a = wt(e[n]))[S] ? i : o).push(a);
              (a = V(
                t,
                ((y = 0 < (v = i).length),
                (b = 0 < (m = o).length),
                (r = function (t, e, n, r, i) {
                  var o,
                    a,
                    s,
                    u = 0,
                    c = "0",
                    l = t && [],
                    h = [],
                    f = w,
                    d = t || (b && x.find.TAG("*", i)),
                    p = (k += null == f ? 1 : Math.random() || 0.1),
                    g = d.length;
                  for (
                    i && (w = e == H || e || i);
                    c !== g && null != (o = d[c]);
                    c++
                  ) {
                    if (b && o) {
                      for (
                        a = 0, e || o.ownerDocument == H || (P(o), (n = !C));
                        (s = m[a++]);
                      )
                        if (s(o, e || H, n)) {
                          r.push(o);
                          break;
                        }
                      i && (k = p);
                    }
                    y && ((o = !s && o) && u--, t) && l.push(o);
                  }
                  if (((u += c), y && c !== u)) {
                    for (a = 0; (s = v[a++]); ) s(l, h, e, n);
                    if (t) {
                      if (0 < u)
                        for (; c--; ) l[c] || h[c] || (h[c] = X.call(r));
                      h = xt(h);
                    }
                    (T.apply(r, h),
                      i &&
                        !t &&
                        0 < h.length &&
                        1 < u + v.length &&
                        E.uniqueSort(r));
                  }
                  return (i && ((k = p), (w = f)), l);
                }),
                y ? D(r) : r),
              )).selector = t;
            }
            return a;
          }),
        (B = E.select =
          function (t, e, n, r) {
            var i,
              o,
              a,
              s,
              u,
              c = "function" == typeof t && t,
              l = !r && d((t = c.selector || t));
            if (((n = n || []), 1 === l.length)) {
              if (
                2 < (o = l[0] = l[0].slice(0)).length &&
                "ID" === (a = o[0]).type &&
                9 === e.nodeType &&
                C &&
                x.relative[o[1].type]
              ) {
                if (!(e = (x.find.ID(a.matches[0].replace(A, h), e) || [])[0]))
                  return n;
                (c && (e = e.parentNode),
                  (t = t.slice(o.shift().value.length)));
              }
              for (
                i = b.needsContext.test(t) ? 0 : o.length;
                i-- && ((a = o[i]), !x.relative[(s = a.type)]);
              )
                if (
                  (u = x.find[s]) &&
                  (r = u(
                    a.matches[0].replace(A, h),
                    (lt.test(o[0].type) && mt(e.parentNode)) || e,
                  ))
                ) {
                  if ((o.splice(i, 1), (t = r.length && N(o)))) break;
                  return (T.apply(n, r), n);
                }
            }
            return (
              (c || q(t, l))(
                r,
                e,
                !C,
                n,
                !e || (lt.test(t) && mt(e.parentNode)) || e,
              ),
              n
            );
          }),
        (f.sortStable = S.split("").sort(Q).join("") === S),
        (f.detectDuplicates = !!c),
        P(),
        (f.sortDetached = L(function (t) {
          return 1 & t.compareDocumentPosition(H.createElement("fieldset"));
        })),
        L(function (t) {
          return (
            (t.innerHTML = "<a href='#'></a>"),
            "#" === t.firstChild.getAttribute("href")
          );
        }) ||
          dt("type|href|height|width", function (t, e, n) {
            if (!n)
              return t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2);
          }),
        (f.attributes &&
          L(function (t) {
            return (
              (t.innerHTML = "<input/>"),
              t.firstChild.setAttribute("value", ""),
              "" === t.firstChild.getAttribute("value")
            );
          })) ||
          dt("value", function (t, e, n) {
            if (!n && "input" === t.nodeName.toLowerCase())
              return t.defaultValue;
          }),
        L(function (t) {
          return null == t.getAttribute("disabled");
        }) ||
          dt(J, function (t, e, n) {
            if (!n)
              return !0 === t[e]
                ? e.toLowerCase()
                : (n = t.getAttributeNode(e)) && n.specified
                  ? n.value
                  : null;
          }),
        E
      );
    })(P),
    G =
      ((C.find = t),
      (C.expr = t.selectors),
      (C.expr[":"] = C.expr.pseudos),
      (C.uniqueSort = C.unique = t.uniqueSort),
      (C.text = t.getText),
      (C.isXMLDoc = t.isXML),
      (C.contains = t.contains),
      (C.escapeSelector = t.escape),
      C.expr.match.needsContext);
  function u(t, e) {
    return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase();
  }
  var J = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
  function Z(t, n, r) {
    return y(n)
      ? C.grep(t, function (t, e) {
          return !!n.call(t, e, t) !== r;
        })
      : n.nodeType
        ? C.grep(t, function (t) {
            return (t === n) !== r;
          })
        : "string" != typeof n
          ? C.grep(t, function (t) {
              return -1 < q.call(n, t) !== r;
            })
          : C.filter(n, t, r);
  }
  ((C.filter = function (t, e, n) {
    var r = e[0];
    return (
      n && (t = ":not(" + t + ")"),
      1 === e.length && 1 === r.nodeType
        ? C.find.matchesSelector(r, t)
          ? [r]
          : []
        : C.find.matches(
            t,
            C.grep(e, function (t) {
              return 1 === t.nodeType;
            }),
          )
    );
  }),
    C.fn.extend({
      find: function (t) {
        var e,
          n,
          r = this.length,
          i = this;
        if ("string" != typeof t)
          return this.pushStack(
            C(t).filter(function () {
              for (e = 0; e < r; e++) if (C.contains(i[e], this)) return !0;
            }),
          );
        for (n = this.pushStack([]), e = 0; e < r; e++) C.find(t, i[e], n);
        return 1 < r ? C.uniqueSort(n) : n;
      },
      filter: function (t) {
        return this.pushStack(Z(this, t || [], !1));
      },
      not: function (t) {
        return this.pushStack(Z(this, t || [], !0));
      },
      is: function (t) {
        return !!Z(this, "string" == typeof t && G.test(t) ? C(t) : t || [], !1)
          .length;
      },
    }));
  var K,
    tt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
    et =
      (((C.fn.init = function (t, e, n) {
        if (t) {
          if (((n = n || K), "string" != typeof t))
            return t.nodeType
              ? ((this[0] = t), (this.length = 1), this)
              : y(t)
                ? void 0 !== n.ready
                  ? n.ready(t)
                  : t(C)
                : C.makeArray(t, this);
          if (
            !(r =
              "<" === t[0] && ">" === t[t.length - 1] && 3 <= t.length
                ? [null, t, null]
                : tt.exec(t)) ||
            (!r[1] && e)
          )
            return (!e || e.jquery ? e || n : this.constructor(e)).find(t);
          if (r[1]) {
            if (
              ((e = e instanceof C ? e[0] : e),
              C.merge(
                this,
                C.parseHTML(
                  r[1],
                  e && e.nodeType ? e.ownerDocument || e : H,
                  !0,
                ),
              ),
              J.test(r[1]) && C.isPlainObject(e))
            )
              for (var r in e) y(this[r]) ? this[r](e[r]) : this.attr(r, e[r]);
          } else
            (n = H.getElementById(r[2])) && ((this[0] = n), (this.length = 1));
        }
        return this;
      }).prototype = C.fn),
      (K = C(H)),
      /^(?:parents|prev(?:Until|All))/),
    nt = { children: !0, contents: !0, next: !0, prev: !0 };
  function rt(t, e) {
    for (; (t = t[e]) && 1 !== t.nodeType; );
    return t;
  }
  (C.fn.extend({
    has: function (t) {
      var e = C(t, this),
        n = e.length;
      return this.filter(function () {
        for (var t = 0; t < n; t++) if (C.contains(this, e[t])) return !0;
      });
    },
    closest: function (t, e) {
      var n,
        r = 0,
        i = this.length,
        o = [],
        a = "string" != typeof t && C(t);
      if (!G.test(t))
        for (; r < i; r++)
          for (n = this[r]; n && n !== e; n = n.parentNode)
            if (
              n.nodeType < 11 &&
              (a
                ? -1 < a.index(n)
                : 1 === n.nodeType && C.find.matchesSelector(n, t))
            ) {
              o.push(n);
              break;
            }
      return this.pushStack(1 < o.length ? C.uniqueSort(o) : o);
    },
    index: function (t) {
      return t
        ? "string" == typeof t
          ? q.call(C(t), this[0])
          : q.call(this, t.jquery ? t[0] : t)
        : this[0] && this[0].parentNode
          ? this.first().prevAll().length
          : -1;
    },
    add: function (t, e) {
      return this.pushStack(C.uniqueSort(C.merge(this.get(), C(t, e))));
    },
    addBack: function (t) {
      return this.add(null == t ? this.prevObject : this.prevObject.filter(t));
    },
  }),
    C.each(
      {
        parent: function (t) {
          t = t.parentNode;
          return t && 11 !== t.nodeType ? t : null;
        },
        parents: function (t) {
          return r(t, "parentNode");
        },
        parentsUntil: function (t, e, n) {
          return r(t, "parentNode", n);
        },
        next: function (t) {
          return rt(t, "nextSibling");
        },
        prev: function (t) {
          return rt(t, "previousSibling");
        },
        nextAll: function (t) {
          return r(t, "nextSibling");
        },
        prevAll: function (t) {
          return r(t, "previousSibling");
        },
        nextUntil: function (t, e, n) {
          return r(t, "nextSibling", n);
        },
        prevUntil: function (t, e, n) {
          return r(t, "previousSibling", n);
        },
        siblings: function (t) {
          return Y((t.parentNode || {}).firstChild, t);
        },
        children: function (t) {
          return Y(t.firstChild);
        },
        contents: function (t) {
          return null != t.contentDocument && z(t.contentDocument)
            ? t.contentDocument
            : (u(t, "template") && (t = t.content || t),
              C.merge([], t.childNodes));
        },
      },
      function (r, i) {
        C.fn[r] = function (t, e) {
          var n = C.map(this, i, t);
          return (
            (e = "Until" !== r.slice(-5) ? t : e) &&
              "string" == typeof e &&
              (n = C.filter(e, n)),
            1 < this.length &&
              (nt[r] || C.uniqueSort(n), et.test(r)) &&
              n.reverse(),
            this.pushStack(n)
          );
        };
      },
    ));
  var S = /[^\x20\t\r\n\f]+/g;
  function l(t) {
    return t;
  }
  function it(t) {
    throw t;
  }
  function ot(t, e, n, r) {
    var i;
    try {
      t && y((i = t.promise))
        ? i.call(t).done(e).fail(n)
        : t && y((i = t.then))
          ? i.call(t, e, n)
          : e.apply(void 0, [t].slice(r));
    } catch (t) {
      n.apply(void 0, [t]);
    }
  }
  ((C.Callbacks = function (r) {
    var t, n;
    r =
      "string" == typeof r
        ? ((t = r),
          (n = {}),
          C.each(t.match(S) || [], function (t, e) {
            n[e] = !0;
          }),
          n)
        : C.extend({}, r);
    function i() {
      for (s = s || r.once, a = o = !0; c.length; l = -1)
        for (e = c.shift(); ++l < u.length; )
          !1 === u[l].apply(e[0], e[1]) &&
            r.stopOnFalse &&
            ((l = u.length), (e = !1));
      (r.memory || (e = !1), (o = !1), s && (u = e ? [] : ""));
    }
    var o,
      e,
      a,
      s,
      u = [],
      c = [],
      l = -1,
      h = {
        add: function () {
          return (
            u &&
              (e && !o && ((l = u.length - 1), c.push(e)),
              (function n(t) {
                C.each(t, function (t, e) {
                  y(e)
                    ? (r.unique && h.has(e)) || u.push(e)
                    : e && e.length && "string" !== p(e) && n(e);
                });
              })(arguments),
              e) &&
              !o &&
              i(),
            this
          );
        },
        remove: function () {
          return (
            C.each(arguments, function (t, e) {
              for (var n; -1 < (n = C.inArray(e, u, n)); )
                (u.splice(n, 1), n <= l && l--);
            }),
            this
          );
        },
        has: function (t) {
          return t ? -1 < C.inArray(t, u) : 0 < u.length;
        },
        empty: function () {
          return ((u = u && []), this);
        },
        disable: function () {
          return ((s = c = []), (u = e = ""), this);
        },
        disabled: function () {
          return !u;
        },
        lock: function () {
          return ((s = c = []), e || o || (u = e = ""), this);
        },
        locked: function () {
          return !!s;
        },
        fireWith: function (t, e) {
          return (
            s ||
              ((e = [t, (e = e || []).slice ? e.slice() : e]), c.push(e), o) ||
              i(),
            this
          );
        },
        fire: function () {
          return (h.fireWith(this, arguments), this);
        },
        fired: function () {
          return !!a;
        },
      };
    return h;
  }),
    C.extend({
      Deferred: function (t) {
        var o = [
            [
              "notify",
              "progress",
              C.Callbacks("memory"),
              C.Callbacks("memory"),
              2,
            ],
            [
              "resolve",
              "done",
              C.Callbacks("once memory"),
              C.Callbacks("once memory"),
              0,
              "resolved",
            ],
            [
              "reject",
              "fail",
              C.Callbacks("once memory"),
              C.Callbacks("once memory"),
              1,
              "rejected",
            ],
          ],
          i = "pending",
          a = {
            state: function () {
              return i;
            },
            always: function () {
              return (s.done(arguments).fail(arguments), this);
            },
            catch: function (t) {
              return a.then(null, t);
            },
            pipe: function () {
              var i = arguments;
              return C.Deferred(function (r) {
                (C.each(o, function (t, e) {
                  var n = y(i[e[4]]) && i[e[4]];
                  s[e[1]](function () {
                    var t = n && n.apply(this, arguments);
                    t && y(t.promise)
                      ? t
                          .promise()
                          .progress(r.notify)
                          .done(r.resolve)
                          .fail(r.reject)
                      : r[e[0] + "With"](this, n ? [t] : arguments);
                  });
                }),
                  (i = null));
              }).promise();
            },
            then: function (e, n, r) {
              var u = 0;
              function c(i, o, a, s) {
                return function () {
                  function t() {
                    var t, e;
                    if (!(i < u)) {
                      if ((t = a.apply(n, r)) === o.promise())
                        throw new TypeError("Thenable self-resolution");
                      ((e =
                        t &&
                        ("object" == typeof t || "function" == typeof t) &&
                        t.then),
                        y(e)
                          ? s
                            ? e.call(t, c(u, o, l, s), c(u, o, it, s))
                            : (u++,
                              e.call(
                                t,
                                c(u, o, l, s),
                                c(u, o, it, s),
                                c(u, o, l, o.notifyWith),
                              ))
                          : (a !== l && ((n = void 0), (r = [t])),
                            (s || o.resolveWith)(n, r)));
                    }
                  }
                  var n = this,
                    r = arguments,
                    e = s
                      ? t
                      : function () {
                          try {
                            t();
                          } catch (t) {
                            (C.Deferred.exceptionHook &&
                              C.Deferred.exceptionHook(t, e.stackTrace),
                              u <= i + 1 &&
                                (a !== it && ((n = void 0), (r = [t])),
                                o.rejectWith(n, r)));
                          }
                        };
                  i
                    ? e()
                    : (C.Deferred.getStackHook &&
                        (e.stackTrace = C.Deferred.getStackHook()),
                      P.setTimeout(e));
                };
              }
              return C.Deferred(function (t) {
                (o[0][3].add(c(0, t, y(r) ? r : l, t.notifyWith)),
                  o[1][3].add(c(0, t, y(e) ? e : l)),
                  o[2][3].add(c(0, t, y(n) ? n : it)));
              }).promise();
            },
            promise: function (t) {
              return null != t ? C.extend(t, a) : a;
            },
          },
          s = {};
        return (
          C.each(o, function (t, e) {
            var n = e[2],
              r = e[5];
            ((a[e[1]] = n.add),
              r &&
                n.add(
                  function () {
                    i = r;
                  },
                  o[3 - t][2].disable,
                  o[3 - t][3].disable,
                  o[0][2].lock,
                  o[0][3].lock,
                ),
              n.add(e[3].fire),
              (s[e[0]] = function () {
                return (
                  s[e[0] + "With"](this === s ? void 0 : this, arguments),
                  this
                );
              }),
              (s[e[0] + "With"] = n.fireWith));
          }),
          a.promise(s),
          t && t.call(s, s),
          s
        );
      },
      when: function (t) {
        function e(e) {
          return function (t) {
            ((i[e] = this),
              (o[e] = 1 < arguments.length ? s.call(arguments) : t),
              --n || a.resolveWith(i, o));
          };
        }
        var n = arguments.length,
          r = n,
          i = Array(r),
          o = s.call(arguments),
          a = C.Deferred();
        if (
          n <= 1 &&
          (ot(t, a.done(e(r)).resolve, a.reject, !n),
          "pending" === a.state() || y(o[r] && o[r].then))
        )
          return a.then();
        for (; r--; ) ot(o[r], e(r), a.reject);
        return a.promise();
      },
    }));
  var at = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/,
    st =
      ((C.Deferred.exceptionHook = function (t, e) {
        P.console &&
          P.console.warn &&
          t &&
          at.test(t.name) &&
          P.console.warn("jQuery.Deferred exception: " + t.message, t.stack, e);
      }),
      (C.readyException = function (t) {
        P.setTimeout(function () {
          throw t;
        });
      }),
      C.Deferred());
  function ut() {
    (H.removeEventListener("DOMContentLoaded", ut),
      P.removeEventListener("load", ut),
      C.ready());
  }
  ((C.fn.ready = function (t) {
    return (
      st.then(t).catch(function (t) {
        C.readyException(t);
      }),
      this
    );
  }),
    C.extend({
      isReady: !1,
      readyWait: 1,
      ready: function (t) {
        (!0 === t ? --C.readyWait : C.isReady) ||
          ((C.isReady = !0) !== t && 0 < --C.readyWait) ||
          st.resolveWith(H, [C]);
      },
    }),
    (C.ready.then = st.then),
    "complete" === H.readyState ||
    ("loading" !== H.readyState && !H.documentElement.doScroll)
      ? P.setTimeout(C.ready)
      : (H.addEventListener("DOMContentLoaded", ut),
        P.addEventListener("load", ut)));
  function h(t, e, n, r, i, o, a) {
    var s = 0,
      u = t.length,
      c = null == n;
    if ("object" === p(n)) for (s in ((i = !0), n)) h(t, e, s, n[s], !0, o, a);
    else if (
      void 0 !== r &&
      ((i = !0),
      y(r) || (a = !0),
      (e = c
        ? a
          ? (e.call(t, r), null)
          : ((c = e),
            function (t, e, n) {
              return c.call(C(t), n);
            })
        : e))
    )
      for (; s < u; s++) e(t[s], n, a ? r : r.call(t[s], s, e(t[s], n)));
    return i ? t : c ? e.call(t) : u ? e(t[0], n) : o;
  }
  var ct = /^-ms-/,
    lt = /-([a-z])/g;
  function ht(t, e) {
    return e.toUpperCase();
  }
  function b(t) {
    return t.replace(ct, "ms-").replace(lt, ht);
  }
  function v(t) {
    return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType;
  }
  function ft() {
    this.expando = C.expando + ft.uid++;
  }
  ((ft.uid = 1),
    (ft.prototype = {
      cache: function (t) {
        var e = t[this.expando];
        return (
          e ||
            ((e = {}),
            v(t) &&
              (t.nodeType
                ? (t[this.expando] = e)
                : Object.defineProperty(t, this.expando, {
                    value: e,
                    configurable: !0,
                  }))),
          e
        );
      },
      set: function (t, e, n) {
        var r,
          i = this.cache(t);
        if ("string" == typeof e) i[b(e)] = n;
        else for (r in e) i[b(r)] = e[r];
        return i;
      },
      get: function (t, e) {
        return void 0 === e
          ? this.cache(t)
          : t[this.expando] && t[this.expando][b(e)];
      },
      access: function (t, e, n) {
        return void 0 === e || (e && "string" == typeof e && void 0 === n)
          ? this.get(t, e)
          : (this.set(t, e, n), void 0 !== n ? n : e);
      },
      remove: function (t, e) {
        var n,
          r = t[this.expando];
        if (void 0 !== r) {
          if (void 0 !== e) {
            n = (e = Array.isArray(e)
              ? e.map(b)
              : (e = b(e)) in r
                ? [e]
                : e.match(S) || []).length;
            for (; n--; ) delete r[e[n]];
          }
          (void 0 !== e && !C.isEmptyObject(r)) ||
            (t.nodeType ? (t[this.expando] = void 0) : delete t[this.expando]);
        }
      },
      hasData: function (t) {
        t = t[this.expando];
        return void 0 !== t && !C.isEmptyObject(t);
      },
    }));
  var x = new ft(),
    c = new ft(),
    dt = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
    pt = /[A-Z]/g;
  function gt(t, e, n) {
    var r, i;
    if (void 0 === n && 1 === t.nodeType)
      if (
        ((r = "data-" + e.replace(pt, "-$&").toLowerCase()),
        "string" == typeof (n = t.getAttribute(r)))
      ) {
        try {
          n =
            "true" === (i = n) ||
            ("false" !== i &&
              ("null" === i
                ? null
                : i === +i + ""
                  ? +i
                  : dt.test(i)
                    ? JSON.parse(i)
                    : i));
        } catch (t) {}
        c.set(t, e, n);
      } else n = void 0;
    return n;
  }
  (C.extend({
    hasData: function (t) {
      return c.hasData(t) || x.hasData(t);
    },
    data: function (t, e, n) {
      return c.access(t, e, n);
    },
    removeData: function (t, e) {
      c.remove(t, e);
    },
    _data: function (t, e, n) {
      return x.access(t, e, n);
    },
    _removeData: function (t, e) {
      x.remove(t, e);
    },
  }),
    C.fn.extend({
      data: function (n, t) {
        var e,
          r,
          i,
          o = this[0],
          a = o && o.attributes;
        if (void 0 !== n)
          return "object" == typeof n
            ? this.each(function () {
                c.set(this, n);
              })
            : h(
                this,
                function (t) {
                  var e;
                  if (o && void 0 === t)
                    return void 0 !== (e = c.get(o, n)) ||
                      void 0 !== (e = gt(o, n))
                      ? e
                      : void 0;
                  this.each(function () {
                    c.set(this, n, t);
                  });
                },
                null,
                t,
                1 < arguments.length,
                null,
                !0,
              );
        if (
          this.length &&
          ((i = c.get(o)), 1 === o.nodeType) &&
          !x.get(o, "hasDataAttrs")
        ) {
          for (e = a.length; e--; )
            a[e] &&
              0 === (r = a[e].name).indexOf("data-") &&
              ((r = b(r.slice(5))), gt(o, r, i[r]));
          x.set(o, "hasDataAttrs", !0);
        }
        return i;
      },
      removeData: function (t) {
        return this.each(function () {
          c.remove(this, t);
        });
      },
    }),
    C.extend({
      queue: function (t, e, n) {
        var r;
        if (t)
          return (
            (r = x.get(t, (e = (e || "fx") + "queue"))),
            n &&
              (!r || Array.isArray(n)
                ? (r = x.access(t, e, C.makeArray(n)))
                : r.push(n)),
            r || []
          );
      },
      dequeue: function (t, e) {
        e = e || "fx";
        var n = C.queue(t, e),
          r = n.length,
          i = n.shift(),
          o = C._queueHooks(t, e);
        ("inprogress" === i && ((i = n.shift()), r--),
          i &&
            ("fx" === e && n.unshift("inprogress"),
            delete o.stop,
            i.call(
              t,
              function () {
                C.dequeue(t, e);
              },
              o,
            )),
          !r && o && o.empty.fire());
      },
      _queueHooks: function (t, e) {
        var n = e + "queueHooks";
        return (
          x.get(t, n) ||
          x.access(t, n, {
            empty: C.Callbacks("once memory").add(function () {
              x.remove(t, [e + "queue", n]);
            }),
          })
        );
      },
    }),
    C.fn.extend({
      queue: function (e, n) {
        var t = 2;
        return (
          "string" != typeof e && ((n = e), (e = "fx"), t--),
          arguments.length < t
            ? C.queue(this[0], e)
            : void 0 === n
              ? this
              : this.each(function () {
                  var t = C.queue(this, e, n);
                  (C._queueHooks(this, e),
                    "fx" === e && "inprogress" !== t[0] && C.dequeue(this, e));
                })
        );
      },
      dequeue: function (t) {
        return this.each(function () {
          C.dequeue(this, t);
        });
      },
      clearQueue: function (t) {
        return this.queue(t || "fx", []);
      },
      promise: function (t, e) {
        function n() {
          --i || o.resolveWith(a, [a]);
        }
        var r,
          i = 1,
          o = C.Deferred(),
          a = this,
          s = this.length;
        for (
          "string" != typeof t && ((e = t), (t = void 0)), t = t || "fx";
          s--;
        )
          (r = x.get(a[s], t + "queueHooks")) &&
            r.empty &&
            (i++, r.empty.add(n));
        return (n(), o.promise(e));
      },
    }));
  function mt(t, e) {
    return (
      "none" === (t = e || t).style.display ||
      ("" === t.style.display && k(t) && "none" === C.css(t, "display"))
    );
  }
  var t = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
    vt = new RegExp("^(?:([+-])=|)(" + t + ")([a-z%]*)$", "i"),
    f = ["Top", "Right", "Bottom", "Left"],
    w = H.documentElement,
    k = function (t) {
      return C.contains(t.ownerDocument, t);
    },
    yt = { composed: !0 };
  w.getRootNode &&
    (k = function (t) {
      return (
        C.contains(t.ownerDocument, t) || t.getRootNode(yt) === t.ownerDocument
      );
    });
  function bt(t, e, n, r) {
    var i,
      o,
      a = 20,
      s = r
        ? function () {
            return r.cur();
          }
        : function () {
            return C.css(t, e, "");
          },
      u = s(),
      c = (n && n[3]) || (C.cssNumber[e] ? "" : "px"),
      l =
        t.nodeType &&
        (C.cssNumber[e] || ("px" !== c && +u)) &&
        vt.exec(C.css(t, e));
    if (l && l[3] !== c) {
      for (c = c || l[3], l = +(u /= 2) || 1; a--; )
        (C.style(t, e, l + c),
          (1 - o) * (1 - (o = s() / u || 0.5)) <= 0 && (a = 0),
          (l /= o));
      (C.style(t, e, (l *= 2) + c), (n = n || []));
    }
    return (
      n &&
        ((l = +l || +u || 0), (i = n[1] ? l + (n[1] + 1) * n[2] : +n[2]), r) &&
        ((r.unit = c), (r.start = l), (r.end = i)),
      i
    );
  }
  var xt = {};
  function T(t, e) {
    for (var n, r, i, o, a, s, u = [], c = 0, l = t.length; c < l; c++)
      (r = t[c]).style &&
        ((n = r.style.display),
        e
          ? ("none" === n &&
              ((u[c] = x.get(r, "display") || null),
              u[c] || (r.style.display = "")),
            "" === r.style.display &&
              mt(r) &&
              (u[c] =
                ((s = o = i = void 0),
                (o = r.ownerDocument),
                (a = r.nodeName),
                (s = xt[a]) ||
                  ((i = o.body.appendChild(o.createElement(a))),
                  (s = C.css(i, "display")),
                  i.parentNode.removeChild(i),
                  (xt[a] = s = "none" === s ? "block" : s)))))
          : "none" !== n && ((u[c] = "none"), x.set(r, "display", n)));
    for (c = 0; c < l; c++) null != u[c] && (t[c].style.display = u[c]);
    return t;
  }
  C.fn.extend({
    show: function () {
      return T(this, !0);
    },
    hide: function () {
      return T(this);
    },
    toggle: function (t) {
      return "boolean" == typeof t
        ? t
          ? this.show()
          : this.hide()
        : this.each(function () {
            mt(this) ? C(this).show() : C(this).hide();
          });
    },
  });
  var wt = /^(?:checkbox|radio)$/i,
    Pt = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
    Ht = /^$|^module$|\/(?:java|ecma)script/i,
    n = H.createDocumentFragment().appendChild(H.createElement("div")),
    M =
      ((D = H.createElement("input")).setAttribute("type", "radio"),
      D.setAttribute("checked", "checked"),
      D.setAttribute("name", "t"),
      n.appendChild(D),
      (m.checkClone = n.cloneNode(!0).cloneNode(!0).lastChild.checked),
      (n.innerHTML = "<textarea>x</textarea>"),
      (m.noCloneChecked = !!n.cloneNode(!0).lastChild.defaultValue),
      (n.innerHTML = "<option></option>"),
      (m.option = !!n.lastChild),
      {
        thead: [1, "<table>", "</table>"],
        col: [2, "<table><colgroup>", "</colgroup></table>"],
        tr: [2, "<table><tbody>", "</tbody></table>"],
        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
        _default: [0, "", ""],
      });
  function A(t, e) {
    var n =
      void 0 !== t.getElementsByTagName
        ? t.getElementsByTagName(e || "*")
        : void 0 !== t.querySelectorAll
          ? t.querySelectorAll(e || "*")
          : [];
    return void 0 === e || (e && u(t, e)) ? C.merge([t], n) : n;
  }
  function Ct(t, e) {
    for (var n = 0, r = t.length; n < r; n++)
      x.set(t[n], "globalEval", !e || x.get(e[n], "globalEval"));
  }
  ((M.tbody = M.tfoot = M.colgroup = M.caption = M.thead),
    (M.th = M.td),
    m.option ||
      (M.optgroup = M.option =
        [1, "<select multiple='multiple'>", "</select>"]));
  var St = /<|&#?\w+;/;
  function kt(t, e, n, r, i) {
    for (
      var o,
        a,
        s,
        u,
        c,
        l = e.createDocumentFragment(),
        h = [],
        f = 0,
        d = t.length;
      f < d;
      f++
    )
      if ((o = t[f]) || 0 === o)
        if ("object" === p(o)) C.merge(h, o.nodeType ? [o] : o);
        else if (St.test(o)) {
          for (
            a = a || l.appendChild(e.createElement("div")),
              s = (Pt.exec(o) || ["", ""])[1].toLowerCase(),
              s = M[s] || M._default,
              a.innerHTML = s[1] + C.htmlPrefilter(o) + s[2],
              c = s[0];
            c--;
          )
            a = a.lastChild;
          (C.merge(h, a.childNodes), ((a = l.firstChild).textContent = ""));
        } else h.push(e.createTextNode(o));
    for (l.textContent = "", f = 0; (o = h[f++]); )
      if (r && -1 < C.inArray(o, r)) i && i.push(o);
      else if (((u = k(o)), (a = A(l.appendChild(o), "script")), u && Ct(a), n))
        for (c = 0; (o = a[c++]); ) Ht.test(o.type || "") && n.push(o);
    return l;
  }
  var Tt = /^key/,
    Mt = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
    At = /^([^.]*)(?:\.(.+)|)/;
  function a() {
    return !0;
  }
  function d() {
    return !1;
  }
  function Et(t, e) {
    return (
      (t ===
        (function () {
          try {
            return H.activeElement;
          } catch (t) {}
        })()) ==
      ("focus" === e)
    );
  }
  function It(t, e, n, r, i, o) {
    var a, s;
    if ("object" == typeof e) {
      for (s in ("string" != typeof n && ((r = r || n), (n = void 0)), e))
        It(t, s, n, r, e[s], o);
      return t;
    }
    if (
      (null == r && null == i
        ? ((i = n), (r = n = void 0))
        : null == i &&
          ("string" == typeof n
            ? ((i = r), (r = void 0))
            : ((i = r), (r = n), (n = void 0))),
      !1 === i)
    )
      i = d;
    else if (!i) return t;
    return (
      1 === o &&
        ((a = i),
        ((i = function (t) {
          return (C().off(t), a.apply(this, arguments));
        }).guid = a.guid || (a.guid = C.guid++))),
      t.each(function () {
        C.event.add(this, e, i, r, n);
      })
    );
  }
  function Dt(t, i, o) {
    o
      ? (x.set(t, i, !1),
        C.event.add(t, i, {
          namespace: !1,
          handler: function (t) {
            var e,
              n,
              r = x.get(this, i);
            if (1 & t.isTrigger && this[i]) {
              if (r.length)
                (C.event.special[i] || {}).delegateType && t.stopPropagation();
              else if (
                ((r = s.call(arguments)),
                x.set(this, i, r),
                (e = o(this, i)),
                this[i](),
                r !== (n = x.get(this, i)) || e ? x.set(this, i, !1) : (n = {}),
                r !== n)
              )
                return (
                  t.stopImmediatePropagation(),
                  t.preventDefault(),
                  n.value
                );
            } else
              r.length &&
                (x.set(this, i, {
                  value: C.event.trigger(
                    C.extend(r[0], C.Event.prototype),
                    r.slice(1),
                    this,
                  ),
                }),
                t.stopImmediatePropagation());
          },
        }))
      : void 0 === x.get(t, i) && C.event.add(t, i, a);
  }
  ((C.event = {
    global: {},
    add: function (e, t, n, r, i) {
      var o,
        a,
        s,
        u,
        c,
        l,
        h,
        f,
        d,
        p = x.get(e);
      if (v(e))
        for (
          n.handler && ((n = (o = n).handler), (i = o.selector)),
            i && C.find.matchesSelector(w, i),
            n.guid || (n.guid = C.guid++),
            s = (s = p.events) || (p.events = Object.create(null)),
            a =
              (a = p.handle) ||
              (p.handle = function (t) {
                return void 0 !== C && C.event.triggered !== t.type
                  ? C.event.dispatch.apply(e, arguments)
                  : void 0;
              }),
            u = (t = (t || "").match(S) || [""]).length;
          u--;
        )
          ((h = d = (f = At.exec(t[u]) || [])[1]),
            (f = (f[2] || "").split(".").sort()),
            h &&
              ((c = C.event.special[h] || {}),
              (h = (i ? c.delegateType : c.bindType) || h),
              (c = C.event.special[h] || {}),
              (d = C.extend(
                {
                  type: h,
                  origType: d,
                  data: r,
                  handler: n,
                  guid: n.guid,
                  selector: i,
                  needsContext: i && C.expr.match.needsContext.test(i),
                  namespace: f.join("."),
                },
                o,
              )),
              (l = s[h]) ||
                (((l = s[h] = []).delegateCount = 0),
                c.setup && !1 !== c.setup.call(e, r, f, a)) ||
                (e.addEventListener && e.addEventListener(h, a)),
              c.add &&
                (c.add.call(e, d), d.handler.guid || (d.handler.guid = n.guid)),
              i ? l.splice(l.delegateCount++, 0, d) : l.push(d),
              (C.event.global[h] = !0)));
    },
    remove: function (t, e, n, r, i) {
      var o,
        a,
        s,
        u,
        c,
        l,
        h,
        f,
        d,
        p,
        g,
        m = x.hasData(t) && x.get(t);
      if (m && (u = m.events)) {
        for (c = (e = (e || "").match(S) || [""]).length; c--; )
          if (
            ((d = g = (s = At.exec(e[c]) || [])[1]),
            (p = (s[2] || "").split(".").sort()),
            d)
          ) {
            for (
              h = C.event.special[d] || {},
                f = u[(d = (r ? h.delegateType : h.bindType) || d)] || [],
                s =
                  s[2] &&
                  new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"),
                a = o = f.length;
              o--;
            )
              ((l = f[o]),
                (!i && g !== l.origType) ||
                  (n && n.guid !== l.guid) ||
                  (s && !s.test(l.namespace)) ||
                  (r && r !== l.selector && ("**" !== r || !l.selector)) ||
                  (f.splice(o, 1),
                  l.selector && f.delegateCount--,
                  h.remove && h.remove.call(t, l)));
            a &&
              !f.length &&
              ((h.teardown && !1 !== h.teardown.call(t, p, m.handle)) ||
                C.removeEvent(t, d, m.handle),
              delete u[d]);
          } else for (d in u) C.event.remove(t, d + e[c], n, r, !0);
        C.isEmptyObject(u) && x.remove(t, "handle events");
      }
    },
    dispatch: function (t) {
      var e,
        n,
        r,
        i,
        o,
        a = new Array(arguments.length),
        s = C.event.fix(t),
        t = (x.get(this, "events") || Object.create(null))[s.type] || [],
        u = C.event.special[s.type] || {};
      for (a[0] = s, e = 1; e < arguments.length; e++) a[e] = arguments[e];
      if (
        ((s.delegateTarget = this),
        !u.preDispatch || !1 !== u.preDispatch.call(this, s))
      ) {
        for (
          o = C.event.handlers.call(this, s, t), e = 0;
          (r = o[e++]) && !s.isPropagationStopped();
        )
          for (
            s.currentTarget = r.elem, n = 0;
            (i = r.handlers[n++]) && !s.isImmediatePropagationStopped();
          )
            (s.rnamespace &&
              !1 !== i.namespace &&
              !s.rnamespace.test(i.namespace)) ||
              ((s.handleObj = i),
              (s.data = i.data),
              void 0 !==
                (i = (
                  (C.event.special[i.origType] || {}).handle || i.handler
                ).apply(r.elem, a)) &&
                !1 === (s.result = i) &&
                (s.preventDefault(), s.stopPropagation()));
        return (u.postDispatch && u.postDispatch.call(this, s), s.result);
      }
    },
    handlers: function (t, e) {
      var n,
        r,
        i,
        o,
        a,
        s = [],
        u = e.delegateCount,
        c = t.target;
      if (u && c.nodeType && !("click" === t.type && 1 <= t.button))
        for (; c !== this; c = c.parentNode || this)
          if (1 === c.nodeType && ("click" !== t.type || !0 !== c.disabled)) {
            for (o = [], a = {}, n = 0; n < u; n++)
              (void 0 === a[(i = (r = e[n]).selector + " ")] &&
                (a[i] = r.needsContext
                  ? -1 < C(i, this).index(c)
                  : C.find(i, this, null, [c]).length),
                a[i] && o.push(r));
            o.length && s.push({ elem: c, handlers: o });
          }
      return (
        (c = this),
        u < e.length && s.push({ elem: c, handlers: e.slice(u) }),
        s
      );
    },
    addProp: function (e, t) {
      Object.defineProperty(C.Event.prototype, e, {
        enumerable: !0,
        configurable: !0,
        get: y(t)
          ? function () {
              if (this.originalEvent) return t(this.originalEvent);
            }
          : function () {
              if (this.originalEvent) return this.originalEvent[e];
            },
        set: function (t) {
          Object.defineProperty(this, e, {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: t,
          });
        },
      });
    },
    fix: function (t) {
      return t[C.expando] ? t : new C.Event(t);
    },
    special: {
      load: { noBubble: !0 },
      click: {
        setup: function (t) {
          t = this || t;
          return (
            wt.test(t.type) && t.click && u(t, "input") && Dt(t, "click", a),
            !1
          );
        },
        trigger: function (t) {
          t = this || t;
          return (
            wt.test(t.type) && t.click && u(t, "input") && Dt(t, "click"),
            !0
          );
        },
        _default: function (t) {
          t = t.target;
          return (
            (wt.test(t.type) &&
              t.click &&
              u(t, "input") &&
              x.get(t, "click")) ||
            u(t, "a")
          );
        },
      },
      beforeunload: {
        postDispatch: function (t) {
          void 0 !== t.result &&
            t.originalEvent &&
            (t.originalEvent.returnValue = t.result);
        },
      },
    },
  }),
    (C.removeEvent = function (t, e, n) {
      t.removeEventListener && t.removeEventListener(e, n);
    }),
    (C.Event = function (t, e) {
      if (!(this instanceof C.Event)) return new C.Event(t, e);
      (t && t.type
        ? ((this.originalEvent = t),
          (this.type = t.type),
          (this.isDefaultPrevented =
            t.defaultPrevented ||
            (void 0 === t.defaultPrevented && !1 === t.returnValue)
              ? a
              : d),
          (this.target =
            t.target && 3 === t.target.nodeType
              ? t.target.parentNode
              : t.target),
          (this.currentTarget = t.currentTarget),
          (this.relatedTarget = t.relatedTarget))
        : (this.type = t),
        e && C.extend(this, e),
        (this.timeStamp = (t && t.timeStamp) || Date.now()),
        (this[C.expando] = !0));
    }),
    (C.Event.prototype = {
      constructor: C.Event,
      isDefaultPrevented: d,
      isPropagationStopped: d,
      isImmediatePropagationStopped: d,
      isSimulated: !1,
      preventDefault: function () {
        var t = this.originalEvent;
        ((this.isDefaultPrevented = a),
          t && !this.isSimulated && t.preventDefault());
      },
      stopPropagation: function () {
        var t = this.originalEvent;
        ((this.isPropagationStopped = a),
          t && !this.isSimulated && t.stopPropagation());
      },
      stopImmediatePropagation: function () {
        var t = this.originalEvent;
        ((this.isImmediatePropagationStopped = a),
          t && !this.isSimulated && t.stopImmediatePropagation(),
          this.stopPropagation());
      },
    }),
    C.each(
      {
        altKey: !0,
        bubbles: !0,
        cancelable: !0,
        changedTouches: !0,
        ctrlKey: !0,
        detail: !0,
        eventPhase: !0,
        metaKey: !0,
        pageX: !0,
        pageY: !0,
        shiftKey: !0,
        view: !0,
        char: !0,
        code: !0,
        charCode: !0,
        key: !0,
        keyCode: !0,
        button: !0,
        buttons: !0,
        clientX: !0,
        clientY: !0,
        offsetX: !0,
        offsetY: !0,
        pointerId: !0,
        pointerType: !0,
        screenX: !0,
        screenY: !0,
        targetTouches: !0,
        toElement: !0,
        touches: !0,
        which: function (t) {
          var e = t.button;
          return null == t.which && Tt.test(t.type)
            ? null != t.charCode
              ? t.charCode
              : t.keyCode
            : !t.which && void 0 !== e && Mt.test(t.type)
              ? 1 & e
                ? 1
                : 2 & e
                  ? 3
                  : 4 & e
                    ? 2
                    : 0
              : t.which;
        },
      },
      C.event.addProp,
    ),
    C.each({ focus: "focusin", blur: "focusout" }, function (t, e) {
      C.event.special[t] = {
        setup: function () {
          return (Dt(this, t, Et), !1);
        },
        trigger: function () {
          return (Dt(this, t), !0);
        },
        delegateType: e,
      };
    }),
    C.each(
      {
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout",
      },
      function (t, i) {
        C.event.special[t] = {
          delegateType: i,
          bindType: i,
          handle: function (t) {
            var e,
              n = t.relatedTarget,
              r = t.handleObj;
            return (
              (n && (n === this || C.contains(this, n))) ||
                ((t.type = r.origType),
                (e = r.handler.apply(this, arguments)),
                (t.type = i)),
              e
            );
          },
        };
      },
    ),
    C.fn.extend({
      on: function (t, e, n, r) {
        return It(this, t, e, n, r);
      },
      one: function (t, e, n, r) {
        return It(this, t, e, n, r, 1);
      },
      off: function (t, e, n) {
        var r, i;
        if (t && t.preventDefault && t.handleObj)
          ((r = t.handleObj),
            C(t.delegateTarget).off(
              r.namespace ? r.origType + "." + r.namespace : r.origType,
              r.selector,
              r.handler,
            ));
        else {
          if ("object" != typeof t)
            return (
              (!1 !== e && "function" != typeof e) || ((n = e), (e = void 0)),
              !1 === n && (n = d),
              this.each(function () {
                C.event.remove(this, t, n, e);
              })
            );
          for (i in t) this.off(i, e, t[i]);
        }
        return this;
      },
    }));
  var Lt = /<script|<style|<link/i,
    _t = /checked\s*(?:[^=]|=\s*.checked.)/i,
    Nt = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
  function jt(t, e) {
    return (
      (u(t, "table") &&
        u(11 !== e.nodeType ? e : e.firstChild, "tr") &&
        C(t).children("tbody")[0]) ||
      t
    );
  }
  function zt(t) {
    return ((t.type = (null !== t.getAttribute("type")) + "/" + t.type), t);
  }
  function Rt(t) {
    return (
      "true/" === (t.type || "").slice(0, 5)
        ? (t.type = t.type.slice(5))
        : t.removeAttribute("type"),
      t
    );
  }
  function Ot(t, e) {
    var n, r, i, o;
    if (1 === e.nodeType) {
      if (x.hasData(t) && (o = x.get(t).events))
        for (i in (x.remove(e, "handle events"), o))
          for (n = 0, r = o[i].length; n < r; n++) C.event.add(e, i, o[i][n]);
      c.hasData(t) && ((t = c.access(t)), (t = C.extend({}, t)), c.set(e, t));
    }
  }
  function E(n, r, i, o) {
    r = R(r);
    var t,
      e,
      a,
      s,
      u,
      c,
      l = 0,
      h = n.length,
      f = h - 1,
      d = r[0],
      p = y(d);
    if (p || (1 < h && "string" == typeof d && !m.checkClone && _t.test(d)))
      return n.each(function (t) {
        var e = n.eq(t);
        (p && (r[0] = d.call(this, t, e.html())), E(e, r, i, o));
      });
    if (
      h &&
      ((e = (t = kt(r, n[0].ownerDocument, !1, n, o)).firstChild),
      1 === t.childNodes.length && (t = e),
      e || o)
    ) {
      for (s = (a = C.map(A(t, "script"), zt)).length; l < h; l++)
        ((u = t),
          l !== f &&
            ((u = C.clone(u, !0, !0)), s) &&
            C.merge(a, A(u, "script")),
          i.call(n[l], u, l));
      if (s)
        for (c = a[a.length - 1].ownerDocument, C.map(a, Rt), l = 0; l < s; l++)
          ((u = a[l]),
            Ht.test(u.type || "") &&
              !x.access(u, "globalEval") &&
              C.contains(c, u) &&
              (u.src && "module" !== (u.type || "").toLowerCase()
                ? C._evalUrl &&
                  !u.noModule &&
                  C._evalUrl(
                    u.src,
                    { nonce: u.nonce || u.getAttribute("nonce") },
                    c,
                  )
                : W(u.textContent.replace(Nt, ""), u, c)));
    }
    return n;
  }
  function qt(t, e, n) {
    for (var r, i = e ? C.filter(e, t) : t, o = 0; null != (r = i[o]); o++)
      (n || 1 !== r.nodeType || C.cleanData(A(r)),
        r.parentNode &&
          (n && k(r) && Ct(A(r, "script")), r.parentNode.removeChild(r)));
    return t;
  }
  (C.extend({
    htmlPrefilter: function (t) {
      return t;
    },
    clone: function (t, e, n) {
      var r,
        i,
        o,
        a,
        s,
        u,
        c,
        l = t.cloneNode(!0),
        h = k(t);
      if (
        !(
          m.noCloneChecked ||
          (1 !== t.nodeType && 11 !== t.nodeType) ||
          C.isXMLDoc(t)
        )
      )
        for (a = A(l), r = 0, i = (o = A(t)).length; r < i; r++)
          ((s = o[r]),
            "input" === (c = (u = a[r]).nodeName.toLowerCase()) &&
            wt.test(s.type)
              ? (u.checked = s.checked)
              : ("input" !== c && "textarea" !== c) ||
                (u.defaultValue = s.defaultValue));
      if (e)
        if (n)
          for (o = o || A(t), a = a || A(l), r = 0, i = o.length; r < i; r++)
            Ot(o[r], a[r]);
        else Ot(t, l);
      return (
        0 < (a = A(l, "script")).length && Ct(a, !h && A(t, "script")),
        l
      );
    },
    cleanData: function (t) {
      for (var e, n, r, i = C.event.special, o = 0; void 0 !== (n = t[o]); o++)
        if (v(n)) {
          if ((e = n[x.expando])) {
            if (e.events)
              for (r in e.events)
                i[r] ? C.event.remove(n, r) : C.removeEvent(n, r, e.handle);
            n[x.expando] = void 0;
          }
          n[c.expando] && (n[c.expando] = void 0);
        }
    },
  }),
    C.fn.extend({
      detach: function (t) {
        return qt(this, t, !0);
      },
      remove: function (t) {
        return qt(this, t);
      },
      text: function (t) {
        return h(
          this,
          function (t) {
            return void 0 === t
              ? C.text(this)
              : this.empty().each(function () {
                  (1 !== this.nodeType &&
                    11 !== this.nodeType &&
                    9 !== this.nodeType) ||
                    (this.textContent = t);
                });
          },
          null,
          t,
          arguments.length,
        );
      },
      append: function () {
        return E(this, arguments, function (t) {
          (1 !== this.nodeType &&
            11 !== this.nodeType &&
            9 !== this.nodeType) ||
            jt(this, t).appendChild(t);
        });
      },
      prepend: function () {
        return E(this, arguments, function (t) {
          var e;
          (1 !== this.nodeType &&
            11 !== this.nodeType &&
            9 !== this.nodeType) ||
            (e = jt(this, t)).insertBefore(t, e.firstChild);
        });
      },
      before: function () {
        return E(this, arguments, function (t) {
          this.parentNode && this.parentNode.insertBefore(t, this);
        });
      },
      after: function () {
        return E(this, arguments, function (t) {
          this.parentNode && this.parentNode.insertBefore(t, this.nextSibling);
        });
      },
      empty: function () {
        for (var t, e = 0; null != (t = this[e]); e++)
          1 === t.nodeType && (C.cleanData(A(t, !1)), (t.textContent = ""));
        return this;
      },
      clone: function (t, e) {
        return (
          (t = null != t && t),
          (e = null == e ? t : e),
          this.map(function () {
            return C.clone(this, t, e);
          })
        );
      },
      html: function (t) {
        return h(
          this,
          function (t) {
            var e = this[0] || {},
              n = 0,
              r = this.length;
            if (void 0 === t && 1 === e.nodeType) return e.innerHTML;
            if (
              "string" == typeof t &&
              !Lt.test(t) &&
              !M[(Pt.exec(t) || ["", ""])[1].toLowerCase()]
            ) {
              t = C.htmlPrefilter(t);
              try {
                for (; n < r; n++)
                  1 === (e = this[n] || {}).nodeType &&
                    (C.cleanData(A(e, !1)), (e.innerHTML = t));
                e = 0;
              } catch (t) {}
            }
            e && this.empty().append(t);
          },
          null,
          t,
          arguments.length,
        );
      },
      replaceWith: function () {
        var n = [];
        return E(
          this,
          arguments,
          function (t) {
            var e = this.parentNode;
            C.inArray(this, n) < 0 &&
              (C.cleanData(A(this)), e) &&
              e.replaceChild(t, this);
          },
          n,
        );
      },
    }),
    C.each(
      {
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith",
      },
      function (t, a) {
        C.fn[t] = function (t) {
          for (var e, n = [], r = C(t), i = r.length - 1, o = 0; o <= i; o++)
            ((e = o === i ? this : this.clone(!0)),
              C(r[o])[a](e),
              O.apply(n, e.get()));
          return this.pushStack(n);
        };
      },
    ));
  function Bt(t) {
    var e = t.ownerDocument.defaultView;
    return (e = e && e.opener ? e : P).getComputedStyle(t);
  }
  function Ft(t, e, n) {
    var r,
      i = {};
    for (r in e) ((i[r] = t.style[r]), (t.style[r] = e[r]));
    for (r in ((n = n.call(t)), e)) t.style[r] = i[r];
    return n;
  }
  var $t,
    Ut,
    Vt,
    Qt,
    Wt,
    Xt,
    Yt,
    i,
    Gt = new RegExp("^(" + t + ")(?!px)[a-z%]+$", "i"),
    Jt = new RegExp(f.join("|"), "i");
  function Zt(t, e, n) {
    var r,
      i,
      o = t.style;
    return (
      (n = n || Bt(t)) &&
        ("" !== (i = n.getPropertyValue(e) || n[e]) ||
          k(t) ||
          (i = C.style(t, e)),
        !m.pixelBoxStyles()) &&
        Gt.test(i) &&
        Jt.test(e) &&
        ((t = o.width),
        (e = o.minWidth),
        (r = o.maxWidth),
        (o.minWidth = o.maxWidth = o.width = i),
        (i = n.width),
        (o.width = t),
        (o.minWidth = e),
        (o.maxWidth = r)),
      void 0 !== i ? i + "" : i
    );
  }
  function Kt(t, e) {
    return {
      get: function () {
        if (!t()) return (this.get = e).apply(this, arguments);
        delete this.get;
      },
    };
  }
  function te() {
    var t;
    i &&
      ((Yt.style.cssText =
        "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"),
      (i.style.cssText =
        "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"),
      w.appendChild(Yt).appendChild(i),
      (t = P.getComputedStyle(i)),
      ($t = "1%" !== t.top),
      (Xt = 12 === ee(t.marginLeft)),
      (i.style.right = "60%"),
      (Qt = 36 === ee(t.right)),
      (Ut = 36 === ee(t.width)),
      (i.style.position = "absolute"),
      (Vt = 12 === ee(i.offsetWidth / 3)),
      w.removeChild(Yt),
      (i = null));
  }
  function ee(t) {
    return Math.round(parseFloat(t));
  }
  ((Yt = H.createElement("div")),
    (i = H.createElement("div")).style &&
      ((i.style.backgroundClip = "content-box"),
      (i.cloneNode(!0).style.backgroundClip = ""),
      (m.clearCloneStyle = "content-box" === i.style.backgroundClip),
      C.extend(m, {
        boxSizingReliable: function () {
          return (te(), Ut);
        },
        pixelBoxStyles: function () {
          return (te(), Qt);
        },
        pixelPosition: function () {
          return (te(), $t);
        },
        reliableMarginLeft: function () {
          return (te(), Xt);
        },
        scrollboxSize: function () {
          return (te(), Vt);
        },
        reliableTrDimensions: function () {
          var t, e, n;
          return (
            null == Wt &&
              ((t = H.createElement("table")),
              (e = H.createElement("tr")),
              (n = H.createElement("div")),
              (t.style.cssText = "position:absolute;left:-11111px"),
              (e.style.height = "1px"),
              (n.style.height = "9px"),
              w.appendChild(t).appendChild(e).appendChild(n),
              (n = P.getComputedStyle(e)),
              (Wt = 3 < parseInt(n.height)),
              w.removeChild(t)),
            Wt
          );
        },
      })));
  var ne = ["Webkit", "Moz", "ms"],
    re = H.createElement("div").style,
    ie = {};
  function oe(t) {
    return (
      C.cssProps[t] ||
      ie[t] ||
      (t in re
        ? t
        : (ie[t] =
            (function (t) {
              for (
                var e = t[0].toUpperCase() + t.slice(1), n = ne.length;
                n--;
              )
                if ((t = ne[n] + e) in re) return t;
            })(t) || t))
    );
  }
  var ae = /^(none|table(?!-c[ea]).+)/,
    se = /^--/,
    ue = { position: "absolute", visibility: "hidden", display: "block" },
    ce = { letterSpacing: "0", fontWeight: "400" };
  function le(t, e, n) {
    var r = vt.exec(e);
    return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : e;
  }
  function he(t, e, n, r, i, o) {
    var a = "width" === e ? 1 : 0,
      s = 0,
      u = 0;
    if (n === (r ? "border" : "content")) return 0;
    for (; a < 4; a += 2)
      ("margin" === n && (u += C.css(t, n + f[a], !0, i)),
        r
          ? ("content" === n && (u -= C.css(t, "padding" + f[a], !0, i)),
            "margin" !== n && (u -= C.css(t, "border" + f[a] + "Width", !0, i)))
          : ((u += C.css(t, "padding" + f[a], !0, i)),
            "padding" !== n
              ? (u += C.css(t, "border" + f[a] + "Width", !0, i))
              : (s += C.css(t, "border" + f[a] + "Width", !0, i))));
    return (
      !r &&
        0 <= o &&
        (u +=
          Math.max(
            0,
            Math.ceil(
              t["offset" + e[0].toUpperCase() + e.slice(1)] - o - u - s - 0.5,
            ),
          ) || 0),
      u
    );
  }
  function fe(t, e, n) {
    var r = Bt(t),
      i =
        (!m.boxSizingReliable() || n) &&
        "border-box" === C.css(t, "boxSizing", !1, r),
      o = i,
      a = Zt(t, e, r),
      s = "offset" + e[0].toUpperCase() + e.slice(1);
    if (Gt.test(a)) {
      if (!n) return a;
      a = "auto";
    }
    return (
      ((!m.boxSizingReliable() && i) ||
        (!m.reliableTrDimensions() && u(t, "tr")) ||
        "auto" === a ||
        (!parseFloat(a) && "inline" === C.css(t, "display", !1, r))) &&
        t.getClientRects().length &&
        ((i = "border-box" === C.css(t, "boxSizing", !1, r)), (o = s in t)) &&
        (a = t[s]),
      (a = parseFloat(a) || 0) +
        he(t, e, n || (i ? "border" : "content"), o, r, a) +
        "px"
    );
  }
  function o(t, e, n, r, i) {
    return new o.prototype.init(t, e, n, r, i);
  }
  (C.extend({
    cssHooks: {
      opacity: {
        get: function (t, e) {
          if (e) return "" === (e = Zt(t, "opacity")) ? "1" : e;
        },
      },
    },
    cssNumber: {
      animationIterationCount: !0,
      columnCount: !0,
      fillOpacity: !0,
      flexGrow: !0,
      flexShrink: !0,
      fontWeight: !0,
      gridArea: !0,
      gridColumn: !0,
      gridColumnEnd: !0,
      gridColumnStart: !0,
      gridRow: !0,
      gridRowEnd: !0,
      gridRowStart: !0,
      lineHeight: !0,
      opacity: !0,
      order: !0,
      orphans: !0,
      widows: !0,
      zIndex: !0,
      zoom: !0,
    },
    cssProps: {},
    style: function (t, e, n, r) {
      if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
        var i,
          o,
          a,
          s = b(e),
          u = se.test(e),
          c = t.style;
        if (
          (u || (e = oe(s)), (a = C.cssHooks[e] || C.cssHooks[s]), void 0 === n)
        )
          return a && "get" in a && void 0 !== (i = a.get(t, !1, r)) ? i : c[e];
        ("string" == (o = typeof n) &&
          (i = vt.exec(n)) &&
          i[1] &&
          ((n = bt(t, e, i)), (o = "number")),
          null != n &&
            n == n &&
            ("number" !== o ||
              u ||
              (n += (i && i[3]) || (C.cssNumber[s] ? "" : "px")),
            m.clearCloneStyle ||
              "" !== n ||
              0 !== e.indexOf("background") ||
              (c[e] = "inherit"),
            (a && "set" in a && void 0 === (n = a.set(t, n, r))) ||
              (u ? c.setProperty(e, n) : (c[e] = n))));
      }
    },
    css: function (t, e, n, r) {
      var i,
        o = b(e);
      return (
        se.test(e) || (e = oe(o)),
        "normal" ===
          (i =
            void 0 ===
            (i =
              (o = C.cssHooks[e] || C.cssHooks[o]) && "get" in o
                ? o.get(t, !0, n)
                : i)
              ? Zt(t, e, r)
              : i) &&
          e in ce &&
          (i = ce[e]),
        ("" === n || n) && ((o = parseFloat(i)), !0 === n || isFinite(o))
          ? o || 0
          : i
      );
    },
  }),
    C.each(["height", "width"], function (t, a) {
      C.cssHooks[a] = {
        get: function (t, e, n) {
          if (e)
            return !ae.test(C.css(t, "display")) ||
              (t.getClientRects().length && t.getBoundingClientRect().width)
              ? fe(t, a, n)
              : Ft(t, ue, function () {
                  return fe(t, a, n);
                });
        },
        set: function (t, e, n) {
          var r = Bt(t),
            i = !m.scrollboxSize() && "absolute" === r.position,
            o = (i || n) && "border-box" === C.css(t, "boxSizing", !1, r),
            n = n ? he(t, a, n, o, r) : 0;
          return (
            o &&
              i &&
              (n -= Math.ceil(
                t["offset" + a[0].toUpperCase() + a.slice(1)] -
                  parseFloat(r[a]) -
                  he(t, a, "border", !1, r) -
                  0.5,
              )),
            n &&
              (o = vt.exec(e)) &&
              "px" !== (o[3] || "px") &&
              ((t.style[a] = e), (e = C.css(t, a))),
            le(0, e, n)
          );
        },
      };
    }),
    (C.cssHooks.marginLeft = Kt(m.reliableMarginLeft, function (t, e) {
      if (e)
        return (
          (parseFloat(Zt(t, "marginLeft")) ||
            t.getBoundingClientRect().left -
              Ft(t, { marginLeft: 0 }, function () {
                return t.getBoundingClientRect().left;
              })) + "px"
        );
    })),
    C.each({ margin: "", padding: "", border: "Width" }, function (i, o) {
      ((C.cssHooks[i + o] = {
        expand: function (t) {
          for (
            var e = 0, n = {}, r = "string" == typeof t ? t.split(" ") : [t];
            e < 4;
            e++
          )
            n[i + f[e] + o] = r[e] || r[e - 2] || r[0];
          return n;
        },
      }),
        "margin" !== i && (C.cssHooks[i + o].set = le));
    }),
    C.fn.extend({
      css: function (t, e) {
        return h(
          this,
          function (t, e, n) {
            var r,
              i,
              o = {},
              a = 0;
            if (Array.isArray(e)) {
              for (r = Bt(t), i = e.length; a < i; a++)
                o[e[a]] = C.css(t, e[a], !1, r);
              return o;
            }
            return void 0 !== n ? C.style(t, e, n) : C.css(t, e);
          },
          t,
          e,
          1 < arguments.length,
        );
      },
    }),
    (((C.Tween = o).prototype = {
      constructor: o,
      init: function (t, e, n, r, i, o) {
        ((this.elem = t),
          (this.prop = n),
          (this.easing = i || C.easing._default),
          (this.options = e),
          (this.start = this.now = this.cur()),
          (this.end = r),
          (this.unit = o || (C.cssNumber[n] ? "" : "px")));
      },
      cur: function () {
        var t = o.propHooks[this.prop];
        return (t && t.get ? t : o.propHooks._default).get(this);
      },
      run: function (t) {
        var e,
          n = o.propHooks[this.prop];
        return (
          this.options.duration
            ? (this.pos = e =
                C.easing[this.easing](
                  t,
                  this.options.duration * t,
                  0,
                  1,
                  this.options.duration,
                ))
            : (this.pos = e = t),
          (this.now = (this.end - this.start) * e + this.start),
          this.options.step &&
            this.options.step.call(this.elem, this.now, this),
          (n && n.set ? n : o.propHooks._default).set(this),
          this
        );
      },
    }).init.prototype = o.prototype),
    ((o.propHooks = {
      _default: {
        get: function (t) {
          return 1 !== t.elem.nodeType ||
            (null != t.elem[t.prop] && null == t.elem.style[t.prop])
            ? t.elem[t.prop]
            : (t = C.css(t.elem, t.prop, "")) && "auto" !== t
              ? t
              : 0;
        },
        set: function (t) {
          C.fx.step[t.prop]
            ? C.fx.step[t.prop](t)
            : 1 !== t.elem.nodeType ||
                (!C.cssHooks[t.prop] && null == t.elem.style[oe(t.prop)])
              ? (t.elem[t.prop] = t.now)
              : C.style(t.elem, t.prop, t.now + t.unit);
        },
      },
    }).scrollTop = o.propHooks.scrollLeft =
      {
        set: function (t) {
          t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now);
        },
      }),
    (C.easing = {
      linear: function (t) {
        return t;
      },
      swing: function (t) {
        return 0.5 - Math.cos(t * Math.PI) / 2;
      },
      _default: "swing",
    }),
    (C.fx = o.prototype.init),
    (C.fx.step = {}));
  var I,
    de,
    D,
    pe = /^(?:toggle|show|hide)$/,
    ge = /queueHooks$/;
  function me() {
    de &&
      (!1 === H.hidden && P.requestAnimationFrame
        ? P.requestAnimationFrame(me)
        : P.setTimeout(me, C.fx.interval),
      C.fx.tick());
  }
  function ve() {
    return (
      P.setTimeout(function () {
        I = void 0;
      }),
      (I = Date.now())
    );
  }
  function ye(t, e) {
    var n,
      r = 0,
      i = { height: t };
    for (e = e ? 1 : 0; r < 4; r += 2 - e)
      i["margin" + (n = f[r])] = i["padding" + n] = t;
    return (e && (i.opacity = i.width = t), i);
  }
  function be(t, e, n) {
    for (
      var r,
        i = (L.tweeners[e] || []).concat(L.tweeners["*"]),
        o = 0,
        a = i.length;
      o < a;
      o++
    )
      if ((r = i[o].call(n, e, t))) return r;
  }
  function L(i, t, e) {
    var n,
      o,
      r,
      a,
      s,
      u,
      c,
      l = 0,
      h = L.prefilters.length,
      f = C.Deferred().always(function () {
        delete d.elem;
      }),
      d = function () {
        if (o) return !1;
        for (
          var t = I || ve(),
            t = Math.max(0, p.startTime + p.duration - t),
            e = 1 - (t / p.duration || 0),
            n = 0,
            r = p.tweens.length;
          n < r;
          n++
        )
          p.tweens[n].run(e);
        return (
          f.notifyWith(i, [p, e, t]),
          e < 1 && r
            ? t
            : (r || f.notifyWith(i, [p, 1, 0]), f.resolveWith(i, [p]), !1)
        );
      },
      p = f.promise({
        elem: i,
        props: C.extend({}, t),
        opts: C.extend(!0, { specialEasing: {}, easing: C.easing._default }, e),
        originalProperties: t,
        originalOptions: e,
        startTime: I || ve(),
        duration: e.duration,
        tweens: [],
        createTween: function (t, e) {
          e = C.Tween(
            i,
            p.opts,
            t,
            e,
            p.opts.specialEasing[t] || p.opts.easing,
          );
          return (p.tweens.push(e), e);
        },
        stop: function (t) {
          var e = 0,
            n = t ? p.tweens.length : 0;
          if (!o) {
            for (o = !0; e < n; e++) p.tweens[e].run(1);
            t
              ? (f.notifyWith(i, [p, 1, 0]), f.resolveWith(i, [p, t]))
              : f.rejectWith(i, [p, t]);
          }
          return this;
        },
      }),
      g = p.props,
      m = g,
      v = p.opts.specialEasing;
    for (r in m)
      if (
        ((s = v[(a = b(r))]),
        (u = m[r]),
        Array.isArray(u) && ((s = u[1]), (u = m[r] = u[0])),
        r !== a && ((m[a] = u), delete m[r]),
        (c = C.cssHooks[a]) && "expand" in c)
      )
        for (r in ((u = c.expand(u)), delete m[a], u))
          r in m || ((m[r] = u[r]), (v[r] = s));
      else v[a] = s;
    for (; l < h; l++)
      if ((n = L.prefilters[l].call(p, i, g, p.opts)))
        return (
          y(n.stop) &&
            (C._queueHooks(p.elem, p.opts.queue).stop = n.stop.bind(n)),
          n
        );
    return (
      C.map(g, be, p),
      y(p.opts.start) && p.opts.start.call(i, p),
      p
        .progress(p.opts.progress)
        .done(p.opts.done, p.opts.complete)
        .fail(p.opts.fail)
        .always(p.opts.always),
      C.fx.timer(C.extend(d, { elem: i, anim: p, queue: p.opts.queue })),
      p
    );
  }
  ((C.Animation = C.extend(L, {
    tweeners: {
      "*": [
        function (t, e) {
          var n = this.createTween(t, e);
          return (bt(n.elem, t, vt.exec(e), n), n);
        },
      ],
    },
    tweener: function (t, e) {
      for (
        var n, r = 0, i = (t = y(t) ? ((e = t), ["*"]) : t.match(S)).length;
        r < i;
        r++
      )
        ((n = t[r]),
          (L.tweeners[n] = L.tweeners[n] || []),
          L.tweeners[n].unshift(e));
    },
    prefilters: [
      function (t, e, n) {
        var r,
          i,
          o,
          a,
          s,
          u,
          c,
          l = "width" in e || "height" in e,
          h = this,
          f = {},
          d = t.style,
          p = t.nodeType && mt(t),
          g = x.get(t, "fxshow");
        for (r in (n.queue ||
          (null == (a = C._queueHooks(t, "fx")).unqueued &&
            ((a.unqueued = 0),
            (s = a.empty.fire),
            (a.empty.fire = function () {
              a.unqueued || s();
            })),
          a.unqueued++,
          h.always(function () {
            h.always(function () {
              (a.unqueued--, C.queue(t, "fx").length || a.empty.fire());
            });
          })),
        e))
          if (((i = e[r]), pe.test(i))) {
            if (
              (delete e[r],
              (o = o || "toggle" === i),
              i === (p ? "hide" : "show"))
            ) {
              if ("show" !== i || !g || void 0 === g[r]) continue;
              p = !0;
            }
            f[r] = (g && g[r]) || C.style(t, r);
          }
        if ((u = !C.isEmptyObject(e)) || !C.isEmptyObject(f))
          for (r in (l &&
            1 === t.nodeType &&
            ((n.overflow = [d.overflow, d.overflowX, d.overflowY]),
            null == (c = g && g.display) && (c = x.get(t, "display")),
            "none" === (l = C.css(t, "display")) &&
              (c
                ? (l = c)
                : (T([t], !0),
                  (c = t.style.display || c),
                  (l = C.css(t, "display")),
                  T([t]))),
            "inline" === l || ("inline-block" === l && null != c)) &&
            "none" === C.css(t, "float") &&
            (u ||
              (h.done(function () {
                d.display = c;
              }),
              null == c && ((l = d.display), (c = "none" === l ? "" : l))),
            (d.display = "inline-block")),
          n.overflow &&
            ((d.overflow = "hidden"),
            h.always(function () {
              ((d.overflow = n.overflow[0]),
                (d.overflowX = n.overflow[1]),
                (d.overflowY = n.overflow[2]));
            })),
          (u = !1),
          f))
            (u ||
              (g
                ? "hidden" in g && (p = g.hidden)
                : (g = x.access(t, "fxshow", { display: c })),
              o && (g.hidden = !p),
              p && T([t], !0),
              h.done(function () {
                for (r in (p || T([t]), x.remove(t, "fxshow"), f))
                  C.style(t, r, f[r]);
              })),
              (u = be(p ? g[r] : 0, r, h)),
              r in g ||
                ((g[r] = u.start), p && ((u.end = u.start), (u.start = 0))));
      },
    ],
    prefilter: function (t, e) {
      e ? L.prefilters.unshift(t) : L.prefilters.push(t);
    },
  })),
    (C.speed = function (t, e, n) {
      var r =
        t && "object" == typeof t
          ? C.extend({}, t)
          : {
              complete: n || (!n && e) || (y(t) && t),
              duration: t,
              easing: (n && e) || (e && !y(e) && e),
            };
      return (
        C.fx.off
          ? (r.duration = 0)
          : "number" != typeof r.duration &&
            (r.duration in C.fx.speeds
              ? (r.duration = C.fx.speeds[r.duration])
              : (r.duration = C.fx.speeds._default)),
        (null != r.queue && !0 !== r.queue) || (r.queue = "fx"),
        (r.old = r.complete),
        (r.complete = function () {
          (y(r.old) && r.old.call(this), r.queue && C.dequeue(this, r.queue));
        }),
        r
      );
    }),
    C.fn.extend({
      fadeTo: function (t, e, n, r) {
        return this.filter(mt)
          .css("opacity", 0)
          .show()
          .end()
          .animate({ opacity: e }, t, n, r);
      },
      animate: function (e, t, n, r) {
        function i() {
          var t = L(this, C.extend({}, e), a);
          (o || x.get(this, "finish")) && t.stop(!0);
        }
        var o = C.isEmptyObject(e),
          a = C.speed(t, n, r);
        return (
          (i.finish = i),
          o || !1 === a.queue ? this.each(i) : this.queue(a.queue, i)
        );
      },
      stop: function (i, t, o) {
        function a(t) {
          var e = t.stop;
          (delete t.stop, e(o));
        }
        return (
          "string" != typeof i && ((o = t), (t = i), (i = void 0)),
          t && this.queue(i || "fx", []),
          this.each(function () {
            var t = !0,
              e = null != i && i + "queueHooks",
              n = C.timers,
              r = x.get(this);
            if (e) r[e] && r[e].stop && a(r[e]);
            else for (e in r) r[e] && r[e].stop && ge.test(e) && a(r[e]);
            for (e = n.length; e--; )
              n[e].elem !== this ||
                (null != i && n[e].queue !== i) ||
                (n[e].anim.stop(o), (t = !1), n.splice(e, 1));
            (!t && o) || C.dequeue(this, i);
          })
        );
      },
      finish: function (a) {
        return (
          !1 !== a && (a = a || "fx"),
          this.each(function () {
            var t,
              e = x.get(this),
              n = e[a + "queue"],
              r = e[a + "queueHooks"],
              i = C.timers,
              o = n ? n.length : 0;
            for (
              e.finish = !0,
                C.queue(this, a, []),
                r && r.stop && r.stop.call(this, !0),
                t = i.length;
              t--;
            )
              i[t].elem === this &&
                i[t].queue === a &&
                (i[t].anim.stop(!0), i.splice(t, 1));
            for (t = 0; t < o; t++)
              n[t] && n[t].finish && n[t].finish.call(this);
            delete e.finish;
          })
        );
      },
    }),
    C.each(["toggle", "show", "hide"], function (t, r) {
      var i = C.fn[r];
      C.fn[r] = function (t, e, n) {
        return null == t || "boolean" == typeof t
          ? i.apply(this, arguments)
          : this.animate(ye(r, !0), t, e, n);
      };
    }),
    C.each(
      {
        slideDown: ye("show"),
        slideUp: ye("hide"),
        slideToggle: ye("toggle"),
        fadeIn: { opacity: "show" },
        fadeOut: { opacity: "hide" },
        fadeToggle: { opacity: "toggle" },
      },
      function (t, r) {
        C.fn[t] = function (t, e, n) {
          return this.animate(r, t, e, n);
        };
      },
    ),
    (C.timers = []),
    (C.fx.tick = function () {
      var t,
        e = 0,
        n = C.timers;
      for (I = Date.now(); e < n.length; e++)
        (t = n[e])() || n[e] !== t || n.splice(e--, 1);
      (n.length || C.fx.stop(), (I = void 0));
    }),
    (C.fx.timer = function (t) {
      (C.timers.push(t), C.fx.start());
    }),
    (C.fx.interval = 13),
    (C.fx.start = function () {
      de || ((de = !0), me());
    }),
    (C.fx.stop = function () {
      de = null;
    }),
    (C.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
    (C.fn.delay = function (r, t) {
      return (
        (r = (C.fx && C.fx.speeds[r]) || r),
        this.queue((t = t || "fx"), function (t, e) {
          var n = P.setTimeout(t, r);
          e.stop = function () {
            P.clearTimeout(n);
          };
        })
      );
    }),
    (D = H.createElement("input")),
    (n = H.createElement("select").appendChild(H.createElement("option"))),
    (D.type = "checkbox"),
    (m.checkOn = "" !== D.value),
    (m.optSelected = n.selected),
    ((D = H.createElement("input")).value = "t"),
    (D.type = "radio"),
    (m.radioValue = "t" === D.value));
  var xe,
    we = C.expr.attrHandle,
    Pe =
      (C.fn.extend({
        attr: function (t, e) {
          return h(this, C.attr, t, e, 1 < arguments.length);
        },
        removeAttr: function (t) {
          return this.each(function () {
            C.removeAttr(this, t);
          });
        },
      }),
      C.extend({
        attr: function (t, e, n) {
          var r,
            i,
            o = t.nodeType;
          if (3 !== o && 8 !== o && 2 !== o)
            return void 0 === t.getAttribute
              ? C.prop(t, e, n)
              : ((1 === o && C.isXMLDoc(t)) ||
                  (i =
                    C.attrHooks[e.toLowerCase()] ||
                    (C.expr.match.bool.test(e) ? xe : void 0)),
                void 0 !== n
                  ? null === n
                    ? void C.removeAttr(t, e)
                    : i && "set" in i && void 0 !== (r = i.set(t, n, e))
                      ? r
                      : (t.setAttribute(e, n + ""), n)
                  : !(i && "get" in i && null !== (r = i.get(t, e))) &&
                      null == (r = C.find.attr(t, e))
                    ? void 0
                    : r);
        },
        attrHooks: {
          type: {
            set: function (t, e) {
              var n;
              if (!m.radioValue && "radio" === e && u(t, "input"))
                return (
                  (n = t.value),
                  t.setAttribute("type", e),
                  n && (t.value = n),
                  e
                );
            },
          },
        },
        removeAttr: function (t, e) {
          var n,
            r = 0,
            i = e && e.match(S);
          if (i && 1 === t.nodeType)
            for (; (n = i[r++]); ) t.removeAttribute(n);
        },
      }),
      (xe = {
        set: function (t, e, n) {
          return (!1 === e ? C.removeAttr(t, n) : t.setAttribute(n, n), n);
        },
      }),
      C.each(C.expr.match.bool.source.match(/\w+/g), function (t, e) {
        var a = we[e] || C.find.attr;
        we[e] = function (t, e, n) {
          var r,
            i,
            o = e.toLowerCase();
          return (
            n ||
              ((i = we[o]),
              (we[o] = r),
              (r = null != a(t, e, n) ? o : null),
              (we[o] = i)),
            r
          );
        };
      }),
      /^(?:input|select|textarea|button)$/i),
    He = /^(?:a|area)$/i;
  function _(t) {
    return (t.match(S) || []).join(" ");
  }
  function N(t) {
    return (t.getAttribute && t.getAttribute("class")) || "";
  }
  function Ce(t) {
    return Array.isArray(t) ? t : ("string" == typeof t && t.match(S)) || [];
  }
  (C.fn.extend({
    prop: function (t, e) {
      return h(this, C.prop, t, e, 1 < arguments.length);
    },
    removeProp: function (t) {
      return this.each(function () {
        delete this[C.propFix[t] || t];
      });
    },
  }),
    C.extend({
      prop: function (t, e, n) {
        var r,
          i,
          o = t.nodeType;
        if (3 !== o && 8 !== o && 2 !== o)
          return (
            (1 === o && C.isXMLDoc(t)) ||
              ((e = C.propFix[e] || e), (i = C.propHooks[e])),
            void 0 !== n
              ? i && "set" in i && void 0 !== (r = i.set(t, n, e))
                ? r
                : (t[e] = n)
              : i && "get" in i && null !== (r = i.get(t, e))
                ? r
                : t[e]
          );
      },
      propHooks: {
        tabIndex: {
          get: function (t) {
            var e = C.find.attr(t, "tabindex");
            return e
              ? parseInt(e, 10)
              : Pe.test(t.nodeName) || (He.test(t.nodeName) && t.href)
                ? 0
                : -1;
          },
        },
      },
      propFix: { for: "htmlFor", class: "className" },
    }),
    m.optSelected ||
      (C.propHooks.selected = {
        get: function (t) {
          t = t.parentNode;
          return (t && t.parentNode && t.parentNode.selectedIndex, null);
        },
        set: function (t) {
          t = t.parentNode;
          t && (t.selectedIndex, t.parentNode) && t.parentNode.selectedIndex;
        },
      }),
    C.each(
      [
        "tabIndex",
        "readOnly",
        "maxLength",
        "cellSpacing",
        "cellPadding",
        "rowSpan",
        "colSpan",
        "useMap",
        "frameBorder",
        "contentEditable",
      ],
      function () {
        C.propFix[this.toLowerCase()] = this;
      },
    ),
    C.fn.extend({
      addClass: function (e) {
        var t,
          n,
          r,
          i,
          o,
          a,
          s = 0;
        if (y(e))
          return this.each(function (t) {
            C(this).addClass(e.call(this, t, N(this)));
          });
        if ((t = Ce(e)).length)
          for (; (n = this[s++]); )
            if (((a = N(n)), (r = 1 === n.nodeType && " " + _(a) + " "))) {
              for (o = 0; (i = t[o++]); )
                r.indexOf(" " + i + " ") < 0 && (r += i + " ");
              a !== (a = _(r)) && n.setAttribute("class", a);
            }
        return this;
      },
      removeClass: function (e) {
        var t,
          n,
          r,
          i,
          o,
          a,
          s = 0;
        if (y(e))
          return this.each(function (t) {
            C(this).removeClass(e.call(this, t, N(this)));
          });
        if (!arguments.length) return this.attr("class", "");
        if ((t = Ce(e)).length)
          for (; (n = this[s++]); )
            if (((a = N(n)), (r = 1 === n.nodeType && " " + _(a) + " "))) {
              for (o = 0; (i = t[o++]); )
                for (; -1 < r.indexOf(" " + i + " "); )
                  r = r.replace(" " + i + " ", " ");
              a !== (a = _(r)) && n.setAttribute("class", a);
            }
        return this;
      },
      toggleClass: function (i, e) {
        var o = typeof i,
          a = "string" == o || Array.isArray(i);
        return "boolean" == typeof e && a
          ? e
            ? this.addClass(i)
            : this.removeClass(i)
          : y(i)
            ? this.each(function (t) {
                C(this).toggleClass(i.call(this, t, N(this), e), e);
              })
            : this.each(function () {
                var t, e, n, r;
                if (a)
                  for (e = 0, n = C(this), r = Ce(i); (t = r[e++]); )
                    n.hasClass(t) ? n.removeClass(t) : n.addClass(t);
                else
                  (void 0 !== i && "boolean" != o) ||
                    ((t = N(this)) && x.set(this, "__className__", t),
                    this.setAttribute &&
                      this.setAttribute(
                        "class",
                        (!t && !1 !== i && x.get(this, "__className__")) || "",
                      ));
              });
      },
      hasClass: function (t) {
        for (var e, n = 0, r = " " + t + " "; (e = this[n++]); )
          if (1 === e.nodeType && -1 < (" " + _(N(e)) + " ").indexOf(r))
            return !0;
        return !1;
      },
    }));
  function Se(t) {
    t.stopPropagation();
  }
  var ke = /\r/g,
    Te =
      (C.fn.extend({
        val: function (e) {
          var n,
            t,
            r,
            i = this[0];
          return arguments.length
            ? ((r = y(e)),
              this.each(function (t) {
                1 === this.nodeType &&
                  (null == (t = r ? e.call(this, t, C(this).val()) : e)
                    ? (t = "")
                    : "number" == typeof t
                      ? (t += "")
                      : Array.isArray(t) &&
                        (t = C.map(t, function (t) {
                          return null == t ? "" : t + "";
                        })),
                  ((n =
                    C.valHooks[this.type] ||
                    C.valHooks[this.nodeName.toLowerCase()]) &&
                    "set" in n &&
                    void 0 !== n.set(this, t, "value")) ||
                    (this.value = t));
              }))
            : i
              ? (n =
                  C.valHooks[i.type] || C.valHooks[i.nodeName.toLowerCase()]) &&
                "get" in n &&
                void 0 !== (t = n.get(i, "value"))
                ? t
                : "string" == typeof (t = i.value)
                  ? t.replace(ke, "")
                  : null == t
                    ? ""
                    : t
              : void 0;
        },
      }),
      C.extend({
        valHooks: {
          option: {
            get: function (t) {
              var e = C.find.attr(t, "value");
              return null != e ? e : _(C.text(t));
            },
          },
          select: {
            get: function (t) {
              for (
                var e,
                  n = t.options,
                  r = t.selectedIndex,
                  i = "select-one" === t.type,
                  o = i ? null : [],
                  a = i ? r + 1 : n.length,
                  s = r < 0 ? a : i ? r : 0;
                s < a;
                s++
              )
                if (
                  ((e = n[s]).selected || s === r) &&
                  !e.disabled &&
                  (!e.parentNode.disabled || !u(e.parentNode, "optgroup"))
                ) {
                  if (((e = C(e).val()), i)) return e;
                  o.push(e);
                }
              return o;
            },
            set: function (t, e) {
              for (
                var n, r, i = t.options, o = C.makeArray(e), a = i.length;
                a--;
              )
                ((r = i[a]).selected =
                  -1 < C.inArray(C.valHooks.option.get(r), o)) && (n = !0);
              return (n || (t.selectedIndex = -1), o);
            },
          },
        },
      }),
      C.each(["radio", "checkbox"], function () {
        ((C.valHooks[this] = {
          set: function (t, e) {
            if (Array.isArray(e))
              return (t.checked = -1 < C.inArray(C(t).val(), e));
          },
        }),
          m.checkOn ||
            (C.valHooks[this].get = function (t) {
              return null === t.getAttribute("value") ? "on" : t.value;
            }));
      }),
      (m.focusin = "onfocusin" in P),
      /^(?:focusinfocus|focusoutblur)$/),
    Me =
      (C.extend(C.event, {
        trigger: function (t, e, n, r) {
          var i,
            o,
            a,
            s,
            u,
            c,
            l,
            h = [n || H],
            f = $.call(t, "type") ? t.type : t,
            d = $.call(t, "namespace") ? t.namespace.split(".") : [],
            p = (l = o = n = n || H);
          if (
            3 !== n.nodeType &&
            8 !== n.nodeType &&
            !Te.test(f + C.event.triggered) &&
            (-1 < f.indexOf(".") &&
              ((f = (d = f.split(".")).shift()), d.sort()),
            (s = f.indexOf(":") < 0 && "on" + f),
            ((t = t[C.expando]
              ? t
              : new C.Event(f, "object" == typeof t && t)).isTrigger = r
              ? 2
              : 3),
            (t.namespace = d.join(".")),
            (t.rnamespace = t.namespace
              ? new RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)")
              : null),
            (t.result = void 0),
            t.target || (t.target = n),
            (e = null == e ? [t] : C.makeArray(e, [t])),
            (c = C.event.special[f] || {}),
            r || !c.trigger || !1 !== c.trigger.apply(n, e))
          ) {
            if (!r && !c.noBubble && !g(n)) {
              for (
                a = c.delegateType || f, Te.test(a + f) || (p = p.parentNode);
                p;
                p = p.parentNode
              )
                (h.push(p), (o = p));
              o === (n.ownerDocument || H) &&
                h.push(o.defaultView || o.parentWindow || P);
            }
            for (i = 0; (p = h[i++]) && !t.isPropagationStopped(); )
              ((l = p),
                (t.type = 1 < i ? a : c.bindType || f),
                (u =
                  (x.get(p, "events") || Object.create(null))[t.type] &&
                  x.get(p, "handle")) && u.apply(p, e),
                (u = s && p[s]) &&
                  u.apply &&
                  v(p) &&
                  ((t.result = u.apply(p, e)), !1 === t.result) &&
                  t.preventDefault());
            return (
              (t.type = f),
              r ||
                t.isDefaultPrevented() ||
                (c._default && !1 !== c._default.apply(h.pop(), e)) ||
                !v(n) ||
                (s &&
                  y(n[f]) &&
                  !g(n) &&
                  ((o = n[s]) && (n[s] = null),
                  (C.event.triggered = f),
                  t.isPropagationStopped() && l.addEventListener(f, Se),
                  n[f](),
                  t.isPropagationStopped() && l.removeEventListener(f, Se),
                  (C.event.triggered = void 0),
                  o) &&
                  (n[s] = o)),
              t.result
            );
          }
        },
        simulate: function (t, e, n) {
          n = C.extend(new C.Event(), n, { type: t, isSimulated: !0 });
          C.event.trigger(n, null, e);
        },
      }),
      C.fn.extend({
        trigger: function (t, e) {
          return this.each(function () {
            C.event.trigger(t, e, this);
          });
        },
        triggerHandler: function (t, e) {
          var n = this[0];
          if (n) return C.event.trigger(t, e, n, !0);
        },
      }),
      m.focusin ||
        C.each({ focus: "focusin", blur: "focusout" }, function (n, r) {
          function i(t) {
            C.event.simulate(r, t.target, C.event.fix(t));
          }
          C.event.special[r] = {
            setup: function () {
              var t = this.ownerDocument || this.document || this,
                e = x.access(t, r);
              (e || t.addEventListener(n, i, !0), x.access(t, r, (e || 0) + 1));
            },
            teardown: function () {
              var t = this.ownerDocument || this.document || this,
                e = x.access(t, r) - 1;
              e
                ? x.access(t, r, e)
                : (t.removeEventListener(n, i, !0), x.remove(t, r));
            },
          };
        }),
      P.location),
    Ae = { guid: Date.now() },
    Ee = /\?/,
    Ie =
      ((C.parseXML = function (t) {
        var e;
        if (!t || "string" != typeof t) return null;
        try {
          e = new P.DOMParser().parseFromString(t, "text/xml");
        } catch (t) {
          e = void 0;
        }
        return (
          (e && !e.getElementsByTagName("parsererror").length) ||
            C.error("Invalid XML: " + t),
          e
        );
      }),
      /\[\]$/),
    De = /\r?\n/g,
    Le = /^(?:submit|button|image|reset|file)$/i,
    _e = /^(?:input|select|textarea|keygen)/i;
  ((C.param = function (t, e) {
    function n(t, e) {
      ((e = y(e) ? e() : e),
        (i[i.length] =
          encodeURIComponent(t) +
          "=" +
          encodeURIComponent(null == e ? "" : e)));
    }
    var r,
      i = [];
    if (null == t) return "";
    if (Array.isArray(t) || (t.jquery && !C.isPlainObject(t)))
      C.each(t, function () {
        n(this.name, this.value);
      });
    else
      for (r in t)
        !(function n(r, t, i, o) {
          if (Array.isArray(t))
            C.each(t, function (t, e) {
              i || Ie.test(r)
                ? o(r, e)
                : n(
                    r +
                      "[" +
                      ("object" == typeof e && null != e ? t : "") +
                      "]",
                    e,
                    i,
                    o,
                  );
            });
          else if (i || "object" !== p(t)) o(r, t);
          else for (var e in t) n(r + "[" + e + "]", t[e], i, o);
        })(r, t[r], e, n);
    return i.join("&");
  }),
    C.fn.extend({
      serialize: function () {
        return C.param(this.serializeArray());
      },
      serializeArray: function () {
        return this.map(function () {
          var t = C.prop(this, "elements");
          return t ? C.makeArray(t) : this;
        })
          .filter(function () {
            var t = this.type;
            return (
              this.name &&
              !C(this).is(":disabled") &&
              _e.test(this.nodeName) &&
              !Le.test(t) &&
              (this.checked || !wt.test(t))
            );
          })
          .map(function (t, e) {
            var n = C(this).val();
            return null == n
              ? null
              : Array.isArray(n)
                ? C.map(n, function (t) {
                    return { name: e.name, value: t.replace(De, "\r\n") };
                  })
                : { name: e.name, value: n.replace(De, "\r\n") };
          })
          .get();
      },
    }));
  var Ne = /%20/g,
    je = /#.*$/,
    ze = /([?&])_=[^&]*/,
    Re = /^(.*?):[ \t]*([^\r\n]*)$/gm,
    Oe = /^(?:GET|HEAD)$/,
    qe = /^\/\//,
    Be = {},
    Fe = {},
    $e = "*/".concat("*"),
    Ue = H.createElement("a");
  function Ve(o) {
    return function (t, e) {
      "string" != typeof t && ((e = t), (t = "*"));
      var n,
        r = 0,
        i = t.toLowerCase().match(S) || [];
      if (y(e))
        for (; (n = i[r++]); )
          "+" === n[0]
            ? ((n = n.slice(1) || "*"), (o[n] = o[n] || []).unshift(e))
            : (o[n] = o[n] || []).push(e);
    };
  }
  function Qe(e, r, i, o) {
    var a = {},
      s = e === Fe;
    function u(t) {
      var n;
      return (
        (a[t] = !0),
        C.each(e[t] || [], function (t, e) {
          e = e(r, i, o);
          return "string" != typeof e || s || a[e]
            ? s
              ? !(n = e)
              : void 0
            : (r.dataTypes.unshift(e), u(e), !1);
        }),
        n
      );
    }
    return u(r.dataTypes[0]) || (!a["*"] && u("*"));
  }
  function We(t, e) {
    var n,
      r,
      i = C.ajaxSettings.flatOptions || {};
    for (n in e) void 0 !== e[n] && ((i[n] ? t : (r = r || {}))[n] = e[n]);
    return (r && C.extend(!0, t, r), t);
  }
  ((Ue.href = Me.href),
    C.extend({
      active: 0,
      lastModified: {},
      etag: {},
      ajaxSettings: {
        url: Me.href,
        type: "GET",
        isLocal:
          /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(
            Me.protocol,
          ),
        global: !0,
        processData: !0,
        async: !0,
        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
        accepts: {
          "*": $e,
          text: "text/plain",
          html: "text/html",
          xml: "application/xml, text/xml",
          json: "application/json, text/javascript",
        },
        contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ },
        responseFields: {
          xml: "responseXML",
          text: "responseText",
          json: "responseJSON",
        },
        converters: {
          "* text": String,
          "text html": !0,
          "text json": JSON.parse,
          "text xml": C.parseXML,
        },
        flatOptions: { url: !0, context: !0 },
      },
      ajaxSetup: function (t, e) {
        return e ? We(We(t, C.ajaxSettings), e) : We(C.ajaxSettings, t);
      },
      ajaxPrefilter: Ve(Be),
      ajaxTransport: Ve(Fe),
      ajax: function (t, e) {
        "object" == typeof t && ((e = t), (t = void 0));
        var u,
          c,
          l,
          n,
          h,
          f,
          d,
          r,
          i,
          p = C.ajaxSetup({}, (e = e || {})),
          g = p.context || p,
          m = p.context && (g.nodeType || g.jquery) ? C(g) : C.event,
          v = C.Deferred(),
          y = C.Callbacks("once memory"),
          b = p.statusCode || {},
          o = {},
          a = {},
          s = "canceled",
          x = {
            readyState: 0,
            getResponseHeader: function (t) {
              var e;
              if (f) {
                if (!n)
                  for (n = {}; (e = Re.exec(l)); )
                    n[e[1].toLowerCase() + " "] = (
                      n[e[1].toLowerCase() + " "] || []
                    ).concat(e[2]);
                e = n[t.toLowerCase() + " "];
              }
              return null == e ? null : e.join(", ");
            },
            getAllResponseHeaders: function () {
              return f ? l : null;
            },
            setRequestHeader: function (t, e) {
              return (
                null == f &&
                  ((t = a[t.toLowerCase()] = a[t.toLowerCase()] || t),
                  (o[t] = e)),
                this
              );
            },
            overrideMimeType: function (t) {
              return (null == f && (p.mimeType = t), this);
            },
            statusCode: function (t) {
              if (t)
                if (f) x.always(t[x.status]);
                else for (var e in t) b[e] = [b[e], t[e]];
              return this;
            },
            abort: function (t) {
              t = t || s;
              return (u && u.abort(t), w(0, t), this);
            },
          };
        if (
          (v.promise(x),
          (p.url = ((t || p.url || Me.href) + "").replace(
            qe,
            Me.protocol + "//",
          )),
          (p.type = e.method || e.type || p.method || p.type),
          (p.dataTypes = (p.dataType || "*").toLowerCase().match(S) || [""]),
          null == p.crossDomain)
        ) {
          i = H.createElement("a");
          try {
            ((i.href = p.url),
              (i.href = i.href),
              (p.crossDomain =
                Ue.protocol + "//" + Ue.host != i.protocol + "//" + i.host));
          } catch (t) {
            p.crossDomain = !0;
          }
        }
        if (
          (p.data &&
            p.processData &&
            "string" != typeof p.data &&
            (p.data = C.param(p.data, p.traditional)),
          Qe(Be, p, e, x),
          !f)
        ) {
          for (r in ((d = C.event && p.global) &&
            0 == C.active++ &&
            C.event.trigger("ajaxStart"),
          (p.type = p.type.toUpperCase()),
          (p.hasContent = !Oe.test(p.type)),
          (c = p.url.replace(je, "")),
          p.hasContent
            ? p.data &&
              p.processData &&
              0 ===
                (p.contentType || "").indexOf(
                  "application/x-www-form-urlencoded",
                ) &&
              (p.data = p.data.replace(Ne, "+"))
            : ((i = p.url.slice(c.length)),
              p.data &&
                (p.processData || "string" == typeof p.data) &&
                ((c += (Ee.test(c) ? "&" : "?") + p.data), delete p.data),
              !1 === p.cache &&
                ((c = c.replace(ze, "$1")),
                (i = (Ee.test(c) ? "&" : "?") + "_=" + Ae.guid++ + i)),
              (p.url = c + i)),
          p.ifModified &&
            (C.lastModified[c] &&
              x.setRequestHeader("If-Modified-Since", C.lastModified[c]),
            C.etag[c]) &&
            x.setRequestHeader("If-None-Match", C.etag[c]),
          ((p.data && p.hasContent && !1 !== p.contentType) || e.contentType) &&
            x.setRequestHeader("Content-Type", p.contentType),
          x.setRequestHeader(
            "Accept",
            p.dataTypes[0] && p.accepts[p.dataTypes[0]]
              ? p.accepts[p.dataTypes[0]] +
                  ("*" !== p.dataTypes[0] ? ", " + $e + "; q=0.01" : "")
              : p.accepts["*"],
          ),
          p.headers))
            x.setRequestHeader(r, p.headers[r]);
          if (p.beforeSend && (!1 === p.beforeSend.call(g, x, p) || f))
            return x.abort();
          if (
            ((s = "abort"),
            y.add(p.complete),
            x.done(p.success),
            x.fail(p.error),
            (u = Qe(Fe, p, e, x)))
          ) {
            if (((x.readyState = 1), d && m.trigger("ajaxSend", [x, p]), f))
              return x;
            p.async &&
              0 < p.timeout &&
              (h = P.setTimeout(function () {
                x.abort("timeout");
              }, p.timeout));
            try {
              ((f = !1), u.send(o, w));
            } catch (t) {
              if (f) throw t;
              w(-1, t);
            }
          } else w(-1, "No Transport");
        }
        return x;
        function w(t, e, n, r) {
          var i,
            o,
            a,
            s = e;
          f ||
            ((f = !0),
            h && P.clearTimeout(h),
            (u = void 0),
            (l = r || ""),
            (x.readyState = 0 < t ? 4 : 0),
            (r = (200 <= t && t < 300) || 304 === t),
            n &&
              (a = (function (t, e, n) {
                for (
                  var r, i, o, a, s = t.contents, u = t.dataTypes;
                  "*" === u[0];
                )
                  (u.shift(),
                    void 0 === r &&
                      (r = t.mimeType || e.getResponseHeader("Content-Type")));
                if (r)
                  for (i in s)
                    if (s[i] && s[i].test(r)) {
                      u.unshift(i);
                      break;
                    }
                if (u[0] in n) o = u[0];
                else {
                  for (i in n) {
                    if (!u[0] || t.converters[i + " " + u[0]]) {
                      o = i;
                      break;
                    }
                    a = a || i;
                  }
                  o = o || a;
                }
                if (o) return (o !== u[0] && u.unshift(o), n[o]);
              })(p, x, n)),
            !r &&
              -1 < C.inArray("script", p.dataTypes) &&
              (p.converters["text script"] = function () {}),
            (a = (function (t, e, n, r) {
              var i,
                o,
                a,
                s,
                u,
                c = {},
                l = t.dataTypes.slice();
              if (l[1])
                for (a in t.converters) c[a.toLowerCase()] = t.converters[a];
              for (o = l.shift(); o; )
                if (
                  (t.responseFields[o] && (n[t.responseFields[o]] = e),
                  !u && r && t.dataFilter && (e = t.dataFilter(e, t.dataType)),
                  (u = o),
                  (o = l.shift()))
                )
                  if ("*" === o) o = u;
                  else if ("*" !== u && u !== o) {
                    if (!(a = c[u + " " + o] || c["* " + o]))
                      for (i in c)
                        if (
                          (s = i.split(" "))[1] === o &&
                          (a = c[u + " " + s[0]] || c["* " + s[0]])
                        ) {
                          !0 === a
                            ? (a = c[i])
                            : !0 !== c[i] && ((o = s[0]), l.unshift(s[1]));
                          break;
                        }
                    if (!0 !== a)
                      if (a && t.throws) e = a(e);
                      else
                        try {
                          e = a(e);
                        } catch (t) {
                          return {
                            state: "parsererror",
                            error: a
                              ? t
                              : "No conversion from " + u + " to " + o,
                          };
                        }
                  }
              return { state: "success", data: e };
            })(p, a, x, r)),
            r
              ? (p.ifModified &&
                  ((n = x.getResponseHeader("Last-Modified")) &&
                    (C.lastModified[c] = n),
                  (n = x.getResponseHeader("etag"))) &&
                  (C.etag[c] = n),
                204 === t || "HEAD" === p.type
                  ? (s = "nocontent")
                  : 304 === t
                    ? (s = "notmodified")
                    : ((s = a.state), (i = a.data), (r = !(o = a.error))))
              : ((o = s), (!t && s) || ((s = "error"), t < 0 && (t = 0))),
            (x.status = t),
            (x.statusText = (e || s) + ""),
            r ? v.resolveWith(g, [i, s, x]) : v.rejectWith(g, [x, s, o]),
            x.statusCode(b),
            (b = void 0),
            d && m.trigger(r ? "ajaxSuccess" : "ajaxError", [x, p, r ? i : o]),
            y.fireWith(g, [x, s]),
            d &&
              (m.trigger("ajaxComplete", [x, p]),
              --C.active || C.event.trigger("ajaxStop")));
        }
      },
      getJSON: function (t, e, n) {
        return C.get(t, e, n, "json");
      },
      getScript: function (t, e) {
        return C.get(t, void 0, e, "script");
      },
    }),
    C.each(["get", "post"], function (t, i) {
      C[i] = function (t, e, n, r) {
        return (
          y(e) && ((r = r || n), (n = e), (e = void 0)),
          C.ajax(
            C.extend(
              { url: t, type: i, dataType: r, data: e, success: n },
              C.isPlainObject(t) && t,
            ),
          )
        );
      };
    }),
    C.ajaxPrefilter(function (t) {
      for (var e in t.headers)
        "content-type" === e.toLowerCase() &&
          (t.contentType = t.headers[e] || "");
    }),
    (C._evalUrl = function (t, e, n) {
      return C.ajax({
        url: t,
        type: "GET",
        dataType: "script",
        cache: !0,
        async: !1,
        global: !1,
        converters: { "text script": function () {} },
        dataFilter: function (t) {
          C.globalEval(t, e, n);
        },
      });
    }),
    C.fn.extend({
      wrapAll: function (t) {
        return (
          this[0] &&
            (y(t) && (t = t.call(this[0])),
            (t = C(t, this[0].ownerDocument).eq(0).clone(!0)),
            this[0].parentNode && t.insertBefore(this[0]),
            t
              .map(function () {
                for (var t = this; t.firstElementChild; )
                  t = t.firstElementChild;
                return t;
              })
              .append(this)),
          this
        );
      },
      wrapInner: function (n) {
        return y(n)
          ? this.each(function (t) {
              C(this).wrapInner(n.call(this, t));
            })
          : this.each(function () {
              var t = C(this),
                e = t.contents();
              e.length ? e.wrapAll(n) : t.append(n);
            });
      },
      wrap: function (e) {
        var n = y(e);
        return this.each(function (t) {
          C(this).wrapAll(n ? e.call(this, t) : e);
        });
      },
      unwrap: function (t) {
        return (
          this.parent(t)
            .not("body")
            .each(function () {
              C(this).replaceWith(this.childNodes);
            }),
          this
        );
      },
    }),
    (C.expr.pseudos.hidden = function (t) {
      return !C.expr.pseudos.visible(t);
    }),
    (C.expr.pseudos.visible = function (t) {
      return !!(t.offsetWidth || t.offsetHeight || t.getClientRects().length);
    }),
    (C.ajaxSettings.xhr = function () {
      try {
        return new P.XMLHttpRequest();
      } catch (t) {}
    }));
  var Xe = { 0: 200, 1223: 204 },
    Ye = C.ajaxSettings.xhr();
  ((m.cors = !!Ye && "withCredentials" in Ye),
    (m.ajax = Ye = !!Ye),
    C.ajaxTransport(function (i) {
      var o, a;
      if (m.cors || (Ye && !i.crossDomain))
        return {
          send: function (t, e) {
            var n,
              r = i.xhr();
            if (
              (r.open(i.type, i.url, i.async, i.username, i.password),
              i.xhrFields)
            )
              for (n in i.xhrFields) r[n] = i.xhrFields[n];
            for (n in (i.mimeType &&
              r.overrideMimeType &&
              r.overrideMimeType(i.mimeType),
            i.crossDomain ||
              t["X-Requested-With"] ||
              (t["X-Requested-With"] = "XMLHttpRequest"),
            t))
              r.setRequestHeader(n, t[n]);
            ((o = function (t) {
              return function () {
                o &&
                  ((o =
                    a =
                    r.onload =
                    r.onerror =
                    r.onabort =
                    r.ontimeout =
                    r.onreadystatechange =
                      null),
                  "abort" === t
                    ? r.abort()
                    : "error" === t
                      ? "number" != typeof r.status
                        ? e(0, "error")
                        : e(r.status, r.statusText)
                      : e(
                          Xe[r.status] || r.status,
                          r.statusText,
                          "text" !== (r.responseType || "text") ||
                            "string" != typeof r.responseText
                            ? { binary: r.response }
                            : { text: r.responseText },
                          r.getAllResponseHeaders(),
                        ));
              };
            }),
              (r.onload = o()),
              (a = r.onerror = r.ontimeout = o("error")),
              void 0 !== r.onabort
                ? (r.onabort = a)
                : (r.onreadystatechange = function () {
                    4 === r.readyState &&
                      P.setTimeout(function () {
                        o && a();
                      });
                  }),
              (o = o("abort")));
            try {
              r.send((i.hasContent && i.data) || null);
            } catch (t) {
              if (o) throw t;
            }
          },
          abort: function () {
            o && o();
          },
        };
    }),
    C.ajaxPrefilter(function (t) {
      t.crossDomain && (t.contents.script = !1);
    }),
    C.ajaxSetup({
      accepts: {
        script:
          "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript",
      },
      contents: { script: /\b(?:java|ecma)script\b/ },
      converters: {
        "text script": function (t) {
          return (C.globalEval(t), t);
        },
      },
    }),
    C.ajaxPrefilter("script", function (t) {
      (void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = "GET"));
    }),
    C.ajaxTransport("script", function (n) {
      var r, i;
      if (n.crossDomain || n.scriptAttrs)
        return {
          send: function (t, e) {
            ((r = C("<script>")
              .attr(n.scriptAttrs || {})
              .prop({ charset: n.scriptCharset, src: n.url })
              .on(
                "load error",
                (i = function (t) {
                  (r.remove(),
                    (i = null),
                    t && e("error" === t.type ? 404 : 200, t.type));
                }),
              )),
              H.head.appendChild(r[0]));
          },
          abort: function () {
            i && i();
          },
        };
    }));
  var Ge = [],
    Je = /(=)\?(?=&|$)|\?\?/,
    Ze =
      (C.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function () {
          var t = Ge.pop() || C.expando + "_" + Ae.guid++;
          return ((this[t] = !0), t);
        },
      }),
      C.ajaxPrefilter("json jsonp", function (t, e, n) {
        var r,
          i,
          o,
          a =
            !1 !== t.jsonp &&
            (Je.test(t.url)
              ? "url"
              : "string" == typeof t.data &&
                0 ===
                  (t.contentType || "").indexOf(
                    "application/x-www-form-urlencoded",
                  ) &&
                Je.test(t.data) &&
                "data");
        if (a || "jsonp" === t.dataTypes[0])
          return (
            (r = t.jsonpCallback =
              y(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback),
            a
              ? (t[a] = t[a].replace(Je, "$1" + r))
              : !1 !== t.jsonp &&
                (t.url += (Ee.test(t.url) ? "&" : "?") + t.jsonp + "=" + r),
            (t.converters["script json"] = function () {
              return (o || C.error(r + " was not called"), o[0]);
            }),
            (t.dataTypes[0] = "json"),
            (i = P[r]),
            (P[r] = function () {
              o = arguments;
            }),
            n.always(function () {
              (void 0 === i ? C(P).removeProp(r) : (P[r] = i),
                t[r] && ((t.jsonpCallback = e.jsonpCallback), Ge.push(r)),
                o && y(i) && i(o[0]),
                (o = i = void 0));
            }),
            "script"
          );
      }),
      (m.createHTMLDocument =
        (((t = H.implementation.createHTMLDocument("").body).innerHTML =
          "<form></form><form></form>"),
        2 === t.childNodes.length)),
      (C.parseHTML = function (t, e, n) {
        return "string" != typeof t
          ? []
          : ("boolean" == typeof e && ((n = e), (e = !1)),
            e ||
              (m.createHTMLDocument
                ? (((r = (e =
                    H.implementation.createHTMLDocument("")).createElement(
                    "base",
                  )).href = H.location.href),
                  e.head.appendChild(r))
                : (e = H)),
            (r = !n && []),
            (n = J.exec(t))
              ? [e.createElement(n[1])]
              : ((n = kt([t], e, r)),
                r && r.length && C(r).remove(),
                C.merge([], n.childNodes)));
        var r;
      }),
      (C.fn.load = function (t, e, n) {
        var r,
          i,
          o,
          a = this,
          s = t.indexOf(" ");
        return (
          -1 < s && ((r = _(t.slice(s))), (t = t.slice(0, s))),
          y(e)
            ? ((n = e), (e = void 0))
            : e && "object" == typeof e && (i = "POST"),
          0 < a.length &&
            C.ajax({ url: t, type: i || "GET", dataType: "html", data: e })
              .done(function (t) {
                ((o = arguments),
                  a.html(r ? C("<div>").append(C.parseHTML(t)).find(r) : t));
              })
              .always(
                n &&
                  function (t, e) {
                    a.each(function () {
                      n.apply(this, o || [t.responseText, e, t]);
                    });
                  },
              ),
          this
        );
      }),
      (C.expr.pseudos.animated = function (e) {
        return C.grep(C.timers, function (t) {
          return e === t.elem;
        }).length;
      }),
      (C.offset = {
        setOffset: function (t, e, n) {
          var r,
            i,
            o,
            a,
            s = C.css(t, "position"),
            u = C(t),
            c = {};
          ("static" === s && (t.style.position = "relative"),
            (o = u.offset()),
            (r = C.css(t, "top")),
            (a = C.css(t, "left")),
            (s =
              ("absolute" === s || "fixed" === s) &&
              -1 < (r + a).indexOf("auto")
                ? ((i = (s = u.position()).top), s.left)
                : ((i = parseFloat(r) || 0), parseFloat(a) || 0)),
            null != (e = y(e) ? e.call(t, n, C.extend({}, o)) : e).top &&
              (c.top = e.top - o.top + i),
            null != e.left && (c.left = e.left - o.left + s),
            "using" in e
              ? e.using.call(t, c)
              : ("number" == typeof c.top && (c.top += "px"),
                "number" == typeof c.left && (c.left += "px"),
                u.css(c)));
        },
      }),
      C.fn.extend({
        offset: function (e) {
          var t, n;
          return arguments.length
            ? void 0 === e
              ? this
              : this.each(function (t) {
                  C.offset.setOffset(this, e, t);
                })
            : (n = this[0])
              ? n.getClientRects().length
                ? ((t = n.getBoundingClientRect()),
                  (n = n.ownerDocument.defaultView),
                  { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset })
                : { top: 0, left: 0 }
              : void 0;
        },
        position: function () {
          if (this[0]) {
            var t,
              e,
              n,
              r = this[0],
              i = { top: 0, left: 0 };
            if ("fixed" === C.css(r, "position")) e = r.getBoundingClientRect();
            else {
              for (
                e = this.offset(),
                  n = r.ownerDocument,
                  t = r.offsetParent || n.documentElement;
                t &&
                (t === n.body || t === n.documentElement) &&
                "static" === C.css(t, "position");
              )
                t = t.parentNode;
              t &&
                t !== r &&
                1 === t.nodeType &&
                (((i = C(t).offset()).top += C.css(t, "borderTopWidth", !0)),
                (i.left += C.css(t, "borderLeftWidth", !0)));
            }
            return {
              top: e.top - i.top - C.css(r, "marginTop", !0),
              left: e.left - i.left - C.css(r, "marginLeft", !0),
            };
          }
        },
        offsetParent: function () {
          return this.map(function () {
            for (
              var t = this.offsetParent;
              t && "static" === C.css(t, "position");
            )
              t = t.offsetParent;
            return t || w;
          });
        },
      }),
      C.each(
        { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" },
        function (e, i) {
          var o = "pageYOffset" === i;
          C.fn[e] = function (t) {
            return h(
              this,
              function (t, e, n) {
                var r;
                if (
                  (g(t) ? (r = t) : 9 === t.nodeType && (r = t.defaultView),
                  void 0 === n)
                )
                  return r ? r[i] : t[e];
                r
                  ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset)
                  : (t[e] = n);
              },
              e,
              t,
              arguments.length,
            );
          };
        },
      ),
      C.each(["top", "left"], function (t, n) {
        C.cssHooks[n] = Kt(m.pixelPosition, function (t, e) {
          if (e)
            return ((e = Zt(t, n)), Gt.test(e) ? C(t).position()[n] + "px" : e);
        });
      }),
      C.each({ Height: "height", Width: "width" }, function (a, s) {
        C.each(
          { padding: "inner" + a, content: s, "": "outer" + a },
          function (r, o) {
            C.fn[o] = function (t, e) {
              var n = arguments.length && (r || "boolean" != typeof t),
                i = r || (!0 === t || !0 === e ? "margin" : "border");
              return h(
                this,
                function (t, e, n) {
                  var r;
                  return g(t)
                    ? 0 === o.indexOf("outer")
                      ? t["inner" + a]
                      : t.document.documentElement["client" + a]
                    : 9 === t.nodeType
                      ? ((r = t.documentElement),
                        Math.max(
                          t.body["scroll" + a],
                          r["scroll" + a],
                          t.body["offset" + a],
                          r["offset" + a],
                          r["client" + a],
                        ))
                      : void 0 === n
                        ? C.css(t, e, i)
                        : C.style(t, e, n, i);
                },
                s,
                n ? t : void 0,
                n,
              );
            };
          },
        );
      }),
      C.each(
        [
          "ajaxStart",
          "ajaxStop",
          "ajaxComplete",
          "ajaxError",
          "ajaxSuccess",
          "ajaxSend",
        ],
        function (t, e) {
          C.fn[e] = function (t) {
            return this.on(e, t);
          };
        },
      ),
      C.fn.extend({
        bind: function (t, e, n) {
          return this.on(t, null, e, n);
        },
        unbind: function (t, e) {
          return this.off(t, null, e);
        },
        delegate: function (t, e, n, r) {
          return this.on(e, t, n, r);
        },
        undelegate: function (t, e, n) {
          return 1 === arguments.length
            ? this.off(t, "**")
            : this.off(e, t || "**", n);
        },
        hover: function (t, e) {
          return this.mouseenter(t).mouseleave(e || t);
        },
      }),
      C.each(
        "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(
          " ",
        ),
        function (t, n) {
          C.fn[n] = function (t, e) {
            return 0 < arguments.length
              ? this.on(n, null, t, e)
              : this.trigger(n);
          };
        },
      ),
      /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g),
    Ke =
      ((C.proxy = function (t, e) {
        var n, r;
        if (("string" == typeof e && ((r = t[e]), (e = t), (t = r)), y(t)))
          return (
            (n = s.call(arguments, 2)),
            ((r = function () {
              return t.apply(e || this, n.concat(s.call(arguments)));
            }).guid = t.guid =
              t.guid || C.guid++),
            r
          );
      }),
      (C.holdReady = function (t) {
        t ? C.readyWait++ : C.ready(!0);
      }),
      (C.isArray = Array.isArray),
      (C.parseJSON = JSON.parse),
      (C.nodeName = u),
      (C.isFunction = y),
      (C.isWindow = g),
      (C.camelCase = b),
      (C.type = p),
      (C.now = Date.now),
      (C.isNumeric = function (t) {
        var e = C.type(t);
        return ("number" === e || "string" === e) && !isNaN(t - parseFloat(t));
      }),
      (C.trim = function (t) {
        return null == t ? "" : (t + "").replace(Ze, "");
      }),
      "function" == typeof define &&
        define.amd &&
        define("jquery", [], function () {
          return C;
        }),
      P.jQuery),
    tn = P.$;
  return (
    (C.noConflict = function (t) {
      return (
        P.$ === C && (P.$ = tn),
        t && P.jQuery === C && (P.jQuery = Ke),
        C
      );
    }),
    void 0 === j && (P.jQuery = P.$ = C),
    C
  );
});
{
  var H5P = (window.H5P = window.H5P || {}),
    H5P,
    H5P,
    H5P,
    H5P,
    H5P,
    H5P,
    H5P,
    H5P;
  ((H5P.jQuery = jQuery.noConflict(!0)),
    (H5P.jQuery.fn.__originalLoad = H5P.jQuery.load),
    (H5P.jQuery.fn.load = function (t, e, n) {
      var r;
      return "function" == typeof t
        ? (console.warn(
            "You are using a deprecated H5P library. Please upgrade!",
          ),
          (r = Array.prototype.slice.call(arguments)).unshift("load"),
          H5P.jQuery.fn.on.apply(this, r))
        : H5P.jQuery.fn.__originalLoad.apply(this, arguments);
    }),
    ((H5P = window.H5P = window.H5P || {}).isFramed =
      window.self !== window.parent),
    (H5P.$window = H5P.jQuery(window)),
    (H5P.instances = []),
    document.documentElement.requestFullscreen
      ? (H5P.fullScreenBrowserPrefix = "")
      : document.documentElement.webkitRequestFullScreen
        ? ((H5P.safariBrowser =
            navigator.userAgent.match(/version\/([.\d]+)/i)),
          (H5P.safariBrowser =
            null === H5P.safariBrowser ? 0 : parseInt(H5P.safariBrowser[1])),
          (0 === H5P.safariBrowser || 6 < H5P.safariBrowser) &&
            (H5P.fullScreenBrowserPrefix = "webkit"))
        : document.documentElement.mozRequestFullScreen
          ? (H5P.fullScreenBrowserPrefix = "moz")
          : document.documentElement.msRequestFullscreen &&
            (H5P.fullScreenBrowserPrefix = "ms"),
    (H5P.opened = {}),
    (H5P.init = function (t) {
      (void 0 === H5P.$body && (H5P.$body = H5P.jQuery(document.body)),
        void 0 === H5P.fullscreenSupported &&
          (H5P.fullscreenSupported = !(
            H5PIntegration.fullscreenDisabled ||
            H5P.fullscreenDisabled ||
            (H5P.isFramed &&
              !1 !== H5P.externalEmbed &&
              !(
                document.fullscreenEnabled ||
                document.webkitFullscreenEnabled ||
                document.mozFullScreenEnabled
              ))
          )),
        void 0 === H5P.canHasFullScreen &&
          (H5P.canHasFullScreen = H5P.fullscreenSupported),
        H5P.jQuery(".h5p-content:not(.h5p-initialized)", t).each(function () {
          var e = H5P.jQuery(this).addClass("h5p-initialized"),
            n = H5P.jQuery('<div class="h5p-container"></div>').appendTo(e),
            i = e.data("content-id"),
            o = H5PIntegration.contents["cid-" + i];
          if (void 0 === o)
            return H5P.error(
              "No data for content id " + i + ". Perhaps the library is gone?",
            );
          var t,
            r,
            a,
            s,
            u,
            c,
            l,
            h = {
              library: o.library,
              params: JSON.parse(o.jsonContent),
              metadata: o.metadata,
            },
            f =
              (H5P.getUserData(i, "state", function (t, e) {
                var r;
                e
                  ? (h.userDatas = { state: e })
                  : null === e &&
                    H5PIntegration.saveFreq &&
                    (delete o.contentUserData,
                    (r = new H5P.Dialog(
                      "content-user-data-reset",
                      "Data Reset",
                      "<p>" +
                        H5P.t("contentChanged") +
                        "</p><p>" +
                        H5P.t("startingOver") +
                        '</p><div class="h5p-dialog-ok-button" tabIndex="0" role="button">OK</div>',
                      n,
                    )),
                    H5P.jQuery(r)
                      .on("dialog-opened", function (t, e) {
                        function n(t) {
                          ("click" !== t.type && 32 !== t.which) ||
                            (r.close(), H5P.deleteUserData(i, "state", 0));
                        }
                        (e.find(".h5p-dialog-ok-button").click(n).keypress(n),
                          H5P.trigger(f, "resize"));
                      })
                      .on("dialog-closed", function () {
                        H5P.trigger(f, "resize");
                      }),
                    r.open());
              }),
              H5P.newRunnable(h, i, n, !0, { standalone: !0 })),
            d =
              ((H5P.offlineRequestQueue = new H5P.OfflineRequestQueue({
                instance: f,
              })),
              1 == o.fullScreen &&
                H5P.fullscreenSupported &&
                H5P.jQuery(
                  '<div class="h5p-content-controls"><div role="button" tabindex="0" class="h5p-enable-fullscreen" aria-label="' +
                    H5P.t("fullscreen") +
                    '" title="' +
                    H5P.t("fullscreen") +
                    '"></div></div>',
                )
                  .prependTo(n)
                  .children()
                  .click(function () {
                    H5P.fullScreen(n, f);
                  })
                  .keydown(function (t) {
                    if (32 === t.which || 13 === t.which)
                      return (H5P.fullScreen(n, f), !1);
                  }),
              o.displayOptions),
            p = !1;
          (d.frame &&
            (d.copyright &&
              !(t = H5P.getCopyrights(f, h.params, i, h.metadata)) &&
              (d.copyright = !1),
            (d = new H5P.ActionBar(d)),
            (r = d.getDOMElement()),
            d.on("reuse", function () {
              (H5P.openReuseDialog(r, o, h, f, i),
                f.triggerXAPI("accessed-reuse"));
            }),
            d.on("copyrights", function () {
              (new H5P.Dialog(
                "copyrights",
                H5P.t("copyrightInformation"),
                t,
                n,
              ).open(!0),
                f.triggerXAPI("accessed-copyright"));
            }),
            d.on("embed", function () {
              (H5P.openEmbedDialog(
                r,
                o.embedCode,
                o.resizeCode,
                { width: e.width(), height: e.height() },
                f,
              ),
                f.triggerXAPI("accessed-embed"));
            }),
            d.hasActions()) &&
            ((p = !0), r.insertAfter(n)),
            e.addClass(p ? "h5p-frame" : "h5p-no-frame"),
            (H5P.opened[i] = new Date()),
            H5P.on(f, "finish", function (t) {
              void 0 !== t.data &&
                H5P.setFinished(i, t.data.score, t.data.maxScore, t.data.time);
            }),
            H5P.on(f, "xAPI", H5P.xAPICompletedListener),
            !1 !== H5PIntegration.saveFreq &&
              (f.getCurrentState instanceof Function ||
                "function" == typeof f.getCurrentState) &&
              ((s = function () {
                var t = f.getCurrentState();
                (void 0 !== t &&
                  H5P.setUserData(i, "state", t, { deleteOnChange: !0 }),
                  H5PIntegration.saveFreq &&
                    (a = setTimeout(s, 1e3 * H5PIntegration.saveFreq)));
              }),
              H5PIntegration.saveFreq &&
                (a = setTimeout(s, 1e3 * H5PIntegration.saveFreq)),
              H5P.on(f, "xAPI", function (t) {
                t = t.getVerb();
                ("completed" !== t && "progressed" !== t) ||
                  (clearTimeout(a), (a = setTimeout(s, 3e3)));
              })),
            H5P.isFramed &&
              (!1 === H5P.externalEmbed
                ? ((c = window.frameElement),
                  H5P.on(f, "resize", function () {
                    (clearTimeout(u),
                      (u = setTimeout(function () {
                        var t;
                        window.parent.H5P.isFullscreen ||
                          ((t = c.parentElement.style.height),
                          (c.parentElement.style.height =
                            c.parentElement.clientHeight + "px"),
                          c.getBoundingClientRect(),
                          (c.style.height = "1px"),
                          (c.style.height =
                            c.contentDocument.body.scrollHeight + "px"),
                          (c.parentElement.style.height = t));
                      }, 1)));
                  }))
                : H5P.communicator &&
                  ((l = !1),
                  H5P.communicator.on("ready", function () {
                    H5P.communicator.send("hello");
                  }),
                  H5P.communicator.on("hello", function () {
                    ((l = !0),
                      (document.body.style.height = "auto"),
                      (document.body.style.overflow = "hidden"),
                      H5P.trigger(f, "resize"));
                  }),
                  H5P.communicator.on("resizePrepared", function () {
                    H5P.communicator.send("resize", {
                      scrollHeight: document.body.scrollHeight,
                    });
                  }),
                  H5P.communicator.on("resize", function () {
                    H5P.trigger(f, "resize");
                  }),
                  H5P.on(f, "resize", function () {
                    H5P.isFullscreen ||
                      (clearTimeout(u),
                      (u = setTimeout(function () {
                        l
                          ? H5P.communicator.send("prepareResize", {
                              scrollHeight: document.body.scrollHeight,
                              clientHeight: document.body.clientHeight,
                            })
                          : H5P.communicator.send("hello");
                      }, 0)));
                  }))),
            (H5P.isFramed && !1 !== H5P.externalEmbed) ||
              H5P.jQuery(window.parent).resize(function () {
                H5P.trigger(f, "resize");
              }),
            H5P.instances.push(f),
            H5P.trigger(f, "resize"),
            e.addClass("using-mouse"),
            e.on("mousedown keydown keyup", function (t) {
              e.toggleClass("using-mouse", "mousedown" === t.type);
            }),
            H5P.externalDispatcher &&
              H5P.externalDispatcher.trigger("initialized"));
        }),
        H5P.jQuery("iframe.h5p-iframe:not(.h5p-initialized)", t).each(
          function () {
            const t = this;
            var e = H5P.jQuery(t);
            const n = e.data("content-id");
            var r = H5PIntegration.contents["cid-" + n];
            const i =
              r && r.metadata && r.metadata.defaultLanguage
                ? r.metadata.defaultLanguage
                : "en";
            function o() {
              (t.contentDocument.open(),
                t.contentDocument.write(
                  '<!doctype html><html class="h5p-iframe" lang="' +
                    i +
                    '"><head>' +
                    H5P.getHeadTags(n) +
                    '</head><body><div class="h5p-content" data-content-id="' +
                    n +
                    '"/></body></html>',
                ),
                t.contentDocument.close());
            }
            (e.addClass("h5p-initialized"),
              null === t.contentDocument
                ? (e.on("load", o), e.attr("src", "about:blank"))
                : o());
          },
        ));
    }),
    (H5P.getHeadTags = function (t) {
      function e(t) {
        for (var e = "", n = 0; n < t.length; n++)
          e += '<link rel="stylesheet" href="' + t[n] + '">';
        return e;
      }
      function n(t) {
        for (var e = "", n = 0; n < t.length; n++)
          e += '<script src="' + t[n] + '"><\/script>';
        return e;
      }
      return (
        '<base target="_parent">' +
        e(H5PIntegration.core.styles) +
        e(H5PIntegration.contents["cid-" + t].styles) +
        n(H5PIntegration.core.scripts) +
        n(H5PIntegration.contents["cid-" + t].scripts) +
        "<script>H5PIntegration = window.parent.H5PIntegration; var H5P = H5P || {}; H5P.externalEmbed = false;<\/script>"
      );
    }),
    (H5P.communicator =
      window.postMessage && window.addEventListener
        ? new (function () {
            var n = {};
            (window.addEventListener(
              "message",
              function (t) {
                window.parent === t.source &&
                  "h5p" === t.data.context &&
                  void 0 !== n[t.data.action] &&
                  n[t.data.action](t.data);
              },
              !1,
            ),
              (this.on = function (t, e) {
                n[t] = e;
              }),
              (this.send = function (t, e) {
                (((e = void 0 === e ? {} : e).context = "h5p"),
                  (e.action = t),
                  window.parent.postMessage(e, "*"));
              }));
          })()
        : void 0),
    (H5P.semiFullScreen = function (t, e, n, r) {
      H5P.fullScreen(t, e, n, r, !0);
    }),
    (H5P.fullScreen = function (t, e, n, r, i) {
      if (void 0 === H5P.exitFullScreen)
        if (H5P.isFramed && !1 === H5P.externalEmbed)
          (window.parent.H5P.fullScreen(t, e, n, H5P.$body.get(), i),
            (H5P.isFullscreen = !0),
            (H5P.exitFullScreen = function () {
              window.parent.H5P.exitFullScreen();
            }),
            H5P.on(e, "exitFullScreen", function () {
              ((H5P.isFullscreen = !1), (H5P.exitFullScreen = void 0));
            }));
        else {
          function o(t) {
            (c.addClass(t), void 0 !== l && l.css("height", ""));
          }
          function a() {
            (H5P.trigger(e, "resize"),
              H5P.trigger(e, "focus"),
              H5P.trigger(e, "enterFullScreen"));
          }
          function s(t) {
            ((H5P.isFullscreen = !1),
              c.removeClass(t),
              H5P.trigger(e, "resize"),
              H5P.trigger(e, "focus"),
              (H5P.exitFullScreen = void 0) !== n && n(),
              H5P.trigger(e, "exitFullScreen"));
          }
          var u,
            c,
            l,
            h = t;
          (void 0 === r
            ? (u = H5P.$body)
            : ((c = (u = H5P.jQuery(r)).add(t.get())),
              (r = "#h5p-iframe-" + t.parent().data("content-id")),
              (t = (l = H5P.jQuery(r)).parent())),
            (c = t.add(H5P.$body).add(c)));
          if (
            ((H5P.isFullscreen = !0),
            void 0 === H5P.fullScreenBrowserPrefix || !0 === i)
          ) {
            if (!H5P.isFramed) {
              o("h5p-semi-fullscreen");
              var f,
                d,
                p = H5P.jQuery(
                  '<div role="button" tabindex="0" class="h5p-disable-fullscreen" title="' +
                    H5P.t("disableFullscreen") +
                    '" aria-label="' +
                    H5P.t("disableFullscreen") +
                    '"></div>',
                ).appendTo(h.find(".h5p-content-controls")),
                g = (H5P.exitFullScreen = function () {
                  (f ? (d.content = f) : v.removeChild(d),
                    p.remove(),
                    u.unbind("keyup", m),
                    s("h5p-semi-fullscreen"));
                }),
                m = function (t) {
                  27 === t.keyCode && g();
                };
              (p.click(g), u.keyup(m));
              for (
                var v, y = document.getElementsByTagName("meta"), b = 0;
                b < y.length;
                b++
              )
                if ("viewport" === y[b].name) {
                  ((d = y[b]), (f = d.content));
                  break;
                }
              (f || ((d = document.createElement("meta")).name = "viewport"),
                (d.content =
                  "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"),
                f ||
                  (v = document.getElementsByTagName("head")[0]).appendChild(d),
                a());
            }
          } else {
            o("h5p-fullscreen");
            var x,
              w =
                "ms" === H5P.fullScreenBrowserPrefix
                  ? "MSFullscreenChange"
                  : H5P.fullScreenBrowserPrefix + "fullscreenchange";
            (document.addEventListener(w, function t() {
              void 0 === x
                ? ((x = !1), a())
                : (s("h5p-fullscreen"), document.removeEventListener(w, t, !1));
            }),
              "" === H5P.fullScreenBrowserPrefix
                ? t[0].requestFullscreen()
                : ((r =
                    "ms" === H5P.fullScreenBrowserPrefix
                      ? "msRequestFullscreen"
                      : H5P.fullScreenBrowserPrefix + "RequestFullScreen"),
                  (i =
                    "webkit" === H5P.fullScreenBrowserPrefix &&
                    0 === H5P.safariBrowser
                      ? Element.ALLOW_KEYBOARD_INPUT
                      : void 0),
                  t[0][r](i)),
              (H5P.exitFullScreen = function () {
                "" === H5P.fullScreenBrowserPrefix
                  ? document.exitFullscreen()
                  : "moz" === H5P.fullScreenBrowserPrefix
                    ? document.mozCancelFullScreen()
                    : document[
                        H5P.fullScreenBrowserPrefix + "ExitFullscreen"
                      ]();
              }));
          }
        }
    }),
    !(function () {
      ((H5P.addQueryParameter = function (t, e) {
        let n, r;
        t = t.split("?");
        return (
          (n = t[1]
            ? ((r = t[1].split("#")), t[0] + "?" + r[0] + "&")
            : (r = t[0].split("#"))[0] + "?"),
          (n += e),
          r[1] && (n += "#" + r[1]),
          n
        );
      }),
        (H5P.setSource = function (t, e, n) {
          let r = e.path;
          e = H5P.getCrossOrigin(e);
          (e
            ? ((t.crossOrigin = e),
              H5PIntegration.crossoriginCacheBuster &&
                (r = H5P.addQueryParameter(
                  r,
                  H5PIntegration.crossoriginCacheBuster,
                )))
            : t.removeAttribute("crossorigin"),
            (t.src = H5P.getPath(r, n)));
        }));
      function i(t) {
        return t.match(/^[a-z0-9]+:\/\//i);
      }
      ((H5P.getCrossOrigin = function (t) {
        return "object" != typeof t
          ? H5PIntegration.crossorigin &&
            H5PIntegration.crossoriginRegex &&
            t.match(H5PIntegration.crossoriginRegex)
            ? H5PIntegration.crossorigin
            : null
          : H5PIntegration.crossorigin && !i(t.path)
            ? H5PIntegration.crossorigin
            : void 0;
      }),
        (H5P.getPath = function (t, e) {
          if (i(t)) return t;
          var n,
            r = "#tmp" === t.substr(-4, 4);
          if (void 0 === e || r) {
            if (void 0 === window.H5PEditor) return;
            n = H5PEditor.filesPath;
          } else
            n =
              (n =
                void 0 !== H5PIntegration.contents &&
                H5PIntegration.contents["cid-" + e]
                  ? H5PIntegration.contents["cid-" + e].contentUrl
                  : n) || H5PIntegration.url + "/content/" + e;
          return (
            (n = i(n)
              ? n
              : window.location.protocol + "//" + window.location.host + n) +
            "/" +
            t
          );
        }));
    })(),
    (H5P.getContentPath = function (t) {
      return H5PIntegration.url + "/content/" + t;
    }),
    (H5P.classFromName = function (t) {
      t = t.split(".");
      return this[t[t.length - 1]];
    }),
    (H5P.newRunnable = function (e, t, n, r, i) {
      var o, a;
      try {
        ((a = (s = e.library.split(" ", 2))[0]), (o = s[1].split(".", 2)));
      } catch (t) {
        return H5P.error("Invalid library string: " + e.library);
      }
      if (e.params instanceof Object != !0 || e.params instanceof Array == !0)
        return (
          H5P.error("Invalid library params for: " + e.library),
          H5P.error(e.params)
        );
      try {
        for (var s = s[0].split("."), u = window, c = 0; c < s.length; c++)
          u = u[s[c]];
        if ("function" != typeof u) throw null;
      } catch (t) {
        return H5P.error("Unable to find constructor for: " + e.library);
      }
      (void 0 === i && (i = {}),
        e.subContentId && (i.subContentId = e.subContentId),
        e.userDatas &&
          e.userDatas.state &&
          H5PIntegration.saveFreq &&
          (i.previousState = e.userDatas.state),
        e.metadata && (i.metadata = e.metadata));
      var l,
        h = i.standalone || !1;
      return (
        (u.prototype = H5P.jQuery.extend(
          {},
          H5P.ContentType(h).prototype,
          u.prototype,
        )),
        void 0 ===
          (l =
            -1 <
            H5P.jQuery.inArray(e.library, [
              "H5P.CoursePresentation 1.0",
              "H5P.CoursePresentation 1.1",
              "H5P.CoursePresentation 1.2",
              "H5P.CoursePresentation 1.3",
            ])
              ? new u(e.params, t)
              : new u(e.params, t, i)).$ && (l.$ = H5P.jQuery(l)),
        void 0 === l.contentId && (l.contentId = t),
        void 0 === l.subContentId &&
          e.subContentId &&
          (l.subContentId = e.subContentId),
        void 0 === l.parent && i && i.parent && (l.parent = i.parent),
        void 0 === l.libraryInfo &&
          (l.libraryInfo = {
            versionedName: e.library,
            versionedNameNoSpaces: a + "-" + o[0] + "." + o[1],
            machineName: a,
            majorVersion: o[0],
            minorVersion: o[1],
          }),
        void 0 !== n &&
          (n.toggleClass("h5p-standalone", h),
          l.attach(n),
          H5P.trigger(
            l,
            "domChanged",
            { $target: n, library: a, key: "newLibrary" },
            { bubbles: !0, external: !0 },
          ),
          (void 0 !== r && r) || H5P.trigger(l, "resize")),
        l
      );
    }),
    (H5P.error = function (t) {
      void 0 !== window.console &&
        void 0 !== console.error &&
        console.error(t.stack || t);
    }),
    (H5P.t = function (t, e, n) {
      if ((void 0 === n && (n = "H5P"), void 0 === H5PIntegration.l10n[n]))
        return '[Missing translation namespace "' + n + '"]';
      if (void 0 === H5PIntegration.l10n[n][t])
        return '[Missing translation "' + t + '" in "' + n + '"]';
      var r = H5PIntegration.l10n[n][t];
      if (void 0 !== e) for (var i in e) r = r.replace(i, e[i]);
      return r;
    }),
    (H5P.Dialog = function (t, e, n, r, i) {
      var o = this,
        a =
          ((this.activeElement = document.activeElement),
          H5P.jQuery(
            '<div class="h5p-popup-dialog h5p-' +
              t +
              '-dialog" aria-labelledby="' +
              t +
              '-dialog-header" aria-modal="true" role="dialog" tabindex="-1">                              <div class="h5p-inner">                                <h2 id="' +
              t +
              '-dialog-header">' +
              e +
              '</h2>                                <div class="h5p-scroll-content">' +
              n +
              '</div>                                <div class="h5p-close" role="button" tabindex="0" aria-label="' +
              H5P.t("close") +
              '" title="' +
              H5P.t("close") +
              '"></div>                              </div>                            </div>',
          )
            .insertAfter(r)
            .click(function (t) {
              (t && t.originalEvent && t.originalEvent.preventClosing) ||
                o.close();
            })
            .children(".h5p-inner")
            .click(function (t) {
              t.originalEvent.preventClosing = !0;
            })
            .find(".h5p-close")
            .click(function () {
              o.close();
            })
            .keypress(function (t) {
              if (13 === t.which || 32 === t.which) return (o.close(), !1);
            })
            .end()
            .find("a")
            .click(function (t) {
              t.stopPropagation();
            })
            .end()
            .end());
      ((o.open = function (t) {
        (t && a.css("height", "100%"),
          setTimeout(function () {
            (a.addClass("h5p-open"),
              H5P.jQuery(o).trigger("dialog-opened", [a]),
              a.focus());
          }, 1));
      }),
        (o.close = function () {
          (a.removeClass("h5p-open"),
            setTimeout(function () {
              (a.remove(),
                H5P.jQuery(o).trigger("dialog-closed", [a]),
                r.attr("tabindex", "-1"),
                (i || o.activeElement || r).focus());
            }, 200));
        }));
    }),
    (H5P.getCopyrights = function (t, e, n, r) {
      var i;
      if (void 0 !== t.getCopyrights)
        try {
          i = t.getCopyrights();
        } catch (t) {}
      void 0 === i &&
        ((i = new H5P.ContentCopyrights()), H5P.findCopyrights(i, e, n));
      e = H5P.buildMetadataCopyrights(r, t.libraryInfo.machineName);
      return (
        void 0 !== e && i.addMediaInFront(e),
        (i = void 0 !== i ? i.toString() : i)
      );
    }),
    (H5P.findCopyrights = function (a, t, e, n) {
      var r, i, o, s;
      for (i in (n && ((n.params = t), u(n, n.machineName, e)), t))
        t.hasOwnProperty(i) &&
          ("overrideSettings" === i
            ? (console.warn(
                "The semantics field 'overrideSettings' is DEPRECATED and should not be used.",
              ),
              console.warn(t))
            : ((o = t[i]) && o.library && "string" == typeof o.library
                ? (r = o.library.split(" ")[0])
                : o &&
                  o.library &&
                  "object" == typeof o.library &&
                  (r =
                    o.library.library && "string" == typeof o.library.library
                      ? o.library.library.split(" ")[0]
                      : r),
              o instanceof Array
                ? H5P.findCopyrights(a, o, e)
                : o instanceof Object &&
                  (u(o, r, e),
                  void 0 === o.copyright ||
                  void 0 === o.copyright.license ||
                  void 0 === o.path ||
                  void 0 === o.mime
                    ? H5P.findCopyrights(a, o, e)
                    : ((s = new H5P.MediaCopyright(o.copyright)),
                      void 0 !== o.width &&
                        void 0 !== o.height &&
                        s.setThumbnail(
                          new H5P.Thumbnail(
                            H5P.getPath(o.path, e),
                            o.width,
                            o.height,
                          ),
                        ),
                      a.addMedia(s)))));
      function u(t, e, n) {
        var r, i, o;
        t.metadata &&
          void 0 !== (e = H5P.buildMetadataCopyrights(t.metadata, e)) &&
          (t.params &&
            "Image" === t.params.contentName &&
            t.params.file &&
            ((r = t.params.file.path),
            (i = t.params.file.width),
            (o = t.params.file.height),
            e.setThumbnail(
              new H5P.Thumbnail(H5P.getPath(r, n), i, o, t.params.alt),
            )),
          a.addMedia(e));
      }
    }),
    (H5P.buildMetadataCopyrights = function (t) {
      if (t && void 0 !== t.license && "U" !== t.license)
        return (
          (t = {
            contentType: t.contentType,
            title: t.title,
            author:
              t.authors && 0 < t.authors.length
                ? t.authors
                    .map(function (t) {
                      return t.role ? t.name + " (" + t.role + ")" : t.name;
                    })
                    .join(", ")
                : void 0,
            source: t.source,
            year: t.yearFrom
              ? t.yearFrom + (t.yearTo ? "-" + t.yearTo : "")
              : void 0,
            license: t.license,
            version: t.licenseVersion,
            licenseExtras: t.licenseExtras,
            changes:
              t.changes && 0 < t.changes.length
                ? t.changes
                    .map(function (t) {
                      return (
                        t.log +
                        (t.author ? ", " + t.author : "") +
                        (t.date ? ", " + t.date : "")
                      );
                    })
                    .join(" / ")
                : void 0,
          }),
          new H5P.MediaCopyright(t)
        );
    }),
    (H5P.openReuseDialog = function (t, n, r, i, o) {
      let e = "";
      (n.displayOptions.export &&
        (e +=
          '<button type="button" class="h5p-big-button h5p-download-button"><div class="h5p-button-title">Download as an .h5p file</div><div class="h5p-button-description">.h5p files may be uploaded to any web-site where H5P content may be created.</div></button>'),
        n.displayOptions.export &&
          n.displayOptions.copy &&
          (e += '<div class="h5p-horizontal-line-text"><span>or</span></div>'),
        n.displayOptions.copy &&
          (e +=
            '<button type="button" class="h5p-big-button h5p-copy-button"><div class="h5p-button-title">Copy content</div><div class="h5p-button-description">Copied content may be pasted anywhere this content type is supported on this website.</div></button>'));
      const a = new H5P.Dialog("reuse", H5P.t("reuseContent"), e, t);
      (H5P.jQuery(a)
        .on("dialog-opened", function (t, e) {
          (H5P.jQuery(
            '<a href="https://h5p.org/node/442225" target="_blank">More Info</a>',
          )
            .click(function (t) {
              t.stopPropagation();
            })
            .appendTo(e.find("h2")),
            e.find(".h5p-download-button").click(function () {
              ((window.location.href = n.exportUrl),
                i.triggerXAPI("downloaded"),
                a.close());
            }),
            e.find(".h5p-copy-button").click(function () {
              var t = new H5P.ClipboardItem(r);
              ((t.contentId = o),
                H5P.setClipboard(t),
                i.triggerXAPI("copied"),
                a.close(),
                H5P.attachToastTo(
                  H5P.jQuery(".h5p-content:first")[0],
                  H5P.t("contentCopied"),
                  {
                    position: {
                      horizontal: "centered",
                      vertical: "centered",
                      noOverflowX: !0,
                    },
                  },
                ));
            }),
            H5P.trigger(i, "resize"));
        })
        .on("dialog-closed", function () {
          H5P.trigger(i, "resize");
        }),
        a.open());
    }),
    (H5P.openEmbedDialog = function (t, e, n, c, l) {
      var h = e + n,
        e = new H5P.Dialog(
          "embed",
          H5P.t("embed"),
          '<textarea class="h5p-embed-code-container" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>' +
            H5P.t("size") +
            ': <input aria-label="' +
            H5P.t("width") +
            '" type="text" value="' +
            Math.ceil(c.width) +
            '" class="h5p-embed-size"/> × <input aria-label="' +
            H5P.t("width") +
            '" type="text" value="' +
            Math.ceil(c.height) +
            '" class="h5p-embed-size"/> px<br/><div role="button" tabindex="0" class="h5p-expander">' +
            H5P.t("showAdvanced") +
            '</div><div class="h5p-expander-content"><p>' +
            H5P.t("advancedHelp") +
            '</p><textarea class="h5p-embed-code-container" autocorrect="off" autocapitalize="off" spellcheck="false">' +
            n +
            "</textarea></div>",
          t,
        );
      (H5P.jQuery(e)
        .on("dialog-opened", function (t, n) {
          function r() {
            H5P.trigger(l, "resize");
          }
          function e(t, e) {
            return ((t = parseFloat(t.val())), isNaN(t) ? e : Math.ceil(t));
          }
          function i() {
            n.find(".h5p-embed-code-container:first").val(
              h.replace(":w", e(s, c.width)).replace(":h", e(u, c.height)),
            );
          }
          function o() {
            var t = H5P.jQuery(this),
              e = t.next();
            (e.is(":visible")
              ? (t
                  .removeClass("h5p-open")
                  .text(H5P.t("showAdvanced"))
                  .attr("aria-expanded", "true"),
                e.hide())
              : (t
                  .addClass("h5p-open")
                  .text(H5P.t("hideAdvanced"))
                  .attr("aria-expanded", "false"),
                e.show()),
              n.find(".h5p-embed-code-container").each(function () {
                H5P.jQuery(this).css("height", this.scrollHeight + "px");
              }),
              r());
          }
          var a = n.find(".h5p-inner").find(".h5p-scroll-content"),
            s =
              (a.outerHeight(),
              a.innerHeight(),
              n.find(".h5p-embed-size:eq(0)")),
            u = n.find(".h5p-embed-size:eq(1)");
          (s.change(i),
            u.change(i),
            i(),
            n.find(".h5p-embed-code-container").each(function () {
              H5P.jQuery(this)
                .css("height", this.scrollHeight + "px")
                .focus(function () {
                  H5P.jQuery(this).select();
                });
            }),
            n.find(".h5p-embed-code-container").eq(0).select(),
            r());
          n.find(".h5p-expander")
            .click(o)
            .keypress(function (t) {
              if (32 === t.keyCode) return (o.apply(this), !1);
            });
        })
        .on("dialog-closed", function () {
          H5P.trigger(l, "resize");
        }),
        e.open());
    }),
    (H5P.attachToastTo = function (e, t, n) {
      if (void 0 === e || void 0 === t) return;
      function r(t) {
        -1 === i(t).indexOf(e) && (clearTimeout(u), o());
      }
      const i = function (t) {
          var e = (t.composedPath && t.composedPath()) || t.path,
            t = t.target;
          return null != e
            ? e.indexOf(window) < 0
              ? e.concat(window)
              : e
            : t === window
              ? [window]
              : [t].concat(
                  (function t(e, n) {
                    n = n || [];
                    e = e.parentNode;
                    return e ? t(e, n.concat(e)) : n;
                  })(t),
                  window,
                );
        },
        o = function () {
          (document.removeEventListener("click", r),
            a.parentNode && a.parentNode.removeChild(a));
        };
      (((n = n || {}).style = n.style || "h5p-toast"),
        (n.duration = n.duration || 3e3));
      const a = document.createElement("div");
      (a.setAttribute("id", n.style),
        a.classList.add("h5p-toast-disabled"),
        a.classList.add(n.style));
      var s = document.createElement("span"),
        t =
          ((s.innerHTML = t),
          a.appendChild(s),
          document.body.appendChild(a),
          (function (t, e, n) {
            (((n = n || {}).offsetHorizontal = n.offsetHorizontal || 0),
              (n.offsetVertical = n.offsetVertical || 0));
            var r = e.getBoundingClientRect(),
              i = t.getBoundingClientRect();
            let o = 0,
              a = 0;
            switch (n.horizontal) {
              case "before":
                o = i.left - r.width - n.offsetHorizontal;
                break;
              case "after":
                o = i.left + i.width + n.offsetHorizontal;
                break;
              case "left":
                o = i.left + n.offsetHorizontal;
                break;
              case "right":
                o = i.left + i.width - r.width - n.offsetHorizontal;
                break;
              default:
                o = i.left + i.width / 2 - r.width / 2 + n.offsetHorizontal;
            }
            switch (n.vertical) {
              case "above":
                a = i.top - r.height - n.offsetVertical;
                break;
              case "below":
                a = i.top + i.height + n.offsetVertical;
                break;
              case "top":
                a = i.top + n.offsetVertical;
                break;
              case "bottom":
                a = i.top + i.height - r.height - n.offsetVertical;
                break;
              case "centered":
                a = i.top + i.height / 2 - r.height / 2 + n.offsetVertical;
                break;
              default:
                a = i.top + i.height + n.offsetVertical;
            }
            e = document.body.getBoundingClientRect();
            return (
              (n.noOverflowLeft || n.noOverflowX) && o < e.x && (o = e.x),
              (n.noOverflowRight || n.noOverflowX) &&
                o + r.width > e.x + e.width &&
                (o = e.x + e.width - r.width),
              (n.noOverflowTop || n.noOverflowY) && a < e.y && (a = e.y),
              {
                left: (o =
                  (n.noOverflowBottom || n.noOverflowY) &&
                  a + r.height > e.y + e.height
                    ? e.y + e.height - r.height
                    : o),
                top: a,
              }
            );
          })(e, a, n.position));
      ((a.style.left = Math.round(t.left) + "px"),
        (a.style.top = Math.round(t.top) + "px"),
        a.classList.remove("h5p-toast-disabled"));
      const u = setTimeout(o, n.duration);
      document.addEventListener("click", r);
    }),
    (H5P.ContentCopyrights = function () {
      var n,
        r = [],
        i = [];
      ((this.setLabel = function (t) {
        n = t;
      }),
        (this.addMedia = function (t) {
          void 0 !== t && r.push(t);
        }),
        (this.addMediaInFront = function (t) {
          void 0 !== t && r.unshift(t);
        }),
        (this.addContent = function (t) {
          void 0 !== t && i.push(t);
        }),
        (this.toString = function () {
          for (var t = "", e = 0; e < r.length; e++) t += r[e];
          for (e = 0; e < i.length; e++) t += i[e];
          return (t =
            "" !== t
              ? '<div class="h5p-content-copyrights">' +
                (t = void 0 !== n ? "<h3>" + n + "</h3>" + t : t) +
                "</div>"
              : t);
        }));
    }),
    (H5P.MediaCopyright = function (t, e, n, r) {
      function i(t) {
        return void 0 === e || void 0 === e[t] ? H5P.t(t) : e[t];
      }
      function o(t, e) {
        var n,
          r,
          i = H5P.copyrightLicenses[t],
          o = "",
          i =
            (("PD" === t && e) ||
              (o += i.hasOwnProperty("label") ? i.label : i),
            (n =
              i.versions &&
              (e =
                !i.versions.default || (e && i.versions[e])
                  ? e
                  : i.versions.default) &&
              i.versions[e]
                ? i.versions[e]
                : n) &&
              (o && (o += " "), (o += n.hasOwnProperty("label") ? n.label : n)),
            i.hasOwnProperty("link")
              ? (r = i.link.replace(
                  ":version",
                  i.linkVersions ? i.linkVersions[e] : e,
                ))
              : n && i.hasOwnProperty("link") && (r = n.link),
            r && (o = '<a href="' + r + '" target="_blank">' + o + "</a>"),
            "");
        return (
          "PD" !== t && "C" !== t && (i += t),
          e &&
            "CC0 1.0" !== e &&
            (i && "GNU GPL" !== t && (i += " "), (i += e)),
          i && (o += " (" + i + ")"),
          "C" === t && (o += " &copy;"),
          o
        );
      }
      var a,
        s = new H5P.DefinitionList();
      if (void 0 !== t) {
        for (var u in r) r.hasOwnProperty(u) && (t[u] = r[u]);
        void 0 === n &&
          (n = [
            "contentType",
            "title",
            "license",
            "author",
            "year",
            "source",
            "licenseExtras",
            "changes",
          ]);
        for (var c = 0; c < n.length; c++) {
          var l,
            h = n[c];
          void 0 !== t[h] &&
            "" !== t[h] &&
            ((l = t[h]),
            "license" === h && (l = o(t.license, t.version)),
            "source" === h &&
              (l = l
                ? '<a href="' + l + '" target="_blank">' + l + "</a>"
                : void 0),
            s.add(new H5P.Field(i(h), l)));
        }
      }
      ((this.setThumbnail = function (t) {
        a = t;
      }),
        (this.undisclosed = function () {
          if (1 === s.size()) {
            var t = s.get(0);
            if (t.getLabel() === i("license") && t.getValue() === o("U"))
              return !0;
          }
          return !1;
        }),
        (this.toString = function () {
          var t = "";
          return (
            this.undisclosed() ||
              (void 0 !== a && (t += a),
              "" !== (t += s) &&
                (t = '<div class="h5p-media-copyright">' + t + "</div>")),
            t
          );
        }));
    }),
    (H5P.Thumbnail = function (t, e, n, r) {
      var i;
      (void 0 !== e && (i = Math.round((e / n) * 100)),
        (this.toString = function () {
          return (
            '<img src="' +
            t +
            '" alt="' +
            (r || "") +
            '" class="h5p-thumbnail" height="100"' +
            (void 0 === i ? "" : ' width="' + i + '"') +
            "/>"
          );
        }));
    }),
    (H5P.Field = function (t, e) {
      ((this.getLabel = function () {
        return t;
      }),
        (this.getValue = function () {
          return e;
        }));
    }),
    (H5P.DefinitionList = function () {
      var r = [];
      ((this.add = function (t) {
        r.push(t);
      }),
        (this.size = function () {
          return r.length;
        }),
        (this.get = function (t) {
          return r[t];
        }),
        (this.toString = function () {
          for (var t = "", e = 0; e < r.length; e++) {
            var n = r[e];
            t += "<dt>" + n.getLabel() + "</dt><dd>" + n.getValue() + "</dd>";
          }
          return "" === t
            ? t
            : '<dl class="h5p-definition-list">' + t + "</dl>";
        }));
    }),
    (H5P.Coords = function (t, e, n, r) {
      return this instanceof H5P.Coords
        ? ((this.x = 0),
          (this.y = 0),
          (this.w = 1),
          (this.h = 1),
          "object" == typeof t
            ? ((this.x = t.x), (this.y = t.y), (this.w = t.w), (this.h = t.h))
            : (void 0 !== t && (this.x = t),
              void 0 !== e && (this.y = e),
              void 0 !== n && (this.w = n),
              void 0 !== r && (this.h = r)),
          this)
        : new H5P.Coords(t, e, n, r);
    }),
    (H5P.libraryFromString = function (t) {
      t = /(.+)\s(\d+)\.(\d+)$/g.exec(t);
      return (
        null !== t && {
          machineName: t[1],
          majorVersion: parseInt(t[2]),
          minorVersion: parseInt(t[3]),
        }
      );
    }),
    (H5P.getLibraryPath = function (t) {
      return void 0 !== H5PIntegration.urlLibraries
        ? H5PIntegration.urlLibraries + "/" + t
        : H5PIntegration.url + "/libraries/" + t;
    }),
    (H5P.cloneObject = function (t, e) {
      var n,
        r = t instanceof Array ? [] : {};
      for (n in t)
        t.hasOwnProperty(n) &&
          (void 0 !== e && e && "object" == typeof t[n]
            ? (r[n] = H5P.cloneObject(t[n], e))
            : (r[n] = t[n]));
      return r;
    }),
    (H5P.trim = function (t) {
      return t.replace(/^\s+|\s+$/g, "");
    }),
    (H5P.isEmpty = (e) => {
      if (e || 0 === e || !1 === e)
        if (Array.isArray(e)) {
          for (let t = 0; t < e.length; t++) if (!H5P.isEmpty(e[t])) return !1;
        } else {
          if ("object" != typeof e) return !1;
          for (var t in e)
            if (e.hasOwnProperty(t) && !H5P.isEmpty(e[t])) return !1;
        }
      return !0;
    }),
    (H5P.jsLoaded = function (t) {
      return (
        (H5PIntegration.loadedJs = H5PIntegration.loadedJs || []),
        -1 !== H5P.jQuery.inArray(t, H5PIntegration.loadedJs)
      );
    }),
    (H5P.cssLoaded = function (t) {
      return (
        (H5PIntegration.loadedCss = H5PIntegration.loadedCss || []),
        -1 !== H5P.jQuery.inArray(t, H5PIntegration.loadedCss)
      );
    }),
    (H5P.shuffleArray = function (t) {
      if (t instanceof Array) {
        var e,
          n,
          r,
          i = t.length;
        if (0 === i) return !1;
        for (; --i; )
          ((e = Math.floor(Math.random() * (i + 1))),
            (n = t[i]),
            (r = t[e]),
            (t[i] = r),
            (t[e] = n));
        return t;
      }
    }),
    (H5P.setFinished = function (t, e, n, r) {
      if (
        ("number" == typeof e || e instanceof Number) &&
        !0 === H5PIntegration.postUserStatistics
      ) {
        function i(t) {
          return Math.round(t.getTime() / 1e3);
        }
        const o = {
          contentId: t,
          score: e,
          maxScore: n,
          opened: i(H5P.opened[t]),
          finished: i(new Date()),
          time: r,
        };
        H5P.jQuery.post(H5PIntegration.ajax.setFinished, o).fail(function () {
          H5P.offlineRequestQueue.add(H5PIntegration.ajax.setFinished, o);
        });
      }
    }),
    Array.prototype.indexOf ||
      (Array.prototype.indexOf = function (t) {
        for (var e = 0; e < this.length; e++) if (this[e] === t) return e;
        return -1;
      }),
    void 0 === String.prototype.trim &&
      (String.prototype.trim = function () {
        return H5P.trim(this);
      }),
    (H5P.trigger = function (t, e, n, r) {
      void 0 !== t.trigger
        ? t.trigger(e, n, r)
        : void 0 !== t.$ && void 0 !== t.$.trigger && t.$.trigger(e);
    }),
    (H5P.on = function (t, e, n) {
      void 0 !== t.on
        ? t.on(e, n)
        : void 0 !== t.$ && void 0 !== t.$.on && t.$.on(e, n);
    }),
    (H5P.createUUID = function () {
      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(
        /[xy]/g,
        function (t) {
          var e = (16 * Math.random()) | 0;
          return ("x" === t ? e : (3 & e) | 8).toString(16);
        },
      );
    }),
    (H5P.createTitle = function (t, e) {
      if (!t) return "";
      void 0 === e && (e = 60);
      t = H5P.jQuery("<div></div>")
        .text(t.replace(/(<([^>]+)>)/gi, ""))
        .text();
      return (t = t.length > e ? t.substr(0, e - 3) + "..." : t);
    }),
    !(function (u) {
      function s(t, e, n, r, i, o, a, s) {
        void 0 === H5PIntegration.user
          ? r("Not signed in.")
          : ((t = {
              url: H5PIntegration.ajax.contentUserData
                .replace(":contentId", t)
                .replace(":dataType", e)
                .replace(":subContentId", n || 0),
              dataType: "json",
              async: void 0 === s || s,
            }),
            void 0 !== i
              ? ((t.type = "POST"),
                (t.data = {
                  data: null === i ? 0 : i,
                  preload: o ? 1 : 0,
                  invalidate: a ? 1 : 0,
                }))
              : (t.type = "GET"),
            void 0 !== r &&
              ((t.error = function (t, e) {
                r(e);
              }),
              (t.success = function (t) {
                t.success
                  ? !1 === t.data || void 0 === t.data
                    ? r()
                    : r(void 0, t.data)
                  : r(t.message);
              })),
            u.ajax(t));
      }
      ((H5P.getUserData = function (t, n, r, i) {
        ((i = i || 0),
          (H5PIntegration.contents = H5PIntegration.contents || {}));
        var o = H5PIntegration.contents["cid-" + t] || {},
          a = o.contentUserData;
        if (a && a[i] && void 0 !== a[i][n])
          if ("RESET" === a[i][n]) r(void 0, null);
          else
            try {
              r(void 0, JSON.parse(a[i][n]));
            } catch (t) {
              r(t);
            }
        else
          s(t, n, i, function (t, e) {
            if (t || void 0 === e) r(t, e);
            else {
              (void 0 === o.contentUserData && (o.contentUserData = a = {}),
                void 0 === a[i] && (a[i] = {}),
                (a[i][n] = e));
              try {
                r(void 0, JSON.parse(e));
              } catch (t) {
                r(t);
              }
            }
          });
      }),
        (H5P.setUserData = function (t, e, n, r) {
          var i = H5P.jQuery.extend(
            !0,
            {},
            { subContentId: 0, preloaded: !0, deleteOnChange: !1, async: !0 },
            r,
          );
          try {
            n = JSON.stringify(n);
          } catch (t) {
            return void (i.errorCallback && i.errorCallback(t));
          }
          ((r = H5PIntegration.contents["cid-" + t]),
            (r = void 0 === r ? (H5PIntegration.contents["cid-" + t] = {}) : r)
              .contentUserData || (r.contentUserData = {}),
            (r = r.contentUserData));
          (void 0 === r[i.subContentId] && (r[i.subContentId] = {}),
            n !== r[i.subContentId][e] &&
              ((r[i.subContentId][e] = n),
              s(
                t,
                e,
                i.subContentId,
                function (t) {
                  i.errorCallback && t && i.errorCallback(t);
                },
                n,
                i.preloaded,
                i.deleteOnChange,
                i.async,
              )));
        }),
        (H5P.deleteUserData = function (t, e, n) {
          n = n || 0;
          var r = H5PIntegration.contents["cid-" + t].contentUserData;
          (r && r[n] && r[n][e] && delete r[n][e], s(t, e, n, void 0, null));
        }),
        (H5P.getContentForInstance = function (t) {
          t = "cid-" + t;
          return H5PIntegration &&
            H5PIntegration.contents &&
            H5PIntegration.contents[t]
            ? H5PIntegration.contents[t]
            : void 0;
        }),
        (H5P.ClipboardItem = function (t, e, n) {
          var r = this;
          (e || ((e = "action"), (t = { action: t })),
            (r.specific = t),
            e && t[e] && (r.generic = e),
            n && (r.from = n),
            window.H5PEditor &&
              H5PEditor.contentId &&
              (r.contentId = H5PEditor.contentId),
            r.specific.width ||
              r.specific.height ||
              (r.generic &&
                (t = r.specific[r.generic]).params.file &&
                t.params.file.width &&
                t.params.file.height &&
                ((r.width = 20),
                (r.height =
                  (t.params.file.height / t.params.file.width) * r.width))));
        }),
        (H5P.clipboardify = function (t) {
          (t instanceof H5P.ClipboardItem || (t = new H5P.ClipboardItem(t)),
            H5P.setClipboard(t));
        }),
        (H5P.getClipboard = function () {
          return t();
        }),
        (H5P.setClipboard = function (t) {
          (localStorage.setItem("h5pClipboard", JSON.stringify(t)),
            H5P.externalDispatcher.trigger("datainclipboard", { reset: !1 }));
        }),
        (H5P.getLibraryConfig = function (t) {
          return H5PIntegration.libraryConfig && H5PIntegration.libraryConfig[t]
            ? H5PIntegration.libraryConfig[t]
            : {};
        }));
      var t = function () {
          var n = localStorage.getItem("h5pClipboard");
          if (n) {
            try {
              n = JSON.parse(n);
            } catch (t) {
              return void console.error(
                "Unable to parse JSON from clipboard.",
                t,
              );
            }
            return (
              r(n.specific, function (e) {
                if (
                  "#tmp" === e.substr(-4, 4) ||
                  !n.contentId ||
                  e.match(/^https?:\/\//i)
                )
                  return e;
                {
                  let t;
                  return (
                    (t = H5PEditor.contentId
                      ? "../" + n.contentId + "/"
                      : (H5PEditor.contentRelUrl || "../content/") +
                        n.contentId +
                        "/"),
                    e.substr(0, t.length) === t ? e : t + e
                  );
                }
              }),
              n.generic && (n.generic = n.specific[n.generic]),
              n
            );
          }
        },
        r = function (t, e) {
          for (var n in t)
            t.hasOwnProperty(n) &&
              t[n] instanceof Object &&
              (void 0 !== (n = t[n]).path && void 0 !== n.mime
                ? (n.path = e(n.path))
                : (void 0 !== n.library &&
                    void 0 !== n.subContentId &&
                    delete n.subContentId,
                  r(n, e)));
        };
      u(document).ready(function () {
        window.addEventListener("storage", function (t) {
          "h5pClipboard" === t.key &&
            H5P.externalDispatcher.trigger("datainclipboard", {
              reset: null === t.newValue,
            });
        });
        var i,
          t,
          e = {
            default: "4.0",
            "4.0": H5P.t("licenseCC40"),
            "3.0": H5P.t("licenseCC30"),
            2.5: H5P.t("licenseCC25"),
            "2.0": H5P.t("licenseCC20"),
            "1.0": H5P.t("licenseCC10"),
          };
        ((H5P.copyrightLicenses = {
          U: H5P.t("licenseU"),
          "CC BY": {
            label: H5P.t("licenseCCBY"),
            link: "http://creativecommons.org/licenses/by/:version",
            versions: e,
          },
          "CC BY-SA": {
            label: H5P.t("licenseCCBYSA"),
            link: "http://creativecommons.org/licenses/by-sa/:version",
            versions: e,
          },
          "CC BY-ND": {
            label: H5P.t("licenseCCBYND"),
            link: "http://creativecommons.org/licenses/by-nd/:version",
            versions: e,
          },
          "CC BY-NC": {
            label: H5P.t("licenseCCBYNC"),
            link: "http://creativecommons.org/licenses/by-nc/:version",
            versions: e,
          },
          "CC BY-NC-SA": {
            label: H5P.t("licenseCCBYNCSA"),
            link: "http://creativecommons.org/licenses/by-nc-sa/:version",
            versions: e,
          },
          "CC BY-NC-ND": {
            label: H5P.t("licenseCCBYNCND"),
            link: "http://creativecommons.org/licenses/by-nc-nd/:version",
            versions: e,
          },
          "CC0 1.0": {
            label: H5P.t("licenseCC010"),
            link: "https://creativecommons.org/publicdomain/zero/1.0/",
          },
          "GNU GPL": {
            label: H5P.t("licenseGPL"),
            link: "http://www.gnu.org/licenses/gpl-:version-standalone.html",
            linkVersions: { v3: "3.0", v2: "2.0", v1: "1.0" },
            versions: {
              default: "v3",
              v3: H5P.t("licenseV3"),
              v2: H5P.t("licenseV2"),
              v1: H5P.t("licenseV1"),
            },
          },
          PD: {
            label: H5P.t("licensePD"),
            versions: {
              "CC0 1.0": {
                label: H5P.t("licenseCC010"),
                link: "https://creativecommons.org/publicdomain/zero/1.0/",
              },
              "CC PDM": {
                label: H5P.t("licensePDM"),
                link: "https://creativecommons.org/publicdomain/mark/1.0/",
              },
            },
          },
          "ODC PDDL":
            '<a href="http://opendatacommons.org/licenses/pddl/1.0/" target="_blank">Public Domain Dedication and Licence</a>',
          "CC PDM": {
            label: H5P.t("licensePDM"),
            link: "https://creativecommons.org/publicdomain/mark/1.0/",
          },
          C: H5P.t("licenseC"),
        }),
          H5P.isFramed &&
            !1 === H5P.externalEmbed &&
            H5P.externalDispatcher.on("*", function (t) {
              window.parent.H5P.externalDispatcher.trigger.call(this, t);
            }),
          H5P.preventInit || H5P.init(document.body),
          !1 !== H5PIntegration.saveFreq &&
            ((i = 0),
            (t = function () {
              var t = new Date().getTime();
              if (250 < t - i) {
                i = t;
                for (var e = 0; e < H5P.instances.length; e++) {
                  var n,
                    r = H5P.instances[e];
                  (r.getCurrentState instanceof Function ||
                    "function" == typeof r.getCurrentState) &&
                    void 0 !== (n = r.getCurrentState()) &&
                    H5P.setUserData(r.contentId, "state", n, {
                      deleteOnChange: !0,
                      async: !1,
                    });
                }
              }
            }),
            H5P.$window.one("beforeunload unload", function () {
              (H5P.$window.off("pagehide beforeunload unload"), t());
            }),
            H5P.$window.on("pagehide", t)));
      });
    })(H5P.jQuery),
    ((H5P = window.H5P = window.H5P || {}).Event = function (t, e, n) {
      ((this.type = t), (this.data = e));
      var r = !1,
        i = !1,
        o = !1;
      (!0 === (n = void 0 === n ? {} : n).bubbles && (r = !0),
        !0 === n.external && (i = !0),
        (this.preventBubbling = function () {
          r = !1;
        }),
        (this.getBubbles = function () {
          return r;
        }),
        (this.scheduleForExternal = function () {
          return !(!i || o) && (o = !0);
        }));
    }),
    (H5P.EventDispatcher = function () {
      function r(t, e) {
        if (void 0 !== a[t])
          for (var n = a[t].slice(), r = 0; r < n.length; r++) {
            var i = n[r],
              o = i.thisArg || this;
            i.listener.call(o, e);
          }
      }
      var i = this,
        a = {};
      ((this.on = function (t, e, n) {
        if ("function" != typeof e)
          throw TypeError("listener must be a function");
        i.trigger("newListener", { type: t, listener: e });
        e = { listener: e, thisArg: n };
        a[t] ? a[t].push(e) : (a[t] = [e]);
      }),
        (this.once = function (t, e, n) {
          if (!(e instanceof Function))
            throw TypeError("listener must be a function");
          var r = function (t) {
            (i.off(t.type, r), e.call(this, t));
          };
          i.on(t, r, n);
        }),
        (this.off = function (t, e) {
          if (void 0 !== e && !(e instanceof Function))
            throw TypeError("listener must be a function");
          if (void 0 !== a[t])
            if (void 0 === e) (delete a[t], i.trigger("removeListener", t));
            else {
              for (var n = 0; n < a[t].length; n++)
                if (a[t][n].listener === e) {
                  (a[t].splice(n, 1),
                    i.trigger("removeListener", t, { listener: e }));
                  break;
                }
              a[t].length || delete a[t];
            }
        }),
        (this.trigger = function (t, e, n) {
          void 0 !== t &&
            (t instanceof String || "string" == typeof t
              ? (t = new H5P.Event(t, e, n))
              : void 0 !== e && (t.data = e),
            (n = t.scheduleForExternal()),
            r.call(this, t.type, t),
            r.call(this, "*", t),
            t.getBubbles() &&
              i.parent instanceof H5P.EventDispatcher &&
              (i.parent.trigger instanceof Function ||
                "function" == typeof i.parent.trigger) &&
              i.parent.trigger(t),
            n) &&
            H5P.externalDispatcher.trigger.call(this, t);
        }));
    }),
    ((H5P = window.H5P = window.H5P || {}).XAPIEvent = function () {
      H5P.Event.call(
        this,
        "xAPI",
        { statement: {} },
        { bubbles: !0, external: !0 },
      );
    }),
    (H5P.XAPIEvent.prototype = Object.create(H5P.Event.prototype)),
    (H5P.XAPIEvent.prototype.constructor = H5P.XAPIEvent),
    (H5P.XAPIEvent.prototype.setScoredResult = function (t, e, n, r, i) {
      ((this.data.statement.result = {}),
        void 0 !== t &&
          (void 0 === e
            ? (this.data.statement.result.score = { raw: t })
            : ((this.data.statement.result.score = { min: 0, max: e, raw: t }),
              0 < e &&
                (this.data.statement.result.score.scaled =
                  Math.round((t / e) * 1e4) / 1e4))),
        (this.data.statement.result.completion =
          void 0 === r
            ? "completed" === this.getVerb() || "answered" === this.getVerb()
            : r),
        void 0 !== i && (this.data.statement.result.success = i),
        n &&
          n.activityStartTime &&
          ((t = Math.round((Date.now() - n.activityStartTime) / 10) / 100),
          (this.data.statement.result.duration = "PT" + t + "S")));
    }),
    (H5P.XAPIEvent.prototype.setVerb = function (t) {
      -1 !== H5P.jQuery.inArray(t, H5P.XAPIEvent.allowedXAPIVerbs)
        ? (this.data.statement.verb = {
            id: "http://adlnet.gov/expapi/verbs/" + t,
            display: { "en-US": t },
          })
        : void 0 !== t.id && (this.data.statement.verb = t);
    }),
    (H5P.XAPIEvent.prototype.getVerb = function (t) {
      var e = this.data.statement;
      return "verb" in e ? (!0 === t ? e.verb : e.verb.id.slice(31)) : null;
    }),
    (H5P.XAPIEvent.prototype.setObject = function (t) {
      t.contentId
        ? ((this.data.statement.object = {
            id: this.getContentXAPIId(t),
            objectType: "Activity",
            definition: {
              extensions: {
                "http://h5p.org/x-api/h5p-local-content-id": t.contentId,
              },
            },
          }),
          t.subContentId
            ? ((this.data.statement.object.definition.extensions[
                "http://h5p.org/x-api/h5p-subContentId"
              ] = t.subContentId),
              "function" == typeof t.getTitle &&
                (this.data.statement.object.definition.name = {
                  "en-US": t.getTitle(),
                }))
            : (t = H5P.getContentForInstance(t.contentId)) &&
              t.metadata &&
              t.metadata.title &&
              (this.data.statement.object.definition.name = {
                "en-US": H5P.createTitle(t.metadata.title),
              }))
        : (this.data.statement.object = { definition: {} });
    }),
    (H5P.XAPIEvent.prototype.setContext = function (t) {
      (t.parent &&
        (t.parent.contentId || t.parent.subContentId) &&
        (this.data.statement.context = {
          contextActivities: {
            parent: [
              { id: this.getContentXAPIId(t.parent), objectType: "Activity" },
            ],
          },
        }),
        t.libraryInfo &&
          (void 0 === this.data.statement.context &&
            (this.data.statement.context = { contextActivities: {} }),
          (this.data.statement.context.contextActivities.category = [
            {
              id:
                "http://h5p.org/libraries/" +
                t.libraryInfo.versionedNameNoSpaces,
              objectType: "Activity",
            },
          ])));
    }),
    (H5P.XAPIEvent.prototype.setActor = function () {
      if (void 0 !== H5PIntegration.user)
        this.data.statement.actor = {
          name: H5PIntegration.user.name,
          mbox: "mailto:" + H5PIntegration.user.mail,
          objectType: "Agent",
        };
      else {
        var e;
        try {
          localStorage.H5PUserUUID
            ? (e = localStorage.H5PUserUUID)
            : ((e = H5P.createUUID()), (localStorage.H5PUserUUID = e));
        } catch (t) {
          e = "not-trackable-" + H5P.createUUID();
        }
        this.data.statement.actor = {
          account: { name: e, homePage: H5PIntegration.siteUrl },
          objectType: "Agent",
        };
      }
    }),
    (H5P.XAPIEvent.prototype.getMaxScore = function () {
      return this.getVerifiedStatementValue(["result", "score", "max"]);
    }),
    (H5P.XAPIEvent.prototype.getScore = function () {
      return this.getVerifiedStatementValue(["result", "score", "raw"]);
    }),
    (H5P.XAPIEvent.prototype.getContentXAPIId = function (t) {
      var e;
      return (
        t.contentId &&
          H5PIntegration &&
          H5PIntegration.contents &&
          H5PIntegration.contents["cid-" + t.contentId] &&
          ((e = H5PIntegration.contents["cid-" + t.contentId].url),
          t.subContentId) &&
          (e += "?subContentId=" + t.subContentId),
        e
      );
    }),
    (H5P.XAPIEvent.prototype.isFromChild = function () {
      var t = this.getVerifiedStatementValue([
        "context",
        "contextActivities",
        "parent",
        0,
        "id",
      ]);
      return !t || -1 === t.indexOf("subContentId");
    }),
    (H5P.XAPIEvent.prototype.getVerifiedStatementValue = function (t) {
      for (var e = this.data.statement, n = 0; n < t.length; n++) {
        if (void 0 === e[t[n]]) return null;
        e = e[t[n]];
      }
      return e;
    }),
    (H5P.XAPIEvent.allowedXAPIVerbs = [
      "answered",
      "asked",
      "attempted",
      "attended",
      "commented",
      "completed",
      "exited",
      "experienced",
      "failed",
      "imported",
      "initialized",
      "interacted",
      "launched",
      "mastered",
      "passed",
      "preferred",
      "progressed",
      "registered",
      "responded",
      "resumed",
      "scored",
      "shared",
      "suspended",
      "terminated",
      "voided",
      "downloaded",
      "copied",
      "accessed-reuse",
      "accessed-embed",
      "accessed-copyright",
    ]),
    ((H5P = window.H5P = window.H5P || {}).externalDispatcher =
      new H5P.EventDispatcher()),
    (H5P.EventDispatcher.prototype.triggerXAPI = function (t, e) {
      this.trigger(this.createXAPIEventTemplate(t, e));
    }),
    (H5P.EventDispatcher.prototype.createXAPIEventTemplate = function (t, e) {
      var n = new H5P.XAPIEvent();
      if ((n.setActor(), n.setVerb(t), void 0 !== e))
        for (var r in e) n.data.statement[r] = e[r];
      return (
        "object" in n.data.statement || n.setObject(this),
        "context" in n.data.statement || n.setContext(this),
        n
      );
    }),
    (H5P.EventDispatcher.prototype.triggerXAPICompleted = function (t, e, n) {
      this.triggerXAPIScored(t, e, "completed", !0, n);
    }),
    (H5P.EventDispatcher.prototype.triggerXAPIScored = function (
      t,
      e,
      n,
      r,
      i,
    ) {
      n = this.createXAPIEventTemplate(n);
      (n.setScoredResult(t, e, this, r, i), this.trigger(n));
    }),
    (H5P.EventDispatcher.prototype.setActivityStarted = function () {
      void 0 === this.activityStartTime &&
        (void 0 !== this.contentId &&
          void 0 !== H5PIntegration.contents &&
          void 0 !== H5PIntegration.contents["cid-" + this.contentId] &&
          this.triggerXAPI("attempted"),
        (this.activityStartTime = Date.now()));
    }),
    (H5P.xAPICompletedListener = function (t) {
      var e, n;
      ("completed" !== t.getVerb() && "answered" !== t.getVerb()) ||
        t.getVerifiedStatementValue([
          "context",
          "contextActivities",
          "parent",
        ]) ||
        ((e = t.getScore()),
        (n = t.getMaxScore()),
        (t = t.getVerifiedStatementValue([
          "object",
          "definition",
          "extensions",
          "http://h5p.org/x-api/h5p-local-content-id",
        ])),
        H5P.setFinished(t, e, n));
    }) /*!@license js/h5p-content-type.js by Joubel and other contributors, licensed under GNU GENERAL PUBLIC LICENSE Version 3*/,
    (H5P.ContentType = function (t) {
      function e() {}
      return (
        ((e.prototype = new H5P.EventDispatcher()).isRoot = function () {
          return t;
        }),
        (e.prototype.getLibraryFilePath = function (t) {
          return (
            H5P.getLibraryPath(this.libraryInfo.versionedNameNoSpaces) + "/" + t
          );
        }),
        e
      );
    }) /*!@license js/h5p-confirmation-dialog.js by Joubel and other contributors, licensed under GNU GENERAL PUBLIC LICENSE Version 3*/,
    (H5P.ConfirmationDialog = (function (C) {
      "use strict";
      function t(n) {
        C.call(this);
        var r = this,
          t =
            ((H5P.ConfirmationDialog.uniqueId += 1),
            H5P.ConfirmationDialog.uniqueId);
        function i(t) {
          (r.hide(), r.trigger("confirmed"), t.preventDefault());
        }
        function e(t) {
          (r.hide(), r.trigger("canceled"), t.preventDefault());
        }
        function o(t, e) {
          (t.focus(), e.preventDefault());
        }
        (((n = n || {}).headerText =
          n.headerText || H5P.t("confirmDialogHeader")),
          (n.dialogText = n.dialogText || H5P.t("confirmDialogBody")),
          (n.cancelText = n.cancelText || H5P.t("cancelLabel")),
          (n.confirmText = n.confirmText || H5P.t("confirmLabel")));
        var a,
          s,
          u,
          c = 32,
          l = 8,
          h = !1,
          f = document.createElement("div"),
          d =
            (f.classList.add(
              "h5p-confirmation-dialog-background",
              "hidden",
              "hiding",
            ),
            document.createElement("div")),
          p =
            (d.classList.add("h5p-confirmation-dialog-popup", "hidden"),
            n.classes &&
              n.classes.forEach(function (t) {
                d.classList.add(t);
              }),
            d.setAttribute("role", "dialog"),
            d.setAttribute(
              "aria-labelledby",
              "h5p-confirmation-dialog-dialog-text-" + t,
            ),
            f.appendChild(d),
            d.addEventListener("keydown", function (t) {
              "Escape" === t.key && e(t);
            }),
            document.createElement("div")),
          g =
            (p.classList.add("h5p-confirmation-dialog-header"),
            d.appendChild(p),
            document.createElement("div")),
          p =
            (g.classList.add("h5p-confirmation-dialog-header-text"),
            (g.innerHTML = n.headerText),
            p.appendChild(g),
            document.createElement("div")),
          g =
            (p.classList.add("h5p-confirmation-dialog-body"),
            d.appendChild(p),
            document.createElement("div")),
          t =
            (g.classList.add("h5p-confirmation-dialog-text"),
            (g.innerHTML = n.dialogText),
            (g.id = "h5p-confirmation-dialog-dialog-text-" + t),
            p.appendChild(g),
            document.createElement("div")),
          m =
            (t.classList.add("h5p-confirmation-dialog-buttons"),
            p.appendChild(t),
            document.createElement("button")),
          v =
            (m.classList.add("h5p-core-cancel-button"),
            (m.textContent = n.cancelText),
            document.createElement("button")),
          y =
            (v.classList.add("h5p-core-button"),
            v.classList.add("h5p-confirmation-dialog-confirm-button"),
            (v.textContent = n.confirmText),
            document.createElement("button")),
          b =
            (y.classList.add("h5p-confirmation-dialog-exit"),
            (y.tabIndex = -1),
            y.setAttribute("aria-label", n.cancelText),
            m.addEventListener("click", e),
            m.addEventListener("keydown", function (t) {
              " " === t.key
                ? e(t)
                : "Tab" === t.key && t.shiftKey && o(n.hideExit ? v : y, t);
            }),
            n.hideCancel ? t.classList.add("center") : t.appendChild(m),
            v.addEventListener("click", i),
            v.addEventListener("keydown", function (e) {
              if (" " === e.key) i(e);
              else if ("Tab" === e.key && !e.shiftKey) {
                let t = v;
                (n.hideExit ? n.hideCancel || (t = m) : (t = y), o(t, e));
              }
            }),
            t.appendChild(v),
            y.addEventListener("click", e),
            y.addEventListener("keydown", function (t) {
              " " === t.key
                ? e(t)
                : "Tab" !== t.key || t.shiftKey || o(n.hideCancel ? v : m, t);
            }),
            n.hideExit || d.appendChild(y),
            []),
          x = [],
          w =
            ((this.appendTo = function (t) {
              return ((a = t), this);
            }),
            function (t) {
              f.contains(t.target) || (t.preventDefault(), v.focus());
            }),
          P = function (t) {
            for (
              var e = [], n = t.parentNode.children, r = 0;
              r < n.length;
              r += 1
            )
              ((e[r] = !!n[r].getAttribute("aria-hidden")),
                n[r] !== t && n[r].setAttribute("aria-hidden", !0));
            return e;
          },
          H = function (t, e) {
            for (var n = t.parentNode.children, r = 0; r < n.length; r += 1)
              n[r] === t || e[r] || n[r].removeAttribute("aria-hidden");
          };
        ((this.show = function (t) {
          var e;
          return (
            (u = document.activeElement),
            a.appendChild(f),
            (s = a.parentNode || a).addEventListener("focus", w, !0),
            (b = P(a)),
            (x = P(f)),
            f.classList.remove("hidden"),
            (t = t),
            (e = parseInt(d.style.top, 10)),
            (e =
              (e = (e = void 0 !== t ? t : e) || 0) + d.offsetHeight >
              a.offsetHeight
                ? a.offsetHeight - d.offsetHeight - l
                : e) -
              c <=
              0 && ((e = c + l), (h = !0)),
            (d.style.top = e + "px"),
            setTimeout(function () {
              (d.classList.remove("hidden"),
                f.classList.remove("hiding"),
                setTimeout(function () {
                  var t;
                  (v.focus(),
                    h &&
                      n.instance &&
                      ((t = parseInt(d.offsetHeight, 10) + c + 2 * l),
                      r.setViewPortMinimumHeight(t),
                      n.instance.trigger("resize"),
                      (h = !1)));
                }, 100));
            }, 0),
            this
          );
        }),
          (this.hide = function () {
            return (
              f.classList.add("hiding"),
              d.classList.add("hidden"),
              s.removeAttribute("aria-hidden"),
              s.removeEventListener("focus", w, !0),
              n.skipRestoreFocus || u.focus(),
              H(a, b),
              H(f, x),
              setTimeout(function () {
                (f.classList.add("hidden"),
                  a.removeChild(f),
                  r.setViewPortMinimumHeight(null));
              }, 100),
              this
            );
          }),
          (this.getElement = function () {
            return d;
          }),
          (this.getPreviouslyFocused = function () {
            return u;
          }),
          (this.setViewPortMinimumHeight = function (t) {
            (
              document.querySelector(".h5p-container") || document.body
            ).style.minHeight = "number" == typeof t ? t + "px" : t;
          }));
      }
      return ((t.prototype = Object.create(C.prototype)).constructor = t);
    })(H5P.EventDispatcher)),
    (H5P.ConfirmationDialog.uniqueId =
      -1) /*!@license js/h5p-action-bar.js by Joubel and other contributors, licensed under GNU GENERAL PUBLIC LICENSE Version 3*/,
    (H5P.ActionBar = (function (n) {
      "use strict";
      function t(t) {
        n.call(this);
        function e(t, e) {
          function n() {
            r.trigger(t);
          }
          ((e = H5P.jQuery("<li/>", {
            class: "h5p-button h5p-noselect h5p-" + (e || t),
            appendTo: o,
          })),
            (e = H5P.jQuery("<button/>", {
              tabindex: 0,
              "aria-label": H5P.t(t + "Description"),
              html: H5P.t(t),
              on: {
                click: n,
                keypress: function (t) {
                  32 === t.which && (n(), t.preventDefault());
                },
              },
              appendTo: e,
            })),
            H5P.Tooltip(e.get(0)),
            (i = !0));
        }
        var r = this,
          i = !1,
          o = H5P.jQuery('<ul class="h5p-actions"></ul>');
        ((t.export || t.copy) && e("reuse", "export"),
          t.copyright && e("copyrights"),
          t.embed && e("embed"),
          t.icon &&
            ((t = H5P.jQuery(
              '<li><a class="h5p-link" href="http://h5p.org" target="_blank" aria-label="' +
                H5P.t("h5pDescription") +
                '"></a></li>',
            ).appendTo(o)),
            H5P.Tooltip(t.find(".h5p-link").get(0)),
            (i = !0)),
          (r.getDOMElement = function () {
            return o;
          }),
          (r.hasActions = function () {
            return i;
          }));
      }
      return ((t.prototype = Object.create(n.prototype)).constructor = t);
    })(
      (H5P.jQuery, H5P.EventDispatcher),
    )) /*!@license js/request-queue.js by Joubel and other contributors, licensed under GNU GENERAL PUBLIC LICENSE Version 3*/,
    (H5P.RequestQueue = (function (n, e) {
      function t(t) {
        (e.call(this),
          (this.processingQueue = !1),
          (this.showToast = (t = t || {}).showToast),
          (this.itemName = "requestQueue"));
      }
      return (
        (t.prototype.add = function (t, e) {
          if (!window.localStorage) return !1;
          let n = this.getStoredRequests();
          return (
            (n = n || []).push({ url: t, data: e }),
            window.localStorage.setItem(this.itemName, JSON.stringify(n)),
            this.trigger("requestQueued", {
              storedStatements: n,
              processingQueue: this.processingQueue,
            }),
            !0
          );
        }),
        (t.prototype.getStoredRequests = function () {
          var t;
          return (
            !!window.localStorage &&
            ((t = window.localStorage.getItem(this.itemName))
              ? JSON.parse(t)
              : [])
          );
        }),
        (t.prototype.clearQueue = function () {
          return (
            !!window.localStorage &&
            (window.localStorage.removeItem(this.itemName), !0)
          );
        }),
        (t.prototype.resumeQueue = function () {
          var t, e;
          return (
            !!(H5PIntegration && window.navigator && window.localStorage) &&
            !this.processingQueue &&
            ((e = (t = this.getStoredRequests()).length),
            this.clearQueue(),
            e
              ? ((this.processingQueue = !0), this.processQueue(t))
              : this.trigger("emptiedQueue", t),
            !0)
          );
        }),
        (t.prototype.processQueue = function (t) {
          var e;
          t.length &&
            (this.trigger("processingQueue"),
            (e = t.shift()),
            n
              .post(e.url, e.data)
              .fail(this.onQueuedRequestFail.bind(this, e))
              .always(this.onQueuedRequestProcessed.bind(this, t)));
        }),
        (t.prototype.onQueuedRequestFail = function (t) {
          window.navigator.onLine || this.add(t.url, t.data);
        }),
        (t.prototype.onQueuedRequestProcessed = function (t) {
          t.length
            ? this.processQueue(t)
            : ((this.processingQueue = !1),
              (t = this.getStoredRequests()),
              this.trigger("queueEmptied", t));
        }),
        (t.prototype.displayToastMessage = function (t, e, n) {
          (this.showToast || e) &&
            ((e = H5P.jQuery.extend(
              !0,
              {},
              {
                position: {
                  horizontal: "centered",
                  vertical: "centered",
                  noOverflowX: !0,
                },
              },
              n,
            )),
            H5P.attachToastTo(H5P.jQuery(".h5p-content:first")[0], t, e));
        }),
        t
      );
    })(H5P.jQuery, H5P.EventDispatcher)),
    (H5P.OfflineRequestQueue = (function (y, b) {
      return function (t) {
        const n = new y();
        n.clearQueue();
        let e = null;
        const r = [10, 20, 40, 60, 120, 300, 600];
        let i = -1,
          o = null,
          a = !1,
          s = !1,
          u = !1;
        t = t.instance;
        const c = new b({
          headerText: H5P.t("offlineDialogHeader"),
          dialogText: H5P.t("offlineDialogBody"),
          confirmText: H5P.t("offlineDialogRetryButtonLabel"),
          hideCancel: !0,
          hideExit: !0,
          classes: ["offline"],
          instance: t,
          skipRestoreFocus: !0,
        });
        var t = c.getElement(),
          l = document.createElement("div");
        (l.classList.add("count-down"),
          (l.innerHTML = H5P.t("offlineDialogRetryMessage").replace(
            ":num",
            '<span class="count-down-num">0</span>',
          )),
          t.querySelector(".h5p-confirmation-dialog-text").appendChild(l));
        const h = l.querySelector(".count-down-num"),
          f = document.createElement("div");
        f.classList.add("throbber-wrapper");
        t = document.createElement("div");
        (t.classList.add("sending-requests-throbber"),
          f.appendChild(t),
          n.on(
            "requestQueued",
            function (t) {
              if (!t.data || !t.data.processingQueue) {
                if (!a) {
                  t = document.body.querySelector(".h5p-content");
                  if (!t) return;
                  (c.appendTo(t), t.appendChild(f), (a = !0));
                }
                m();
              }
            }.bind(this),
          ),
          n.on(
            "queueEmptied",
            function (t) {
              t.data && t.data.length
                ? m(!0)
                : (clearInterval(o),
                  d(!1),
                  (i = -1),
                  s && (c.hide(), (s = !1)),
                  n.displayToastMessage(H5P.t("offlineSuccessfulSubmit"), !0, {
                    position: { vertical: "top", offsetVertical: "100" },
                  }));
            }.bind(this),
          ),
          c.on(
            "confirmed",
            function () {
              ((s = !1),
                setTimeout(function () {
                  p();
                }, 100));
            }.bind(this),
          ),
          window.addEventListener(
            "online",
            function () {
              p();
            }.bind(this),
          ),
          window.addEventListener(
            "message",
            function (t) {
              window.parent === t.source &&
                "h5p" === t.data.context &&
                "queueRequest" === t.data.action &&
                this.add(t.data.url, t.data.data);
            }.bind(this),
          ));
        const d = function (t) {
            ((u = !u),
              (u = void 0 !== t ? t : u) && s && (c.hide(), (s = !1)),
              u ? f.classList.add("show") : f.classList.remove("show"));
          },
          p = function () {
            (clearInterval(o), d(!0), n.resumeQueue());
          },
          g = function () {
            (i += 1) >= r.length && (i = r.length - 1);
          },
          m = function (t) {
            s ||
              (d(!1),
              s ||
                (t
                  ? setTimeout(function () {
                      c.show(0);
                    }, 100)
                  : c.show(0)),
              (s = !0),
              (e = new Date().getTime()),
              g(),
              clearInterval(o),
              (o = setInterval(v, 100)));
          },
          v = function () {
            var t = new Date().getTime(),
              t = Math.floor((t - e) / 1e3),
              t = r[i] - t;
            ((h.textContent = t.toString()), t <= 0 && p());
          };
        this.add = function (t, e) {
          if (window.navigator.onLine) return !1;
          n.add(t, e);
        };
      };
    })(H5P.RequestQueue, H5P.ConfirmationDialog)),
    /*!@license H5P.AdvancedText-1.1/text.js by Joubel licensed under unknown license*/ (H5P.AdvancedText =
      (function (r) {
        function t(t, e) {
          r.call(this);
          var n = void 0 === t.text ? "<em>New text</em>" : t.text;
          this.attach = function (t) {
            t.addClass("h5p-advanced-text").html(n);
          };
        }
        return ((t.prototype = Object.create(r.prototype)).constructor = t);
      })((H5P.jQuery, H5P.EventDispatcher))),
    ((H5P = H5P || {}).Table = function (t, e) {
      this.text =
        void 0 === t.text
          ? '<figure class="table"><table class="h5p-table"><thead><tr><th>Heading Column 1</th><th>Heading Column 2</th></tr></thead><tbody><tr><td>Row 1 Col 1</td><td>Row 1 Col 2</td></tr><tr><td>Row 2 Col 1</td><td>Row 2 Col 2</td></tr></tbody></table></figure>'
          : t.text;
    }),
    (H5P.Table.prototype.attach = function (t) {
      t.addClass("h5p-table").html(this.text);
    }) /*!@license H5P.Chart-1.2/chart.js by Joubel licensed under MIT*/,
    (H5P.Chart = (function (r, n) {
      function i(t) {
        var e = this;
        (n.call(e),
          (e.params = t),
          e.params.listOfTypes
            ? i.filterData(e.params.listOfTypes)
            : (e.params.listOfTypes = []),
          e.params.listOfTypes.length ||
            (e.params.listOfTypes = [
              { text: "Cat", value: 1, color: "#D3D3D3", fontColor: "#000" },
              { text: "Dog", value: 2, color: "#ADD8E6", fontColor: "#000" },
              { text: "Mouse", value: 3, color: "#90EE90", fontColor: "#000" },
            ]),
          e.params.figureDefinition || (e.params.figureDefinition = "Chart"),
          (e.type = "pieChart" === e.params.graphMode ? "Pie" : "Bar"));
      }
      return (
        (((i.prototype = Object.create(n.prototype)).constructor =
          i).filterData = function (t) {
          for (var e = 0; e < t.length; e++) {
            var n = t[e];
            void 0 === n.text || void 0 === n.value
              ? (t.splice(e, 1), e--)
              : ((n.text = this.htmlDecode(n.text.trim())),
                (n.value = parseFloat(n.value)),
                ("" !== n.text && !isNaN(n.value)) || (t.splice(e, 1), e--));
          }
        }),
        (i.htmlDecode = function (t) {
          var t = new DOMParser().parseFromString(t, "text/html"),
            e = document.createElement("div");
          return (
            (e.innerHTML = t.documentElement.textContent),
            e.textContent || e.innerText || ""
          );
        }),
        (i.prototype.attach = function (t) {
          var e = this;
          (void 0 === e.$wrapper &&
            ((e.$wrapper = r("<div/>", {
              class: "h5p-chart-chart h5p-chart-" + e.type.toLowerCase(),
            })),
            (e.chart = new H5P.Chart[e.type + "Chart"](e.params, e.$wrapper))),
            (e.$container = t
              .html("")
              .addClass("h5p-chart")
              .append(e.$wrapper)));
          const n = r("<div/>", {
            class: "hidden-but-read",
            html: e.params.figureDefinition,
          });
          (e.params.listOfTypes.forEach(function (t) {
            t = r("<div/>", {
              class: "hidden-but-read",
              html: t.text + ": " + t.value,
            });
            n.append(t);
          }),
            e.$container.append(n),
            e.on("resize", function () {
              e.$container.is(":visible") && e.chart.resize();
            }));
        }),
        i
      );
    })(H5P.jQuery, H5P.EventDispatcher)),
    /*!@license H5P.Chart-1.2/d3.js by Joubel licensed under MIT*/ !(function () {
      var L = { version: "3.5.2" },
        z =
          (Date.now ||
            (Date.now = function () {
              return +new Date();
            }),
          [].slice),
        R = function (t) {
          return z.call(t);
        },
        r = document,
        O = r.documentElement,
        _ = window;
      try {
        R(O.childNodes)[0].nodeType;
      } catch (t) {
        R = function (t) {
          for (var e = t.length, n = new Array(e); e--; ) n[e] = t[e];
          return n;
        };
      }
      try {
        r.createElement("div").style.setProperty("opacity", 0, "");
      } catch (t) {
        var e = _.Element.prototype,
          q = e.setAttribute,
          B = e.setAttributeNS,
          n = _.CSSStyleDeclaration.prototype,
          F = n.setProperty;
        ((e.setAttribute = function (t, e) {
          q.call(this, t, e + "");
        }),
          (e.setAttributeNS = function (t, e, n) {
            B.call(this, t, e, n + "");
          }),
          (n.setProperty = function (t, e, n) {
            F.call(this, t, e + "", n);
          }));
      }
      function $(t, e) {
        return t < e ? -1 : e < t ? 1 : e <= t ? 0 : NaN;
      }
      function U(t) {
        return null === t ? NaN : +t;
      }
      function V(t) {
        return !isNaN(t);
      }
      function t(o) {
        return {
          left: function (t, e, n, r) {
            for (
              arguments.length < 3 && (n = 0),
                arguments.length < 4 && (r = t.length);
              n < r;
            ) {
              var i = (n + r) >>> 1;
              o(t[i], e) < 0 ? (n = 1 + i) : (r = i);
            }
            return n;
          },
          right: function (t, e, n, r) {
            for (
              arguments.length < 3 && (n = 0),
                arguments.length < 4 && (r = t.length);
              n < r;
            ) {
              var i = (n + r) >>> 1;
              0 < o(t[i], e) ? (r = i) : (n = 1 + i);
            }
            return n;
          },
        };
      }
      ((L.ascending = $),
        (L.descending = function (t, e) {
          return e < t ? -1 : t < e ? 1 : t <= e ? 0 : NaN;
        }),
        (L.min = function (t, e) {
          var n,
            r,
            i = -1,
            o = t.length;
          if (1 === arguments.length) {
            for (; ++i < o; )
              if (null != (r = t[i]) && r <= r) {
                n = r;
                break;
              }
            for (; ++i < o; ) null != (r = t[i]) && r < n && (n = r);
          } else {
            for (; ++i < o; )
              if (null != (r = e.call(t, t[i], i)) && r <= r) {
                n = r;
                break;
              }
            for (; ++i < o; )
              null != (r = e.call(t, t[i], i)) && r < n && (n = r);
          }
          return n;
        }),
        (L.max = function (t, e) {
          var n,
            r,
            i = -1,
            o = t.length;
          if (1 === arguments.length) {
            for (; ++i < o; )
              if (null != (r = t[i]) && r <= r) {
                n = r;
                break;
              }
            for (; ++i < o; ) null != (r = t[i]) && n < r && (n = r);
          } else {
            for (; ++i < o; )
              if (null != (r = e.call(t, t[i], i)) && r <= r) {
                n = r;
                break;
              }
            for (; ++i < o; )
              null != (r = e.call(t, t[i], i)) && n < r && (n = r);
          }
          return n;
        }),
        (L.extent = function (t, e) {
          var n,
            r,
            i,
            o = -1,
            a = t.length;
          if (1 === arguments.length) {
            for (; ++o < a; )
              if (null != (r = t[o]) && r <= r) {
                n = i = r;
                break;
              }
            for (; ++o < a; )
              null != (r = t[o]) && (r < n && (n = r), i < r) && (i = r);
          } else {
            for (; ++o < a; )
              if (null != (r = e.call(t, t[o], o)) && r <= r) {
                n = i = r;
                break;
              }
            for (; ++o < a; )
              null != (r = e.call(t, t[o], o)) &&
                (r < n && (n = r), i < r) &&
                (i = r);
          }
          return [n, i];
        }),
        (L.sum = function (t, e) {
          var n,
            r = 0,
            i = t.length,
            o = -1;
          if (1 === arguments.length)
            for (; ++o < i; ) V((n = +t[o])) && (r += n);
          else for (; ++o < i; ) V((n = +e.call(t, t[o], o))) && (r += n);
          return r;
        }),
        (L.mean = function (t, e) {
          var n,
            r = 0,
            i = t.length,
            o = -1,
            a = i;
          if (1 === arguments.length)
            for (; ++o < i; ) V((n = U(t[o]))) ? (r += n) : --a;
          else
            for (; ++o < i; ) V((n = U(e.call(t, t[o], o)))) ? (r += n) : --a;
          if (a) return r / a;
        }),
        (L.quantile = function (t, e) {
          var e = (t.length - 1) * e + 1,
            n = Math.floor(e),
            r = +t[n - 1],
            e = e - n;
          return e ? r + e * (t[n] - r) : r;
        }),
        (L.median = function (t, e) {
          var n,
            r = [],
            i = t.length,
            o = -1;
          if (1 === arguments.length)
            for (; ++o < i; ) V((n = U(t[o]))) && r.push(n);
          else for (; ++o < i; ) V((n = U(e.call(t, t[o], o)))) && r.push(n);
          if (r.length) return L.quantile(r.sort($), 0.5);
        }),
        (L.variance = function (t, e) {
          var n,
            r,
            i = t.length,
            o = 0,
            a = 0,
            s = -1,
            u = 0;
          if (1 === arguments.length)
            for (; ++s < i; )
              V((n = U(t[s]))) && (a += (r = n - o) * (n - (o += r / ++u)));
          else
            for (; ++s < i; )
              V((n = U(e.call(t, t[s], s)))) &&
                (a += (r = n - o) * (n - (o += r / ++u)));
          if (1 < u) return a / (u - 1);
        }),
        (L.deviation = function () {
          var t = L.variance.apply(this, arguments);
          return t && Math.sqrt(t);
        }));
      e = t($);
      function Q(t) {
        return t.length;
      }
      ((L.bisectLeft = e.left),
        (L.bisect = L.bisectRight = e.right),
        (L.bisector = function (n) {
          return t(
            1 === n.length
              ? function (t, e) {
                  return $(n(t), e);
                }
              : n,
          );
        }),
        (L.shuffle = function (t, e, n) {
          (o = arguments.length) < 3 && ((n = t.length), o < 2) && (e = 0);
          for (var r, i, o = n - e; o; )
            ((i = (Math.random() * o--) | 0),
              (r = t[o + e]),
              (t[o + e] = t[i + e]),
              (t[i + e] = r));
          return t;
        }),
        (L.permute = function (t, e) {
          for (var n = e.length, r = new Array(n); n--; ) r[n] = t[e[n]];
          return r;
        }),
        (L.pairs = function (t) {
          for (
            var e = 0, n = t.length - 1, r = t[0], i = new Array(n < 0 ? 0 : n);
            e < n;
          )
            i[e] = [r, (r = t[++e])];
          return i;
        }),
        (L.zip = function () {
          if (!(r = arguments.length)) return [];
          for (var t = -1, e = L.min(arguments, Q), n = new Array(e); ++t < e; )
            for (var r, i = -1, o = (n[t] = new Array(r)); ++i < r; )
              o[i] = arguments[i][t];
          return n;
        }),
        (L.transpose = function (t) {
          return L.zip.apply(L, t);
        }),
        (L.keys = function (t) {
          var e,
            n = [];
          for (e in t) n.push(e);
          return n;
        }),
        (L.values = function (t) {
          var e,
            n = [];
          for (e in t) n.push(t[e]);
          return n;
        }),
        (L.entries = function (t) {
          var e,
            n = [];
          for (e in t) n.push({ key: e, value: t[e] });
          return n;
        }),
        (L.merge = function (t) {
          for (var e, n, r, i = t.length, o = -1, a = 0; ++o < i; )
            a += t[o].length;
          for (n = new Array(a); 0 <= --i; )
            for (e = (r = t[i]).length; 0 <= --e; ) n[--a] = r[e];
          return n;
        }));
      var I = Math.abs;
      function W(t, e) {
        for (var n in e)
          Object.defineProperty(t.prototype, n, {
            value: e[n],
            enumerable: !1,
          });
      }
      function X() {
        this._ = Object.create(null);
      }
      ((L.range = function (t, e, n) {
        if (
          (arguments.length < 3 &&
            ((n = 1), arguments.length < 2) &&
            ((e = t), (t = 0)),
          (e - t) / n == 1 / 0)
        )
          throw new Error("infinite range");
        var r,
          i = [],
          o = (function (t) {
            var e = 1;
            for (; (t * e) % 1; ) e *= 10;
            return e;
          })(I(n)),
          a = -1;
        if (((t *= o), (e *= o), (n *= o) < 0))
          for (; (r = t + n * ++a) > e; ) i.push(r / o);
        else for (; (r = t + n * ++a) < e; ) i.push(r / o);
        return i;
      }),
        (L.map = function (t, e) {
          var n = new X();
          if (t instanceof X)
            t.forEach(function (t, e) {
              n.set(t, e);
            });
          else if (Array.isArray(t)) {
            var r,
              i = -1,
              o = t.length;
            if (1 === arguments.length) for (; ++i < o; ) n.set(i, t[i]);
            else for (; ++i < o; ) n.set(e.call(t, (r = t[i]), i), r);
          } else for (var a in t) n.set(a, t[a]);
          return n;
        }));
      var Y = "__proto__",
        G = "\0";
      function J(t) {
        return (t += "") === Y || t[0] === G ? G + t : t;
      }
      function Z(t) {
        return (t += "")[0] === G ? t.slice(1) : t;
      }
      function K(t) {
        return J(t) in this._;
      }
      function tt(t) {
        return (t = J(t)) in this._ && delete this._[t];
      }
      function et() {
        var t,
          e = [];
        for (t in this._) e.push(Z(t));
        return e;
      }
      function nt() {
        var t,
          e = 0;
        for (t in this._) ++e;
        return e;
      }
      function rt() {
        for (var t in this._) return !1;
        return !0;
      }
      function it() {
        this._ = Object.create(null);
      }
      function ot(t, e) {
        if (e in t) return e;
        e = e.charAt(0).toUpperCase() + e.slice(1);
        for (var n = 0, r = at.length; n < r; ++n) {
          var i = at[n] + e;
          if (i in t) return i;
        }
      }
      (W(X, {
        has: K,
        get: function (t) {
          return this._[J(t)];
        },
        set: function (t, e) {
          return (this._[J(t)] = e);
        },
        remove: tt,
        keys: et,
        values: function () {
          var t,
            e = [];
          for (t in this._) e.push(this._[t]);
          return e;
        },
        entries: function () {
          var t,
            e = [];
          for (t in this._) e.push({ key: Z(t), value: this._[t] });
          return e;
        },
        size: nt,
        empty: rt,
        forEach: function (t) {
          for (var e in this._) t.call(this, Z(e), this._[e]);
        },
      }),
        (L.nest = function () {
          var h,
            f,
            d = {},
            p = [],
            e = [];
          function g(n, t, r) {
            if (r >= p.length) return f ? f.call(d, t) : h ? t.sort(h) : t;
            for (
              var e, i, o, a, s = -1, u = t.length, c = p[r++], l = new X();
              ++s < u;
            )
              (a = l.get((e = c((i = t[s]))))) ? a.push(i) : l.set(e, [i]);
            return (
              (o = n
                ? ((i = n()),
                  function (t, e) {
                    i.set(t, g(n, e, r));
                  })
                : ((i = {}),
                  function (t, e) {
                    i[t] = g(n, e, r);
                  })),
              l.forEach(o),
              i
            );
          }
          return (
            (d.map = function (t, e) {
              return g(e, t, 0);
            }),
            (d.entries = function (t) {
              return (function n(t, r) {
                var i, o;
                return r >= p.length
                  ? t
                  : ((i = []),
                    (o = e[r++]),
                    t.forEach(function (t, e) {
                      i.push({ key: t, values: n(e, r) });
                    }),
                    o
                      ? i.sort(function (t, e) {
                          return o(t.key, e.key);
                        })
                      : i);
              })(g(L.map, t, 0), 0);
            }),
            (d.key = function (t) {
              return (p.push(t), d);
            }),
            (d.sortKeys = function (t) {
              return ((e[p.length - 1] = t), d);
            }),
            (d.sortValues = function (t) {
              return ((h = t), d);
            }),
            (d.rollup = function (t) {
              return ((f = t), d);
            }),
            d
          );
        }),
        (L.set = function (t) {
          var e = new it();
          if (t) for (var n = 0, r = t.length; n < r; ++n) e.add(t[n]);
          return e;
        }),
        W(it, {
          has: K,
          add: function (t) {
            return ((this._[J((t += ""))] = !0), t);
          },
          remove: tt,
          values: et,
          size: nt,
          empty: rt,
          forEach: function (t) {
            for (var e in this._) t.call(this, Z(e));
          },
        }),
        (L.behavior = {}),
        (L.rebind = function (t, e) {
          for (var n, r = 1, i = arguments.length; ++r < i; )
            t[(n = arguments[r])] = (function (e, n, r) {
              return function () {
                var t = r.apply(n, arguments);
                return t === n ? e : t;
              };
            })(t, e, e[n]);
          return t;
        }));
      var at = ["webkit", "ms", "moz", "Moz", "o", "O"];
      function u() {}
      function st() {}
      function ut(i) {
        var o = [],
          r = new X();
        function t() {
          for (var t, e = o, n = -1, r = e.length; ++n < r; )
            (t = e[n].on) && t.apply(this, arguments);
          return i;
        }
        return (
          (t.on = function (t, e) {
            var n = r.get(t);
            return arguments.length < 2
              ? n && n.on
              : (n &&
                  ((n.on = null),
                  (o = o.slice(0, (n = o.indexOf(n))).concat(o.slice(n + 1))),
                  r.remove(t)),
                e && o.push(r.set(t, { on: e })),
                i);
          }),
          t
        );
      }
      function ct() {
        L.event.preventDefault();
      }
      function lt() {
        for (var t, e = L.event; (t = e.sourceEvent); ) e = t;
        return e;
      }
      function ht(i) {
        for (var o = new st(), t = 0, e = arguments.length; ++t < e; )
          o[arguments[t]] = ut(o);
        return (
          (o.of = function (n, r) {
            return function (t) {
              try {
                var e = (t.sourceEvent = L.event);
                ((t.target = i), (L.event = t), o[t.type].apply(n, r));
              } finally {
                L.event = e;
              }
            };
          }),
          o
        );
      }
      ((L.dispatch = function () {
        for (var t = new st(), e = -1, n = arguments.length; ++e < n; )
          t[arguments[e]] = ut(t);
        return t;
      }),
        (st.prototype.on = function (t, e) {
          var n = t.indexOf("."),
            r = "";
          if ((0 <= n && ((r = t.slice(n + 1)), (t = t.slice(0, n))), t))
            return arguments.length < 2 ? this[t].on(r) : this[t].on(r, e);
          if (2 === arguments.length) {
            if (null == e)
              for (t in this) this.hasOwnProperty(t) && this[t].on(r, null);
            return this;
          }
        }),
        (L.event = null),
        (L.requote = function (t) {
          return t.replace(ft, "\\$&");
        }));
      var ft = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,
        dt = {}.__proto__
          ? function (t, e) {
              t.__proto__ = e;
            }
          : function (t, e) {
              for (var n in e) t[n] = e[n];
            };
      function pt(t) {
        return (dt(t, i), t);
      }
      var gt = function (t, e) {
          return e.querySelector(t);
        },
        mt = function (t, e) {
          return e.querySelectorAll(t);
        },
        vt = O.matches || O[ot(O, "matchesSelector")],
        yt = function (t, e) {
          return vt.call(t, e);
        },
        i =
          ("function" == typeof Sizzle &&
            ((gt = function (t, e) {
              return Sizzle(t, e)[0] || null;
            }),
            (yt = (mt = Sizzle).matchesSelector)),
          (L.selection = function () {
            return zt;
          }),
          (L.selection.prototype = []));
      function bt(t) {
        return "function" == typeof t
          ? t
          : function () {
              return gt(t, this);
            };
      }
      function xt(t) {
        return "function" == typeof t
          ? t
          : function () {
              return mt(t, this);
            };
      }
      ((i.select = function (t) {
        var e,
          n,
          r,
          i,
          o = [];
        t = bt(t);
        for (var a = -1, s = this.length; ++a < s; ) {
          (o.push((e = [])), (e.parentNode = (r = this[a]).parentNode));
          for (var u = -1, c = r.length; ++u < c; )
            (i = r[u])
              ? (e.push((n = t.call(i, i.__data__, u, a))),
                n && "__data__" in i && (n.__data__ = i.__data__))
              : e.push(null);
        }
        return pt(o);
      }),
        (i.selectAll = function (t) {
          var e,
            n,
            r = [];
          t = xt(t);
          for (var i = -1, o = this.length; ++i < o; )
            for (var a = this[i], s = -1, u = a.length; ++s < u; )
              (n = a[s]) &&
                (r.push((e = R(t.call(n, n.__data__, s, i)))),
                (e.parentNode = n));
          return pt(r);
        }));
      var wt = {
        svg: "http://www.w3.org/2000/svg",
        xhtml: "http://www.w3.org/1999/xhtml",
        xlink: "http://www.w3.org/1999/xlink",
        xml: "http://www.w3.org/XML/1998/namespace",
        xmlns: "http://www.w3.org/2000/xmlns/",
      };
      function Pt(e, n) {
        return (
          (e = L.ns.qualify(e)),
          null == n
            ? e.local
              ? function () {
                  this.removeAttributeNS(e.space, e.local);
                }
              : function () {
                  this.removeAttribute(e);
                }
            : "function" == typeof n
              ? e.local
                ? function () {
                    var t = n.apply(this, arguments);
                    null == t
                      ? this.removeAttributeNS(e.space, e.local)
                      : this.setAttributeNS(e.space, e.local, t);
                  }
                : function () {
                    var t = n.apply(this, arguments);
                    null == t
                      ? this.removeAttribute(e)
                      : this.setAttribute(e, t);
                  }
              : e.local
                ? function () {
                    this.setAttributeNS(e.space, e.local, n);
                  }
                : function () {
                    this.setAttribute(e, n);
                  }
        );
      }
      function Ht(t) {
        return t.trim().replace(/\s+/g, " ");
      }
      function Ct(t) {
        return new RegExp("(?:^|\\s+)" + L.requote(t) + "(?:\\s+|$)", "g");
      }
      function St(t) {
        return (t + "").trim().split(/^|\s+/);
      }
      function kt(n, r) {
        var i = (n = St(n).map(Tt)).length;
        return "function" == typeof r
          ? function () {
              for (var t = -1, e = r.apply(this, arguments); ++t < i; )
                n[t](this, e);
            }
          : function () {
              for (var t = -1; ++t < i; ) n[t](this, r);
            };
      }
      function Tt(r) {
        var i = Ct(r);
        return function (t, e) {
          if ((n = t.classList)) return e ? n.add(r) : n.remove(r);
          var n = t.getAttribute("class") || "";
          e
            ? ((i.lastIndex = 0),
              i.test(n) || t.setAttribute("class", Ht(n + " " + r)))
            : t.setAttribute("class", Ht(n.replace(i, " ")));
        };
      }
      function Mt(e, n, r) {
        return null == n
          ? function () {
              this.style.removeProperty(e);
            }
          : "function" == typeof n
            ? function () {
                var t = n.apply(this, arguments);
                null == t
                  ? this.style.removeProperty(e)
                  : this.style.setProperty(e, t, r);
              }
            : function () {
                this.style.setProperty(e, n, r);
              };
      }
      function At(e, n) {
        return null == n
          ? function () {
              delete this[e];
            }
          : "function" == typeof n
            ? function () {
                var t = n.apply(this, arguments);
                null == t ? delete this[e] : (this[e] = t);
              }
            : function () {
                this[e] = n;
              };
      }
      function Et(t) {
        return "function" == typeof t
          ? t
          : (t = L.ns.qualify(t)).local
            ? function () {
                return this.ownerDocument.createElementNS(t.space, t.local);
              }
            : function () {
                return this.ownerDocument.createElementNS(this.namespaceURI, t);
              };
      }
      function It() {
        var t = this.parentNode;
        t && t.removeChild(this);
      }
      function Dt(t) {
        return { __data__: t };
      }
      function Lt(t) {
        return function () {
          return yt(this, t);
        };
      }
      function _t(t, e) {
        for (var n = 0, r = t.length; n < r; n++)
          for (var i, o = t[n], a = 0, s = o.length; a < s; a++)
            (i = o[a]) && e(i, a, n);
        return t;
      }
      function Nt(t) {
        return (dt(t, jt), t);
      }
      ((L.ns = {
        prefix: wt,
        qualify: function (t) {
          var e = t.indexOf(":"),
            n = t;
          return (
            0 <= e && ((n = t.slice(0, e)), (t = t.slice(e + 1))),
            wt.hasOwnProperty(n) ? { space: wt[n], local: t } : t
          );
        },
      }),
        (i.attr = function (t, e) {
          if (arguments.length < 2) {
            var n;
            if ("string" == typeof t)
              return (
                (n = this.node()),
                (t = L.ns.qualify(t)).local
                  ? n.getAttributeNS(t.space, t.local)
                  : n.getAttribute(t)
              );
            for (e in t) this.each(Pt(e, t[e]));
            return this;
          }
          return this.each(Pt(t, e));
        }),
        (i.classed = function (t, e) {
          if (arguments.length < 2) {
            if ("string" == typeof t) {
              var n = this.node(),
                r = (t = St(t)).length,
                i = -1;
              if ((e = n.classList)) {
                for (; ++i < r; ) if (!e.contains(t[i])) return !1;
              } else
                for (e = n.getAttribute("class"); ++i < r; )
                  if (!Ct(t[i]).test(e)) return !1;
              return !0;
            }
            for (e in t) this.each(kt(e, t[e]));
            return this;
          }
          return this.each(kt(t, e));
        }),
        (i.style = function (t, e, n) {
          var r = arguments.length;
          if (r < 3) {
            if ("string" != typeof t) {
              for (n in (r < 2 && (e = ""), t)) this.each(Mt(n, t[n], e));
              return this;
            }
            if (r < 2)
              return _.getComputedStyle(this.node(), null).getPropertyValue(t);
            n = "";
          }
          return this.each(Mt(t, e, n));
        }),
        (i.property = function (t, e) {
          if (arguments.length < 2) {
            if ("string" == typeof t) return this.node()[t];
            for (e in t) this.each(At(e, t[e]));
            return this;
          }
          return this.each(At(t, e));
        }),
        (i.text = function (e) {
          return arguments.length
            ? this.each(
                "function" == typeof e
                  ? function () {
                      var t = e.apply(this, arguments);
                      this.textContent = null == t ? "" : t;
                    }
                  : null == e
                    ? function () {
                        this.textContent = "";
                      }
                    : function () {
                        this.textContent = e;
                      },
              )
            : this.node().textContent;
        }),
        (i.html = function (e) {
          return arguments.length
            ? this.each(
                "function" == typeof e
                  ? function () {
                      var t = e.apply(this, arguments);
                      this.innerHTML = null == t ? "" : t;
                    }
                  : null == e
                    ? function () {
                        this.innerHTML = "";
                      }
                    : function () {
                        this.innerHTML = e;
                      },
              )
            : this.node().innerHTML;
        }),
        (i.append = function (t) {
          return (
            (t = Et(t)),
            this.select(function () {
              return this.appendChild(t.apply(this, arguments));
            })
          );
        }),
        (i.insert = function (t, e) {
          return (
            (t = Et(t)),
            (e = bt(e)),
            this.select(function () {
              return this.insertBefore(
                t.apply(this, arguments),
                e.apply(this, arguments) || null,
              );
            })
          );
        }),
        (i.remove = function () {
          return this.each(It);
        }),
        (i.data = function (t, p) {
          var e,
            n,
            r = -1,
            i = this.length;
          if (!arguments.length) {
            for (t = new Array((i = (e = this[0]).length)); ++r < i; )
              (n = e[r]) && (t[r] = n.__data__);
            return t;
          }
          function o(t, e) {
            var n,
              r,
              i = t.length,
              o = e.length,
              a = Math.min(i, o),
              s = new Array(o),
              u = new Array(o),
              c = new Array(i);
            if (p) {
              for (var l, h = new X(), f = new Array(i), d = -1; ++d < i; )
                (h.has((l = p.call((n = t[d]), n.__data__, d)))
                  ? (c[d] = n)
                  : h.set(l, n),
                  (f[d] = l));
              for (d = -1; ++d < o; )
                ((n = h.get((l = p.call(e, (r = e[d]), d))))
                  ? !0 !== n && ((s[d] = n).__data__ = r)
                  : (u[d] = Dt(r)),
                  h.set(l, !0));
              for (d = -1; ++d < i; ) !0 !== h.get(f[d]) && (c[d] = t[d]);
            } else {
              for (d = -1; ++d < a; )
                ((n = t[d]),
                  (r = e[d]),
                  n ? ((n.__data__ = r), (s[d] = n)) : (u[d] = Dt(r)));
              for (; d < o; ++d) u[d] = Dt(e[d]);
              for (; d < i; ++d) c[d] = t[d];
            }
            ((u.update = s),
              (u.parentNode = s.parentNode = c.parentNode = t.parentNode),
              g.push(u),
              m.push(s),
              v.push(c));
          }
          var g = Nt([]),
            m = pt([]),
            v = pt([]);
          if ("function" == typeof t)
            for (; ++r < i; )
              o((e = this[r]), t.call(e, e.parentNode.__data__, r));
          else for (; ++r < i; ) o((e = this[r]), t);
          return (
            (m.enter = function () {
              return g;
            }),
            (m.exit = function () {
              return v;
            }),
            m
          );
        }),
        (i.datum = function (t) {
          return arguments.length
            ? this.property("__data__", t)
            : this.property("__data__");
        }),
        (i.filter = function (t) {
          var e,
            n,
            r,
            i = [];
          "function" != typeof t && (t = Lt(t));
          for (var o = 0, a = this.length; o < a; o++) {
            (i.push((e = [])), (e.parentNode = (n = this[o]).parentNode));
            for (var s = 0, u = n.length; s < u; s++)
              (r = n[s]) && t.call(r, r.__data__, s, o) && e.push(r);
          }
          return pt(i);
        }),
        (i.order = function () {
          for (var t = -1, e = this.length; ++t < e; )
            for (var n, r = this[t], i = r.length - 1, o = r[i]; 0 <= --i; )
              (n = r[i]) &&
                (o && o !== n.nextSibling && o.parentNode.insertBefore(n, o),
                (o = n));
          return this;
        }),
        (i.sort = function (t) {
          t = function (n) {
            arguments.length || (n = $);
            return function (t, e) {
              return t && e ? n(t.__data__, e.__data__) : !t - !e;
            };
          }.apply(this, arguments);
          for (var e = -1, n = this.length; ++e < n; ) this[e].sort(t);
          return this.order();
        }),
        (i.each = function (r) {
          return _t(this, function (t, e, n) {
            r.call(t, t.__data__, e, n);
          });
        }),
        (i.call = function (t) {
          var e = R(arguments);
          return (t.apply((e[0] = this), e), this);
        }),
        (i.empty = function () {
          return !this.node();
        }),
        (i.node = function () {
          for (var t = 0, e = this.length; t < e; t++)
            for (var n = this[t], r = 0, i = n.length; r < i; r++) {
              var o = n[r];
              if (o) return o;
            }
          return null;
        }),
        (i.size = function () {
          var t = 0;
          return (
            _t(this, function () {
              ++t;
            }),
            t
          );
        }));
      var jt = [];
      ((L.selection.enter = Nt),
        ((L.selection.enter.prototype = jt).append = i.append),
        (jt.empty = i.empty),
        (jt.node = i.node),
        (jt.call = i.call),
        (jt.size = i.size),
        (jt.select = function (t) {
          for (var e, n, r, i, o, a = [], s = -1, u = this.length; ++s < u; ) {
            ((r = (i = this[s]).update),
              a.push((e = [])),
              (e.parentNode = i.parentNode));
            for (var c = -1, l = i.length; ++c < l; )
              (o = i[c])
                ? (e.push((r[c] = n = t.call(i.parentNode, o.__data__, c, s))),
                  (n.__data__ = o.__data__))
                : e.push(null);
          }
          return pt(a);
        }),
        (jt.insert = function (t, e) {
          var a, s, u;
          return (
            arguments.length < 2 &&
              ((a = this),
              (e = function (t, e, n) {
                var r,
                  i = a[n].update,
                  o = i.length;
                for (
                  n != u && ((u = n), (s = 0)), s <= e && (s = e + 1);
                  !(r = i[s]) && ++s < o;
                );
                return r;
              })),
            i.insert.call(this, t, e)
          );
        }),
        (L.select = function (t) {
          t = ["string" == typeof t ? gt(t, r) : t];
          return ((t.parentNode = O), pt([t]));
        }),
        (L.selectAll = function (t) {
          t = R("string" == typeof t ? mt(t, r) : t);
          return ((t.parentNode = O), pt([t]));
        }));
      var zt = L.select(O);
      function Rt(i, e, n) {
        var r = "__on" + i,
          t = i.indexOf("."),
          o = qt,
          a = (0 < t && (i = i.slice(0, t)), Ot.get(i));
        function s() {
          var t = this[r];
          t && (this.removeEventListener(i, t, t.$), delete this[r]);
        }
        return (
          a && ((i = a), (o = Bt)),
          t
            ? e
              ? function () {
                  var t = o(e, R(arguments));
                  (s.call(this),
                    this.addEventListener(i, (this[r] = t), (t.$ = n)),
                    (t._ = e));
                }
              : s
            : e
              ? u
              : function () {
                  var t,
                    e,
                    n,
                    r = new RegExp("^__on([^.]+)" + L.requote(i) + "$");
                  for (e in this)
                    (t = e.match(r)) &&
                      ((n = this[e]),
                      this.removeEventListener(t[1], n, n.$),
                      delete this[e]);
                }
        );
      }
      i.on = function (t, e, n) {
        var r = arguments.length;
        if (r < 3) {
          if ("string" != typeof t) {
            for (n in (r < 2 && (e = !1), t)) this.each(Rt(n, t[n], e));
            return this;
          }
          if (r < 2) return (r = this.node()["__on" + t]) && r._;
          n = !1;
        }
        return this.each(Rt(t, e, n));
      };
      var Ot = L.map({ mouseenter: "mouseover", mouseleave: "mouseout" });
      function qt(n, r) {
        return function (t) {
          var e = L.event;
          ((L.event = t), (r[0] = this.__data__));
          try {
            n.apply(this, r);
          } finally {
            L.event = e;
          }
        };
      }
      function Bt(t, e) {
        var n = qt(t, e);
        return function (t) {
          var e = t.relatedTarget;
          (e && (e === this || 8 & e.compareDocumentPosition(this))) ||
            n.call(this, t);
        };
      }
      Ot.forEach(function (t) {
        "on" + t in r && Ot.remove(t);
      });
      var Ft = "onselectstart" in r ? null : ot(O.style, "userSelect"),
        $t = 0;
      function Ut() {
        var n,
          r,
          i = ".dragsuppress-" + ++$t,
          o = "click" + i,
          a = L.select(_)
            .on("touchmove" + i, ct)
            .on("dragstart" + i, ct)
            .on("selectstart" + i, ct);
        return (
          Ft && ((n = O.style), (r = n[Ft]), (n[Ft] = "none")),
          function (t) {
            var e;
            (a.on(i, null),
              Ft && (n[Ft] = r),
              t &&
                ((e = function () {
                  a.on(o, null);
                }),
                a.on(
                  o,
                  function () {
                    (ct(), e());
                  },
                  !0,
                ),
                setTimeout(e, 0)));
          }
        );
      }
      L.mouse = function (t) {
        return Qt(t, lt());
      };
      var Vt = /WebKit/.test(_.navigator.userAgent) ? -1 : 0;
      function Qt(t, e) {
        e.changedTouches && (e = e.changedTouches[0]);
        var n,
          r,
          i = t.ownerSVGElement || t;
        return i.createSVGPoint
          ? ((n = i.createSVGPoint()),
            Vt < 0 &&
              (_.scrollX || _.scrollY) &&
              ((r = (i = L.select("body")
                .append("svg")
                .style(
                  {
                    position: "absolute",
                    top: 0,
                    left: 0,
                    margin: 0,
                    padding: 0,
                    border: "none",
                  },
                  "important",
                ))[0][0].getScreenCTM()),
              (Vt = !(r.f || r.e)),
              i.remove()),
            Vt
              ? ((n.x = e.pageX), (n.y = e.pageY))
              : ((n.x = e.clientX), (n.y = e.clientY)),
            [(n = n.matrixTransform(t.getScreenCTM().inverse())).x, n.y])
          : ((r = t.getBoundingClientRect()),
            [
              e.clientX - r.left - t.clientLeft,
              e.clientY - r.top - t.clientTop,
            ]);
      }
      function Wt() {
        return L.event.changedTouches[0].identifier;
      }
      function Xt() {
        return L.event.target;
      }
      function Yt() {
        return _;
      }
      ((L.touch = function (t, e, n) {
        if ((arguments.length < 3 && ((n = e), (e = lt().changedTouches)), e))
          for (var r, i = 0, o = e.length; i < o; ++i)
            if ((r = e[i]).identifier === n) return Qt(t, r);
      }),
        (L.behavior.drag = function () {
          var g = ht(n, "drag", "dragstart", "dragend"),
            m = null,
            t = r(u, L.mouse, Yt, "mousemove", "mouseup"),
            e = r(Wt, L.touch, Xt, "touchmove", "touchend");
          function n() {
            this.on("mousedown.drag", t).on("touchstart.drag", e);
          }
          function r(l, h, f, d, p) {
            return function () {
              var r,
                t = L.event.target,
                i = this.parentNode,
                o = g.of(this, arguments),
                a = 0,
                s = l(),
                e = ".drag" + (null == s ? "" : "-" + s),
                n = L.select(f())
                  .on(d + e, function () {
                    var t,
                      e,
                      n = h(i, s);
                    n &&
                      ((t = n[0] - c[0]),
                      (e = n[1] - c[1]),
                      (a |= t | e),
                      o({
                        type: "drag",
                        x: (c = n)[0] + r[0],
                        y: n[1] + r[1],
                        dx: t,
                        dy: e,
                      }));
                  })
                  .on(p + e, function () {
                    h(i, s) &&
                      (n.on(d + e, null).on(p + e, null),
                      u(a && L.event.target === t),
                      o({ type: "dragend" }));
                  }),
                u = Ut(),
                c = h(i, s);
              ((r = m
                ? [(r = m.apply(this, arguments)).x - c[0], r.y - c[1]]
                : [0, 0]),
                o({ type: "dragstart" }));
            };
          }
          return (
            (n.origin = function (t) {
              return arguments.length ? ((m = t), n) : m;
            }),
            L.rebind(n, g, "on")
          );
        }),
        (L.touches = function (n, t) {
          return (t = arguments.length < 2 ? lt().touches : t)
            ? R(t).map(function (t) {
                var e = Qt(n, t);
                return ((e.identifier = t.identifier), e);
              })
            : [];
        }));
      var D = 1e-6,
        Gt = D * D,
        A = Math.PI,
        S = 2 * A,
        Jt = S - D,
        E = A / 2,
        C = A / 180,
        k = 180 / A;
      function Zt(t) {
        return 0 < t ? 1 : t < 0 ? -1 : 0;
      }
      function Kt(t, e, n) {
        return (e[0] - t[0]) * (n[1] - t[1]) - (e[1] - t[1]) * (n[0] - t[0]);
      }
      function te(t) {
        return 1 < t ? 0 : t < -1 ? A : Math.acos(t);
      }
      function ee(t) {
        return 1 < t ? E : t < -1 ? -E : Math.asin(t);
      }
      function ne(t) {
        return ((t = Math.exp(t)) + 1 / t) / 2;
      }
      function re(t) {
        return (t = Math.sin(t / 2)) * t;
      }
      var ie,
        oe = Math.SQRT2,
        ae =
          ((L.interpolateZoom = function (t, e) {
            var i = t[0],
              o = t[1],
              a = t[2],
              t = e[0],
              n = e[1],
              e = e[2],
              s = t - i,
              u = n - o,
              t = s * s + u * u,
              c = Math.sqrt(t),
              n = (e * e - a * a + 4 * t) / (2 * a * 2 * c),
              t = (e * e - a * a - 4 * t) / (2 * e * 2 * c),
              l = Math.log(Math.sqrt(n * n + 1) - n),
              h = Math.log(Math.sqrt(t * t + 1) - t) - l,
              f = (h || Math.log(e / a)) / oe;
            function r(t) {
              var e,
                n,
                r = t * f;
              return h
                ? ((e = ne(l)),
                  (n =
                    (a / (2 * c)) *
                    (e *
                      ((n = oe * r + l),
                      ((n = Math.exp(2 * n)) - 1) / (n + 1)) -
                      ((n = l), ((n = Math.exp(l)) - 1 / n) / 2))),
                  [i + n * s, o + n * u, (a * e) / ne(oe * r + l)])
                : [i + t * s, o + t * u, a * Math.exp(oe * r)];
            }
            return ((r.duration = 1e3 * f), r);
          }),
          (L.behavior.zoom = function () {
            var e,
              s,
              n,
              r,
              y,
              i,
              o,
              a,
              u,
              b = { x: 0, y: 0, k: 1 },
              c = [960, 500],
              l = ae,
              h = 250,
              f = 0,
              x = "mousedown.zoom",
              d = "mousemove.zoom",
              p = "mouseup.zoom",
              w = "touchstart.zoom",
              P = ht(g, "zoomstart", "zoom", "zoomend");
            function g(t) {
              t.on(x, E)
                .on(se + ".zoom", v)
                .on("dblclick.zoom", D)
                .on(w, I);
            }
            function H(t) {
              return [(t[0] - b.x) / b.k, (t[1] - b.y) / b.k];
            }
            function C(t) {
              b.k = Math.max(l[0], Math.min(l[1], t));
            }
            function S(t, e) {
              var n;
              ((e = [(n = e)[0] * b.k + b.x, n[1] * b.k + b.y]),
                (b.x += t[0] - e[0]),
                (b.y += t[1] - e[1]));
            }
            function k(t, e, n, r) {
              ((t.__chart__ = { x: b.x, y: b.y, k: b.k }),
                C(Math.pow(2, r)),
                S((s = e), n),
                (t = L.select(t)),
                (t = 0 < h ? t.transition().duration(h) : t).call(g.event));
            }
            function m() {
              (o &&
                o.domain(
                  i
                    .range()
                    .map(function (t) {
                      return (t - b.x) / b.k;
                    })
                    .map(i.invert),
                ),
                u &&
                  u.domain(
                    a
                      .range()
                      .map(function (t) {
                        return (t - b.y) / b.k;
                      })
                      .map(a.invert),
                  ));
            }
            function T(t) {
              f++ || t({ type: "zoomstart" });
            }
            function M(t) {
              (m(), t({ type: "zoom", scale: b.k, translate: [b.x, b.y] }));
            }
            function A(t) {
              (--f || t({ type: "zoomend" }), (s = null));
            }
            function E() {
              var t = this,
                e = L.event.target,
                n = P.of(t, arguments),
                r = 0,
                i = L.select(_)
                  .on(d, function () {
                    ((r = 1), S(L.mouse(t), o), M(n));
                  })
                  .on(p, function () {
                    (i.on(d, null).on(p, null),
                      a(r && L.event.target === e),
                      A(n));
                  }),
                o = H(L.mouse(t)),
                a = Ut();
              (Ss.call(t), T(n));
            }
            function I() {
              var u,
                c = this,
                l = P.of(c, arguments),
                h = {},
                f = 0,
                i = ".zoom-" + L.event.changedTouches[0].identifier,
                a = "touchmove" + i,
                s = "touchend" + i,
                d = [],
                o = L.select(c),
                p = Ut();
              function g() {
                var t = L.touches(c);
                return (
                  (u = b.k),
                  t.forEach(function (t) {
                    t.identifier in h && (h[t.identifier] = H(t));
                  }),
                  t
                );
              }
              function t() {
                for (
                  var t = L.event.target,
                    e =
                      (L.select(t).on(a, m).on(s, v),
                      d.push(t),
                      L.event.changedTouches),
                    n = 0,
                    r = e.length;
                  n < r;
                  ++n
                )
                  h[e[n].identifier] = null;
                var i,
                  t = g(),
                  o = Date.now();
                1 === t.length
                  ? (o - y < 500 &&
                      ((i = t[0]),
                      k(
                        c,
                        i,
                        h[i.identifier],
                        Math.floor(Math.log(b.k) / Math.LN2) + 1,
                      ),
                      ct()),
                    (y = o))
                  : 1 < t.length &&
                    ((i = t[0]),
                    (o = t[1]),
                    (t = i[0] - o[0]),
                    (i = i[1] - o[1]),
                    (f = t * t + i * i));
              }
              function m() {
                var t,
                  e,
                  n = L.touches(c);
                Ss.call(c);
                for (var r, i, o, a = 0, s = n.length; a < s; ++a, e = null)
                  if (((t = n[a]), (e = h[t.identifier]))) {
                    if (o) break;
                    ((i = t), (o = e));
                  }
                (e &&
                  ((r = (r = t[0] - i[0]) * r + (r = t[1] - i[1]) * r),
                  (r = f && Math.sqrt(r / f)),
                  (i = [(i[0] + t[0]) / 2, (i[1] + t[1]) / 2]),
                  (o = [(o[0] + e[0]) / 2, (o[1] + e[1]) / 2]),
                  C(r * u)),
                  (y = null),
                  S(i, o),
                  M(l));
              }
              function v() {
                if (L.event.touches.length) {
                  for (
                    var t, e = L.event.changedTouches, n = 0, r = e.length;
                    n < r;
                    ++n
                  )
                    delete h[e[n].identifier];
                  for (t in h) return void g();
                }
                (L.selectAll(d).on(i, null), o.on(x, E).on(w, I), p(), A(l));
              }
              (t(), T(l), o.on(x, null).on(w, t));
            }
            function v() {
              var t = P.of(this, arguments);
              (r
                ? clearTimeout(r)
                : ((e = H((s = n || L.mouse(this)))), Ss.call(this), T(t)),
                (r = setTimeout(function () {
                  ((r = null), A(t));
                }, 50)),
                ct(),
                C(Math.pow(2, 0.002 * ie()) * b.k),
                S(s, e),
                M(t));
            }
            function D() {
              var t = L.mouse(this),
                e = Math.log(b.k) / Math.LN2;
              k(
                this,
                t,
                H(t),
                L.event.shiftKey ? Math.ceil(e) - 1 : Math.floor(e) + 1,
              );
            }
            return (
              (g.event = function (t) {
                t.each(function () {
                  var a = P.of(this, arguments),
                    e = b;
                  Ms
                    ? L.select(this)
                        .transition()
                        .each("start.zoom", function () {
                          ((b = this.__chart__ || { x: 0, y: 0, k: 1 }), T(a));
                        })
                        .tween("zoom:zoom", function () {
                          var n = c[0],
                            t = c[1],
                            r = s ? s[0] : n / 2,
                            i = s ? s[1] : t / 2,
                            o = L.interpolateZoom(
                              [(r - b.x) / b.k, (i - b.y) / b.k, n / b.k],
                              [(r - e.x) / e.k, (i - e.y) / e.k, n / e.k],
                            );
                          return function (t) {
                            var t = o(t),
                              e = n / t[2];
                            ((this.__chart__ = b =
                              { x: r - t[0] * e, y: i - t[1] * e, k: e }),
                              M(a));
                          };
                        })
                        .each("interrupt.zoom", function () {
                          A(a);
                        })
                        .each("end.zoom", function () {
                          A(a);
                        })
                    : ((this.__chart__ = b), T(a), M(a), A(a));
                });
              }),
              (g.translate = function (t) {
                return arguments.length
                  ? ((b = { x: +t[0], y: +t[1], k: b.k }), m(), g)
                  : [b.x, b.y];
              }),
              (g.scale = function (t) {
                return arguments.length
                  ? ((b = { x: b.x, y: b.y, k: +t }), m(), g)
                  : b.k;
              }),
              (g.scaleExtent = function (t) {
                return arguments.length
                  ? ((l = null == t ? ae : [+t[0], +t[1]]), g)
                  : l;
              }),
              (g.center = function (t) {
                return arguments.length ? ((n = t && [+t[0], +t[1]]), g) : n;
              }),
              (g.size = function (t) {
                return arguments.length ? ((c = t && [+t[0], +t[1]]), g) : c;
              }),
              (g.duration = function (t) {
                return arguments.length ? ((h = +t), g) : h;
              }),
              (g.x = function (t) {
                return arguments.length
                  ? ((i = (o = t).copy()), (b = { x: 0, y: 0, k: 1 }), g)
                  : o;
              }),
              (g.y = function (t) {
                return arguments.length
                  ? ((a = (u = t).copy()), (b = { x: 0, y: 0, k: 1 }), g)
                  : u;
              }),
              L.rebind(g, P, "on")
            );
          }),
          [0, 1 / 0]),
        se =
          "onwheel" in r
            ? ((ie = function () {
                return -L.event.deltaY * (L.event.deltaMode ? 120 : 1);
              }),
              "wheel")
            : "onmousewheel" in r
              ? ((ie = function () {
                  return L.event.wheelDelta;
                }),
                "mousewheel")
              : ((ie = function () {
                  return -L.event.detail;
                }),
                "MozMousePixelScroll");
      function ue() {}
      function ce(t, e, n) {
        return this instanceof ce
          ? ((this.h = +t), (this.s = +e), void (this.l = +n))
          : arguments.length < 2
            ? t instanceof ce
              ? new ce(t.h, t.s, t.l)
              : Ce("" + t, Se, ce)
            : new ce(t, e, n);
      }
      (L.color = ue).prototype.toString = function () {
        return this.rgb() + "";
      };
      n = (L.hsl = ce).prototype = new ue();
      function le(t, e, n) {
        var r, i;
        function o(t) {
          return Math.round(
            255 *
              (360 < (t = t) ? (t -= 360) : t < 0 && (t += 360),
              t < 60
                ? r + ((i - r) * t) / 60
                : t < 180
                  ? i
                  : t < 240
                    ? r + ((i - r) * (240 - t)) / 60
                    : r),
          );
        }
        return (
          (t = isNaN(t) ? 0 : (t %= 360) < 0 ? t + 360 : t),
          (e = isNaN(e) || e < 0 ? 0 : 1 < e ? 1 : e),
          (r =
            2 * (n = n < 0 ? 0 : 1 < n ? 1 : n) -
            (i = n <= 0.5 ? n * (1 + e) : n + e - n * e)),
          new s(o(t + 120), o(t), o(t - 120))
        );
      }
      function o(t, e, n) {
        return this instanceof o
          ? ((this.h = +t), (this.c = +e), void (this.l = +n))
          : arguments.length < 2
            ? t instanceof o
              ? new o(t.h, t.c, t.l)
              : ve(
                  (t instanceof a ? t : (t = ke((t = L.rgb(t)).r, t.g, t.b))).l,
                  t.a,
                  t.b,
                )
            : new o(t, e, n);
      }
      ((n.brighter = function (t) {
        return (
          (t = Math.pow(0.7, arguments.length ? t : 1)),
          new ce(this.h, this.s, this.l / t)
        );
      }),
        (n.darker = function (t) {
          return (
            (t = Math.pow(0.7, arguments.length ? t : 1)),
            new ce(this.h, this.s, t * this.l)
          );
        }),
        (n.rgb = function () {
          return le(this.h, this.s, this.l);
        }));
      e = (L.hcl = o).prototype = new ue();
      function he(t, e, n) {
        return (
          isNaN(t) && (t = 0),
          isNaN(e) && (e = 0),
          new a(n, Math.cos((t *= C)) * e, Math.sin(t) * e)
        );
      }
      function a(t, e, n) {
        return this instanceof a
          ? ((this.l = +t), (this.a = +e), void (this.b = +n))
          : arguments.length < 2
            ? t instanceof a
              ? new a(t.l, t.a, t.b)
              : t instanceof o
                ? he(t.h, t.c, t.l)
                : ke((t = s(t)).r, t.g, t.b)
            : new a(t, e, n);
      }
      ((e.brighter = function (t) {
        return new o(
          this.h,
          this.c,
          Math.min(100, this.l + fe * (arguments.length ? t : 1)),
        );
      }),
        (e.darker = function (t) {
          return new o(
            this.h,
            this.c,
            Math.max(0, this.l - fe * (arguments.length ? t : 1)),
          );
        }),
        (e.rgb = function () {
          return he(this.h, this.c, this.l).rgb();
        }),
        (L.lab = a));
      var fe = 18,
        de = 0.95047,
        pe = 1,
        ge = 1.08883,
        n = (a.prototype = new ue());
      function me(t, e, n) {
        ((t = (t + 16) / 116), (n = t - n / 200));
        return new s(
          xe(
            3.2404542 * (e = ye(t + e / 500) * de) -
              1.5371385 * (t = ye(t) * pe) -
              0.4985314 * (n = ye(n) * ge),
          ),
          xe(-0.969266 * e + 1.8760108 * t + 0.041556 * n),
          xe(0.0556434 * e - 0.2040259 * t + 1.0572252 * n),
        );
      }
      function ve(t, e, n) {
        return 0 < t
          ? new o(Math.atan2(n, e) * k, Math.sqrt(e * e + n * n), t)
          : new o(NaN, NaN, t);
      }
      function ye(t) {
        return 0.206893034 < t ? t * t * t : (t - 4 / 29) / 7.787037;
      }
      function be(t) {
        return 0.008856 < t ? Math.pow(t, 1 / 3) : 7.787037 * t + 4 / 29;
      }
      function xe(t) {
        return Math.round(
          255 *
            (t <= 0.00304 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055),
        );
      }
      function s(t, e, n) {
        return this instanceof s
          ? ((this.r = ~~t), (this.g = ~~e), void (this.b = ~~n))
          : arguments.length < 2
            ? t instanceof s
              ? new s(t.r, t.g, t.b)
              : Ce("" + t, s, le)
            : new s(t, e, n);
      }
      function we(t) {
        return new s(t >> 16, (t >> 8) & 255, 255 & t);
      }
      function Pe(t) {
        return we(t) + "";
      }
      ((n.brighter = function (t) {
        return new a(
          Math.min(100, this.l + fe * (arguments.length ? t : 1)),
          this.a,
          this.b,
        );
      }),
        (n.darker = function (t) {
          return new a(
            Math.max(0, this.l - fe * (arguments.length ? t : 1)),
            this.a,
            this.b,
          );
        }),
        (n.rgb = function () {
          return me(this.l, this.a, this.b);
        }));
      e = (L.rgb = s).prototype = new ue();
      function He(t) {
        return t < 16
          ? "0" + Math.max(0, t).toString(16)
          : Math.min(255, t).toString(16);
      }
      function Ce(t, e, n) {
        var r,
          i = 0,
          o = 0,
          a = 0,
          s = /([a-z]+)\((.*)\)/i.exec(t);
        if (s)
          switch (((r = s[2].split(",")), s[1])) {
            case "hsl":
              return n(
                parseFloat(r[0]),
                parseFloat(r[1]) / 100,
                parseFloat(r[2]) / 100,
              );
            case "rgb":
              return e(Me(r[0]), Me(r[1]), Me(r[2]));
          }
        return (s = Ae.get(t))
          ? e(s.r, s.g, s.b)
          : (null == t ||
              "#" !== t.charAt(0) ||
              isNaN((s = parseInt(t.slice(1), 16))) ||
              (4 === t.length
                ? ((i = (3840 & s) >> 4),
                  (i |= i >> 4),
                  (o = 240 & s),
                  (o |= o >> 4),
                  (a = 15 & s),
                  (a |= a << 4))
                : 7 === t.length &&
                  ((i = (16711680 & s) >> 16),
                  (o = (65280 & s) >> 8),
                  (a = 255 & s))),
            e(i, o, a));
      }
      function Se(t, e, n) {
        var r,
          i,
          o = Math.min((t /= 255), (e /= 255), (n /= 255)),
          a = Math.max(t, e, n),
          s = a - o,
          u = (a + o) / 2;
        return (
          s
            ? ((i = u < 0.5 ? s / (a + o) : s / (2 - a - o)),
              (r =
                t == a
                  ? (e - n) / s + (e < n ? 6 : 0)
                  : e == a
                    ? (n - t) / s + 2
                    : (t - e) / s + 4),
              (r *= 60))
            : ((r = NaN), (i = 0 < u && u < 1 ? 0 : r)),
          new ce(r, i, u)
        );
      }
      function ke(t, e, n) {
        var r = be(
            (0.4124564 * (t = Te(t)) +
              0.3575761 * (e = Te(e)) +
              0.1804375 * (n = Te(n))) /
              de,
          ),
          i = be((0.2126729 * t + 0.7151522 * e + 0.072175 * n) / pe);
        return a(
          116 * i - 16,
          500 * (r - i),
          200 * (i - be((0.0193339 * t + 0.119192 * e + 0.9503041 * n) / ge)),
        );
      }
      function Te(t) {
        return (t /= 255) <= 0.04045
          ? t / 12.92
          : Math.pow((t + 0.055) / 1.055, 2.4);
      }
      function Me(t) {
        var e = parseFloat(t);
        return "%" === t.charAt(t.length - 1) ? Math.round(2.55 * e) : e;
      }
      ((e.brighter = function (t) {
        t = Math.pow(0.7, arguments.length ? t : 1);
        var e = this.r,
          n = this.g,
          r = this.b;
        return e || n || r
          ? (e && e < 30 && (e = 30),
            n && n < 30 && (n = 30),
            r && r < 30 && (r = 30),
            new s(
              Math.min(255, e / t),
              Math.min(255, n / t),
              Math.min(255, r / t),
            ))
          : new s(30, 30, 30);
      }),
        (e.darker = function (t) {
          return new s(
            (t = Math.pow(0.7, arguments.length ? t : 1)) * this.r,
            t * this.g,
            t * this.b,
          );
        }),
        (e.hsl = function () {
          return Se(this.r, this.g, this.b);
        }),
        (e.toString = function () {
          return "#" + He(this.r) + He(this.g) + He(this.b);
        }));
      var Ae = L.map({
        aliceblue: 15792383,
        antiquewhite: 16444375,
        aqua: 65535,
        aquamarine: 8388564,
        azure: 15794175,
        beige: 16119260,
        bisque: 16770244,
        black: 0,
        blanchedalmond: 16772045,
        blue: 255,
        blueviolet: 9055202,
        brown: 10824234,
        burlywood: 14596231,
        cadetblue: 6266528,
        chartreuse: 8388352,
        chocolate: 13789470,
        coral: 16744272,
        cornflowerblue: 6591981,
        cornsilk: 16775388,
        crimson: 14423100,
        cyan: 65535,
        darkblue: 139,
        darkcyan: 35723,
        darkgoldenrod: 12092939,
        darkgray: 11119017,
        darkgreen: 25600,
        darkgrey: 11119017,
        darkkhaki: 12433259,
        darkmagenta: 9109643,
        darkolivegreen: 5597999,
        darkorange: 16747520,
        darkorchid: 10040012,
        darkred: 9109504,
        darksalmon: 15308410,
        darkseagreen: 9419919,
        darkslateblue: 4734347,
        darkslategray: 3100495,
        darkslategrey: 3100495,
        darkturquoise: 52945,
        darkviolet: 9699539,
        deeppink: 16716947,
        deepskyblue: 49151,
        dimgray: 6908265,
        dimgrey: 6908265,
        dodgerblue: 2003199,
        firebrick: 11674146,
        floralwhite: 16775920,
        forestgreen: 2263842,
        fuchsia: 16711935,
        gainsboro: 14474460,
        ghostwhite: 16316671,
        gold: 16766720,
        goldenrod: 14329120,
        gray: 8421504,
        green: 32768,
        greenyellow: 11403055,
        grey: 8421504,
        honeydew: 15794160,
        hotpink: 16738740,
        indianred: 13458524,
        indigo: 4915330,
        ivory: 16777200,
        khaki: 15787660,
        lavender: 15132410,
        lavenderblush: 16773365,
        lawngreen: 8190976,
        lemonchiffon: 16775885,
        lightblue: 11393254,
        lightcoral: 15761536,
        lightcyan: 14745599,
        lightgoldenrodyellow: 16448210,
        lightgray: 13882323,
        lightgreen: 9498256,
        lightgrey: 13882323,
        lightpink: 16758465,
        lightsalmon: 16752762,
        lightseagreen: 2142890,
        lightskyblue: 8900346,
        lightslategray: 7833753,
        lightslategrey: 7833753,
        lightsteelblue: 11584734,
        lightyellow: 16777184,
        lime: 65280,
        limegreen: 3329330,
        linen: 16445670,
        magenta: 16711935,
        maroon: 8388608,
        mediumaquamarine: 6737322,
        mediumblue: 205,
        mediumorchid: 12211667,
        mediumpurple: 9662683,
        mediumseagreen: 3978097,
        mediumslateblue: 8087790,
        mediumspringgreen: 64154,
        mediumturquoise: 4772300,
        mediumvioletred: 13047173,
        midnightblue: 1644912,
        mintcream: 16121850,
        mistyrose: 16770273,
        moccasin: 16770229,
        navajowhite: 16768685,
        navy: 128,
        oldlace: 16643558,
        olive: 8421376,
        olivedrab: 7048739,
        orange: 16753920,
        orangered: 16729344,
        orchid: 14315734,
        palegoldenrod: 15657130,
        palegreen: 10025880,
        paleturquoise: 11529966,
        palevioletred: 14381203,
        papayawhip: 16773077,
        peachpuff: 16767673,
        peru: 13468991,
        pink: 16761035,
        plum: 14524637,
        powderblue: 11591910,
        purple: 8388736,
        red: 16711680,
        rosybrown: 12357519,
        royalblue: 4286945,
        saddlebrown: 9127187,
        salmon: 16416882,
        sandybrown: 16032864,
        seagreen: 3050327,
        seashell: 16774638,
        sienna: 10506797,
        silver: 12632256,
        skyblue: 8900331,
        slateblue: 6970061,
        slategray: 7372944,
        slategrey: 7372944,
        snow: 16775930,
        springgreen: 65407,
        steelblue: 4620980,
        tan: 13808780,
        teal: 32896,
        thistle: 14204888,
        tomato: 16737095,
        turquoise: 4251856,
        violet: 15631086,
        wheat: 16113331,
        white: 16777215,
        whitesmoke: 16119285,
        yellow: 16776960,
        yellowgreen: 10145074,
      });
      function N(t) {
        return "function" == typeof t
          ? t
          : function () {
              return t;
            };
      }
      function j(t) {
        return t;
      }
      function Ee(r) {
        return function (t, e, n) {
          return (
            2 === arguments.length &&
              "function" == typeof e &&
              ((n = e), (e = null)),
            Ie(t, e, r, n)
          );
        };
      }
      function Ie(i, o, a, t) {
        var n,
          s = {},
          u = L.dispatch("beforesend", "progress", "load", "error"),
          c = {},
          l = new XMLHttpRequest(),
          h = null;
        function e() {
          var t,
            e,
            n,
            r = l.status;
          if (
            (!r &&
              ((n = (e = l).responseType) && "text" !== n
                ? e.response
                : e.responseText)) ||
            (200 <= r && r < 300) ||
            304 === r
          ) {
            try {
              t = a.call(s, l);
            } catch (t) {
              return void u.error.call(s, t);
            }
            u.load.call(s, t);
          } else u.error.call(s, l);
        }
        return (
          "onload" in
          (l =
            !_.XDomainRequest ||
            "withCredentials" in l ||
            !/^(http(s)?:)?\/\//.test(i)
              ? l
              : new XDomainRequest())
            ? (l.onload = l.onerror = e)
            : (l.onreadystatechange = function () {
                3 < l.readyState && e();
              }),
          (l.onprogress = function (t) {
            var e = L.event;
            L.event = t;
            try {
              u.progress.call(s, l);
            } finally {
              L.event = e;
            }
          }),
          (s.header = function (t, e) {
            return (
              (t = (t + "").toLowerCase()),
              arguments.length < 2
                ? c[t]
                : (null == e ? delete c[t] : (c[t] = e + ""), s)
            );
          }),
          (s.mimeType = function (t) {
            return arguments.length ? ((o = null == t ? null : t + ""), s) : o;
          }),
          (s.responseType = function (t) {
            return arguments.length ? ((h = t), s) : h;
          }),
          (s.response = function (t) {
            return ((a = t), s);
          }),
          ["get", "post"].forEach(function (t) {
            s[t] = function () {
              return s.send.apply(s, [t].concat(R(arguments)));
            };
          }),
          (s.send = function (t, e, n) {
            if (
              (2 === arguments.length &&
                "function" == typeof e &&
                ((n = e), (e = null)),
              l.open(t, i, !0),
              null == o || "accept" in c || (c.accept = o + ",*/*"),
              l.setRequestHeader)
            )
              for (var r in c) l.setRequestHeader(r, c[r]);
            return (
              null != o && l.overrideMimeType && l.overrideMimeType(o),
              null != h && (l.responseType = h),
              null != n &&
                s.on("error", n).on("load", function (t) {
                  n(null, t);
                }),
              u.beforesend.call(s, l),
              l.send(null == e ? null : e),
              s
            );
          }),
          (s.abort = function () {
            return (l.abort(), s);
          }),
          L.rebind(s, u, "on"),
          null == t
            ? s
            : s.get(
                1 === (n = t).length
                  ? function (t, e) {
                      n(null == t ? e : null);
                    }
                  : n,
              )
        );
      }
      (Ae.forEach(function (t, e) {
        Ae.set(t, we(e));
      }),
        (L.functor = N),
        (L.xhr = Ee(j)),
        (L.dsv = function (i, o) {
          var e = new RegExp('["' + i + "\n]"),
            f = i.charCodeAt(0);
          function a(t, e, n) {
            arguments.length < 3 && ((n = e), (e = null));
            var r = Ie(t, o, null == e ? s : u(e), n);
            return (
              (r.row = function (t) {
                return arguments.length
                  ? r.response(null == (e = t) ? s : u(t))
                  : e;
              }),
              r
            );
          }
          function s(t) {
            return a.parse(t.responseText);
          }
          function u(e) {
            return function (t) {
              return a.parse(t.responseText, e);
            };
          }
          function n(t) {
            return t.map(c).join(i);
          }
          function c(t) {
            return e.test(t) ? '"' + t.replace(/\"/g, '""') + '"' : t;
          }
          return (
            (a.parse = function (t, r) {
              var i;
              return a.parseRows(t, function (t, e) {
                if (i) return i(t, e - 1);
                var n = new Function(
                  "d",
                  "return {" +
                    t
                      .map(function (t, e) {
                        return JSON.stringify(t) + ": d[" + e + "]";
                      })
                      .join(",") +
                    "}",
                );
                i = r
                  ? function (t, e) {
                      return r(n(t), e);
                    }
                  : n;
              });
            }),
            (a.parseRows = function (i, t) {
              var e,
                o,
                a = {},
                s = {},
                n = [],
                u = i.length,
                c = 0,
                r = 0;
              function l() {
                if (u <= c) return s;
                if (o) return ((o = !1), a);
                var t = c;
                if (34 === i.charCodeAt(t)) {
                  for (var e = t; e++ < u; )
                    if (34 === i.charCodeAt(e)) {
                      if (34 !== i.charCodeAt(e + 1)) break;
                      ++e;
                    }
                  return (
                    (c = e + 2),
                    13 === (n = i.charCodeAt(e + 1))
                      ? ((o = !0), 10 === i.charCodeAt(e + 2) && ++c)
                      : 10 === n && (o = !0),
                    i.slice(t + 1, e).replace(/""/g, '"')
                  );
                }
                for (; c < u; ) {
                  var n,
                    r = 1;
                  if (10 === (n = i.charCodeAt(c++))) o = !0;
                  else if (13 === n)
                    ((o = !0), 10 === i.charCodeAt(c) && (++c, ++r));
                  else if (n !== f) continue;
                  return i.slice(t, c - r);
                }
                return i.slice(t);
              }
              for (; (e = l()) !== s; ) {
                for (var h = []; e !== a && e !== s; ) (h.push(e), (e = l()));
                (t && null == (h = t(h, r++))) || n.push(h);
              }
              return n;
            }),
            (a.format = function (t) {
              var n, r;
              return Array.isArray(t[0])
                ? a.formatRows(t)
                : ((n = new it()),
                  (r = []),
                  t.forEach(function (t) {
                    for (var e in t) n.has(e) || r.push(n.add(e));
                  }),
                  [r.map(c).join(i)]
                    .concat(
                      t.map(function (e) {
                        return r
                          .map(function (t) {
                            return c(e[t]);
                          })
                          .join(i);
                      }),
                    )
                    .join("\n"));
            }),
            (a.formatRows = function (t) {
              return t.map(n).join("\n");
            }),
            a
          );
        }),
        (L.csv = L.dsv(",", "text/csv")),
        (L.tsv = L.dsv("\t", "text/tab-separated-values")));
      var De,
        Le,
        _e,
        Ne,
        je,
        ze =
          _[ot(_, "requestAnimationFrame")] ||
          function (t) {
            setTimeout(t, 17);
          };
      function Re() {
        var t = Oe(),
          t = qe() - t;
        24 < t
          ? (isFinite(t) && (clearTimeout(Ne), (Ne = setTimeout(Re, t))),
            (_e = 0))
          : ((_e = 1), ze(Re));
      }
      function Oe() {
        var t = Date.now();
        for (je = De; je; ) (t >= je.t && (je.f = je.c(t - je.t)), (je = je.n));
        return t;
      }
      function qe() {
        for (var t, e = De, n = 1 / 0; e; )
          e = e.f
            ? t
              ? (t.n = e.n)
              : (De = e.n)
            : (e.t < n && (n = e.t), (t = e).n);
        return ((Le = t), n);
      }
      function Be(t, e) {
        return e - (t ? Math.ceil(Math.log(t) / Math.LN10) : 1);
      }
      ((L.timer = function (t, e, n) {
        var r = arguments.length;
        r < 2 && (e = 0);
        r = { c: t, t: (n = r < 3 ? Date.now() : n) + e, f: !1, n: null };
        (Le ? (Le.n = r) : (De = r),
          (Le = r),
          _e || ((Ne = clearTimeout(Ne)), (_e = 1), ze(Re)));
      }),
        (L.timer.flush = function () {
          (Oe(), qe());
        }),
        (L.round = function (t, e) {
          return e ? Math.round(t * (e = Math.pow(10, e))) / e : Math.round(t);
        }));
      var Fe = [
        "y",
        "z",
        "a",
        "f",
        "p",
        "n",
        "µ",
        "m",
        "",
        "k",
        "M",
        "G",
        "T",
        "P",
        "E",
        "Z",
        "Y",
      ].map(function (t, e) {
        var n = Math.pow(10, 3 * I(8 - e));
        return {
          scale:
            8 < e
              ? function (t) {
                  return t / n;
                }
              : function (t) {
                  return t * n;
                },
          symbol: t,
        };
      });
      L.formatPrefix = function (t, e) {
        var n = 0;
        return (
          t &&
            (t < 0 && (t *= -1),
            e && (t = L.round(t, Be(t, e))),
            (n = 1 + Math.floor(1e-12 + Math.log(t) / Math.LN10)),
            (n = Math.max(-24, Math.min(24, 3 * Math.floor((n - 1) / 3))))),
          Fe[8 + n / 3]
        );
      };
      var $e =
          /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,
        Ue = L.map({
          b: function (t) {
            return t.toString(2);
          },
          c: function (t) {
            return String.fromCharCode(t);
          },
          o: function (t) {
            return t.toString(8);
          },
          x: function (t) {
            return t.toString(16);
          },
          X: function (t) {
            return t.toString(16).toUpperCase();
          },
          g: function (t, e) {
            return t.toPrecision(e);
          },
          e: function (t, e) {
            return t.toExponential(e);
          },
          f: function (t, e) {
            return t.toFixed(e);
          },
          r: function (t, e) {
            return (t = L.round(t, Be(t, e))).toFixed(
              Math.max(0, Math.min(20, Be(t * (1 + 1e-15), e))),
            );
          },
        });
      function Ve(t) {
        return t + "";
      }
      var P = (L.time = {}),
        H = Date;
      function Qe() {
        this._ = new Date(
          1 < arguments.length ? Date.UTC.apply(this, arguments) : arguments[0],
        );
      }
      Qe.prototype = {
        getDate: function () {
          return this._.getUTCDate();
        },
        getDay: function () {
          return this._.getUTCDay();
        },
        getFullYear: function () {
          return this._.getUTCFullYear();
        },
        getHours: function () {
          return this._.getUTCHours();
        },
        getMilliseconds: function () {
          return this._.getUTCMilliseconds();
        },
        getMinutes: function () {
          return this._.getUTCMinutes();
        },
        getMonth: function () {
          return this._.getUTCMonth();
        },
        getSeconds: function () {
          return this._.getUTCSeconds();
        },
        getTime: function () {
          return this._.getTime();
        },
        getTimezoneOffset: function () {
          return 0;
        },
        valueOf: function () {
          return this._.valueOf();
        },
        setDate: function () {
          We.setUTCDate.apply(this._, arguments);
        },
        setDay: function () {
          We.setUTCDay.apply(this._, arguments);
        },
        setFullYear: function () {
          We.setUTCFullYear.apply(this._, arguments);
        },
        setHours: function () {
          We.setUTCHours.apply(this._, arguments);
        },
        setMilliseconds: function () {
          We.setUTCMilliseconds.apply(this._, arguments);
        },
        setMinutes: function () {
          We.setUTCMinutes.apply(this._, arguments);
        },
        setMonth: function () {
          We.setUTCMonth.apply(this._, arguments);
        },
        setSeconds: function () {
          We.setUTCSeconds.apply(this._, arguments);
        },
        setTime: function () {
          We.setTime.apply(this._, arguments);
        },
      };
      var We = Date.prototype;
      function Xe(r, o, a) {
        function t(t) {
          var e = r(t),
            n = i(e, 1);
          return t - e < n - t ? e : n;
        }
        function s(t) {
          return (o((t = r(new H(t - 1))), 1), t);
        }
        function i(t, e) {
          return (o((t = new H(+t)), e), t);
        }
        function u(t, e, n) {
          var r = s(t),
            i = [];
          if (1 < n)
            for (; r < e; ) (a(r) % n || i.push(new Date(+r)), o(r, 1));
          else for (; r < e; ) (i.push(new Date(+r)), o(r, 1));
          return i;
        }
        (((r.floor = r).round = t),
          (r.ceil = s),
          (r.offset = i),
          (r.range = u));
        var e = (r.utc = Ye(r));
        return (
          ((e.floor = e).round = Ye(t)),
          (e.ceil = Ye(s)),
          (e.offset = Ye(i)),
          (e.range = function (t, e, n) {
            try {
              var r = new (H = Qe)();
              return ((r._ = t), u(r, e, n));
            } finally {
              H = Date;
            }
          }),
          r
        );
      }
      function Ye(r) {
        return function (t, e) {
          try {
            var n = new (H = Qe)();
            return ((n._ = t), r(n, e)._);
          } finally {
            H = Date;
          }
        };
      }
      function Ge(t) {
        var e = t.dateTime,
          n = t.date,
          r = t.time,
          i = t.periods,
          o = t.days,
          a = t.shortDays,
          s = t.months,
          u = t.shortMonths;
        function c(s) {
          var u = s.length;
          function t(t) {
            for (var e, n, r, i = [], o = -1, a = 0; ++o < u; )
              37 === s.charCodeAt(o) &&
                (i.push(s.slice(a, o)),
                null != (n = Je[(e = s.charAt(++o))]) && (e = s.charAt(++o)),
                (r = x[e]) &&
                  (e = r(t, null == n ? ("e" === e ? " " : "0") : n)),
                i.push(e),
                (a = o + 1));
            return (i.push(s.slice(a, o)), i.join(""));
          }
          return (
            (t.parse = function (t) {
              var e = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null };
              if (l(e, s, t, 0) != t.length) return null;
              "p" in e && (e.H = (e.H % 12) + 12 * e.p);
              var t = null != e.Z && H !== Qe,
                n = new (t ? Qe : H)();
              return (
                "j" in e
                  ? n.setFullYear(e.y, 0, e.j)
                  : "w" in e && ("W" in e || "U" in e)
                    ? (n.setFullYear(e.y, 0, 1),
                      n.setFullYear(
                        e.y,
                        0,
                        "W" in e
                          ? ((e.w + 6) % 7) + 7 * e.W - ((n.getDay() + 5) % 7)
                          : e.w + 7 * e.U - ((n.getDay() + 6) % 7),
                      ))
                    : n.setFullYear(e.y, e.m, e.d),
                n.setHours(
                  e.H + ((e.Z / 100) | 0),
                  e.M + (e.Z % 100),
                  e.S,
                  e.L,
                ),
                t ? n._ : n
              );
            }),
            (t.toString = function () {
              return s;
            }),
            t
          );
        }
        function l(t, e, n, r) {
          for (var i, o, a = 0, s = e.length, u = n.length; a < s; ) {
            if (u <= r) return -1;
            if (37 === (i = e.charCodeAt(a++))) {
              if (
                ((o = e.charAt(a++)),
                !(o = w[o in Je ? e.charAt(a++) : o]) || (r = o(t, n, r)) < 0)
              )
                return -1;
            } else if (i != n.charCodeAt(r++)) return -1;
          }
          return r;
        }
        c.multi = (c.utc = function (t) {
          var n = c(t);
          function e(t) {
            try {
              var e = new (H = Qe)();
              return ((e._ = t), n(e));
            } finally {
              H = Date;
            }
          }
          return (
            (e.parse = function (t) {
              try {
                H = Qe;
                var e = n.parse(t);
                return e && e._;
              } finally {
                H = Date;
              }
            }),
            (e.toString = n.toString),
            e
          );
        }).multi = vn;
        var h = L.map(),
          f = Ke(o),
          d = tn(o),
          p = Ke(a),
          g = tn(a),
          m = Ke(s),
          v = tn(s),
          y = Ke(u),
          b = tn(u),
          x =
            (i.forEach(function (t, e) {
              h.set(t.toLowerCase(), e);
            }),
            {
              a: function (t) {
                return a[t.getDay()];
              },
              A: function (t) {
                return o[t.getDay()];
              },
              b: function (t) {
                return u[t.getMonth()];
              },
              B: function (t) {
                return s[t.getMonth()];
              },
              c: c(e),
              d: function (t, e) {
                return T(t.getDate(), e, 2);
              },
              e: function (t, e) {
                return T(t.getDate(), e, 2);
              },
              H: function (t, e) {
                return T(t.getHours(), e, 2);
              },
              I: function (t, e) {
                return T(t.getHours() % 12 || 12, e, 2);
              },
              j: function (t, e) {
                return T(1 + P.dayOfYear(t), e, 3);
              },
              L: function (t, e) {
                return T(t.getMilliseconds(), e, 3);
              },
              m: function (t, e) {
                return T(t.getMonth() + 1, e, 2);
              },
              M: function (t, e) {
                return T(t.getMinutes(), e, 2);
              },
              p: function (t) {
                return i[+(12 <= t.getHours())];
              },
              S: function (t, e) {
                return T(t.getSeconds(), e, 2);
              },
              U: function (t, e) {
                return T(P.sundayOfYear(t), e, 2);
              },
              w: function (t) {
                return t.getDay();
              },
              W: function (t, e) {
                return T(P.mondayOfYear(t), e, 2);
              },
              x: c(n),
              X: c(r),
              y: function (t, e) {
                return T(t.getFullYear() % 100, e, 2);
              },
              Y: function (t, e) {
                return T(t.getFullYear() % 1e4, e, 4);
              },
              Z: gn,
              "%": function () {
                return "%";
              },
            }),
          w = {
            a: function (t, e, n) {
              p.lastIndex = 0;
              e = p.exec(e.slice(n));
              return e
                ? ((t.w = g.get(e[0].toLowerCase())), n + e[0].length)
                : -1;
            },
            A: function (t, e, n) {
              f.lastIndex = 0;
              e = f.exec(e.slice(n));
              return e
                ? ((t.w = d.get(e[0].toLowerCase())), n + e[0].length)
                : -1;
            },
            b: function (t, e, n) {
              y.lastIndex = 0;
              e = y.exec(e.slice(n));
              return e
                ? ((t.m = b.get(e[0].toLowerCase())), n + e[0].length)
                : -1;
            },
            B: function (t, e, n) {
              m.lastIndex = 0;
              e = m.exec(e.slice(n));
              return e
                ? ((t.m = v.get(e[0].toLowerCase())), n + e[0].length)
                : -1;
            },
            c: function (t, e, n) {
              return l(t, x.c.toString(), e, n);
            },
            d: cn,
            e: cn,
            H: hn,
            I: hn,
            j: ln,
            L: pn,
            m: un,
            M: fn,
            p: function (t, e, n) {
              e = h.get(e.slice(n, (n += 2)).toLowerCase());
              return null == e ? -1 : ((t.p = e), n);
            },
            S: dn,
            U: nn,
            w: en,
            W: rn,
            x: function (t, e, n) {
              return l(t, x.x.toString(), e, n);
            },
            X: function (t, e, n) {
              return l(t, x.X.toString(), e, n);
            },
            y: an,
            Y: on,
            Z: sn,
            "%": mn,
          };
        return c;
      }
      ((P.year = Xe(
        function (t) {
          return ((t = P.day(t)).setMonth(0, 1), t);
        },
        function (t, e) {
          t.setFullYear(t.getFullYear() + e);
        },
        function (t) {
          return t.getFullYear();
        },
      )),
        (P.years = P.year.range),
        (P.years.utc = P.year.utc.range),
        (P.day = Xe(
          function (t) {
            var e = new H(2e3, 0);
            return (
              e.setFullYear(t.getFullYear(), t.getMonth(), t.getDate()),
              e
            );
          },
          function (t, e) {
            t.setDate(t.getDate() + e);
          },
          function (t) {
            return t.getDate() - 1;
          },
        )),
        (P.days = P.day.range),
        (P.days.utc = P.day.utc.range),
        (P.dayOfYear = function (t) {
          var e = P.year(t);
          return Math.floor(
            (t - e - 6e4 * (t.getTimezoneOffset() - e.getTimezoneOffset())) /
              864e5,
          );
        }),
        [
          "sunday",
          "monday",
          "tuesday",
          "wednesday",
          "thursday",
          "friday",
          "saturday",
        ].forEach(function (t, n) {
          n = 7 - n;
          var e = (P[t] = Xe(
            function (t) {
              return (
                (t = P.day(t)).setDate(t.getDate() - ((t.getDay() + n) % 7)),
                t
              );
            },
            function (t, e) {
              t.setDate(t.getDate() + 7 * Math.floor(e));
            },
            function (t) {
              var e = P.year(t).getDay();
              return (
                Math.floor((P.dayOfYear(t) + ((e + n) % 7)) / 7) - (e !== n)
              );
            },
          ));
          ((P[t + "s"] = e.range),
            (P[t + "s"].utc = e.utc.range),
            (P[t + "OfYear"] = function (t) {
              var e = P.year(t).getDay();
              return Math.floor((P.dayOfYear(t) + ((e + n) % 7)) / 7);
            }));
        }),
        (P.week = P.sunday),
        (P.weeks = P.sunday.range),
        (P.weeks.utc = P.sunday.utc.range),
        (P.weekOfYear = P.sundayOfYear));
      var Je = { "-": "", _: " ", 0: "0" },
        c = /^\s*\d+/,
        Ze = /^%/;
      function T(t, e, n) {
        var r = t < 0 ? "-" : "",
          t = (r ? -t : t) + "",
          i = t.length;
        return r + (i < n ? new Array(n - i + 1).join(e) + t : t);
      }
      function Ke(t) {
        return new RegExp("^(?:" + t.map(L.requote).join("|") + ")", "i");
      }
      function tn(t) {
        for (var e = new X(), n = -1, r = t.length; ++n < r; )
          e.set(t[n].toLowerCase(), n);
        return e;
      }
      function en(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 1));
        return e ? ((t.w = +e[0]), n + e[0].length) : -1;
      }
      function nn(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n));
        return e ? ((t.U = +e[0]), n + e[0].length) : -1;
      }
      function rn(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n));
        return e ? ((t.W = +e[0]), n + e[0].length) : -1;
      }
      function on(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 4));
        return e ? ((t.y = +e[0]), n + e[0].length) : -1;
      }
      function an(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 2));
        return e
          ? ((t.y = (t = +e[0]) + (68 < t ? 1900 : 2e3)), n + e[0].length)
          : -1;
      }
      function sn(t, e, n) {
        return /^[+-]\d{4}$/.test((e = e.slice(n, n + 5)))
          ? ((t.Z = -e), n + 5)
          : -1;
      }
      function un(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 2));
        return e ? ((t.m = e[0] - 1), n + e[0].length) : -1;
      }
      function cn(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 2));
        return e ? ((t.d = +e[0]), n + e[0].length) : -1;
      }
      function ln(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 3));
        return e ? ((t.j = +e[0]), n + e[0].length) : -1;
      }
      function hn(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 2));
        return e ? ((t.H = +e[0]), n + e[0].length) : -1;
      }
      function fn(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 2));
        return e ? ((t.M = +e[0]), n + e[0].length) : -1;
      }
      function dn(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 2));
        return e ? ((t.S = +e[0]), n + e[0].length) : -1;
      }
      function pn(t, e, n) {
        c.lastIndex = 0;
        e = c.exec(e.slice(n, n + 3));
        return e ? ((t.L = +e[0]), n + e[0].length) : -1;
      }
      function gn(t) {
        var t = t.getTimezoneOffset(),
          e = 0 < t ? "-" : "+",
          n = (I(t) / 60) | 0,
          t = I(t) % 60;
        return e + T(n, "0", 2) + T(t, "0", 2);
      }
      function mn(t, e, n) {
        Ze.lastIndex = 0;
        e = Ze.exec(e.slice(n, n + 1));
        return e ? n + e[0].length : -1;
      }
      function vn(r) {
        for (var t = r.length, e = -1; ++e < t; ) r[e][0] = this(r[e][0]);
        return function (t) {
          for (var e = 0, n = r[e]; !n[1](t); ) n = r[++e];
          return n[0](t);
        };
      }
      L.locale = function (t) {
        return {
          numberFormat:
            ((w = t.decimal),
            (s = t.thousands),
            (u = t.grouping),
            (n = t.currency),
            (P =
              u && s
                ? function (t, e) {
                    for (
                      var n = t.length, r = [], i = 0, o = u[0], a = 0;
                      0 < n &&
                      0 < o &&
                      (e < a + o + 1 && (o = Math.max(1, e - a)),
                      r.push(t.substring((n -= o), n + o)),
                      !((a += o + 1) > e));
                    )
                      o = u[(i = (i + 1) % u.length)];
                    return r.reverse().join(s);
                  }
                : j),
            function (t) {
              var t = $e.exec(t),
                s = t[1] || " ",
                u = t[2] || ">",
                c = t[3] || "-",
                e = t[4] || "",
                l = t[5],
                h = +t[6],
                f = t[7],
                d = t[8],
                p = t[9],
                g = 1,
                m = "",
                v = "",
                y = !1,
                b = !0,
                d = d && +d.substring(1);
              switch (
                ((l || ("0" === s && "=" === u)) && ((l = s = "0"), (u = "=")),
                p)
              ) {
                case "n":
                  ((f = !0), (p = "g"));
                  break;
                case "%":
                  ((g = 100), (v = "%"), (p = "f"));
                  break;
                case "p":
                  ((g = 100), (v = "%"), (p = "r"));
                  break;
                case "b":
                case "o":
                case "x":
                case "X":
                  "#" === e && (m = "0" + p.toLowerCase());
                case "c":
                  b = !1;
                case "d":
                  ((y = !0), (d = 0));
                  break;
                case "s":
                  ((g = -1), (p = "r"));
              }
              ("$" === e && ((m = n[0]), (v = n[1])),
                "r" != p || d || (p = "g"),
                null != d &&
                  ("g" == p
                    ? (d = Math.max(1, Math.min(21, d)))
                    : ("e" != p && "f" != p) ||
                      (d = Math.max(0, Math.min(20, d)))));
              var p = Ue.get(p) || Ve,
                x = l && f;
              return function (t) {
                var e,
                  n,
                  r,
                  i,
                  o,
                  a = v;
                return y && t % 1
                  ? ""
                  : ((e =
                      t < 0 || (0 === t && 1 / t < 0)
                        ? ((t = -t), "-")
                        : "-" === c
                          ? ""
                          : c),
                    g < 0
                      ? ((t = (i = L.formatPrefix(t, d)).scale(t)),
                        (a = i.symbol + v))
                      : (t *= g),
                    (r =
                      (i = (t = p(t, d)).lastIndexOf(".")) < 0
                        ? (r = b ? t.lastIndexOf("e") : -1) < 0
                          ? ((n = t), "")
                          : ((n = t.substring(0, r)), t.substring(r))
                        : ((n = t.substring(0, i)), w + t.substring(i + 1))),
                    !l && f && (n = P(n, 1 / 0)),
                    (o =
                      (i =
                        m.length + n.length + r.length + (x ? 0 : e.length)) < h
                        ? new Array((i = h - i + 1)).join(s)
                        : ""),
                    x && (n = P(o + n, o.length ? h - r.length : 1 / 0)),
                    (e += m),
                    (t = n + r),
                    ("<" === u
                      ? e + t + o
                      : ">" === u
                        ? o + e + t
                        : "^" === u
                          ? o.substring(0, (i >>= 1)) + e + t + o.substring(i)
                          : e + (x ? t : o + t)) + a);
              };
            }),
          timeFormat: Ge(t),
        };
        var w, s, u, n, P;
      };
      n = L.locale({
        decimal: ".",
        thousands: ",",
        grouping: [3],
        currency: ["$", ""],
        dateTime: "%a %b %e %X %Y",
        date: "%m/%d/%Y",
        time: "%H:%M:%S",
        periods: ["AM", "PM"],
        days: [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday",
        ],
        shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
        months: [
          "January",
          "February",
          "March",
          "April",
          "May",
          "June",
          "July",
          "August",
          "September",
          "October",
          "November",
          "December",
        ],
        shortMonths: [
          "Jan",
          "Feb",
          "Mar",
          "Apr",
          "May",
          "Jun",
          "Jul",
          "Aug",
          "Sep",
          "Oct",
          "Nov",
          "Dec",
        ],
      });
      function yn() {}
      ((L.format = n.numberFormat),
        (L.geo = {}),
        (yn.prototype = {
          s: 0,
          t: 0,
          add: function (t) {
            (xn(t, this.t, bn),
              xn(bn.s, this.s, this),
              this.s ? (this.t += bn.t) : (this.s = bn.t));
          },
          reset: function () {
            this.s = this.t = 0;
          },
          valueOf: function () {
            return this.s;
          },
        }));
      var bn = new yn();
      function xn(t, e, n) {
        var r = (n.s = t + e),
          i = r - t;
        n.t = t - (r - i) + (e - i);
      }
      function wn(t, e) {
        t && Hn.hasOwnProperty(t.type) && Hn[t.type](t, e);
      }
      L.geo.stream = function (t, e) {
        t && Pn.hasOwnProperty(t.type) ? Pn[t.type](t, e) : wn(t, e);
      };
      var Pn = {
          Feature: function (t, e) {
            wn(t.geometry, e);
          },
          FeatureCollection: function (t, e) {
            for (var n = t.features, r = -1, i = n.length; ++r < i; )
              wn(n[r].geometry, e);
          },
        },
        Hn = {
          Sphere: function (t, e) {
            e.sphere();
          },
          Point: function (t, e) {
            ((t = t.coordinates), e.point(t[0], t[1], t[2]));
          },
          MultiPoint: function (t, e) {
            for (var n = t.coordinates, r = -1, i = n.length; ++r < i; )
              ((t = n[r]), e.point(t[0], t[1], t[2]));
          },
          LineString: function (t, e) {
            Cn(t.coordinates, e, 0);
          },
          MultiLineString: function (t, e) {
            for (var n = t.coordinates, r = -1, i = n.length; ++r < i; )
              Cn(n[r], e, 0);
          },
          Polygon: function (t, e) {
            Sn(t.coordinates, e);
          },
          MultiPolygon: function (t, e) {
            for (var n = t.coordinates, r = -1, i = n.length; ++r < i; )
              Sn(n[r], e);
          },
          GeometryCollection: function (t, e) {
            for (var n = t.geometries, r = -1, i = n.length; ++r < i; )
              wn(n[r], e);
          },
        };
      function Cn(t, e, n) {
        var r,
          i = -1,
          o = t.length - n;
        for (e.lineStart(); ++i < o; ) ((r = t[i]), e.point(r[0], r[1], r[2]));
        e.lineEnd();
      }
      function Sn(t, e) {
        var n = -1,
          r = t.length;
        for (e.polygonStart(); ++n < r; ) Cn(t[n], e, 1);
        e.polygonEnd();
      }
      L.geo.area = function (t) {
        return ((kn = 0), L.geo.stream(t, m), kn);
      };
      var kn,
        l,
        h,
        f,
        d,
        Tn,
        Mn,
        An,
        En,
        In,
        Dn,
        Ln,
        p,
        _n,
        Nn,
        jn,
        zn,
        Rn,
        On,
        qn,
        g,
        Bn,
        Fn,
        $n,
        Un = new yn(),
        m = {
          sphere: function () {
            kn += 4 * A;
          },
          point: u,
          lineStart: u,
          lineEnd: u,
          polygonStart: function () {
            (Un.reset(), (m.lineStart = Vn));
          },
          polygonEnd: function () {
            var t = 2 * Un;
            ((kn += t < 0 ? 4 * A + t : t),
              (m.lineStart = m.lineEnd = m.point = u));
          },
        };
      function Vn() {
        var n, r, s, u, c;
        function i(t, e) {
          e = (e * C) / 2 + A / 4;
          var n = (t *= C) - s,
            r = 0 <= n ? 1 : -1,
            n = r * n,
            i = Math.cos(e),
            e = Math.sin(e),
            o = c * e,
            a = u * i + o * Math.cos(n),
            o = o * r * Math.sin(n);
          (Un.add(Math.atan2(o, a)), (s = t), (u = i), (c = e));
        }
        ((m.point = function (t, e) {
          ((m.point = i),
            (s = (n = t) * C),
            (u = Math.cos((e = ((r = e) * C) / 2 + A / 4))),
            (c = Math.sin(e)));
        }),
          (m.lineEnd = function () {
            i(n, r);
          }));
      }
      function Qn(t) {
        var e = t[0],
          t = t[1],
          n = Math.cos(t);
        return [n * Math.cos(e), n * Math.sin(e), Math.sin(t)];
      }
      function Wn(t, e) {
        return t[0] * e[0] + t[1] * e[1] + t[2] * e[2];
      }
      function Xn(t, e) {
        return [
          t[1] * e[2] - t[2] * e[1],
          t[2] * e[0] - t[0] * e[2],
          t[0] * e[1] - t[1] * e[0],
        ];
      }
      function Yn(t, e) {
        ((t[0] += e[0]), (t[1] += e[1]), (t[2] += e[2]));
      }
      function Gn(t, e) {
        return [t[0] * e, t[1] * e, t[2] * e];
      }
      function Jn(t) {
        var e = Math.sqrt(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]);
        ((t[0] /= e), (t[1] /= e), (t[2] /= e));
      }
      function Zn(t) {
        return [Math.atan2(t[1], t[0]), ee(t[2])];
      }
      function Kn(t, e) {
        return I(t[0] - e[0]) < D && I(t[1] - e[1]) < D;
      }
      function tr(t, e) {
        (Dn.push((Ln = [(l = t), (f = t)])),
          e < h && (h = e),
          d < e && (d = e));
      }
      function er(t, e) {
        var n,
          r,
          i,
          o,
          a,
          s = Qn([t * C, e * C]);
        (En
          ? ((n = Xn(En, s)),
            Jn((n = Xn([n[1], -n[0], 0], n))),
            (n = Zn(n)),
            (o = t - Tn),
            (i = n[0] * k * (r = 0 < o ? 1 : -1)),
            (o = 180 < I(o)) ^ (r * Tn < i && i < r * t)
              ? ((a = n[1] * k), d < a && (d = a))
              : o ^ (r * Tn < (i = ((360 + i) % 360) - 180) && i < r * t)
                ? (a = -n[1] * k) < h && (h = a)
                : (e < h && (h = e), d < e && (d = e)),
            o
              ? t < Tn
                ? v(l, t) > v(l, f) && (f = t)
                : v(t, f) > v(l, f) && (l = t)
              : l <= f
                ? (t < l && (l = t), f < t && (f = t))
                : Tn < t
                  ? v(l, t) > v(l, f) && (f = t)
                  : v(t, f) > v(l, f) && (l = t))
          : tr(t, e),
          (En = s),
          (Tn = t));
      }
      function nr() {
        p.point = er;
      }
      function rr() {
        ((Ln[0] = l), (Ln[1] = f), (p.point = tr), (En = null));
      }
      function ir(t, e) {
        var n;
        (En
          ? (In += 180 < I((n = t - Tn)) ? n + (0 < n ? 360 : -360) : n)
          : ((Mn = t), (An = e)),
          m.point(t, e),
          er(t, e));
      }
      function or() {
        m.lineStart();
      }
      function ar() {
        (ir(Mn, An),
          m.lineEnd(),
          I(In) > D && (l = -(f = 180)),
          (Ln[0] = l),
          (Ln[1] = f),
          (En = null));
      }
      function v(t, e) {
        return (e -= t) < 0 ? e + 360 : e;
      }
      function sr(t, e) {
        return t[0] - e[0];
      }
      function ur(t, e) {
        return e[0] <= e[1] ? e[0] <= t && t <= e[1] : t < e[0] || e[1] < t;
      }
      ((L.geo.bounds =
        ((p = {
          point: tr,
          lineStart: nr,
          lineEnd: rr,
          polygonStart: function () {
            ((p.point = ir),
              (p.lineStart = or),
              (p.lineEnd = ar),
              (In = 0),
              m.polygonStart());
          },
          polygonEnd: function () {
            (m.polygonEnd(),
              (p.point = tr),
              (p.lineStart = nr),
              (p.lineEnd = rr),
              Un < 0
                ? ((l = -(f = 180)), (h = -(d = 90)))
                : D < In
                  ? (d = 90)
                  : In < -D && (h = -90),
              (Ln[0] = l),
              (Ln[1] = f));
          },
        }),
        function (t) {
          if (
            ((d = f = -(l = h = 1 / 0)),
            (Dn = []),
            L.geo.stream(t, p),
            (i = Dn.length))
          ) {
            Dn.sort(sr);
            for (var e = 1, n = [(s = Dn[0])]; e < i; ++e)
              ur((o = Dn[e])[0], s) || ur(o[1], s)
                ? (v(s[0], o[1]) > v(s[0], s[1]) && (s[1] = o[1]),
                  v(o[0], s[1]) > v(s[0], s[1]) && (s[0] = o[0]))
                : n.push((s = o));
            for (
              var r, i, o, a = -1 / 0, e = 0, s = n[(i = n.length - 1)];
              e <= i;
              s = o, ++e
            )
              (r = v(s[1], (o = n[e])[0])) > a &&
                ((a = r), (l = o[0]), (f = s[1]));
          }
          return (
            (Dn = Ln = null),
            l === 1 / 0 || h === 1 / 0
              ? [
                  [NaN, NaN],
                  [NaN, NaN],
                ]
              : [
                  [l, h],
                  [f, d],
                ]
          );
        })),
        (L.geo.centroid = function (t) {
          ((_n = Nn = jn = zn = Rn = On = qn = g = Bn = Fn = $n = 0),
            L.geo.stream(t, y));
          var t = Bn,
            e = Fn,
            n = $n,
            r = t * t + e * e + n * n;
          return r < Gt &&
            ((t = On),
            (e = qn),
            (n = g),
            Nn < D && ((t = jn), (e = zn), (n = Rn)),
            (r = t * t + e * e + n * n) < Gt)
            ? [NaN, NaN]
            : [Math.atan2(e, t) * k, ee(n / Math.sqrt(r)) * k];
        }));
      var y = {
        sphere: u,
        point: cr,
        lineStart: hr,
        lineEnd: fr,
        polygonStart: function () {
          y.lineStart = dr;
        },
        polygonEnd: function () {
          y.lineStart = hr;
        },
      };
      function cr(t, e) {
        t *= C;
        var n = Math.cos((e *= C));
        lr(n * Math.cos(t), n * Math.sin(t), Math.sin(e));
      }
      function lr(t, e, n) {
        ((jn += (t - jn) / ++_n), (zn += (e - zn) / _n), (Rn += (n - Rn) / _n));
      }
      function hr() {
        var i, o, a;
        function r(t, e) {
          t *= C;
          var n = Math.cos((e *= C)),
            r = n * Math.cos(t),
            n = n * Math.sin(t),
            t = Math.sin(e),
            e = Math.atan2(
              Math.sqrt(
                (e = o * t - a * n) * e +
                  (e = a * r - i * t) * e +
                  (e = i * n - o * r) * e,
              ),
              i * r + o * n + a * t,
            );
          ((Nn += e),
            (On += e * (i + (i = r))),
            (qn += e * (o + (o = n))),
            (g += e * (a + (a = t))),
            lr(i, o, a));
        }
        y.point = function (t, e) {
          t *= C;
          var n = Math.cos((e *= C));
          ((i = n * Math.cos(t)),
            (o = n * Math.sin(t)),
            (a = Math.sin(e)),
            (y.point = r),
            lr(i, o, a));
        };
      }
      function fr() {
        y.point = cr;
      }
      function dr() {
        var r, i, c, l, h;
        function o(t, e) {
          t *= C;
          var n = Math.cos((e *= C)),
            r = n * Math.cos(t),
            n = n * Math.sin(t),
            t = Math.sin(e),
            e = l * t - h * n,
            i = h * r - c * t,
            o = c * n - l * r,
            a = Math.sqrt(e * e + i * i + o * o),
            s = c * r + l * n + h * t,
            u = a && -te(s) / a,
            a = Math.atan2(a, s);
          ((Bn += u * e),
            (Fn += u * i),
            ($n += u * o),
            (Nn += a),
            (On += a * (c + (c = r))),
            (qn += a * (l + (l = n))),
            (g += a * (h + (h = t))),
            lr(c, l, h));
        }
        ((y.point = function (t, e) {
          ((r = t), (i = e), (y.point = o), (t *= C));
          var n = Math.cos((e *= C));
          ((c = n * Math.cos(t)),
            (l = n * Math.sin(t)),
            (h = Math.sin(e)),
            lr(c, l, h));
        }),
          (y.lineEnd = function () {
            (o(r, i), (y.lineEnd = fr), (y.point = cr));
          }));
      }
      function pr(n, r) {
        function t(t, e) {
          return ((t = n(t, e)), r(t[0], t[1]));
        }
        return (
          n.invert &&
            r.invert &&
            (t.invert = function (t, e) {
              return (t = r.invert(t, e)) && n.invert(t[0], t[1]);
            }),
          t
        );
      }
      function gr() {
        return !0;
      }
      function mr(t, e, n, r, s) {
        var u = [],
          c = [];
        if (
          (t.forEach(function (t) {
            if (!((e = t.length - 1) <= 0)) {
              var e,
                n = t[0],
                r = t[e];
              if (Kn(n, r)) {
                s.lineStart();
                for (var i = 0; i < e; ++i) s.point((n = t[i])[0], n[1]);
                s.lineEnd();
              } else {
                var o = new yr(n, t, null, !0),
                  a = new yr(n, null, o, !1);
                ((o.o = a),
                  u.push(o),
                  c.push(a),
                  (o = new yr(r, t, null, !1)),
                  (a = new yr(r, null, o, !0)),
                  (o.o = a),
                  u.push(o),
                  c.push(a));
              }
            }
          }),
          c.sort(e),
          vr(u),
          vr(c),
          u.length)
        ) {
          for (var i = 0, o = n, a = c.length; i < a; ++i) c[i].e = o = !o;
          for (var l, h = u[0]; ; ) {
            for (var f = h, d = !0; f.v; ) if ((f = f.n) === h) return;
            ((p = f.z), s.lineStart());
            do {
              if (((f.v = f.o.v = !0), f.e)) {
                if (d)
                  for (i = 0, a = p.length; i < a; ++i)
                    s.point((l = p[i])[0], l[1]);
                else r(f.x, f.n.x, 1, s);
                f = f.n;
              } else {
                if (d)
                  for (var p, i = (p = f.p.z).length - 1; 0 <= i; --i)
                    s.point((l = p[i])[0], l[1]);
                else r(f.x, f.p.x, -1, s);
                f = f.p;
              }
            } while (((p = (f = f.o).z), (d = !d), !f.v));
            s.lineEnd();
          }
        }
      }
      function vr(t) {
        if ((e = t.length)) {
          for (var e, n, r = 0, i = t[0]; ++r < e; )
            ((i.n = n = t[r]), (n.p = i), (i = n));
          ((i.n = n = t[0]), (n.p = i));
        }
      }
      function yr(t, e, n, r) {
        ((this.x = t),
          (this.z = e),
          (this.o = n),
          (this.e = r),
          (this.v = !1),
          (this.n = this.p = null));
      }
      function br(y, b, x, w) {
        return function (r, a) {
          var s,
            n = b(a),
            e = r.invert(w[0], w[1]),
            i = {
              point: o,
              lineStart: u,
              lineEnd: c,
              polygonStart: function () {
                ((i.point = g),
                  (i.lineStart = m),
                  (i.lineEnd = v),
                  (s = []),
                  (l = []));
              },
              polygonEnd: function () {
                ((i.point = o),
                  (i.lineStart = u),
                  (i.lineEnd = c),
                  (s = L.merge(s)));
                var t = (function (t, e) {
                  var n = t[0],
                    r = t[1],
                    i = [Math.sin(n), -Math.cos(n), 0],
                    o = 0,
                    a = 0;
                  Un.reset();
                  for (var s = 0, u = e.length; s < u; ++s) {
                    var c = e[s],
                      l = c.length;
                    if (l)
                      for (
                        var h = c[0],
                          f = h[0],
                          d = h[1] / 2 + A / 4,
                          p = Math.sin(d),
                          g = Math.cos(d),
                          m = 1;
                        ;
                      ) {
                        var v = (t = c[(m = m === l ? 0 : m)])[0],
                          y = t[1] / 2 + A / 4,
                          b = Math.sin(y),
                          y = Math.cos(y),
                          x = v - f,
                          w = 0 <= x ? 1 : -1,
                          P = w * x,
                          H = A < P,
                          C = p * b;
                        if (
                          (Un.add(
                            Math.atan2(
                              C * w * Math.sin(P),
                              g * y + C * Math.cos(P),
                            ),
                          ),
                          (o += H ? x + w * S : x),
                          H ^ (n <= f) ^ (n <= v) &&
                            (Jn((C = Xn(Qn(h), Qn(t)))),
                            Jn((P = Xn(i, C))),
                            (w = (H ^ (0 <= x) ? -1 : 1) * ee(P[2])) < r ||
                              (r === w && (C[0] || C[1]))) &&
                            (a += H ^ (0 <= x) ? 1 : -1),
                          !m++)
                        )
                          break;
                        ((f = v), (p = b), (g = y), (h = t));
                      }
                  }
                  return (o < -D || (o < D && Un < 0)) ^ (1 & a);
                })(e, l);
                (s.length
                  ? (p || (a.polygonStart(), (p = !0)), mr(s, Pr, t, x, a))
                  : t &&
                    (p || (a.polygonStart(), (p = !0)),
                    a.lineStart(),
                    x(null, null, 1, a),
                    a.lineEnd()),
                  p && (a.polygonEnd(), (p = !1)),
                  (s = l = null));
              },
              sphere: function () {
                (a.polygonStart(),
                  a.lineStart(),
                  x(null, null, 1, a),
                  a.lineEnd(),
                  a.polygonEnd());
              },
            };
          function o(t, e) {
            var n = r(t, e);
            y((t = n[0]), (e = n[1])) && a.point(t, e);
          }
          function t(t, e) {
            t = r(t, e);
            n.point(t[0], t[1]);
          }
          function u() {
            ((i.point = t), n.lineStart());
          }
          function c() {
            ((i.point = o), n.lineEnd());
          }
          var l,
            h,
            f = wr(),
            d = b(f),
            p = !1;
          function g(t, e) {
            h.push([t, e]);
            t = r(t, e);
            d.point(t[0], t[1]);
          }
          function m() {
            (d.lineStart(), (h = []));
          }
          function v() {
            (g(h[0][0], h[0][1]), d.lineEnd());
            var t = d.clean(),
              e = f.buffer(),
              n = e.length;
            if ((h.pop(), l.push(h), (h = null), n))
              if (1 & t) {
                var r,
                  i,
                  o = -1;
                if (0 < (n = (r = e[0]).length - 1)) {
                  for (
                    p || (a.polygonStart(), (p = !0)), a.lineStart();
                    ++o < n;
                  )
                    a.point((i = r[o])[0], i[1]);
                  a.lineEnd();
                }
              } else
                (1 < n && 2 & t && e.push(e.pop().concat(e.shift())),
                  s.push(e.filter(xr)));
          }
          return i;
        };
      }
      function xr(t) {
        return 1 < t.length;
      }
      function wr() {
        var n,
          e = [];
        return {
          lineStart: function () {
            e.push((n = []));
          },
          point: function (t, e) {
            n.push([t, e]);
          },
          lineEnd: u,
          buffer: function () {
            var t = e;
            return ((e = []), (n = null), t);
          },
          rejoin: function () {
            1 < e.length && e.push(e.pop().concat(e.shift()));
          },
        };
      }
      function Pr(t, e) {
        return (
          ((t = t.x)[0] < 0 ? t[1] - E - D : E - t[1]) -
          ((e = e.x)[0] < 0 ? e[1] - E - D : E - e[1])
        );
      }
      var Hr = br(
        gr,
        function (c) {
          var l,
            h = NaN,
            f = NaN,
            d = NaN;
          return {
            lineStart: function () {
              (c.lineStart(), (l = 1));
            },
            point: function (t, e) {
              var n,
                r,
                i,
                o,
                a,
                s = 0 < t ? A : -A,
                u = I(t - h);
              (I(u - A) < D
                ? (c.point(h, (f = 0 < (f + e) / 2 ? E : -E)),
                  c.point(d, f),
                  c.lineEnd(),
                  c.lineStart(),
                  c.point(s, f),
                  c.point(t, f),
                  (l = 0))
                : d !== s &&
                  A <= u &&
                  (I(h - d) < D && (h -= d * D),
                  I(t - s) < D && (t -= s * D),
                  (u = h),
                  (n = f),
                  (r = t),
                  (i = e),
                  (a = Math.sin(u - r)),
                  (f =
                    I(a) > D
                      ? Math.atan(
                          (Math.sin(n) * (o = Math.cos(i)) * Math.sin(r) -
                            Math.sin(i) * (r = Math.cos(n)) * Math.sin(u)) /
                            (r * o * a),
                        )
                      : (n + i) / 2),
                  c.point(d, f),
                  c.lineEnd(),
                  c.lineStart(),
                  c.point(s, f),
                  (l = 0)),
                c.point((h = t), (f = e)),
                (d = s));
            },
            lineEnd: function () {
              (c.lineEnd(), (h = f = NaN));
            },
            clean: function () {
              return 2 - l;
            },
          };
        },
        function (t, e, n, r) {
          var i;
          null == t
            ? ((i = n * E),
              r.point(-A, i),
              r.point(0, i),
              r.point(A, i),
              r.point(A, 0),
              r.point(A, -i),
              r.point(0, -i),
              r.point(-A, -i),
              r.point(-A, 0),
              r.point(-A, i))
            : I(t[0] - e[0]) > D
              ? ((t = t[0] < e[0] ? A : -A),
                (i = (n * t) / 2),
                r.point(-t, i),
                r.point(0, i),
                r.point(t, i))
              : r.point(e[0], e[1]);
        },
        [-A, -A / 2],
      );
      function Cr(i) {
        var g = Math.cos(i),
          h = 0 < g,
          f = I(g) > D;
        return br(
          d,
          function (o) {
            var a, s, u, c, l;
            return {
              lineStart: function () {
                ((c = u = !1), (l = 1));
              },
              point: function (t, e) {
                var n,
                  r = [t, e],
                  i = d(t, e),
                  t = h
                    ? i
                      ? 0
                      : m(t, e)
                    : i
                      ? m(t + (t < 0 ? A : -A), e)
                      : 0;
                (!a && (c = u = i) && o.lineStart(),
                  i !== u &&
                    ((n = p(a, r)), Kn(a, n) || Kn(r, n)) &&
                    ((r[0] += D), (r[1] += D), (i = d(r[0], r[1]))),
                  i !== u
                    ? ((l = 0),
                      i
                        ? (o.lineStart(), (n = p(r, a)), o.point(n[0], n[1]))
                        : ((n = p(a, r)), o.point(n[0], n[1]), o.lineEnd()),
                      (a = n))
                    : f &&
                      a &&
                      h ^ i &&
                      (t & s ||
                        !(e = p(r, a, !0)) ||
                        ((l = 0),
                        h
                          ? (o.lineStart(),
                            o.point(e[0][0], e[0][1]),
                            o.point(e[1][0], e[1][1]),
                            o.lineEnd())
                          : (o.point(e[1][0], e[1][1]),
                            o.lineEnd(),
                            o.lineStart(),
                            o.point(e[0][0], e[0][1])))),
                  !i || (a && Kn(a, r)) || o.point(r[0], r[1]),
                  (a = r),
                  (u = i),
                  (s = t));
              },
              lineEnd: function () {
                (u && o.lineEnd(), (a = null));
              },
              clean: function () {
                return l | ((c && u) << 1);
              },
            };
          },
          oi(i, 6 * C),
          h ? [0, -i] : [-A, i - A],
        );
        function d(t, e) {
          return Math.cos(t) * Math.cos(e) > g;
        }
        function p(t, e, n) {
          var r,
            i,
            o,
            a,
            s,
            u,
            c,
            l = [1, 0, 0],
            h = Xn(Qn(t), Qn(e)),
            f = Wn(h, h),
            d = h[0],
            p = f - d * d;
          return p
            ? ((r = Xn(l, h)),
              Yn((l = Gn(l, (g * f) / p)), Gn(h, (-g * d) / p)),
              (p = (h = Wn(l, (f = r))) * h - (d = Wn(f, f)) * (Wn(l, l) - 1)) <
              0
                ? void 0
                : (Yn((p = Gn(f, (-h - (r = Math.sqrt(p))) / d)), l),
                  (p = Zn(p)),
                  n
                    ? ((i = t[0]),
                      (o = e[0]),
                      (a = t[1]),
                      (e = e[1]),
                      o < i && ((c = i), (i = o), (o = c)),
                      !(u = I((s = o - i) - A) < D) &&
                        e < a &&
                        ((c = a), (a = e), (e = c)),
                      (
                        u || s < D
                          ? u
                            ? (0 < a + e) ^ (p[1] < (I(p[0] - i) < D ? a : e))
                            : a <= p[1] && p[1] <= e
                          : (A < s) ^ (i <= p[0] && p[0] <= o)
                      )
                        ? (Yn((c = Gn(f, (-h + r) / d)), l), [p, Zn(c)])
                        : void 0)
                    : p))
            : !n && t;
        }
        function m(t, e) {
          var n = h ? i : A - i,
            r = 0;
          return (
            t < -n ? (r |= 1) : n < t && (r |= 2),
            e < -n ? (r |= 4) : n < e && (r |= 8),
            r
          );
        }
      }
      function Sr(u, c, l, h) {
        return function (t) {
          var e = t.a,
            n = t.b,
            r = e.x,
            e = e.y,
            i = 0,
            o = 1,
            a = n.x - r,
            n = n.y - e,
            s = u - r;
          if (a || !(0 < s)) {
            if (((s /= a), a < 0)) {
              if (s < i) return;
              s < o && (o = s);
            } else if (0 < a) {
              if (o < s) return;
              i < s && (i = s);
            }
            if (((s = l - r), a || !(s < 0))) {
              if (((s /= a), a < 0)) {
                if (o < s) return;
                i < s && (i = s);
              } else if (0 < a) {
                if (s < i) return;
                s < o && (o = s);
              }
              if (((s = c - e), n || !(0 < s))) {
                if (((s /= n), n < 0)) {
                  if (s < i) return;
                  s < o && (o = s);
                } else if (0 < n) {
                  if (o < s) return;
                  i < s && (i = s);
                }
                if (((s = h - e), n || !(s < 0))) {
                  if (((s /= n), n < 0)) {
                    if (o < s) return;
                    i < s && (i = s);
                  } else if (0 < n) {
                    if (s < i) return;
                    s < o && (o = s);
                  }
                  return (
                    0 < i && (t.a = { x: r + i * a, y: e + i * n }),
                    o < 1 && (t.b = { x: r + o * a, y: e + o * n }),
                    t
                  );
                }
              }
            }
          }
        };
      }
      var kr = 1e9;
      function Tr(x, w, P, H) {
        return function (i) {
          var r,
            l,
            o,
            a,
            s,
            u,
            c,
            h,
            f,
            d,
            p,
            g = i,
            t = wr(),
            m = Sr(x, w, P, H),
            e = {
              point: n,
              lineStart: function () {
                ((e.point = b), l && l.push((o = [])));
                ((d = !0), (f = !1), (c = h = NaN));
              },
              lineEnd: function () {
                r && (b(a, s), u && f && t.rejoin(), r.push(t.buffer()));
                ((e.point = n), f && i.lineEnd());
              },
              polygonStart: function () {
                ((i = t), (r = []), (l = []), (p = !0));
              },
              polygonEnd: function () {
                ((i = g), (r = L.merge(r)));
                var t = (function (t) {
                    for (var e = 0, n = l.length, r = t[1], i = 0; i < n; ++i)
                      for (
                        var o, a = 1, s = l[i], u = s.length, c = s[0];
                        a < u;
                        ++a
                      )
                        ((o = s[a]),
                          c[1] <= r
                            ? o[1] > r && 0 < Kt(c, o, t) && ++e
                            : o[1] <= r && Kt(c, o, t) < 0 && --e,
                          (c = o));
                    return 0 !== e;
                  })([x, H]),
                  e = p && t,
                  n = r.length;
                ((e || n) &&
                  (i.polygonStart(),
                  e && (i.lineStart(), v(null, null, 1, i), i.lineEnd()),
                  n && mr(r, S, t, v, i),
                  i.polygonEnd()),
                  (r = l = o = null));
              },
            };
          function v(t, e, n, r) {
            var i = 0,
              o = 0;
            if (
              null == t ||
              (i = C(t, n)) !== (o = C(e, n)) ||
              (k(t, e) < 0) ^ (0 < n)
            )
              for (
                ;
                r.point(0 === i || 3 === i ? x : P, 1 < i ? H : w),
                  (i = (i + n + 4) % 4) !== o;
              );
            else r.point(e[0], e[1]);
          }
          function y(t, e) {
            return x <= t && t <= P && w <= e && e <= H;
          }
          function n(t, e) {
            y(t, e) && i.point(t, e);
          }
          function b(t, e) {
            var n,
              r = y(
                (t = Math.max(-kr, Math.min(kr, t))),
                (e = Math.max(-kr, Math.min(kr, e))),
              );
            (l && o.push([t, e]),
              d
                ? ((a = t),
                  (s = e),
                  (d = !1),
                  (u = r) && (i.lineStart(), i.point(t, e)))
                : r && f
                  ? i.point(t, e)
                  : m((n = { a: { x: c, y: h }, b: { x: t, y: e } }))
                    ? (f || (i.lineStart(), i.point(n.a.x, n.a.y)),
                      i.point(n.b.x, n.b.y),
                      r || i.lineEnd(),
                      (p = !1))
                    : r && (i.lineStart(), i.point(t, e), (p = !1)),
              (c = t),
              (h = e),
              (f = r));
          }
          return e;
        };
        function C(t, e) {
          return I(t[0] - x) < D
            ? 0 < e
              ? 0
              : 3
            : I(t[0] - P) < D
              ? 0 < e
                ? 2
                : 1
              : I(t[1] - w) < D
                ? 0 < e
                  ? 1
                  : 0
                : 0 < e
                  ? 3
                  : 2;
        }
        function S(t, e) {
          return k(t.x, e.x);
        }
        function k(t, e) {
          var n = C(t, 1),
            r = C(e, 1);
          return n !== r
            ? n - r
            : 0 === n
              ? e[1] - t[1]
              : 1 === n
                ? t[0] - e[0]
                : 2 === n
                  ? t[1] - e[1]
                  : e[0] - t[0];
        }
      }
      function Mr(t) {
        var e = 0,
          n = A / 3,
          r = Jr(t),
          t = r(e, n);
        return (
          (t.parallels = function (t) {
            return arguments.length
              ? r((e = (t[0] * A) / 180), (n = (t[1] * A) / 180))
              : [(e / A) * 180, (n / A) * 180];
          }),
          t
        );
      }
      function Ar(t, e) {
        var t = Math.sin(t),
          n = (t + Math.sin(e)) / 2,
          r = 1 + t * (2 * n - t),
          i = Math.sqrt(r) / n;
        function o(t, e) {
          e = Math.sqrt(r - 2 * n * Math.sin(e)) / n;
          return [e * Math.sin((t *= n)), i - e * Math.cos(t)];
        }
        return (
          (o.invert = function (t, e) {
            e = i - e;
            return [
              Math.atan2(t, e) / n,
              ee((r - (t * t + e * e) * n * n) / (2 * n)),
            ];
          }),
          o
        );
      }
      ((L.geo.clipExtent = function () {
        var e,
          n,
          r,
          i,
          o,
          a,
          s = {
            stream: function (t) {
              return (o && (o.valid = !1), ((o = a(t)).valid = !0), o);
            },
            extent: function (t) {
              return arguments.length
                ? ((a = Tr(
                    (e = +t[0][0]),
                    (n = +t[0][1]),
                    (r = +t[1][0]),
                    (i = +t[1][1]),
                  )),
                  o && ((o.valid = !1), (o = null)),
                  s)
                : [
                    [e, n],
                    [r, i],
                  ];
            },
          };
        return s.extent([
          [0, 0],
          [960, 500],
        ]);
      }),
        ((L.geo.conicEqualArea = function () {
          return Mr(Ar);
        }).raw = Ar),
        (L.geo.albers = function () {
          return L.geo
            .conicEqualArea()
            .rotate([96, 0])
            .center([-0.6, 38.7])
            .parallels([29.5, 45.5])
            .scale(1070);
        }),
        (L.geo.albersUsa = function () {
          var n,
            i,
            o,
            a,
            s = L.geo.albers(),
            u = L.geo
              .conicEqualArea()
              .rotate([154, 0])
              .center([-2, 58.5])
              .parallels([55, 65]),
            c = L.geo
              .conicEqualArea()
              .rotate([157, 0])
              .center([-3, 19.9])
              .parallels([8, 18]),
            l = {
              point: function (t, e) {
                n = [t, e];
              },
            };
          function h(t) {
            var e = t[0],
              t = t[1];
            return ((n = null), i(e, t), n || (o(e, t), n) || a(e, t), n);
          }
          return (
            (h.invert = function (t) {
              var e = s.scale(),
                n = s.translate(),
                r = (t[0] - n[0]) / e,
                n = (t[1] - n[1]) / e;
              return (
                0.12 <= n && n < 0.234 && -0.425 <= r && r < -0.214
                  ? u
                  : 0.166 <= n && n < 0.234 && -0.214 <= r && r < -0.115
                    ? c
                    : s
              ).invert(t);
            }),
            (h.stream = function (t) {
              var n = s.stream(t),
                r = u.stream(t),
                i = c.stream(t);
              return {
                point: function (t, e) {
                  (n.point(t, e), r.point(t, e), i.point(t, e));
                },
                sphere: function () {
                  (n.sphere(), r.sphere(), i.sphere());
                },
                lineStart: function () {
                  (n.lineStart(), r.lineStart(), i.lineStart());
                },
                lineEnd: function () {
                  (n.lineEnd(), r.lineEnd(), i.lineEnd());
                },
                polygonStart: function () {
                  (n.polygonStart(), r.polygonStart(), i.polygonStart());
                },
                polygonEnd: function () {
                  (n.polygonEnd(), r.polygonEnd(), i.polygonEnd());
                },
              };
            }),
            (h.precision = function (t) {
              return arguments.length
                ? (s.precision(t), u.precision(t), c.precision(t), h)
                : s.precision();
            }),
            (h.scale = function (t) {
              return arguments.length
                ? (s.scale(t),
                  u.scale(0.35 * t),
                  c.scale(t),
                  h.translate(s.translate()))
                : s.scale();
            }),
            (h.translate = function (t) {
              var e, n, r;
              return arguments.length
                ? ((e = s.scale()),
                  (n = +t[0]),
                  (r = +t[1]),
                  (i = s
                    .translate(t)
                    .clipExtent([
                      [n - 0.455 * e, r - 0.238 * e],
                      [n + 0.455 * e, r + 0.238 * e],
                    ])
                    .stream(l).point),
                  (o = u
                    .translate([n - 0.307 * e, r + 0.201 * e])
                    .clipExtent([
                      [n - 0.425 * e + D, r + 0.12 * e + D],
                      [n - 0.214 * e - D, r + 0.234 * e - D],
                    ])
                    .stream(l).point),
                  (a = c
                    .translate([n - 0.205 * e, r + 0.212 * e])
                    .clipExtent([
                      [n - 0.214 * e + D, r + 0.166 * e + D],
                      [n - 0.115 * e - D, r + 0.234 * e - D],
                    ])
                    .stream(l).point),
                  h)
                : s.translate();
            }),
            h.scale(1070)
          );
        }));
      var Er,
        Ir,
        Dr,
        Lr,
        _r,
        Nr,
        jr = {
          point: u,
          lineStart: u,
          lineEnd: u,
          polygonStart: function () {
            ((Ir = 0), (jr.lineStart = zr));
          },
          polygonEnd: function () {
            ((jr.lineStart = jr.lineEnd = jr.point = u), (Er += I(Ir / 2)));
          },
        };
      function zr() {
        var n, r, i, o;
        function a(t, e) {
          ((Ir += o * t - i * e), (i = t), (o = e));
        }
        ((jr.point = function (t, e) {
          ((jr.point = a), (n = i = t), (r = o = e));
        }),
          (jr.lineEnd = function () {
            a(n, r);
          }));
      }
      var Rr = {
        point: function (t, e) {
          t < Dr && (Dr = t);
          _r < t && (_r = t);
          e < Lr && (Lr = e);
          Nr < e && (Nr = e);
        },
        lineStart: u,
        lineEnd: u,
        polygonStart: u,
        polygonEnd: u,
      };
      function Or() {
        var n = qr(4.5),
          r = [],
          i = {
            point: t,
            lineStart: function () {
              i.point = e;
            },
            lineEnd: a,
            polygonStart: function () {
              i.lineEnd = s;
            },
            polygonEnd: function () {
              ((i.lineEnd = a), (i.point = t));
            },
            pointRadius: function (t) {
              return ((n = qr(t)), i);
            },
            result: function () {
              var t;
              if (r.length) return ((t = r.join("")), (r = []), t);
            },
          };
        function t(t, e) {
          r.push("M", t, ",", e, n);
        }
        function e(t, e) {
          (r.push("M", t, ",", e), (i.point = o));
        }
        function o(t, e) {
          r.push("L", t, ",", e);
        }
        function a() {
          i.point = t;
        }
        function s() {
          r.push("Z");
        }
        return i;
      }
      function qr(t) {
        return (
          "m0," +
          t +
          "a" +
          t +
          "," +
          t +
          " 0 1,1 0," +
          -2 * t +
          "a" +
          t +
          "," +
          t +
          " 0 1,1 0," +
          2 * t +
          "z"
        );
      }
      var Br,
        b = {
          point: Fr,
          lineStart: $r,
          lineEnd: Ur,
          polygonStart: function () {
            b.lineStart = Vr;
          },
          polygonEnd: function () {
            ((b.point = Fr), (b.lineStart = $r), (b.lineEnd = Ur));
          },
        };
      function Fr(t, e) {
        ((jn += t), (zn += e), ++Rn);
      }
      function $r() {
        var i, o;
        function n(t, e) {
          var n = t - i,
            r = e - o,
            n = Math.sqrt(n * n + r * r);
          ((On += (n * (i + t)) / 2),
            (qn += (n * (o + e)) / 2),
            (g += n),
            Fr((i = t), (o = e)));
        }
        b.point = function (t, e) {
          ((b.point = n), Fr((i = t), (o = e)));
        };
      }
      function Ur() {
        b.point = Fr;
      }
      function Vr() {
        var n, r, i, o;
        function a(t, e) {
          var n = t - i,
            r = e - o,
            n = Math.sqrt(n * n + r * r);
          ((On += (n * (i + t)) / 2),
            (qn += (n * (o + e)) / 2),
            (g += n),
            (Bn += (n = o * t - i * e) * (i + t)),
            (Fn += n * (o + e)),
            ($n += 3 * n),
            Fr((i = t), (o = e)));
        }
        ((b.point = function (t, e) {
          ((b.point = a), Fr((n = i = t), (r = o = e)));
        }),
          (b.lineEnd = function () {
            a(n, r);
          }));
      }
      function Qr(n) {
        var r = 4.5,
          i = {
            point: t,
            lineStart: function () {
              i.point = e;
            },
            lineEnd: a,
            polygonStart: function () {
              i.lineEnd = s;
            },
            polygonEnd: function () {
              ((i.lineEnd = a), (i.point = t));
            },
            pointRadius: function (t) {
              return ((r = t), i);
            },
            result: u,
          };
        function t(t, e) {
          (n.moveTo(t + r, e), n.arc(t, e, r, 0, S));
        }
        function e(t, e) {
          (n.moveTo(t, e), (i.point = o));
        }
        function o(t, e) {
          n.lineTo(t, e);
        }
        function a() {
          i.point = t;
        }
        function s() {
          n.closePath();
        }
        return i;
      }
      function Wr(T) {
        var M = 0.5,
          A = Math.cos(30 * C),
          w = 16;
        function e(t) {
          return (w ? r : n)(t);
        }
        function n(n) {
          return Yr(n, function (t, e) {
            ((t = T(t, e)), n.point(t[0], t[1]));
          });
        }
        function r(r) {
          var n,
            i,
            o,
            a,
            s,
            u,
            c,
            l,
            h,
            f,
            d,
            p,
            g = {
              point: t,
              lineStart: e,
              lineEnd: v,
              polygonStart: function () {
                (r.polygonStart(), (g.lineStart = y));
              },
              polygonEnd: function () {
                (r.polygonEnd(), (g.lineStart = e));
              },
            };
          function t(t, e) {
            ((t = T(t, e)), r.point(t[0], t[1]));
          }
          function e() {
            ((l = NaN), (g.point = m), r.lineStart());
          }
          function m(t, e) {
            var n = Qn([t, e]),
              e = T(t, e);
            (E(
              l,
              h,
              c,
              f,
              d,
              p,
              (l = e[0]),
              (h = e[1]),
              (c = t),
              (f = n[0]),
              (d = n[1]),
              (p = n[2]),
              w,
              r,
            ),
              r.point(l, h));
          }
          function v() {
            ((g.point = t), r.lineEnd());
          }
          function y() {
            (e(), (g.point = b), (g.lineEnd = x));
          }
          function b(t, e) {
            (m((n = t), e),
              (i = l),
              (o = h),
              (a = f),
              (s = d),
              (u = p),
              (g.point = m));
          }
          function x() {
            (E(l, h, c, f, d, p, i, o, n, a, s, u, w, r), (g.lineEnd = v), v());
          }
          return g;
        }
        function E(t, e, n, r, i, o, a, s, u, c, l, h, f, d) {
          var p,
            g,
            m,
            v,
            y,
            b,
            x,
            w,
            P,
            H,
            C = a - t,
            S = s - e,
            k = C * C + S * S;
          4 * M < k &&
            f-- &&
            ((p = r + c),
            (g = i + l),
            (m = o + h),
            (v = Math.sqrt(p * p + g * g + m * m)),
            (x = Math.asin((m /= v))),
            (y =
              I(I(m) - 1) < D || I(n - u) < D ? (n + u) / 2 : Math.atan2(g, p)),
            (b = (x = T(y, x))[0]),
            (x = x[1]),
            M < ((H = S * (w = b - t) - C * (P = x - e)) * H) / k ||
              0.3 < I((C * w + S * P) / k - 0.5) ||
              r * c + i * l + o * h < A) &&
            (E(t, e, n, r, i, o, b, x, y, (p /= v), (g /= v), m, f, d),
            d.point(b, x),
            E(b, x, y, p, g, m, a, s, u, c, l, h, f, d));
        }
        return (
          (e.precision = function (t) {
            return arguments.length
              ? ((w = 0 < (M = t * t) && 16), e)
              : Math.sqrt(M);
          }),
          e
        );
      }
      function Xr(t) {
        this.stream = t;
      }
      function Yr(t, e) {
        return {
          point: e,
          sphere: function () {
            t.sphere();
          },
          lineStart: function () {
            t.lineStart();
          },
          lineEnd: function () {
            t.lineEnd();
          },
          polygonStart: function () {
            t.polygonStart();
          },
          polygonEnd: function () {
            t.polygonEnd();
          },
        };
      }
      function Gr(t) {
        return Jr(function () {
          return t;
        })();
      }
      function Jr(t) {
        var n,
          e,
          r,
          i,
          o,
          a,
          s = Wr(function (t, e) {
            return [(t = n(t, e))[0] * u + i, o - t[1] * u];
          }),
          u = 150,
          c = 480,
          l = 250,
          h = 0,
          f = 0,
          d = 0,
          p = 0,
          g = 0,
          m = Hr,
          v = j,
          y = null,
          b = null;
        function x(t) {
          return [(t = r(t[0] * C, t[1] * C))[0] * u + i, o - t[1] * u];
        }
        function w(t) {
          return (
            (t = r.invert((t[0] - i) / u, (o - t[1]) / u)) && [
              t[0] * k,
              t[1] * k,
            ]
          );
        }
        function P() {
          r = pr((e = ei(d, p, g)), n);
          var t = n(h, f);
          return ((i = c - t[0] * u), (o = l + t[1] * u), H());
        }
        function H() {
          return (a && ((a.valid = !1), (a = null)), x);
        }
        return (
          (x.stream = function (t) {
            return (
              a && (a.valid = !1),
              ((a = Zr(m(e, s(v(t))))).valid = !0),
              a
            );
          }),
          (x.clipAngle = function (t) {
            return arguments.length
              ? ((m = null == t ? ((y = t), Hr) : Cr((y = +t) * C)), H())
              : y;
          }),
          (x.clipExtent = function (t) {
            return arguments.length
              ? ((v = (b = t) ? Tr(t[0][0], t[0][1], t[1][0], t[1][1]) : j),
                H())
              : b;
          }),
          (x.scale = function (t) {
            return arguments.length ? ((u = +t), P()) : u;
          }),
          (x.translate = function (t) {
            return arguments.length ? ((c = +t[0]), (l = +t[1]), P()) : [c, l];
          }),
          (x.center = function (t) {
            return arguments.length
              ? ((h = (t[0] % 360) * C), (f = (t[1] % 360) * C), P())
              : [h * k, f * k];
          }),
          (x.rotate = function (t) {
            return arguments.length
              ? ((d = (t[0] % 360) * C),
                (p = (t[1] % 360) * C),
                (g = 2 < t.length ? (t[2] % 360) * C : 0),
                P())
              : [d * k, p * k, g * k];
          }),
          L.rebind(x, s, "precision"),
          function () {
            return (
              (n = t.apply(this, arguments)),
              (x.invert = n.invert && w),
              P()
            );
          }
        );
      }
      function Zr(n) {
        return Yr(n, function (t, e) {
          n.point(t * C, e * C);
        });
      }
      function Kr(t, e) {
        return [t, e];
      }
      function ti(t, e) {
        return [A < t ? t - S : t < -A ? t + S : t, e];
      }
      function ei(t, e, n) {
        return t
          ? e || n
            ? pr(ri(t), ii(e, n))
            : ri(t)
          : e || n
            ? ii(e, n)
            : ti;
      }
      function ni(n) {
        return function (t, e) {
          return [A < (t += n) ? t - S : t < -A ? t + S : t, e];
        };
      }
      function ri(t) {
        var e = ni(t);
        return ((e.invert = ni(-t)), e);
      }
      function ii(t, e) {
        var i = Math.cos(t),
          o = Math.sin(t),
          a = Math.cos(e),
          s = Math.sin(e);
        function n(t, e) {
          var n = Math.cos(e),
            r = Math.cos(t) * n,
            t = Math.sin(t) * n,
            n = Math.sin(e),
            e = n * i + r * o;
          return [Math.atan2(t * a - e * s, r * i - n * o), ee(e * a + t * s)];
        }
        return (
          (n.invert = function (t, e) {
            var n = Math.cos(e),
              r = Math.cos(t) * n,
              t = Math.sin(t) * n,
              n = Math.sin(e),
              e = n * a - t * s;
            return [
              Math.atan2(t * a + n * s, r * i + e * o),
              ee(e * i - r * o),
            ];
          }),
          n
        );
      }
      function oi(s, u) {
        var c = Math.cos(s),
          l = Math.sin(s);
        return function (t, e, n, r) {
          var i = n * u;
          null != t
            ? ((t = ai(c, t)),
              (e = ai(c, e)),
              (0 < n ? t < e : e < t) && (t += n * S))
            : ((t = s + n * S), (e = s - 0.5 * i));
          for (var o, a = t; 0 < n ? e < a : a < e; a -= i)
            r.point((o = Zn([c, -l * Math.cos(a), -l * Math.sin(a)]))[0], o[1]);
        };
      }
      function ai(t, e) {
        ((e = Qn(e)), (e[0] -= t), Jn(e), (t = te(-e[1])));
        return ((-e[2] < 0 ? -t : t) + 2 * Math.PI - D) % (2 * Math.PI);
      }
      function si(t, e, n) {
        var r = L.range(t, e - D, n).concat(e);
        return function (e) {
          return r.map(function (t) {
            return [e, t];
          });
        };
      }
      function ui(t, e, n) {
        var r = L.range(t, e - D, n).concat(e);
        return function (e) {
          return r.map(function (t) {
            return [t, e];
          });
        };
      }
      function ci(t) {
        return t.source;
      }
      function li(t) {
        return t.target;
      }
      ((L.geo.path = function () {
        var r,
          e,
          i,
          n,
          o,
          a = 4.5;
        function s(t) {
          return (
            t &&
              ("function" == typeof a &&
                n.pointRadius(+a.apply(this, arguments)),
              (o && o.valid) || (o = i(n)),
              L.geo.stream(t, o)),
            n.result()
          );
        }
        function u() {
          return ((o = null), s);
        }
        return (
          (s.area = function (t) {
            return ((Er = 0), L.geo.stream(t, i(jr)), Er);
          }),
          (s.centroid = function (t) {
            return (
              (jn = zn = Rn = On = qn = g = Bn = Fn = $n = 0),
              L.geo.stream(t, i(b)),
              $n
                ? [Bn / $n, Fn / $n]
                : g
                  ? [On / g, qn / g]
                  : Rn
                    ? [jn / Rn, zn / Rn]
                    : [NaN, NaN]
            );
          }),
          (s.bounds = function (t) {
            return (
              (_r = Nr = -(Dr = Lr = 1 / 0)),
              L.geo.stream(t, i(Rr)),
              [
                [Dr, Lr],
                [_r, Nr],
              ]
            );
          }),
          (s.projection = function (t) {
            var n, e;
            return arguments.length
              ? ((i = (r = t)
                  ? t.stream ||
                    ((n = t),
                    (e = Wr(function (t, e) {
                      return n([t * k, e * k]);
                    })),
                    function (t) {
                      return Zr(e(t));
                    })
                  : j),
                u())
              : r;
          }),
          (s.context = function (t) {
            return arguments.length
              ? ((n = null == (e = t) ? new Or() : new Qr(t)),
                "function" != typeof a && n.pointRadius(a),
                u())
              : e;
          }),
          (s.pointRadius = function (t) {
            return arguments.length
              ? ((a = "function" == typeof t ? t : (n.pointRadius(+t), +t)), s)
              : a;
          }),
          s.projection(L.geo.albersUsa()).context(null)
        );
      }),
        (L.geo.transform = function (r) {
          return {
            stream: function (t) {
              var e,
                n = new Xr(t);
              for (e in r) n[e] = r[e];
              return n;
            },
          };
        }),
        (Xr.prototype = {
          point: function (t, e) {
            this.stream.point(t, e);
          },
          sphere: function () {
            this.stream.sphere();
          },
          lineStart: function () {
            this.stream.lineStart();
          },
          lineEnd: function () {
            this.stream.lineEnd();
          },
          polygonStart: function () {
            this.stream.polygonStart();
          },
          polygonEnd: function () {
            this.stream.polygonEnd();
          },
        }),
        (L.geo.projection = Gr),
        (L.geo.projectionMutator = Jr),
        ((L.geo.equirectangular = function () {
          return Gr(Kr);
        }).raw = Kr.invert =
          Kr),
        (L.geo.rotation = function (e) {
          function t(t) {
            return (((t = e(t[0] * C, t[1] * C))[0] *= k), (t[1] *= k), t);
          }
          return (
            (e = ei((e[0] % 360) * C, e[1] * C, 2 < e.length ? e[2] * C : 0)),
            (t.invert = function (t) {
              return (
                ((t = e.invert(t[0] * C, t[1] * C))[0] *= k),
                (t[1] *= k),
                t
              );
            }),
            t
          );
        }),
        (ti.invert = Kr),
        (L.geo.circle = function () {
          var e,
            i,
            o = [0, 0],
            n = 6;
          function r() {
            var t = "function" == typeof o ? o.apply(this, arguments) : o,
              n = ei(-t[0] * C, -t[1] * C, 0).invert,
              r = [];
            return (
              i(null, null, 1, {
                point: function (t, e) {
                  (r.push((t = n(t, e))), (t[0] *= k), (t[1] *= k));
                },
              }),
              { type: "Polygon", coordinates: [r] }
            );
          }
          return (
            (r.origin = function (t) {
              return arguments.length ? ((o = t), r) : o;
            }),
            (r.angle = function (t) {
              return arguments.length ? ((i = oi((e = +t) * C, n * C)), r) : e;
            }),
            (r.precision = function (t) {
              return arguments.length ? ((i = oi(e * C, (n = +t) * C)), r) : n;
            }),
            r.angle(90)
          );
        }),
        (L.geo.distance = function (t, e) {
          var n = (e[0] - t[0]) * C,
            t = t[1] * C,
            e = e[1] * C,
            r = Math.sin(n),
            n = Math.cos(n),
            i = Math.sin(t),
            t = Math.cos(t),
            o = Math.sin(e),
            e = Math.cos(e);
          return Math.atan2(
            Math.sqrt((r = e * r) * r + (r = t * o - i * e * n) * r),
            i * o + t * e * n,
          );
        }),
        (L.geo.graticule = function () {
          var e,
            n,
            r,
            i,
            o,
            a,
            s,
            u,
            c,
            l,
            h,
            f,
            d = 10,
            p = d,
            g = 90,
            m = 360,
            v = 2.5;
          function y() {
            return { type: "MultiLineString", coordinates: t() };
          }
          function t() {
            return L.range(Math.ceil(i / g) * g, r, g)
              .map(h)
              .concat(L.range(Math.ceil(u / m) * m, s, m).map(f))
              .concat(
                L.range(Math.ceil(n / d) * d, e, d)
                  .filter(function (t) {
                    return I(t % g) > D;
                  })
                  .map(c),
              )
              .concat(
                L.range(Math.ceil(a / p) * p, o, p)
                  .filter(function (t) {
                    return I(t % m) > D;
                  })
                  .map(l),
              );
          }
          return (
            (y.lines = function () {
              return t().map(function (t) {
                return { type: "LineString", coordinates: t };
              });
            }),
            (y.outline = function () {
              return {
                type: "Polygon",
                coordinates: [
                  h(i).concat(
                    f(s).slice(1),
                    h(r).reverse().slice(1),
                    f(u).reverse().slice(1),
                  ),
                ],
              };
            }),
            (y.extent = function (t) {
              return arguments.length
                ? y.majorExtent(t).minorExtent(t)
                : y.minorExtent();
            }),
            (y.majorExtent = function (t) {
              return arguments.length
                ? ((i = +t[0][0]),
                  (r = +t[1][0]),
                  (u = +t[0][1]),
                  (s = +t[1][1]),
                  r < i && ((t = i), (i = r), (r = t)),
                  s < u && ((t = u), (u = s), (s = t)),
                  y.precision(v))
                : [
                    [i, u],
                    [r, s],
                  ];
            }),
            (y.minorExtent = function (t) {
              return arguments.length
                ? ((n = +t[0][0]),
                  (e = +t[1][0]),
                  (a = +t[0][1]),
                  (o = +t[1][1]),
                  e < n && ((t = n), (n = e), (e = t)),
                  o < a && ((t = a), (a = o), (o = t)),
                  y.precision(v))
                : [
                    [n, a],
                    [e, o],
                  ];
            }),
            (y.step = function (t) {
              return arguments.length
                ? y.majorStep(t).minorStep(t)
                : y.minorStep();
            }),
            (y.majorStep = function (t) {
              return arguments.length ? ((g = +t[0]), (m = +t[1]), y) : [g, m];
            }),
            (y.minorStep = function (t) {
              return arguments.length ? ((d = +t[0]), (p = +t[1]), y) : [d, p];
            }),
            (y.precision = function (t) {
              return arguments.length
                ? ((v = +t),
                  (c = si(a, o, 90)),
                  (l = ui(n, e, v)),
                  (h = si(u, s, 90)),
                  (f = ui(i, r, v)),
                  y)
                : v;
            }),
            y
              .majorExtent([
                [-180, -90 + D],
                [180, 90 - D],
              ])
              .minorExtent([
                [-180, -80 - D],
                [180, 80 + D],
              ])
          );
        }),
        (L.geo.greatArc = function () {
          var e,
            n,
            r = ci,
            i = li;
          function o() {
            return {
              type: "LineString",
              coordinates: [
                e || r.apply(this, arguments),
                n || i.apply(this, arguments),
              ],
            };
          }
          return (
            (o.distance = function () {
              return L.geo.distance(
                e || r.apply(this, arguments),
                n || i.apply(this, arguments),
              );
            }),
            (o.source = function (t) {
              return arguments.length
                ? ((e = "function" == typeof (r = t) ? null : t), o)
                : r;
            }),
            (o.target = function (t) {
              return arguments.length
                ? ((n = "function" == typeof (i = t) ? null : t), o)
                : i;
            }),
            (o.precision = function () {
              return arguments.length ? o : 0;
            }),
            o
          );
        }),
        (L.geo.interpolate = function (t, e) {
          return (
            (n = t[0] * C),
            (r = t[1] * C),
            (t = e[0] * C),
            (e = e[1] * C),
            (i = Math.cos(r)),
            (o = Math.sin(r)),
            (a = Math.cos(e)),
            (s = Math.sin(e)),
            (u = i * Math.cos(n)),
            (c = i * Math.sin(n)),
            (l = a * Math.cos(t)),
            (h = a * Math.sin(t)),
            (f = 2 * Math.asin(Math.sqrt(re(e - r) + i * a * re(t - n)))),
            (d = 1 / Math.sin(f)),
            ((e = f
              ? function (t) {
                  var e = Math.sin((t *= f)) * d,
                    t = Math.sin(f - t) * d,
                    n = t * u + e * l,
                    r = t * c + e * h,
                    t = t * o + e * s;
                  return [
                    Math.atan2(r, n) * k,
                    Math.atan2(t, Math.sqrt(n * n + r * r)) * k,
                  ];
                }
              : function () {
                  return [n * k, r * k];
                }).distance = f),
            e
          );
          var n, r, i, o, a, s, u, c, l, h, f, d;
        }),
        (L.geo.length = function (t) {
          return ((Br = 0), L.geo.stream(t, hi), Br);
        }));
      var hi = {
        sphere: u,
        point: u,
        lineStart: function () {
          var o, a, s;
          function n(t, e) {
            var n = Math.sin((e *= C)),
              e = Math.cos(e),
              r = I((t *= C) - o),
              i = Math.cos(r);
            ((Br += Math.atan2(
              Math.sqrt(
                (r = e * Math.sin(r)) * r + (r = s * n - a * e * i) * r,
              ),
              a * n + s * e * i,
            )),
              (o = t),
              (a = n),
              (s = e));
          }
          ((hi.point = function (t, e) {
            ((o = t * C),
              (a = Math.sin((e *= C))),
              (s = Math.cos(e)),
              (hi.point = n));
          }),
            (hi.lineEnd = function () {
              hi.point = hi.lineEnd = u;
            }));
        },
        lineEnd: u,
        polygonStart: u,
        polygonEnd: u,
      };
      function fi(i, o) {
        function t(t, e) {
          var n = Math.cos(t),
            r = Math.cos(e),
            n = i(n * r);
          return [n * r * Math.sin(t), n * Math.sin(e)];
        }
        return (
          (t.invert = function (t, e) {
            var n = Math.sqrt(t * t + e * e),
              r = o(n),
              i = Math.sin(r),
              r = Math.cos(r);
            return [Math.atan2(t * i, n * r), Math.asin(n && (e * i) / n)];
          }),
          t
        );
      }
      var di = fi(
          function (t) {
            return Math.sqrt(2 / (1 + t));
          },
          function (t) {
            return 2 * Math.asin(t / 2);
          },
        ),
        pi =
          (((L.geo.azimuthalEqualArea = function () {
            return Gr(di);
          }).raw = di),
          fi(function (t) {
            t = Math.acos(t);
            return t && t / Math.sin(t);
          }, j));
      function gi(t, e) {
        function n(t) {
          return Math.tan(A / 4 + t / 2);
        }
        var r = Math.cos(t),
          i =
            t === e
              ? Math.sin(t)
              : Math.log(r / Math.cos(e)) / Math.log(n(e) / n(t)),
          o = (r * Math.pow(n(t), i)) / i;
        return i
          ? ((a.invert = function (t, e) {
              var e = o - e,
                n = Zt(i) * Math.sqrt(t * t + e * e);
              return [
                Math.atan2(t, e) / i,
                2 * Math.atan(Math.pow(o / n, 1 / i)) - E,
              ];
            }),
            a)
          : yi;
        function a(t, e) {
          0 < o ? e < -E + D && (e = -E + D) : E - D < e && (e = E - D);
          e = o / Math.pow(n(e), i);
          return [e * Math.sin(i * t), o - e * Math.cos(i * t)];
        }
      }
      function mi(t, e) {
        var n = Math.cos(t),
          r = t === e ? Math.sin(t) : (n - Math.cos(e)) / (e - t),
          i = n / r + t;
        return I(r) < D
          ? Kr
          : ((o.invert = function (t, e) {
              e = i - e;
              return [
                Math.atan2(t, e) / r,
                i - Zt(r) * Math.sqrt(t * t + e * e),
              ];
            }),
            o);
        function o(t, e) {
          e = i - e;
          return [e * Math.sin(r * t), i - e * Math.cos(r * t)];
        }
      }
      (((L.geo.azimuthalEquidistant = function () {
        return Gr(pi);
      }).raw = pi),
        ((L.geo.conicConformal = function () {
          return Mr(gi);
        }).raw = gi),
        ((L.geo.conicEquidistant = function () {
          return Mr(mi);
        }).raw = mi));
      var vi = fi(function (t) {
        return 1 / t;
      }, Math.atan);
      function yi(t, e) {
        return [t, Math.log(Math.tan(A / 4 + e / 2))];
      }
      function bi(t) {
        var i,
          o = Gr(t),
          a = o.scale,
          s = o.translate,
          u = o.clipExtent;
        return (
          (o.scale = function () {
            var t = a.apply(o, arguments);
            return t === o ? (i ? o.clipExtent(null) : o) : t;
          }),
          (o.translate = function () {
            var t = s.apply(o, arguments);
            return t === o ? (i ? o.clipExtent(null) : o) : t;
          }),
          (o.clipExtent = function (t) {
            var e,
              n,
              r = u.apply(o, arguments);
            return (
              r === o
                ? (i = null == t) &&
                  ((e = A * a()),
                  (n = s()),
                  u([
                    [n[0] - e, n[1] - e],
                    [n[0] + e, n[1] + e],
                  ]))
                : i && (r = null),
              r
            );
          }),
          o.clipExtent(null)
        );
      }
      (((L.geo.gnomonic = function () {
        return Gr(vi);
      }).raw = vi),
        (yi.invert = function (t, e) {
          return [t, 2 * Math.atan(Math.exp(e)) - E];
        }),
        ((L.geo.mercator = function () {
          return bi(yi);
        }).raw = yi));
      var xi = fi(function () {
          return 1;
        }, Math.asin),
        wi =
          (((L.geo.orthographic = function () {
            return Gr(xi);
          }).raw = xi),
          fi(
            function (t) {
              return 1 / (1 + t);
            },
            function (t) {
              return 2 * Math.atan(t);
            },
          ));
      function Pi(t, e) {
        return [Math.log(Math.tan(A / 4 + e / 2)), -t];
      }
      function Hi(t) {
        return t[0];
      }
      function Ci(t) {
        return t[1];
      }
      function Si(t) {
        for (var e = t.length, n = [0, 1], r = 2, i = 2; i < e; i++) {
          for (; 1 < r && Kt(t[n[r - 2]], t[n[r - 1]], t[i]) <= 0; ) --r;
          n[r++] = i;
        }
        return n.slice(0, r);
      }
      function ki(t, e) {
        return t[0] - e[0] || t[1] - e[1];
      }
      (((L.geo.stereographic = function () {
        return Gr(wi);
      }).raw = wi),
        (Pi.invert = function (t, e) {
          return [-e, 2 * Math.atan(Math.exp(t)) - E];
        }),
        ((L.geo.transverseMercator = function () {
          var t = bi(Pi),
            e = t.center,
            n = t.rotate;
          return (
            (t.center = function (t) {
              return t ? e([-t[1], t[0]]) : [(t = e())[1], -t[0]];
            }),
            (t.rotate = function (t) {
              return t
                ? n([t[0], t[1], 2 < t.length ? t[2] + 90 : 90])
                : [(t = n())[0], t[1], t[2] - 90];
            }),
            n([0, 0, 90])
          );
        }).raw = Pi),
        (L.geom = {}),
        (L.geom.hull = function (t) {
          var f = Hi,
            d = Ci;
          return arguments.length
            ? e(t)
            : ((e.x = function (t) {
                return arguments.length ? ((f = t), e) : f;
              }),
              (e.y = function (t) {
                return arguments.length ? ((d = t), e) : d;
              }),
              e);
          function e(t) {
            if (t.length < 3) return [];
            for (
              var e = N(f), n = N(d), r = t.length, i = [], o = [], a = 0;
              a < r;
              a++
            )
              i.push([+e.call(this, t[a], a), +n.call(this, t[a], a), a]);
            for (i.sort(ki), a = 0; a < r; a++) o.push([i[a][0], -i[a][1]]);
            var s = Si(i),
              u = Si(o),
              c = u[0] === s[0],
              l = u[u.length - 1] === s[s.length - 1],
              h = [];
            for (a = s.length - 1; 0 <= a; --a) h.push(t[i[s[a]][2]]);
            for (a = +c; a < u.length - l; ++a) h.push(t[i[u[a]][2]]);
            return h;
          }
        }),
        (L.geom.polygon = function (t) {
          return (dt(t, Ti), t);
        }));
      var Ti = (L.geom.polygon.prototype = []);
      function Mi(t, e, n) {
        return (n[0] - e[0]) * (t[1] - e[1]) < (n[1] - e[1]) * (t[0] - e[0]);
      }
      function Ai(t, e, n, r) {
        var i = t[0],
          o = n[0],
          a = e[0] - i,
          s = r[0] - o,
          t = t[1],
          n = n[1],
          e = e[1] - t,
          r = r[1] - n,
          n = (s * (t - n) - r * (i - o)) / (r * a - s * e);
        return [i + n * a, t + n * e];
      }
      function Ei(t) {
        var e = t[0],
          t = t[t.length - 1];
        return !(e[0] - t[0] || e[1] - t[1]);
      }
      ((Ti.area = function () {
        for (var t, e = -1, n = this.length, r = this[n - 1], i = 0; ++e < n; )
          ((t = r), (r = this[e]), (i += t[1] * r[0] - t[0] * r[1]));
        return 0.5 * i;
      }),
        (Ti.centroid = function (t) {
          var e,
            n,
            r = -1,
            i = this.length,
            o = 0,
            a = 0,
            s = this[i - 1];
          for (arguments.length || (t = -1 / (6 * this.area())); ++r < i; )
            ((e = s),
              (s = this[r]),
              (n = e[0] * s[1] - s[0] * e[1]),
              (o += (e[0] + s[0]) * n),
              (a += (e[1] + s[1]) * n));
          return [o * t, a * t];
        }),
        (Ti.clip = function (t) {
          for (
            var e,
              n,
              r,
              i,
              o,
              a,
              s = Ei(t),
              u = -1,
              c = this.length - Ei(this),
              l = this[c - 1];
            ++u < c;
          ) {
            for (
              e = t.slice(),
                t.length = 0,
                i = this[u],
                o = e[(r = e.length - s) - 1],
                n = -1;
              ++n < r;
            )
              (Mi((a = e[n]), l, i)
                ? (Mi(o, l, i) || t.push(Ai(o, a, l, i)), t.push(a))
                : Mi(o, l, i) && t.push(Ai(o, a, l, i)),
                (o = a));
            (s && t.push(t[0]), (l = i));
          }
          return t;
        }));
      var Ii,
        Di,
        Li,
        _i,
        Ni,
        ji = [],
        zi = [];
      function Ri() {
        (eo(this), (this.edge = this.site = this.circle = null));
      }
      function Oi(t) {
        var e = ji.pop() || new Ri();
        return ((e.site = t), e);
      }
      function qi(t) {
        (Xi(t), Li.remove(t), ji.push(t), eo(t));
      }
      function Bi(t) {
        for (var e, n, r, i, o, a, s = t.x, u = t.y, c = Li._; c; )
          if (((r = Fi(c, u) - s), D < r)) c = c.L;
          else {
            if (
              ((i =
                s -
                ((o = u),
                (a = void 0),
                (a = (i = c).N)
                  ? Fi(a, o)
                  : (a = i.site).y === o
                    ? a.x
                    : 1 / 0)),
              !(D < i))
            ) {
              -D < r
                ? ((e = c.P), (n = c))
                : -D < i
                  ? (n = (e = c).N)
                  : (e = n = c);
              break;
            }
            if (!c.R) {
              e = c;
              break;
            }
            c = c.R;
          }
        var l,
          h,
          f,
          d,
          p,
          g,
          m,
          v,
          y,
          b,
          x = Oi(t);
        (Li.insert(e, x),
          (e || n) &&
            (e === n
              ? (Xi(e),
                (n = Oi(e.site)),
                Li.insert(x, n),
                (x.edge = n.edge = Ji(e.site, x.site)),
                Wi(e),
                Wi(n))
              : n
                ? (Xi(e),
                  Xi(n),
                  (h = (l = e.site).x),
                  (f = l.y),
                  (d = t.x - h),
                  (b = t.y - f),
                  (g = (p = n.site).x - h),
                  (m = p.y - f),
                  Zi(
                    n.edge,
                    l,
                    p,
                    (b = {
                      x:
                        (m * (v = d * d + b * b) - b * (y = g * g + m * m)) /
                          (m = 2 * (d * m - b * g)) +
                        h,
                      y: (d * y - g * v) / m + f,
                    }),
                  ),
                  (x.edge = Ji(l, t, null, b)),
                  (n.edge = Ji(t, p, null, b)),
                  Wi(e),
                  Wi(n))
                : (x.edge = Ji(e.site, x.site))));
      }
      function Fi(t, e) {
        var n,
          r,
          i,
          o = t.site,
          a = o.x,
          s = o.y,
          u = s - e;
        return u
          ? (t = t.P)
            ? ((t = (o = t.site).x),
              (e = (o = o.y) - e)
                ? ((i = (n = t - a) / e),
                  (r = 1 / u - 1 / e)
                    ? (-i +
                        Math.sqrt(
                          i * i -
                            2 *
                              r *
                              ((n * n) / (-2 * e) - o + e / 2 + s - u / 2),
                        )) /
                        r +
                      a
                    : (a + t) / 2)
                : t)
            : -1 / 0
          : a;
      }
      function $i(t) {
        ((this.site = t), (this.edges = []));
      }
      function Ui(t) {
        for (
          var e,
            n,
            r,
            i,
            o,
            a,
            s,
            u,
            c,
            l = t[0][0],
            h = t[1][0],
            f = t[0][1],
            d = t[1][1],
            p = Di,
            g = p.length;
          g--;
        )
          if ((i = p[g]) && i.prepare())
            for (s = (a = i.edges).length, o = 0; o < s; )
              ((n = (c = a[o].end()).x),
                (r = c.y),
                (e = (u = a[++o % s].start()).x),
                (u = u.y),
                (I(n - e) > D || I(r - u) > D) &&
                  (a.splice(
                    o,
                    0,
                    new Ki(
                      (function (t, e, n) {
                        t = new Gi(t, null);
                        return ((t.a = e), (t.b = n), Ii.push(t), t);
                      })(
                        i.site,
                        c,
                        I(n - l) < D && D < d - r
                          ? { x: l, y: I(e - l) < D ? u : d }
                          : I(r - d) < D && D < h - n
                            ? { x: I(u - d) < D ? e : h, y: d }
                            : I(n - h) < D && D < r - f
                              ? { x: h, y: I(e - h) < D ? u : f }
                              : I(r - f) < D && D < n - l
                                ? { x: I(u - f) < D ? e : l, y: f }
                                : null,
                      ),
                      i.site,
                      null,
                    ),
                  ),
                  ++s));
      }
      function Vi(t, e) {
        return e.angle - t.angle;
      }
      function Qi() {
        (eo(this), (this.x = this.y = this.arc = this.site = this.cy = null));
      }
      function Wi(t) {
        var e = t.P,
          n = t.N;
        if (e && n) {
          var e = e.site,
            r = t.site,
            n = n.site;
          if (e !== n) {
            var i = r.x,
              o = r.y,
              a = e.x - i,
              e = e.y - o,
              s = n.x - i,
              u = 2 * (a * (n = n.y - o) - e * s);
            if (!(-Gt <= u)) {
              for (
                var c = a * a + e * e,
                  l = s * s + n * n,
                  e = (n * c - e * l) / u,
                  a = (a * l - s * c) / u,
                  n = a + o,
                  h = zi.pop() || new Qi(),
                  f =
                    ((h.arc = t),
                    (h.site = r),
                    (h.x = e + i),
                    (h.y = n + Math.sqrt(e * e + a * a)),
                    (h.cy = n),
                    (t.circle = h),
                    null),
                  d = Ni._;
                d;
              )
                if (h.y < d.y || (h.y === d.y && h.x <= d.x)) {
                  if (!d.L) {
                    f = d.P;
                    break;
                  }
                  d = d.L;
                } else {
                  if (!d.R) {
                    f = d;
                    break;
                  }
                  d = d.R;
                }
              (Ni.insert(f, h), f || (_i = h));
            }
          }
        }
      }
      function Xi(t) {
        var e = t.circle;
        e &&
          (e.P || (_i = e.N),
          Ni.remove(e),
          zi.push(e),
          eo(e),
          (t.circle = null));
      }
      function Yi(t) {
        for (
          var e,
            n = Ii,
            r = Sr(t[0][0], t[0][1], t[1][0], t[1][1]),
            i = n.length;
          i--;
        )
          (!(function (t, e) {
            var n = t.b;
            if (!n) {
              var r = t.a,
                i = e[0][0],
                o = e[1][0],
                a = e[0][1],
                e = e[1][1],
                s = t.l,
                u = t.r,
                c = s.x,
                s = s.y,
                l = u.x,
                u = u.y,
                h = (c + l) / 2,
                f = (s + u) / 2;
              if (u === s) {
                if (h < i || o <= h) return;
                if (l < c) {
                  if (r) {
                    if (r.y >= e) return;
                  } else r = { x: h, y: a };
                  n = { x: h, y: e };
                } else {
                  if (r) {
                    if (r.y < a) return;
                  } else r = { x: h, y: e };
                  n = { x: h, y: a };
                }
              } else if (
                ((h = f - (f = (c - l) / (u - s)) * h), f < -1 || 1 < f)
              )
                if (l < c) {
                  if (r) {
                    if (r.y >= e) return;
                  } else r = { x: (a - h) / f, y: a };
                  n = { x: (e - h) / f, y: e };
                } else {
                  if (r) {
                    if (r.y < a) return;
                  } else r = { x: (e - h) / f, y: e };
                  n = { x: (a - h) / f, y: a };
                }
              else if (s < u) {
                if (r) {
                  if (r.x >= o) return;
                } else r = { x: i, y: f * i + h };
                n = { x: o, y: f * o + h };
              } else {
                if (r) {
                  if (r.x < i) return;
                } else r = { x: o, y: f * o + h };
                n = { x: i, y: f * i + h };
              }
              ((t.a = r), (t.b = n));
            }
            return 1;
          })((e = n[i]), t) ||
            !r(e) ||
            (I(e.a.x - e.b.x) < D && I(e.a.y - e.b.y) < D)) &&
            ((e.a = e.b = null), n.splice(i, 1));
      }
      function Gi(t, e) {
        ((this.l = t), (this.r = e), (this.a = this.b = null));
      }
      function Ji(t, e, n, r) {
        var i = new Gi(t, e);
        return (
          Ii.push(i),
          n && Zi(i, t, e, n),
          r && Zi(i, e, t, r),
          Di[t.i].edges.push(new Ki(i, t, e)),
          Di[e.i].edges.push(new Ki(i, e, t)),
          i
        );
      }
      function Zi(t, e, n, r) {
        t.a || t.b
          ? t.l === n
            ? (t.b = r)
            : (t.a = r)
          : ((t.a = r), (t.l = e), (t.r = n));
      }
      function Ki(t, e, n) {
        var r = t.a,
          i = t.b;
        ((this.edge = t),
          (this.site = e),
          (this.angle = n
            ? Math.atan2(n.y - e.y, n.x - e.x)
            : t.l === e
              ? Math.atan2(i.x - r.x, r.y - i.y)
              : Math.atan2(r.x - i.x, i.y - r.y)));
      }
      function to() {
        this._ = null;
      }
      function eo(t) {
        t.U = t.C = t.L = t.R = t.P = t.N = null;
      }
      function no(t, e) {
        var n = e,
          e = e.R,
          r = n.U;
        (r ? (r.L === n ? (r.L = e) : (r.R = e)) : (t._ = e),
          (e.U = r),
          (n.U = e),
          (n.R = e.L),
          n.R && (n.R.U = n),
          (e.L = n));
      }
      function ro(t, e) {
        var n = e,
          e = e.L,
          r = n.U;
        (r ? (r.L === n ? (r.L = e) : (r.R = e)) : (t._ = e),
          (e.U = r),
          (n.U = e),
          (n.L = e.R),
          n.L && (n.L.U = n),
          (e.R = n));
      }
      function io(t) {
        for (; t.L; ) t = t.L;
        return t;
      }
      function oo(t, e) {
        var n,
          r,
          i,
          o = t.sort(ao).pop();
        for (
          Ii = [], Di = new Array(t.length), Li = new to(), Ni = new to();
          ;
        )
          if (((i = _i), o && (!i || o.y < i.y || (o.y === i.y && o.x < i.x))))
            ((o.x === n && o.y === r) ||
              ((Di[o.i] = new $i(o)), Bi(o), (n = o.x), (r = o.y)),
              (o = t.pop()));
          else {
            if (!i) break;
            v = m = g = p = d = f = h = l = c = u = s = a = void 0;
            for (
              var a = i.arc,
                s = a.circle,
                u = s.x,
                c = s.cy,
                l = { x: u, y: c },
                h = a.P,
                f = a.N,
                d = [a],
                p = (qi(a), h);
              p.circle && I(u - p.circle.x) < D && I(c - p.circle.cy) < D;
            )
              ((h = p.P), d.unshift(p), qi(p), (p = h));
            (d.unshift(p), Xi(p));
            for (
              var g = f;
              g.circle && I(u - g.circle.x) < D && I(c - g.circle.cy) < D;
            )
              ((f = g.N), d.push(g), qi(g), (g = f));
            (d.push(g), Xi(g));
            for (var m = d.length, v = 1; v < m; ++v)
              Zi((g = d[v]).edge, (p = d[v - 1]).site, g.site, l);
            (((g = d[m - 1]).edge = Ji((p = d[0]).site, g.site, null, l)),
              Wi(p),
              Wi(g));
          }
        e && (Yi(e), Ui(e));
        e = { cells: Di, edges: Ii };
        return ((Li = Ni = Ii = Di = null), e);
      }
      function ao(t, e) {
        return e.y - t.y || e.x - t.x;
      }
      (($i.prototype.prepare = function () {
        for (var t, e = this.edges, n = e.length; n--; )
          ((t = e[n].edge).b && t.a) || e.splice(n, 1);
        return (e.sort(Vi), e.length);
      }),
        (Ki.prototype = {
          start: function () {
            return this.edge.l === this.site ? this.edge.a : this.edge.b;
          },
          end: function () {
            return this.edge.l === this.site ? this.edge.b : this.edge.a;
          },
        }),
        (to.prototype = {
          insert: function (t, e) {
            var n, r, i;
            if (t) {
              if (
                ((e.P = t), (e.N = t.N), t.N && (t.N.P = e), (t.N = e), t.R)
              ) {
                for (t = t.R; t.L; ) t = t.L;
                t.L = e;
              } else t.R = e;
              n = t;
            } else
              n = this._
                ? ((t = io(this._)), (e.P = null), ((e.N = t).P = t.L = e), t)
                : ((e.P = e.N = null), (this._ = e), null);
            for (e.L = e.R = null, e.U = n, e.C = !0, t = e; n && n.C; )
              (n === (r = n.U).L
                ? (i = r.R) && i.C
                  ? ((n.C = i.C = !1), (r.C = !0), (t = r))
                  : (t === n.R && (no(this, n), (n = (t = n).U)),
                    (n.C = !1),
                    (r.C = !0),
                    ro(this, r))
                : (i = r.L) && i.C
                  ? ((n.C = i.C = !1), (r.C = !0), (t = r))
                  : (t === n.L && (ro(this, n), (n = (t = n).U)),
                    (n.C = !1),
                    (r.C = !0),
                    no(this, r)),
                (n = t.U));
            this._.C = !1;
          },
          remove: function (t) {
            (t.N && (t.N.P = t.P), t.P && (t.P.N = t.N), (t.N = t.P = null));
            var e,
              n,
              r = t.U,
              i = t.L,
              o = t.R,
              a = i ? (o ? io(o) : i) : o;
            if (
              (r ? (r.L === t ? (r.L = a) : (r.R = a)) : (this._ = a),
              i && o
                ? ((n = a.C),
                  (a.C = t.C),
                  ((a.L = i).U = a) !== o
                    ? ((r = a.U),
                      (a.U = t.U),
                      (t = a.R),
                      (r.L = t),
                      ((a.R = o).U = a))
                    : ((a.U = r), (t = (r = a).R)))
                : ((n = t.C), (t = a)),
              t && (t.U = r),
              !n)
            )
              if (t && t.C) t.C = !1;
              else {
                do {
                  if (t === this._) break;
                  if (t === r.L) {
                    if (
                      ((e = r.R).C &&
                        ((e.C = !1), (r.C = !0), no(this, r), (e = r.R)),
                      (e.L && e.L.C) || (e.R && e.R.C))
                    ) {
                      ((e.R && e.R.C) ||
                        ((e.L.C = !1), (e.C = !0), ro(this, e), (e = r.R)),
                        (e.C = r.C),
                        (r.C = e.R.C = !1),
                        no(this, r),
                        (t = this._));
                      break;
                    }
                  } else if (
                    ((e = r.L).C &&
                      ((e.C = !1), (r.C = !0), ro(this, r), (e = r.L)),
                    (e.L && e.L.C) || (e.R && e.R.C))
                  ) {
                    ((e.L && e.L.C) ||
                      ((e.R.C = !1), (e.C = !0), no(this, e), (e = r.L)),
                      (e.C = r.C),
                      (r.C = e.L.C = !1),
                      ro(this, r),
                      (t = this._));
                    break;
                  }
                } while (((e.C = !0), (r = (t = r).U), !t.C));
                t && (t.C = !1);
              }
          },
        }),
        (L.geom.voronoi = function (t) {
          var e = Hi,
            n = Ci,
            r = e,
            i = n,
            c = so;
          return t
            ? o(t)
            : ((o.links = function (e) {
                return oo(f(e))
                  .edges.filter(function (t) {
                    return t.l && t.r;
                  })
                  .map(function (t) {
                    return { source: e[t.l.i], target: e[t.r.i] };
                  });
              }),
              (o.triangles = function (l) {
                var h = [];
                return (
                  oo(f(l)).cells.forEach(function (t, e) {
                    for (
                      var n,
                        r,
                        i = t.site,
                        o = t.edges.sort(Vi),
                        a = -1,
                        s = o.length,
                        u = o[s - 1].edge,
                        c = u.l === i ? u.r : u.l;
                      ++a < s;
                    )
                      ((n = c),
                        (c = (u = o[a].edge).l === i ? u.r : u.l),
                        e < n.i &&
                          e < c.i &&
                          ((r = c),
                          (i.x - r.x) * (n.y - i.y) -
                            (i.x - n.x) * (r.y - i.y) <
                            0) &&
                          h.push([l[e], l[n.i], l[c.i]]));
                  }),
                  h
                );
              }),
              (o.x = function (t) {
                return arguments.length ? ((r = N((e = t))), o) : e;
              }),
              (o.y = function (t) {
                return arguments.length ? ((i = N((n = t))), o) : n;
              }),
              (o.clipExtent = function (t) {
                return arguments.length
                  ? ((c = null == t ? so : t), o)
                  : c === so
                    ? null
                    : c;
              }),
              (o.size = function (t) {
                return arguments.length
                  ? o.clipExtent(t && [[0, 0], t])
                  : c === so
                    ? null
                    : c && c[1];
              }),
              o);
          function o(r) {
            var i = new Array(r.length),
              o = c[0][0],
              a = c[0][1],
              s = c[1][0],
              u = c[1][1];
            return (
              oo(f(r), c).cells.forEach(function (t, e) {
                var n = t.edges,
                  t = t.site;
                (i[e] = n.length
                  ? n.map(function (t) {
                      t = t.start();
                      return [t.x, t.y];
                    })
                  : t.x >= o && t.x <= s && t.y >= a && t.y <= u
                    ? [
                        [o, u],
                        [s, u],
                        [s, a],
                        [o, a],
                      ]
                    : []).point = r[e];
              }),
              i
            );
          }
          function f(t) {
            return t.map(function (t, e) {
              return {
                x: Math.round(r(t, e) / D) * D,
                y: Math.round(i(t, e) / D) * D,
                i: e,
              };
            });
          }
        }));
      var so = [
        [-1e6, -1e6],
        [1e6, 1e6],
      ];
      function uo(t) {
        return t.x;
      }
      function co(t) {
        return t.y;
      }
      function lo() {
        return { leaf: !0, nodes: [], point: null, x: null, y: null };
      }
      function ho(t, e) {
        ((t = L.rgb(t)), (e = L.rgb(e)));
        var n = t.r,
          r = t.g,
          i = t.b,
          o = e.r - n,
          a = e.g - r,
          s = e.b - i;
        return function (t) {
          return (
            "#" +
            He(Math.round(n + o * t)) +
            He(Math.round(r + a * t)) +
            He(Math.round(i + s * t))
          );
        };
      }
      function fo(t, e) {
        var n,
          r = {},
          i = {};
        for (n in t) n in e ? (r[n] = yo(t[n], e[n])) : (i[n] = t[n]);
        for (n in e) n in t || (i[n] = e[n]);
        return function (t) {
          for (n in r) i[n] = r[n](t);
          return i;
        };
      }
      function po(e, n) {
        return (
          (e = +e),
          (n = +n),
          function (t) {
            return e * (1 - t) + n * t;
          }
        );
      }
      function go(t, r) {
        var e,
          n,
          i,
          o = (mo.lastIndex = vo.lastIndex = 0),
          a = -1,
          s = [],
          u = [];
        for (t += "", r += ""; (e = mo.exec(t)) && (n = vo.exec(r)); )
          ((i = n.index) > o &&
            ((i = r.slice(o, i)), s[a] ? (s[a] += i) : (s[++a] = i)),
            (e = e[0]) === (n = n[0])
              ? s[a]
                ? (s[a] += n)
                : (s[++a] = n)
              : ((s[++a] = null), u.push({ i: a, x: po(e, n) })),
            (o = vo.lastIndex));
        return (
          o < r.length && ((i = r.slice(o)), s[a] ? (s[a] += i) : (s[++a] = i)),
          s.length < 2
            ? u[0]
              ? ((r = u[0].x),
                function (t) {
                  return r(t) + "";
                })
              : function () {
                  return r;
                }
            : ((r = u.length),
              function (t) {
                for (var e, n = 0; n < r; ++n) s[(e = u[n]).i] = e.x(t);
                return s.join("");
              })
        );
      }
      ((L.geom.delaunay = function (t) {
        return L.geom.voronoi().triangles(t);
      }),
        (L.geom.quadtree = function (t, y, b, x, P) {
          var H,
            C = Hi,
            S = Ci;
          return (H = arguments.length)
            ? ((C = uo),
              (S = co),
              3 === H && ((P = b), (x = y), (b = y = 0)),
              e(t))
            : ((e.x = function (t) {
                return arguments.length ? ((C = t), e) : C;
              }),
              (e.y = function (t) {
                return arguments.length ? ((S = t), e) : S;
              }),
              (e.extent = function (t) {
                return arguments.length
                  ? (null == t
                      ? (y = b = x = P = null)
                      : ((y = +t[0][0]),
                        (b = +t[0][1]),
                        (x = +t[1][0]),
                        (P = +t[1][1])),
                    e)
                  : null == y
                    ? null
                    : [
                        [y, b],
                        [x, P],
                      ];
              }),
              (e.size = function (t) {
                return arguments.length
                  ? (null == t
                      ? (y = b = x = P = null)
                      : ((y = b = 0), (x = +t[0]), (P = +t[1])),
                    e)
                  : null == y
                    ? null
                    : [x - y, P - b];
              }),
              e);
          function e(t) {
            var e,
              n,
              r,
              i,
              o,
              a,
              s,
              u,
              c,
              l = N(C),
              h = N(S);
            if (null != y) ((a = y), (s = b), (u = x), (c = P));
            else if (
              ((u = c = -(a = s = 1 / 0)),
              (n = []),
              (r = []),
              (o = t.length),
              H)
            )
              for (i = 0; i < o; ++i)
                ((e = t[i]).x < a && (a = e.x),
                  e.y < s && (s = e.y),
                  e.x > u && (u = e.x),
                  e.y > c && (c = e.y),
                  n.push(e.x),
                  r.push(e.y));
            else
              for (i = 0; i < o; ++i) {
                var f = +l((e = t[i]), i),
                  d = +h(e, i);
                (f < a && (a = f),
                  d < s && (s = d),
                  u < f && (u = f),
                  c < d && (c = d),
                  n.push(f),
                  r.push(d));
              }
            var p = u - a,
              g = c - s;
            function m(t, e, n, r, i, o, a, s) {
              var u, c, l;
              isNaN(n) ||
                isNaN(r) ||
                (t.leaf
                  ? ((u = t.x),
                    (c = t.y),
                    null != u
                      ? (I(u - n) + I(c - r) < 0.01 ||
                          ((l = t.point),
                          (t.x = t.y = t.point = null),
                          v(t, l, u, c, i, o, a, s)),
                        v(t, e, n, r, i, o, a, s))
                      : ((t.x = n), (t.y = r), (t.point = e)))
                  : v(t, e, n, r, i, o, a, s));
            }
            function v(t, e, n, r, i, o, a, s) {
              var u = 0.5 * (i + a),
                c = 0.5 * (o + s),
                l = u <= n,
                h = c <= r,
                f = (h << 1) | l;
              ((t.leaf = !1),
                l ? (i = u) : (a = u),
                h ? (o = c) : (s = c),
                m(
                  (t = t.nodes[f] || (t.nodes[f] = lo())),
                  e,
                  n,
                  r,
                  i,
                  o,
                  a,
                  s,
                ));
            }
            g < p ? (c = s + p) : (u = a + g);
            var w = lo();
            if (
              ((w.add = function (t) {
                m(w, t, +l(t, ++i), +h(t, i), a, s, u, c);
              }),
              (w.visit = function (t) {
                !(function t(e, n, r, i, o, a) {
                  {
                    var s, u;
                    e(n, r, i, o, a) ||
                      ((s = 0.5 * (r + o)),
                      (u = 0.5 * (i + a)),
                      (n = n.nodes)[0] && t(e, n[0], r, i, s, u),
                      n[1] && t(e, n[1], s, i, o, u),
                      n[2] && t(e, n[2], r, u, s, a),
                      n[3] && t(e, n[3], s, u, o, a));
                  }
                })(t, w, a, s, u, c);
              }),
              (w.find = function (t) {
                return (
                  (d = t[0]),
                  (p = t[1]),
                  (x = 1 / 0),
                  (function t(e, n, r, i, o) {
                    if (!(v < n || y < r || i < g || o < m)) {
                      (a = e.point) &&
                        (s = (s = d - a[0]) * s + (s = p - a[1]) * s) < x &&
                        ((s = Math.sqrt((x = s))),
                        (g = d - s),
                        (m = p - s),
                        (v = d + s),
                        (y = p + s),
                        (b = a));
                      for (
                        var a,
                          s,
                          u = e.nodes,
                          c = 0.5 * (n + i),
                          l = 0.5 * (r + o),
                          h = ((l <= p) << 1) | (c <= d),
                          f = h + 4;
                        h < f;
                        ++h
                      )
                        if ((e = u[3 & h]))
                          switch (3 & h) {
                            case 0:
                              t(e, n, r, c, l);
                              break;
                            case 1:
                              t(e, c, r, i, l);
                              break;
                            case 2:
                              t(e, n, l, c, o);
                              break;
                            case 3:
                              t(e, c, l, i, o);
                          }
                    }
                  })(w, (g = a), (m = s), (v = u), (y = c)),
                  b
                );
                var d, p, g, m, v, y, b, x;
              }),
              (i = -1),
              null == y)
            ) {
              for (; ++i < o; ) m(w, t[i], n[i], r[i], a, s, u, c);
              --i;
            } else t.forEach(w.add);
            return ((n = r = t = e = null), w);
          }
        }),
        (L.interpolateRgb = ho),
        (L.interpolateObject = fo),
        (L.interpolateNumber = po),
        (L.interpolateString = go));
      var mo = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
        vo = new RegExp(mo.source, "g");
      function yo(t, e) {
        for (
          var n, r = L.interpolators.length;
          0 <= --r && !(n = L.interpolators[r](t, e));
        );
        return n;
      }
      function bo(t, e) {
        for (
          var n = [],
            r = [],
            i = t.length,
            o = e.length,
            a = Math.min(t.length, e.length),
            s = 0;
          s < a;
          ++s
        )
          n.push(yo(t[s], e[s]));
        for (; s < i; ++s) r[s] = t[s];
        for (; s < o; ++s) r[s] = e[s];
        return function (t) {
          for (s = 0; s < a; ++s) r[s] = n[s](t);
          return r;
        };
      }
      ((L.interpolate = yo),
        (L.interpolators = [
          function (t, e) {
            var n = typeof e;
            return (
              "string" == n
                ? Ae.has(e) || /^(#|rgb\(|hsl\()/.test(e)
                  ? ho
                  : go
                : e instanceof ue
                  ? ho
                  : Array.isArray(e)
                    ? bo
                    : "object" == n && isNaN(e)
                      ? fo
                      : po
            )(t, e);
          },
        ]),
        (L.interpolateArray = bo));
      function xo() {
        return j;
      }
      var wo = L.map({
          linear: xo,
          poly: function (e) {
            return function (t) {
              return Math.pow(t, e);
            };
          },
          quad: function () {
            return So;
          },
          cubic: function () {
            return ko;
          },
          sin: function () {
            return Mo;
          },
          exp: function () {
            return Ao;
          },
          circle: function () {
            return Eo;
          },
          elastic: function (e, n) {
            var r;
            arguments.length < 2 && (n = 0.45);
            r = arguments.length
              ? (n / S) * Math.asin(1 / e)
              : ((e = 1), n / 4);
            return function (t) {
              return 1 + e * Math.pow(2, -10 * t) * Math.sin(((t - r) * S) / n);
            };
          },
          back: function (e) {
            e = e || 1.70158;
            return function (t) {
              return t * t * ((e + 1) * t - e);
            };
          },
          bounce: function () {
            return Io;
          },
        }),
        Po = L.map({
          in: j,
          out: Ho,
          "in-out": Co,
          "out-in": function (t) {
            return Co(Ho(t));
          },
        });
      function Ho(e) {
        return function (t) {
          return 1 - e(1 - t);
        };
      }
      function Co(e) {
        return function (t) {
          return 0.5 * (t < 0.5 ? e(2 * t) : 2 - e(2 - 2 * t));
        };
      }
      function So(t) {
        return t * t;
      }
      function ko(t) {
        return t * t * t;
      }
      function To(t) {
        var e, n;
        return t <= 0
          ? 0
          : 1 <= t
            ? 1
            : ((n = (e = t * t) * t),
              4 * (t < 0.5 ? n : 3 * (t - e) + n - 0.75));
      }
      function Mo(t) {
        return 1 - Math.cos(t * E);
      }
      function Ao(t) {
        return Math.pow(2, 10 * (t - 1));
      }
      function Eo(t) {
        return 1 - Math.sqrt(1 - t * t);
      }
      function Io(t) {
        return t < 1 / 2.75
          ? 7.5625 * t * t
          : t < 2 / 2.75
            ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75
            : t < 2.5 / 2.75
              ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375
              : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375;
      }
      function Do(e, n) {
        return (
          (n -= e),
          function (t) {
            return Math.round(e + n * t);
          }
        );
      }
      function Lo(t) {
        var e,
          n,
          r = [t.a, t.b],
          i = [t.c, t.d],
          o = No(r),
          a = _o(r, i),
          s =
            No(
              (((e = i)[0] += (s = -a) * (n = r)[0]), (e[1] += s * n[1]), e),
            ) || 0;
        (r[0] * i[1] < i[0] * r[1] &&
          ((r[0] *= -1), (r[1] *= -1), (o *= -1), (a *= -1)),
          (this.rotate =
            (o ? Math.atan2(r[1], r[0]) : Math.atan2(-i[0], i[1])) * k),
          (this.translate = [t.e, t.f]),
          (this.scale = [o, s]),
          (this.skew = s ? Math.atan2(a, s) * k : 0));
      }
      function _o(t, e) {
        return t[0] * e[0] + t[1] * e[1];
      }
      function No(t) {
        var e = Math.sqrt(_o(t, t));
        return (e && ((t[0] /= e), (t[1] /= e)), e);
      }
      ((L.ease = function (t) {
        var e,
          n = t.indexOf("-"),
          r = 0 <= n ? t.slice(0, n) : t,
          n = 0 <= n ? t.slice(n + 1) : "in",
          r = wo.get(r) || xo,
          n = Po.get(n) || j;
        return (
          (e = n(r.apply(null, z.call(arguments, 1)))),
          function (t) {
            return t <= 0 ? 0 : 1 <= t ? 1 : e(t);
          }
        );
      }),
        (L.interpolateHcl = function (t, e) {
          ((t = L.hcl(t)), (e = L.hcl(e)));
          var n = t.h,
            r = t.c,
            i = t.l,
            o = e.h - n,
            a = e.c - r,
            s = e.l - i;
          isNaN(a) && ((a = 0), (r = isNaN(r) ? e.c : r));
          isNaN(o)
            ? ((o = 0), (n = isNaN(n) ? e.h : n))
            : 180 < o
              ? (o -= 360)
              : o < -180 && (o += 360);
          return function (t) {
            return he(n + o * t, r + a * t, i + s * t) + "";
          };
        }),
        (L.interpolateHsl = function (t, e) {
          ((t = L.hsl(t)), (e = L.hsl(e)));
          var n = t.h,
            r = t.s,
            i = t.l,
            o = e.h - n,
            a = e.s - r,
            s = e.l - i;
          isNaN(a) && ((a = 0), (r = isNaN(r) ? e.s : r));
          isNaN(o)
            ? ((o = 0), (n = isNaN(n) ? e.h : n))
            : 180 < o
              ? (o -= 360)
              : o < -180 && (o += 360);
          return function (t) {
            return le(n + o * t, r + a * t, i + s * t) + "";
          };
        }),
        (L.interpolateLab = function (t, e) {
          ((t = L.lab(t)), (e = L.lab(e)));
          var n = t.l,
            r = t.a,
            i = t.b,
            o = e.l - n,
            a = e.a - r,
            s = e.b - i;
          return function (t) {
            return me(n + o * t, r + a * t, i + s * t) + "";
          };
        }),
        (L.interpolateRound = Do),
        (L.transform = function (t) {
          var n = r.createElementNS(L.ns.prefix.svg, "g");
          return (L.transform = function (t) {
            var e;
            return (
              null != t &&
                (n.setAttribute("transform", t),
                (e = n.transform.baseVal.consolidate())),
              new Lo(e ? e.matrix : jo)
            );
          })(t);
        }),
        (Lo.prototype.toString = function () {
          return (
            "translate(" +
            this.translate +
            ")rotate(" +
            this.rotate +
            ")skewX(" +
            this.skew +
            ")scale(" +
            this.scale +
            ")"
          );
        }));
      var jo = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };
      function zo(t, e) {
        var r,
          i = [],
          o = [],
          t = L.transform(t),
          e = L.transform(e),
          n = t.translate,
          a = e.translate,
          s = t.rotate,
          u = e.rotate,
          c = t.skew,
          l = e.skew,
          t = t.scale,
          e = e.scale;
        return (
          n[0] != a[0] || n[1] != a[1]
            ? (i.push("translate(", null, ",", null, ")"),
              o.push({ i: 1, x: po(n[0], a[0]) }, { i: 3, x: po(n[1], a[1]) }))
            : a[0] || a[1]
              ? i.push("translate(" + a + ")")
              : i.push(""),
          s != u
            ? (180 < s - u ? (u += 360) : 180 < u - s && (s += 360),
              o.push({
                i: i.push(i.pop() + "rotate(", null, ")") - 2,
                x: po(s, u),
              }))
            : u && i.push(i.pop() + "rotate(" + u + ")"),
          c != l
            ? o.push({
                i: i.push(i.pop() + "skewX(", null, ")") - 2,
                x: po(c, l),
              })
            : l && i.push(i.pop() + "skewX(" + l + ")"),
          t[0] != e[0] || t[1] != e[1]
            ? ((r = i.push(i.pop() + "scale(", null, ",", null, ")")),
              o.push(
                { i: r - 4, x: po(t[0], e[0]) },
                { i: r - 2, x: po(t[1], e[1]) },
              ))
            : (1 == e[0] && 1 == e[1]) || i.push(i.pop() + "scale(" + e + ")"),
          (r = o.length),
          function (t) {
            for (var e, n = -1; ++n < r; ) i[(e = o[n]).i] = e.x(t);
            return i.join("");
          }
        );
      }
      function Ro(e, n) {
        return (
          (n = (n -= e = +e) || 1 / n),
          function (t) {
            return (t - e) / n;
          }
        );
      }
      function Oo(e, n) {
        return (
          (n = (n -= e = +e) || 1 / n),
          function (t) {
            return Math.max(0, Math.min(1, (t - e) / n));
          }
        );
      }
      function qo(t) {
        for (var e = [], n = t.parent; null != n; )
          (e.push(t), (n = (t = n).parent));
        return (e.push(t), e);
      }
      function Bo(t) {
        t.fixed |= 2;
      }
      function Fo(t) {
        t.fixed &= -7;
      }
      function $o(t) {
        ((t.fixed |= 4), (t.px = t.x), (t.py = t.y));
      }
      function Uo(t) {
        t.fixed &= -5;
      }
      ((L.interpolateTransform = zo),
        (L.layout = {}),
        (L.layout.bundle = function () {
          return function (t) {
            for (var e = [], n = -1, r = t.length; ++n < r; )
              e.push(
                (function (t) {
                  var e = t.source,
                    n = t.target,
                    r = (function (t, e) {
                      if (t === e) return t;
                      var n = qo(t),
                        r = qo(e),
                        i = n.pop(),
                        o = r.pop(),
                        a = null;
                      for (; i === o; ) ((a = i), (i = n.pop()), (o = r.pop()));
                      return a;
                    })(e, n),
                    i = [e];
                  for (; e !== r; ) ((e = e.parent), i.push(e));
                  var o = i.length;
                  for (; n !== r; ) (i.splice(o, 0, n), (n = n.parent));
                  return i;
                })(t[n]),
              );
            return e;
          };
        }),
        (L.layout.chord = function () {
          var m,
            v,
            y,
            b,
            x,
            w,
            P,
            e = {},
            H = 0;
          function t() {
            var t,
              e,
              n,
              r,
              i,
              o = {},
              a = [],
              s = L.range(b),
              u = [];
            for (m = [], v = [], t = 0, r = -1; ++r < b; ) {
              for (e = 0, i = -1; ++i < b; ) e += y[r][i];
              (a.push(e), u.push(L.range(b)), (t += e));
            }
            for (
              x &&
                s.sort(function (t, e) {
                  return x(a[t], a[e]);
                }),
                w &&
                  u.forEach(function (t, n) {
                    t.sort(function (t, e) {
                      return w(y[n][t], y[n][e]);
                    });
                  }),
                t = (S - H * b) / t,
                e = 0,
                r = -1;
              ++r < b;
            ) {
              for (n = e, i = -1; ++i < b; ) {
                var c = s[r],
                  l = u[c][i],
                  h = y[c][l],
                  f = e,
                  d = (e += h * t);
                o[c + "-" + l] = {
                  index: c,
                  subindex: l,
                  startAngle: f,
                  endAngle: d,
                  value: h,
                };
              }
              ((v[c] = {
                index: c,
                startAngle: n,
                endAngle: e,
                value: (e - n) / t,
              }),
                (e += H));
            }
            for (r = -1; ++r < b; )
              for (i = r - 1; ++i < b; ) {
                var p = o[r + "-" + i],
                  g = o[i + "-" + r];
                (p.value || g.value) &&
                  m.push(
                    p.value < g.value
                      ? { source: g, target: p }
                      : { source: p, target: g },
                  );
              }
            P && C();
          }
          function C() {
            m.sort(function (t, e) {
              return P(
                (t.source.value + t.target.value) / 2,
                (e.source.value + e.target.value) / 2,
              );
            });
          }
          return (
            (e.matrix = function (t) {
              return arguments.length
                ? ((b = (y = t) && y.length), (m = v = null), e)
                : y;
            }),
            (e.padding = function (t) {
              return arguments.length ? ((H = t), (m = v = null), e) : H;
            }),
            (e.sortGroups = function (t) {
              return arguments.length ? ((x = t), (m = v = null), e) : x;
            }),
            (e.sortSubgroups = function (t) {
              return arguments.length ? ((w = t), (m = null), e) : w;
            }),
            (e.sortChords = function (t) {
              return arguments.length ? ((P = t), m && C(), e) : P;
            }),
            (e.chords = function () {
              return (m || t(), m);
            }),
            (e.groups = function () {
              return (v || t(), v);
            }),
            e
          );
        }),
        (L.layout.force = function () {
          var t,
            h,
            f,
            d,
            p,
            o = {},
            g = L.dispatch("start", "tick", "end"),
            m = [1, 1],
            v = 0.9,
            a = Vo,
            l = Qo,
            y = -30,
            b = Wo,
            x = 0.1,
            w = 0.64,
            P = [],
            H = [];
          function e(t) {
            ((t.px = L.event.x), (t.py = L.event.y), o.resume());
          }
          return (
            (o.tick = function () {
              if ((h *= 0.99) < 0.005)
                return (g.end({ type: "end", alpha: (h = 0) }), !0);
              for (
                var t, e, n, r, i, o, a, s, u = P.length, c = H.length, l = 0;
                l < c;
                ++l
              )
                ((n = (e = H[l]).source),
                  (i =
                    (a = (r = e.target).x - n.x) * a + (s = r.y - n.y) * s) &&
                    ((a *= i = (h * d[l] * ((i = Math.sqrt(i)) - f[l])) / i),
                    (s *= i),
                    (r.x -= a * (o = n.weight / (r.weight + n.weight))),
                    (r.y -= s * o),
                    (n.x += a * (o = 1 - o)),
                    (n.y += s * o)));
              if ((o = h * x) && ((a = m[0] / 2), (s = m[1] / 2), (l = -1), o))
                for (; ++l < u; )
                  (((e = P[l]).x += (a - e.x) * o), (e.y += (s - e.y) * o));
              if (y)
                for (
                  !(function t(e, n, r) {
                    var i = 0,
                      o = 0;
                    e.charge = 0;
                    if (!e.leaf)
                      for (var a, s = e.nodes, u = s.length, c = -1; ++c < u; )
                        null != (a = s[c]) &&
                          (t(a, n, r),
                          (e.charge += a.charge),
                          (i += a.charge * a.cx),
                          (o += a.charge * a.cy));
                    {
                      var l;
                      e.point &&
                        (e.leaf ||
                          ((e.point.x += Math.random() - 0.5),
                          (e.point.y += Math.random() - 0.5)),
                        (l = n * r[e.point.index]),
                        (e.charge += e.pointCharge = l),
                        (i += l * e.point.x),
                        (o += l * e.point.y));
                    }
                    e.cx = i / e.charge;
                    e.cy = o / e.charge;
                  })((t = L.geom.quadtree(P)), h, p),
                    l = -1;
                  ++l < u;
                )
                  (e = P[l]).fixed ||
                    t.visit(
                      (function (s) {
                        return function (t, e, n, r) {
                          if (t.point !== s) {
                            var i,
                              o = t.cx - s.x,
                              a = t.cy - s.y,
                              r = r - e,
                              e = o * o + a * a;
                            if ((r * r) / w < e)
                              return (
                                e < b &&
                                  ((i = t.charge / e),
                                  (s.px -= o * i),
                                  (s.py -= a * i)),
                                !0
                              );
                            t.point &&
                              e &&
                              e < b &&
                              ((i = t.pointCharge / e),
                              (s.px -= o * i),
                              (s.py -= a * i));
                          }
                          return !t.charge;
                        };
                      })(e),
                    );
              for (l = -1; ++l < u; )
                (e = P[l]).fixed
                  ? ((e.x = e.px), (e.y = e.py))
                  : ((e.x -= (e.px - (e.px = e.x)) * v),
                    (e.y -= (e.py - (e.py = e.y)) * v));
              g.tick({ type: "tick", alpha: h });
            }),
            (o.nodes = function (t) {
              return arguments.length ? ((P = t), o) : P;
            }),
            (o.links = function (t) {
              return arguments.length ? ((H = t), o) : H;
            }),
            (o.size = function (t) {
              return arguments.length ? ((m = t), o) : m;
            }),
            (o.linkDistance = function (t) {
              return arguments.length
                ? ((a = "function" == typeof t ? t : +t), o)
                : a;
            }),
            (o.distance = o.linkDistance),
            (o.linkStrength = function (t) {
              return arguments.length
                ? ((l = "function" == typeof t ? t : +t), o)
                : l;
            }),
            (o.friction = function (t) {
              return arguments.length ? ((v = +t), o) : v;
            }),
            (o.charge = function (t) {
              return arguments.length
                ? ((y = "function" == typeof t ? t : +t), o)
                : y;
            }),
            (o.chargeDistance = function (t) {
              return arguments.length ? ((b = t * t), o) : Math.sqrt(b);
            }),
            (o.gravity = function (t) {
              return arguments.length ? ((x = +t), o) : x;
            }),
            (o.theta = function (t) {
              return arguments.length ? ((w = t * t), o) : Math.sqrt(w);
            }),
            (o.alpha = function (t) {
              return arguments.length
                ? ((t = +t),
                  h
                    ? (h = 0 < t ? t : 0)
                    : 0 < t &&
                      (g.start({ type: "start", alpha: (h = t) }),
                      L.timer(o.tick)),
                  o)
                : h;
            }),
            (o.start = function () {
              for (
                var s, t, u = P.length, e = H.length, n = m[0], r = m[1], c = 0;
                c < u;
                ++c
              )
                (((t = P[c]).index = c), (t.weight = 0));
              for (c = 0; c < e; ++c)
                ("number" == typeof (t = H[c]).source &&
                  (t.source = P[t.source]),
                  "number" == typeof t.target && (t.target = P[t.target]),
                  ++t.source.weight,
                  ++t.target.weight);
              for (c = 0; c < u; ++c)
                ((t = P[c]),
                  isNaN(t.x) && (t.x = i("x", n)),
                  isNaN(t.y) && (t.y = i("y", r)),
                  isNaN(t.px) && (t.px = t.x),
                  isNaN(t.py) && (t.py = t.y));
              if (((f = []), "function" == typeof a))
                for (c = 0; c < e; ++c) f[c] = +a.call(this, H[c], c);
              else for (c = 0; c < e; ++c) f[c] = a;
              if (((d = []), "function" == typeof l))
                for (c = 0; c < e; ++c) d[c] = +l.call(this, H[c], c);
              else for (c = 0; c < e; ++c) d[c] = l;
              if (((p = []), "function" == typeof y))
                for (c = 0; c < u; ++c) p[c] = +y.call(this, P[c], c);
              else for (c = 0; c < u; ++c) p[c] = y;
              function i(t, e) {
                if (!s) {
                  for (s = new Array(u), o = 0; o < u; ++o) s[o] = [];
                  for (o = 0; o < a; ++o) {
                    var n = H[o];
                    (s[n.source.index].push(n.target),
                      s[n.target.index].push(n.source));
                  }
                }
                for (var r, i = s[c], o = -1, a = i.length; ++o < a; )
                  if (!isNaN((r = i[o][t]))) return r;
                return Math.random() * e;
              }
              return o.resume();
            }),
            (o.resume = function () {
              return o.alpha(0.1);
            }),
            (o.stop = function () {
              return o.alpha(0);
            }),
            (o.drag = function () {
              if (
                ((t =
                  t ||
                  L.behavior
                    .drag()
                    .origin(j)
                    .on("dragstart.force", Bo)
                    .on("drag.force", e)
                    .on("dragend.force", Fo)),
                !arguments.length)
              )
                return t;
              this.on("mouseover.force", $o).on("mouseout.force", Uo).call(t);
            }),
            L.rebind(o, g, "on")
          );
        }));
      var Vo = 20,
        Qo = 1,
        Wo = 1 / 0;
      function Xo(t, e) {
        return (
          L.rebind(t, e, "sort", "children", "value"),
          ((t.nodes = t).links = ta),
          t
        );
      }
      function Yo(t, e) {
        for (var n, r, i = [t]; null != (t = i.pop()); )
          if ((e(t), (r = t.children) && (n = r.length)))
            for (; 0 <= --n; ) i.push(r[n]);
      }
      function Go(t, e) {
        for (var n = [t], r = []; null != (t = n.pop()); )
          if ((r.push(t), (o = t.children) && (i = o.length)))
            for (var i, o, a = -1; ++a < i; ) n.push(o[a]);
        for (; null != (t = r.pop()); ) e(t);
      }
      function Jo(t) {
        return t.children;
      }
      function Zo(t) {
        return t.value;
      }
      function Ko(t, e) {
        return e.value - t.value;
      }
      function ta(t) {
        return L.merge(
          t.map(function (e) {
            return (e.children || []).map(function (t) {
              return { source: e, target: t };
            });
          }),
        );
      }
      ((L.layout.hierarchy = function () {
        var s = Ko,
          u = Jo,
          c = Zo;
        function l(t) {
          var e,
            n,
            r,
            i,
            o = [t],
            a = [];
          for (t.depth = 0; null != (e = o.pop()); )
            if ((a.push(e), (r = u.call(l, e, e.depth)) && (n = r.length))) {
              for (; 0 <= --n; )
                (o.push((i = r[n])), (i.parent = e), (i.depth = e.depth + 1));
              (c && (e.value = 0), (e.children = r));
            } else
              (c && (e.value = +c.call(l, e, e.depth) || 0), delete e.children);
          return (
            Go(t, function (t) {
              var e;
              (s && (e = t.children) && e.sort(s),
                c && (e = t.parent) && (e.value += t.value));
            }),
            a
          );
        }
        return (
          (l.sort = function (t) {
            return arguments.length ? ((s = t), l) : s;
          }),
          (l.children = function (t) {
            return arguments.length ? ((u = t), l) : u;
          }),
          (l.value = function (t) {
            return arguments.length ? ((c = t), l) : c;
          }),
          (l.revalue = function (t) {
            return (
              c &&
                (Yo(t, function (t) {
                  t.children && (t.value = 0);
                }),
                Go(t, function (t) {
                  var e;
                  (t.children || (t.value = +c.call(l, t, t.depth) || 0),
                    (e = t.parent) && (e.value += t.value));
                })),
              t
            );
          }),
          l
        );
      }),
        (L.layout.partition = function () {
          var n = L.layout.hierarchy(),
            r = [1, 1];
          function e(t, e) {
            t = n.call(this, t, e);
            return (
              (function t(e, n, r, i) {
                var o = e.children;
                if (
                  ((e.x = n),
                  (e.y = e.depth * i),
                  (e.dx = r),
                  (e.dy = i),
                  o && (a = o.length))
                ) {
                  var a,
                    s,
                    u = -1;
                  for (r = e.value ? r / e.value : 0; ++u < a; )
                    (t((s = o[u]), n, (s = s.value * r), i), (n += s));
                }
              })(
                t[0],
                0,
                r[0],
                r[1] /
                  (function t(e) {
                    var n = e.children,
                      r = 0;
                    if (n && (i = n.length))
                      for (var i, o = -1; ++o < i; ) r = Math.max(r, t(n[o]));
                    return 1 + r;
                  })(t[0]),
              ),
              t
            );
          }
          return (
            (e.size = function (t) {
              return arguments.length ? ((r = t), e) : r;
            }),
            Xo(e, n)
          );
        }),
        (L.layout.pie = function () {
          var l = Number,
            h = ea,
            f = 0,
            d = S,
            p = 0;
          function g(n) {
            var e,
              t = n.length,
              r = n.map(function (t, e) {
                return +l.call(g, t, e);
              }),
              i = +("function" == typeof f ? f.apply(this, arguments) : f),
              o = ("function" == typeof d ? d.apply(this, arguments) : d) - i,
              a = Math.min(
                Math.abs(o) / t,
                +("function" == typeof p ? p.apply(this, arguments) : p),
              ),
              s = a * (o < 0 ? -1 : 1),
              u = (o - t * s) / L.sum(r),
              o = L.range(t),
              c = [];
            return (
              null != h &&
                o.sort(
                  h === ea
                    ? function (t, e) {
                        return r[e] - r[t];
                      }
                    : function (t, e) {
                        return h(n[t], n[e]);
                      },
                ),
              o.forEach(function (t) {
                c[t] = {
                  data: n[t],
                  value: (e = r[t]),
                  startAngle: i,
                  endAngle: (i += e * u + s),
                  padAngle: a,
                };
              }),
              c
            );
          }
          return (
            (g.value = function (t) {
              return arguments.length ? ((l = t), g) : l;
            }),
            (g.sort = function (t) {
              return arguments.length ? ((h = t), g) : h;
            }),
            (g.startAngle = function (t) {
              return arguments.length ? ((f = t), g) : f;
            }),
            (g.endAngle = function (t) {
              return arguments.length ? ((d = t), g) : d;
            }),
            (g.padAngle = function (t) {
              return arguments.length ? ((p = t), g) : p;
            }),
            g
          );
        }));
      var ea = {};
      function na(t) {
        return t.x;
      }
      function ra(t) {
        return t.y;
      }
      function ia(t, e, n) {
        ((t.y0 = e), (t.y = n));
      }
      L.layout.stack = function () {
        var h = j,
          f = sa,
          d = ua,
          p = ia,
          g = na,
          m = ra;
        function v(t, e) {
          if ((n = t.length))
            for (
              var n,
                r,
                i,
                o = (s = t.map(function (t, e) {
                  return h.call(v, t, e);
                })).map(function (t) {
                  return t.map(function (t, e) {
                    return [g.call(v, t, e), m.call(v, t, e)];
                  });
                }),
                a = f.call(v, o, e),
                s = L.permute(s, a),
                o = L.permute(o, a),
                u = d.call(v, o, e),
                c = s[0].length,
                l = 0;
              l < c;
              ++l
            )
              for (
                p.call(v, s[0][l], (i = u[l]), o[0][l][1]), r = 1;
                r < n;
                ++r
              )
                p.call(v, s[r][l], (i += o[r - 1][l][1]), o[r][l][1]);
          return t;
        }
        return (
          (v.values = function (t) {
            return arguments.length ? ((h = t), v) : h;
          }),
          (v.order = function (t) {
            return arguments.length
              ? ((f = "function" == typeof t ? t : oa.get(t) || sa), v)
              : f;
          }),
          (v.offset = function (t) {
            return arguments.length
              ? ((d = "function" == typeof t ? t : aa.get(t) || ua), v)
              : d;
          }),
          (v.x = function (t) {
            return arguments.length ? ((g = t), v) : g;
          }),
          (v.y = function (t) {
            return arguments.length ? ((m = t), v) : m;
          }),
          (v.out = function (t) {
            return arguments.length ? ((p = t), v) : p;
          }),
          v
        );
      };
      var oa = L.map({
          "inside-out": function (t) {
            for (
              var e,
                n = t.length,
                r = t.map(ca),
                i = t.map(la),
                o = L.range(n).sort(function (t, e) {
                  return r[t] - r[e];
                }),
                a = 0,
                s = 0,
                u = [],
                c = [],
                l = 0;
              l < n;
              ++l
            )
              ((e = o[l]),
                (a < s ? ((a += i[e]), u) : ((s += i[e]), c)).push(e));
            return c.reverse().concat(u);
          },
          reverse: function (t) {
            return L.range(t.length).reverse();
          },
          default: sa,
        }),
        aa = L.map({
          silhouette: function (t) {
            for (
              var e,
                n,
                r = t.length,
                i = t[0].length,
                o = [],
                a = 0,
                s = [],
                u = 0;
              u < i;
              ++u
            ) {
              for (n = e = 0; e < r; e++) n += t[e][u][1];
              (a < n && (a = n), o.push(n));
            }
            for (u = 0; u < i; ++u) s[u] = (a - o[u]) / 2;
            return s;
          },
          wiggle: function (t) {
            var e,
              n,
              r,
              i,
              o,
              a,
              s,
              u,
              c,
              l = t.length,
              h = t[0],
              f = h.length,
              d = [];
            for (d[0] = u = c = 0, n = 1; n < f; ++n) {
              for (i = e = 0; e < l; ++e) i += t[e][n][1];
              for (s = h[n][(o = e = 0)] - h[n - 1][0]; e < l; ++e) {
                for (
                  r = 0, a = (t[e][n][1] - t[e][n - 1][1]) / (2 * s);
                  r < e;
                  ++r
                )
                  a += (t[r][n][1] - t[r][n - 1][1]) / s;
                o += a * t[e][n][1];
              }
              ((d[n] = u -= i ? (o / i) * s : 0), u < c && (c = u));
            }
            for (n = 0; n < f; ++n) d[n] -= c;
            return d;
          },
          expand: function (t) {
            for (
              var e, n, r = t.length, i = t[0].length, o = 1 / r, a = [], s = 0;
              s < i;
              ++s
            ) {
              for (n = e = 0; e < r; e++) n += t[e][s][1];
              if (n) for (e = 0; e < r; e++) t[e][s][1] /= n;
              else for (e = 0; e < r; e++) t[e][s][1] = o;
            }
            for (s = 0; s < i; ++s) a[s] = 0;
            return a;
          },
          zero: ua,
        });
      function sa(t) {
        return L.range(t.length);
      }
      function ua(t) {
        for (var e = -1, n = t[0].length, r = []; ++e < n; ) r[e] = 0;
        return r;
      }
      function ca(t) {
        for (var e, n = 1, r = 0, i = t[0][1], o = t.length; n < o; ++n)
          (e = t[n][1]) > i && ((r = n), (i = e));
        return r;
      }
      function la(t) {
        return t.reduce(ha, 0);
      }
      function ha(t, e) {
        return t + e[1];
      }
      function fa(t, e) {
        return da(t, Math.ceil(Math.log(e.length) / Math.LN2 + 1));
      }
      function da(t, e) {
        for (var n = -1, r = +t[0], i = (t[1] - r) / e, o = []; ++n <= e; )
          o[n] = i * n + r;
        return o;
      }
      function pa(t) {
        return [L.min(t), L.max(t)];
      }
      function ga(t, e) {
        return t.value - e.value;
      }
      function ma(t, e) {
        var n = t._pack_next;
        (((t._pack_next = e)._pack_prev = t),
          ((e._pack_next = n)._pack_prev = e));
      }
      function va(t, e) {
        (t._pack_next = e)._pack_prev = t;
      }
      function ya(t, e) {
        var n = e.x - t.x,
          r = e.y - t.y,
          t = t.r + e.r;
        return n * n + r * r < 0.999 * t * t;
      }
      function ba(t) {
        if ((e = t.children) && (a = e.length)) {
          var e,
            n,
            r,
            i,
            o,
            a,
            s = 1 / 0,
            u = -1 / 0,
            c = 1 / 0,
            l = -1 / 0;
          if (
            (e.forEach(xa),
            ((n = e[0]).x = -n.r),
            (n.y = 0),
            b(n),
            1 < a && (((r = e[1]).x = r.r), (r.y = 0), b(r), 2 < a))
          )
            for (
              Pa(n, r, (i = e[2])),
                b(i),
                ma(n, i),
                ma((n._pack_prev = i), r),
                r = n._pack_next,
                y = 3;
              y < a;
              y++
            ) {
              Pa(n, r, (i = e[y]));
              for (
                var h = 0, f = 1, d = 1, p = r._pack_next;
                p !== r;
                p = p._pack_next, f++
              )
                if (ya(p, i)) {
                  h = 1;
                  break;
                }
              if (1 == h)
                for (
                  o = n._pack_prev;
                  o !== p._pack_prev && !ya(o, i);
                  o = o._pack_prev, d++
                );
              h
                ? (f < d || (f == d && r.r < n.r)
                    ? va(n, (r = p))
                    : va((n = o), r),
                  y--)
                : (ma(n, i), b((r = i)));
            }
          for (var g = (s + u) / 2, m = (c + l) / 2, v = 0, y = 0; y < a; y++)
            (((i = e[y]).x -= g),
              (i.y -= m),
              (v = Math.max(v, i.r + Math.sqrt(i.x * i.x + i.y * i.y))));
          ((t.r = v), e.forEach(wa));
        }
        function b(t) {
          ((s = Math.min(t.x - t.r, s)),
            (u = Math.max(t.x + t.r, u)),
            (c = Math.min(t.y - t.r, c)),
            (l = Math.max(t.y + t.r, l)));
        }
      }
      function xa(t) {
        t._pack_next = t._pack_prev = t;
      }
      function wa(t) {
        (delete t._pack_next, delete t._pack_prev);
      }
      function Pa(t, e, n) {
        var r,
          i,
          o = t.r + n.r,
          a = e.x - t.x,
          s = e.y - t.y;
        o && (a || s)
          ? ((e = e.r + n.r),
            (i = 0.5 + ((o *= o) - (e *= e)) / (2 * (r = a * a + s * s))),
            (e =
              Math.sqrt(Math.max(0, 2 * e * (o + r) - (o -= r) * o - e * e)) /
              (2 * r)),
            (n.x = t.x + i * a + e * s),
            (n.y = t.y + i * s - e * a))
          : ((n.x = t.x + o), (n.y = t.y));
      }
      function Ha(t, e) {
        return t.parent == e.parent ? 1 : 2;
      }
      function Ca(t) {
        var e = t.children;
        return e.length ? e[0] : t.t;
      }
      function Sa(t) {
        var e,
          n = t.children;
        return (e = n.length) ? n[e - 1] : t.t;
      }
      function ka(t) {
        return { x: t.x, y: t.y, dx: t.dx, dy: t.dy };
      }
      function Ta(t, e) {
        var n = t.x + e[3],
          r = t.y + e[0],
          i = t.dx - e[1] - e[3],
          t = t.dy - e[0] - e[2];
        return (
          i < 0 && ((n += i / 2), (i = 0)),
          t < 0 && ((r += t / 2), (t = 0)),
          { x: n, y: r, dx: i, dy: t }
        );
      }
      function Ma(t) {
        var e = t[0],
          t = t[t.length - 1];
        return e < t ? [e, t] : [t, e];
      }
      function Aa(t) {
        return t.rangeExtent ? t.rangeExtent() : Ma(t.range());
      }
      function Ea(t, e, n, r) {
        var i = n(t[0], t[1]),
          o = r(e[0], e[1]);
        return function (t) {
          return o(i(t));
        };
      }
      function Ia(t, e) {
        var n,
          r = 0,
          i = t.length - 1,
          o = t[r],
          a = t[i];
        return (
          a < o && ((n = r), (r = i), (i = n), (n = o), (o = a), (a = n)),
          (t[r] = e.floor(o)),
          (t[i] = e.ceil(a)),
          t
        );
      }
      ((L.layout.histogram = function () {
        var h = !0,
          f = Number,
          d = pa,
          p = fa;
        function n(t, e) {
          for (
            var n,
              r,
              i = [],
              o = t.map(f, this),
              a = d.call(this, o, e),
              s = p.call(this, a, o, e),
              e = -1,
              u = o.length,
              c = s.length - 1,
              l = h ? 1 : 1 / u;
            ++e < c;
          )
            (((n = i[e] = []).dx = s[e + 1] - (n.x = s[e])), (n.y = 0));
          if (0 < c)
            for (e = -1; ++e < u; )
              (r = o[e]) >= a[0] &&
                r <= a[1] &&
                (((n = i[L.bisect(s, r, 1, c) - 1]).y += l), n.push(t[e]));
          return i;
        }
        return (
          (n.value = function (t) {
            return arguments.length ? ((f = t), n) : f;
          }),
          (n.range = function (t) {
            return arguments.length ? ((d = N(t)), n) : d;
          }),
          (n.bins = function (e) {
            return arguments.length
              ? ((p =
                  "number" == typeof e
                    ? function (t) {
                        return da(t, e);
                      }
                    : N(e)),
                n)
              : p;
          }),
          (n.frequency = function (t) {
            return arguments.length ? ((h = !!t), n) : h;
          }),
          n
        );
      }),
        (L.layout.pack = function () {
          var a,
            s = L.layout.hierarchy().sort(ga),
            u = 0,
            c = [1, 1];
          function e(t, e) {
            var n,
              t = s.call(this, t, e),
              e = t[0],
              r = c[0],
              i = c[1],
              o =
                null == a
                  ? Math.sqrt
                  : "function" == typeof a
                    ? a
                    : function () {
                        return a;
                      };
            return (
              (e.x = e.y = 0),
              Go(e, function (t) {
                t.r = +o(t.value);
              }),
              Go(e, ba),
              u &&
                ((n =
                  (u * (a ? 1 : Math.max((2 * e.r) / r, (2 * e.r) / i))) / 2),
                Go(e, function (t) {
                  t.r += n;
                }),
                Go(e, ba),
                Go(e, function (t) {
                  t.r -= n;
                })),
              (function t(e, n, r, i) {
                var o = e.children;
                e.x = n += i * e.x;
                e.y = r += i * e.y;
                e.r *= i;
                if (o)
                  for (var a = -1, s = o.length; ++a < s; ) t(o[a], n, r, i);
              })(
                e,
                r / 2,
                i / 2,
                a ? 1 : 1 / Math.max((2 * e.r) / r, (2 * e.r) / i),
              ),
              t
            );
          }
          return (
            (e.size = function (t) {
              return arguments.length ? ((c = t), e) : c;
            }),
            (e.radius = function (t) {
              return arguments.length
                ? ((a = null == t || "function" == typeof t ? t : +t), e)
                : a;
            }),
            (e.padding = function (t) {
              return arguments.length ? ((u = +t), e) : u;
            }),
            Xo(e, s)
          );
        }),
        (L.layout.tree = function () {
          var c = L.layout.hierarchy().sort(null).value(null),
            f = Ha,
            l = [1, 1],
            h = null;
          function e(t, e) {
            var n,
              r,
              i,
              o,
              a,
              s,
              t = c.call(this, t, e),
              e = t[0],
              u = (function (t) {
                var e,
                  t = { A: null, children: [t] },
                  n = [t];
                for (; null != (e = n.pop()); )
                  for (var r, i = e.children, o = 0, a = i.length; o < a; ++o)
                    n.push(
                      ((i[o] = r =
                        {
                          _: i[o],
                          parent: e,
                          children: ((r = i[o].children) && r.slice()) || [],
                          A: null,
                          a: null,
                          z: 0,
                          m: 0,
                          c: 0,
                          s: 0,
                          t: null,
                          i: o,
                        }).a = r),
                    );
                return t.children[0];
              })(e);
            return (
              Go(u, d),
              (u.parent.m = -u.z),
              Yo(u, p),
              h
                ? Yo(e, g)
                : (Yo((i = r = n = e), function (t) {
                    (t.x < n.x && (n = t),
                      t.x > r.x && (r = t),
                      t.depth > i.depth && (i = t));
                  }),
                  (o = f(n, r) / 2 - n.x),
                  (a = l[0] / (r.x + f(r, n) / 2 + o)),
                  (s = l[1] / (i.depth || 1)),
                  Yo(e, function (t) {
                    ((t.x = (t.x + o) * a), (t.y = t.depth * s));
                  })),
              t
            );
          }
          function d(t) {
            var e = t.children,
              n = t.parent.children,
              r = t.i ? n[t.i - 1] : null;
            if (e.length) {
              for (
                var i, o = 0, a = 0, s = t.children, u = s.length;
                0 <= --u;
              )
                (((i = s[u]).z += o), (i.m += o), (o += i.s + (a += i.c)));
              e = (e[0].z + e[e.length - 1].z) / 2;
              r ? ((t.z = r.z + f(t._, r._)), (t.m = t.z - e)) : (t.z = e);
            } else r && (t.z = r.z + f(t._, r._));
            t.parent.A = (function (t, e, n) {
              if (e) {
                for (
                  var r,
                    i = t,
                    o = t,
                    a = e,
                    s = i.parent.children[0],
                    u = i.m,
                    c = o.m,
                    l = a.m,
                    h = s.m;
                  (a = Sa(a)), (i = Ca(i)), a && i;
                )
                  ((s = Ca(s)),
                    ((o = Sa(o)).a = t),
                    0 < (r = a.z + l - i.z - u + f(a._, i._)) &&
                      ((function (t, e, n) {
                        var r = n / (e.i - t.i);
                        ((e.c -= r),
                          (e.s += n),
                          (t.c += r),
                          (e.z += n),
                          (e.m += n));
                      })(
                        (function (t, e, n) {
                          return t.a.parent === e.parent ? t.a : n;
                        })(a, t, n),
                        t,
                        r,
                      ),
                      (u += r),
                      (c += r)),
                    (l += a.m),
                    (u += i.m),
                    (h += s.m),
                    (c += o.m));
                (a && !Sa(o) && ((o.t = a), (o.m += l - c)),
                  i && !Ca(s) && ((s.t = i), (s.m += u - h), (n = t)));
              }
              return n;
            })(t, r, t.parent.A || n[0]);
          }
          function p(t) {
            ((t._.x = t.z + t.parent.m), (t.m += t.parent.m));
          }
          function g(t) {
            ((t.x *= l[0]), (t.y = t.depth * l[1]));
          }
          return (
            (e.separation = function (t) {
              return arguments.length ? ((f = t), e) : f;
            }),
            (e.size = function (t) {
              return arguments.length
                ? ((h = null == (l = t) ? g : null), e)
                : h
                  ? null
                  : l;
            }),
            (e.nodeSize = function (t) {
              return arguments.length
                ? ((h = null == (l = t) ? null : g), e)
                : h
                  ? l
                  : null;
            }),
            Xo(e, c)
          );
        }),
        (L.layout.cluster = function () {
          var u = L.layout.hierarchy().sort(null).value(null),
            c = Ha,
            l = [1, 1],
            h = !1;
          function e(t, e) {
            var r,
              t = u.call(this, t, e),
              n = t[0],
              i = 0,
              e =
                (Go(n, function (t) {
                  var e,
                    n = t.children;
                  n && n.length
                    ? ((t.x =
                        (e = n).reduce(function (t, e) {
                          return t + e.x;
                        }, 0) / e.length),
                      (t.y =
                        1 +
                        L.max(n, function (t) {
                          return t.y;
                        })))
                    : ((t.x = r ? (i += c(t, r)) : 0), (t.y = 0), (r = t));
                }),
                (function t(e) {
                  var n = e.children;
                  return n && n.length ? t(n[0]) : e;
                })(n)),
              o = (function t(e) {
                var n,
                  r = e.children;
                return r && (n = r.length) ? t(r[n - 1]) : e;
              })(n),
              a = e.x - c(e, o) / 2,
              s = o.x + c(o, e) / 2;
            return (
              Go(
                n,
                h
                  ? function (t) {
                      ((t.x = (t.x - n.x) * l[0]), (t.y = (n.y - t.y) * l[1]));
                    }
                  : function (t) {
                      ((t.x = ((t.x - a) / (s - a)) * l[0]),
                        (t.y = (1 - (n.y ? t.y / n.y : 1)) * l[1]));
                    },
              ),
              t
            );
          }
          return (
            (e.separation = function (t) {
              return arguments.length ? ((c = t), e) : c;
            }),
            (e.size = function (t) {
              return arguments.length
                ? ((h = null == (l = t)), e)
                : h
                  ? null
                  : l;
            }),
            (e.nodeSize = function (t) {
              return arguments.length
                ? ((h = null != (l = t)), e)
                : h
                  ? l
                  : null;
            }),
            Xo(e, u)
          );
        }),
        (L.layout.treemap = function () {
          var n,
            r = L.layout.hierarchy(),
            l = Math.round,
            i = [1, 1],
            o = null,
            c = ka,
            a = !1,
            h = "squarify",
            f = 0.5 * (1 + Math.sqrt(5));
          function d(t, e) {
            for (var n, r, i = -1, o = t.length; ++i < o; )
              ((r = (n = t[i]).value * (e < 0 ? 0 : e)),
                (n.area = isNaN(r) || r <= 0 ? 0 : r));
          }
          function p(t) {
            var e = t.children;
            if (e && e.length) {
              var n,
                r,
                i = c(t),
                o = [],
                a = e.slice(),
                s = 1 / 0,
                u =
                  "slice" === h
                    ? i.dx
                    : "dice" === h
                      ? i.dy
                      : "slice-dice" === h
                        ? 1 & t.depth
                          ? i.dy
                          : i.dx
                        : Math.min(i.dx, i.dy);
              for (
                d(a, (i.dx * i.dy) / t.value), o.area = 0;
                0 < (r = a.length);
              )
                (o.push((r = a[r - 1])),
                  (o.area += r.area),
                  (s =
                    "squarify" !== h ||
                    (n = (function (t, e) {
                      var n,
                        r = t.area,
                        i = 0,
                        o = 1 / 0,
                        a = -1,
                        s = t.length;
                      for (; ++a < s; )
                        (n = t[a].area) && (n < o && (o = n), i < n) && (i = n);
                      return (
                        (e *= e),
                        (r *= r)
                          ? Math.max((e * i * f) / r, r / (e * o * f))
                          : 1 / 0
                      );
                    })(o, u)) <= s
                      ? (a.pop(), n)
                      : ((o.area -= o.pop().area),
                        g(o, u, i, !1),
                        (u = Math.min(i.dx, i.dy)),
                        1 / (o.length = o.area = 0))));
              (o.length && (g(o, u, i, !0), (o.length = o.area = 0)),
                e.forEach(p));
            }
          }
          function s(t) {
            var e = t.children;
            if (e && e.length) {
              var n,
                r = c(t),
                i = e.slice(),
                o = [];
              for (d(i, (r.dx * r.dy) / t.value), o.area = 0; (n = i.pop()); )
                (o.push(n),
                  (o.area += n.area),
                  null != n.z &&
                    (g(o, n.z ? r.dx : r.dy, r, !i.length),
                    (o.length = o.area = 0)));
              e.forEach(s);
            }
          }
          function g(t, e, n, r) {
            var i,
              o = -1,
              a = t.length,
              s = n.x,
              u = n.y,
              c = e ? l(t.area / e) : 0;
            if (e == n.dx) {
              for ((r || c > n.dy) && (c = n.dy); ++o < a; )
                (((i = t[o]).x = s),
                  (i.y = u),
                  (i.dy = c),
                  (s += i.dx =
                    Math.min(n.x + n.dx - s, c ? l(i.area / c) : 0)));
              ((i.z = !0), (i.dx += n.x + n.dx - s), (n.y += c), (n.dy -= c));
            } else {
              for ((r || c > n.dx) && (c = n.dx); ++o < a; )
                (((i = t[o]).x = s),
                  (i.y = u),
                  (i.dx = c),
                  (u += i.dy =
                    Math.min(n.y + n.dy - u, c ? l(i.area / c) : 0)));
              ((i.z = !1), (i.dy += n.y + n.dy - u), (n.x += c), (n.dx -= c));
            }
          }
          function u(t) {
            var t = n || r(t),
              e = t[0];
            return (
              (e.x = 0),
              (e.y = 0),
              (e.dx = i[0]),
              (e.dy = i[1]),
              n && r.revalue(e),
              d([e], (e.dx * e.dy) / e.value),
              (n ? s : p)(e),
              a && (n = t),
              t
            );
          }
          return (
            (u.size = function (t) {
              return arguments.length ? ((i = t), u) : i;
            }),
            (u.padding = function (n) {
              var t;
              return arguments.length
                ? ((c =
                    null == (o = n)
                      ? ka
                      : "function" == (t = typeof n)
                        ? function (t) {
                            var e = n.call(u, t, t.depth);
                            return null == e
                              ? ka(t)
                              : Ta(t, "number" == typeof e ? [e, e, e, e] : e);
                          }
                        : ("number" == t && (n = [n, n, n, n]), e)),
                  u)
                : o;
              function e(t) {
                return Ta(t, n);
              }
            }),
            (u.round = function (t) {
              return arguments.length
                ? ((l = t ? Math.round : Number), u)
                : l != Number;
            }),
            (u.sticky = function (t) {
              return arguments.length ? ((a = t), (n = null), u) : a;
            }),
            (u.ratio = function (t) {
              return arguments.length ? ((f = t), u) : f;
            }),
            (u.mode = function (t) {
              return arguments.length ? ((h = t + ""), u) : h;
            }),
            Xo(u, r)
          );
        }),
        (L.random = {
          normal: function (r, i) {
            var t = arguments.length;
            return (
              t < 2 && (i = 1),
              t < 1 && (r = 0),
              function () {
                for (
                  var t, e, n;
                  !(n =
                    (t = 2 * Math.random() - 1) * t +
                    (e = 2 * Math.random() - 1) * e) || 1 < n;
                );
                return r + i * t * Math.sqrt((-2 * Math.log(n)) / n);
              }
            );
          },
          logNormal: function () {
            var t = L.random.normal.apply(L, arguments);
            return function () {
              return Math.exp(t());
            };
          },
          bates: function (t) {
            var e = L.random.irwinHall(t);
            return function () {
              return e() / t;
            };
          },
          irwinHall: function (n) {
            return function () {
              for (var t = 0, e = 0; e < n; e++) t += Math.random();
              return t;
            };
          },
        }),
        (L.scale = {}));
      var Da = { floor: j, ceil: j };
      function La(n, t, e, r) {
        var i = [],
          o = [],
          a = 0,
          s = Math.min(n.length, t.length) - 1;
        for (
          n[s] < n[0] && ((n = n.slice().reverse()), (t = t.slice().reverse()));
          ++a <= s;
        )
          (i.push(e(n[a - 1], n[a])), o.push(r(t[a - 1], t[a])));
        return function (t) {
          var e = L.bisect(n, t, 1, s) - 1;
          return o[e](i[e](t));
        };
      }
      function _a(t, e) {
        return L.rebind(t, e, "range", "rangeRound", "interpolate", "clamp");
      }
      function Na(t, e) {
        return Ia(
          t,
          (n = ja(t, e)[2])
            ? {
                floor: function (t) {
                  return Math.floor(t / n) * n;
                },
                ceil: function (t) {
                  return Math.ceil(t / n) * n;
                },
              }
            : Da,
        );
        var n;
      }
      function ja(t, e) {
        null == e && (e = 10);
        var t = Ma(t),
          n = t[1] - t[0],
          r = Math.pow(10, Math.floor(Math.log(n / e) / Math.LN10)),
          e = (e / n) * r;
        return (
          e <= 0.15 ? (r *= 10) : e <= 0.35 ? (r *= 5) : e <= 0.75 && (r *= 2),
          (t[0] = Math.ceil(t[0] / r) * r),
          (t[1] = Math.floor(t[1] / r) * r + 0.5 * r),
          (t[2] = r),
          t
        );
      }
      function za(t, e) {
        return L.range.apply(L, ja(t, e));
      }
      function Ra(t, e, n) {
        var r,
          i,
          o,
          t = ja(t, e);
        if (n) {
          var a,
            e = $e.exec(n);
          if ((e.shift(), "s" === e[8]))
            return (
              (a = L.formatPrefix(Math.max(I(t[0]), I(t[1])))),
              e[7] || (e[7] = "." + qa(a.scale(t[2]))),
              (e[8] = "f"),
              (n = L.format(e.join(""))),
              function (t) {
                return n(a.scale(t)) + a.symbol;
              }
            );
          (e[7] ||
            (e[7] =
              "." +
              ((r = e[8]),
              (o = qa((i = t)[2])),
              r in Oa
                ? Math.abs(o - qa(Math.max(I(i[0]), I(i[1])))) + +("e" !== r)
                : o - 2 * ("%" === r))),
            (n = e.join("")));
        } else n = ",." + qa(t[2]) + "f";
        return L.format(n);
      }
      L.scale.linear = function () {
        return (function t(n, r, i, o) {
          var a, s;
          function e() {
            var t = 2 < Math.min(n.length, r.length) ? La : Ea,
              e = o ? Oo : Ro;
            return ((a = t(n, r, e, i)), (s = t(r, n, e, yo)), u);
          }
          function u(t) {
            return a(t);
          }
          u.invert = function (t) {
            return s(t);
          };
          u.domain = function (t) {
            return arguments.length ? ((n = t.map(Number)), e()) : n;
          };
          u.range = function (t) {
            return arguments.length ? ((r = t), e()) : r;
          };
          u.rangeRound = function (t) {
            return u.range(t).interpolate(Do);
          };
          u.clamp = function (t) {
            return arguments.length ? ((o = t), e()) : o;
          };
          u.interpolate = function (t) {
            return arguments.length ? ((i = t), e()) : i;
          };
          u.ticks = function (t) {
            return za(n, t);
          };
          u.tickFormat = function (t, e) {
            return Ra(n, t, e);
          };
          u.nice = function (t) {
            return (Na(n, t), e());
          };
          u.copy = function () {
            return t(n, r, i, o);
          };
          return e();
        })([0, 1], [0, 1], yo, !1);
      };
      var Oa = { s: 1, g: 1, p: 1, r: 1, e: 1 };
      function qa(t) {
        return -Math.floor(Math.log(t) / Math.LN10 + 0.01);
      }
      L.scale.log = function () {
        return (function t(e, u, c, l) {
          function h(t) {
            return (
              (c ? Math.log(t < 0 ? 0 : t) : -Math.log(0 < t ? 0 : -t)) /
              Math.log(u)
            );
          }
          function f(t) {
            return c ? Math.pow(u, t) : -Math.pow(u, -t);
          }
          function o(t) {
            return e(h(t));
          }
          o.invert = function (t) {
            return f(e.invert(t));
          };
          o.domain = function (t) {
            return arguments.length
              ? ((c = 0 <= t[0]), e.domain((l = t.map(Number)).map(h)), o)
              : l;
          };
          o.base = function (t) {
            return arguments.length ? ((u = +t), e.domain(l.map(h)), o) : u;
          };
          o.nice = function () {
            var t = Ia(l.map(h), c ? Math : Fa);
            return (e.domain(t), (l = t.map(f)), o);
          };
          o.ticks = function () {
            var t = Ma(l),
              e = [],
              n = t[0],
              r = t[1],
              i = Math.floor(h(n)),
              o = Math.ceil(h(r)),
              a = u % 1 ? 2 : u;
            if (isFinite(o - i)) {
              if (c) {
                for (; i < o; i++) for (var s = 1; s < a; s++) e.push(f(i) * s);
                e.push(f(i));
              } else
                for (e.push(f(i)); i++ < o; )
                  for (s = a - 1; 0 < s; s--) e.push(f(i) * s);
              for (i = 0; e[i] < n; i++);
              for (o = e.length; e[o - 1] > r; o--);
              e = e.slice(i, o);
            }
            return e;
          };
          o.tickFormat = function (t, e) {
            if (!arguments.length) return Ba;
            arguments.length < 2
              ? (e = Ba)
              : "function" != typeof e && (e = L.format(e));
            var n,
              r = Math.max(0.1, t / o.ticks().length),
              i = c ? ((n = 1e-12), Math.ceil) : ((n = -1e-12), Math.floor);
            return function (t) {
              return t / f(i(h(t) + n)) <= r ? e(t) : "";
            };
          };
          o.copy = function () {
            return t(e.copy(), u, c, l);
          };
          return _a(o, e);
        })(L.scale.linear().domain([0, 1]), 10, !0, [1, 10]);
      };
      var Ba = L.format(".0e"),
        Fa = {
          floor: function (t) {
            return -Math.ceil(-t);
          },
          ceil: function (t) {
            return -Math.floor(-t);
          },
        };
      function $a(e) {
        return function (t) {
          return t < 0 ? -Math.pow(-t, e) : Math.pow(t, e);
        };
      }
      ((L.scale.pow = function () {
        return (function t(e, n, r) {
          var i = $a(n),
            o = $a(1 / n);
          function a(t) {
            return e(i(t));
          }
          a.invert = function (t) {
            return o(e.invert(t));
          };
          a.domain = function (t) {
            return arguments.length
              ? (e.domain((r = t.map(Number)).map(i)), a)
              : r;
          };
          a.ticks = function (t) {
            return za(r, t);
          };
          a.tickFormat = function (t, e) {
            return Ra(r, t, e);
          };
          a.nice = function (t) {
            return a.domain(Na(r, t));
          };
          a.exponent = function (t) {
            return arguments.length
              ? ((i = $a((n = t))), (o = $a(1 / n)), e.domain(r.map(i)), a)
              : n;
          };
          a.copy = function () {
            return t(e.copy(), n, r);
          };
          return _a(a, e);
        })(L.scale.linear(), 1, [0, 1]);
      }),
        (L.scale.sqrt = function () {
          return L.scale.pow().exponent(0.5);
        }),
        (L.scale.ordinal = function () {
          return (function t(s, u) {
            var i, c, l;
            function h(t) {
              return c[
                ((i.get(t) || ("range" === u.t ? i.set(t, s.push(t)) : NaN)) -
                  1) %
                  c.length
              ];
            }
            function f(e, n) {
              return L.range(s.length).map(function (t) {
                return e + n * t;
              });
            }
            h.domain = function (t) {
              if (!arguments.length) return s;
              ((s = []), (i = new X()));
              for (var e, n = -1, r = t.length; ++n < r; )
                i.has((e = t[n])) || i.set(e, s.push(e));
              return h[u.t].apply(h, u.a);
            };
            h.range = function (t) {
              return arguments.length
                ? ((c = t), (l = 0), (u = { t: "range", a: arguments }), h)
                : c;
            };
            h.rangePoints = function (t, e) {
              arguments.length < 2 && (e = 0);
              var n = t[0],
                r = t[1],
                r =
                  s.length < 2
                    ? ((n = (n + r) / 2), 0)
                    : (r - n) / (s.length - 1 + e);
              return (
                (c = f(n + (r * e) / 2, r)),
                (l = 0),
                (u = { t: "rangePoints", a: arguments }),
                h
              );
            };
            h.rangeRoundPoints = function (t, e) {
              arguments.length < 2 && (e = 0);
              var n = t[0],
                r = t[1],
                i =
                  s.length < 2
                    ? ((n = r = Math.round((n + r) / 2)), 0)
                    : ((r - n) / (s.length - 1 + e)) | 0;
              return (
                (c = f(
                  n +
                    Math.round(
                      (i * e) / 2 + (r - n - (s.length - 1 + e) * i) / 2,
                    ),
                  i,
                )),
                (l = 0),
                (u = { t: "rangeRoundPoints", a: arguments }),
                h
              );
            };
            h.rangeBands = function (t, e, n) {
              (arguments.length < 2 && (e = 0),
                arguments.length < 3 && (n = e));
              var r = t[1] < t[0],
                i = t[+r],
                o = t[1 - r],
                o = (o - i) / (s.length - e + 2 * n);
              return (
                (c = f(i + o * n, o)),
                r && c.reverse(),
                (l = o * (1 - e)),
                (u = { t: "rangeBands", a: arguments }),
                h
              );
            };
            h.rangeRoundBands = function (t, e, n) {
              (arguments.length < 2 && (e = 0),
                arguments.length < 3 && (n = e));
              var r = t[1] < t[0],
                i = t[+r],
                o = t[1 - r],
                a = Math.floor((o - i) / (s.length - e + 2 * n));
              return (
                (c = f(i + Math.round((o - i - (s.length - e) * a) / 2), a)),
                r && c.reverse(),
                (l = Math.round(a * (1 - e))),
                (u = { t: "rangeRoundBands", a: arguments }),
                h
              );
            };
            h.rangeBand = function () {
              return l;
            };
            h.rangeExtent = function () {
              return Ma(u.a[0]);
            };
            h.copy = function () {
              return t(s, u);
            };
            return h.domain(s);
          })([], { t: "range", a: [[]] });
        }),
        (L.scale.category10 = function () {
          return L.scale.ordinal().range(Ua);
        }),
        (L.scale.category20 = function () {
          return L.scale.ordinal().range(Va);
        }),
        (L.scale.category20b = function () {
          return L.scale.ordinal().range(Qa);
        }),
        (L.scale.category20c = function () {
          return L.scale.ordinal().range(Wa);
        }));
      var Ua = [
          2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330,
          8355711, 12369186, 1556175,
        ].map(Pe),
        Va = [
          2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728,
          16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194,
          8355711, 13092807, 12369186, 14408589, 1556175, 10410725,
        ].map(Pe),
        Qa = [
          3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115,
          13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490,
          14049643, 15177372, 8077683, 10834324, 13528509, 14589654,
        ].map(Pe),
        Wa = [
          3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259,
          16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312,
          12369372, 14342891, 6513507, 9868950, 12434877, 14277081,
        ].map(Pe);
      function Xa() {
        return 0;
      }
      ((L.scale.quantile = function () {
        return (function t(n, r) {
          var i;
          function e() {
            var t = 0,
              e = r.length;
            for (i = []; ++t < e; ) i[t - 1] = L.quantile(n, t / e);
            return o;
          }
          function o(t) {
            if (!isNaN((t = +t))) return r[L.bisect(i, t)];
          }
          o.domain = function (t) {
            return arguments.length
              ? ((n = t.map(U).filter(V).sort($)), e())
              : n;
          };
          o.range = function (t) {
            return arguments.length ? ((r = t), e()) : r;
          };
          o.quantiles = function () {
            return i;
          };
          o.invertExtent = function (t) {
            return (t = r.indexOf(t)) < 0
              ? [NaN, NaN]
              : [
                  0 < t ? i[t - 1] : n[0],
                  t < i.length ? i[t] : n[n.length - 1],
                ];
          };
          o.copy = function () {
            return t(n, r);
          };
          return e();
        })([], []);
      }),
        (L.scale.quantize = function () {
          return (function t(e, n, r) {
            var i, o;
            function a(t) {
              return r[Math.max(0, Math.min(o, Math.floor(i * (t - e))))];
            }
            function s() {
              return ((i = r.length / (n - e)), (o = r.length - 1), a);
            }
            a.domain = function (t) {
              return arguments.length
                ? ((e = +t[0]), (n = +t[t.length - 1]), s())
                : [e, n];
            };
            a.range = function (t) {
              return arguments.length ? ((r = t), s()) : r;
            };
            a.invertExtent = function (t) {
              return [
                (t = (t = r.indexOf(t)) < 0 ? NaN : t / i + e),
                t + 1 / i,
              ];
            };
            a.copy = function () {
              return t(e, n, r);
            };
            return s();
          })(0, 1, [0, 1]);
        }),
        (L.scale.threshold = function () {
          return (function t(e, n) {
            function r(t) {
              if (t <= t) return n[L.bisect(e, t)];
            }
            r.domain = function (t) {
              return arguments.length ? ((e = t), r) : e;
            };
            r.range = function (t) {
              return arguments.length ? ((n = t), r) : n;
            };
            r.invertExtent = function (t) {
              return ((t = n.indexOf(t)), [e[t - 1], e[t]]);
            };
            r.copy = function () {
              return t(e, n);
            };
            return r;
          })([0.5], [0, 1]);
        }),
        (L.scale.identity = function () {
          return (function t(n) {
            function e(t) {
              return +t;
            }
            e.invert = e;
            e.domain = e.range = function (t) {
              return arguments.length ? ((n = t.map(e)), e) : n;
            };
            e.ticks = function (t) {
              return za(n, t);
            };
            e.tickFormat = function (t, e) {
              return Ra(n, t, e);
            };
            e.copy = function () {
              return t(n);
            };
            return e;
          })([0, 1]);
        }),
        (L.svg = {}),
        (L.svg.arc = function () {
          var w = Ga,
            P = Ja,
            H = Xa,
            C = Ya,
            S = Za,
            k = Ka,
            T = ts;
          function e() {
            var t,
              e,
              n,
              r,
              i,
              o,
              a,
              s,
              u,
              c,
              l,
              h,
              f,
              d,
              p,
              g = Math.max(0, +w.apply(this, arguments)),
              m = Math.max(0, +P.apply(this, arguments)),
              v = S.apply(this, arguments) - E,
              y = k.apply(this, arguments) - E,
              b = Math.abs(y - v),
              x = y < v ? 0 : 1;
            return (
              m < g && ((t = m), (m = g), (g = t)),
              Jt <= b
                ? M(m, x) + (g ? M(g, 1 - x) : "") + "Z"
                : ((f = b = 0),
                  (e = []),
                  (d = (+T.apply(this, arguments) || 0) / 2) &&
                    ((p =
                      C === Ya
                        ? Math.sqrt(g * g + m * m)
                        : +C.apply(this, arguments)),
                    x || (f *= -1),
                    m && (f = ee((p / m) * Math.sin(d))),
                    g) &&
                    (b = ee((p / g) * Math.sin(d))),
                  m
                    ? ((i = m * Math.cos(v + f)),
                      (o = m * Math.sin(v + f)),
                      (a = m * Math.cos(y - f)),
                      (n = m * Math.sin(y - f)),
                      (r = Math.abs(y - v - 2 * f) <= A ? 0 : 1),
                      f &&
                        (es(i, o, a, n) === x) ^ r &&
                        ((p = (v + y) / 2),
                        (i = m * Math.cos(p)),
                        (o = m * Math.sin(p)),
                        (a = n = null)))
                    : (i = o = 0),
                  g
                    ? ((c = g * Math.cos(y - b)),
                      (l = g * Math.sin(y - b)),
                      (h = g * Math.cos(v + b)),
                      (s = g * Math.sin(v + b)),
                      (u = Math.abs(v - y + 2 * b) <= A ? 0 : 1),
                      b &&
                        (es(c, l, h, s) === 1 - x) ^ u &&
                        ((d = (v + y) / 2),
                        (c = g * Math.cos(d)),
                        (l = g * Math.sin(d)),
                        (h = s = null)))
                    : (c = l = 0),
                  0.001 <
                  (t = Math.min(Math.abs(m - g) / 2, +H.apply(this, arguments)))
                    ? ((f = (g < m) ^ x ? 0 : 1),
                      (b =
                        i -
                        (p =
                          null == h
                            ? [c, l]
                            : null == a
                              ? [i, o]
                              : Ai([i, o], [h, s], [a, n], [c, l]))[0]),
                      (v = o - p[1]),
                      (y = a - p[0]),
                      (d = n - p[1]),
                      (b =
                        1 /
                        Math.sin(
                          Math.acos(
                            (b * y + v * d) /
                              (Math.sqrt(b * b + v * v) *
                                Math.sqrt(y * y + d * d)),
                          ) / 2,
                        )),
                      (v = Math.sqrt(p[0] * p[0] + p[1] * p[1])),
                      null != a
                        ? ((d = ns(
                            null == h ? [c, l] : [h, s],
                            [i, o],
                            m,
                            (y = Math.min(t, (m - v) / (1 + b))),
                            x,
                          )),
                          (p = ns([a, n], [c, l], m, y, x)),
                          t === y
                            ? e.push(
                                "M",
                                d[0],
                                "A",
                                y,
                                ",",
                                y,
                                " 0 0,",
                                f,
                                " ",
                                d[1],
                                "A",
                                m,
                                ",",
                                m,
                                " 0 ",
                                (1 - x) ^
                                  es(d[1][0], d[1][1], p[1][0], p[1][1]),
                                ",",
                                x,
                                " ",
                                p[1],
                                "A",
                                y,
                                ",",
                                y,
                                " 0 0,",
                                f,
                                " ",
                                p[0],
                              )
                            : e.push(
                                "M",
                                d[0],
                                "A",
                                y,
                                ",",
                                y,
                                " 0 1,",
                                f,
                                " ",
                                p[0],
                              ))
                        : e.push("M", i, ",", o),
                      null != h
                        ? ((y = ns(
                            [i, o],
                            [h, s],
                            g,
                            -(d = Math.min(t, (g - v) / (b - 1))),
                            x,
                          )),
                          (p = ns(
                            [c, l],
                            null == a ? [i, o] : [a, n],
                            g,
                            -d,
                            x,
                          )),
                          t === d
                            ? e.push(
                                "L",
                                p[0],
                                "A",
                                d,
                                ",",
                                d,
                                " 0 0,",
                                f,
                                " ",
                                p[1],
                                "A",
                                g,
                                ",",
                                g,
                                " 0 ",
                                x ^ es(p[1][0], p[1][1], y[1][0], y[1][1]),
                                ",",
                                1 - x,
                                " ",
                                y[1],
                                "A",
                                d,
                                ",",
                                d,
                                " 0 0,",
                                f,
                                " ",
                                y[0],
                              )
                            : e.push(
                                "L",
                                p[0],
                                "A",
                                d,
                                ",",
                                d,
                                " 0 0,",
                                f,
                                " ",
                                y[0],
                              ))
                        : e.push("L", c, ",", l))
                    : (e.push("M", i, ",", o),
                      null != a &&
                        e.push(
                          "A",
                          m,
                          ",",
                          m,
                          " 0 ",
                          r,
                          ",",
                          x,
                          " ",
                          a,
                          ",",
                          n,
                        ),
                      e.push("L", c, ",", l),
                      null != h &&
                        e.push(
                          "A",
                          g,
                          ",",
                          g,
                          " 0 ",
                          u,
                          ",",
                          1 - x,
                          " ",
                          h,
                          ",",
                          s,
                        )),
                  e.push("Z"),
                  e.join(""))
            );
          }
          function M(t, e) {
            return (
              "M0," +
              t +
              "A" +
              t +
              "," +
              t +
              " 0 1," +
              e +
              " 0," +
              -t +
              "A" +
              t +
              "," +
              t +
              " 0 1," +
              e +
              " 0," +
              t
            );
          }
          return (
            (e.innerRadius = function (t) {
              return arguments.length ? ((w = N(t)), e) : w;
            }),
            (e.outerRadius = function (t) {
              return arguments.length ? ((P = N(t)), e) : P;
            }),
            (e.cornerRadius = function (t) {
              return arguments.length ? ((H = N(t)), e) : H;
            }),
            (e.padRadius = function (t) {
              return arguments.length ? ((C = t == Ya ? Ya : N(t)), e) : C;
            }),
            (e.startAngle = function (t) {
              return arguments.length ? ((S = N(t)), e) : S;
            }),
            (e.endAngle = function (t) {
              return arguments.length ? ((k = N(t)), e) : k;
            }),
            (e.padAngle = function (t) {
              return arguments.length ? ((T = N(t)), e) : T;
            }),
            (e.centroid = function () {
              var t =
                  (+w.apply(this, arguments) + +P.apply(this, arguments)) / 2,
                e =
                  (+S.apply(this, arguments) + +k.apply(this, arguments)) / 2 -
                  E;
              return [Math.cos(e) * t, Math.sin(e) * t];
            }),
            e
          );
        }));
      var Ya = "auto";
      function Ga(t) {
        return t.innerRadius;
      }
      function Ja(t) {
        return t.outerRadius;
      }
      function Za(t) {
        return t.startAngle;
      }
      function Ka(t) {
        return t.endAngle;
      }
      function ts(t) {
        return t && t.padAngle;
      }
      function es(t, e, n, r) {
        return 0 < (t - n) * e - (e - r) * t ? 0 : 1;
      }
      function ns(t, e, n, r, i) {
        var o = t[0] - e[0],
          a = t[1] - e[1],
          i = (i ? r : -r) / Math.sqrt(o * o + a * a),
          a = i * a,
          i = -i * o,
          o = t[0] + a,
          t = t[1] + i,
          s = e[0] + a,
          e = e[1] + i,
          u = (o + s) / 2,
          c = (t + e) / 2,
          l = s - o,
          h = e - t,
          f = l * l + h * h,
          r = n - r,
          o = o * e - s * t,
          e = (h < 0 ? -1 : 1) * Math.sqrt(r * r * f - o * o),
          s = (o * h - l * e) / f,
          t = (-o * l - h * e) / f,
          d = (o * h + l * e) / f,
          o = (-o * l + h * e) / f,
          l = s - u,
          h = t - c,
          e = d - u,
          f = o - c;
        return (
          e * e + f * f < l * l + h * h && ((s = d), (t = o)),
          [
            [s - a, t - i],
            [(s * n) / r, (t * n) / r],
          ]
        );
      }
      function rs(c) {
        var l = Hi,
          h = Ci,
          f = gr,
          d = M,
          e = d.key,
          p = 0.7;
        function n(t) {
          var e,
            n = [],
            r = [],
            i = -1,
            o = t.length,
            a = N(l),
            s = N(h);
          function u() {
            n.push("M", d(c(r), p));
          }
          for (; ++i < o; )
            f.call(this, (e = t[i]), i)
              ? r.push([+a.call(this, e, i), +s.call(this, e, i)])
              : r.length && (u(), (r = []));
          return (r.length && u(), n.length ? n.join("") : null);
        }
        return (
          (n.x = function (t) {
            return arguments.length ? ((l = t), n) : l;
          }),
          (n.y = function (t) {
            return arguments.length ? ((h = t), n) : h;
          }),
          (n.defined = function (t) {
            return arguments.length ? ((f = t), n) : f;
          }),
          (n.interpolate = function (t) {
            return arguments.length
              ? ((e =
                  "function" == typeof t ? (d = t) : (d = is.get(t) || M).key),
                n)
              : e;
          }),
          (n.tension = function (t) {
            return arguments.length ? ((p = t), n) : p;
          }),
          n
        );
      }
      L.svg.line = function () {
        return rs(j);
      };
      var is = L.map({
        linear: M,
        "linear-closed": function (t) {
          return M(t) + "Z";
        },
        step: function (t) {
          var e = 0,
            n = t.length,
            r = t[0],
            i = [r[0], ",", r[1]];
          for (; ++e < n; ) i.push("H", (r[0] + (r = t[e])[0]) / 2, "V", r[1]);
          1 < n && i.push("H", r[0]);
          return i.join("");
        },
        "step-before": os,
        "step-after": as,
        basis: cs,
        "basis-open": function (t) {
          if (t.length < 4) return M(t);
          var e,
            n = [],
            r = -1,
            i = t.length,
            o = [0],
            a = [0];
          for (; ++r < 3; ) ((e = t[r]), o.push(e[0]), a.push(e[1]));
          (n.push(x(fs, o) + "," + x(fs, a)), --r);
          for (; ++r < i; )
            ((e = t[r]),
              o.shift(),
              o.push(e[0]),
              a.shift(),
              a.push(e[1]),
              ds(n, o, a));
          return n.join("");
        },
        "basis-closed": function (t) {
          var e,
            n,
            r = -1,
            i = t.length,
            o = i + 4,
            a = [],
            s = [];
          for (; ++r < 4; ) ((n = t[r % i]), a.push(n[0]), s.push(n[1]));
          ((e = [x(fs, a), ",", x(fs, s)]), --r);
          for (; ++r < o; )
            ((n = t[r % i]),
              a.shift(),
              a.push(n[0]),
              s.shift(),
              s.push(n[1]),
              ds(e, a, s));
          return e.join("");
        },
        bundle: function (t, e) {
          var n = t.length - 1;
          if (n)
            for (
              var r,
                i,
                o = t[0][0],
                a = t[0][1],
                s = t[n][0] - o,
                u = t[n][1] - a,
                c = -1;
              ++c <= n;
            )
              ((r = t[c]),
                (i = c / n),
                (r[0] = e * r[0] + (1 - e) * (o + i * s)),
                (r[1] = e * r[1] + (1 - e) * (a + i * u)));
          return cs(t);
        },
        cardinal: function (t, e) {
          return t.length < 3 ? M(t) : t[0] + ss(t, us(t, e));
        },
        "cardinal-open": function (t, e) {
          return t.length < 4 ? M(t) : t[1] + ss(t.slice(1, -1), us(t, e));
        },
        "cardinal-closed": function (t, e) {
          return t.length < 3
            ? M(t)
            : t[0] +
                ss(
                  (t.push(t[0]), t),
                  us([t[t.length - 2]].concat(t, [t[1]]), e),
                );
        },
        monotone: function (t) {
          return t.length < 3
            ? M(t)
            : t[0] +
                ss(
                  t,
                  (function (t) {
                    var e,
                      n,
                      r,
                      i,
                      o = [],
                      a = (function (t) {
                        var e = 0,
                          n = t.length - 1,
                          r = [],
                          i = t[0],
                          o = t[1],
                          a = (r[0] = ps(i, o));
                        for (; ++e < n; )
                          r[e] = (a + (a = ps((i = o), (o = t[e + 1])))) / 2;
                        return ((r[e] = a), r);
                      })(t),
                      s = -1,
                      u = t.length - 1;
                    for (; ++s < u; )
                      ((e = ps(t[s], t[s + 1])),
                        I(e) < D
                          ? (a[s] = a[s + 1] = 0)
                          : ((n = a[s] / e),
                            (r = a[s + 1] / e),
                            9 < (i = n * n + r * r) &&
                              ((i = (3 * e) / Math.sqrt(i)),
                              (a[s] = i * n),
                              (a[s + 1] = i * r))));
                    s = -1;
                    for (; ++s <= u; )
                      ((i =
                        (t[Math.min(u, s + 1)][0] - t[Math.max(0, s - 1)][0]) /
                        (6 * (1 + a[s] * a[s]))),
                        o.push([i || 0, a[s] * i || 0]));
                    return o;
                  })(t),
                );
        },
      });
      function M(t) {
        return t.join("L");
      }
      function os(t) {
        for (
          var e = 0, n = t.length, r = t[0], i = [r[0], ",", r[1]];
          ++e < n;
        )
          i.push("V", (r = t[e])[1], "H", r[0]);
        return i.join("");
      }
      function as(t) {
        for (
          var e = 0, n = t.length, r = t[0], i = [r[0], ",", r[1]];
          ++e < n;
        )
          i.push("H", (r = t[e])[0], "V", r[1]);
        return i.join("");
      }
      function ss(t, e) {
        if (e.length < 1 || (t.length != e.length && t.length != e.length + 2))
          return M(t);
        var n = t.length != e.length,
          r = "",
          i = t[0],
          o = t[1],
          a = e[0],
          s = a,
          u = 1;
        if (
          (n &&
            ((r +=
              "Q" +
              (o[0] - (2 * a[0]) / 3) +
              "," +
              (o[1] - (2 * a[1]) / 3) +
              "," +
              o[0] +
              "," +
              o[1]),
            (i = t[1]),
            (u = 2)),
          1 < e.length)
        ) {
          ((s = e[1]),
            (o = t[u]),
            u++,
            (r +=
              "C" +
              (i[0] + a[0]) +
              "," +
              (i[1] + a[1]) +
              "," +
              (o[0] - s[0]) +
              "," +
              (o[1] - s[1]) +
              "," +
              o[0] +
              "," +
              o[1]));
          for (var c = 2; c < e.length; c++, u++)
            ((o = t[u]),
              (s = e[c]),
              (r +=
                "S" +
                (o[0] - s[0]) +
                "," +
                (o[1] - s[1]) +
                "," +
                o[0] +
                "," +
                o[1]));
        }
        return (
          n &&
            ((i = t[u]),
            (r +=
              "Q" +
              (o[0] + (2 * s[0]) / 3) +
              "," +
              (o[1] + (2 * s[1]) / 3) +
              "," +
              i[0] +
              "," +
              i[1])),
          r
        );
      }
      function us(t, e) {
        for (
          var n,
            r = [],
            i = (1 - e) / 2,
            o = t[0],
            a = t[1],
            s = 1,
            u = t.length;
          ++s < u;
        )
          ((n = o),
            (o = a),
            (a = t[s]),
            r.push([i * (a[0] - n[0]), i * (a[1] - n[1])]));
        return r;
      }
      function cs(t) {
        if (t.length < 3) return M(t);
        var e = 1,
          n = t.length,
          r = t[0],
          i = r[0],
          o = r[1],
          a = [i, i, i, (r = t[1])[0]],
          s = [o, o, o, r[1]],
          u = [i, ",", o, "L", x(fs, a), ",", x(fs, s)];
        for (t.push(t[n - 1]); ++e <= n; )
          ((r = t[e]),
            a.shift(),
            a.push(r[0]),
            s.shift(),
            s.push(r[1]),
            ds(u, a, s));
        return (t.pop(), u.push("L", r), u.join(""));
      }
      function x(t, e) {
        return t[0] * e[0] + t[1] * e[1] + t[2] * e[2] + t[3] * e[3];
      }
      is.forEach(function (t, e) {
        ((e.key = t), (e.closed = /-closed$/.test(t)));
      });
      var ls = [0, 2 / 3, 1 / 3, 0],
        hs = [0, 1 / 3, 2 / 3, 0],
        fs = [0, 1 / 6, 2 / 3, 1 / 6];
      function ds(t, e, n) {
        t.push(
          "C",
          x(ls, e),
          ",",
          x(ls, n),
          ",",
          x(hs, e),
          ",",
          x(hs, n),
          ",",
          x(fs, e),
          ",",
          x(fs, n),
        );
      }
      function ps(t, e) {
        return (e[1] - t[1]) / (e[0] - t[0]);
      }
      function gs(t) {
        for (var e, n, r, i = -1, o = t.length; ++i < o; )
          ((n = (e = t[i])[0]),
            (r = e[1] - E),
            (e[0] = n * Math.cos(r)),
            (e[1] = n * Math.sin(r)));
        return t;
      }
      function ms(p) {
        var g = Hi,
          m = Hi,
          v = 0,
          y = Ci,
          b = gr,
          x = M,
          e = x.key,
          w = x,
          P = "L",
          H = 0.7;
        function n(t) {
          var e,
            n,
            r,
            i = [],
            o = [],
            a = [],
            s = -1,
            u = t.length,
            c = N(g),
            l = N(v),
            h =
              g === m
                ? function () {
                    return n;
                  }
                : N(m),
            f =
              v === y
                ? function () {
                    return r;
                  }
                : N(y);
          function d() {
            i.push("M", x(p(a), H), P, w(p(o.reverse()), H), "Z");
          }
          for (; ++s < u; )
            b.call(this, (e = t[s]), s)
              ? (o.push([(n = +c.call(this, e, s)), (r = +l.call(this, e, s))]),
                a.push([+h.call(this, e, s), +f.call(this, e, s)]))
              : o.length && (d(), (o = []), (a = []));
          return (o.length && d(), i.length ? i.join("") : null);
        }
        return (
          (n.x = function (t) {
            return arguments.length ? ((g = m = t), n) : m;
          }),
          (n.x0 = function (t) {
            return arguments.length ? ((g = t), n) : g;
          }),
          (n.x1 = function (t) {
            return arguments.length ? ((m = t), n) : m;
          }),
          (n.y = function (t) {
            return arguments.length ? ((v = y = t), n) : y;
          }),
          (n.y0 = function (t) {
            return arguments.length ? ((v = t), n) : v;
          }),
          (n.y1 = function (t) {
            return arguments.length ? ((y = t), n) : y;
          }),
          (n.defined = function (t) {
            return arguments.length ? ((b = t), n) : b;
          }),
          (n.interpolate = function (t) {
            return arguments.length
              ? ((e =
                  "function" == typeof t ? (x = t) : (x = is.get(t) || M).key),
                (w = x.reverse || x),
                (P = x.closed ? "M" : "L"),
                n)
              : e;
          }),
          (n.tension = function (t) {
            return arguments.length ? ((H = t), n) : H;
          }),
          n
        );
      }
      function vs(t) {
        return t.radius;
      }
      function ys(t) {
        return [t.x, t.y];
      }
      function bs() {
        return 64;
      }
      function xs() {
        return "circle";
      }
      function ws(t) {
        t = Math.sqrt(t / A);
        return (
          "M0," +
          t +
          "A" +
          t +
          "," +
          t +
          " 0 1,1 0," +
          -t +
          "A" +
          t +
          "," +
          t +
          " 0 1,1 0," +
          t +
          "Z"
        );
      }
      ((L.svg.line.radial = function () {
        var t = rs(gs);
        return ((t.radius = t.x), delete t.x, (t.angle = t.y), delete t.y, t);
      }),
        ((os.reverse = as).reverse = os),
        (L.svg.area = function () {
          return ms(j);
        }),
        (L.svg.area.radial = function () {
          var t = ms(gs);
          return (
            (t.radius = t.x),
            delete t.x,
            (t.innerRadius = t.x0),
            delete t.x0,
            (t.outerRadius = t.x1),
            delete t.x1,
            (t.angle = t.y),
            delete t.y,
            (t.startAngle = t.y0),
            delete t.y0,
            (t.endAngle = t.y1),
            delete t.y1,
            t
          );
        }),
        (L.svg.chord = function () {
          var i = ci,
            o = li,
            a = vs,
            s = Za,
            u = Ka;
          function e(t, e) {
            var n,
              r = c(this, i, t, e),
              t = c(this, o, t, e);
            return (
              "M" +
              r.p0 +
              l(r.r, r.p1, r.a1 - r.a0) +
              ((e = t),
              (n = r).a0 == e.a0 && n.a1 == e.a1
                ? h(r.r, r.p1, r.r, r.p0)
                : h(r.r, r.p1, t.r, t.p0) +
                  l(t.r, t.p1, t.a1 - t.a0) +
                  h(t.r, t.p1, r.r, r.p0)) +
              "Z"
            );
          }
          function c(t, e, n, r) {
            var e = e.call(t, n, r),
              n = a.call(t, e, r),
              i = s.call(t, e, r) - E,
              t = u.call(t, e, r) - E;
            return {
              r: n,
              a0: i,
              a1: t,
              p0: [n * Math.cos(i), n * Math.sin(i)],
              p1: [n * Math.cos(t), n * Math.sin(t)],
            };
          }
          function l(t, e, n) {
            return "A" + t + "," + t + " 0 " + +(A < n) + ",1 " + e;
          }
          function h(t, e, n, r) {
            return "Q 0,0 " + r;
          }
          return (
            (e.radius = function (t) {
              return arguments.length ? ((a = N(t)), e) : a;
            }),
            (e.source = function (t) {
              return arguments.length ? ((i = N(t)), e) : i;
            }),
            (e.target = function (t) {
              return arguments.length ? ((o = N(t)), e) : o;
            }),
            (e.startAngle = function (t) {
              return arguments.length ? ((s = N(t)), e) : s;
            }),
            (e.endAngle = function (t) {
              return arguments.length ? ((u = N(t)), e) : u;
            }),
            e
          );
        }),
        (L.svg.diagonal = function () {
          var r = ci,
            i = li,
            o = ys;
          function e(t, e) {
            var n = r.call(this, t, e),
              t = i.call(this, t, e),
              e = (n.y + t.y) / 2,
              n = [n, { x: n.x, y: e }, { x: t.x, y: e }, t];
            return (
              "M" + (n = n.map(o))[0] + "C" + n[1] + " " + n[2] + " " + n[3]
            );
          }
          return (
            (e.source = function (t) {
              return arguments.length ? ((r = N(t)), e) : r;
            }),
            (e.target = function (t) {
              return arguments.length ? ((i = N(t)), e) : i;
            }),
            (e.projection = function (t) {
              return arguments.length ? ((o = t), e) : o;
            }),
            e
          );
        }),
        (L.svg.diagonal.radial = function () {
          var t = L.svg.diagonal(),
            e = ys,
            r = t.projection;
          return (
            (t.projection = function (t) {
              return arguments.length
                ? r(
                    ((n = e = t),
                    function () {
                      var t = n.apply(this, arguments),
                        e = t[0],
                        t = t[1] - E;
                      return [e * Math.cos(t), e * Math.sin(t)];
                    }),
                  )
                : e;
              var n;
            }),
            t
          );
        }),
        (L.svg.symbol = function () {
          var n = xs,
            r = bs;
          function e(t, e) {
            return (Ps.get(n.call(this, t, e)) || ws)(r.call(this, t, e));
          }
          return (
            (e.type = function (t) {
              return arguments.length ? ((n = N(t)), e) : n;
            }),
            (e.size = function (t) {
              return arguments.length ? ((r = N(t)), e) : r;
            }),
            e
          );
        }));
      var Ps = L.map({
          circle: ws,
          cross: function (t) {
            t = Math.sqrt(t / 5) / 2;
            return (
              "M" +
              -3 * t +
              "," +
              -t +
              "H" +
              -t +
              "V" +
              -3 * t +
              "H" +
              t +
              "V" +
              -t +
              "H" +
              3 * t +
              "V" +
              t +
              "H" +
              t +
              "V" +
              3 * t +
              "H" +
              -t +
              "V" +
              t +
              "H" +
              -3 * t +
              "Z"
            );
          },
          diamond: function (t) {
            var t = Math.sqrt(t / (2 * Cs)),
              e = t * Cs;
            return "M0," + -t + "L" + e + ",0 0," + t + " " + -e + ",0Z";
          },
          square: function (t) {
            t = Math.sqrt(t) / 2;
            return (
              "M" +
              -t +
              "," +
              -t +
              "L" +
              t +
              "," +
              -t +
              " " +
              t +
              "," +
              t +
              " " +
              -t +
              "," +
              t +
              "Z"
            );
          },
          "triangle-down": function (t) {
            var t = Math.sqrt(t / Hs),
              e = (t * Hs) / 2;
            return "M0," + e + "L" + t + "," + -e + " " + -t + "," + -e + "Z";
          },
          "triangle-up": function (t) {
            var t = Math.sqrt(t / Hs),
              e = (t * Hs) / 2;
            return "M0," + -e + "L" + t + "," + e + " " + -t + "," + e + "Z";
          },
        }),
        Hs = ((L.svg.symbolTypes = Ps.keys()), Math.sqrt(3)),
        Cs = Math.tan(30 * C),
        Ss =
          ((i.transition = function (t) {
            for (
              var e,
                n,
                r = Ms || ++Es,
                i = Ls(t),
                o = [],
                a = As || {
                  time: Date.now(),
                  ease: To,
                  delay: 0,
                  duration: 250,
                },
                s = -1,
                u = this.length;
              ++s < u;
            ) {
              o.push((e = []));
              for (var c = this[s], l = -1, h = c.length; ++l < h; )
                ((n = c[l]) && _s(n, l, i, r, a), e.push(n));
            }
            return Ts(o, i, r);
          }),
          (i.interrupt = function (t) {
            return this.each(null == t ? Ss : ks(Ls(t)));
          }),
          ks(Ls()));
      function ks(n) {
        return function () {
          var t, e;
          (t = this[n]) &&
            (e = t[t.active]) &&
            (--t.count
              ? (delete t[t.active], (t.active += 0.5))
              : delete this[n],
            e.event) &&
            e.event.interrupt.call(this, this.__data__, e.index);
        };
      }
      function Ts(t, e, n) {
        return (dt(t, w), (t.namespace = e), (t.id = n), t);
      }
      var Ms,
        As,
        w = [],
        Es = 0;
      function Is(t, r, i, o) {
        var a = t.id,
          s = t.namespace;
        return _t(
          t,
          "function" == typeof i
            ? function (t, e, n) {
                t[s][a].tween.set(r, o(i.call(t, t.__data__, e, n)));
              }
            : ((i = o(i)),
              function (t) {
                t[s][a].tween.set(r, i);
              }),
        );
      }
      function Ds(t) {
        return (
          null == t && (t = ""),
          function () {
            this.textContent = t;
          }
        );
      }
      function Ls(t) {
        return null == t ? "__transition__" : "__transition_" + t + "__";
      }
      function _s(c, l, h, f, t) {
        var d,
          p = c[h] || (c[h] = { active: 0, count: 0 }),
          g = p[f];
        g ||
          ((d = t.time),
          (g = p[f] =
            {
              tween: new X(),
              time: d,
              delay: t.delay,
              duration: t.duration,
              ease: t.ease,
              index: l,
            }),
          (t = null),
          ++p.count,
          L.timer(
            function (t) {
              var r,
                i,
                e = g.delay,
                n = je,
                o = [];
              if (((n.t = e + d), e <= t)) return a(t - e);
              function a(t) {
                if (p.active > f) return u();
                var e = p[p.active];
                (e &&
                  (--p.count, delete p[p.active], e.event) &&
                  e.event.interrupt.call(c, c.__data__, e.index),
                  (p.active = f),
                  g.event && g.event.start.call(c, c.__data__, l),
                  g.tween.forEach(function (t, e) {
                    (e = e.call(c, c.__data__, l)) && o.push(e);
                  }),
                  (i = g.ease),
                  (r = g.duration),
                  L.timer(
                    function () {
                      return ((n.c = s(t || 1) ? gr : s), 1);
                    },
                    0,
                    d,
                  ));
              }
              function s(t) {
                if (p.active !== f) return 1;
                for (var t = t / r, e = i(t), n = o.length; 0 < n; )
                  o[--n].call(c, e);
                return 1 <= t
                  ? (g.event && g.event.end.call(c, c.__data__, l), u())
                  : void 0;
              }
              function u() {
                return (--p.count ? delete p[f] : delete c[h], 1);
              }
              n.c = a;
            },
            0,
            d,
          ));
      }
      ((w.call = i.call),
        (w.empty = i.empty),
        (w.node = i.node),
        (w.size = i.size),
        (L.transition = function (t, e) {
          return t && t.transition
            ? Ms
              ? t.transition(e)
              : t
            : zt.transition(t);
        }),
        ((L.transition.prototype = w).select = function (t) {
          var e,
            n,
            r,
            i = this.id,
            o = this.namespace,
            a = [];
          t = bt(t);
          for (var s = -1, u = this.length; ++s < u; ) {
            a.push((e = []));
            for (var c = this[s], l = -1, h = c.length; ++l < h; )
              (r = c[l]) && (n = t.call(r, r.__data__, l, s))
                ? ("__data__" in r && (n.__data__ = r.__data__),
                  _s(n, l, o, i, r[o][i]),
                  e.push(n))
                : e.push(null);
          }
          return Ts(a, o, i);
        }),
        (w.selectAll = function (t) {
          var e,
            n,
            r,
            i,
            o,
            a = this.id,
            s = this.namespace,
            u = [];
          t = xt(t);
          for (var c = -1, l = this.length; ++c < l; )
            for (var h = this[c], f = -1, d = h.length; ++f < d; )
              if ((r = h[f])) {
                ((o = r[s][a]),
                  (n = t.call(r, r.__data__, f, c)),
                  u.push((e = [])));
                for (var p = -1, g = n.length; ++p < g; )
                  ((i = n[p]) && _s(i, p, s, a, o), e.push(i));
              }
          return Ts(u, s, a);
        }),
        (w.filter = function (t) {
          var e,
            n,
            r = [];
          "function" != typeof t && (t = Lt(t));
          for (var i = 0, o = this.length; i < o; i++) {
            r.push((e = []));
            for (var a, s = 0, u = (a = this[i]).length; s < u; s++)
              (n = a[s]) && t.call(n, n.__data__, s, i) && e.push(n);
          }
          return Ts(r, this.namespace, this.id);
        }),
        (w.tween = function (e, n) {
          var r = this.id,
            i = this.namespace;
          return arguments.length < 2
            ? this.node()[i][r].tween.get(e)
            : _t(
                this,
                null == n
                  ? function (t) {
                      t[i][r].tween.remove(e);
                    }
                  : function (t) {
                      t[i][r].tween.set(e, n);
                    },
              );
        }),
        (w.attr = function (t, e) {
          if (arguments.length < 2) {
            for (e in t) this.attr(e, t[e]);
            return this;
          }
          var r = "transform" == t ? zo : yo,
            i = L.ns.qualify(t);
          function o() {
            this.removeAttribute(i);
          }
          function a() {
            this.removeAttributeNS(i.space, i.local);
          }
          return Is(
            this,
            "attr." + t,
            e,
            i.local
              ? function (n) {
                  return null == n
                    ? a
                    : ((n += ""),
                      function () {
                        var e,
                          t = this.getAttributeNS(i.space, i.local);
                        return (
                          t !== n &&
                          ((e = r(t, n)),
                          function (t) {
                            this.setAttributeNS(i.space, i.local, e(t));
                          })
                        );
                      });
                }
              : function (n) {
                  return null == n
                    ? o
                    : ((n += ""),
                      function () {
                        var e,
                          t = this.getAttribute(i);
                        return (
                          t !== n &&
                          ((e = r(t, n)),
                          function (t) {
                            this.setAttribute(i, e(t));
                          })
                        );
                      });
                },
          );
        }),
        (w.attrTween = function (t, r) {
          var i = L.ns.qualify(t);
          return this.tween(
            "attr." + t,
            i.local
              ? function (t, e) {
                  var n = r.call(
                    this,
                    t,
                    e,
                    this.getAttributeNS(i.space, i.local),
                  );
                  return (
                    n &&
                    function (t) {
                      this.setAttributeNS(i.space, i.local, n(t));
                    }
                  );
                }
              : function (t, e) {
                  var n = r.call(this, t, e, this.getAttribute(i));
                  return (
                    n &&
                    function (t) {
                      this.setAttribute(i, n(t));
                    }
                  );
                },
          );
        }),
        (w.style = function (r, t, i) {
          var e = arguments.length;
          if (e < 3) {
            if ("string" != typeof r) {
              for (i in (e < 2 && (t = ""), r)) this.style(i, r[i], t);
              return this;
            }
            i = "";
          }
          function o() {
            this.style.removeProperty(r);
          }
          return Is(this, "style." + r, t, function (n) {
            return null == n
              ? o
              : ((n += ""),
                function () {
                  var e,
                    t = _.getComputedStyle(this, null).getPropertyValue(r);
                  return (
                    t !== n &&
                    ((e = yo(t, n)),
                    function (t) {
                      this.style.setProperty(r, e(t), i);
                    })
                  );
                });
          });
        }),
        (w.styleTween = function (r, i, o) {
          return (
            arguments.length < 3 && (o = ""),
            this.tween("style." + r, function (t, e) {
              var n = i.call(
                this,
                t,
                e,
                _.getComputedStyle(this, null).getPropertyValue(r),
              );
              return (
                n &&
                function (t) {
                  this.style.setProperty(r, n(t), o);
                }
              );
            })
          );
        }),
        (w.text = function (t) {
          return Is(this, "text", t, Ds);
        }),
        (w.remove = function () {
          var e = this.namespace;
          return this.each("end.transition", function () {
            var t;
            this[e].count < 2 && (t = this.parentNode) && t.removeChild(this);
          });
        }),
        (w.ease = function (e) {
          var n = this.id,
            r = this.namespace;
          return arguments.length < 1
            ? this.node()[r][n].ease
            : ("function" != typeof e && (e = L.ease.apply(L, arguments)),
              _t(this, function (t) {
                t[r][n].ease = e;
              }));
        }),
        (w.delay = function (r) {
          var i = this.id,
            o = this.namespace;
          return arguments.length < 1
            ? this.node()[o][i].delay
            : _t(
                this,
                "function" == typeof r
                  ? function (t, e, n) {
                      t[o][i].delay = +r.call(t, t.__data__, e, n);
                    }
                  : ((r = +r),
                    function (t) {
                      t[o][i].delay = r;
                    }),
              );
        }),
        (w.duration = function (r) {
          var i = this.id,
            o = this.namespace;
          return arguments.length < 1
            ? this.node()[o][i].duration
            : _t(
                this,
                "function" == typeof r
                  ? function (t, e, n) {
                      t[o][i].duration = Math.max(
                        1,
                        r.call(t, t.__data__, e, n),
                      );
                    }
                  : ((r = Math.max(1, r)),
                    function (t) {
                      t[o][i].duration = r;
                    }),
              );
        }),
        (w.each = function (r, e) {
          var i = this.id,
            o = this.namespace;
          if (arguments.length < 2) {
            var t = As,
              n = Ms;
            try {
              ((Ms = i),
                _t(this, function (t, e, n) {
                  ((As = t[o][i]), r.call(t, t.__data__, e, n));
                }));
            } finally {
              ((As = t), (Ms = n));
            }
          } else
            _t(this, function (t) {
              t = t[o][i];
              (
                t.event || (t.event = L.dispatch("start", "end", "interrupt"))
              ).on(r, e);
            });
          return this;
        }),
        (w.transition = function () {
          for (
            var t,
              e,
              n,
              r = this.id,
              i = ++Es,
              o = this.namespace,
              a = [],
              s = 0,
              u = this.length;
            s < u;
            s++
          ) {
            a.push((t = []));
            for (var c, l = 0, h = (c = this[s]).length; l < h; l++)
              ((e = c[l]) &&
                _s(e, l, o, i, {
                  time: (n = e[o][r]).time,
                  ease: n.ease,
                  delay: n.delay + n.duration,
                  duration: n.duration,
                }),
                t.push(e));
          }
          return Ts(a, o, i);
        }),
        (L.svg.axis = function () {
          var w,
            P = L.scale.linear(),
            H = Ns,
            C = 6,
            S = 6,
            k = 3,
            T = [10],
            M = null;
          function n(t) {
            t.each(function () {
              var t,
                e,
                n,
                r,
                i,
                o,
                a,
                s = L.select(this),
                u = this.__chart__ || P,
                c = (this.__chart__ = P.copy()),
                l =
                  null == M ? (c.ticks ? c.ticks.apply(c, T) : c.domain()) : M,
                h =
                  null == w ? (c.tickFormat ? c.tickFormat.apply(c, T) : j) : w,
                l = s.selectAll(".tick").data(l, c),
                f = l
                  .enter()
                  .insert("g", ".domain")
                  .attr("class", "tick")
                  .style("opacity", D),
                d = L.transition(l.exit()).style("opacity", D).remove(),
                p = L.transition(l.order()).style("opacity", 1),
                g = Math.max(C, 0) + k,
                m = Aa(c),
                s = s.selectAll(".domain").data([0]),
                s =
                  (s.enter().append("path").attr("class", "domain"),
                  L.transition(s)),
                v = (f.append("line"), f.append("text"), f.select("line")),
                y = p.select("line"),
                l = l.select("text").text(h),
                h = f.select("text"),
                b = p.select("text"),
                x = "top" === H || "left" === H ? -1 : 1;
              ("bottom" === H || "top" === H
                ? ((t = zs),
                  (e = "x"),
                  (r = "y"),
                  (n = "x2"),
                  (i = "y2"),
                  l
                    .attr("dy", x < 0 ? "0em" : ".71em")
                    .style("text-anchor", "middle"),
                  s.attr(
                    "d",
                    "M" + m[0] + "," + x * S + "V0H" + m[1] + "V" + x * S,
                  ))
                : ((t = Rs),
                  (e = "y"),
                  (r = "x"),
                  (n = "y2"),
                  (i = "x2"),
                  l
                    .attr("dy", ".32em")
                    .style("text-anchor", x < 0 ? "end" : "start"),
                  s.attr(
                    "d",
                    "M" + x * S + "," + m[0] + "H0V" + m[1] + "H" + x * S,
                  )),
                v.attr(i, x * C),
                h.attr(r, x * g),
                y.attr(n, 0).attr(i, x * C),
                b.attr(e, 0).attr(r, x * g),
                c.rangeBand
                  ? ((a = (o = c).rangeBand() / 2),
                    (u = c =
                      function (t) {
                        return o(t) + a;
                      }))
                  : u.rangeBand
                    ? (u = c)
                    : d.call(t, c, u),
                f.call(t, u, c),
                p.call(t, c, c));
            });
          }
          return (
            (n.scale = function (t) {
              return arguments.length ? ((P = t), n) : P;
            }),
            (n.orient = function (t) {
              return arguments.length ? ((H = t in js ? t + "" : Ns), n) : H;
            }),
            (n.ticks = function () {
              return arguments.length ? ((T = arguments), n) : T;
            }),
            (n.tickValues = function (t) {
              return arguments.length ? ((M = t), n) : M;
            }),
            (n.tickFormat = function (t) {
              return arguments.length ? ((w = t), n) : w;
            }),
            (n.tickSize = function (t) {
              var e = arguments.length;
              return e ? ((C = +t), (S = +arguments[e - 1]), n) : C;
            }),
            (n.innerTickSize = function (t) {
              return arguments.length ? ((C = +t), n) : C;
            }),
            (n.outerTickSize = function (t) {
              return arguments.length ? ((S = +t), n) : S;
            }),
            (n.tickPadding = function (t) {
              return arguments.length ? ((k = +t), n) : k;
            }),
            (n.tickSubdivide = function () {
              return arguments.length && n;
            }),
            n
          );
        }));
      var Ns = "bottom",
        js = { top: 1, right: 1, bottom: 1, left: 1 };
      function zs(t, n, r) {
        t.attr("transform", function (t) {
          var e = n(t);
          return "translate(" + (isFinite(e) ? e : r(t)) + ",0)";
        });
      }
      function Rs(t, n, r) {
        t.attr("transform", function (t) {
          var e = n(t);
          return "translate(0," + (isFinite(e) ? e : r(t)) + ")";
        });
      }
      L.svg.brush = function () {
        var v,
          y,
          b = ht(k, "brushstart", "brush", "brushend"),
          x = null,
          w = null,
          P = [0, 0],
          H = [0, 0],
          C = !0,
          S = !0,
          i = qs[0];
        function k(t) {
          t.each(function () {
            var t,
              e = L.select(this)
                .style("pointer-events", "all")
                .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)")
                .on("mousedown.brush", o)
                .on("touchstart.brush", o),
              n = e.selectAll(".background").data([0]),
              r =
                (n
                  .enter()
                  .append("rect")
                  .attr("class", "background")
                  .style("visibility", "hidden")
                  .style("cursor", "crosshair"),
                e
                  .selectAll(".extent")
                  .data([0])
                  .enter()
                  .append("rect")
                  .attr("class", "extent")
                  .style("cursor", "move"),
                e.selectAll(".resize").data(i, j)),
              r =
                (r.exit().remove(),
                r
                  .enter()
                  .append("g")
                  .attr("class", function (t) {
                    return "resize " + t;
                  })
                  .style("cursor", function (t) {
                    return Os[t];
                  })
                  .append("rect")
                  .attr("x", function (t) {
                    return /[ew]$/.test(t) ? -3 : null;
                  })
                  .attr("y", function (t) {
                    return /^[ns]/.test(t) ? -3 : null;
                  })
                  .attr("width", 6)
                  .attr("height", 6)
                  .style("visibility", "hidden"),
                r.style("display", k.empty() ? "none" : null),
                L.transition(e)),
              e = L.transition(n);
            (x &&
              ((t = Aa(x)), e.attr("x", t[0]).attr("width", t[1] - t[0]), M(r)),
              w &&
                ((t = Aa(w)),
                e.attr("y", t[0]).attr("height", t[1] - t[0]),
                A(r)),
              T(r));
          });
        }
        function T(t) {
          t.selectAll(".resize").attr("transform", function (t) {
            return (
              "translate(" + P[+/e$/.test(t)] + "," + H[+/^s/.test(t)] + ")"
            );
          });
        }
        function M(t) {
          (t.select(".extent").attr("x", P[0]),
            t.selectAll(".extent,.n>rect,.s>rect").attr("width", P[1] - P[0]));
        }
        function A(t) {
          (t.select(".extent").attr("y", H[0]),
            t.selectAll(".extent,.e>rect,.w>rect").attr("height", H[1] - H[0]));
        }
        function o() {
          var u,
            t,
            n,
            r = this,
            e = L.select(L.event.target),
            i = b.of(r, arguments),
            o = L.select(r),
            a = e.datum(),
            s = !/^(n|s)$/.test(a) && x,
            c = !/^(e|w)$/.test(a) && w,
            l = e.classed("extent"),
            h = Ut(),
            f = L.mouse(r),
            d = L.select(_)
              .on("keydown.brush", function () {
                32 == L.event.keyCode &&
                  (l || ((u = null), (f[0] -= P[1]), (f[1] -= H[1]), (l = 2)),
                  ct());
              })
              .on("keyup.brush", function () {
                32 == L.event.keyCode &&
                  2 == l &&
                  ((f[0] += P[1]), (f[1] += H[1]), (l = 0), ct());
              });
          function p() {
            var t = L.mouse(r),
              e = !1;
            (n && ((t[0] += n[0]), (t[1] += n[1])),
              l ||
                (L.event.altKey
                  ? ((u = u || [(P[0] + P[1]) / 2, (H[0] + H[1]) / 2]),
                    (f[0] = P[+(t[0] < u[0])]),
                    (f[1] = H[+(t[1] < u[1])]))
                  : (u = null)),
              s && g(t, x, 0) && (M(o), (e = !0)),
              c && g(t, w, 1) && (A(o), (e = !0)),
              e && (T(o), i({ type: "brush", mode: l ? "move" : "resize" })));
          }
          function g(t, e, n) {
            var r,
              e = Aa(e),
              i = e[0],
              e = e[1],
              o = f[n],
              a = n ? H : P,
              s = a[1] - a[0];
            return (
              l && ((i -= o), (e -= s + o)),
              (t = (n ? S : C) ? Math.max(i, Math.min(e, t[n])) : t[n]),
              l
                ? (r = (t += o) + s)
                : (o = u ? Math.max(i, Math.min(e, 2 * u[n] - t)) : o) < t
                  ? ((r = t), (t = o))
                  : (r = o),
              (a[0] != t || a[1] != r) &&
                (n ? (y = null) : (v = null), (a[0] = t), (a[1] = r), 1)
            );
          }
          function m() {
            (p(),
              o
                .style("pointer-events", "all")
                .selectAll(".resize")
                .style("display", k.empty() ? "none" : null),
              L.select("body").style("cursor", null),
              d
                .on("mousemove.brush", null)
                .on("mouseup.brush", null)
                .on("touchmove.brush", null)
                .on("touchend.brush", null)
                .on("keydown.brush", null)
                .on("keyup.brush", null),
              h(),
              i({ type: "brushend" }));
          }
          (L.event.changedTouches
            ? d.on("touchmove.brush", p).on("touchend.brush", m)
            : d.on("mousemove.brush", p).on("mouseup.brush", m),
            o.interrupt().selectAll("*").interrupt(),
            l
              ? ((f[0] = P[0] - f[0]), (f[1] = H[0] - f[1]))
              : a
                ? ((t = +/w$/.test(a)),
                  (a = +/^n/.test(a)),
                  (n = [P[1 - t] - f[0], H[1 - a] - f[1]]),
                  (f[0] = P[t]),
                  (f[1] = H[a]))
                : L.event.altKey && (u = f.slice()),
            o
              .style("pointer-events", "none")
              .selectAll(".resize")
              .style("display", null),
            L.select("body").style("cursor", e.style("cursor")),
            i({ type: "brushstart" }),
            p());
        }
        return (
          (k.event = function (t) {
            t.each(function () {
              var r = b.of(this, arguments),
                i = { x: P, y: H, i: v, j: y },
                t = this.__chart__ || i;
              ((this.__chart__ = i),
                Ms
                  ? L.select(this)
                      .transition()
                      .each("start.brush", function () {
                        ((v = t.i),
                          (y = t.j),
                          (P = t.x),
                          (H = t.y),
                          r({ type: "brushstart" }));
                      })
                      .tween("brush:brush", function () {
                        var e = bo(P, i.x),
                          n = bo(H, i.y);
                        return (
                          (v = y = null),
                          function (t) {
                            ((P = i.x = e(t)),
                              (H = i.y = n(t)),
                              r({ type: "brush", mode: "resize" }));
                          }
                        );
                      })
                      .each("end.brush", function () {
                        ((v = i.i),
                          (y = i.j),
                          r({ type: "brush", mode: "resize" }),
                          r({ type: "brushend" }));
                      })
                  : (r({ type: "brushstart" }),
                    r({ type: "brush", mode: "resize" }),
                    r({ type: "brushend" })));
            });
          }),
          (k.x = function (t) {
            return arguments.length ? ((i = qs[(!(x = t) << 1) | !w]), k) : x;
          }),
          (k.y = function (t) {
            return arguments.length ? ((i = qs[(!x << 1) | !(w = t)]), k) : w;
          }),
          (k.clamp = function (t) {
            return arguments.length
              ? (x && w
                  ? ((C = !!t[0]), (S = !!t[1]))
                  : x
                    ? (C = !!t)
                    : w && (S = !!t),
                k)
              : x && w
                ? [C, S]
                : x
                  ? C
                  : w
                    ? S
                    : null;
          }),
          (k.extent = function (t) {
            var e, n, r, i, o;
            return arguments.length
              ? (x &&
                  ((e = t[0]),
                  (n = t[1]),
                  w && ((e = e[0]), (n = n[0])),
                  (v = [e, n]),
                  x.invert && ((e = x(e)), (n = x(n))),
                  n < e && ((o = e), (e = n), (n = o)),
                  (e == P[0] && n == P[1]) || (P = [e, n])),
                w &&
                  ((r = t[0]),
                  (i = t[1]),
                  x && ((r = r[1]), (i = i[1])),
                  (y = [r, i]),
                  w.invert && ((r = w(r)), (i = w(i))),
                  i < r && ((o = r), (r = i), (i = o)),
                  (r == H[0] && i == H[1]) || (H = [r, i])),
                k)
              : (x &&
                  (v
                    ? ((e = v[0]), (n = v[1]))
                    : ((e = P[0]),
                      (n = P[1]),
                      x.invert && ((e = x.invert(e)), (n = x.invert(n))),
                      n < e && ((o = e), (e = n), (n = o)))),
                w &&
                  (y
                    ? ((r = y[0]), (i = y[1]))
                    : ((r = H[0]),
                      (i = H[1]),
                      w.invert && ((r = w.invert(r)), (i = w.invert(i))),
                      i < r && ((o = r), (r = i), (i = o)))),
                x && w
                  ? [
                      [e, r],
                      [n, i],
                    ]
                  : x
                    ? [e, n]
                    : w && [r, i]);
          }),
          (k.clear = function () {
            return (
              k.empty() || ((P = [0, 0]), (H = [0, 0]), (v = y = null)),
              k
            );
          }),
          (k.empty = function () {
            return (!!x && P[0] == P[1]) || (!!w && H[0] == H[1]);
          }),
          L.rebind(k, b, "on")
        );
      };
      var Os = {
          n: "ns-resize",
          e: "ew-resize",
          s: "ns-resize",
          w: "ew-resize",
          nw: "nwse-resize",
          ne: "nesw-resize",
          se: "nwse-resize",
          sw: "nesw-resize",
        },
        qs = [
          ["n", "e", "s", "w", "nw", "ne", "se", "sw"],
          ["e", "w"],
          ["n", "s"],
          [],
        ],
        e = (P.format = n.timeFormat),
        n = e.utc,
        Bs = n("%Y-%m-%dT%H:%M:%S.%LZ");
      function Fs(t) {
        return t.toISOString();
      }
      function $s(e, i, t) {
        function o(t) {
          return e(t);
        }
        function a(t, e) {
          var n = (t[1] - t[0]) / e,
            r = L.bisect(Vs, n);
          return r == Vs.length
            ? [
                i.year,
                ja(
                  t.map(function (t) {
                    return t / 31536e6;
                  }),
                  e,
                )[2],
              ]
            : r
              ? i[n / Vs[r - 1] < Vs[r] / n ? r - 1 : r]
              : [Xs, ja(t, e)[2]];
        }
        return (
          (o.invert = function (t) {
            return Us(e.invert(t));
          }),
          (o.domain = function (t) {
            return arguments.length ? (e.domain(t), o) : e.domain().map(Us);
          }),
          (o.nice = function (e, n) {
            var t = o.domain(),
              r = Ma(t),
              r = null == e ? a(r, 10) : "number" == typeof e && a(r, e);
            function i(t) {
              return !isNaN(t) && !e.range(t, Us(+t + 1), n).length;
            }
            return (
              r && ((e = r[0]), (n = r[1])),
              o.domain(
                Ia(
                  t,
                  1 < n
                    ? {
                        floor: function (t) {
                          for (; i((t = e.floor(t))); ) t = Us(t - 1);
                          return t;
                        },
                        ceil: function (t) {
                          for (; i((t = e.ceil(t))); ) t = Us(+t + 1);
                          return t;
                        },
                      }
                    : e,
                ),
              )
            );
          }),
          (o.ticks = function (t, e) {
            var n = Ma(o.domain()),
              r =
                null == t
                  ? a(n, 10)
                  : "number" == typeof t
                    ? a(n, t)
                    : !t.range && [{ range: t }, e];
            return (
              r && ((t = r[0]), (e = r[1])),
              t.range(n[0], Us(+n[1] + 1), e < 1 ? 1 : e)
            );
          }),
          (o.tickFormat = function () {
            return t;
          }),
          (o.copy = function () {
            return $s(e.copy(), i, t);
          }),
          _a(o, e)
        );
      }
      function Us(t) {
        return new Date(t);
      }
      ((e.iso =
        Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z")
          ? Fs
          : Bs),
        (Fs.parse = function (t) {
          t = new Date(t);
          return isNaN(t) ? null : t;
        }),
        (Fs.toString = Bs.toString),
        (P.second = Xe(
          function (t) {
            return new H(1e3 * Math.floor(t / 1e3));
          },
          function (t, e) {
            t.setTime(t.getTime() + 1e3 * Math.floor(e));
          },
          function (t) {
            return t.getSeconds();
          },
        )),
        (P.seconds = P.second.range),
        (P.seconds.utc = P.second.utc.range),
        (P.minute = Xe(
          function (t) {
            return new H(6e4 * Math.floor(t / 6e4));
          },
          function (t, e) {
            t.setTime(t.getTime() + 6e4 * Math.floor(e));
          },
          function (t) {
            return t.getMinutes();
          },
        )),
        (P.minutes = P.minute.range),
        (P.minutes.utc = P.minute.utc.range),
        (P.hour = Xe(
          function (t) {
            var e = t.getTimezoneOffset() / 60;
            return new H(36e5 * (Math.floor(t / 36e5 - e) + e));
          },
          function (t, e) {
            t.setTime(t.getTime() + 36e5 * Math.floor(e));
          },
          function (t) {
            return t.getHours();
          },
        )),
        (P.hours = P.hour.range),
        (P.hours.utc = P.hour.utc.range),
        (P.month = Xe(
          function (t) {
            return ((t = P.day(t)).setDate(1), t);
          },
          function (t, e) {
            t.setMonth(t.getMonth() + e);
          },
          function (t) {
            return t.getMonth();
          },
        )),
        (P.months = P.month.range),
        (P.months.utc = P.month.utc.range));
      var Vs = [
          1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5,
          864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6,
        ],
        Qs = [
          [P.second, 1],
          [P.second, 5],
          [P.second, 15],
          [P.second, 30],
          [P.minute, 1],
          [P.minute, 5],
          [P.minute, 15],
          [P.minute, 30],
          [P.hour, 1],
          [P.hour, 3],
          [P.hour, 6],
          [P.hour, 12],
          [P.day, 1],
          [P.day, 2],
          [P.week, 1],
          [P.month, 1],
          [P.month, 3],
          [P.year, 1],
        ],
        Ws = e.multi([
          [
            ".%L",
            function (t) {
              return t.getMilliseconds();
            },
          ],
          [
            ":%S",
            function (t) {
              return t.getSeconds();
            },
          ],
          [
            "%I:%M",
            function (t) {
              return t.getMinutes();
            },
          ],
          [
            "%I %p",
            function (t) {
              return t.getHours();
            },
          ],
          [
            "%a %d",
            function (t) {
              return t.getDay() && 1 != t.getDate();
            },
          ],
          [
            "%b %d",
            function (t) {
              return 1 != t.getDate();
            },
          ],
          [
            "%B",
            function (t) {
              return t.getMonth();
            },
          ],
          ["%Y", gr],
        ]),
        Xs = {
          range: function (t, e, n) {
            return L.range(Math.ceil(t / n) * n, +e, n).map(Us);
          },
          floor: j,
          ceil: j,
        },
        Ys =
          ((Qs.year = P.year),
          (P.scale = function () {
            return $s(L.scale.linear(), Qs, Ws);
          }),
          Qs.map(function (t) {
            return [t[0].utc, t[1]];
          })),
        Gs = n.multi([
          [
            ".%L",
            function (t) {
              return t.getUTCMilliseconds();
            },
          ],
          [
            ":%S",
            function (t) {
              return t.getUTCSeconds();
            },
          ],
          [
            "%I:%M",
            function (t) {
              return t.getUTCMinutes();
            },
          ],
          [
            "%I %p",
            function (t) {
              return t.getUTCHours();
            },
          ],
          [
            "%a %d",
            function (t) {
              return t.getUTCDay() && 1 != t.getUTCDate();
            },
          ],
          [
            "%b %d",
            function (t) {
              return 1 != t.getUTCDate();
            },
          ],
          [
            "%B",
            function (t) {
              return t.getUTCMonth();
            },
          ],
          ["%Y", gr],
        ]);
      function Js(t) {
        return JSON.parse(t.responseText);
      }
      function Zs(t) {
        var e = r.createRange();
        return (
          e.selectNode(r.body),
          e.createContextualFragment(t.responseText)
        );
      }
      ((Ys.year = P.year.utc),
        (P.scale.utc = function () {
          return $s(L.scale.linear(), Ys, Gs);
        }),
        (L.text = Ee(function (t) {
          return t.responseText;
        })),
        (L.json = function (t, e) {
          return Ie(t, "application/json", Js, e);
        }),
        (L.html = function (t, e) {
          return Ie(t, "text/html", Zs, e);
        }),
        (L.xml = Ee(function (t) {
          return t.responseXML;
        })),
        "function" == typeof define && define.amd
          ? define(L)
          : "object" == typeof module && module.exports && (module.exports = L),
        (this.d3 = L));
    })() /*!@license H5P.Chart-1.2/pie.js by Joubel licensed under MIT*/,
    (H5P.Chart.PieChart = function (t, i) {
      var n = t.listOfTypes,
        e = d3.scale
          .ordinal()
          .range([
            "#90EE90",
            "#ADD8E6",
            "#FFB6C1",
            "#B0C4DE",
            "#D3D3D3",
            "#20B2AA",
            "#FAFAD2",
          ]),
        o = d3.select(i[0]).append("svg"),
        a =
          (o.append("desc").html(t.figureDefinition),
          o.append("g").attr("class", "translater")),
        t = d3.layout
          .pie()
          .sort(null)
          .value(function (t) {
            return t.value;
          }),
        s = (t = a
          .selectAll(".arc")
          .data(t(n))
          .enter()
          .append("g")
          .attr("class", "arc"))
          .append("path")
          .style("fill", function (t) {
            return void 0 !== t.data.color
              ? t.data.color
              : e(n.indexOf(t.data) % 7);
          }),
        u = t
          .append("svg:text")
          .attr("class", "text")
          .attr("aria-hidden", !0)
          .attr("text-anchor", "middle")
          .text(function (t, e) {
            return n[e].text + ": " + n[e].value;
          })
          .attr("fill", function (t) {
            if (void 0 !== t.data.fontColor) return t.data.fontColor;
          });
      this.resize = function () {
        var t = window.getComputedStyle(i[0]),
          t = Math.min(parseFloat(t.width), parseFloat(t.height)),
          e = t,
          n = Math.min(e, t) / 2,
          r = d3.svg.arc().outerRadius(n).innerRadius(0);
        (o.attr("width", e + "px").attr("height", t + "px"),
          a.attr("transform", "translate(" + e / 2 + "," + t / 2 + ")"),
          s.attr("d", r),
          u.attr("transform", function (t) {
            return (
              (t.innerRadius = 0),
              (t.outerRadius = n),
              "translate(" + r.centroid(t) + ")"
            );
          }));
      };
    }) /*!@license H5P.Chart-1.2/bar.js by Joubel licensed under MIT*/,
    (H5P.Chart.BarChart = function (t, o) {
      function e(t) {
        return n.indexOf(t);
      }
      var n = t.listOfTypes,
        r = d3.scale
          .ordinal()
          .range([
            "#90EE90",
            "#ADD8E6",
            "#FFB6C1",
            "#B0C4DE",
            "#D3D3D3",
            "#20B2AA",
            "#FAFAD2",
          ]),
        a = d3.scale.ordinal().domain(d3.range(n.length)),
        s = d3.scale.linear().domain([
          0,
          d3.max(n, function (t) {
            return t.value;
          }),
        ]),
        u = d3.time.scale(),
        c = d3.scale.linear(),
        l = d3.svg
          .axis()
          .scale(a)
          .orient("bottom")
          .tickFormat(function (t) {
            return n[t % n.length].text;
          }),
        h = d3.select(o[0]).append("svg"),
        f =
          (h.append("desc").html("chart"),
          h.append("g").attr("class", "x-axis")),
        d = h
          .selectAll("rect")
          .data(n, e)
          .enter()
          .append("rect")
          .attr("fill", function (t) {
            return void 0 !== t.color ? t.color : r(n.indexOf(t) % 7);
          }),
        p = h
          .selectAll("text")
          .data(n, e)
          .enter()
          .append("text")
          .text(function (t) {
            return t.value;
          })
          .attr("text-anchor", "middle")
          .attr("fill", function (t) {
            return void 0 !== t.fontColor ? t.fontColor : "000000";
          })
          .attr("aria-hidden", !0);
      this.resize = function () {
        var t = window.getComputedStyle(o[0]),
          e = parseFloat(t.width),
          n = parseFloat(t.height),
          t = parseFloat(t.fontSize),
          r = 1.25 * t,
          t = 0.125 * t,
          i = n - t - r;
        (h.attr("width", e).attr("height", n),
          a.rangeRoundBands([0, e], 0.05),
          s.range([0, i]),
          u.range([0, e]),
          c.range([i, 0]),
          l.tickSize([t]),
          f.attr("transform", "translate(0," + i + ")").call(l),
          d
            .attr("x", function (t, e) {
              return a(e);
            })
            .attr("y", function (t) {
              return i - s(t.value);
            })
            .attr("width", a.rangeBand())
            .attr("height", function (t) {
              return s(t.value);
            }),
          p
            .attr("x", function (t, e) {
              return a(e) + a.rangeBand() / 2;
            })
            .attr("y", function (t) {
              return i - s(t.value) + r;
            }),
          f.selectAll("text").attr("aria-hidden", !0));
      };
    }),
    ((H5P = H5P || {}).Transition = (function () {
      Transition = {
        transitionEndEventNames: {
          WebkitTransition: "webkitTransitionEnd",
          transition: "transitionend",
          MozTransition: "transitionend",
          OTransition: "oTransitionEnd",
          msTransition: "MSTransitionEnd",
        },
        cache: [],
        getVendorPropertyName: function (t) {
          if (void 0 === Transition.cache[t]) {
            var e = document.createElement("div");
            if (t in e.style) Transition.cache[t] = t;
            else {
              var n = ["Moz", "Webkit", "O", "ms"],
                r = t.charAt(0).toUpperCase() + t.substr(1);
              if (t in e.style) Transition.cache[t] = t;
              else
                for (var i = 0; i < n.length; ++i) {
                  var o = n[i] + r;
                  if (o in e.style) {
                    Transition.cache[t] = o;
                    break;
                  }
                }
            }
          }
          return Transition.cache[t];
        },
        getTransitionEndEventName: function () {
          return (
            Transition.transitionEndEventNames[
              Transition.getVendorPropertyName("transition")
            ] || void 0
          );
        },
        onTransitionEnd: function (t, e, n) {
          ((n = n || 1e3),
            (Transition.transitionEndEventName =
              Transition.transitionEndEventName ||
              Transition.getTransitionEndEventName()));
          function r() {
            i ||
              (t.off(Transition.transitionEndEventName, e),
              (i = !0),
              clearTimeout(o),
              e());
          }
          var i = !1,
            o = setTimeout(function () {
              r();
            }, n);
          t.on(Transition.transitionEndEventName, function () {
            r();
          });
        },
      };
      function r(t, e) {
        var n;
        e >= t.length ||
          ((n = t[e]),
          H5P.Transition.onTransitionEnd(
            n.$element,
            function () {
              (n.end && n.end(), !0 !== n.break && r(t, e + 1));
            },
            n.timeout || void 0,
          ));
      }
      return (
        (Transition.sequence = function (t) {
          r(t, 0);
        }),
        Transition
      );
    })(H5P.jQuery)),
    ((H5P = H5P || {}).JoubelHelpTextDialog = (function (l) {
      var h = 0;
      function t(t, e, n) {
        H5P.EventDispatcher.call(this);
        function r() {
          (s.remove(), i.trigger("closed"));
        }
        var i = this,
          o = "joubel-help-text-header-" + ++h,
          a = "joubel-help-text-body-" + h,
          s = l("<div>", {
            class: "joubel-help-text-dialog-box",
            role: "dialog",
            "aria-labelledby": o,
            "aria-describedby": a,
          }),
          u =
            (l("<div>", {
              class: "joubel-help-text-dialog-background",
            }).appendTo(s),
            l("<div>", { class: "joubel-help-text-dialog-container" }).appendTo(
              s,
            )),
          c =
            (l("<div>", {
              class: "joubel-help-text-header",
              id: o,
              role: "header",
              html: t,
            }).appendTo(u),
            l("<div>", {
              class: "joubel-help-text-body",
              id: a,
              html: e,
              role: "document",
              tabindex: 0,
            }).appendTo(u),
            l("<div>", {
              class: "joubel-help-text-remove",
              role: "button",
              title: n,
              tabindex: 1,
              click: r,
              keydown: function (t) {
                -1 !== [32, 13].indexOf(t.which) && (t.preventDefault(), r());
              },
            }).appendTo(u));
        ((i.getElement = function () {
          return s;
        }),
          (i.focus = function () {
            c.focus();
          }));
      }
      return ((t.prototype = Object.create(
        H5P.EventDispatcher.prototype,
      )).constructor = t);
    })(H5P.jQuery)),
    ((H5P = H5P || {}).JoubelMessageDialog = (function (o) {
      return function (t, e) {
        function n() {
          (r.remove(), clearTimeout(i), t.off("click.messageDialog"));
        }
        var r = o("<div/>", {
            class: "joubel-message-dialog",
            text: e,
          }).appendTo(t),
          i = setTimeout(n, 3e3);
        return (t.on("click.messageDialog", n), r);
      };
    })(H5P.jQuery)));
}
(((H5P = H5P || {}).JoubelProgressCircle = (function (s) {
  function t(e, t, n, r) {
    ((n = n || "#f0f0f0"), (r = r || "#ffffff"));
    t = this.hexToRgb((t = t || "#1a73d9"));
    try {
      if ("" === (e = Number(e))) throw "is empty";
      if (isNaN(e)) throw "is not a number";
    } catch (t) {
      e = "err";
    }
    100 < e && (e = 100);
    var t =
        "rgb(" +
        parseInt(t.r, 10) +
        "," +
        parseInt(t.g, 10) +
        "," +
        parseInt(t.b, 10) +
        ")",
      i = s("<div/>", { class: "joubel-progress-circle-wrapper" }),
      o = s("<div/>", {
        class: "joubel-progress-circle-active-border",
      }).appendTo(i),
      a = s("<div/>", { class: "joubel-progress-circle-circle" }).appendTo(o),
      e =
        (s("<span/>", {
          text: e + "%",
          class: "joubel-progress-circle-percentage",
        }).appendTo(a),
        3.6 * e);
    return (
      (e <= 180
        ? o.css(
            "background-image",
            "linear-gradient(" +
              (90 + e) +
              "deg, transparent 50%, " +
              n +
              " 50%),linear-gradient(90deg, " +
              n +
              " 50%, transparent 50%)",
          )
        : o.css(
            "background-image",
            "linear-gradient(" +
              (e - 90) +
              "deg, transparent 50%, " +
              t +
              " 50%),linear-gradient(90deg, " +
              n +
              " 50%, transparent 50%)",
          )
      )
        .css("border", "2px solid" + r)
        .css("background-color", t),
      (this.$activeBorder = o),
      (this.$backgroundCircle = a),
      (this.$wrapper = i),
      this.initResizeFunctionality(),
      i
    );
  }
  return (
    (t.prototype.initResizeFunctionality = function () {
      var t = this;
      (s(window).resize(function () {
        setTimeout(function () {
          t.resize();
        });
      }),
        setTimeout(function () {
          t.resize();
        }, 0));
    }),
    (t.prototype.resize = function () {
      var t,
        e,
        n,
        r = this.$wrapper.parent();
      void 0 !== r &&
        r &&
        ((r = parseInt(r.css("font-size"), 10)),
        (e =
          (t =
            parseInt(r / 4.5, 10) % 2 == 0
              ? parseInt(r / 4.5, 10) + 4
              : parseInt(r / 4.5, 10) + 5) / 2),
        this.$activeBorder.css({
          width: (n = 3.75 * r),
          height: (r = 3.75 * r),
        }),
        this.$backgroundCircle.css({
          width: n - t,
          height: r - t,
          top: e,
          left: e,
        }));
    }),
    (t.prototype.hexToRgb = function (t) {
      t = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);
      return t
        ? {
            r: parseInt(t[1], 16),
            g: parseInt(t[2], 16),
            b: parseInt(t[3], 16),
          }
        : null;
    }),
    t
  );
})(H5P.jQuery)),
  ((H5P = H5P || {}).SimpleRoundedButton = (function (n) {
    return function (t) {
      var e = n("<div>", {
        class: "joubel-simple-rounded-button",
        title: t,
        role: "button",
        tabindex: "0",
      }).keydown(function (t) {
        -1 !== [32, 13].indexOf(t.which) &&
          (n(this).click(), t.preventDefault());
      });
      return (
        n("<span>", {
          class: "joubel-simple-rounded-button-text",
          html: t,
        }).appendTo(e),
        e
      );
    };
  })(H5P.jQuery)),
  ((H5P = H5P || {}).JoubelSpeechBubble = (function (o) {
    var a,
      s,
      u,
      c,
      l,
      h,
      f = !!navigator.userAgent.match(/iPod|iPhone|iPad/g);
    function d(t) {
      var e = t.closest(".h5p-frame");
      return (e = e.length ? e : t.closest(".h5p-container"));
    }
    function p() {
      g(a, s, h, u, c);
    }
    function g(t, e, n, r, i) {
      var o = (function (t, e) {
          ((t = t[0].getBoundingClientRect()),
            (e = e[0].getBoundingClientRect()));
          return {
            top: e.top - t.top,
            right: t.right - e.right,
            bottom: t.bottom - e.bottom,
            left: e.left - t.left,
            innerWidth: e.width,
            innerHeight: e.height,
            outerWidth: t.width,
            outerHeight: t.height,
          };
        })(d(e), e),
        a = o.bottom > o.top ? "bottom" : "top",
        s = 0.9 * o.outerWidth,
        n = n < s ? n : s,
        s = (function (t, e) {
          var n = {},
            r = t / 2;
          ((n.top = e.top + e.innerHeight),
            (n.bottom = e.bottom + e.innerHeight + 9),
            e.left < r
              ? (n.left = 3)
              : e.left + r > e.outerWidth
                ? (n.left = e.outerWidth - t - 3)
                : (n.left = e.left - r + e.innerWidth / 2));
          return n;
        })(n, o),
        o = (function (t, e, n, r) {
          var i = {},
            t = t - 20;
          ((i.left = n.left - e.left + r / 2 - 6), i.left < 9 && (i.left = 9));
          t < i.left && (i.left = t);
          return ((i.top = -6), (i.bottom = -6), i);
        })(n, s, o, e.width()),
        e =
          (t.css(
            ((e = n),
            (t = s),
            (n = 16),
            "top" === a
              ? {
                  width: e + "px",
                  bottom: t.bottom + "px",
                  left: t.left + "px",
                  fontSize: n + "px",
                  top: "",
                }
              : {
                  width: e + "px",
                  top: t.top + "px",
                  left: t.left + "px",
                  fontSize: n + "px",
                  bottom: "",
                }),
          ),
          (s = o),
          "top" === a
            ? { bottom: s.bottom + "px", left: s.left + "px", top: "" }
            : { top: s.top + "px", left: s.left + "px", bottom: "" });
      (r.css(e), i.css(e));
    }
    H5P.externalDispatcher.on("domHidden", function (t) {
      void 0 !== a && 0 !== t.data.$dom.find(s).length && m();
    });
    var m = function () {
      (H5P.$body.off("mousedown.speechBubble"),
        H5P.$window.off("resize", "", p),
        s.parents(".h5p-dialog").off("mousedown.speechBubble"),
        f && H5P.$body.css("cursor", ""),
        void 0 !== a &&
          (a.removeClass("show"),
          clearTimeout(l),
          (l = setTimeout(function () {
            (a.remove(), (a = void 0));
          }, 500))));
    };
    function v(t) {
      t.target !== s[0] && (m(), (s = void 0));
    }
    return function (t, e, n) {
      ((h = n = n || 400),
        (s = t),
        (this.isCurrent = function (t) {
          return t.is(s);
        }),
        (this.remove = function () {
          m();
        }),
        void 0 !== a && m());
      var r,
        i = d(t),
        e =
          ((r = a) &&
            (clearTimeout(l),
            r.removeClass("show"),
            setTimeout(function () {
              r && (r.remove(), (r = void 0));
            }, 500)),
          (u = o('<div class="joubel-speech-bubble-tail"></div>')),
          (c = o('<div class="joubel-speech-bubble-inner-tail"></div>')),
          o(
            '<div class="joubel-speech-bubble-inner"><div class="joubel-speech-bubble-text">' +
              e +
              "</div></div>",
          ).prepend(c));
      return (
        (a = o('<div class="joubel-speech-bubble" aria-live="assertive">')
          .append([u, e])
          .appendTo(i)),
        setTimeout(function () {
          a.addClass("show");
        }, 0),
        g(a, s, n, u, c),
        H5P.$body.on("mousedown.speechBubble", v),
        H5P.$window.on("resize", "", p),
        t.parents(".h5p-dialog").on("mousedown.speechBubble", v),
        f && H5P.$body.css("cursor", "pointer"),
        this
      );
    };
  })(H5P.jQuery)),
  ((H5P = H5P || {}).JoubelThrobber = (function (t) {
    return function () {
      return t("<div/>", { class: "h5p-throbber" });
    };
  })(H5P.jQuery)),
  /*!@license H5P.JoubelUI-1.3/js/joubel-tip.js by Joubel licensed under unknown license*/ (H5P.JoubelTip =
    (function (s) {
      var u = s("<div/>");
      return function (e, n) {
        var r,
          t = u.html(e).text().trim();
        if ("" !== t) {
          n = s.extend(
            { tipLabel: t, helpIcon: !1, showSpeechBubble: !0, tabcontrol: !1 },
            n,
          );
          var i = s("<div/>", {
            class:
              "joubel-tip-container" + (n.showSpeechBubble ? "" : " be-quiet"),
            "aria-label": n.tipLabel,
            "aria-expanded": !1,
            role: "button",
            tabindex: n.tabcontrol ? -1 : 0,
            click: function (t) {
              (o(), t.preventDefault());
            },
            keydown: function (t) {
              32 === t.which || 13 === t.which
                ? (o(), t.stopPropagation(), t.preventDefault())
                : o(!1);
            },
            html:
              '<span class="joubel-icon-tip-normal ' +
              (n.helpIcon ? " help-icon" : "") +
              '"><span class="h5p-icon-shadow"></span><span class="h5p-icon-speech-bubble"></span><span class="h5p-icon-info"></span></span>',
          });
          const a = s("<div>", {
            class: "hidden-but-read",
            "aria-live": "polite",
            appendTo: i,
          });
          var o = function (t) {
            void 0 !== r && r.isCurrent(i)
              ? (r.remove(),
                (r = void 0),
                i.attr("aria-expanded", !1),
                a.html(""))
              : !1 !== t &&
                n.showSpeechBubble &&
                ((r = H5P.JoubelSpeechBubble(i, e)),
                i.attr("aria-expanded", !0),
                a.html(e));
          };
          return i;
        }
      };
    })(H5P.jQuery)),
  ((H5P = H5P || {}).JoubelSlider = (function (e) {
    function t(t) {
      (H5P.EventDispatcher.call(this),
        (this.$slider = e(
          "<div>",
          e.extend({ class: "h5p-joubel-ui-slider" }, t),
        )),
        (this.$slides = []),
        (this.currentIndex = 0),
        (this.numSlides = 0));
    }
    return (
      (((t.prototype = Object.create(
        H5P.EventDispatcher.prototype,
      )).constructor = t).prototype.addSlide = function (t) {
        (t
          .addClass("h5p-joubel-ui-slide")
          .css({ left: 100 * this.numSlides + "%" }),
          this.$slider.append(t),
          this.$slides.push(t),
          this.numSlides++,
          1 === this.numSlides && t.addClass("current"));
      }),
      (t.prototype.attach = function (t) {
        t.append(this.$slider);
      }),
      (t.prototype.move = function (t) {
        var e = this,
          n =
            (0 === t && e.trigger("first-slide"),
            t + 1 === e.numSlides && e.trigger("last-slide"),
            e.trigger("move"),
            e.$slides[this.currentIndex]),
          r =
            (H5P.Transition.onTransitionEnd(this.$slider, function () {
              (n.removeClass("current"), e.trigger("moved"));
            }),
            this.$slides[t].addClass("current"),
            "translateX(" + 100 * -t + "%)");
        (this.$slider.css({
          "-webkit-transform": r,
          "-moz-transform": r,
          "-ms-transform": r,
          transform: r,
        }),
          (this.currentIndex = t));
      }),
      (t.prototype.remove = function () {
        this.$slider.remove();
      }),
      (t.prototype.next = function () {
        this.currentIndex + 1 >= this.numSlides ||
          this.move(this.currentIndex + 1);
      }),
      (t.prototype.previous = function () {
        this.move(this.currentIndex - 1);
      }),
      (t.prototype.first = function () {
        this.move(0);
      }),
      (t.prototype.last = function () {
        this.move(this.numSlides - 1);
      }),
      t
    );
  })(H5P.jQuery)),
  ((H5P = H5P || {}).JoubelScoreBar = (function (a) {
    var s = 0;
    return function (t, e, n, r) {
      function i(t) {
        return e ? e.replace(":num", t).replace(":total", o.maxScore) : "";
      }
      var o = this;
      ((o.maxScore = t),
        (o.score = 0),
        s++,
        (o.STAR_MARKUP =
          '<svg tabindex="-1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 63.77 53.87" aria-hidden="true" focusable="false"><title>star</title><filter tabindex="-1" id="h5p-joubelui-score-bar-star-inner-shadow-' +
          s +
          '" x0="-50%" y0="-50%" width="200%" height="200%"><feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blur"></feGaussianBlur><feOffset dy="2" dx="4"></feOffset><feComposite in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowDiff"></feComposite><feFlood flood-color="#ffe95c" flood-opacity="1"></feFlood><feComposite in2="shadowDiff" operator="in"></feComposite><feComposite in2="SourceGraphic" operator="over" result="firstfilter"></feComposite><feGaussianBlur in="firstfilter" stdDeviation="3" result="blur2"></feGaussianBlur><feOffset dy="-2" dx="-4"></feOffset><feComposite in2="firstfilter" operator="arithmetic" k2="-1" k3="1" result="shadowDiff"></feComposite><feFlood flood-color="#ffe95c" flood-opacity="1"></feFlood><feComposite in2="shadowDiff" operator="in"></feComposite><feComposite in2="firstfilter" operator="over"></feComposite></filter><path tabindex="-1" class="h5p-joubelui-score-bar-star-shadow" d="M35.08,43.41V9.16H20.91v0L9.51,10.85,9,10.93C2.8,12.18,0,17,0,21.25a11.22,11.22,0,0,0,3,7.48l8.73,8.53-1.07,6.16Z"/><g tabindex="-1"><path tabindex="-1" class="h5p-joubelui-score-bar-star-border" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/><path tabindex="-1" class="h5p-joubelui-score-bar-star-fill" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/><path tabindex="-1" filter="url(#h5p-joubelui-score-bar-star-inner-shadow-' +
          s +
          ')" class="h5p-joubelui-score-bar-star-fill-full-score" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/></g></svg>'),
        (o.appendTo = function (t) {
          o.$scoreBar.appendTo(t);
        }),
        (o.setScore = function (t) {
          t !== o.score &&
            ((o.score = t > o.maxScore ? o.maxScore : t), o.updateVisuals());
        }),
        (o.incrementScore = function (t) {
          o.setScore(o.score + (t || 1));
        }),
        (o.setMaxScore = function (t) {
          o.maxScore = t;
        }),
        (o.updateVisuals = function () {
          (o.$progress.html(i(o.score)),
            o.$scoreCounter.text(o.score),
            o.$maxScore.text(o.maxScore),
            setTimeout(function () {
              (o.$progress.css({ width: (o.score / o.maxScore) * 100 + "%" }),
                H5P.Transition.onTransitionEnd(
                  o.$progress,
                  function () {
                    (o.$scoreBar.toggleClass(
                      "h5p-joubelui-score-bar-full-score",
                      o.score === o.maxScore,
                    ),
                      o.$scoreBar.toggleClass(
                        "h5p-joubelui-score-bar-animation-active",
                        o.score === o.maxScore,
                      ),
                      o.$scoreBar.one("animationend", function () {
                        o.$scoreBar.removeClass(
                          "h5p-joubelui-score-bar-animation-active",
                        );
                      }));
                  },
                  600,
                ));
            }, 300));
        }),
        (o.reset = function () {
          o.$scoreBar.removeClass("h5p-joubelui-score-bar-full-score");
        }),
        (o.$scoreBar = a("<div>", { class: "h5p-joubelui-score-bar" })),
        (t = a("<div>", {
          class: "h5p-joubelui-score-bar-visuals",
          appendTo: o.$scoreBar,
        })),
        (o.$progressWrapper = a("<div>", {
          class: "h5p-joubelui-score-bar-progress-wrapper",
          appendTo: t,
        })),
        (o.$progress = a("<div>", {
          class: "h5p-joubelui-score-bar-progress",
          html: i(o.score),
          appendTo: o.$progressWrapper,
        })),
        a("<div>", {
          class: "h5p-joubelui-score-bar-star",
          html: o.STAR_MARKUP,
        }).appendTo(t),
        (t = a("<div>", {
          class: "h5p-joubelui-score-numeric",
          appendTo: o.$scoreBar,
          "aria-hidden": !0,
        })),
        (o.$scoreCounter = a("<span>", {
          class: "h5p-joubelui-score-number h5p-joubelui-score-number-counter",
          text: 0,
          appendTo: t,
        })),
        a("<span>", {
          class: "h5p-joubelui-score-number-separator",
          text: "/",
          appendTo: t,
        }),
        (o.$maxScore = a("<span>", {
          class: "h5p-joubelui-score-number h5p-joubelui-score-max",
          text: o.maxScore,
          appendTo: t,
        })),
        n &&
          (H5P.JoubelUI.createTip(n, {
            tipLabel: r || n,
            helpIcon: !0,
          }).appendTo(o.$scoreBar),
          o.$scoreBar.addClass("h5p-score-bar-has-help")));
    };
  })(H5P.jQuery)),
  ((H5P = H5P || {}).JoubelProgressbar = (function (n) {
    function t(t, e) {
      H5P.EventDispatcher.call(this);
      ((this.options = n.extend({ progressText: "Slide :num of :total" }, e)),
        (this.currentStep = 0),
        (this.steps = t),
        (this.$progressbar = n("<div>", { class: "h5p-joubelui-progressbar" })),
        (this.$background = n("<div>", {
          class: "h5p-joubelui-progressbar-background",
        }).appendTo(this.$progressbar)));
    }
    return (
      (((t.prototype = Object.create(
        H5P.EventDispatcher.prototype,
      )).constructor = t).prototype.updateAria = function () {
        var t;
        this.options.disableAria ||
          (this.$currentStatus ||
            (this.$currentStatus = n("<div>", {
              class: "h5p-joubelui-progressbar-slide-status-text",
              "aria-live": "assertive",
            }).appendTo(this.$progressbar)),
          (t = this.options.progressText
            .replace(":num", this.currentStep)
            .replace(":total", this.steps)),
          this.$currentStatus.html(t));
      }),
      (t.prototype.appendTo = function (t) {
        this.$progressbar.appendTo(t);
      }),
      (t.prototype.setProgress = function (t) {
        t > this.steps ||
          t < 0 ||
          ((this.currentStep = t),
          this.$background.css({
            width: (this.currentStep / this.steps) * 100 + "%",
          }),
          this.updateAria());
      }),
      (t.prototype.next = function () {
        this.setProgress(this.currentStep + 1);
      }),
      (t.prototype.reset = function () {
        this.setProgress(0);
      }),
      (t.prototype.isLastStep = function () {
        return this.steps === this.currentStep;
      }),
      t
    );
  })(H5P.jQuery)),
  ((H5P = H5P || {}).JoubelUI = (function (n) {
    function t() {}
    var e;
    return (
      (t.createTip = function (t, e) {
        return new H5P.JoubelTip(t, e);
      }),
      (t.createMessageDialog = function (t, e) {
        return new H5P.JoubelMessageDialog(t, e);
      }),
      (t.createHelpTextDialog = function (t, e, n) {
        return new H5P.JoubelHelpTextDialog(t, e, n);
      }),
      (t.createProgressCircle = function (t, e, n, r) {
        return new H5P.JoubelProgressCircle(t, e, n, r);
      }),
      (t.createThrobber = function () {
        return new H5P.JoubelThrobber();
      }),
      (t.createSimpleRoundedButton = function (t) {
        return new H5P.SimpleRoundedButton(t);
      }),
      (t.createSlider = function (t) {
        return new H5P.JoubelSlider(t);
      }),
      (t.createScoreBar = function (t, e, n, r) {
        return new H5P.JoubelScoreBar(t, e, n, r);
      }),
      (t.createProgressbar = function (t, e) {
        return new H5P.JoubelProgressbar(t, e);
      }),
      (t.createButton = function (t) {
        var e = "button";
        return (
          t.href ? (e = "a") : (t.type = "button"),
          t.class
            ? (t.class += " h5p-joubelui-button")
            : (t.class = "h5p-joubelui-button"),
          n("<" + e + "/>", t)
        );
      }),
      H5P.isFramed &&
        !H5P.hasiOSiframeScrollFix &&
        /iPad|iPhone|iPod/.test(navigator.userAgent) &&
        ((H5P.hasiOSiframeScrollFix = !0),
        (e = HTMLElement.prototype.focus),
        (HTMLElement.prototype.focus = function () {
          (this instanceof HTMLAnchorElement ||
            this instanceof HTMLInputElement ||
            this instanceof HTMLSelectElement ||
            this instanceof HTMLTextAreaElement ||
            this instanceof HTMLButtonElement ||
            this instanceof HTMLIFrameElement ||
            this instanceof HTMLAreaElement) &&
            !this.getAttribute("role") &&
            e.call(this);
        })),
      t
    );
  })(H5P.jQuery)),
  /*!@license H5P.Question-1.5/scripts/question.js by Joubel licensed under MIT*/ (H5P.Tooltip =
    H5P.Tooltip || function () {}),
  (H5P.Question = (function (F, t, $) {
    function e(z) {
      function f(t, e) {
        ((w[t] = {}),
          (t = w[t].$element = F("<div/>", { class: "h5p-question-" + t })),
          e && t[e instanceof F ? "append" : "html"](e));
      }
      function d(t, e) {
        e instanceof F
          ? w[t].$element.html("").append(e)
          : w[t].$element.html(e);
      }
      function p() {
        if (void 0 !== w.buttons) {
          clearTimeout(u);
          for (var t = 0; t < P.length; t++)
            (M(h, P[t].id, l, w.buttons.$element), (l[P[t].id].isVisible = !0));
          for (var e = 0, n = !(P = []), r = 0; r < c.length; r++) {
            var i = l[c[r].id];
            (i.isVisible && (e += 1), i.$element.is(":focus") && (n = !0));
          }
          var o = 150;
          (w.feedback &&
            w.feedback.$element.hasClass("h5p-question-popup") &&
            (o = 0),
            e === w.buttons.$element.children().length
              ? (j(w.buttons), I(n))
              : (I(n),
                w.buttons.$element.is(":empty") ||
                  (N(w.buttons),
                  E(w.buttons.$element),
                  (u = setTimeout(function () {
                    x.trigger("resize");
                  }, o))),
                _()),
            (s = void 0));
        }
      }
      function a() {
        var t = w.image.$element;
        (clearTimeout(n),
          t.addClass("animatable"),
          (n =
            ((S = S
              ? (F(this).attr("aria-expanded", !0),
                t.addClass("h5p-question-image-fill-width"),
                !1)
              : (F(this).attr("aria-expanded", !1),
                t.removeClass("h5p-question-image-fill-width"),
                !0)),
            setTimeout(function () {
              x.trigger("resize");
            }, 600))));
      }
      function r(t, e, n) {
        for (var r = 0; r < n.length; r++) if (n[r][e] === t) return r;
        return -1;
      }
      var g,
        m,
        v,
        y,
        s,
        u,
        e,
        n,
        b,
        i,
        o,
        x = this,
        w =
          (t.call(x),
          (x.order = [
            "video",
            "image",
            "audio",
            "introduction",
            "content",
            "explanation",
            "feedback",
            "scorebar",
            "buttons",
            "read",
          ]),
          {}),
        l = {},
        h = [],
        c = [],
        P = [],
        H = !1,
        C = { disableFeedback: !1, disableReadSpeaker: !1 },
        S = !0,
        k = !1,
        T = !1,
        M = function (t, e, n, r) {
          for (var i = 0; i < t.length; i++)
            if (t[i] === e) {
              for (
                ;
                0 < i && (void 0 === n[t[i - 1]] || !n[t[i - 1]].isVisible);
              )
                i--;
              (0 === i
                ? n[e].$element.prependTo(r)
                : n[e].$element.insertAfter(n[t[i - 1]].$element),
                (n[e].isVisible = !0));
              break;
            }
        },
        A = function (t, e) {
          var n,
            r,
            i,
            o,
            a = t.parent(),
            s = t.siblings(".h5p-question-feedback-tail"),
            u = t.outerWidth(),
            c = E(t),
            l = !1,
            h = a.height() / 2 - c / 2,
            f = a.width() / 2 - u / 2,
            d = 0,
            p = 0,
            g = 0;
          ((null == e ||
            ((n = e[0].offsetTop < 15),
            (r = e[0].offsetTop + e.height() > a.height() - 15),
            (i = e[0].offsetLeft < 15),
            (o = e[0].offsetLeft + e.width() > a.width() - 15),
            (f = e[0].offsetLeft - u / 2 + e.width() / 2),
            (h = e[0].offsetTop - c - 15),
            (d = f + u / 2 - s.width() / 2),
            (p = h + c - s.height() / 2),
            (g = 225),
            c + 15 > e[0].offsetTop &&
              ((p = (h = e[0].offsetTop + e.height() + 15) - s.height() / 2),
              (g = 45)),
            (f = f < 0 ? 0 : f) + u > a.width() && (f = a.width() - u),
            n && (i || o)
              ? ((f = e[0].offsetLeft + (i ? e.width() : -u)),
                (h = e[0].offsetTop + e.height()),
                (l = !0))
              : r && (i || o)
                ? ((f = e[0].offsetLeft + (i ? e.width() : -u)),
                  (h = e[0].offsetTop - c),
                  (l = !0))
                : n ||
                  r ||
                  ((i || o) &&
                    ((h = e[0].offsetTop - c / 2 + e.width() / 2),
                    (f = e[0].offsetLeft + (i ? e.width() + 15 : -u - 15)) < 0
                      ? (l = !(f = 0))
                      : ((d = f + (i ? -s.width() / 2 : u - s.width() / 2)),
                        (p = h + c / 2 - s.height() / 2),
                        (g = i ? 315 : 135)))),
            h + c > a.height() &&
              ((h = a.height() - c),
              c > a.height() - (e[0].offsetTop + e.height() + 15)))) &&
            (l = !0),
            t.css({ top: (h = h < 0 ? 0 : h), left: f }),
            s.css({ top: p, left: d }),
            l
              ? s.hide()
              : s
                  .css({ left: d, top: p, transform: "rotate(" + g + "deg)" })
                  .show());
        },
        E = function (t) {
          var e, n, r;
          if (t.is(":visible"))
            return (
              (e = t.hasClass("h5p-question-popup")),
              (e = t
                .clone()
                .css({
                  position: "absolute",
                  "max-height": "none",
                  width: e ? "" : "100%",
                })
                .appendTo(t.parent())),
              (r =
                parseFloat(t.css("margin-left")) +
                parseFloat(t.css("margin-right"))),
              (n = e.css("width") ? e.css("width") : "100%"),
              e.css("width", "calc(" + n + " - " + r + "px)"),
              (n = Math.round(e.get(0).getBoundingClientRect().height)),
              (r = parseFloat(t.css("fontSize"))),
              t.css("max-height", n / r + "em"),
              e.remove(),
              0 < n &&
                w.buttons &&
                w.buttons.$element === t &&
                (N(w.buttons), setTimeout(_, 150)),
              n
            );
          t.css("max-height", "none");
        },
        I = function (t) {
          for (var e = 0; e < c.length; e++) D(c[e].id);
          ((c = []), t && x.focusButton());
        },
        D = function (t) {
          (l[t].$element.detach(), (l[t].isVisible = !1));
        },
        L = function (t, e, n) {
          if (
            ((e = e || 0),
            (n = n || 5),
            t && t instanceof F && document !== t.get(0) && !(n <= e))
          )
            return "auto" === t.css("overflow-y") ? t : L(t.parent(), e + 1, n);
        },
        _ = function () {
          var t;
          l &&
            w.buttons &&
            ((t = function () {
              if (w.buttons.$element.is(":visible")) {
                var t,
                  e = { max: 0, min: 0, current: 0 };
                for (t in l) {
                  var n = l[t];
                  n.isVisible &&
                    (B(l[t]),
                    (e.max += n.width.max),
                    (e.min += n.width.min),
                    (e.current += n.isTruncated ? n.width.min : n.width.max));
                }
                function r(t) {
                  return e.max < t
                    ? (e.max !== e.current && q(e.current, t), !0)
                    : e.min < t && ((t < e.current ? O : q)(e.current, t), !0);
                }
                (R(!1),
                  r(Math.floor(w.buttons.$element.width()) - 1) ||
                    (R(!0), r(Math.floor(w.buttons.$element.width()) - 1)));
              }
            }),
            w.buttons.$element.is(":visible")
              ? t()
              : (e && clearTimeout(e),
                (e = setTimeout(function () {
                  ((e = void 0), t());
                }, 0))));
        },
        R = function (t) {
          w.scorebar &&
          w.scorebar.$element &&
          w.scorebar.$element.hasClass("h5p-question-visible")
            ? (w.buttons.$element.addClass("has-scorebar"),
              w.buttons.$element.toggleClass("wrap", t),
              w.scorebar.$element.toggleClass("full-width", t))
            : w.buttons.$element.removeClass("has-scorebar");
        },
        O = function (t, e) {
          for (var n = h.length - 1; 0 <= n; n--) {
            var r = h[n],
              r = l[r];
            if (!r.isTruncated && r.isVisible) {
              var i = r.$element,
                o = ((t -= r.width.max - r.width.min), i.text());
              if (
                (i.attr("data-tooltip", o),
                r.ariaLabel || i.attr("aria-label", o),
                i.html("").addClass("truncated"),
                (r.isTruncated = !0),
                t <= e)
              )
                return;
            }
          }
        },
        q = function (t, e) {
          for (var n = 0; n < h.length; n++) {
            var r = h[n],
              r = l[r];
            if (r.isTruncated && r.isVisible) {
              if (e < (t += r.width.max - r.width.min + 1)) return;
              (r.$element.html(r.text),
                r.$element.removeAttr("data-tooltip"),
                r.ariaLabel || r.$element.removeAttr("aria-label"),
                r.$element.removeClass("truncated"),
                (r.isTruncated = !1));
            }
          }
        },
        N = function (t) {
          (t.$element.addClass("h5p-question-visible"), (t.isVisible = !0));
        },
        j = function (t) {
          (t.$element.css("max-height", ""),
            (t.isVisible = !1),
            setTimeout(function () {
              t.isVisible || t.$element.removeClass("h5p-question-visible");
            }, 150));
        },
        B =
          ((x.setBehaviour = function (t) {
            F.extend(C, t);
          }),
          (x.setVideo = function (t) {
            ((w.video = {
              $element: F("<div/>", { class: "h5p-question-video" }),
            }),
              T && t.params.playback && (t.params.playback.autoplay = !1),
              t.params.visuals || (t.params.visuals = {}),
              (t.params.visuals.fit = !1),
              (w.video.instance = H5P.newRunnable(
                t,
                x.contentId,
                w.video.$element,
                !0,
              )));
            var e = !1;
            return (
              w.video.instance.on("resize", function () {
                ((e = !0), x.trigger("resize"), (e = !1));
              }),
              x.on("resize", function () {
                e || w.video.instance.trigger("resize");
              }),
              x
            );
          }),
          (x.setAudio = function (t) {
            return (
              (t.params = t.params || {}),
              (w.audio = {
                $element: F("<div/>", { class: "h5p-question-audio" }),
              }),
              T
                ? (t.params.autoplay = !1)
                : "transparent" === t.params.playerMode &&
                  (t.params.autoplay = !0),
              (w.audio.instance = H5P.newRunnable(
                t,
                x.contentId,
                w.audio.$element,
                !0,
              )),
              w.audio.instance.audio &&
                (w.audio.instance.audio.style.height = ""),
              x
            );
          }),
          (x.pause = function () {
            (w.video && w.video.isVisible && w.video.instance.pause(),
              w.audio && w.audio.isVisible && w.audio.instance.pause());
          }),
          (x.play = function () {
            (w.video && w.video.isVisible && w.video.instance.play(),
              w.audio && w.audio.isVisible && w.audio.instance.play());
          }),
          (x.disableAutoPlay = function () {
            T = !0;
          }),
          (x.massageAttributeOutput = function (t) {
            var t = new DOMParser().parseFromString(t, "text/html"),
              e = document.createElement("div");
            return (
              (e.innerHTML = t.documentElement.textContent),
              e.textContent || e.innerText || ""
            );
          }),
          (x.setImage = function (t, e) {
            ((e = e || {}),
              (w.image = {}),
              (w.image.$element = F("<div/>", {
                class: "h5p-question-image h5p-question-image-fill-width",
              })));
            var n = F("<div/>", {
                class: "h5p-question-image-wrap",
                appendTo: w.image.$element,
              }),
              r = F("<img/>", {
                src: H5P.getPath(t, x.contentId),
                alt: void 0 === e.alt ? "" : x.massageAttributeOutput(e.alt),
                title:
                  void 0 === e.title ? "" : x.massageAttributeOutput(e.title),
                on: {
                  load: function () {
                    (x.trigger("imageLoaded", this), x.trigger("resize"));
                  },
                },
                appendTo: n,
              });
            if (!e.disableImageZooming) {
              const o = () => {
                var t =
                  "true" === n.attr("aria-expanded")
                    ? e.minimizeImage
                    : e.expandImage;
                n.attr("aria-label", t + " " + e.alt);
              };
              var i = !1;
              return (
                x.on("resize", function () {
                  !i &&
                    r.is(":visible") &&
                    (n
                      .addClass("h5p-question-image-scalable")
                      .attr("aria-expanded", !1)
                      .attr("role", "button")
                      .attr("tabIndex", "0")
                      .on("click", function (t) {
                        1 === t.which && (a.apply(this), o());
                      })
                      .on("keypress", function (t) {
                        32 === t.which &&
                          (t.preventDefault(), a.apply(this), o());
                      }),
                    o(),
                    w.image.$element.removeClass(
                      "h5p-question-image-fill-width",
                    ),
                    (i = !0));
                }),
                x
              );
            }
            (r.css("maxHeight", "none"),
              (t = function () {
                var t = w.image.$element.get(0).getBoundingClientRect().width,
                  e =
                    (n.css({
                      "-webkit-transition": "none",
                      transition: "none",
                    }),
                    2 *
                      (n.get(0).getBoundingClientRect().left -
                        w.image.$element.get(0).getBoundingClientRect().left));
                (r.get(0).naturalWidth >= t - e
                  ? w.image.$element.addClass("h5p-question-image-fill-width")
                  : w.image.$element.removeClass(
                      "h5p-question-image-fill-width",
                    ),
                  n.css({ "-webkit-transition": "", transition: "" }));
              }),
              r.is(":visible") ? t() : r.on("load", t));
          }),
          (x.setIntroduction = function (t) {
            return (f("introduction", t), x);
          }),
          (x.setContent = function (t, e) {
            return (
              f("content", t),
              e && e.class && w.content.$element.addClass(e.class),
              x
            );
          }),
          (x.read = function (t) {
            i &&
              (o ? (o += ("." === o.substr(-1, 1) ? " " : ". ") + t) : (o = t),
              i.html(o),
              setTimeout(function () {
                ((o = null), i.html(""));
              }, 100));
          }),
          (x.readFeedback = function () {
            var t;
            !C.disableReadSpeaker &&
              y &&
              w.feedback &&
              w.feedback.$element &&
              (t = F(
                ".h5p-question-feedback-content-text",
                w.feedback.$element,
              )) &&
              t.html() &&
              t.html().length &&
              x.read(t.html());
          }),
          (x.removeFeedback = function () {
            return (
              clearTimeout(b),
              w.feedback &&
                y &&
                ((y = !1),
                j(w.scorebar),
                j(w.feedback),
                (k = !0),
                (b = setTimeout(function () {
                  (y ||
                    (w.feedback.$element.children().detach(),
                    w.scorebar.$element.children().detach(),
                    x.trigger("resize")),
                    (k = !1),
                    v.setScore(0));
                }, 150)),
                g) &&
                g.find(".h5p-question-feedback-tail").remove(),
              x
            );
          }),
          (x.setFeedback = function (t, e, n, r, i, o, a) {
            var s, u, c, l, h;
            return (
              C.disableFeedback ||
                (p(),
                (m = null != o && null != o.click ? o.click : null),
                clearTimeout(b),
                (s = F("<div>", { class: "h5p-question-feedback-container" })),
                (l = F("<div>", {
                  class: "h5p-question-feedback-content",
                }).appendTo(s)),
                F("<div>", {
                  class: "h5p-question-feedback-content-text",
                  html: t,
                }).appendTo(l),
                (u = F("<div>", { class: "h5p-question-scorebar-container" })),
                (v = void 0 === v ? $.createScoreBar(n, r, i, a) : v).appendTo(
                  u,
                ),
                l.toggleClass("has-content", void 0 !== t && 0 < t.length),
                !C.disableReadSpeaker &&
                  r &&
                  x.read(
                    r.replace(":num", e).replace(":total", n) +
                      ". " +
                      (t || ""),
                  ),
                (y = !0),
                w.feedback
                  ? (d("feedback", s), d("scorebar", u))
                  : (f("feedback", s),
                    f("scorebar", u),
                    H &&
                      g &&
                      (M(x.order, "feedback", w, g),
                      M(x.order, "scorebar", w, g))),
                N(w.feedback),
                N(w.scorebar),
                _(),
                null != o && 1 == o.showAsPopup
                  ? ((i = o.closeText),
                    (c = w.feedback.$element),
                    (a = w.content.$element),
                    (l = null != m ? m.$element : null),
                    c.appendTo(a).addClass("h5p-question-popup"),
                    w.scorebar && w.scorebar.$element.appendTo(c),
                    a.addClass("h5p-has-question-popup"),
                    (h = F("<div/>", { class: "h5p-question-feedback-tail" })
                      .hide()
                      .appendTo(a)),
                    (a = F("<div/>", {
                      class: "h5p-question-feedback-close",
                      tabindex: 0,
                      title: i,
                      on: {
                        click: function (t) {
                          (c.remove(), h.remove(), t.preventDefault());
                        },
                        keydown: function (t) {
                          switch (t.which) {
                            case 13:
                            case 32:
                              (c.remove(), h.remove(), t.preventDefault());
                          }
                        },
                      },
                    })
                      .hide()
                      .appendTo(c)),
                    null != l &&
                      (l.hasClass("correct")
                        ? (c.addClass("h5p-question-feedback-correct"),
                          a.show(),
                          w.buttons.$element.hide())
                        : w.buttons.$element.appendTo(w.feedback.$element)),
                    A(c, l),
                    v.setScore(e))
                  : (b = setTimeout(function () {
                      var t;
                      (E(w.feedback.$element),
                        E(w.scorebar.$element),
                        (k = !0),
                        !g ||
                          (g.hasClass("h5p-standalone") && !H5P.isFullscreen) ||
                          ((t = L(g)) &&
                            t.animate({ scrollTop: g.css("height") }, "slow")),
                        (b = setTimeout(function () {
                          ((k = !1), x.trigger("resize"), v.setScore(e));
                        }, 150)));
                    }, 0))),
              x
            );
          }),
          (x.updateFeedbackContent = function (t, e) {
            return (
              w.feedback &&
                w.feedback.$element &&
                (e &&
                  (t =
                    F(
                      ".h5p-question-feedback-content",
                      w.feedback.$element,
                    ).html() +
                    " " +
                    t),
                F(".h5p-question-feedback-content", w.feedback.$element)
                  .html(t)
                  .addClass("has-content"),
                E(w.feedback.$element),
                setTimeout(x.trigger.bind(x, "resize"), 150)),
              x
            );
          }),
          (x.setExplanation = function (t, e) {
            return (
              t
                ? ((e = new H5P.Question.Explainer(e, t)),
                  w.explanation
                    ? d("explanation", e.getElement())
                    : (f("explanation", e.getElement()),
                      H && g && M(x.order, "explanation", w, g)))
                : w.explanation && w.explanation.$element.children().detach(),
              x
            );
          }),
          (x.hasButton = function (t) {
            return void 0 !== l[t];
          }),
          (x.addButton = function (t, e, n, r, i, o) {
            var a, s, u, c;
            return (
              !l[t] &&
                (void 0 === w.buttons &&
                  (f("buttons"), H) &&
                  M(x.order, "buttons", w, g),
                ((o = o || {}).confirmationDialog = o.confirmationDialog || {}),
                (i = i || {}),
                (a = x.addConfirmationDialogToButton(o.confirmationDialog, n)),
                o.contentData &&
                  o.contentData.standalone &&
                  (o.contentData.isScoringEnabled ||
                    o.contentData.isReportingEnabled) &&
                  o.textIfSubmitting &&
                  (e = o.textIfSubmitting),
                (l[t] = {
                  isTruncated: !(s = function () {
                    o.confirmationDialog.enable && a
                      ? (o.confirmationDialog.$parentElement ||
                          w.popups.$element.removeClass("hidden"),
                        a.show(c.position().top))
                      : n();
                  }),
                  text: e,
                  isVisible: !1,
                  ariaLabel: i["aria-label"],
                }),
                (u = void 0 !== i.href),
                (c = l[t].$element =
                  $.createButton(
                    F.extend(
                      {
                        class: "h5p-question-" + t,
                        html: e,
                        on: {
                          click: function (t) {
                            (s(), u && t.preventDefault());
                          },
                        },
                      },
                      i,
                    ),
                  )),
                h.push(t),
                H5P.Tooltip(c.get(0), { tooltipSource: "data-tooltip" }),
                u &&
                  c.on("keypress", function (t) {
                    32 === t.which && (s(), t.preventDefault());
                  }),
                void 0 === r || r) &&
                (c.appendTo(w.buttons.$element),
                (l[t].isVisible = !0),
                N(w.buttons)),
              x
            );
          }),
          function (t) {
            var e = t.$element,
              e = e
                .clone()
                .css({
                  position: "absolute",
                  "white-space": "nowrap",
                  "max-width": "none",
                })
                .removeClass("truncated")
                .html(t.text)
                .appendTo(e.parent());
            ((t.width = {
              max: Math.ceil(
                e.outerWidth() +
                  parseFloat(e.css("margin-left")) +
                  parseFloat(e.css("margin-right")),
              ),
            }),
              e.html("").addClass("truncated"),
              (t.width.min = Math.ceil(
                e.outerWidth() +
                  parseFloat(e.css("margin-left")) +
                  parseFloat(e.css("margin-right")),
              )),
              e.remove());
          });
      ((x.addConfirmationDialogToButton = function (e, t) {
        if ((e = e || {}).enable) {
          var n = new H5P.ConfirmationDialog({
            instance: e.instance,
            headerText: e.l10n.header,
            dialogText: e.l10n.body,
            cancelText: e.l10n.cancelLabel,
            confirmText: e.l10n.confirmLabel,
          });
          if (e.$parentElement) {
            var r = e.$parentElement.get(0);
            let t;
            (r.classList.contains("h5p-content") &&
              (t = r.querySelector(".h5p-container")),
              n.appendTo(t ?? r));
          } else
            (void 0 === w.popups &&
              (f("popups"),
              H && M(x.order, "popups", w, g),
              w.popups.$element.addClass("hidden"),
              x.order.push("popups")),
              n.appendTo(w.popups.$element.get(0)));
          return (
            n.on("confirmed", function () {
              (e.$parentElement || w.popups.$element.addClass("hidden"),
                t(),
                x.trigger("confirmed"));
            }),
            n.on("canceled", function () {
              (e.$parentElement || w.popups.$element.addClass("hidden"),
                x.trigger("canceled"));
            }),
            n
          );
        }
      }),
        (x.showButton = function (t, e) {
          var n = -1 !== r(t, "id", c);
          return (
            void 0 === l[t] ||
              (!0 === l[t].isVisible && !n) ||
              ((e = e || 0),
              -1 !== (n = r(t, "id", P))
                ? P[n].priority < e && (P[n].priority = e)
                : (-1 !== (n = r(t, "id", c))
                    ? c[n].priority <= e &&
                      (c.splice(n, 1), P.push({ id: t, priority: e }))
                    : l[t].$element.is(":visible") ||
                      P.push({ id: t, priority: e }),
                  (s = s || setTimeout(p, 0)))),
            x
          );
        }),
        (x.hideButton = function (t, e) {
          var n = -1 !== r(t, "id", P);
          return (
            void 0 === l[t] ||
              (!1 === l[t].isVisible && !n) ||
              ((e = e || 0),
              -1 !== (n = r(t, "id", c))
                ? c[n].priority < e && (c[n].priority = e)
                : (-1 !== (n = r(t, "id", P))
                    ? P[n].priority <= e &&
                      (P.splice(n, 1), c.push({ id: t, priority: e }))
                    : l[t].$element.is(":visible")
                      ? c.push({ id: t, priority: e })
                      : D(t),
                  (s = s || setTimeout(p, 0)))),
            x
          );
        }),
        (x.focusButton = function (t) {
          if (void 0 === t)
            for (var e = 0; e < h.length; e++) {
              var n = l[h[e]];
              if (n && n.isVisible) {
                n.$element.focus();
                break;
              }
            }
          else l[t] && l[t].$element.is(":visible") && l[t].$element.focus();
          return x;
        }),
        (x.toggleReadSpeaker = function (t) {
          C.disableReadSpeaker = t || !C.disableReadSpeaker;
        }),
        (x.insertSectionAtElement = function (t, e) {
          return (
            void 0 === w[t] && f(t),
            (w[t].parent = e),
            H || M([t], t, w, e),
            x
          );
        }),
        (x.attach = function (t) {
          (x.isRoot() && x.setActivityStarted(),
            void 0 === g &&
              (void 0 !== x.registerDomElements &&
                (x.registerDomElements instanceof Function ||
                  "function" == typeof x.registerDomElements) &&
                x.registerDomElements(),
              (i = F("<div/>", {
                "aria-live": "polite",
                class: "h5p-hidden-read",
              })),
              f("read", i),
              x.trigger("registerDomElements")),
            (g = t).html("").addClass("h5p-question h5p-" + z));
          for (var e = [], n = 0; n < x.order.length; n++) {
            var r = x.order[n];
            w[r] &&
              (w[r].parent
                ? w[r].$element.appendTo(w[r].parent)
                : e.push(w[r].$element),
              (w[r].isVisible = !0));
          }
          return (
            t.append(e),
            x.trigger(
              "domChanged",
              {
                $target: t,
                library: x.libraryInfo.machineName,
                contentId: x.contentId,
                key: "newLibrary",
              },
              { bubbles: !0, external: !0 },
            ),
            (H = !0),
            x
          );
        }),
        (x.detachSections = function () {
          for (var t in ((H = !1), w)) w[t].$element.detach();
          return x;
        }),
        x.on("resize", function () {
          !k && w.feedback && y && E(w.feedback.$element);
          var t = w.feedback,
            e = m;
          (null != t &&
            null != t.$element &&
            null != e &&
            null != e.$element &&
            setTimeout(function () {
              A(t.$element, e.$element);
            }, 10),
            _());
        }));
    }
    return (
      (((e.prototype = Object.create(t.prototype)).constructor =
        e).determineOverallFeedback = function (t, e) {
        e = Math.floor(100 * e);
        for (var n = 0; n < t.length; n++) {
          var r = t[n],
            i = void 0 !== r.feedback && 0 !== r.feedback.trim().length;
          if (r.from <= e && r.to >= e && i) return r.feedback;
        }
        return "";
      }),
      e
    );
  })(H5P.jQuery, H5P.EventDispatcher, H5P.JoubelUI)),
  /*!@license H5P.Question-1.5/scripts/explainer.js by Joubel licensed under MIT*/ (H5P.Question.Explainer =
    (function (u) {
      return function (t, e) {
        var n = this;
        ((n.$explanation = u("<div>", {
          class: "h5p-question-explanation-container",
        })),
          u("<div>", {
            class: "h5p-question-explanation-title",
            role: "heading",
            html: t,
            appendTo: n.$explanation,
          }));
        for (
          var r = u("<ul>", {
              class: "h5p-question-explanation-list",
              appendTo: n.$explanation,
            }),
            i = 0;
          i < e.length;
          i++
        ) {
          var o = e[i],
            a = u("<li>", {
              class: "h5p-question-explanation-item",
              appendTo: r,
            }),
            s = u("<div>", { class: "h5p-question-explanation-status" });
          (o.correct &&
            u("<span>", {
              class: "h5p-question-explanation-correct",
              html: o.correct,
              appendTo: s,
            }),
            o.wrong &&
              u("<span>", {
                class: "h5p-question-explanation-wrong",
                html: o.wrong,
                appendTo: s,
              }),
            s.appendTo(a),
            o.text &&
              u("<div>", {
                class: "h5p-question-explanation-text",
                html: o.text,
                appendTo: a,
              }));
        }
        n.getElement = function () {
          return n.$explanation;
        };
      };
    })(H5P.jQuery)),
  (H5P.Question.ScorePoints = function () {
    var n,
      r = [],
      i =
        ((this.getElement = function (t) {
          var e = document.createElement("div");
          return (
            e.classList.add(
              t ? "h5p-question-plus-one" : "h5p-question-minus-one",
            ),
            e.classList.add("h5p-question-hidden-one"),
            r.push(e),
            n && clearTimeout(n),
            (n = setTimeout(i, 0)),
            e
          );
        }),
        function () {
          var t = 0,
            e = 150;
          r.length && r.length > Math.ceil(1e3 / e) && (e = 1e3 / r.length);
          for (var n = 0; n < r.length; n++) (setTimeout(o(r[n]), t), (t += e));
        }),
      o = function (t) {
        return function () {
          t.classList.remove("h5p-question-hidden-one");
        };
      };
  }),
  ((H5P = H5P || {}).MultiChoice = function (t, e, n) {
    if (!(this instanceof H5P.MultiChoice)) return new H5P.MultiChoice(t, e, n);
    for (
      var a = this,
        s =
          ((this.contentId = e),
          (this.contentData = n),
          H5P.Question.call(a, "multichoice"),
          H5P.jQuery),
        u = s.extend(
          !0,
          {
            image: null,
            question: "No question text provided",
            answers: [
              {
                tipsAndFeedback: {
                  tip: "",
                  chosenFeedback: "",
                  notChosenFeedback: "",
                },
                text: "Answer 1",
                correct: !0,
              },
            ],
            overallFeedback: [],
            weight: 1,
            userAnswers: [],
            UI: {
              checkAnswerButton: "Check",
              submitAnswerButton: "Submit",
              showSolutionButton: "Show solution",
              tryAgainButton: "Try again",
              scoreBarLabel: "You got :num out of :total points",
              tipAvailable: "Tip available",
              feedbackAvailable: "Feedback available",
              readFeedback: "Read feedback",
              shouldCheck: "Should have been checked",
              shouldNotCheck: "Should not have been checked",
              noInput: "Input is required before viewing the solution",
              a11yCheck:
                "Check the answers. The responses will be marked as correct, incorrect, or unanswered.",
              a11yShowSolution:
                "Show the solution. The task will be marked with its correct solution.",
              a11yRetry:
                "Retry the task. Reset all responses and start the task over again.",
            },
            behaviour: {
              enableRetry: !0,
              enableSolutionsButton: !0,
              enableCheckButton: !0,
              type: "auto",
              singlePoint: !0,
              randomAnswers: !1,
              showSolutionsRequiresInput: !0,
              autoCheck: !1,
              passPercentage: 100,
              showScorePoints: !0,
            },
          },
          t,
        ),
        r = 0,
        i = 0;
      i < u.answers.length;
      i++
    ) {
      var o = u.answers[i];
      ((o.tipsAndFeedback = o.tipsAndFeedback || {}),
        u.answers[i].correct && r++);
    }
    function c(t, e) {
      ((h = s(
        '<div class="h5p-feedback-dialog"><div class="h5p-feedback-inner"><div class="h5p-feedback-text">' +
          e +
          "</div></div></div>",
      )),
        t.find(s(".h5p-feedback-dialog")).length ||
          h.appendTo(t.addClass("h5p-has-feedback")));
    }
    for (
      var l,
        h,
        f,
        d = 0 === r,
        p =
          ("auto" === u.behaviour.type
            ? (u.behaviour.singleAnswer = 1 === r)
            : (u.behaviour.singleAnswer = "single" === u.behaviour.type),
          function () {
            (l.unbind("click", p),
              l.find(".h5p-feedback-button, .h5p-feedback-dialog").remove(),
              l.find(".h5p-has-feedback").removeClass("h5p-has-feedback"),
              h && h.remove());
          }),
        g = 0,
        m = !1,
        v =
          ((a.registerDomElements = function () {
            var t,
              e = u.media;
            e &&
              e.type &&
              e.type.library &&
              ("H5P.Image" === (t = (e = e.type).library.split(" ")[0])
                ? e.params.file &&
                  a.setImage(e.params.file.path, {
                    disableImageZooming: u.media.disableImageZooming || !1,
                    alt: e.params.alt,
                    title: e.params.title,
                    expandImage: e.params.expandImage,
                    minimizeImage: e.params.minimizeImage,
                  })
                : "H5P.Video" === t
                  ? e.params.sources && a.setVideo(e)
                  : "H5P.Audio" === t && e.params.files && a.setAudio(e));
            for (var n = 0; n < u.answers.length; n++)
              u.answers[n].checkboxOrRadioIcon = (function (t, e) {
                t = t
                  ? e
                    ? "&#xe603;"
                    : "&#xe600;"
                  : e
                    ? "&#xe601;"
                    : "&#xe602;";
                return t;
              })(u.behaviour.singleAnswer, -1 < u.userAnswers.indexOf(n));
            (a.setIntroduction(
              '<div id="' + u.labelId + '">' + u.question + "</div>",
            ),
              (l = s("<ul>", {
                class: "h5p-answers",
                role: u.role,
                "aria-labelledby": u.labelId,
              })));
            for (let t = 0; t < u.answers.length; t++) {
              var r = u.answers[t];
              ((r.text = r.text ?? "<div></div>"),
                s("<li>", {
                  class: "h5p-answer",
                  role: r.role,
                  tabindex: r.tabindex,
                  "aria-checked": r.checked,
                  "data-id": t,
                  html:
                    '<div class="h5p-alternative-container"><span class="h5p-alternative-inner">' +
                    r.text +
                    "</span></div>",
                  appendTo: l,
                }));
            }
            a.setContent(l, {
              class: u.behaviour.singleAnswer ? "h5p-radio" : "h5p-check",
            });
            function i(t) {
              if ("true" !== t.attr("aria-disabled")) {
                a.answered = !0;
                var e = parseInt(t.data("id"));
                if (u.behaviour.singleAnswer)
                  ((u.userAnswers = [e]),
                    (g = u.answers[e].correct ? 1 : 0),
                    o
                      .not(t)
                      .removeClass("h5p-selected")
                      .attr("tabindex", "-1")
                      .attr("aria-checked", "false"),
                    t
                      .addClass("h5p-selected")
                      .attr("tabindex", "0")
                      .attr("aria-checked", "true"));
                else {
                  if ("true" === t.attr("aria-checked")) {
                    var n = u.userAnswers.indexOf(e);
                    if (
                      (-1 !== n && u.userAnswers.splice(n, 1),
                      u.behaviour.autoCheck && !u.behaviour.enableRetry)
                    )
                      return;
                    t.removeClass("h5p-selected").attr("aria-checked", "false");
                  } else
                    (u.userAnswers.push(e),
                      t.addClass("h5p-selected").attr("aria-checked", "true"));
                  H();
                }
                (a.triggerXAPI("interacted"),
                  v(t),
                  u.userAnswers.length &&
                    (a.showButton("check-answer"),
                    a.hideButton("try-again"),
                    a.hideButton("show-solution"),
                    u.behaviour.autoCheck) &&
                    (u.behaviour.singleAnswer ||
                      (a.showCheckSolution(!0), g === a.getMaxScore())) &&
                    b());
              }
            }
            var o = s(".h5p-answer", l).each(function (t) {
              var n,
                r = u.answers[t].tipsAndFeedback.tip;
              void 0 !== r &&
                (r = r.trim())
                  .replace(/&nbsp;/g, "")
                  .replace(/<p>/g, "")
                  .replace(/<\/p>/g, "")
                  .trim().length &&
                (s(this).addClass("h5p-has-tip"),
                (t = s("<div/>", {
                  class: "h5p-multichoice-tipwrap",
                  "aria-label": u.UI.tipAvailable + ".",
                })),
                (n = s("<div>", {
                  role: "button",
                  tabindex: 0,
                  title: u.UI.tipsLabel,
                  "aria-label": u.UI.tipsLabel,
                  "aria-expanded": !1,
                  class: "multichoice-tip",
                  appendTo: t,
                })).append(
                  '<span class="joubel-icon-tip-normal"><span class="h5p-icon-shadow"></span><span class="h5p-icon-speech-bubble"></span><span class="h5p-icon-info"></span></span>',
                ),
                n
                  .click(function () {
                    var t = n.parents(".h5p-answer"),
                      e = !t.children(".h5p-feedback-dialog").is(h);
                    return (
                      p(),
                      e
                        ? (n.attr("aria-expanded", !0),
                          c(t, r),
                          h.addClass("h5p-has-tip"),
                          a.read(r))
                        : n.attr("aria-expanded", !1),
                      a.trigger("resize"),
                      setTimeout(function () {
                        l.click(p);
                      }, 100),
                      !1
                    );
                  })
                  .keydown(function (t) {
                    if (32 === t.which) return (s(this).click(), !1);
                  }),
                s(".h5p-alternative-container", this).append(t));
            });
            (o
              .click(function () {
                i(s(this));
              })
              .keydown(function (t) {
                if (32 === t.keyCode) return (i(s(this)), !1);
                if (u.behaviour.singleAnswer)
                  switch (t.keyCode) {
                    case 38:
                    case 37:
                      var e = s(this).prev();
                      return (e.length && i(e.focus()), !1);
                    case 40:
                    case 39:
                      e = s(this).next();
                      return (e.length && i(e.focus()), !1);
                  }
              }),
              u.behaviour.singleAnswer &&
                o
                  .focus(function () {
                    "true" !== s(this).attr("aria-disabled") &&
                      o.not(this).attr("tabindex", "-1");
                  })
                  .blur(function () {
                    o.filter(".h5p-selected").length ||
                      o.first().add(o.last()).attr("tabindex", "0");
                  }),
              x(),
              u.behaviour.singleAnswer
                ? (g =
                    u.userAnswers.length && u.answers[u.userAnswers[0]].correct
                      ? 1
                      : 0)
                : H(),
              A &&
                u.behaviour.autoCheck &&
                (u.behaviour.singleAnswer || g === a.getMaxScore()
                  ? b()
                  : a.showCheckSolution(!0)));
          }),
          (this.showAllSolutions = function () {
            m ||
              ((m = !0),
              l
                .find(".h5p-answer")
                .each(function (t, e) {
                  var e = s(e),
                    t = u.answers[t],
                    n =
                      "h5p-solution-icon-" +
                      (u.behaviour.singleAnswer ? "radio" : "checkbox");
                  t.correct
                    ? e
                        .addClass("h5p-should")
                        .append(
                          s("<span/>", {
                            class: n,
                            html: u.UI.shouldCheck + ".",
                          }),
                        )
                    : e
                        .addClass("h5p-should-not")
                        .append(
                          s("<span/>", {
                            class: n,
                            html: u.UI.shouldNotCheck + ".",
                          }),
                        );
                })
                .find(".h5p-question-plus-one, .h5p-question-minus-one")
                .remove(),
              w(),
              l.find(".h5p-answer:first-child").focus(),
              a.hideButton("check-answer"),
              a.hideButton("show-solution"),
              u.behaviour.enableRetry && a.showButton("try-again"),
              a.trigger("resize"));
          }),
          (this.showSolutions = function () {
            (p(),
              a.showCheckSolution(),
              a.showAllSolutions(),
              w(),
              a.hideButton("try-again"));
          }),
          function (t) {
            t.removeClass("h5p-correct")
              .removeClass("h5p-wrong")
              .removeClass("h5p-should")
              .removeClass("h5p-should-not")
              .removeClass("h5p-has-feedback")
              .find(
                ".h5p-question-plus-one, .h5p-question-minus-one, .h5p-answer-icon, .h5p-solution-icon-radio, .h5p-solution-icon-checkbox, .h5p-feedback-dialog",
              )
              .remove();
          }),
        y =
          ((this.hideSolutions = function () {
            ((m = !1),
              v(s(".h5p-answer", l)),
              this.removeFeedback(),
              a.trigger("resize"));
          }),
          (this.resetTask = function (t = !1) {
            for (let t = 0; t < u.answers.length; t++)
              u.answers[t].checked && delete u.answers[t].checked;
            ((a.answered = !1),
              a.hideSolutions(),
              (u.userAnswers = []),
              C(t),
              a.showButton("check-answer"),
              a.hideButton("try-again"),
              a.hideButton("show-solution"),
              P(),
              l?.find(".h5p-feedback-available").remove());
          }),
          function () {
            if (d) return u.weight;
            for (var t = 0, e = 0; e < u.answers.length; e++) {
              var n = u.answers[e];
              n.correct && (t += void 0 !== n.weight ? n.weight : 1);
            }
            return t;
          }),
        b =
          ((this.getMaxScore = function () {
            return u.behaviour.singleAnswer || u.behaviour.singlePoint
              ? u.weight
              : y();
          }),
          function () {
            (l.unbind("click", p),
              p(),
              u.behaviour.enableSolutionsButton &&
                a.showButton("show-solution"),
              u.behaviour.enableRetry && a.showButton("try-again"),
              a.hideButton("check-answer"),
              a.showCheckSolution(),
              w());
            var t = a.createXAPIEventTemplate("answered");
            (S(t), k(t), a.trigger(t));
          }),
        x = function () {
          var t = s('[data-content-id="' + a.contentId + '"].h5p-content'),
            e = t.parents(".h5p-container"),
            e =
              0 !== e.length ? e.last() : 0 !== t.length ? t : s(document.body);
          (a.addButton(
            "show-solution",
            u.UI.showSolutionButton,
            function () {
              u.behaviour.showSolutionsRequiresInput && !a.getAnswerGiven(!0)
                ? (a.updateFeedbackContent(u.UI.noInput), a.read(u.UI.noInput))
                : (H(), a.showAllSolutions());
            },
            !1,
            { "aria-label": u.UI.a11yShowSolution },
          ),
            !u.behaviour.enableCheckButton ||
              (u.behaviour.autoCheck && u.behaviour.singleAnswer) ||
              a.addButton(
                "check-answer",
                u.UI.checkAnswerButton,
                function () {
                  ((a.answered = !0),
                    b(),
                    l.find(".h5p-answer:first-child").focus());
                },
                !0,
                { "aria-label": u.UI.a11yCheck },
                {
                  confirmationDialog: {
                    enable: u.behaviour.confirmCheckDialog,
                    l10n: u.confirmCheck,
                    instance: a,
                    $parentElement: e,
                  },
                  contentData: a.contentData,
                  textIfSubmitting: u.UI.submitAnswerButton,
                },
              ),
            a.addButton(
              "try-again",
              u.UI.tryAgainButton,
              function () {
                if ((a.resetTask(!0), u.behaviour.randomAnswers)) {
                  var t = f,
                    e = ((f = T()), l.find(".h5p-answer")),
                    n = [];
                  for (i = 0; i < e.length; i++)
                    n[i] = s(e[i]).find(".h5p-multichoice-tipwrap");
                  for (i = 0; i < e.length; i++)
                    (s(e[i])
                      .find(".h5p-alternative-inner")
                      .html(u.answers[i].text),
                      s(n[i])
                        .detach()
                        .appendTo(
                          s(e[f.indexOf(t[i])]).find(
                            ".h5p-alternative-container",
                          ),
                        ));
                }
              },
              !1,
              { "aria-label": u.UI.a11yRetry },
              {
                confirmationDialog: {
                  enable: u.behaviour.confirmRetryDialog,
                  l10n: u.confirmRetry,
                  instance: a,
                  $parentElement: e,
                },
              },
            ));
        },
        w =
          ((this.showCheckSolution = function (i) {
            (u.behaviour.singleAnswer ||
              u.behaviour.singlePoint ||
              !u.behaviour.showScorePoints ||
              (o = new H5P.Question.ScorePoints()),
              l.find(".h5p-answer").each(function (t, e) {
                var n,
                  e = s(e),
                  t = u.answers[t],
                  r = "true" === e.attr("aria-checked");
                (r &&
                  (t.correct
                    ? e.hasClass("h5p-correct") ||
                      e
                        .addClass("h5p-correct")
                        .append(
                          s("<span/>", {
                            class: "h5p-answer-icon",
                            html: u.UI.correctAnswer + ".",
                          }),
                        )
                    : e.hasClass("h5p-wrong") ||
                      e
                        .addClass("h5p-wrong")
                        .append(
                          s("<span/>", {
                            class: "h5p-answer-icon",
                            html: u.UI.wrongAnswer + ".",
                          }),
                        ),
                  o) &&
                  ((n = e[0].querySelector(".h5p-alternative-container")),
                  (u.behaviour.autoCheck &&
                    null !==
                      n.querySelector(
                        ".h5p-question-plus-one, .h5p-question-minus-one",
                      )) ||
                    n.appendChild(o.getElement(t.correct))),
                  i ||
                    (r &&
                    void 0 !== t.tipsAndFeedback.chosenFeedback &&
                    "" !== t.tipsAndFeedback.chosenFeedback
                      ? c(e, t.tipsAndFeedback.chosenFeedback)
                      : r ||
                        void 0 === t.tipsAndFeedback.notChosenFeedback ||
                        "" === t.tipsAndFeedback.notChosenFeedback ||
                        c(e, t.tipsAndFeedback.notChosenFeedback)));
              }));
            var o,
              t,
              e,
              n = a.getMaxScore();
            (g === n &&
              (a.hideButton("check-answer"),
              a.hideButton("try-again"),
              a.hideButton("show-solution")),
              i ||
                this.setFeedback(
                  ((t = g),
                  (e = n),
                  H5P.Question.determineOverallFeedback(
                    u.overallFeedback,
                    t / e,
                  )
                    .replace("@score", t)
                    .replace("@total", e)),
                  g,
                  n,
                  u.UI.scoreBarLabel,
                ),
              a.trigger("resize"));
          }),
          function () {
            (s(".h5p-answer", l)
              .attr({ "aria-disabled": "true", tabindex: "-1" })
              .removeAttr("role")
              .removeAttr("aria-checked"),
              s(".h5p-answers").removeAttr("role"));
          }),
        P = function () {
          (s(".h5p-answer", l).attr({
            "aria-disabled": "false",
            role: u.behaviour.singleAnswer ? "radio" : "checkbox",
          }),
            s(".h5p-answers").attr("role", u.role));
        },
        H = function () {
          g = 0;
          for (const n of u.userAnswers) {
            var t = u.answers[n],
              e = void 0 !== t.weight ? t.weight : 1;
            t.correct ? (g += e) : (g -= e);
          }
          (g < 0 && (g = 0),
            !u.userAnswers.length && d && (g = u.weight),
            u.behaviour.singlePoint &&
              (g =
                (100 * g) / y() >= u.behaviour.passPercentage ? u.weight : 0));
        },
        C = function (t) {
          var e = s(".h5p-answer", l)
            .removeClass("h5p-selected")
            .attr("aria-checked", "false");
          ((u.behaviour.singleAnswer ? e.first() : e).attr("tabindex", "0"),
            (t || a.isRoot()) && e.first().focus(),
            H());
        },
        S =
          ((this.getXAPIData = function () {
            var t = this.createXAPIEventTemplate("answered");
            return (S(t), k(t), { statement: t.data.statement });
          }),
          function (t) {
            var e = t.getVerifiedStatementValue(["object", "definition"]);
            ((e.description = { "en-US": u.question }),
              (e.type = "http://adlnet.gov/expapi/activities/cmi.interaction"),
              (e.interactionType = "choice"),
              (e.correctResponsesPattern = []),
              (e.choices = []));
            for (var n = 0; n < u.answers.length; n++)
              ((e.choices[n] = {
                id: u.answers[n].originalOrder + "",
                description: {
                  "en-US": s("<div>" + u.answers[n].text + "</div>").text(),
                },
              }),
                u.answers[n].correct &&
                  (u.singleAnswer
                    ? e.correctResponsesPattern.push(
                        "" + u.answers[n].originalOrder,
                      )
                    : (e.correctResponsesPattern.length
                        ? (e.correctResponsesPattern[0] += "[,]")
                        : e.correctResponsesPattern.push(""),
                      (e.correctResponsesPattern[0] +=
                        u.answers[n].originalOrder))));
          }),
        k = function (t) {
          for (
            var e = a.getMaxScore(),
              n = (100 * g) / e >= u.behaviour.passPercentage,
              r =
                (t.setScoredResult(g, e, a, !0, n),
                void 0 === u.userAnswers && H(),
                ""),
              i = 0;
            i < u.userAnswers.length;
            i++
          )
            ("" !== r && (r += "[,]"),
              (r += void 0 === f ? u.userAnswers[i] : f[u.userAnswers[i]]));
          t.data.statement.result.response = r;
        },
        T = function () {
          u.answers = H5P.shuffleArray(u.answers);
          var t = [];
          for (i = 0; i < u.answers.length; i++)
            t[i] = u.answers[i].originalOrder;
          return t;
        },
        i = 0;
      i < u.answers.length;
      i++
    )
      u.answers[i].originalOrder = i;
    if (
      (u.behaviour.randomAnswers && (f = T()),
      (u.userAnswers = []),
      n && void 0 !== n.previousState && n.previousState.answers)
    ) {
      if (f)
        for (i = 0; i < n.previousState.answers.length; i++)
          for (var M = 0; M < f.length; M++)
            f[M] === n.previousState.answers[i] && u.userAnswers.push(M);
      else u.userAnswers = n.previousState.answers;
      H();
    }
    for (var A = !1, E = 0; E < u.answers.length; E++) {
      var I = u.answers[E];
      (u.behaviour.singleAnswer
        ? ((I.role = "radio"),
          0 === u.userAnswers.length
            ? (0 !== i && i !== u.answers.length) || (I.tabindex = "0")
            : -1 !== u.userAnswers.indexOf(E) &&
              ((I.tabindex = "0"), (I.checked = "true"), (A = !0)))
        : ((I.role = "checkbox"),
          (I.tabindex = "0"),
          -1 !== u.userAnswers.indexOf(E) && ((I.checked = "true"), (A = !0))),
        void 0 === I.tabindex && (I.tabindex = "-1"),
        void 0 === I.checked && (I.checked = "false"));
    }
    ((H5P.MultiChoice.counter =
      void 0 === H5P.MultiChoice.counter ? 0 : H5P.MultiChoice.counter + 1),
      (u.role = u.behaviour.singleAnswer ? "radiogroup" : "group"),
      (u.labelId = "h5p-mcq" + H5P.MultiChoice.counter),
      (this.getCurrentState = function () {
        var t = {};
        if (f) {
          t.answers = [];
          for (var e = 0; e < u.userAnswers.length; e++)
            t.answers.push(f[u.userAnswers[e]]);
        } else t.answers = u.userAnswers;
        return t;
      }),
      (this.getAnswerGiven = function (t) {
        return (!t && this.answered) || 0 < u.userAnswers.length || d;
      }),
      (this.getScore = function () {
        return g;
      }),
      (this.getTitle = function () {
        return H5P.createTitle(
          this.contentData &&
            this.contentData.metadata &&
            this.contentData.metadata.title
            ? this.contentData.metadata.title
            : "Multiple Choice",
        );
      }));
  }),
  (H5P.MultiChoice.prototype = Object.create(H5P.Question.prototype)),
  (H5P.MultiChoice.prototype.constructor = H5P.MultiChoice),
  ((H5P = H5P || {}).TextUtilities = (function () {
    "use strict";
    function u() {}
    return (
      (((u.prototype = Object.create(
        H5P.EventDispatcher.prototype,
      )).constructor = u).WORD_DELIMITER = /[\s.?!,\';\"]/g),
      (u.isIsolated = function (t, e, n) {
        var r, i;
        if (t && e)
          return (
            (r = n && n.delimiter ? n.delimiter : u.WORD_DELIMITER),
            !(
              (n =
                n && n.index && "number" == typeof n.index
                  ? n.index
                  : e.indexOf(t)) < 0 || n > e.length - 1
            ) &&
              ((i = 0 === n ? "" : e[n - 1].replace(r, "")),
              (e =
                n + t.length === e.length
                  ? ""
                  : e[n + t.length].replace(r, "")),
              "" === i) &&
              "" === e
          );
      }),
      (u.areSimilar = function (t, e) {
        var n;
        if (t && "string" == typeof t && e && "string" == typeof e)
          return (
            (n = Math.min(t.length, e.length)),
            0 ===
              (t = H5P.TextUtilities.computeLevenshteinDistance(t, e, !0)) ||
              (9 < n && t <= 2) ||
              (3 < n && t <= 1)
          );
      }),
      (u.computeLevenshteinDistance = function (t, e, n) {
        if ("string" == typeof t && "string" == typeof e) {
          if ((n && "boolean" != typeof n && (n = !1), t === e)) return 0;
          if (0 === t.length) return e.length;
          if (0 === e.length) return t.length;
          for (var r, i, o = [], a = 0; a <= t.length; a++) o[a] = [a];
          for (r = 0; r <= e.length; r++) o[0][r] = r;
          for (a = 1; a <= t.length; a++)
            for (r = 1; r <= e.length; r++)
              ((i = t[a - 1] === e[r - 1] ? 0 : 1),
                (o[a][r] = Math.min(
                  o[a - 1][r] + 1,
                  o[a][r - 1] + 1,
                  o[a - 1][r - 1] + i,
                )),
                n &&
                  1 < a &&
                  1 < r &&
                  t[a - 1] === e[r - 2] &&
                  t[a - 2] === e[r - 1] &&
                  (o[a][r] = Math.min(o[a][r], o[a - 2][r - 2] + i)));
          return o[t.length][e.length];
        }
      }),
      (u.computeJaroDistance = function (t, e, n, r) {
        if ("string" == typeof t && "string" == typeof e) {
          if (
            (n && "boolean" != typeof n && (n = !1),
            r && "boolean" != typeof r && (r = !1),
            0 === t.length || 0 === e.length)
          )
            return 0;
          if (t === e) return 1;
          for (
            var i,
              o = 0,
              a = 0,
              s = 0,
              u = 0,
              c = t.length,
              l = e.length,
              h = Math.floor(Math.max(c, l) / 2) - 1,
              f = new Array(c),
              d = new Array(l),
              p = 0;
            p < c;
            p++
          )
            for (
              var g = p + h <= l - 1 ? p + h : l - 1, m = h <= p ? p - h : 0;
              m <= g;
              m++
            )
              if (!0 !== f[p] && !0 !== d[m] && t[p] === e[m]) {
                ((f[p] = d[m] = !0), (o += 1));
                break;
              }
          if (0 === o) return 0;
          for (p = i = 0; p < c; p++)
            if (f[p]) {
              for (; !d[i]; ) i += 1;
              (t[p] !== e[i] && (a += 1), (i += 1));
            }
          if (
            ((s = (o / c + o / l + (o - (a /= 2)) / o) / 3),
            n && 0.7 < s && 3 < c && 3 < l)
          ) {
            for (; t[u] === e[u] && u < 4; ) u += 1;
            ((s += 0.1 * u * (1 - s)),
              r &&
                4 < Math.max(c, l) &&
                u + 1 < o &&
                2 * o >= Math.max(c, l) + u &&
                (s += ((o - u - 1) / (c + l - 2 * u + 2)) * (1 - s)));
          }
          return s;
        }
      }),
      (u.fuzzyContains = function (t, e) {
        return this.fuzzyFind(t, e).contains;
      }),
      (u.fuzzyIndexOf = function (t, e) {
        return this.fuzzyFind(t, e).indexOf;
      }),
      (u.fuzzyMatch = function (t, e) {
        return this.fuzzyFind(t, e).match;
      }),
      (u.fuzzyFind = function (e, t, n) {
        if (!e || "string" != typeof e) return !1;
        if (!t || "string" != typeof t) return !1;
        (void 0 !== n &&
          void 0 !== n.windowSize &&
          "number" == typeof n.windowSize) ||
          (n = { windowSize: 3 });
        var r,
          i = t.split(" ").some(function (t) {
            return ((r = t), H5P.TextUtilities.areSimilar(e, t));
          });
        if (!i) {
          for (var o = 0; o < t.length - e.length + 1; o++) {
            for (var a = [], s = 0; s < n.windowSize; s++)
              a[s] = t.substr(o, e.length + s);
            for (s = 0; s < a.length; s++)
              if (u.isIsolated(a[s], t) && u.areSimilar(a[s], e)) {
                ((r = a[s]), (i = !0));
                break;
              }
            if (i) break;
          }
          i || (r = void 0);
        }
        return { contains: i, match: r, index: t.indexOf(r) };
      }),
      u
    );
  })()) /*!@license H5P.Blanks-1.14/js/blanks.js by Joubel licensed under MIT*/,
  (H5P.Blanks = (function (u, o) {
    var i = "ongoing",
      a = "checking",
      n = "showing-solution",
      r = "finished";
    function s(t, e, n) {
      var r = this;
      (o.call(r, "blanks"),
        (this.contentId = e),
        (this.contentData = n),
        (this.params = u.extend(
          !0,
          {},
          {
            text: "Fill in",
            questions: ["<p>Oslo is the capital of *Norway*.</p>"],
            overallFeedback: [],
            userAnswers: [],
            showSolutions: "Show solution",
            tryAgain: "Try again",
            checkAnswer: "Check",
            changeAnswer: "Change answer",
            notFilledOut: "Please fill in all blanks to view solution",
            answerIsCorrect: "':ans' is correct",
            answerIsWrong: "':ans' is wrong",
            answeredCorrectly: "Answered correctly",
            answeredIncorrectly: "Answered incorrectly",
            solutionLabel: "Correct answer:",
            inputLabel: "Blank input @num of @total",
            inputHasTipLabel: "Tip available",
            tipLabel: "Tip",
            scoreBarLabel: "You got :num out of :total points",
            behaviour: {
              enableRetry: !0,
              enableSolutionsButton: !0,
              enableCheckButton: !0,
              caseSensitive: !0,
              showSolutionsRequiresInput: !0,
              autoCheck: !1,
              separateLines: !1,
            },
            a11yCheck:
              "Check the answers. The responses will be marked as correct, incorrect, or unanswered.",
            a11yShowSolution:
              "Show the solution. The task will be marked with its correct solution.",
            a11yRetry:
              "Retry the task. Reset all responses and start the task over again.",
            a11yHeader: "Checking mode",
            submitAnswer: "Submit",
          },
          t,
        )));
      for (var i = this.params.questions.length - 1; 0 <= i; i--)
        this.params.questions[i] || this.params.questions.splice(i, 1);
      ((this.contentData = n),
        void 0 !== this.contentData &&
          void 0 !== this.contentData.previousState &&
          (this.previousState = this.contentData.previousState),
        (this.clozes = []),
        (this.shiftPressed = !1),
        H5P.$body
          .keydown(function (t) {
            16 === t.keyCode && (r.shiftPressed = !0);
          })
          .keyup(function (t) {
            16 === t.keyCode && (r.shiftPressed = !1);
          }),
        (this.labelId =
          "h5p-blanks-instructions-" + s.idCounter + "-" + H5P.createUUID()),
        (this.content = r.createQuestions()));
      e = r.params.media;
      (e &&
        e.type &&
        e.type.library &&
        ("H5P.Image" === (t = (e = e.type).library.split(" ")[0])
          ? e.params.file &&
            r.setImage(e.params.file.path, {
              disableImageZooming: r.params.media.disableImageZooming || !1,
              alt: e.params.alt,
              title: e.params.title,
              expandImage: e.params.expandImage,
              minimizeImage: e.params.minimizeImage,
            })
          : "H5P.Video" === t
            ? e.params.sources && r.setVideo(e)
            : "H5P.Audio" === t && e.params.files && r.setAudio(e)),
        r.setIntroduction(
          '<div id="' + this.labelId + '">' + r.params.text + "</div>",
        ),
        r.setContent(r.content, {
          class: r.params.behaviour.separateLines ? "h5p-separate-lines" : "",
        }),
        r.registerButtons(),
        r.setH5PUserState());
    }
    return (
      (((s.prototype = Object.create(o.prototype)).constructor =
        s).prototype.registerButtons = function () {
        var t = this,
          e = u('[data-content-id="' + t.contentId + '"].h5p-content'),
          n = e.parents(".h5p-container"),
          n = 0 !== n.length ? n.last() : 0 !== e.length ? e : u(document.body);
        (!t.params.behaviour.autoCheck &&
          this.params.behaviour.enableCheckButton &&
          t.addButton(
            "check-answer",
            t.params.checkAnswer,
            function () {
              ((t.a11yHeader.innerHTML = t.params.a11yHeader),
                t.a11yHeader.focus(),
                t.toggleButtonVisibility(a),
                t.markResults(),
                t.showEvaluation(),
                t.triggerAnswered());
            },
            !0,
            { "aria-label": t.params.a11yCheck },
            {
              confirmationDialog: {
                enable: t.params.behaviour.confirmCheckDialog,
                l10n: t.params.confirmCheck,
                instance: t,
                $parentElement: n,
              },
              textIfSubmitting: t.params.submitAnswer,
              contentData: t.contentData,
            },
          ),
          t.addButton(
            "show-solution",
            t.params.showSolutions,
            function () {
              t.showCorrectAnswers(!1);
            },
            t.params.behaviour.enableSolutionsButton,
            { "aria-label": t.params.a11yShowSolution },
          ),
          !0 === t.params.behaviour.enableRetry &&
            t.addButton(
              "try-again",
              t.params.tryAgain,
              function () {
                ((t.a11yHeader.innerHTML = ""),
                  t.resetTask(),
                  t.$questions.filter(":first").find("input:first").focus());
              },
              !0,
              { "aria-label": t.params.a11yRetry },
              {
                confirmationDialog: {
                  enable: t.params.behaviour.confirmRetryDialog,
                  l10n: t.params.confirmRetry,
                  instance: t,
                  $parentElement: n,
                },
              },
            ),
          t.toggleButtonVisibility(i));
      }),
      (s.prototype.handleBlanks = function (t, e) {
        for (var n, r, i, o = t.indexOf("*"); -1 !== o && -1 !== n; )
          (o++,
            -1 !== (n = t.indexOf("*", o)) &&
              ((i = ""),
              (r = t.substring(o, n).replaceAll(/<\/?[a-z]*\d?>/gi, "")).length
                ? ((i = e(this.parseSolution(r))), n++)
                : (o += 1),
              (t = t.slice(0, o - 1) + i + t.slice(n)),
              (n -= n - o - i.length),
              (o = t.indexOf("*", n))));
        return t;
      }),
      (s.prototype.createQuestions = function () {
        for (
          var o = this, t = "", n = 0, e = 0;
          e < o.params.questions.length;
          e++
        ) {
          var r = o.params.questions[e],
            r = o.handleBlanks(r, function (t) {
              n += 1;
              var e =
                  o.params.userAnswers.length > o.clozes.length
                    ? o.params.userAnswers[o.clozes.length]
                    : null,
                t = new s.Cloze(t, o.params.behaviour, e, {
                  answeredCorrectly: o.params.answeredCorrectly,
                  answeredIncorrectly: o.params.answeredIncorrectly,
                  solutionLabel: o.params.solutionLabel,
                  inputLabel: o.params.inputLabel,
                  inputHasTipLabel: o.params.inputHasTipLabel,
                  tipLabel: o.params.tipLabel,
                });
              return (o.clozes.push(t), t);
            });
          t +=
            '<div role="group" aria-labelledby="' +
            o.labelId +
            '">' +
            r +
            "</div>";
        }
        return (
          (o.hasClozes = 0 < n),
          (this.$questions = u(t)),
          (o.a11yHeader = document.createElement("div")),
          o.a11yHeader.classList.add("hidden-but-read"),
          (o.a11yHeader.tabIndex = -1),
          o.$questions[0].insertBefore(
            o.a11yHeader,
            this.$questions[0].childNodes[0] || null,
          ),
          this.$questions
            .find("input")
            .each(function (t) {
              let e;
              var n;
              (new ResizeObserver(function () {
                (clearTimeout(e),
                  (e = setTimeout(function () {
                    o.trigger("resize");
                  }, 1e3)));
              }).observe(this),
                o.params.behaviour.autoCheck &&
                  (n = function () {
                    var t = u("<div>").text(this.getUserAnswer()).html();
                    (o.read(
                      (this.correct()
                        ? o.params.answerIsCorrect
                        : o.params.answerIsWrong
                      ).replace(":ans", t),
                    ),
                      (o.done || o.allBlanksFilledOut()) &&
                        (o.toggleButtonVisibility(a),
                        o.showEvaluation(),
                        o.triggerAnswered(),
                        (o.done = !0)));
                  }),
                o.clozes[t].setInput(
                  u(this),
                  n,
                  function () {
                    (o.toggleButtonVisibility(i),
                      o.params.behaviour.autoCheck || o.hideEvaluation());
                  },
                  t,
                  o.clozes.length,
                ));
            })
            .keydown(function (t) {
              var e,
                n,
                r = u(this),
                i = (o.autoGrowTextField(r), 13 === t.keyCode),
                t = 9 === t.keyCode && o.params.behaviour.autoCheck;
              if (
                ((i || t) &&
                  ((e = o.$questions.find(
                    ".h5p-input-wrapper:not(.h5p-correct) .h5p-text-input",
                  )),
                  (n = r.is(e[e.length - 1]))),
                ((t && n && !o.shiftPressed) || (i && n)) &&
                  setTimeout(function () {
                    o.focusButton();
                  }, 10),
                i)
              )
                return (
                  n ? r.trigger("blur") : e.eq(e.index(r) + 1).focus(),
                  !1
                );
            })
            .on("change", function () {
              ((o.answered = !0), o.triggerXAPI("interacted"));
            }),
          o.on("resize", function () {
            o.resetGrowTextField();
          }),
          this.$questions
        );
      }),
      (s.prototype.autoGrowTextField = function (r) {
        var i, t, o, a, s;
        this.params.behaviour.separateLines ||
          ((i = this),
          (t = parseInt(r.css("font-size"), 10)),
          (o = 3 * t),
          (a = 3.25 * t),
          (s = 0.5 * t),
          setTimeout(function () {
            var t = u("<div>", { text: r.val() }),
              e =
                (t.css({
                  position: "absolute",
                  "white-space": "nowrap",
                  "font-size": r.css("font-size"),
                  "font-family": r.css("font-family"),
                  padding: r.css("padding"),
                  width: "initial",
                }),
                r.parent().append(t),
                t.width()),
              n = i.$questions.width();
            (t.remove(),
              e <= o
                ? r.width(o + s)
                : n <= e + a
                  ? r.width(n - a)
                  : r.width(e + s));
          }, 1));
      }),
      (s.prototype.resetGrowTextField = function () {
        var t = this;
        this.$questions.find("input").each(function () {
          t.autoGrowTextField(u(this));
        });
      }),
      (s.prototype.toggleButtonVisibility = function (t) {
        var e = this.getScore() === this.getMaxScore();
        (this.params.behaviour.autoCheck && e && (t = r),
          this.params.behaviour.enableSolutionsButton &&
            (t !== a || e
              ? this.hideButton("show-solution")
              : this.showButton("show-solution")),
          this.params.behaviour.enableRetry &&
            ((t === a && !e) || t === n
              ? this.showButton("try-again")
              : this.hideButton("try-again")),
          t === i
            ? this.showButton("check-answer")
            : this.hideButton("check-answer"),
          this.trigger("resize"));
      }),
      (s.prototype.allowSolution = function () {
        return !(
          !0 === this.params.behaviour.showSolutionsRequiresInput &&
          !this.allBlanksFilledOut() &&
          (this.updateFeedbackContent(this.params.notFilledOut),
          this.read(this.params.notFilledOut),
          1)
        );
      }),
      (s.prototype.allBlanksFilledOut = function () {
        return !this.clozes.some(function (t) {
          return !t.filledOut();
        });
      }),
      (s.prototype.markResults = function () {
        for (var t = 0; t < this.clozes.length; t++)
          (this.clozes[t].checkAnswer(),
            this.params.behaviour.enableRetry || this.clozes[t].disableInput());
        this.trigger("resize");
      }),
      (s.prototype.removeMarkedResults = function () {
        (this.$questions
          .find(".h5p-input-wrapper")
          .removeClass("h5p-correct h5p-wrong"),
          this.$questions
            .find(".h5p-input-wrapper > input")
            .attr("disabled", !1),
          this.trigger("resize"));
      }),
      (s.prototype.showCorrectAnswers = function (t) {
        if (t || this.allowSolution()) {
          (this.toggleButtonVisibility(n), this.hideSolutions());
          for (var e = 0; e < this.clozes.length; e++)
            this.clozes[e].showSolution();
          this.trigger("resize");
        }
      }),
      (s.prototype.toggleAllInputs = function (t) {
        for (var e = 0; e < this.clozes.length; e++)
          this.clozes[e].toggleInput(t);
      }),
      (s.prototype.showSolutions = function () {
        ((this.params.behaviour.enableSolutionsButton = !0),
          this.toggleButtonVisibility(r),
          this.markResults(),
          this.showEvaluation(),
          this.showCorrectAnswers(!0),
          this.toggleAllInputs(!1),
          this.hideButtons());
      }),
      (s.prototype.resetTask = function () {
        ((this.answered = !1),
          this.hideEvaluation(),
          this.hideSolutions(),
          this.clearAnswers(),
          this.removeMarkedResults(),
          this.toggleButtonVisibility(i),
          this.resetGrowTextField(),
          this.toggleAllInputs(!0),
          (this.done = !1));
      }),
      (s.prototype.hideButtons = function () {
        this.toggleButtonVisibility(r);
      }),
      (s.prototype.triggerAnswered = function () {
        this.answered = !0;
        var t = this.createXAPIEventTemplate("answered");
        (this.addQuestionToXAPI(t), this.addResponseToXAPI(t), this.trigger(t));
      }),
      (s.prototype.getXAPIData = function () {
        var t = this.createXAPIEventTemplate("answered");
        return (
          this.addQuestionToXAPI(t),
          this.addResponseToXAPI(t),
          { statement: t.data.statement }
        );
      }),
      (s.prototype.getxAPIDefinition = function () {
        var t = {};
        ((t.description = {
          "en-US": this.params.text.replaceAll(/_{10,}/gi, "_________"),
        }),
          (t.type = "http://adlnet.gov/expapi/activities/cmi.interaction"),
          (t.interactionType = "fill-in"));
        const e = [];
        let n = "";
        for (var r = 0; r < this.params.questions.length; r++) {
          var i = this.params.questions[r].replaceAll(/_{10,}/gi, "_________"),
            i = this.handleBlanks(i, function (t) {
              return (
                e.push(t.solutions),
                (n += (n ? "[,]" : "") + t.solutions[0]),
                "__________"
              );
            });
          t.description["en-US"] += i;
        }
        return (
          (t.correctResponsesPattern = [
            "{case_matters=" + this.params.behaviour.caseSensitive + "}" + n,
          ]),
          (t.extensions = t.extensions || {}),
          (t.extensions["https://h5p.org/x-api/case-sensitivity"] =
            this.params.behaviour.caseSensitive),
          (t.extensions["https://h5p.org/x-api/alternatives"] = e),
          t
        );
      }),
      (s.prototype.addQuestionToXAPI = function (t) {
        var e = t.getVerifiedStatementValue(["object", "definition"]);
        (u.extend(!0, e, this.getxAPIDefinition()),
          this.hasAlternatives &&
            (((e = t.getVerifiedStatementValue(["context"])).extensions =
              e.extensions || {}),
            (e.extensions["https://h5p.org/x-api/h5p-reporting-version"] =
              "1.1.0")));
      }),
      (s.prototype.parseSolution = function (t) {
        var e,
          n = t.indexOf(":"),
          n = -1 !== n ? ((e = t.slice(n + 1)), t.slice(0, n)) : t,
          r = n.split("/");
        this.hasAlternatives = this.hasAlternatives || 1 < r.length;
        for (var i = 0; i < r.length; i++) {
          r[i] = H5P.trim(r[i]);
          var o = document.createElement("textarea");
          ((o.innerHTML = r[i]), (r[i] = o.value));
        }
        return { tip: e, solutions: r };
      }),
      (s.prototype.addResponseToXAPI = function (t) {
        (t.setScoredResult(this.getScore(), this.getMaxScore(), this),
          (t.data.statement.result.response = this.getxAPIResponse()));
      }),
      (s.prototype.getxAPIResponse = function () {
        return this.getCurrentState().join("[,]");
      }),
      (s.prototype.showEvaluation = function () {
        var t = this.getMaxScore(),
          e = this.getScore(),
          n = H5P.Question.determineOverallFeedback(
            this.params.overallFeedback,
            e / t,
          )
            .replace("@score", e)
            .replace("@total", t);
        (this.setFeedback(n, e, t, this.params.scoreBarLabel),
          e === t && this.toggleButtonVisibility(r));
      }),
      (s.prototype.hideEvaluation = function () {
        this.removeFeedback();
      }),
      (s.prototype.hideSolutions = function () {
        this.$questions.find(".h5p-correct-answer").remove();
      }),
      (s.prototype.getMaxScore = function () {
        return this.clozes.length;
      }),
      (s.prototype.getScore = function () {
        for (var t = 0, e = 0; e < this.clozes.length; e++)
          (this.clozes[e].correct() && t++,
            (this.params.userAnswers[e] = this.clozes[e].getUserAnswer()));
        return t;
      }),
      (s.prototype.getTitle = function () {
        return H5P.createTitle(
          this.contentData.metadata && this.contentData.metadata.title
            ? this.contentData.metadata.title
            : "Fill In",
        );
      }),
      (s.prototype.clearAnswers = function () {
        this.clozes.forEach(function (t) {
          (t.setUserInput(""), t.resetAriaLabel());
        });
      }),
      (s.prototype.getAnswerGiven = function () {
        return this.answered || !this.hasClozes;
      }),
      (s.setFocus = function (t) {
        setTimeout(function () {
          t.focus();
        }, 1);
      }),
      (s.prototype.getCurrentState = function () {
        var e = [];
        return (
          this.clozes.forEach(function (t) {
            e.push(t.getUserAnswer());
          }),
          e
        );
      }),
      (s.prototype.setH5PUserState = function () {
        var n,
          r = this;
        void 0 !== this.previousState &&
          this.previousState.length &&
          this.previousState.length === this.clozes.length &&
          ((n = !0),
          this.previousState.forEach(function (t, e) {
            t.length && (r.answered = !0);
            e = r.clozes[e];
            (e.setUserInput(t),
              r.params.behaviour.autoCheck &&
                (e.filledOut() ? e.checkAnswer() : (n = !1)));
          }),
          r.params.behaviour.autoCheck) &&
          n &&
          (r.showEvaluation(), r.toggleButtonVisibility(a));
      }),
      (s.prototype.disableInput = function () {
        this.$questions.find("input").attr("disabled", !0);
      }),
      (s.idCounter = 0),
      s
    );
  })(H5P.jQuery, H5P.Question)),
  (H5P.Blanks.parseText = function (t) {
    var e,
      n = new H5P.Blanks({ question: t });
    return (
      (e = ""),
      t
        .replace(/<[^>]*>/g, e)
        .split(/(\*.*?\*)/)
        .filter(function (t) {
          return 0 < t.length;
        })
        .map(function (t) {
          return "*" === (e = t).substr(0, 1) && "*" === e.substr(-1)
            ? {
                type: "answer",
                correct: n.parseSolution(t.slice(1, -1)).solutions,
              }
            : { type: "text", content: t };
          var e;
        })
    );
  }),
  /*!@license H5P.Blanks-1.14/js/cloze.js by Joubel licensed under MIT*/ (function (
    p,
  ) {
    H5P.Blanks.Cloze = function (t, o, e, a) {
      var s,
        u,
        c = this,
        r = t.solutions,
        n = r.join("/"),
        l = t.tip,
        h = null,
        f = a.inputLabel;
      if (!0 !== o.caseSensitive)
        for (var i = 0; i < r.length; i++) r[i] = r[i].toLowerCase();
      function d(t) {
        !0 !== o.caseSensitive && (t = t.toLowerCase());
        for (var e = 0; e < r.length; e++) {
          if (!0 === o.acceptSpellingErrors) {
            var n = H5P.TextUtilities.computeLevenshteinDistance(
              t,
              H5P.trim(r[e]),
              !0,
            );
            if (9 < r[e].length && n <= 2) return !0;
            if (3 < r[e].length && n <= 1) return !0;
          }
          if (t === H5P.trim(r[e])) return !0;
        }
        return !1;
      }
      ((this.filledOut = function () {
        var t = this.getUserAnswer();
        return "" !== t || d(t);
      }),
        (this.checkAnswer = function () {
          ((h = this.getUserAnswer()),
            d(h)
              ? (u.addClass("h5p-correct"),
                s
                  .attr("disabled", !0)
                  .attr("aria-label", f + ". " + a.answeredCorrectly))
              : (u.addClass("h5p-wrong"),
                s.attr("aria-label", f + ". " + a.answeredIncorrectly)));
        }),
        (this.disableInput = function () {
          this.toggleInput(!1);
        }),
        (this.enableInput = function () {
          this.toggleInput(!0);
        }),
        (this.toggleInput = function (t) {
          s.attr("disabled", !t);
        }),
        (this.showSolution = function () {
          var t;
          d(this.getUserAnswer()) ||
            (p("<span>", {
              "aria-hidden": !0,
              class: "h5p-correct-answer",
              text: H5P.trim(n.replace(/\s*\/\s*/g, "/")),
              insertAfter: u,
            }),
            s.attr("disabled", !0),
            (t =
              f +
              ". " +
              a.solutionLabel +
              " " +
              n +
              ". " +
              a.answeredIncorrectly),
            s.attr("aria-label", t));
        }),
        (this.correct = function () {
          return d(this.getUserAnswer());
        }),
        (this.setInput = function (t, e, n, r, i) {
          ((u = (s = t).parent()),
            (f = f.replace("@num", r + 1).replace("@total", i)),
            void 0 !== l &&
              0 < l.trim().length &&
              (u
                .addClass("has-tip")
                .append(H5P.JoubelUI.createTip(l, { tipLabel: a.tipLabel })),
              (f += ". " + a.inputHasTipLabel)),
            s.attr("aria-label", f),
            void 0 !== e &&
              s.blur(function () {
                c.filledOut() &&
                  (o.enableRetry || c.disableInput(),
                  c.checkAnswer(),
                  e.apply(c));
              }),
            s.keyup(function () {
              null !== h &&
                h !== c.getUserAnswer() &&
                ((h = null),
                u.removeClass("h5p-wrong"),
                s.attr("aria-label", f),
                void 0 !== n) &&
                n();
            }));
        }),
        (this.toString = function () {
          var t =
            '<span class="h5p-input-wrapper"><input type="text" class="h5p-text-input" autocomplete="off" autocapitalize="off" spellcheck="false"' +
            (e ? ' value="' + e + '"' : "") +
            "></span>";
          return ((c.length = t.length), t);
        }),
        (this.getUserAnswer = function () {
          var t = H5P.trim(s.val().replace(/\&nbsp;/g, " "));
          return (
            s.val(t),
            o.formulaEditor && s.parent().find(".wiris-h5p-input").html(t),
            t
          );
        }),
        (this.setUserInput = function (t) {
          s.val(t);
        }),
        (this.resetAriaLabel = function () {
          s.attr("aria-label", f);
        }));
    };
  })(H5P.jQuery),
  (function (r) {
    ((H5P.Image = function (t, e, n) {
      (H5P.EventDispatcher.call(this),
        (this.extras = n),
        void 0 !== t.file && t.file instanceof Object
          ? ((this.source = H5P.getPath(t.file.path, e)),
            (this.width = t.file.width),
            (this.height = t.file.height))
          : (this.placeholder = !0),
        (this.alt =
          t.decorative || void 0 === t.alt
            ? ""
            : this.stripHTML(this.htmlDecode(t.alt))),
        void 0 !== t.title &&
          (this.title = this.stripHTML(this.htmlDecode(t.title))));
    }),
      (H5P.Image.prototype = Object.create(H5P.EventDispatcher.prototype)),
      (H5P.Image.prototype.constructor = H5P.Image),
      (H5P.Image.prototype.attach = function (t) {
        var e = this,
          n = this.source;
        (void 0 === e.$img &&
          (e.placeholder
            ? (e.$img = r("<div>", {
                width: "100%",
                height: "100%",
                class: "h5p-placeholder",
                title: void 0 === this.title ? "" : this.title,
                on: {
                  load: function () {
                    e.trigger("loaded");
                  },
                },
              }))
            : (e.$img = r("<img>", {
                width: "100%",
                height: "100%",
                src: n,
                alt: this.alt,
                title: void 0 === this.title ? "" : this.title,
                on: {
                  load: function () {
                    e.trigger("loaded");
                  },
                },
              }))),
          t.addClass("h5p-image").html(e.$img));
      }),
      (H5P.Image.prototype.htmlDecode = function (t) {
        return new DOMParser().parseFromString(t, "text/html").documentElement
          .textContent;
      }),
      (H5P.Image.prototype.stripHTML = function (t) {
        var e = document.createElement("div");
        return ((e.innerHTML = t), e.textContent || e.innerText || "");
      }),
      H5P.Image);
  })(
    (H5P = H5P || {}).jQuery,
  ) /*!@license H5P.MultiMediaChoice-0.3/dist/h5p-multi-media-choice.js by H5P Group AS licensed under MIT*/,
  (() => {
    var n = {
        109: (t, e, n) => {
          var r;
          !(function () {
            "use strict";
            void 0 !==
              (r =
                "function" ==
                typeof (r = function () {
                  "use strict";
                  var n = (function () {
                    var t = window.Element.prototype;
                    if (t.matches) return "matches";
                    if (t.matchesSelector) return "matchesSelector";
                    for (
                      var e = ["webkit", "moz", "ms", "o"], n = 0;
                      n < e.length;
                      n++
                    ) {
                      var r = e[n] + "MatchesSelector";
                      if (t[r]) return r;
                    }
                  })();
                  return function (t, e) {
                    return t[n](e);
                  };
                })
                  ? r.call(e, n, e, t)
                  : r) && (t.exports = r);
          })(window);
        },
        360: function (t, e, n) {
          var r;
          void 0 !==
            (n =
              "function" ==
              typeof (r = function () {
                "use strict";
                function t() {}
                var e = t.prototype;
                return (
                  (e.on = function (t, e) {
                    var n;
                    if (t && e)
                      return (
                        -1 ==
                          (n = (n = this._events = this._events || {})[t] =
                            n[t] || []).indexOf(e) && n.push(e),
                        this
                      );
                  }),
                  (e.once = function (t, e) {
                    var n;
                    if (t && e)
                      return (
                        this.on(t, e),
                        (((n = this._onceEvents = this._onceEvents || {})[t] =
                          n[t] || {})[e] = !0),
                        this
                      );
                  }),
                  (e.off = function (t, e) {
                    t = this._events && this._events[t];
                    if (t && t.length)
                      return (-1 != (e = t.indexOf(e)) && t.splice(e, 1), this);
                  }),
                  (e.emitEvent = function (t, e) {
                    var n = this._events && this._events[t];
                    if (n && n.length) {
                      ((n = n.slice(0)), (e = e || []));
                      for (
                        var r = this._onceEvents && this._onceEvents[t], i = 0;
                        i < n.length;
                        i++
                      ) {
                        var o = n[i];
                        (r && r[o] && (this.off(t, o), delete r[o]),
                          o.apply(this, e));
                      }
                      return this;
                    }
                  }),
                  (e.allOff = function () {
                    (delete this._events, delete this._onceEvents);
                  }),
                  t
                );
              })
                ? r.call(e, n, e, t)
                : r) && (t.exports = n);
        },
        394: (t, e, n) => {
          var r;
          ((r = window),
            (n = [n(109)]),
            void 0 !==
              (e = function (t) {
                return (function (n, o) {
                  "use strict";
                  var u = {
                      extend: function (t, e) {
                        for (var n in e) t[n] = e[n];
                        return t;
                      },
                      modulo: function (t, e) {
                        return ((t % e) + e) % e;
                      },
                    },
                    e = Array.prototype.slice,
                    c =
                      ((u.makeArray = function (t) {
                        return Array.isArray(t)
                          ? t
                          : null == t
                            ? []
                            : "object" == typeof t &&
                                "number" == typeof t.length
                              ? e.call(t)
                              : [t];
                      }),
                      (u.removeFrom = function (t, e) {
                        e = t.indexOf(e);
                        -1 != e && t.splice(e, 1);
                      }),
                      (u.getParent = function (t, e) {
                        for (; t.parentNode && t != document.body; )
                          if (((t = t.parentNode), o(t, e))) return t;
                      }),
                      (u.getQueryElement = function (t) {
                        return "string" == typeof t
                          ? document.querySelector(t)
                          : t;
                      }),
                      (u.handleEvent = function (t) {
                        var e = "on" + t.type;
                        this[e] && this[e](t);
                      }),
                      (u.filterFindElements = function (t, r) {
                        t = u.makeArray(t);
                        var i = [];
                        return (
                          t.forEach(function (t) {
                            if (t instanceof HTMLElement)
                              if (r) {
                                o(t, r) && i.push(t);
                                for (
                                  var e = t.querySelectorAll(r), n = 0;
                                  n < e.length;
                                  n++
                                )
                                  i.push(e[n]);
                              } else i.push(t);
                          }),
                          i
                        );
                      }),
                      (u.debounceMethod = function (t, e, r) {
                        r = r || 100;
                        var i = t.prototype[e],
                          o = e + "Timeout";
                        t.prototype[e] = function () {
                          var t = this[o],
                            e = (clearTimeout(t), arguments),
                            n = this;
                          this[o] = setTimeout(function () {
                            (i.apply(n, e), delete n[o]);
                          }, r);
                        };
                      }),
                      (u.docReady = function (t) {
                        var e = document.readyState;
                        "complete" == e || "interactive" == e
                          ? setTimeout(t)
                          : document.addEventListener("DOMContentLoaded", t);
                      }),
                      (u.toDashed = function (t) {
                        return t
                          .replace(/(.)([A-Z])/g, function (t, e, n) {
                            return e + "-" + n;
                          })
                          .toLowerCase();
                      }),
                      n.console);
                  return (
                    (u.htmlInit = function (a, s) {
                      u.docReady(function () {
                        var t = u.toDashed(s),
                          r = "data-" + t,
                          e = document.querySelectorAll("[" + r + "]"),
                          t = document.querySelectorAll(".js-" + t),
                          e = u.makeArray(e).concat(u.makeArray(t)),
                          i = r + "-options",
                          o = n.jQuery;
                        e.forEach(function (e) {
                          var t,
                            n = e.getAttribute(r) || e.getAttribute(i);
                          try {
                            t = n && JSON.parse(n);
                          } catch (t) {
                            return void (
                              c &&
                              c.error(
                                "Error parsing " +
                                  r +
                                  " on " +
                                  e.className +
                                  ": " +
                                  t,
                              )
                            );
                          }
                          n = new a(e, t);
                          o && o.data(e, s, n);
                        });
                      });
                    }),
                    u
                  );
                })(r, t);
              }.apply(e, n)) && (t.exports = e));
        },
        816: (t, e, n) => {
          var r;
          (window,
            void 0 !==
              (n =
                "function" ==
                typeof (r = function () {
                  "use strict";
                  function m(t) {
                    var e = parseFloat(t);
                    return -1 == t.indexOf("%") && !isNaN(e) && e;
                  }
                  var e =
                      "undefined" == typeof console
                        ? function () {}
                        : function (t) {},
                    v = [
                      "paddingLeft",
                      "paddingRight",
                      "paddingTop",
                      "paddingBottom",
                      "marginLeft",
                      "marginRight",
                      "marginTop",
                      "marginBottom",
                      "borderLeftWidth",
                      "borderRightWidth",
                      "borderTopWidth",
                      "borderBottomWidth",
                    ],
                    y = v.length;
                  function b(t) {
                    t = getComputedStyle(t);
                    return (
                      t ||
                        e(
                          "Style returned " +
                            t +
                            ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1",
                        ),
                      t
                    );
                  }
                  var x,
                    w = !1;
                  function P(t) {
                    if (
                      (w ||
                        ((w = !0),
                        ((l = document.createElement("div")).style.width =
                          "200px"),
                        (l.style.padding = "1px 2px 3px 4px"),
                        (l.style.borderStyle = "solid"),
                        (l.style.borderWidth = "1px 2px 3px 4px"),
                        (l.style.boxSizing = "border-box"),
                        (c =
                          document.body ||
                          document.documentElement).appendChild(l),
                        (o = b(l)),
                        (x = 200 == Math.round(m(o.width))),
                        (P.isBoxSizeOuter = x),
                        c.removeChild(l)),
                      (t =
                        "string" == typeof t ? document.querySelector(t) : t) &&
                        "object" == typeof t &&
                        t.nodeType)
                    ) {
                      var e = b(t);
                      if ("none" == e.display) {
                        for (
                          var n = {
                              width: 0,
                              height: 0,
                              innerWidth: 0,
                              innerHeight: 0,
                              outerWidth: 0,
                              outerHeight: 0,
                            },
                            r = 0;
                          r < y;
                          r++
                        )
                          n[v[r]] = 0;
                        return n;
                      }
                      var i = {};
                      ((i.width = t.offsetWidth), (i.height = t.offsetHeight));
                      for (
                        var o = (i.isBorderBox = "border-box" == e.boxSizing),
                          a = 0;
                        a < y;
                        a++
                      ) {
                        var s = v[a],
                          u = e[s],
                          u = parseFloat(u);
                        i[s] = isNaN(u) ? 0 : u;
                      }
                      var c = i.paddingLeft + i.paddingRight,
                        l = i.paddingTop + i.paddingBottom,
                        t = i.marginLeft + i.marginRight,
                        h = i.marginTop + i.marginBottom,
                        f = i.borderLeftWidth + i.borderRightWidth,
                        d = i.borderTopWidth + i.borderBottomWidth,
                        p = o && x,
                        g = m(e.width),
                        g =
                          (!1 !== g && (i.width = g + (p ? 0 : c + f)),
                          m(e.height));
                      return (
                        !1 !== g && (i.height = g + (p ? 0 : l + d)),
                        (i.innerWidth = i.width - (c + f)),
                        (i.innerHeight = i.height - (l + d)),
                        (i.outerWidth = i.width + t),
                        (i.outerHeight = i.height + h),
                        i
                      );
                    }
                    var l, c, o;
                  }
                  return P;
                })
                  ? r.call(e, n, e, t)
                  : r) && (t.exports = n));
        },
        305: (t, e, n) => {
          var r;
          (window,
            (n = [n(202), n(816)]),
            void 0 !==
              (e =
                "function" ==
                typeof (r = function (t, s) {
                  "use strict";
                  var t = t.create("masonry"),
                    e =
                      ((t.compatOptions.fitWidth = "isFitWidth"), t.prototype);
                  return (
                    (e._resetLayout = function () {
                      (this.getSize(),
                        this._getMeasurement("columnWidth", "outerWidth"),
                        this._getMeasurement("gutter", "outerWidth"),
                        this.measureColumns(),
                        (this.colYs = []));
                      for (var t = 0; t < this.cols; t++) this.colYs.push(0);
                      ((this.maxY = 0), (this.horizontalColIndex = 0));
                    }),
                    (e.measureColumns = function () {
                      (this.getContainerWidth(),
                        this.columnWidth ||
                          ((t = (t = this.items[0]) && t.element),
                          (this.columnWidth =
                            (t && s(t).outerWidth) || this.containerWidth)));
                      var t = (this.columnWidth += this.gutter),
                        e = this.containerWidth + this.gutter,
                        n = e / t,
                        e = t - (e % t),
                        n = Math[e && e < 1 ? "round" : "floor"](n);
                      this.cols = Math.max(n, 1);
                    }),
                    (e.getContainerWidth = function () {
                      var t = this._getOption("fitWidth")
                          ? this.element.parentNode
                          : this.element,
                        t = s(t);
                      this.containerWidth = t && t.innerWidth;
                    }),
                    (e._getItemLayoutPosition = function (t) {
                      t.getSize();
                      for (
                        var e = t.size.outerWidth % this.columnWidth,
                          e = Math[e && e < 1 ? "round" : "ceil"](
                            t.size.outerWidth / this.columnWidth,
                          ),
                          e = Math.min(e, this.cols),
                          n = this[
                            this.options.horizontalOrder
                              ? "_getHorizontalColPosition"
                              : "_getTopColPosition"
                          ](e, t),
                          r = { x: this.columnWidth * n.col, y: n.y },
                          i = n.y + t.size.outerHeight,
                          o = e + n.col,
                          a = n.col;
                        a < o;
                        a++
                      )
                        this.colYs[a] = i;
                      return r;
                    }),
                    (e._getTopColPosition = function (t) {
                      var t = this._getTopColGroup(t),
                        e = Math.min.apply(Math, t);
                      return { col: t.indexOf(e), y: e };
                    }),
                    (e._getTopColGroup = function (t) {
                      if (t < 2) return this.colYs;
                      for (var e = [], n = this.cols + 1 - t, r = 0; r < n; r++)
                        e[r] = this._getColGroupY(r, t);
                      return e;
                    }),
                    (e._getColGroupY = function (t, e) {
                      return e < 2
                        ? this.colYs[t]
                        : ((t = this.colYs.slice(t, t + e)),
                          Math.max.apply(Math, t));
                    }),
                    (e._getHorizontalColPosition = function (t, e) {
                      var n = this.horizontalColIndex % this.cols,
                        n = 1 < t && n + t > this.cols ? 0 : n,
                        e = e.size.outerWidth && e.size.outerHeight;
                      return (
                        (this.horizontalColIndex = e
                          ? n + t
                          : this.horizontalColIndex),
                        { col: n, y: this._getColGroupY(n, t) }
                      );
                    }),
                    (e._manageStamp = function (t) {
                      var e = s(t),
                        t = this._getElementOffset(t),
                        n = this._getOption("originLeft") ? t.left : t.right,
                        r = n + e.outerWidth,
                        n = Math.floor(n / this.columnWidth),
                        n = Math.max(0, n),
                        i = Math.floor(r / this.columnWidth);
                      i -= r % this.columnWidth ? 0 : 1;
                      for (
                        var i = Math.min(this.cols - 1, i),
                          o =
                            (this._getOption("originTop") ? t.top : t.bottom) +
                            e.outerHeight,
                          a = n;
                        a <= i;
                        a++
                      )
                        this.colYs[a] = Math.max(o, this.colYs[a]);
                    }),
                    (e._getContainerSize = function () {
                      this.maxY = Math.max.apply(Math, this.colYs);
                      var t = { height: this.maxY };
                      return (
                        this._getOption("fitWidth") &&
                          (t.width = this._getContainerFitWidth()),
                        t
                      );
                    }),
                    (e._getContainerFitWidth = function () {
                      for (
                        var t = 0, e = this.cols;
                        --e && 0 === this.colYs[e];
                      )
                        t++;
                      return (this.cols - t) * this.columnWidth - this.gutter;
                    }),
                    (e.needsResizeLayout = function () {
                      var t = this.containerWidth;
                      return (
                        this.getContainerWidth(),
                        t != this.containerWidth
                      );
                    }),
                    t
                  );
                })
                  ? r.apply(e, n)
                  : r) && (t.exports = e));
        },
        604: (t, e, n) => {
          var r;
          (window,
            (n = [n(360), n(816)]),
            void 0 !==
              (e =
                "function" ==
                typeof (r = function (t, e) {
                  "use strict";
                  var n = document.documentElement.style,
                    r =
                      "string" == typeof n.transition
                        ? "transition"
                        : "WebkitTransition",
                    n =
                      "string" == typeof n.transform
                        ? "transform"
                        : "WebkitTransform",
                    i = {
                      WebkitTransition: "webkitTransitionEnd",
                      transition: "transitionend",
                    }[r],
                    o = {
                      transform: n,
                      transition: r,
                      transitionDuration: r + "Duration",
                      transitionProperty: r + "Property",
                      transitionDelay: r + "Delay",
                    };
                  function a(t, e) {
                    t &&
                      ((this.element = t),
                      (this.layout = e),
                      (this.position = { x: 0, y: 0 }),
                      this._create());
                  }
                  t = a.prototype = Object.create(t.prototype);
                  ((t.constructor = a),
                    (t._create = function () {
                      ((this._transn = {
                        ingProperties: {},
                        clean: {},
                        onEnd: {},
                      }),
                        this.css({ position: "absolute" }));
                    }),
                    (t.handleEvent = function (t) {
                      var e = "on" + t.type;
                      this[e] && this[e](t);
                    }),
                    (t.getSize = function () {
                      this.size = e(this.element);
                    }),
                    (t.css = function (t) {
                      var e,
                        n = this.element.style;
                      for (e in t) n[o[e] || e] = t[e];
                    }),
                    (t.getPosition = function () {
                      var t = getComputedStyle(this.element),
                        e = this.layout._getOption("originLeft"),
                        n = this.layout._getOption("originTop"),
                        r = t[e ? "left" : "right"],
                        t = t[n ? "top" : "bottom"],
                        i = parseFloat(r),
                        o = parseFloat(t),
                        a = this.layout.size;
                      (-1 != r.indexOf("%") && (i = (i / 100) * a.width),
                        -1 != t.indexOf("%") && (o = (o / 100) * a.height),
                        (i = isNaN(i) ? 0 : i),
                        (o = isNaN(o) ? 0 : o),
                        (i -= e ? a.paddingLeft : a.paddingRight),
                        (o -= n ? a.paddingTop : a.paddingBottom),
                        (this.position.x = i),
                        (this.position.y = o));
                    }),
                    (t.layoutPosition = function () {
                      var t = this.layout.size,
                        e = {},
                        n = this.layout._getOption("originLeft"),
                        r = this.layout._getOption("originTop"),
                        i = n ? "right" : "left",
                        o =
                          this.position.x +
                          t[n ? "paddingLeft" : "paddingRight"],
                        n =
                          ((e[n ? "left" : "right"] = this.getXValue(o)),
                          (e[i] = ""),
                          r ? "paddingTop" : "paddingBottom"),
                        o = r ? "bottom" : "top",
                        i = this.position.y + t[n];
                      ((e[r ? "top" : "bottom"] = this.getYValue(i)),
                        (e[o] = ""),
                        this.css(e),
                        this.emitEvent("layout", [this]));
                    }),
                    (t.getXValue = function (t) {
                      var e = this.layout._getOption("horizontal");
                      return this.layout.options.percentPosition && !e
                        ? (t / this.layout.size.width) * 100 + "%"
                        : t + "px";
                    }),
                    (t.getYValue = function (t) {
                      var e = this.layout._getOption("horizontal");
                      return this.layout.options.percentPosition && e
                        ? (t / this.layout.size.height) * 100 + "%"
                        : t + "px";
                    }),
                    (t._transitionTo = function (t, e) {
                      this.getPosition();
                      var n = this.position.x,
                        r = this.position.y,
                        i = t == this.position.x && e == this.position.y;
                      (this.setPosition(t, e),
                        !i || this.isTransitioning
                          ? (((i = {}).transform = this.getTranslate(
                              t - n,
                              e - r,
                            )),
                            this.transition({
                              to: i,
                              onTransitionEnd: {
                                transform: this.layoutPosition,
                              },
                              isCleaning: !0,
                            }))
                          : this.layoutPosition());
                    }),
                    (t.getTranslate = function (t, e) {
                      return (
                        "translate3d(" +
                        (t = this.layout._getOption("originLeft") ? t : -t) +
                        "px, " +
                        (this.layout._getOption("originTop") ? e : -e) +
                        "px, 0)"
                      );
                    }),
                    (t.goTo = function (t, e) {
                      (this.setPosition(t, e), this.layoutPosition());
                    }),
                    (t.moveTo = t._transitionTo),
                    (t.setPosition = function (t, e) {
                      ((this.position.x = parseFloat(t)),
                        (this.position.y = parseFloat(e)));
                    }),
                    (t._nonTransition = function (t) {
                      for (var e in (this.css(t.to),
                      t.isCleaning && this._removeStyles(t.to),
                      t.onTransitionEnd))
                        t.onTransitionEnd[e].call(this);
                    }),
                    (t.transition = function (t) {
                      if (parseFloat(this.layout.options.transitionDuration)) {
                        var e,
                          n = this._transn;
                        for (e in t.onTransitionEnd)
                          n.onEnd[e] = t.onTransitionEnd[e];
                        for (e in t.to)
                          ((n.ingProperties[e] = !0),
                            t.isCleaning && (n.clean[e] = !0));
                        (t.from &&
                          (this.css(t.from), this.element.offsetHeight),
                          this.enableTransition(t.to),
                          this.css(t.to),
                          (this.isTransitioning = !0));
                      } else this._nonTransition(t);
                    }));
                  var s =
                      "opacity," +
                      n.replace(/([A-Z])/g, function (t) {
                        return "-" + t.toLowerCase();
                      }),
                    u =
                      ((t.enableTransition = function () {
                        var t;
                        this.isTransitioning ||
                          ((t = this.layout.options.transitionDuration),
                          this.css({
                            transitionProperty: s,
                            transitionDuration: (t =
                              "number" == typeof t ? t + "ms" : t),
                            transitionDelay: this.staggerDelay || 0,
                          }),
                          this.element.addEventListener(i, this, !1));
                      }),
                      (t.onwebkitTransitionEnd = function (t) {
                        this.ontransitionend(t);
                      }),
                      (t.onotransitionend = function (t) {
                        this.ontransitionend(t);
                      }),
                      { "-webkit-transform": "transform" }),
                    c =
                      ((t.ontransitionend = function (t) {
                        var e, n;
                        t.target === this.element &&
                          ((e = this._transn),
                          (n = u[t.propertyName] || t.propertyName),
                          delete e.ingProperties[n],
                          (function (t) {
                            for (var e in t) return;
                            return 1;
                          })(e.ingProperties) && this.disableTransition(),
                          n in e.clean &&
                            ((this.element.style[t.propertyName] = ""),
                            delete e.clean[n]),
                          n in e.onEnd &&
                            (e.onEnd[n].call(this), delete e.onEnd[n]),
                          this.emitEvent("transitionEnd", [this]));
                      }),
                      (t.disableTransition = function () {
                        (this.removeTransitionStyles(),
                          this.element.removeEventListener(i, this, !1),
                          (this.isTransitioning = !1));
                      }),
                      (t._removeStyles = function (t) {
                        var e,
                          n = {};
                        for (e in t) n[e] = "";
                        this.css(n);
                      }),
                      {
                        transitionProperty: "",
                        transitionDuration: "",
                        transitionDelay: "",
                      });
                  return (
                    (t.removeTransitionStyles = function () {
                      this.css(c);
                    }),
                    (t.stagger = function (t) {
                      ((t = isNaN(t) ? 0 : t), (this.staggerDelay = t + "ms"));
                    }),
                    (t.removeElem = function () {
                      (this.element.parentNode.removeChild(this.element),
                        this.css({ display: "" }),
                        this.emitEvent("remove", [this]));
                    }),
                    (t.remove = function () {
                      r && parseFloat(this.layout.options.transitionDuration)
                        ? (this.once("transitionEnd", function () {
                            this.removeElem();
                          }),
                          this.hide())
                        : this.removeElem();
                    }),
                    (t.reveal = function () {
                      (delete this.isHidden, this.css({ display: "" }));
                      var t = this.layout.options,
                        e = {};
                      ((e[
                        this.getHideRevealTransitionEndProperty("visibleStyle")
                      ] = this.onRevealTransitionEnd),
                        this.transition({
                          from: t.hiddenStyle,
                          to: t.visibleStyle,
                          isCleaning: !0,
                          onTransitionEnd: e,
                        }));
                    }),
                    (t.onRevealTransitionEnd = function () {
                      this.isHidden || this.emitEvent("reveal");
                    }),
                    (t.getHideRevealTransitionEndProperty = function (t) {
                      var e,
                        t = this.layout.options[t];
                      if (t.opacity) return "opacity";
                      for (e in t) return e;
                    }),
                    (t.hide = function () {
                      ((this.isHidden = !0), this.css({ display: "" }));
                      var t = this.layout.options,
                        e = {};
                      ((e[
                        this.getHideRevealTransitionEndProperty("hiddenStyle")
                      ] = this.onHideTransitionEnd),
                        this.transition({
                          from: t.visibleStyle,
                          to: t.hiddenStyle,
                          isCleaning: !0,
                          onTransitionEnd: e,
                        }));
                    }),
                    (t.onHideTransitionEnd = function () {
                      this.isHidden &&
                        (this.css({ display: "none" }), this.emitEvent("hide"));
                    }),
                    (t.destroy = function () {
                      this.css({
                        position: "",
                        left: "",
                        right: "",
                        top: "",
                        bottom: "",
                        transition: "",
                        transform: "",
                      });
                    }),
                    a
                  );
                })
                  ? r.apply(e, n)
                  : r) && (t.exports = e));
        },
        202: (t, e, n) => {
          var r;
          !(function (m) {
            "use strict";
            ((r = [n(360), n(816), n(394), n(604)]),
              void 0 !==
                (r = function (t, e, n, r) {
                  return (
                    (t = t),
                    (u = e),
                    (c = n),
                    (l = r),
                    (h = (s = m).console),
                    (f = s.jQuery),
                    (d = 0),
                    (p = {}),
                    (o.namespace = "outlayer"),
                    (o.Item = l),
                    (o.defaults = {
                      containerStyle: { position: "relative" },
                      initLayout: !0,
                      originLeft: !0,
                      originTop: !0,
                      resize: !0,
                      resizeContainer: !0,
                      transitionDuration: "0.4s",
                      hiddenStyle: { opacity: 0, transform: "scale(0.001)" },
                      visibleStyle: { opacity: 1, transform: "scale(1)" },
                    }),
                    (e = o.prototype),
                    c.extend(e, t.prototype),
                    (e.option = function (t) {
                      c.extend(this.options, t);
                    }),
                    (e._getOption = function (t) {
                      var e = this.constructor.compatOptions[t];
                      return e && void 0 !== this.options[e]
                        ? this.options[e]
                        : this.options[t];
                    }),
                    (o.compatOptions = {
                      initLayout: "isInitLayout",
                      horizontal: "isHorizontal",
                      layoutInstant: "isLayoutInstant",
                      originLeft: "isOriginLeft",
                      originTop: "isOriginTop",
                      resize: "isResizeBound",
                      resizeContainer: "isResizingContainer",
                    }),
                    (e._create = function () {
                      (this.reloadItems(),
                        (this.stamps = []),
                        this.stamp(this.options.stamp),
                        c.extend(
                          this.element.style,
                          this.options.containerStyle,
                        ),
                        this._getOption("resize") && this.bindResize());
                    }),
                    (e.reloadItems = function () {
                      this.items = this._itemize(this.element.children);
                    }),
                    (e._itemize = function (t) {
                      for (
                        var e = this._filterFindItemElements(t),
                          n = this.constructor.Item,
                          r = [],
                          i = 0;
                        i < e.length;
                        i++
                      ) {
                        var o = new n(e[i], this);
                        r.push(o);
                      }
                      return r;
                    }),
                    (e._filterFindItemElements = function (t) {
                      return c.filterFindElements(t, this.options.itemSelector);
                    }),
                    (e.getItemElements = function () {
                      return this.items.map(function (t) {
                        return t.element;
                      });
                    }),
                    (e.layout = function () {
                      (this._resetLayout(), this._manageStamps());
                      var t = this._getOption("layoutInstant"),
                        t = void 0 !== t ? t : !this._isLayoutInited;
                      (this.layoutItems(this.items, t),
                        (this._isLayoutInited = !0));
                    }),
                    (e._init = e.layout),
                    (e._resetLayout = function () {
                      this.getSize();
                    }),
                    (e.getSize = function () {
                      this.size = u(this.element);
                    }),
                    (e._getMeasurement = function (t, e) {
                      var n,
                        r = this.options[t];
                      r
                        ? ("string" == typeof r
                            ? (n = this.element.querySelector(r))
                            : r instanceof HTMLElement && (n = r),
                          (this[t] = n ? u(n)[e] : r))
                        : (this[t] = 0);
                    }),
                    (e.layoutItems = function (t, e) {
                      ((t = this._getItemsForLayout(t)),
                        this._layoutItems(t, e),
                        this._postLayout());
                    }),
                    (e._getItemsForLayout = function (t) {
                      return t.filter(function (t) {
                        return !t.isIgnored;
                      });
                    }),
                    (e._layoutItems = function (t, n) {
                      var r;
                      (this._emitCompleteOnItems("layout", t),
                        t &&
                          t.length &&
                          ((r = []),
                          t.forEach(function (t) {
                            var e = this._getItemLayoutPosition(t);
                            ((e.item = t),
                              (e.isInstant = n || t.isLayoutInstant),
                              r.push(e));
                          }, this),
                          this._processLayoutQueue(r)));
                    }),
                    (e._getItemLayoutPosition = function () {
                      return { x: 0, y: 0 };
                    }),
                    (e._processLayoutQueue = function (t) {
                      (this.updateStagger(),
                        t.forEach(function (t, e) {
                          this._positionItem(t.item, t.x, t.y, t.isInstant, e);
                        }, this));
                    }),
                    (e.updateStagger = function () {
                      var t,
                        e = this.options.stagger;
                      if (null != e)
                        return (
                          (this.stagger =
                            "number" == typeof (e = e)
                              ? e
                              : ((e = e.match(/(^\d*\.?\d*)(\w*)/)),
                                (t = e && e[1]),
                                (e = e && e[2]),
                                t.length
                                  ? (t = parseFloat(t)) * (g[e] || 1)
                                  : 0)),
                          this.stagger
                        );
                      this.stagger = 0;
                    }),
                    (e._positionItem = function (t, e, n, r, i) {
                      r
                        ? t.goTo(e, n)
                        : (t.stagger(i * this.stagger), t.moveTo(e, n));
                    }),
                    (e._postLayout = function () {
                      this.resizeContainer();
                    }),
                    (e.resizeContainer = function () {
                      var t;
                      this._getOption("resizeContainer") &&
                        (t = this._getContainerSize()) &&
                        (this._setContainerMeasure(t.width, !0),
                        this._setContainerMeasure(t.height, !1));
                    }),
                    (e._getContainerSize = i),
                    (e._setContainerMeasure = function (t, e) {
                      var n;
                      void 0 !== t &&
                        ((n = this.size).isBorderBox &&
                          (t += e
                            ? n.paddingLeft +
                              n.paddingRight +
                              n.borderLeftWidth +
                              n.borderRightWidth
                            : n.paddingBottom +
                              n.paddingTop +
                              n.borderTopWidth +
                              n.borderBottomWidth),
                        (t = Math.max(t, 0)),
                        (this.element.style[e ? "width" : "height"] =
                          t + "px"));
                    }),
                    (e._emitCompleteOnItems = function (e, t) {
                      var n = this;
                      function r() {
                        n.dispatchEvent(e + "Complete", null, [t]);
                      }
                      var i,
                        o = t.length;
                      function a() {
                        ++i == o && r();
                      }
                      t && o
                        ? ((i = 0),
                          t.forEach(function (t) {
                            t.once(e, a);
                          }))
                        : r();
                    }),
                    (e.dispatchEvent = function (t, e, n) {
                      var r = e ? [e].concat(n) : n;
                      (this.emitEvent(t, r),
                        f &&
                          ((this.$element = this.$element || f(this.element)),
                          e
                            ? (((r = f.Event(e)).type = t),
                              this.$element.trigger(r, n))
                            : this.$element.trigger(t, n)));
                    }),
                    (e.ignore = function (t) {
                      t = this.getItem(t);
                      t && (t.isIgnored = !0);
                    }),
                    (e.unignore = function (t) {
                      t = this.getItem(t);
                      t && delete t.isIgnored;
                    }),
                    (e.stamp = function (t) {
                      (t = this._find(t)) &&
                        ((this.stamps = this.stamps.concat(t)),
                        t.forEach(this.ignore, this));
                    }),
                    (e.unstamp = function (t) {
                      (t = this._find(t)) &&
                        t.forEach(function (t) {
                          (c.removeFrom(this.stamps, t), this.unignore(t));
                        }, this);
                    }),
                    (e._find = function (t) {
                      if (t)
                        return (
                          "string" == typeof t &&
                            (t = this.element.querySelectorAll(t)),
                          c.makeArray(t)
                        );
                    }),
                    (e._manageStamps = function () {
                      this.stamps &&
                        this.stamps.length &&
                        (this._getBoundingRect(),
                        this.stamps.forEach(this._manageStamp, this));
                    }),
                    (e._getBoundingRect = function () {
                      var t = this.element.getBoundingClientRect(),
                        e = this.size;
                      this._boundingRect = {
                        left: t.left + e.paddingLeft + e.borderLeftWidth,
                        top: t.top + e.paddingTop + e.borderTopWidth,
                        right: t.right - (e.paddingRight + e.borderRightWidth),
                        bottom:
                          t.bottom - (e.paddingBottom + e.borderBottomWidth),
                      };
                    }),
                    (e._manageStamp = i),
                    (e._getElementOffset = function (t) {
                      var e = t.getBoundingClientRect(),
                        n = this._boundingRect,
                        t = u(t);
                      return {
                        left: e.left - n.left - t.marginLeft,
                        top: e.top - n.top - t.marginTop,
                        right: n.right - e.right - t.marginRight,
                        bottom: n.bottom - e.bottom - t.marginBottom,
                      };
                    }),
                    (e.handleEvent = c.handleEvent),
                    (e.bindResize = function () {
                      (s.addEventListener("resize", this),
                        (this.isResizeBound = !0));
                    }),
                    (e.unbindResize = function () {
                      (s.removeEventListener("resize", this),
                        (this.isResizeBound = !1));
                    }),
                    (e.onresize = function () {
                      this.resize();
                    }),
                    c.debounceMethod(o, "onresize", 100),
                    (e.resize = function () {
                      this.isResizeBound &&
                        this.needsResizeLayout() &&
                        this.layout();
                    }),
                    (e.needsResizeLayout = function () {
                      var t = u(this.element);
                      return (
                        this.size && t && t.innerWidth !== this.size.innerWidth
                      );
                    }),
                    (e.addItems = function (t) {
                      t = this._itemize(t);
                      return (
                        t.length && (this.items = this.items.concat(t)),
                        t
                      );
                    }),
                    (e.appended = function (t) {
                      t = this.addItems(t);
                      t.length && (this.layoutItems(t, !0), this.reveal(t));
                    }),
                    (e.prepended = function (t) {
                      var e,
                        t = this._itemize(t);
                      t.length &&
                        ((e = this.items.slice(0)),
                        (this.items = t.concat(e)),
                        this._resetLayout(),
                        this._manageStamps(),
                        this.layoutItems(t, !0),
                        this.reveal(t),
                        this.layoutItems(e));
                    }),
                    (e.reveal = function (t) {
                      var n;
                      (this._emitCompleteOnItems("reveal", t),
                        t &&
                          t.length &&
                          ((n = this.updateStagger()),
                          t.forEach(function (t, e) {
                            (t.stagger(e * n), t.reveal());
                          })));
                    }),
                    (e.hide = function (t) {
                      var n;
                      (this._emitCompleteOnItems("hide", t),
                        t &&
                          t.length &&
                          ((n = this.updateStagger()),
                          t.forEach(function (t, e) {
                            (t.stagger(e * n), t.hide());
                          })));
                    }),
                    (e.revealItemElements = function (t) {
                      t = this.getItems(t);
                      this.reveal(t);
                    }),
                    (e.hideItemElements = function (t) {
                      t = this.getItems(t);
                      this.hide(t);
                    }),
                    (e.getItem = function (t) {
                      for (var e = 0; e < this.items.length; e++) {
                        var n = this.items[e];
                        if (n.element == t) return n;
                      }
                    }),
                    (e.getItems = function (t) {
                      t = c.makeArray(t);
                      var e = [];
                      return (
                        t.forEach(function (t) {
                          t = this.getItem(t);
                          t && e.push(t);
                        }, this),
                        e
                      );
                    }),
                    (e.remove = function (t) {
                      t = this.getItems(t);
                      (this._emitCompleteOnItems("remove", t),
                        t &&
                          t.length &&
                          t.forEach(function (t) {
                            (t.remove(), c.removeFrom(this.items, t));
                          }, this));
                    }),
                    (e.destroy = function () {
                      var t = this.element.style,
                        t =
                          ((t.height = ""),
                          (t.position = ""),
                          (t.width = ""),
                          this.items.forEach(function (t) {
                            t.destroy();
                          }),
                          this.unbindResize(),
                          this.element.outlayerGUID);
                      (delete p[t],
                        delete this.element.outlayerGUID,
                        f &&
                          f.removeData(
                            this.element,
                            this.constructor.namespace,
                          ));
                    }),
                    (o.data = function (t) {
                      t = (t = c.getQueryElement(t)) && t.outlayerGUID;
                      return t && p[t];
                    }),
                    (o.create = function (t, e) {
                      var n = a(o);
                      return (
                        (n.defaults = c.extend({}, o.defaults)),
                        c.extend(n.defaults, e),
                        (n.compatOptions = c.extend({}, o.compatOptions)),
                        (n.namespace = t),
                        (n.data = o.data),
                        (n.Item = a(l)),
                        c.htmlInit(n, t),
                        f && f.bridget && f.bridget(t, n),
                        n
                      );
                    }),
                    (g = { ms: 1, s: 1e3 }),
                    (o.Item = l),
                    o
                  );
                  function i() {}
                  function o(t, e) {
                    var n = c.getQueryElement(t);
                    n
                      ? ((this.element = n),
                        f && (this.$element = f(this.element)),
                        (this.options = c.extend(
                          {},
                          this.constructor.defaults,
                        )),
                        this.option(e),
                        (e = ++d),
                        (this.element.outlayerGUID = e),
                        (p[e] = this)._create(),
                        this._getOption("initLayout") && this.layout())
                      : h &&
                        h.error(
                          "Bad element for " +
                            this.constructor.namespace +
                            ": " +
                            (n || t),
                        );
                  }
                  function a(t) {
                    function e() {
                      t.apply(this, arguments);
                    }
                    return ((e.prototype = Object.create(
                      t.prototype,
                    )).constructor = e);
                  }
                  var s, u, c, l, h, f, d, p, g;
                }.apply(e, r)) && (t.exports = r));
          })(window);
        },
      },
      r = {};
    function v(t) {
      var e = r[t];
      return (
        void 0 !== e ||
          ((e = r[t] = { exports: {} }), n[t].call(e.exports, e, e.exports, v)),
        e.exports
      );
    }
    (() => {
      "use strict";
      function u(t, e) {
        (null == e || e > t.length) && (e = t.length);
        for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n];
        return r;
      }
      function i(t) {
        return (i =
          "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
            ? function (t) {
                return typeof t;
              }
            : function (t) {
                return t &&
                  "function" == typeof Symbol &&
                  t.constructor === Symbol &&
                  t !== Symbol.prototype
                  ? "symbol"
                  : typeof t;
              })(t);
      }
      function g(t) {
        var e = t.type,
          n = void 0 === (n = t.classList) ? [] : n,
          t = void 0 === (t = t.attributes) ? {} : t,
          r = document.createElement(e);
        n.forEach(function (t) {
          r.classList.add(t);
        });
        for (var i = 0, o = Object.entries(t); i < o.length; i++) {
          ((a = o[i]), (s = 2));
          var a =
              (function (t) {
                if (Array.isArray(t)) return t;
              })(a) ||
              (function (t, e) {
                var n =
                  null == t
                    ? null
                    : ("undefined" != typeof Symbol && t[Symbol.iterator]) ||
                      t["@@iterator"];
                if (null != n) {
                  var r,
                    i,
                    o,
                    a,
                    s = [],
                    u = !0,
                    c = !1;
                  try {
                    if (((o = (n = n.call(t)).next), 0 === e)) {
                      if (Object(n) !== n) return;
                      u = !1;
                    } else
                      for (
                        ;
                        !(u = (r = o.call(n)).done) &&
                        (s.push(r.value), s.length !== e);
                        u = !0
                      );
                  } catch (t) {
                    ((c = !0), (i = t));
                  } finally {
                    try {
                      if (
                        !u &&
                        null != n.return &&
                        ((a = n.return()), Object(a) !== a)
                      )
                        return;
                    } finally {
                      if (c) throw i;
                    }
                  }
                  return s;
                }
              })(a, s) ||
              (function (t, e) {
                var n;
                if (t)
                  return "string" == typeof t
                    ? u(t, e)
                    : "Map" ===
                          (n =
                            "Object" ===
                              (n = Object.prototype.toString
                                .call(t)
                                .slice(8, -1)) && t.constructor
                              ? t.constructor.name
                              : n) || "Set" === n
                      ? Array.from(t)
                      : "Arguments" === n ||
                          /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
                        ? u(t, e)
                        : void 0;
              })(a, s) ||
              (function () {
                throw new TypeError(
                  "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.",
                );
              })(),
            s = a[0],
            a = a[1];
          r.setAttribute(s, a);
        }
        return r;
      }
      ((l.extendParams = function (t) {
        return l.deepExtend(
          {
            question: "No question text provided",
            behaviour: {
              enableSolutionsButton: !0,
              enableRetry: !0,
              questionType: "auto",
              confirmCheckDialog: !1,
              confirmRetryDialog: !1,
              aspectRatio: "auto",
              maxAlternativesPerRow: 4,
            },
            l10n: {
              checkAnswerButtonText: "Check",
              submitAnswerButtonText: "Submit",
              checkAnswer:
                "Check the answers. The responses will be marked as correct, incorrect, or unanswered.",
              showSolutionButtonText: "Show solution",
              showSolution:
                "Show the solution. The task will be marked with its correct solution.",
              correctAnswer: "Correct answer",
              wrongAnswer: "Wrong answer",
              shouldCheck: "Should have been checked",
              shouldNotCheck: "Should not have been checked",
              noAnswer: "Please answer before viewing the solution",
              retryText: "Retry",
              retry:
                "Retry the task. Reset all responses and start the task over again.",
              result: "You got :num out of :total points",
              confirmCheck: {
                header: "Finish?",
                body: "Are you sure you want to finish?",
                cancelLabel: "Cancel",
                confirmLabel: "Finish",
              },
              confirmRetry: {
                header: "Retry?",
                body: "Are you sure you wish to retry?",
                cancelLabel: "Cancel",
                confirmLabel: "Retry",
              },
              missingAltText: "Alt text missing",
            },
          },
          t,
        );
      }),
        (l.deepExtend = function (t) {
          t = t || {};
          for (var e = 1; e < arguments.length; e++) {
            var n = arguments[e];
            if (n)
              for (var r in (Array.isArray(n) && (t = n), n))
                Object.prototype.hasOwnProperty.call(n, r) &&
                  ("object" === i(n[r])
                    ? (t[r] = l.deepExtend(t[r], n[r]))
                    : (t[r] = n[r]));
          }
          return t;
        }));
      var r = l,
        c = function (t) {
          var e = document.createElement("div");
          return ((e.innerHTML = t), e.textContent);
        },
        o =
          (((p = e.prototype).createMediaContent = function () {
            var t,
              e = g({
                type: "div",
                classList: ["h5p-multi-media-choice-media-wrapper"],
              });
            switch (
              ("auto" !== this.aspectRatio &&
                (e.classList.add(
                  "h5p-multi-media-choice-media-wrapper-specific-ratio",
                ),
                e.classList.add(
                  "h5p-multi-media-choice-media-wrapper-".concat(
                    this.aspectRatio,
                  ),
                )),
              null == (t = this.media) || null == (t = t.library)
                ? void 0
                : t.split(" ")[0])
            ) {
              case "H5P.Image":
                e.appendChild(this.buildImage(this.option));
                break;
              case "H5P.Video":
                (e.appendChild(this.buildImage(this.option)),
                  this.wrapper.appendChild(this.buildVideo(this.option)));
                break;
              case "H5P.Audio":
                (e.appendChild(this.buildImage(this.option)),
                  this.buildAudio());
            }
            return e;
          }),
          (p.getDescription = function () {
            var t;
            return "H5P.Image" === this.media.library.split(" ")[0]
              ? this.media.params.alt || this.missingAltText
              : null == (t = this.media) || null == (t = t.metadata)
                ? void 0
                : t.title;
          }),
          (p.buildVideo = function () {
            var t,
              e,
              n = this;
            return this.media.params.sources
              ? ((t = g({
                  type: "button",
                  classList: ["h5p-multi-media-video-button"],
                  attributes: { tabindex: "0" },
                })),
                (e = g({ type: "div", classList: ["play-icon"] })),
                t.appendChild(e),
                (null != (e = this.media) &&
                  null != (e = e.params) &&
                  null != (e = e.visuals) &&
                  null != (e = e.poster) &&
                  e.path) ||
                  t.classList.add(
                    "h5p-multi-media-content-media-button-centered",
                  ),
                (t.onclick = function (t) {
                  t.stopPropagation();
                }),
                t.addEventListener("click", function (t) {
                  var e = document.activeElement,
                    e = n.createVideoPlayer(e);
                  (e.setAttribute("tabindex", "0"),
                    e.focus(),
                    t.stopPropagation());
                }),
                t)
              : document.createElement("div");
          }),
          (p.buildAudio = function () {
            var t,
              e = this;
            this.media.params.files &&
              ((t = H5P.jQuery("<div>", {
                class:
                  "h5p-multi-media-content-audio-wrapper" +
                  (this.option.poster
                    ? ""
                    : " h5p-multi-media-content-media-button-centered"),
              })),
              H5P.jQuery(this.wrapper).append(t),
              (this.media.params.playerMode = "minimalistic"),
              (this.media.params.propagateButtonClickEvents = !1),
              (this.media.params.autoplay = !1),
              (this.instance = H5P.newRunnable(
                this.media,
                this.contentId,
                t,
                !1,
              )),
              this.instance.audio.addEventListener("play", function () {
                e.callbacks.pauseAllOtherMedia();
              }));
          }),
          (p.buildImage = function () {
            var t = this.media.params.alt || "",
              e = this.media.params.title || "",
              n = "";
            switch (
              null == (r = this.media) || null == (r = r.library)
                ? void 0
                : r.split(" ")[0]
            ) {
              case "H5P.Image":
                this.media.params.file &&
                  (n = H5P.getPath(
                    this.media.params.file.path,
                    this.contentId,
                  ));
                break;
              case "H5P.Video":
                this.media.params.visuals.poster &&
                  (n = H5P.getPath(
                    this.media.params.visuals.poster.path,
                    this.contentId,
                  ));
                break;
              case "H5P.Audio":
                this.option.poster &&
                  (n = H5P.getPath(this.option.poster.path, this.contentId));
            }
            var r = c(t),
              t = g({
                type: "img",
                classList: ["h5p-multi-media-choice-media"],
                attributes: { src: n, alt: r },
              });
            return (
              "auto" !== this.aspectRatio &&
                t.classList.add("h5p-multi-media-choice-media-specific-ratio"),
              t.addEventListener("load", this.callbacks.triggerResize),
              this.content.setAttribute("aria-label", r),
              this.content.setAttribute("title", c(e)),
              t
            );
          }),
          (p.createVideoPlayer = function (t) {
            function e(t) {
              r.resizeWindow(t);
            }
            function n() {
              (i.remove(),
                (window.onkeydown = null),
                (window.onclick = null),
                (window.onresize = null),
                t.focus(),
                (h.style.minHeight = "0"),
                f());
            }
            var r = this,
              i = g({
                type: "div",
                classList: ["h5p-multi-media-modal"],
                attributes: { "aria-modal": "true" },
              }),
              o = g({ type: "div", classList: ["modal-container"] }),
              a = g({ type: "div", classList: ["modal-content"] }),
              s = g({
                type: "button",
                classList: ["modal-close-button"],
                attributes: { "aria-label": this.closeModalText },
              }),
              u = g({ type: "div", classList: ["icon-cross"] }),
              c =
                (i.appendChild(o),
                o.appendChild(a),
                a.appendChild(s),
                s.appendChild(u),
                this.frame.appendChild(i),
                (this.media.params.visuals.poster = void 0),
                H5P.jQuery("<div></div>")),
              l =
                (H5P.jQuery(a).append(c),
                (this.media.params.visuals.fit = !1),
                this.instance
                  ? (this.instance.attach(c), this.instance.trigger("resize"))
                  : (this.instance = H5P.newRunnable(
                      this.media,
                      this.contentId,
                      c,
                      !0,
                    )),
                this.instance),
              h = this.frame,
              f =
                ((window.onresize = function () {
                  (l.trigger("resize"), e(a));
                }),
                this.callbacks.pauseAllOtherMedia(),
                function () {
                  return r.callbacks.triggerResize();
                }),
              c =
                (l.on(
                  "video/Panopto" ===
                    (null == (c = this.media.params) ||
                    null == (c = c.sources[0])
                      ? void 0
                      : c.mime)
                    ? "containerLoaded"
                    : "loaded",
                  function (t) {
                    (f(), e(a));
                  },
                ),
                i.querySelectorAll(".h5p-video,  button:not([disabled])")),
              d = c[0],
              p = c[c.length - 1];
            return (
              (window.onkeydown = function (t) {
                ("Escape" === t.key && n(),
                  ("Tab" !== t.key && 9 !== t.keyCode) ||
                    (document.activeElement != d &&
                      document.activeElement != p &&
                      d.focus(),
                    t.shiftKey
                      ? document.activeElement === d &&
                        (p.focus(), t.preventDefault())
                      : document.activeElement === p &&
                        (d.focus(), t.preventDefault())));
              }),
              (window.onclick = function (t) {
                (t.target != i &&
                  t.target != s &&
                  t.target != o &&
                  t.target != u) ||
                  n();
              }),
              f(),
              this.resizeWindow(a),
              i
            );
          }),
          (p.resizeWindow = function (t) {
            this.frame.offsetHeight - 50 < t.offsetHeight &&
              (this.frame.style.minHeight = t.offsetHeight + 150 + "px");
          }),
          (p.isSelected = function () {
            return "true" === this.content.getAttribute("aria-checked");
          }),
          (p.isCorrect = function () {
            return this.correct;
          }),
          (p.isDisabled = function () {
            return "true" === this.content.getAttribute("aria-disabled");
          }),
          (p.getDOM = function () {
            return this.content;
          }),
          (p.setTabIndex = function (t) {
            -1 === t
              ? this.content.setAttribute("tabindex", "-1")
              : this.content.setAttribute("tabindex", "0");
          }),
          (p.toggle = function () {
            this.isSelected()
              ? (this.content.setAttribute("aria-checked", "false"),
                this.wrapper.classList.remove(
                  "h5p-multi-media-choice-selected",
                ))
              : (this.content.setAttribute("aria-checked", "true"),
                this.wrapper.classList.add("h5p-multi-media-choice-selected"));
          }),
          (p.uncheck = function () {
            (this.content.setAttribute("aria-checked", "false"),
              this.wrapper.classList.remove("h5p-multi-media-choice-selected"));
          }),
          (p.focus = function () {
            this.content.focus();
          }),
          (p.enable = function () {
            (this.content.setAttribute("aria-disabled", "false"),
              this.wrapper.classList.add("h5p-multi-media-choice-enabled"));
          }),
          (p.disable = function () {
            (this.content.setAttribute("aria-disabled", "true"),
              this.content.setAttribute("tabindex", "-1"),
              this.wrapper.classList.remove("h5p-multi-media-choice-enabled"));
          }),
          (p.showSelectedSolution = function (t) {
            var e = t.correctAnswer,
              t = t.wrongAnswer;
            (this.wrapper.classList.remove("h5p-multi-media-choice-selected"),
              this.isSelected() &&
                (this.correct
                  ? (this.wrapper.classList.add(
                      "h5p-multi-media-choice-correct",
                    ),
                    this.addAccessibilitySolutionText(e))
                  : (this.wrapper.classList.add("h5p-multi-media-choice-wrong"),
                    this.addAccessibilitySolutionText(t))));
          }),
          (p.showUnselectedSolution = function (t) {
            var e = t.shouldCheck,
              t = t.shouldNotCheck;
            this.isSelected() ||
              (this.correct
                ? (this.wrapper.classList.add(
                    "h5p-multi-media-choice-show-correct",
                  ),
                  this.addAccessibilitySolutionText(e))
                : this.addAccessibilitySolutionText(t));
          }),
          (p.addAccessibilitySolutionText = function (t) {
            ((this.accessibilitySolutionText = g({
              type: "span",
              classList: ["hidden-accessibility-solution-text"],
            })),
              (this.accessibilitySolutionText.innerText = "".concat(t, ".")),
              this.wrapper.appendChild(this.accessibilitySolutionText));
          }),
          (p.hideSolution = function () {
            (this.wrapper.classList.remove("h5p-multi-media-choice-correct"),
              this.wrapper.classList.remove(
                "h5p-multi-media-choice-show-correct",
              ),
              this.wrapper.classList.remove("h5p-multi-media-choice-wrong"),
              this.accessibilitySolutionText &&
                this.accessibilitySolutionText.parentNode &&
                this.accessibilitySolutionText.parentNode.removeChild(
                  this.accessibilitySolutionText,
                ));
          }),
          (p.addKeyboardHandlers = function () {
            var e = this;
            this.content.addEventListener("keydown", function (t) {
              switch (t.key) {
                case "Enter":
                case " ":
                  e.isDisabled() ||
                    ("BUTTON" !== document.activeElement.tagName &&
                      (t.preventDefault(), e.callbacks.onKeyboardSelect(e)));
                  break;
                case "ArrowLeft":
                case "ArrowUp":
                  e.singleAnswer &&
                    (t.preventDefault(),
                    e.getDOM() !== e.getDOM().parentNode.firstChild) &&
                    e.callbacks.onKeyboardArrowKey(t.code.replace("Arrow", ""));
                  break;
                case "ArrowRight":
                case "ArrowDown":
                  if (e.singleAnswer)
                    return (
                      t.preventDefault(),
                      e.getDOM() === e.getDOM().parentNode.lastChild
                        ? void 0
                        : void e.callbacks.onKeyboardArrowKey(
                            t.code.replace("Arrow", ""),
                          )
                    );
              }
            });
          }),
          (p.pauseMedia = function () {
            this.instance && this.instance.pause();
          }),
          e),
        a = v(305),
        s =
          (((p = t.prototype).buildOptionList = function () {
            var e = g({
              type: "ul",
              classList: ["h5p-multi-media-choice-option-list"],
              attributes: {
                role: this.isSingleAnswer ? "radiogroup" : "group",
                "aria-labelledby": "h5p-media-choice".concat(this.contentId),
              },
            });
            return (
              this.options.forEach(function (t) {
                e.appendChild(t.getDOM());
              }),
              e
            );
          }),
          (p.getDOM = function () {
            return this.content;
          }),
          (p.singleAnswer = function () {
            return this.isSingleAnswer;
          }),
          (p.getOptions = function () {
            return this.options;
          }),
          (p.getMaxScore = function () {
            return this.params.behaviour.singlePoint ||
              this.isSingleAnswer ||
              this.isBlankCorrect()
              ? 1
              : this.numberOfCorrectOptions;
          }),
          (p.getScore = function () {
            var e;
            return this.params.behaviour.singlePoint &&
              0 === this.params.behaviour.passPercentage
              ? 1
              : this.isAnyAnswerSelected()
                ? this.isSingleAnswer
                  ? this.lastSelectedRadioButtonOption.isCorrect()
                    ? 1
                    : 0
                  : ((e = 0),
                    this.options.forEach(function (t) {
                      t.isSelected() && (t.isCorrect() ? e++ : e--);
                    }),
                    (e = Math.max(0, e)),
                    this.params.behaviour.singlePoint
                      ? (100 * e) / this.numberOfCorrectOptions >=
                        this.params.behaviour.passPercentage
                        ? 1
                        : 0
                      : e)
                : this.isBlankCorrect()
                  ? 1
                  : 0;
          }),
          (p.getSelectedOptions = function () {
            return this.options.filter(function (t) {
              return t.isSelected();
            });
          }),
          (p.isAnyAnswerSelected = function () {
            return 0 < this.getSelectedOptions().length;
          }),
          (p.isBlankCorrect = function () {
            return 0 === this.numberOfCorrectOptions;
          }),
          (p.isPassed = function () {
            return (
              (100 * this.getScore()) / this.getMaxScore() >=
              this.params.behaviour.passPercentage
            );
          }),
          (p.showSelectedSolutions = function () {
            var e = this;
            this.options.forEach(function (t) {
              return t.showSelectedSolution({
                correctAnswer: e.params.l10n.correctAnswer,
                wrongAnswer: e.params.l10n.wrongAnswer,
              });
            });
          }),
          (p.showUnselectedSolutions = function () {
            var e = this;
            this.options.forEach(function (t) {
              return t.showUnselectedSolution({
                shouldCheck: e.params.l10n.shouldCheck,
                shouldNotCheck: e.params.l10n.shouldNotCheck,
              });
            });
          }),
          (p.focusUnselectedSolution = function () {
            var t = document.getElementsByClassName(
              "h5p-multi-media-choice-show-correct",
            )[0];
            t && t.parentNode && t.parentNode.focus();
          }),
          (p.hideSolutions = function () {
            this.options.forEach(function (t) {
              return t.hideSolution();
            });
          }),
          (p.toggleSelected = function (t) {
            var e =
                !(1 < arguments.length && void 0 !== arguments[1]) ||
                arguments[1],
              t = this.options[t];
            if (!t.isDisabled()) {
              if (this.isSingleAnswer) {
                if (t.isSelected()) return;
                (this.lastSelectedRadioButtonOption &&
                  (this.lastSelectedRadioButtonOption.uncheck(),
                  this.lastSelectedRadioButtonOption.setTabIndex(-1)),
                  (this.lastSelectedRadioButtonOption = t),
                  this.lastSelectedRadioButtonOption.setTabIndex(0));
              }
              (t.toggle(), e && this.callbacks.triggerInteracted());
            }
          }),
          (p.resetSelections = function () {
            ((this.lastSelectedRadioButtonOption = null),
              this.setTabIndexes(),
              this.options.forEach(function (t) {
                (t.uncheck(), t.enable());
              }));
          }),
          (p.disableSelectables = function () {
            (this.options.forEach(function (t) {
              return t.disable();
            }),
              this.setTabIndexes(-1));
          }),
          (p.setTabIndexes = function () {
            var e =
              0 < arguments.length && void 0 !== arguments[0]
                ? arguments[0]
                : null;
            this.isSingleAnswer
              ? (this.options.forEach(function (t) {
                  return t.setTabIndex(null !== e ? e : -1);
                }),
                this.options[0].setTabIndex(null !== e ? e : 0))
              : this.options.forEach(function (t) {
                  return t.setTabIndex(null !== e ? e : 0);
                });
          }),
          (p.handleOptionArrowKey = function (t, e) {
            ["Left", "Right", "Up", "Down"].includes(e) &&
              (this.toggleSelected(
                (e = t + { Right: 1, Down: 1, Left: -1, Up: -1 }[e]),
              ),
              this.options[e].focus(),
              this.options[e].setTabIndex(0),
              this.options[t].setTabIndex(-1));
          }),
          (p.resizeGridItem = function (t, e) {
            t.style.width = e + "px";
          }),
          (p.setColumnProperties = function () {
            for (
              var t = this.optionList.getBoundingClientRect().width / 230,
                t = Math.floor(
                  Math.min(t, this.maxAlternativesPerRow, this.options.length),
                ),
                e = this.optionList.getBoundingClientRect().width / t - 20,
                n = 0;
              n < this.options.length;
              n++
            )
              this.resizeGridItem(this.options[n].getDOM(), e);
            this.masonry.layout();
          }),
          (p.getSelectedIndexes = function () {
            for (var t = [], e = 0; e < this.options.length; e++)
              this.options[e].isSelected() && t.push(e);
            return t;
          }),
          (p.setMultiMediaOptionsPlaceholder = function (r) {
            var i = this;
            this.options.forEach(function (t) {
              var e, n;
              switch (
                null == t || null == (e = t.media) || null == (e = e.library)
                  ? void 0
                  : e.split(" ")[0]
              ) {
                case "H5P.Image":
                  t.media.params.file || i.setPlaceholderImage(r, "Image", t);
                  break;
                case "H5P.Video":
                  t.media.params.visuals.poster ||
                    ((n = t.media.params.sources ? "Other" : "Video"),
                    i.setPlaceholderImage(r, n, t));
                  break;
                case "H5P.Audio":
                  t.option.poster ||
                    ((n = t.media.params.files ? "Other" : "Audio"),
                    i.setPlaceholderImage(r, n, t));
              }
            });
          }),
          (p.setPlaceholderImage = function (t, e, n) {
            var r = "auto" === this.aspectRatio ? "1to1" : this.aspectRatio,
              e = "Image" == e ? "" : e,
              t = "".concat(t, "/placeholder").concat(e).concat(r, ".svg");
            n.wrapper.querySelector("img").src = t;
          }),
          (p.getAnswerGiven = function () {
            return this.isAnyAnswerSelected() || this.isBlankCorrect();
          }),
          (p.pauseAllOtherMedia = function (n) {
            this.options &&
              this.options.forEach(function (t, e) {
                e != n && t.pauseMedia();
              });
          }),
          t);
      function t() {
        var n = this,
          t =
            0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {},
          r = 1 < arguments.length ? arguments[1] : void 0,
          e =
            2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {},
          i = 3 < arguments.length ? arguments[3] : void 0;
        ((this.params = t),
          (this.contentId = r),
          (this.callbacks = e),
          (this.callbacks.triggerResize =
            this.callbacks.triggerResize || function () {}),
          (this.callbacks.triggerInteracted =
            this.callbacks.triggerInteracted || function () {}),
          (this.maxAlternativesPerRow =
            this.params.behaviour.maxAlternativesPerRow),
          (this.numberOfCorrectOptions = t.options
            ? t.options.filter(function (t) {
                return t.correct;
              }).length
            : 0),
          (this.isSingleAnswer =
            "auto" === this.params.behaviour.questionType
              ? 1 === this.numberOfCorrectOptions
              : "single" === this.params.behaviour.questionType),
          (this.aspectRatio = this.params.behaviour.aspectRatio),
          (this.lastSelectedRadioButtonOption = null),
          (this.content = g({
            type: "div",
            classList: ["h5p-multi-media-choice-content"],
          })),
          (!this.params.options || this.params.options.length < 2) &&
            ((e = {
              media: {
                params: { contentName: "Image" },
                library: "H5P.Image",
                subContentId: t.contentId,
                metadata: {
                  contentType: "Image",
                  license: "U",
                  title: "Untitled Image",
                },
              },
              correct: !1,
            }),
            this.params.options && 1 === this.params.options.length
              ? this.params.options.push(e)
              : (this.params.options = [{}, {}].fill(e))),
          (this.options = this.params.options
            ? this.params.options.map(function (t, e) {
                return new o(
                  n.content,
                  t,
                  r,
                  n.aspectRatio,
                  n.isSingleAnswer,
                  n.params.l10n.missingAltText,
                  n.params.l10n.closeModalText,
                  {
                    onClick: function () {
                      return n.toggleSelected(e);
                    },
                    onKeyboardSelect: function () {
                      return n.toggleSelected(e);
                    },
                    onKeyboardArrowKey: function (t) {
                      return n.handleOptionArrowKey(e, t);
                    },
                    triggerResize: n.callbacks.triggerResize,
                    pauseAllOtherMedia: function () {
                      return n.pauseAllOtherMedia(e);
                    },
                  },
                );
              })
            : []),
          (this.optionList = this.buildOptionList(this.options)),
          this.content.appendChild(this.optionList),
          this.setTabIndexes(),
          (this.masonry = new a(this.optionList, {
            gutter: 20,
            itemSelector: ".h5p-multi-media-choice-list-item",
          })),
          i.forEach(function (t) {
            return n.toggleSelected(t, !1);
          }));
      }
      function e(t, e, n, r, i, o, a, s) {
        ((this.contentId = n),
          (this.aspectRatio = r),
          (this.singleAnswer = i),
          (this.missingAltText = o),
          (this.closeModalText = a),
          (this.frame = t),
          (this.option = e),
          (this.media = e.media),
          (this.correct = e.correct),
          (this.callbacks = s || {}),
          (this.callbacks.onClick = this.callbacks.onClick || function () {}),
          (this.callbacks.onKeyboardSelect =
            this.callbacks.onKeyboardSelect || function () {}),
          (this.callbacks.onKeyboardArrowKey =
            this.callbacks.onKeyboardArrowKey || function () {}),
          (this.callbacks.triggerResize =
            this.callbacks.triggerResize || function () {}),
          (this.callbacks.pauseAllOtherMedia =
            this.callbacks.pauseAllOtherMedia || function () {}),
          (this.wrapper = g({
            type: "div",
            classList: ["h5p-multi-media-choice-option"],
          })),
          (this.content = g({
            type: "li",
            classList: ["h5p-multi-media-choice-list-item"],
            attributes: {
              role: i ? "radio" : "checkbox",
              "aria-checked": "false",
            },
          })),
          this.content.appendChild(this.wrapper),
          this.enable(),
          this.content.addEventListener("click", this.callbacks.onClick));
        n = this.createMediaContent();
        (this.wrapper.appendChild(n), this.addKeyboardHandlers());
      }
      function l() {}
      function h(t, e, n, r, i, o) {
        var a,
          s,
          u = t.createXAPIEventTemplate("answered");
        return (
          (a = n),
          (e = e),
          ((s = u.getVerifiedStatementValue([
            "object",
            "definition",
          ])).description = { "en-US": e }),
          (s.type = "http://adlnet.gov/expapi/activities/cmi.interaction"),
          (s.interactionType = "choice"),
          (s.choices = a.map(function (t, e) {
            return {
              id: e.toString(),
              description: { "en-US": c(t.getDescription()) },
            };
          })),
          (s.correctResponsesPattern = [
            a
              .flatMap(function (t, e) {
                return t.isCorrect() ? e : [];
              })
              .toString()
              .replaceAll(",", "[,]"),
          ]),
          u.setScoredResult(r, i, t, !0, o),
          (u.data.statement.result.response = n
            .flatMap(function (t, e) {
              return t.isSelected() ? e : [];
            })
            .toString()
            .replaceAll(",", "[,]")),
          u
        );
      }
      function n(t, e) {
        return (n = Object.setPrototypeOf
          ? Object.setPrototypeOf.bind()
          : function (t, e) {
              return ((t.__proto__ = e), t);
            })(t, e);
      }
      ((f = H5P.Question),
        (p = f),
        ((d = m).prototype = Object.create(p.prototype)),
        n((d.prototype.constructor = d), p),
        ((d = m.prototype).addButtons = function () {
          var t = this;
          ((null != this.params.behaviour.enableCheckButton &&
            !this.params.behaviour.enableCheckButton) ||
            this.addButton(
              "check-answer",
              this.params.l10n.checkAnswerButtonText,
              function () {
                t.checkAnswer();
              },
              !0,
              { "aria-label": this.params.l10n.checkAnswer },
              {
                confirmationDialog: {
                  enable: this.params.behaviour.confirmCheckDialog,
                  l10n: this.params.l10n.confirmCheck,
                  instance: this,
                },
                contentData: this.extras,
                textIfSubmitting: this.params.l10n.submitAnswerButtonText,
              },
            ),
            this.addButton(
              "show-solution",
              this.params.l10n.showSolutionButtonText,
              function () {
                t.showSolutions(!0);
              },
              !1,
              { "aria-label": this.params.l10n.showSolution },
              {},
            ),
            this.addButton(
              "try-again",
              this.params.l10n.retryText,
              function () {
                t.resetTask();
              },
              !1,
              { "aria-label": this.params.l10n.retry },
              {
                confirmationDialog: {
                  enable: this.params.behaviour.confirmRetryDialog,
                  l10n: this.params.l10n.confirmRetry,
                  instance: this,
                },
              },
            ));
        }),
        (d.getCurrentState = function () {
          return { answers: this.content.getSelectedIndexes() };
        }),
        (d.getXAPIData = function () {
          return (
            (t = this.params.question),
            (e = this.content.getOptions()),
            (n = this.getScore()),
            (r = this.getMaxScore()),
            (i = this.content.isPassed()),
            { statement: h(this, t, e, n, r, i).data.statement }
          );
          var t, e, n, r, i;
        }),
        (d.getTitle = function () {
          return H5P.createTitle(
            this.extras && this.extras.metadata && this.extras.metadata.title
              ? this.extras.metadata.title
              : "Image Choice",
          );
        }));
      var f,
        d,
        p = m;
      function m(e, n) {
        var i,
          t =
            2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
        return (
          ((i = f.call(this, "multi-media-choice") || this).contentId = n),
          (i.extras = t),
          (i.answerState =
            t.previousState && t.previousState.answers
              ? t.previousState.answers
              : []),
          (i.params = r.extendParams(e)),
          (i.content = new s(
            i.params,
            n,
            {
              triggerResize: function () {
                i.trigger("resize");
              },
              triggerInteracted: function () {
                i.triggerXAPI("interacted");
              },
            },
            i.answerState,
          )),
          (i.registerDomElements = function () {
            var t;
            (i.params.media &&
              i.params.media.type &&
              i.params.media.type.library &&
              ((t = i.params.media.type).library.includes("H5P.Image")
                ? t.params.file &&
                  i.setImage(t.params.file.path, {
                    disableImageZooming: e.media.disableImageZooming || !1,
                    alt: t.params.alt,
                    title: t.params.title,
                    expandImage: t.params.expandImage,
                    minimizeImage: t.params.minimizeImage,
                  })
                : t.library.includes("H5P.Video")
                  ? t.params.sources && i.setVideo(t)
                  : t.library.includes("H5P.Audio") &&
                    t.params.files &&
                    i.setAudio(t)),
              i.params.question &&
                ((i.introduction = g({
                  type: "div",
                  attributes: { id: "h5p-media-choice".concat(n) },
                })),
                (i.introduction.innerHTML = i.params.question),
                i.setIntroduction(i.introduction)),
              i.content.setMultiMediaOptionsPlaceholder(
                i.getLibraryFilePath("assets"),
              ),
              i.setContent(i.content.getDOM()),
              i.addButtons(),
              i.on("resize", function () {
                return i.content.setColumnProperties();
              }));
          }),
          (i.getScore = function () {
            return i.content.getScore();
          }),
          (i.getMaxScore = function () {
            return i.content.getMaxScore();
          }),
          (i.handleRead = function (t) {
            i.read(t);
          }),
          (i.checkAnswer = function () {
            var t =
                0 < arguments.length && void 0 !== arguments[0]
                  ? arguments[0]
                  : {},
              e = (i.content.disableSelectables(), i.getScore()),
              n = i.getMaxScore(),
              r = H5P.Question.determineOverallFeedback(
                i.params.overallFeedback,
                e / n,
              );
            (i.setFeedback(r, e, n, i.params.l10n.result),
              i.params.behaviour.enableSolutionsButton &&
                e !== n &&
                i.showButton("show-solution"),
              i.params.behaviour.enableRetry &&
                e !== n &&
                i.showButton("try-again"),
              i.hideButton("check-answer"),
              i.content.showSelectedSolutions(),
              t.skipXAPI ||
                i.trigger(
                  h(
                    i,
                    i.params.question,
                    i.content.getOptions(),
                    i.getScore(),
                    i.getMaxScore(),
                    i.content.isPassed(),
                  ),
                ));
          }),
          (i.showSolutions = function () {
            function t() {
              (i.content.showSelectedSolutions(),
                i.content.showUnselectedSolutions(),
                i.content.focusUnselectedSolution());
            }
            var e =
              0 < arguments.length && void 0 !== arguments[0] && arguments[0];
            (i.hideButton("check-answer"), i.hideButton("show-solution"));
            (e
              ? i.params.behaviour.showSolutionsRequiresInput &&
                !i.content.isAnyAnswerSelected()
                ? (i.updateFeedbackContent(i.params.l10n.noAnswer),
                  i.handleRead(i.params.l10n.noAnswer))
                : t()
              : (i.checkAnswer({ skipXAPI: !0 }),
                i.hideButton("show-solution"),
                i.hideButton("try-again"),
                t()),
              i.trigger("resize"));
          }),
          (i.resetTask = function () {
            (i.content.resetSelections(),
              i.showButton("check-answer"),
              i.hideButton("try-again"),
              i.hideButton("show-solution"),
              i.content.hideSolutions(),
              i.removeFeedback());
          }),
          (i.getAnswerGiven = function () {
            return i.content.getAnswerGiven();
          }),
          i
        );
      }
      (H5P = H5P || {}).MultiMediaChoice = p;
    })();
  })(),
  /*!@license H5P.Column-1.18/scripts/h5p-column.js by Joubel licensed under MIT*/ (H5P.Column =
    (function (t) {
      function C(n, a, r) {
        function e() {
          s = document.createElement("div");
          for (var t = 0; t < n.content.length; t++) {
            var e = n.content[t];
            void 0 !== e.content &&
              (n.useSeparators &&
                x(e.content.library.split(" ")[0], e.useSeparator),
              y(e.content, b(t)));
          }
        }
        var s,
          i,
          o,
          u,
          c,
          l = this,
          h =
            (t.call(l),
            void 0 === (n = n || {}).useSeparators && (n.useSeparators = !0),
            (this.contentData = r),
            []),
          f = [],
          d = 0,
          p = 0,
          g = [],
          m = function () {
            for (var t = 0, e = 0, n = 0; n < g.length; n++) {
              var r = g[n];
              ((t += r.getScore()), (e += r.getMaxScore()));
            }
            l.triggerXAPIScored(t, e, "completed");
          },
          v = function (e) {
            return function (t) {
              null !== t.getScore() &&
                (void 0 === g[e] && p++,
                (g[e] = t),
                ((t =
                  l.createXAPIEventTemplate(
                    "progressed",
                  )).data.statement.object.definition.extensions[
                  "http://id.tincanapi.com/extension/ending-point"
                ] = e + 1),
                l.trigger(t),
                p === d) &&
                setTimeout(function () {
                  m();
                }, 0);
            };
          },
          y = function (t, e) {
            var n,
              r,
              i = document.createElement("div"),
              o =
                (i.classList.add("h5p-column-content"),
                t.library.split(" ")[0]),
              t =
                ("H5P.Video" === o && (t.params.visuals.fit = !1),
                H5P.newRunnable(t, a, void 0, !0, e));
            ((n = "resize"),
              (r = l),
              t.on(n, function (t) {
                ((r.bubblingUpwards = !0),
                  r.trigger(n, t),
                  (r.bubblingUpwards = !1));
              }),
              C.isTask(t) && (t.on("xAPI", v(d)), d++),
              "H5P.Image" === o &&
                t.on("loaded", function () {
                  l.trigger("resize");
                }),
              h.push(t),
              f.push({
                hasAttached: !1,
                container: i,
                instanceIndex: h.length - 1,
              }),
              s.appendChild(i));
          },
          b = function (t) {
            var e = { parent: l };
            return (
              r.previousState &&
                r.previousState.instances &&
                r.previousState.instances[t] &&
                (e.previousState = r.previousState.instances[t]),
              e
            );
          },
          x = function (t, e) {
            var n,
              r = -1 !== S.indexOf(t);
            (void 0 !== i &&
              ((n = document.createElement("div")),
              r || -1 !== k.indexOf(t)
                ? i
                  ? "disabled" !== e && n.classList.add("h5p-column-ruler")
                  : "enabled" === e &&
                    (n.classList.add("h5p-column-ruler"),
                    n.classList.add("h5p-column-space-before"))
                : i
                  ? "enabled" === e &&
                    (n.classList.add("h5p-column-ruler"),
                    n.classList.add("h5p-column-space-after"))
                  : "enabled" === e
                    ? (n.classList.add("h5p-column-ruler"),
                      n.classList.add("h5p-column-space-before-n-after"))
                    : n.classList.add("h5p-column-space-before"),
              s.appendChild(n)),
              (i = r || -1 !== T.indexOf(t)));
          },
          w =
            ((l.attach = function (t) {
              (void 0 === s && e(),
                f
                  .filter(function (t) {
                    return !t.hasAttached;
                  })
                  .forEach(function (t) {
                    h[t.instanceIndex].attach(H5P.jQuery(t.container));
                    var e = h[t.instanceIndex];
                    switch (e.libraryInfo.machineName) {
                      case "H5P.CoursePresentation":
                        e.$fullScreenButton && e.$fullScreenButton.remove();
                        break;
                      case "H5P.InteractiveVideo":
                        e.on("controls", function () {
                          e.controls.$fullscreen &&
                            e.controls.$fullscreen.remove();
                        });
                    }
                  }),
                t.addClass("h5p-column").html("").append(s));
            }),
            (l.getCurrentState = function () {
              var t = r.previousState || {};
              t.instances || (t.instances = []);
              for (var e = 0; e < h.length; e++) {
                var n = h[e];
                (n.getCurrentState instanceof Function ||
                  "function" == typeof n.getCurrentState) &&
                  (t.instances[e] = n.getCurrentState());
              }
              return t;
            }),
            (l.getXAPIData = function () {
              var t = l.createXAPIEventTemplate("answered");
              return (
                w(t),
                t.setScoredResult(
                  l.getScore(),
                  l.getMaxScore(),
                  l,
                  !0,
                  l.getScore() === l.getMaxScore(),
                ),
                { statement: t.data.statement, children: H(h) }
              );
            }),
            (l.getScore = function () {
              return h.reduce(function (t, e) {
                return t + (e.getScore ? e.getScore() : 0);
              }, 0);
            }),
            (l.getMaxScore = function () {
              return h.reduce(function (t, e) {
                return t + (e.getMaxScore ? e.getMaxScore() : 0);
              }, 0);
            }),
            (l.getAnswerGiven = function () {
              return h.reduce(function (t, e) {
                return t && (e.getAnswerGiven ? e.getAnswerGiven() : t);
              }, !0);
            }),
            (l.showSolutions = function () {
              h.forEach(function (t) {
                (t.toggleReadSpeaker && t.toggleReadSpeaker(!0),
                  t.showSolutions && t.showSolutions(),
                  t.toggleReadSpeaker && t.toggleReadSpeaker(!1));
              });
            }),
            (l.resetTask = function () {
              h.forEach(function (t) {
                t.resetTask && t.resetTask();
              });
            }),
            (l.getInstances = function () {
              return h;
            }),
            (l.getTitle = function () {
              return H5P.createTitle(
                l.contentData &&
                  l.contentData.metadata &&
                  l.contentData.metadata.title
                  ? l.contentData.metadata.title
                  : "Column",
              );
            }),
            function (t) {
              t = t.getVerifiedStatementValue(["object", "definition"]);
              H5P.jQuery.extend(t, P());
            }),
          P = function () {
            var t = {
              interactionType: "compound",
              type: "http://adlnet.gov/expapi/activities/cmi.interaction",
              description: { "en-US": "" },
            };
            return t;
          },
          H = function (t) {
            return t
              .map(function (t) {
                if ("function" == typeof t.getXAPIData) return t.getXAPIData();
              })
              .filter(function (t) {
                return !!t;
              });
          };
        ((u = "resize"),
          (c = h),
          (o = l).on(u, function (t) {
            if (!o.bubblingUpwards)
              for (var e = 0; e < c.length; e++) c[e].trigger(u, t);
          }),
          void 0 === s && e(),
          l.setActivityStarted());
      }
      C.prototype = Object.create(t.prototype);
      var n = [
          "H5P.ImageHotspotQuestion",
          "H5P.Blanks",
          "H5P.Essay",
          "H5P.SingleChoiceSet",
          "H5P.MultiChoice",
          "H5P.TrueFalse",
          "H5P.DragQuestion",
          "H5P.Summary",
          "H5P.DragText",
          "H5P.MarkTheWords",
          "H5P.MemoryGame",
          "H5P.QuestionSet",
          "H5P.InteractiveVideo",
          "H5P.CoursePresentation",
          "H5P.DocumentationTool",
          "H5P.MultiMediaChoice",
        ],
        S =
          (((C.prototype.constructor = C).isTask = function (t) {
            if (void 0 !== t.isTask) return t.isTask;
            for (var e = 0; e < n.length; e++)
              if (t.libraryInfo.machineName === n[e]) return !0;
            return !1;
          }),
          [
            "H5P.AdvancedText",
            "H5P.AudioRecorder",
            "H5P.Essay",
            "H5P.Link",
            "H5P.Accordion",
            "H5P.Table",
            "H5P.GuessTheAnswer",
            "H5P.Blanks",
            "H5P.MultiChoice",
            "H5P.TrueFalse",
            "H5P.DragQuestion",
            "H5P.Summary",
            "H5P.DragText",
            "H5P.MarkTheWords",
            "H5P.ImageHotspotQuestion",
            "H5P.MemoryGame",
            "H5P.Dialogcards",
            "H5P.QuestionSet",
            "H5P.DocumentationTool",
          ]),
        k = ["H5P.SingleChoiceSet"],
        T = [
          "H5P.CoursePresentation",
          "H5P.Dialogcards",
          "H5P.GuessTheAnswer",
          "H5P.ImageSlider",
        ];
      return C;
    })(H5P.EventDispatcher)));
const realH5PGetPath = H5P.getPath;
H5P.getPath = function (t, e) {
  return t.startsWith("data:") ? t : realH5PGetPath(t, e);
};
var furtherH5PInlineResources = {
  "H5P.MultiMediaChoice-0.3/assets/placeholderOther4to3.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjExNSIgdmlld0JveD0iMCAwIDE1MyAxMTUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxNTMiIGhlaWdodD0iMTE1IiBmaWxsPSIjREJFMkU4Ii8+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/placeholderVideo16to9.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9Ijg2IiB2aWV3Qm94PSIwIDAgMTUzIDg2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMjI2XzExODMpIj4KPHBhdGggZD0iTTE1MyAwLjE2NzIzNkgwVjg1LjczNzJIMTUzVjAuMTY3MjM2WiIgZmlsbD0iI0RDRTJFOSIvPgo8cGF0aCBkPSJNNzYuNSAxMS42ODE3QzU5LjMzNTMgMTEuNjgxNyA0NS4zNzQgMjUuNjMyOCA0NS4zNzQgNDIuNzg1QzQ1LjM3NCA1OS45MzcyIDU5LjMzNTMgNzMuODg4MyA3Ni41IDczLjg4ODNDOTMuNjY0NiA3My44ODgzIDEwNy42MjYgNTkuOTM3MiAxMDcuNjI2IDQyLjc4NUMxMDcuNjI2IDI1LjYzMjggOTMuNjY0NiAxMS42ODE3IDc2LjUgMTEuNjgxN1pNNTEuOTk2MSA0Mi43ODVDNTEuOTk2MSAzNy4wMjc4IDU0LjAwNDIgMzEuNzI0NCA1Ny4zMjcxIDI3LjU0MzlMNjUuNzE4MiAzNi4zODI4VjMxLjE3NVYyNi43NTU2TDYyLjEwODQgMjIuOTU3MkM2Ni4xNDg2IDIwLjAxODkgNzEuMDk3MSAxOC4yOTg5IDc2LjUgMTguMjk4OUM5MC4wMzA5IDE4LjI5ODkgMTAxLjAwNCAyOS4yODc4IDEwMS4wMDQgNDIuNzg1QzEwMS4wMDQgNDguNjM3OCA5OC45NDc5IDUzLjk4ODkgOTUuNTI5MyA1OC4xOTMzTDg2LjY4NCA0OC44NTI4TDgxLjExMzkgNTIuMDUzOUw4MC43NzkyIDUyLjI0NUw5MC43MDAzIDYyLjcwODNDODYuNjg0IDY1LjU3NSA4MS43ODMyIDY3LjI3MTEgNzYuNTIzOSA2Ny4yNzExQzYyLjk2OSA2Ny4yNzExIDUxLjk5NjEgNTYuMzA2MSA1MS45OTYxIDQyLjc4NVoiIGZpbGw9IiNBREIzQkEiLz4KPHBhdGggZD0iTTc5LjEyOTcgMzYuNzQxMUw2OS45OTc2IDMxLjQzNzhWMzkuMDgyMlY0Mi4wMjA1VjUyLjU1NTZMNzkuMTI5NyA0Ny4yNzYxTDg4LjI4NTggNDIuMDIwNUw3OS4xMjk3IDM2Ljc0MTFaIiBmaWxsPSIjQURCM0JBIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjI2XzExODMiPgo8cmVjdCB3aWR0aD0iMTUzIiBoZWlnaHQ9Ijg2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/placeholderVideo1to1.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjE1MyIgdmlld0JveD0iMCAwIDE1MyAxNTMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMjZfMTEzOSkiPgo8cGF0aCBkPSJNMTUzLjA5MiAwSC0wLjAzMDUxNzZWMTUyLjY2M0gxNTMuMDkyVjBaIiBmaWxsPSIjRENFMkU5Ii8+CjxwYXRoIGQ9Ik03Ni41MDAxIDIwLjc3NzRDNDUuODY5NSAyMC43Nzc0IDIwLjk5MTcgNDUuNjg1OCAyMC45OTE3IDc2LjI4NThDMjAuOTkxNyAxMDYuODg2IDQ1Ljg2OTUgMTMxLjgyNSA3Ni41MDAxIDEzMS44MjVDMTA3LjEzMSAxMzEuODI1IDEzMi4wMDkgMTA2LjkxNiAxMzIuMDA5IDc2LjMxNjRDMTMyLjAwOSA0NS43MTY0IDEwNy4xMzEgMjAuNzc3NCA3Ni41MDAxIDIwLjc3NzRaTTMyLjgwMzMgNzYuMjg1OEMzMi44MDMzIDY2LjAwNDIgMzYuMzgzNSA1Ni41NDg4IDQyLjMxOTkgNDkuMDgyNEw1Ny4yODMzIDY0Ljg3MlY1NS41Njk2VjQ3LjcwNTRMNTAuODU3MyA0MC45MTIyQzU4LjA3ODkgMzUuNjQ5IDY2LjkyMjMgMzIuNTg5IDc2LjUzMDcgMzIuNTg5QzEwMC42NDQgMzIuNTg5IDEyMC4yMjggNTIuMjAzNiAxMjAuMjI4IDc2LjI4NThDMTIwLjIyOCA4Ni43MjA0IDExNi41NTYgOTYuMjY3NiAxMTAuNDY2IDEwMy43OTVMOTQuNjc2NSA4Ny4xMTgyTDg0Ljc2MjEgOTIuODQwNEw4NC4xNTAxIDkzLjIwNzZMMTAxLjgzNyAxMTEuODc0Qzk0LjY3NjUgMTE2Ljk4NCA4NS45MjQ5IDEyMC4wMTMgNzYuNTMwNyAxMjAuMDEzQzUyLjM4NzMgMTIwLjAxMyAzMi44MDMzIDEwMC40MjkgMzIuODAzMyA3Ni4yODU4WiIgZmlsbD0iI0FEQjNCQSIvPgo8cGF0aCBkPSJNODEuMjEyNCA2NS41MTQ2TDY0LjkwMjYgNTYuMDU5MlY2OS43MDY4Vjc0LjkwODhWOTMuNzI3OEw4MS4yMTI0IDg0LjMzMzZMOTcuNTIyMiA3NC45MDg4TDgxLjIxMjQgNjUuNTE0NloiIGZpbGw9IiNBREIzQkEiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjZfMTEzOSI+CjxyZWN0IHdpZHRoPSIxNTMiIGhlaWdodD0iMTUzIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/placeholderVideo3to2.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjEwMiIgdmlld0JveD0iMCAwIDE1MyAxMDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMjZfMTE5OCkiPgo8cGF0aCBkPSJNMTUzIDAuMTUzSDBWMTAxLjg0N0gxNTNWMC4xNTNaIiBmaWxsPSIjRENFMkU5Ii8+CjxwYXRoIGQ9Ik03Ni41MDAxIDkuNDg2QzUzLjYwMTEgOS40ODYgMzQuOTM1MSAyOC4xMDEgMzQuOTM1MSA1MS4wNTFDMzQuOTM1MSA3NC4wMDEgNTMuNTUwMSA5Mi42MTYgNzYuNTAwMSA5Mi42MTZDOTkuNDUwMSA5Mi42MTYgMTE4LjA2NSA3NC4wMDEgMTE4LjA2NSA1MS4wNTFDMTE4LjA2NSAyOC4xMDEgOTkuMzk5MSA5LjQ4NiA3Ni41MDAxIDkuNDg2Wk00My44MDkxIDUxQzQzLjgwOTEgNDMuMjk5IDQ2LjQ2MTEgMzYuMjYxIDUwLjk0OTEgMzAuNjUxTDYyLjE2OTEgNDIuNDgzVjM1LjU0N1YyOS42MzFMNTcuMzI0MSAyNC41MzFDNjIuNzMwMSAyMC42MDQgNjkuMzYwMSAxOC4yNTggNzYuNTAwMSAxOC4yNThDOTQuNTU0MSAxOC4yNTggMTA5LjE5MSAzMi45NDYgMTA5LjE5MSA1MC45NDlDMTA5LjE5MSA1OC43NTIgMTA2LjQzNyA2NS44OTIgMTAxLjg0NyA3MS41NTNMOTAuMDY2MSA1OS4xNkw4Mi42MjAxIDYzLjQ0NEw4Mi4xNjExIDYzLjY5OUw5NS40MjExIDc3LjY3M0M5MC4wNjYxIDgxLjQ5OCA4My41MzgxIDgzLjc0MiA3Ni40NDkxIDgzLjc0MkM1OC40NDYxIDgzLjc0MiA0My44MDkxIDY5LjA1NCA0My44MDkxIDUxWiIgZmlsbD0iI0FEQjNCQSIvPgo8cGF0aCBkPSJNODAuMDE5MSA0Mi45NDJMNjcuODMwMSAzNS44NTNWNDYuMTA0VjQ5Ljk4VjY0LjA1Nkw4MC4wMTkxIDU3LjAxOEw5Mi4yMDgxIDQ5Ljk4TDgwLjAxOTEgNDIuOTQyWiIgZmlsbD0iI0FEQjNCQSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzIyNl8xMTk4Ij4KPHJlY3Qgd2lkdGg9IjE1MyIgaGVpZ2h0PSIxMDIiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==",
  "H5P.MultiMediaChoice-0.3/assets/play.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAxOSAyMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4LjUgMTAuMTM0QzE5LjE2NjcgMTAuNTE4OSAxOS4xNjY3IDExLjQ4MTEgMTguNSAxMS44NjZMMiAyMS4zOTIzQzEuMzMzMzMgMjEuNzc3MiAwLjUwMDAwMSAyMS4yOTYxIDAuNTAwMDAxIDIwLjUyNjNMMC41MDAwMDIgMS40NzM3MkMwLjUwMDAwMiAwLjcwMzkyIDEuMzMzMzQgMC4yMjI3OTQgMiAwLjYwNzY5NUwxOC41IDEwLjEzNFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/x-close.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDEiIGhlaWdodD0iNDEiIHZpZXdCb3g9IjAgMCA0MSA0MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMwLjc1IDEwLjI1TDEwLjI1IDMwLjc1TTEwLjI1IDEwLjI1TDMwLjc1IDMwLjc1IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K",
  "H5P.MultiMediaChoice-0.3/assets/placeholder1to1.svg":
    "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjMuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0RDRTJFOTt9Cgkuc3Qxe2ZpbGw6I0FEQjNCQTt9Cgkuc3Qye2ZpbGw6I0I2QkNDMjt9Cjwvc3R5bGU+CjxyZWN0IGNsYXNzPSJzdDAiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMjU1LjIsNTAwIDI1NS4yLDM5OC44IDEyMi43LDMxNy40IDAsNDA0LjggMCw1MDAgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDIiIHBvaW50cz0iMCw0MzYuMyAxNDUuNSwzMzIuNSAxMjMuMSwzMTcgMCw0MDMuNSAiLz4KPHBhdGggY2xhc3M9InN0MiIgZD0iTTY0LDBjMzEsNzcuMiwxMDYuNCwxMzEuNywxOTQuNywxMzEuN2M4OC4yLDAsMTYzLjctNTQuNiwxOTQuNi0xMzEuN0g2NHoiLz4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjg1LjEsMEwxNDcsOTkuM2MzMi4zLDIwLjQsNzAuNiwzMi4yLDExMS43LDMyLjJjODguMiwwLDE2My42LTU0LjQsMTk0LjYtMTMxLjZIMjg1LjF6Ii8+Cgk8L2c+CjwvZz4KPHBvbHlnb24gY2xhc3M9InN0MSIgcG9pbnRzPSI1MDAsMzE3LjUgNDA3LjMsMjYwLjYgNzEuMSw1MDAgNTAwLDUwMCAiLz4KPHBvbHlnb24gY2xhc3M9InN0MiIgcG9pbnRzPSIxMjkuNSw1MDAgNDM3LjEsMjgwLjQgNDA3LjgsMjYwLjEgNjYuMyw1MDAgIi8+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/placeholder3to2.svg":
    "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjMuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDAgMjAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgMjAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0RDRTJFOTt9Cgkuc3Qxe2ZpbGw6I0FEQjNCQTt9Cgkuc3Qye2ZpbGw6I0I2QkNDMjt9Cjwvc3R5bGU+CjxyZWN0IHg9IjAiIHk9IjAiIGNsYXNzPSJzdDAiIHdpZHRoPSIzMDAuMSIgaGVpZ2h0PSIyMDAuMSIvPgo8cG9seWdvbiBjbGFzcz0ic3QxIiBwb2ludHM9IjIyNy45LDIwMC4xIDIyNy45LDE0Ni42IDE1Ni4yLDEwMi40IDE5LDIwMC4xICIvPgo8cG9seWdvbiBjbGFzcz0ic3QxIiBwb2ludHM9IjMwMC4xLDc1LjEgMTI0LjYsMjAwLjEgMzAwLjEsMjAwLjEgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMCwyMDAuMSAxNjYuOSwyMDAuMSA0Mi4yLDExMS4zIDAsMTQyLjQgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDIiIHBvaW50cz0iMCwxNTcuOCA1NC40LDEyMC4yIDQxLjcsMTEyLjEgMCwxNDIuNSAiLz4KPHBvbHlnb24gY2xhc3M9InN0MiIgcG9pbnRzPSIzMDAuMSw3NS4yIDEyNi40LDIwMC4xIDE2MSwyMDAuMSAzMDAuMSw5OS40ICIvPgo8cG9seWdvbiBjbGFzcz0ic3QyIiBwb2ludHM9IjQzLjIsMjAwLjEgMTY4LjUsMTEwLjYgMTU2LjQsMTAyLjIgMTcuMSwyMDAuMSAiLz4KPHBhdGggY2xhc3M9InN0MiIgZD0iTTUwLjUsMGMxMy43LDMzLjUsNDYuNSw1Ny4xLDg1LDU3LjFjMzguNSwwLDcxLjMtMjMuNyw4NS01Ny4xSDUwLjV6Ii8+CjxnPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTE0Ni40LDBMODYuNiw0M2MxNC4xLDguOSwzMC45LDE0LjEsNDguOSwxNC4xYzM4LjUsMCw3MS4zLTIzLjYsODUtNTcuMUgxNDYuNHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K",
  "H5P.MultiMediaChoice-0.3/assets/placeholderOther16to9.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9Ijg2IiB2aWV3Qm94PSIwIDAgMTUzIDg2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iMTUzIiBoZWlnaHQ9Ijg2IiBmaWxsPSIjREJFMkU4Ii8+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/placeholderAudio16to9.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9Ijg2IiB2aWV3Qm94PSIwIDAgMTUzIDg2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMjI2XzExNzApIj4KPHBhdGggZD0iTTE1MyAwSDBWODUuOTA0NEgxNTNWMFoiIGZpbGw9IiNEQ0UyRTkiLz4KPHBhdGggZD0iTTgyLjE0NjQgMzAuOTJDODIuMTQ2NCAzMC43NzY3IDgyLjE0NjQgMzAuNjMzMyA4Mi4xNDY0IDMwLjQ5QzgyLjA5ODUgMjkuODQ1IDgxLjU3MjYgMjkuMzQzMyA4MC45MjcxIDI5LjI5NTZDODAuOTAzMiAyOS4yOTU2IDgwLjg1NTQgMjkuMjk1NiA4MC44MzE1IDI5LjI5NTZDODAuNDAxMiAyOS4yOTU2IDgwLjA2NjUgMjkuNDg2NyA3OS43NTU3IDI5Ljc5NzJDNzcuNzQ3NiAzMS43OCA3NS43Mzk1IDMzLjczODkgNzMuNzU1MyAzNS43MjE3QzczLjcwNzQgMzUuNzY5NCA3My42MzU3IDM1LjgxNzIgNzMuNTg3OSAzNS44NDExQzczLjQ5MjMgMzUuOTEyOCA3My4zNzI4IDM1LjkzNjcgNzMuMjI5MyAzNS45MzY3QzcyLjcyNzMgMzUuOTM2NyA3Mi4yMDE0IDM1LjkzNjcgNzEuNjk5MyAzNS45MzY3QzcxLjE5NzMgMzUuOTM2NyA3MC42NzE0IDM1LjkzNjcgNzAuMTY5MyAzNS45MzY3QzY4Ljk3NCAzNS45MzY3IDY4LjA0MTcgMzYuNTMzOSA2Ny42MTE0IDM3LjQ4OTVDNjcuNDQ0IDM3Ljg0NzggNjcuMzQ4NCAzOC4yNzc4IDY3LjM0ODQgMzguNzMxN0M2Ny4zNDg0IDQxLjMxMTcgNjcuMzQ4NCA0My44OTE3IDY3LjM0ODQgNDYuNDcxN0M2Ny4zNDg0IDQ4LjE0MzkgNjguNDk1OSA0OS4yNjY3IDcwLjE5MzIgNDkuMjY2N0M3MC42OTUzIDQ5LjI2NjcgNzEuMTk3MyA0OS4yNjY3IDcxLjY5OTMgNDkuMjY2N0M3Mi4yMDE0IDQ5LjI2NjcgNzIuNzAzNCA0OS4yNjY3IDczLjIwNTQgNDkuMjY2N0M3My40MjA2IDQ5LjI2NjcgNzMuNTg3OSA0OS4zMzgzIDczLjczMTQgNDkuNDgxN0M3NS43MTU2IDUxLjQ0MDYgNzcuNjk5OCA1My4zOTk0IDc5LjY4NCA1NS4zNTgzQzc5Ljc3OTYgNTUuNDUzOSA3OS44NzUzIDU1LjU0OTQgNzkuOTcwOSA1NS42NDVDODAuMjMzOSA1NS44MzYxIDgwLjUyMDcgNTUuOTMxNyA4MC44MDc2IDU1LjkzMTdDODEuMzgxNCA1NS45MzE3IDgxLjkzMTIgNTUuNTczMyA4Mi4wOTg1IDU0Ljk1MjJDODIuMTQ2NCA1NC43NjExIDgyLjE0NjQgNTQuNTQ2MSA4Mi4xNDY0IDU0LjMzMTFDODIuMTQ2NCA1My44NTMzIDgyLjE0NjQgNTMuMzUxNyA4Mi4xNDY0IDUyLjg3MzlDODIuMTQ2NCA1MC4yMjIyIDgyLjE0NjQgNDcuNTcwNiA4Mi4xNDY0IDQ0Ljk0MjhDODIuMTQ2NCA0NC4xNzgzIDgyLjE0NjQgNDMuMzkgODIuMTQ2NCA0Mi42MjU2QzgyLjE0NjQgMzguNzA3OCA4Mi4xNDY0IDM0LjgxMzkgODIuMTQ2NCAzMC45MloiIGZpbGw9IiNBREIzQkEiLz4KPHBhdGggZD0iTTc2Ljg2MyAxMkM1OS44NDE3IDEyIDQ2IDI1LjgzMTcgNDYgNDIuODQwNkM0NiA1OS44NDk0IDU5Ljg0MTcgNzMuNjgxMSA3Ni44NjMgNzMuNjgxMUM5My44ODQyIDczLjY4MTEgMTA3LjcyNiA1OS44NDk0IDEwNy43MjYgNDIuODQwNkMxMDcuNzI2IDI1LjgzMTcgOTMuODg0MiAxMiA3Ni44NjMgMTJaTTUyLjU3NDIgNDIuODQwNkM1Mi41NzQyIDM3LjEzMTEgNTQuNTU4NCAzMS44NzU2IDU3Ljg1NzUgMjcuNzQyOEw2My44MTAyIDM0LjAwMTdDNjUuMDA1NSAzMi4zNzcyIDY2LjkxOCAzMS4zNSA2OS4xODkxIDMxLjMyNjFDNjkuNTcxNiAzMS4zMjYxIDY5LjkzMDIgMzEuMzI2MSA3MC4zMTI3IDMxLjMyNjFMNjIuNjE0OCAyMy4yMDM5QzY2LjYzMTEgMjAuMjg5NCA3MS41NTU4IDE4LjU2OTQgNzYuODYzIDE4LjU2OTRDOTAuMjUwNSAxOC41Njk0IDEwMS4xNTIgMjkuNDYyOCAxMDEuMTUyIDQyLjg0MDZDMTAxLjE1MiA0OC42MjE3IDk5LjExOTcgNTMuOTQ4OSA5NS43MjUgNTguMTI5NEw4Ni45MDM2IDQ4LjgzNjdWNTYuNjcyMkM4Ni45MDM2IDU3LjAzMDYgODYuOTAzNiA1Ny41OCA4Ni43MzYyIDU4LjIwMTFMOTAuOTE5OCA2Mi42MjA2Qzg2Ljk1MTQgNjUuNDYzMyA4Mi4wOTg0IDY3LjEzNTYgNzYuODM5MSA2Ny4xMzU2QzYzLjQ3NTUgNjcuMTExNyA1Mi41NzQyIDU2LjIxODMgNTIuNTc0MiA0Mi44NDA2WiIgZmlsbD0iI0FEQjNCQSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzIyNl8xMTcwIj4KPHJlY3Qgd2lkdGg9IjE1MyIgaGVpZ2h0PSI4NiIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K",
  "H5P.MultiMediaChoice-0.3/assets/placeholder4to3.svg":
    "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjMuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0MDAgMzAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDAgMzAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0RDRTJFOTt9Cgkuc3Qxe2ZpbGw6I0FEQjNCQTt9Cgkuc3Qye2ZpbGw6I0I2QkNDMjt9Cjwvc3R5bGU+CjxyZWN0IHg9IjAuMSIgeT0iMCIgY2xhc3M9InN0MCIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzMDAiLz4KPHBvbHlnb24gY2xhc3M9InN0MSIgcG9pbnRzPSIzNDMuMiwzMDAgMzQzLjIsMjE5LjggMjM1LjYsMTUzLjYgMzAuMSwzMDAgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iNDAwLDMwMCA0MDAsMTQ5LjEgMTg4LjIsMzAwICIvPgo8cG9seWdvbiBjbGFzcz0ic3QxIiBwb2ludHM9IjAuMSwzMDAgMjUxLjYsMzAwIDY0LjcsMTY2LjcgMC4xLDIxNC42ICIvPgo8cG9seWdvbiBjbGFzcz0ic3QyIiBwb2ludHM9IjAuMSwyMzcuNCA4MywxODAuMSA2NCwxNjcuOSAwLjEsMjE0LjcgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDIiIHBvaW50cz0iMjQyLjksMzAwIDQwMCwxODYuMSA0MDAsMTQ5LjYgMTkxLDMwMCAiLz4KPHBvbHlnb24gY2xhc3M9InN0MiIgcG9pbnRzPSI2Ni4zLDMwMCAyNTQuMSwxNjUuOCAyMzUuOSwxNTMuMyAyNy4yLDMwMCAiLz4KPHBhdGggY2xhc3M9InN0MiIgZD0iTTc3LjcsMEM5OC4zLDUwLjIsMTQ3LjUsODUuNSwyMDUsODUuNWM1Ny41LDAsMTA2LjgtMzUuNCwxMjcuMy04NS41SDc3Ljd6Ii8+CjxnPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTIyMS4xLDBsLTg5LjQsNjQuMkMxNTIuOSw3Ny43LDE3OCw4NS40LDIwNSw4NS40YzU3LjUsMCwxMDYuNy0zNS4yLDEyNy4yLTg1LjRIMjIxLjF6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==",
  "H5P.FontIcons-1.0/selection.json":
    "data:application/json;base64, ",
  "H5P.MultiMediaChoice-0.3/assets/placeholderAudio4to3.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjExNSIgdmlld0JveD0iMCAwIDE1MyAxMTUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMjZfMTE2NCkiPgo8cGF0aCBkPSJNMTUzIDAuMTE0OTlIMFYxMTUuMTE1SDE1M1YwLjExNDk5WiIgZmlsbD0iI0RDRTJFOSIvPgo8cGF0aCBkPSJNODMuMjMzMyA0MS4zMzgzQzgzLjIzMzMgNDEuMTQ2NyA4My4yMzMzIDQwLjk1NSA4My4yMzMzIDQwLjc2MzNDODMuMTU2OCAzOS45MiA4Mi40NjgzIDM5LjIzIDgxLjU4ODYgMzkuMTkxN0M4MS41NTAzIDM5LjE5MTcgODEuNTEyMSAzOS4xOTE3IDgxLjQzNTYgMzkuMTkxN0M4MC44NjE4IDM5LjE5MTcgODAuNDAyOCAzOS40NiA3OS45ODIxIDM5Ljg0MzNDNzcuMzA0NiA0Mi40ODgzIDc0LjYyNzEgNDUuMTMzMyA3MS45NDk2IDQ3Ljc3ODNDNzEuODczMSA0Ny44NTUgNzEuNzk2NiA0Ny44OTMzIDcxLjcyMDEgNDcuOTMxN0M3MS41NjcxIDQ4LjAwODMgNzEuNDE0MSA0OC4wNDY3IDcxLjI2MTEgNDguMDQ2N0M3MC41NzI2IDQ4LjA0NjcgNjkuODg0MSA0OC4wNDY3IDY5LjE5NTYgNDguMDQ2N0M2OC41MDcxIDQ4LjA0NjcgNjcuODE4NiA0OC4wNDY3IDY3LjEzMDEgNDguMDQ2N0M2NS41MjM2IDQ4LjA0NjcgNjQuMjk5NiA0OC44NTE3IDYzLjcyNTggNTAuMTE2N0M2My40OTYzIDUwLjYxNSA2My4zODE2IDUxLjE1MTcgNjMuMzgxNiA1MS44MDMzQzYzLjM4MTYgNTUuMjUzMyA2My4zODE2IDU4LjcwMzMgNjMuMzgxNiA2Mi4xNTMzQzYzLjM4MTYgNjQuMzc2NyA2NC45MTE2IDY1Ljg3MTcgNjcuMTY4MyA2NS44NzE3QzY3Ljg1NjggNjUuODcxNyA2OC41MDcxIDY1Ljg3MTcgNjkuMTk1NiA2NS44NzE3QzY5Ljg4NDEgNjUuODcxNyA3MC41MzQzIDY1Ljg3MTcgNzEuMjIyOCA2NS44NzE3QzcxLjUyODggNjUuODcxNyA3MS43MjAxIDY1Ljk0ODMgNzEuOTExMyA2Ni4xNzgzQzc0LjU1MDYgNjguNzg1IDc3LjE4OTggNzEuNDMgNzkuODY3MyA3NC4wMzY3Qzc5Ljk4MjEgNzQuMTUxNyA4MC4wOTY4IDc0LjMwNSA4MC4yNDk4IDc0LjQyQzgwLjU5NDEgNzQuNjg4MyA4MC45NzY2IDc0LjgwMzMgODEuMzU5MSA3NC44MDMzQzgyLjEyNDEgNzQuODAzMyA4Mi44NTA4IDc0LjMwNSA4My4wODAzIDczLjVDODMuMTU2OCA3My4yMzE3IDgzLjE1NjggNzIuOTYzMyA4My4xNTY4IDcyLjY1NjdDODMuMTU2OCA3Mi4wMDUgODMuMTU2OCA3MS4zNTMzIDgzLjE1NjggNzAuNzAxN0M4My4xNTY4IDY3LjE3NSA4My4xNTY4IDYzLjYxIDgzLjE1NjggNjAuMDgzM0M4My4xNTY4IDU5LjA0ODMgODMuMTU2OCA1OC4wMTMzIDgzLjE1NjggNTYuOTc4M0M4My4yMzMzIDUxLjc2NSA4My4yMzMzIDQ2LjU1MTcgODMuMjMzMyA0MS4zMzgzWiIgZmlsbD0iI0FEQjNCQSIvPgo8cGF0aCBkPSJNNzYuMTk1MiAxNkM1My40NzQ3IDE2IDM1IDM0LjUxNSAzNSA1Ny4yODVDMzUgODAuMDU1IDUzLjQ3NDcgOTguNTcgNzYuMTk1MiA5OC41N0M5OC45MTU3IDk4LjU3IDExNy4zOTEgODAuMDU1IDExNy4zOTEgNTcuMjg1QzExNy4zOTEgMzQuNTE1IDk4LjkxNTcgMTYgNzYuMTk1MiAxNlpNNDMuNzU5MiA1Ny4yODVDNDMuNzU5MiA0OS42NTY3IDQ2LjM5ODUgNDIuNjAzMyA1MC44MzU1IDM3LjA4MzNMNTguNzkxNSA0NS40NzgzQzYwLjM1OTcgNDMuMjkzMyA2Mi45NjA3IDQxLjkxMzMgNjUuOTgyNSA0MS45MTMzQzY2LjQ3OTcgNDEuOTEzMyA2Ni45NzcgNDEuOTEzMyA2Ny40NzQyIDQxLjkxMzNMNTcuMTg1IDMxLjAyNjdDNjIuNTQgMjcuMTE2NyA2OS4xMTkgMjQuODE2NyA3Ni4yMzM1IDI0LjgxNjdDOTQuMDk2MiAyNC44MTY3IDEwOC42NjkgMzkuMzgzMyAxMDguNjY5IDU3LjMyMzNDMTA4LjY2OSA2NS4wNjY3IDEwNS45NTQgNzIuMTk2NyAxMDEuNDAyIDc3Ljc5MzNMODkuNjU5MiA2NS4zNzMzVjc1Ljg3NjdDODkuNjU5MiA3Ni4zNzUgODkuNjU5MiA3Ny4xMDMzIDg5LjQyOTcgNzcuOTA4M0w5NS4wMTQyIDgzLjgxMTdDODkuNjk3NSA4Ny42MDY3IDgzLjIzMzIgODkuODMgNzYuMjMzNSA4OS44M0M1OC4zMzI1IDg5Ljc5MTcgNDMuNzU5MiA3NS4xODY3IDQzLjc1OTIgNTcuMjg1WiIgZmlsbD0iI0FEQjNCQSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzIyNl8xMTY0Ij4KPHJlY3Qgd2lkdGg9IjE1MyIgaGVpZ2h0PSIxMTUiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==",
  "H5P.MaterialDesignIcons-1.0/MaterialIcons-Regular.svg":
    "data:image/svg+xml;base64, ",
  "H5P.MultiMediaChoice-0.3/assets/placeholder16to9.svg":
    "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjMuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA2NDAgMzYwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2NDAgMzYwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0RDRTJFOTt9Cgkuc3Qxe2ZpbGw6I0FEQjNCQTt9Cgkuc3Qye2ZpbGw6I0I2QkNDMjt9Cjwvc3R5bGU+CjxyZWN0IHg9IjAuMSIgY2xhc3M9InN0MCIgd2lkdGg9IjYzOS44IiBoZWlnaHQ9IjMyNy4yIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMzc0LjEsMzYwLjEgMzc0LjEsMjcxLjIgMjU4LDE5OS43IDMyLjksMzYwLjEgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iNjM5LjksMjA2LjUgNTIwLjIsMTM0LjQgMjAzLjcsMzYwLjEgNjM5LjksMzYwLjEgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMjc4LjQsMzYwLjEgNzMuNSwyMTMuOSAwLjEsMjY4LjEgMC4xLDM2MC4xICIvPgo8cG9seWdvbiBjbGFzcz0ic3QyIiBwb2ludHM9IjAuMSwyOTIuOCA5My4xLDIyOC40IDcyLjYsMjE1LjEgMC4xLDI2OC40ICIvPgo8cG9seWdvbiBjbGFzcz0ic3QyIiBwb2ludHM9IjI2Mi43LDM2MC4xIDU0OC4zLDE1My4xIDUyMC4yLDEzNC40IDIwNi42LDM2MC4xICIvPgo8cG9seWdvbiBjbGFzcz0ic3QyIiBwb2ludHM9IjcxLjksMzYwLjEgMjc3LjksMjEzIDI1OC4zLDE5OS40IDI5LjcsMzYwLjEgIi8+CjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik04MSwwYzIyLjEsNTQuNSw3NS40LDkzLDEzNy43LDkzUzMzNC41LDU0LjUsMzU2LjUsMEg4MXoiLz4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjM2LjksMGwtOTcuMyw3MGMyMi45LDE0LjUsNTAsMjIuOSw3OS4xLDIyLjljNjIuMywwLDExNS43LTM4LjQsMTM3LjctOTIuOUgyMzYuOXoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K",
  "H5P.MultiMediaChoice-0.3/assets/placeholderOther3to2.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjEwMiIgdmlld0JveD0iMCAwIDE1MyAxMDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxNTMiIGhlaWdodD0iMTAyIiBmaWxsPSIjREJFMkU4Ii8+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/placeholderAudio3to2.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUxIiBoZWlnaHQ9IjEwMiIgdmlld0JveD0iMCAwIDE1MSAxMDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMjZfMTE1OCkiPgo8cGF0aCBkPSJNMTUzIDBIMFYxMDJIMTUzVjBaIiBmaWxsPSIjRENFMkU5Ii8+CjxwYXRoIGQ9Ik03Ni43MDgxIDg4LjMzMkM5Ni45NDUzIDg4LjMzMiAxMTMuMzUxIDcxLjcwOTIgMTEzLjM1MSA1MS4yMDRDMTEzLjM1MSAzMC42OTg4IDk2Ljk0NTMgMTQuMDc2IDc2LjcwODEgMTQuMDc2QzU2LjQ3MDkgMTQuMDc2IDQwLjA2NTQgMzAuNjk4OCA0MC4wNjU0IDUxLjIwNEM0MC4wNjU0IDcxLjcwOTIgNTYuNDcwOSA4OC4zMzIgNzYuNzA4MSA4OC4zMzJaIiBmaWxsPSIjRENFMkU5IiBzdHJva2U9IiNBREIzQkEiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNODIuNjE1MiAzNS4yNDVDODIuNjE1MiAzNS4wNDEgODIuNjE1MiAzNC44MzcgODIuNjE1MiAzNC42ODRDODIuNTY0OSAzMy44MTcgODEuODYwMiAzMy4xNTQgODEuMDA0NiAzMy4xMDNDODAuOTU0MiAzMy4xMDMgODAuOTAzOSAzMy4xMDMgODAuODUzNiAzMy4xMDNDODAuMjk5OSAzMy4xMDMgNzkuODQ2OSAzMy4zNTggNzkuNDQ0MiAzMy43NjZDNzYuODI2OSAzNi40MTggNzQuMTU5MiAzOS4wMTkgNzEuNTQxOSA0MS42NzFDNzEuNDkxNiA0MS43MjIgNzEuMzkwOSA0MS43NzMgNzEuMzQwNiA0MS44MjRDNzEuMTg5NiA0MS45MjYgNzEuMDM4NiA0MS45MjYgNzAuODg3NiA0MS45MjZDNzAuMjMzMiA0MS45MjYgNjkuNTI4NiA0MS45MjYgNjguODc0MiA0MS45MjZDNjguMjE5OSA0MS45MjYgNjcuNTE1MiA0MS45MjYgNjYuODYwOSA0MS45MjZDNjUuMzAwNiA0MS45MjYgNjQuMDQyMiA0Mi43NDIgNjMuNDg4NiA0My45NjZDNjMuMjg3MiA0NC40NzYgNjMuMTM2MiA0NS4wMzcgNjMuMTM2MiA0NS42NDlDNjMuMTM2MiA0OS4wNjYgNjMuMTM2MiA1Mi41MzQgNjMuMTM2MiA1Ni4wMDJDNjMuMTM2MiA1OC4yNDYgNjQuNjQ2MiA1OS43MjUgNjYuOTExMiA1OS43MjVDNjcuNTY1NiA1OS43MjUgNjguMjE5OSA1OS43MjUgNjguOTI0NiA1OS43MjVDNjkuNTc4OSA1OS43MjUgNzAuMjMzMiA1OS43MjUgNzAuOTM3OSA1OS43MjVDNzEuMjM5OSA1OS43MjUgNzEuNDQxMiA1OS44MjcgNzEuNjQyNiA2MC4wMzFDNzQuMjU5OSA2Mi42MzIgNzYuODc3MiA2NS4yODQgNzkuNDk0NiA2Ny44ODVDNzkuNTk1MiA2Ny45ODcgNzkuNzQ2MiA2OC4xNCA3OS44OTcyIDY4LjI0MkM4MC4yNDk2IDY4LjQ5NyA4MC42MDE5IDY4LjY1IDgxLjAwNDYgNjguNjVDODEuNzU5NiA2OC42NSA4Mi40NjQyIDY4LjE0IDgyLjcxNTkgNjcuMzc1QzgyLjc2NjIgNjcuMTIgODIuNzY2MiA2Ni44MTQgODIuNzY2MiA2Ni41NTlDODIuNzY2MiA2NS44OTYgODIuNzY2MiA2NS4yMzMgODIuNzY2MiA2NC42MjFDODIuNzY2MiA2MS4xMDIgODIuNzY2MiA1Ny41MzIgODIuNzY2MiA1NC4wMTNDODIuNzY2MiA1Mi45OTMgODIuNzY2MiA1MS45NzMgODIuNzY2MiA1MC45MDJDODIuNjE1MiA0NS42NDkgODIuNjE1MiA0MC40NDcgODIuNjE1MiAzNS4yNDVaIiBmaWxsPSIjQURCM0JBIi8+CjxwYXRoIGQ9Ik03NS42NjkzIDEwQzUzLjI3MSAxMCAzNSAyOC40NjIgMzUgNTEuMjA4QzM1IDczLjk1NCA1My4yMjA3IDkyLjQxNiA3NS42NjkzIDkyLjQxNkM5OC4xMTggOTIuNDE2IDExNi4zMzkgNzMuOTU0IDExNi4zMzkgNTEuMjA4QzExNi4zMzkgMjguNDYyIDk4LjA2NzcgMTAgNzUuNjY5MyAxMFpNNDMuNjU3MyA1MS4xNTdDNDMuNjU3MyA0My41NTggNDYuMjc0NyAzNi41MiA1MC42NTM3IDMwLjk2MUw1OC41MDU3IDM5LjMyNUM2MC4wNjYgMzcuMTMyIDYyLjU4MjcgMzUuNzU1IDY1LjYwMjcgMzUuNzU1QzY2LjEwNiAzNS43NTUgNjYuNjA5MyAzNS43NTUgNjcuMTEyNyAzNS43NTVMNTYuOTQ1MyAyNC44OTJDNjIuMjMwMyAyMS4wMTYgNjguNzIzMyAxOC43MjEgNzUuNzE5NyAxOC43MjFDOTMuMzg2NyAxOC43MjEgMTA3LjczMiAzMy4yNTYgMTA3LjczMiA1MS4xNTdDMTA3LjczMiA1OC45MDkgMTA1LjA2NCA2NS45OTggMTAwLjU4NCA3MS41NTdMODguOTU3MyA1OS4xNjRWNjkuNjE5Qzg4Ljk1NzMgNzAuMTI5IDg4Ljk1NzMgNzAuODQzIDg4Ljc1NiA3MS42NTlMOTQuMjQyMyA3Ny41MjRDODkuMDA3NyA4MS4yOTggODIuNjE1MyA4My41NDIgNzUuNzE5NyA4My41NDJDNTguMDAyMyA4My41OTMgNDMuNjU3MyA2OS4wNTggNDMuNjU3MyA1MS4xNTdaIiBmaWxsPSIjQURCM0JBIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjI2XzExNTgiPgo8cmVjdCB3aWR0aD0iMTUxIiBoZWlnaHQ9IjEwMiIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K",
  "H5P.MultiMediaChoice-0.3/assets/placeholderAudio1to1.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjE1MyIgdmlld0JveD0iMCAwIDE1MyAxNTMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMjZfMTE0NikiPgo8cGF0aCBkPSJNMTUzLjEyMyAwSC0wLjAzMDUxNzZWMTUzSDE1My4xMjNWMFoiIGZpbGw9IiNEQ0UyRTkiLz4KPHBhdGggZD0iTTg1LjQ1NjQgNTQuNzg5MkM4NS40NTY0IDU0LjU0NDMgODUuNDU2NCA1NC4yNjg5IDg1LjQ1NjQgNTQuMDI0Qzg1LjM2NDYgNTIuODkxNiA4NC40NDY0IDUxLjk3MzQgODMuMjUyOCA1MS45NDI4QzgzLjE5MTYgNTEuOTQyOCA4My4xNjA5IDUxLjk0MjggODMuMDM4NSA1MS45NDI4QzgyLjI3MzQgNTEuOTQyOCA4MS42NjEyIDUyLjMxMDEgODEuMTEwMyA1Mi43OTk4Qzc3LjUyOTQgNTYuMzE5NSA3My45NDg1IDU5Ljg2OTggNzAuMzY3NiA2My4zODk1QzcwLjI3NTggNjMuNDgxMyA3MC4xNTMzIDYzLjU0MjUgNzAuMDYxNSA2My42MDM3QzY5Ljg0NzMgNjMuNjk1NSA2OS42NjM2IDYzLjc1NjggNjkuNDQ5NCA2My43NTY4QzY4LjUzMTIgNjMuNzU2OCA2Ny42MTMgNjMuNzU2OCA2Ni42OTQ5IDYzLjc1NjhDNjUuNzc2NyA2My43NTY4IDY0Ljg1ODUgNjMuNzU2OCA2My45NDAzIDYzLjc1NjhDNjEuNzk3OSA2My43NTY4IDYwLjE0NTEgNjQuODI4IDU5LjM4IDY2LjUxMTNDNTkuMDczOSA2Ny4xODQ2IDU4LjkyMDkgNjcuODg4NiA1OC45MjA5IDY4Ljc3NjJDNTguOTIwOSA3My4zNjcxIDU4LjkyMDkgNzcuOTg4NiA1OC45MjA5IDgyLjU3OTVDNTguOTIwOSA4NS41NDgzIDYwLjk3MTUgODcuNTM3NyA2My45NzA5IDg3LjUzNzdDNjQuODg5MSA4Ny41Mzc3IDY1Ljc0NjEgODcuNTM3NyA2Ni42OTQ5IDg3LjUzNzdDNjcuNjQzNiA4Ny41Mzc3IDY4LjQ3IDg3LjUzNzcgNjkuNDE4OCA4Ny41Mzc3QzY5LjgxNjcgODcuNTM3NyA3MC4wOTIxIDg3LjYyOTUgNzAuMzM3IDg3LjkzNTZDNzMuODU2NyA5MS40MjQ3IDc3LjQwNyA5NC45NDQ0IDgwLjk1NzMgOTguNDAyOUM4MS4xMTAzIDk4LjU1NTkgODEuMjYzNCA5OC43NzAyIDgxLjQ3NzYgOTguOTIzMkM4MS45MzY3IDk5LjI5MDUgODIuNDU3IDk5LjQ0MzUgODIuOTQ2NyA5OS40NDM1QzgzLjk1NjcgOTkuNDQzNSA4NC45MzYxIDk4Ljc3MDIgODUuMjQyMiA5Ny42OTlDODUuMzM0IDk3LjMzMTcgODUuMzM0IDk2Ljk5NSA4NS4zMzQgOTYuNTY2NUM4NS4zMzQgOTUuNzA5NSA4NS4zMzQgOTQuODIyIDg1LjMzNCA5My45NjVDODUuMzM0IDg5LjI1MTcgODUuMzM0IDg0LjUwNzcgODUuMzM0IDc5Ljc5NDRDODUuMzM0IDc4LjQxNzEgODUuMzM0IDc3LjAzOTggODUuMzM0IDc1LjY2MjVDODUuNDU2NCA2OC43MTUgODUuNDU2NCA2MS43Njc0IDg1LjQ1NjQgNTQuNzg5MloiIGZpbGw9IiNBREIzQkEiLz4KPHBhdGggZD0iTTc2LjA2MDQgMjFDNDUuNjk5MSAyMSAyMSA0NS42OTkxIDIxIDc2LjA2MDRDMjEgMTA2LjQyMiA0NS42OTkxIDEzMS4xMjEgNzYuMDYwNCAxMzEuMTIxQzEwNi40MjIgMTMxLjEyMSAxMzEuMTIxIDEwNi40MjIgMTMxLjEyMSA3Ni4wNjA0QzEzMS4xMjEgNDUuNjk5MSAxMDYuNDIyIDIxIDc2LjA2MDQgMjFaTTMyLjY5MTUgNzYuMDYwNEMzMi42OTE1IDY1Ljg5OTIgMzYuMjExMiA1Ni40NzI1IDQyLjE0ODggNDkuMTI3TDUyLjc2OTIgNjAuMzI4OUM1NC44NTA0IDU3LjQyMTMgNTguMzM5NSA1NS41ODQ5IDYyLjM3OTUgNTUuNTg0OUM2My4wNTI4IDU1LjU4NDkgNjMuNjk1NSA1NS41ODQ5IDY0LjM2ODkgNTUuNTg0OUw1MC42NTczIDQxLjA0N0M1Ny44MTkyIDM1Ljg0NCA2Ni42MDMxIDMyLjc1MjggNzYuMTIxNiAzMi43NTI4Qzk5Ljk5NDQgMzIuNzUyOCAxMTkuNDkxIDUyLjE4NzYgMTE5LjQ5MSA3Ni4xMjE2QzExOS40OTEgODYuNDM1OSAxMTUuODQ4IDk1Ljk1NDQgMTA5Ljc4OCAxMDMuNDIyTDk0LjA4NzQgODYuODY0NFYxMDAuODgyQzk0LjA4NzQgMTAxLjU1NSA5NC4wODc0IDEwMi41MDQgOTMuNzgxNCAxMDMuNjA2TDEwMS4yNDkgMTExLjQ3MkM5NC4xNDg2IDExNi41MjIgODUuNDg3MSAxMTkuNDkxIDc2LjE1MjIgMTE5LjQ5MUM1Mi4xODc2IDExOS40MjkgMzIuNjkxNSA5OS45MzMyIDMyLjY5MTUgNzYuMDYwNFoiIGZpbGw9IiNBREIzQkEiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjZfMTE0NiI+CjxyZWN0IHdpZHRoPSIxNTMiIGhlaWdodD0iMTUzIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/placeholderOther1to1.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjE1MyIgdmlld0JveD0iMCAwIDE1MyAxNTMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxNTMiIGhlaWdodD0iMTUzIiBmaWxsPSIjREJFMkU4Ii8+Cjwvc3ZnPgo=",
  "H5P.MultiMediaChoice-0.3/assets/placeholderVideo4to3.svg":
    "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjExNCIgdmlld0JveD0iMCAwIDE1MyAxMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMjZfMTE5MSkiPgo8cGF0aCBkPSJNMTUzIDAuNDU1OTk0SDBWMTE1SDE1M1YwLjQ1NTk5NFoiIGZpbGw9IiNEQ0UyRTkiLz4KPHBhdGggZD0iTTc2LjUzOTUgMTZDNTMuNjI3OCAxNiAzNSAzNC41MDYgMzUgNTcuMjY4QzM1IDgwLjAzIDUzLjYyNzggOTguNTM2IDc2LjUzOTUgOTguNTM2Qzk5LjQ1MTMgOTguNTM2IDExOC4wNzkgODAuMDMgMTE4LjA3OSA1Ny4yNjhDMTE4LjA3OSAzNC41MDYgOTkuNDUxMyAxNiA3Ni41Mzk1IDE2Wk00My44MzU3IDU3LjI2OEM0My44MzU3IDQ5LjYzIDQ2LjUxMzMgNDIuNiA1MC45NTAzIDM3LjA1Mkw2Mi4xNTc1IDQ4Ljc5NFY0MS44NzhWMzYuMDI2TDU3LjMzOCAzMC45NzJDNjIuNzMxMyAyNy4wNTggNjkuMzQ4NSAyNC43NzggNzYuNTM5NSAyNC43NzhDOTQuNTkzNSAyNC43NzggMTA5LjI0MyAzOS4zNyAxMDkuMjQzIDU3LjI2OEMxMDkuMjQzIDY1LjAyIDEwNi40ODkgNzIuMTI2IDEwMS45MzggNzcuNzEyTDkwLjExODMgNjUuMzI0TDgyLjY5NzggNjkuNThMODIuMjM4OCA2OS44NDZMOTUuNDczMyA4My43MTZDOTAuMTE4MyA4Ny41MTYgODMuNTc3NSA4OS43NTggNzYuNTM5NSA4OS43NThDNTguNDg1NSA4OS43NTggNDMuODM1NyA3NS4yMDQgNDMuODM1NyA1Ny4yNjhaIiBmaWxsPSIjQURCM0JBIi8+CjxwYXRoIGQ9Ik04MC4wNTg0IDQ5LjI1TDY3Ljg1NjcgNDIuMjJWNTIuMzY2VjU2LjI0MlY3MC4yMjZMODAuMDU4NCA2My4yMzRMOTIuMjYwMiA1Ni4yNDJMODAuMDU4NCA0OS4yNVoiIGZpbGw9IiNBREIzQkEiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjZfMTE5MSI+CjxyZWN0IHdpZHRoPSIxNTMiIGhlaWdodD0iMTE0IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
};
!(function () {
  H5P.ContentType = function (t) {
    function e() {}
    return (
      ((e.prototype = new H5P.EventDispatcher()).isRoot = function () {
        return t;
      }),
      (e.prototype.getLibraryFilePath = function (t) {
        return (
          furtherH5PInlineResources[
            this.libraryInfo.versionedNameNoSpaces + "/" + t
          ] || t
        );
      }),
      e
    );
  };
  var i = HTMLScriptElement.prototype.setAttribute,
    n =
      ((HTMLScriptElement.prototype.setAttribute = function (t, e) {
        if ("src" === t) {
          if (!(e instanceof String)) {
            if (!e.toString) return void i.call(this, t, e);
            e = e.toString();
          }
          var r = window.location.href.substr(
              0,
              window.location.href.lastIndexOf("/"),
            ),
            r = (e = e.startsWith(r) ? e.substr(r.length + 1) : e).match(
              /^.\/libraries\/([^?]+)\??.*$/,
            );
          r &&
            ((r = r[1]), furtherH5PInlineResources[r]) &&
            (e = furtherH5PInlineResources[r]);
        }
        i.call(this, t, e);
      }),
      Object.defineProperty(HTMLScriptElement.prototype, "src", {
        set(t) {
          this.setAttribute("src", t);
        },
      }),
      HTMLLinkElement.prototype.setAttribute);
  ((HTMLLinkElement.prototype.setAttribute = function (t, e) {
    if ("href" === t) {
      if (!(e instanceof String)) {
        if (!e.toString) return void i.call(this, t, e);
        e = e.toString();
      }
      var r = window.location.href.substr(
          0,
          window.location.href.lastIndexOf("/"),
        ),
        r = (e = e.startsWith(r) ? e.substr(r.length + 1) : e).match(
          /^.\/libraries\/([^?]+)\??.*$/,
        );
      r &&
        ((r = r[1]), furtherH5PInlineResources[r]) &&
        (e = furtherH5PInlineResources[r]);
    }
    n.call(this, t, e);
  }),
    Object.defineProperty(HTMLLinkElement.prototype, "src", {
      set(t) {
        this.setAttribute("src", t);
      },
    }));
})();
