From 18c42b6a0ac3d005e3ad6edfbaa8bfc8c34977e0 Mon Sep 17 00:00:00 2001 From: monica-reverte Date: Mon, 9 Jan 2023 16:31:37 +0100 Subject: [PATCH 01/46] index --- index.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 00000000..ed5903db --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + + Document + + + + + From e359cea248072751e43e9927c774f4dc117baa58 Mon Sep 17 00:00:00 2001 From: monica-reverte Date: Mon, 9 Jan 2023 16:37:58 +0100 Subject: [PATCH 02/46] basic index --- index.html | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index ed5903db..d795c656 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,31 @@ Document - +
+ + + +
+ + +
+ +
+

Aside

+

Folder

+

Folder

+
+ +
+

Open Folder

+ + + +
+ + +
From 968ab3d60aebeaa4261171a920501931b989d5df Mon Sep 17 00:00:00 2001 From: monica-reverte Date: Mon, 9 Jan 2023 16:41:36 +0100 Subject: [PATCH 03/46] archivos --- app.php | 0 styles.css | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 app.php create mode 100644 styles.css diff --git a/app.php b/app.php new file mode 100644 index 00000000..e69de29b diff --git a/styles.css b/styles.css new file mode 100644 index 00000000..e69de29b From 1db85ca57861e69a1fc030e724f9b89366c0b8df Mon Sep 17 00:00:00 2001 From: Edgar Arcos Date: Mon, 9 Jan 2023 15:45:37 +0000 Subject: [PATCH 04/46] conectando archivos --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index d795c656..3106d4d2 100644 --- a/index.html +++ b/index.html @@ -4,6 +4,7 @@ + Document From 6594bf8dbd73eddfe15afe2a5b136f8592688033 Mon Sep 17 00:00:00 2001 From: monica-reverte Date: Mon, 9 Jan 2023 16:59:18 +0100 Subject: [PATCH 05/46] index php --- app.php | 0 index.html => index.php | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 app.php rename index.html => index.php (100%) diff --git a/app.php b/app.php deleted file mode 100644 index e69de29b..00000000 diff --git a/index.html b/index.php similarity index 100% rename from index.html rename to index.php From b29d7b61ddc76d661db394db5e13424d6724d583 Mon Sep 17 00:00:00 2001 From: Marian Roibu Date: Tue, 10 Jan 2023 10:06:36 +0100 Subject: [PATCH 06/46] plantilla --- index.php | 18 ++++++++++++------ styles.css | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 6 deletions(-) diff --git a/index.php b/index.php index 3106d4d2..b1a19e65 100644 --- a/index.php +++ b/index.php @@ -7,17 +7,23 @@ Document + + + -
+
+ - +
-
+
+ +
-
+

Aside

diff --git a/styles.css b/styles.css index e69de29b..30c3dc7e 100644 --- a/styles.css +++ b/styles.css @@ -0,0 +1,40 @@ +body{ + display: flex; + flex-direction: row; + flex-wrap: wrap; + +} + + +.navBar{ + width: 100%; + flex-direction: row; + flex-wrap: wrap; + display: flex; + border:1px solid black ; + text-align: center; + margin: auto; + padding-right: 70rem; + +} + + +main{ + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + width: 100%; +} + +.subHeader{ + + width: 100%; + flex-direction: row; + flex-wrap: wrap; + display: flex; + border:1px solid black ; + text-align: center; + margin-top: 5rem; + +} \ No newline at end of file From 09ed72335bfde31a0acc0c2f2dc65aa4329856eb Mon Sep 17 00:00:00 2001 From: monica-reverte Date: Tue, 10 Jan 2023 10:10:05 +0100 Subject: [PATCH 07/46] wireframe --- Documents/Wireframe.drawio | 1 + 1 file changed, 1 insertion(+) create mode 100644 Documents/Wireframe.drawio diff --git a/Documents/Wireframe.drawio b/Documents/Wireframe.drawio new file mode 100644 index 00000000..3d6e6477 --- /dev/null +++ b/Documents/Wireframe.drawio @@ -0,0 +1 @@ +7Vtbd9o4EP41PIZjW77gxwVC+5Bue0q3e/ZR2ALrRLZYIxbIr1/JyAZ7RCENBnLxS9Do6m++GY3GSgcN0vWnHM+TLzwmrONY8bqDhh3HsV3Lkn+UZLOVBL67FcxyGutGO8GYPhEt1P1mSxqTRa2h4JwJOq8LI55lJBI1Gc5zvqo3m3JWn3WOZwQIxhFmUPo3jUWipXb5XqriM6GzRE/d83TFBEePs5wvMz1fx0HT4tlWp7gcS7dfJDjmqz0Ruu+gQc652P5K1wPCFLYlbNt+owO11bpzkolTOvhBMAkmvdANPduzQ+9Oj/AfZktSvkKxULEpwVklVJDxHEeqvJIE6KB+IlImS7b8Wbw9UeNbslS9oCowPCGsX0E04IznsirjGVFNRc4fSSmUyFnFU9WUmlCTTCljje5TnokRTilTnPtJ8hhnWIs1wWxHl01zYEZnmZRFEjkiK/sRT2mkp4OwljiRXJD1nkjD/InwlIh8I5vo2lLjm3pxtUcvy9fCZJ9apU1gzelZNfROr/KHVu2JakZAzWOC8ygByobQ1zQa40VS6RpAuMcK2WuuhkzXM+UyuimPHpfz7pTn6aK7KObu87WJBWHxyJoU0+wHWRe41No5pSp7kTQ0oGK/eBpUCPbWy8hUqBElpWk2eyhKQwSo/Gv2npku0ofW+OJDvvQcA11c1C197VkJ07u2XziP9bdt5ahh5QiqzbEMavPCNqw8PK40Rg9gfA7N/Z6e3Nvx0pUVHnXTrXjpctAPq3uW1dkGZ2lbrsnsWtEajKH+JCugOFFsZfu6mnOaiWIlXr/jDeEOpRChMkr9Q4sFn+/2rR+qMLxzD1gTUNPLYe8FDdwDD+BuQt1pBXUY0vw1ZxzHbxD40D8OvMlJtQK8EwDgR/K8Je387QHfCMoq/7HvaIKLAQ9jsvFyMn2r2DecjTxzXxN7GFq9F9KjcoSrAI9gSPSOSI+8C5L+G3vs/fvzaTO6wwPrYfgPDdiTIT904/ADrA0aORn+8IL+3gi/86rczouwb7gd15Qxuyj2MMB8N9hfMs4xYu8C7CHqOcXZTJX6R8/EAgvKFc6hVZ1AXwRY6NaDEy8AgPW6jgcRKw+LZ0fMu3XEnEZUcXXE/JYQa4diruN2YTBwYchOyArfEmSed33IDHmK0deH4f13gNxiRVOGqzzbWNcobKKEsvgBb/hSLXchcPRYlvoJz+mTbI+rTy8C5+Wmgaxai7HqqcfMyUK2+VaCazdEX/C61vABL0S5Gs4Yni/opFif6pjifEazPheCp7rREeU3N7YzaN9pZElMyXjPmJ9CrUXPcB8bUYmaY9mHooj697DDifUjAUVK47gwwvpXLncn+a4BUCIuu09ZkSlOZEeSgRimLyEaWNKcZDTjDGTZ3pWLAGfOczHgmVw+poW+iCTMiijSbC0dTyo6t8GNXxgfZEy5CZ1IkKA1fsBdW/PD4Fg/+HFpflT3P65HEBikaIKgD4LcAEGCEwnit5YggBmC+5gKQI7dd0H7+fjhPNLFMwVqnovqW3WvB3C0y8iptlWHbeEIw7QhYUSQG0fS93snIGlgZGsxjwNjnlfByPrZAbnwfHphRsLY4HUwsplEdf1rMxJuoq8EyXrOxLXcayMJv/2+Ctv2T8DxkraNTshv1i9TnnoF83AY17iQub027Wz/qmEVOFZX3Zss7nW7xVw0J5HO0WQyPpNg9TMuokRP38IpHtmNXDRCQFnIwPnSX59fV5Dzn7/+NORv4GeA54bix7VoMqX6la82EithQyWGz2Km6ye/4YZkcXcZvqjb+48DdP8/ \ No newline at end of file From b1850c1702d65c0f6a0233f00ebb3eb53ccae696 Mon Sep 17 00:00:00 2001 From: Marian Roibu Date: Tue, 10 Jan 2023 10:11:06 +0100 Subject: [PATCH 08/46] small changes --- styles.css | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/styles.css b/styles.css index 30c3dc7e..cb017de5 100644 --- a/styles.css +++ b/styles.css @@ -13,9 +13,15 @@ body{ display: flex; border:1px solid black ; text-align: center; - margin: auto; - padding-right: 70rem; + +} + +header{ + width: 100%; + display: flex; + flex-direction: row; + flex-wrap: wrap; } From 7da6a3829cf79f47bb7f1ebfc5959a0e96b51063 Mon Sep 17 00:00:00 2001 From: Marian Roibu Date: Tue, 10 Jan 2023 10:12:12 +0100 Subject: [PATCH 09/46] small changes --- styles.css | 1 - 1 file changed, 1 deletion(-) diff --git a/styles.css b/styles.css index cb017de5..25565347 100644 --- a/styles.css +++ b/styles.css @@ -14,7 +14,6 @@ body{ border:1px solid black ; text-align: center; - } header{ From ed3397fbe331febf6903288f8c2d91864ebfca86 Mon Sep 17 00:00:00 2001 From: Marian Roibu Date: Tue, 10 Jan 2023 10:42:01 +0100 Subject: [PATCH 10/46] plantilla --- index.php | 24 +++++++++++++++--------- styles.css | 48 +++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 56 insertions(+), 16 deletions(-) diff --git a/index.php b/index.php index b1a19e65..1d0a66e4 100644 --- a/index.php +++ b/index.php @@ -24,20 +24,26 @@
- -
-

Aside

-

Folder

-

Folder

+
+
+

Aside

+

Folder

+

Folder

+

Folder

+

Folder

+

Folder

+

Folder

+

Folder

+

Folder

-
+

Open Folder

- - + +
- +
diff --git a/styles.css b/styles.css index 25565347..2d76d50a 100644 --- a/styles.css +++ b/styles.css @@ -25,21 +25,55 @@ header{ main{ - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: center; + width: 100%; } .subHeader{ - width: 100%; flex-direction: row; flex-wrap: wrap; display: flex; border:1px solid black ; text-align: center; - margin-top: 5rem; -} \ No newline at end of file +} + +.aside{ + display: flex; + flex-direction: column; + border: 1px solid black; + width: 20%; + height: 100%; + margin-top: 5%; +} + +.asideContent{ + margin-left: 5%; +} + +.mainFolder{ + position: fixed; + top: 15%; + right: 40%; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + gap: 10px; +} + +.mainDiv{ + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + +} + +/* .buttonFolder{ + display: flex; + flex-direction: row; + gap: 10px; + +} */ \ No newline at end of file From cb71f3923d6b3aafe0c93e5fab222a69d47b5772 Mon Sep 17 00:00:00 2001 From: Marian Roibu Date: Tue, 10 Jan 2023 10:43:27 +0100 Subject: [PATCH 11/46] changes --- index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.php b/index.php index 1d0a66e4..0e550cf7 100644 --- a/index.php +++ b/index.php @@ -24,7 +24,7 @@ -
+

Aside

Folder

From f9dd230e2723342d8d6fa207a01b821fa64694c7 Mon Sep 17 00:00:00 2001 From: monica-reverte Date: Tue, 10 Jan 2023 10:45:18 +0100 Subject: [PATCH 12/46] css changes --- index.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.php b/index.php index b1a19e65..70a7e4dc 100644 --- a/index.php +++ b/index.php @@ -19,12 +19,11 @@
- +
-

Aside

Folder

From 58d1dd1eea29261fce1ac8ee03b395cc2d509a00 Mon Sep 17 00:00:00 2001 From: monica-reverte Date: Tue, 10 Jan 2023 10:49:05 +0100 Subject: [PATCH 13/46] new conflict --- styles.css | 7 ------- 1 file changed, 7 deletions(-) diff --git a/styles.css b/styles.css index 2d76d50a..eab2ee14 100644 --- a/styles.css +++ b/styles.css @@ -63,13 +63,6 @@ main{ gap: 10px; } -.mainDiv{ - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - -} /* .buttonFolder{ display: flex; From 6008bdf35d7dfc81f955f07b0feddcd254d24274 Mon Sep 17 00:00:00 2001 From: Marian Roibu Date: Tue, 10 Jan 2023 12:02:39 +0100 Subject: [PATCH 14/46] display files --- download.php | 7 + index.php | 26 +- logic.js | 12 + node_modules/.package-lock.json | 28 + node_modules/ajax/.npmignore | 1 + node_modules/ajax/LICENSE | 13 + node_modules/ajax/README.md | 26 + node_modules/ajax/lib/ajax.js | 118 + node_modules/ajax/package.json | 25 + node_modules/jquery/AUTHORS.txt | 337 + node_modules/jquery/LICENSE.txt | 20 + node_modules/jquery/README.md | 60 + node_modules/jquery/bower.json | 14 + node_modules/jquery/dist/jquery.js | 10993 ++++++++++++++++ node_modules/jquery/dist/jquery.min.js | 2 + node_modules/jquery/dist/jquery.min.map | 1 + node_modules/jquery/dist/jquery.slim.js | 8894 +++++++++++++ node_modules/jquery/dist/jquery.slim.min.js | 2 + node_modules/jquery/dist/jquery.slim.min.map | 1 + .../jquery/external/sizzle/LICENSE.txt | 36 + .../jquery/external/sizzle/dist/sizzle.js | 2542 ++++ .../jquery/external/sizzle/dist/sizzle.min.js | 3 + .../external/sizzle/dist/sizzle.min.map | 1 + node_modules/jquery/package.json | 116 + node_modules/jquery/src/ajax.js | 876 ++ node_modules/jquery/src/ajax/jsonp.js | 103 + node_modules/jquery/src/ajax/load.js | 77 + node_modules/jquery/src/ajax/script.js | 74 + node_modules/jquery/src/ajax/var/location.js | 5 + node_modules/jquery/src/ajax/var/nonce.js | 5 + node_modules/jquery/src/ajax/var/rquery.js | 5 + node_modules/jquery/src/ajax/xhr.js | 170 + node_modules/jquery/src/attributes.js | 13 + node_modules/jquery/src/attributes/attr.js | 141 + node_modules/jquery/src/attributes/classes.js | 184 + node_modules/jquery/src/attributes/prop.js | 142 + node_modules/jquery/src/attributes/support.js | 33 + node_modules/jquery/src/attributes/val.js | 191 + node_modules/jquery/src/callbacks.js | 236 + node_modules/jquery/src/core.js | 400 + node_modules/jquery/src/core/DOMEval.js | 43 + node_modules/jquery/src/core/access.js | 72 + node_modules/jquery/src/core/camelCase.js | 23 + node_modules/jquery/src/core/init.js | 129 + node_modules/jquery/src/core/isAttached.js | 26 + node_modules/jquery/src/core/nodeName.js | 13 + node_modules/jquery/src/core/parseHTML.js | 65 + node_modules/jquery/src/core/parseXML.js | 35 + .../jquery/src/core/ready-no-deferred.js | 97 + node_modules/jquery/src/core/ready.js | 86 + .../jquery/src/core/readyException.js | 13 + .../jquery/src/core/stripAndCollapse.js | 14 + node_modules/jquery/src/core/support.js | 20 + node_modules/jquery/src/core/toType.js | 20 + .../jquery/src/core/var/rsingleTag.js | 7 + node_modules/jquery/src/css.js | 495 + node_modules/jquery/src/css/addGetHookIf.js | 26 + node_modules/jquery/src/css/adjustCSS.js | 74 + node_modules/jquery/src/css/curCSS.js | 100 + node_modules/jquery/src/css/finalPropName.js | 42 + .../jquery/src/css/hiddenVisibleSelectors.js | 15 + node_modules/jquery/src/css/showHide.js | 105 + node_modules/jquery/src/css/support.js | 152 + node_modules/jquery/src/css/var/cssExpand.js | 5 + node_modules/jquery/src/css/var/getStyles.js | 17 + .../jquery/src/css/var/isHiddenWithinTree.js | 34 + node_modules/jquery/src/css/var/rboxStyle.js | 7 + .../jquery/src/css/var/rcustomProp.js | 7 + node_modules/jquery/src/css/var/rnumnonpx.js | 7 + node_modules/jquery/src/css/var/swap.js | 26 + node_modules/jquery/src/data.js | 180 + node_modules/jquery/src/data/Data.js | 162 + .../jquery/src/data/var/acceptData.js | 19 + node_modules/jquery/src/data/var/dataPriv.js | 7 + node_modules/jquery/src/data/var/dataUser.js | 7 + node_modules/jquery/src/deferred.js | 399 + .../jquery/src/deferred/exceptionHook.js | 21 + node_modules/jquery/src/deprecated.js | 89 + .../jquery/src/deprecated/ajax-event-alias.js | 22 + node_modules/jquery/src/deprecated/event.js | 50 + node_modules/jquery/src/dimensions.js | 60 + node_modules/jquery/src/effects.js | 702 + node_modules/jquery/src/effects/Tween.js | 125 + .../jquery/src/effects/animatedSelector.js | 15 + node_modules/jquery/src/event.js | 874 ++ node_modules/jquery/src/event/focusin.js | 58 + node_modules/jquery/src/event/support.js | 11 + node_modules/jquery/src/event/trigger.js | 199 + node_modules/jquery/src/exports/amd.js | 26 + node_modules/jquery/src/exports/global.js | 34 + node_modules/jquery/src/jquery.js | 41 + node_modules/jquery/src/manipulation.js | 487 + .../jquery/src/manipulation/_evalUrl.js | 32 + .../jquery/src/manipulation/buildFragment.js | 106 + .../jquery/src/manipulation/getAll.js | 32 + .../jquery/src/manipulation/setGlobalEval.js | 22 + .../jquery/src/manipulation/support.js | 41 + .../src/manipulation/var/rscriptType.js | 5 + .../jquery/src/manipulation/var/rtagName.js | 8 + .../jquery/src/manipulation/wrapMap.js | 30 + node_modules/jquery/src/offset.js | 232 + node_modules/jquery/src/queue.js | 145 + node_modules/jquery/src/queue/delay.js | 23 + node_modules/jquery/src/selector-native.js | 240 + node_modules/jquery/src/selector-sizzle.js | 19 + node_modules/jquery/src/selector.js | 3 + node_modules/jquery/src/serialize.js | 134 + node_modules/jquery/src/traversing.js | 198 + .../jquery/src/traversing/findFilter.js | 97 + node_modules/jquery/src/traversing/var/dir.js | 22 + .../src/traversing/var/rneedsContext.js | 8 + .../jquery/src/traversing/var/siblings.js | 17 + .../jquery/src/var/ObjectFunctionString.js | 7 + node_modules/jquery/src/var/arr.js | 5 + node_modules/jquery/src/var/class2type.js | 6 + node_modules/jquery/src/var/document.js | 5 + .../jquery/src/var/documentElement.js | 7 + node_modules/jquery/src/var/flat.js | 16 + node_modules/jquery/src/var/fnToString.js | 7 + node_modules/jquery/src/var/getProto.js | 5 + node_modules/jquery/src/var/hasOwn.js | 7 + node_modules/jquery/src/var/indexOf.js | 7 + node_modules/jquery/src/var/isFunction.js | 17 + node_modules/jquery/src/var/isWindow.js | 8 + node_modules/jquery/src/var/pnum.js | 5 + node_modules/jquery/src/var/push.js | 7 + node_modules/jquery/src/var/rcheckableType.js | 5 + node_modules/jquery/src/var/rcssNum.js | 9 + node_modules/jquery/src/var/rnothtmlwhite.js | 8 + node_modules/jquery/src/var/rtrimCSS.js | 12 + node_modules/jquery/src/var/slice.js | 7 + node_modules/jquery/src/var/support.js | 6 + node_modules/jquery/src/var/toString.js | 7 + node_modules/jquery/src/var/whitespace.js | 8 + node_modules/jquery/src/wrap.js | 78 + node_modules/underscore/LICENSE | 22 + node_modules/underscore/README.md | 34 + node_modules/underscore/amd/_baseCreate.js | 21 + node_modules/underscore/amd/_baseIteratee.js | 15 + node_modules/underscore/amd/_cb.js | 12 + node_modules/underscore/amd/_chainResult.js | 10 + .../underscore/amd/_collectNonEnumProps.js | 42 + .../underscore/amd/_createAssigner.js | 24 + node_modules/underscore/amd/_createEscaper.js | 21 + .../underscore/amd/_createIndexFinder.js | 30 + .../amd/_createPredicateIndexFinder.js | 18 + node_modules/underscore/amd/_createReduce.js | 30 + .../amd/_createSizePropertyCheck.js | 13 + node_modules/underscore/amd/_deepGet.js | 15 + node_modules/underscore/amd/_escapeMap.js | 15 + node_modules/underscore/amd/_executeBound.js | 16 + node_modules/underscore/amd/_flatten.js | 32 + node_modules/underscore/amd/_getByteLength.js | 8 + node_modules/underscore/amd/_getLength.js | 8 + node_modules/underscore/amd/_group.js | 18 + node_modules/underscore/amd/_has.js | 10 + node_modules/underscore/amd/_hasObjectTag.js | 7 + node_modules/underscore/amd/_isArrayLike.js | 11 + node_modules/underscore/amd/_isBufferLike.js | 9 + node_modules/underscore/amd/_keyInObj.js | 11 + .../underscore/amd/_methodFingerprint.js | 44 + node_modules/underscore/amd/_optimizeCb.js | 27 + node_modules/underscore/amd/_set.js | 21 + node_modules/underscore/amd/_setup.js | 70 + .../underscore/amd/_shallowProperty.js | 12 + node_modules/underscore/amd/_stringTagBug.js | 16 + node_modules/underscore/amd/_tagTester.js | 13 + node_modules/underscore/amd/_toBufferView.js | 15 + node_modules/underscore/amd/_toPath.js | 11 + node_modules/underscore/amd/_unescapeMap.js | 8 + node_modules/underscore/amd/after.js | 14 + node_modules/underscore/amd/allKeys.js | 15 + node_modules/underscore/amd/before.js | 18 + node_modules/underscore/amd/bind.js | 15 + node_modules/underscore/amd/bindAll.js | 19 + node_modules/underscore/amd/chain.js | 12 + node_modules/underscore/amd/chunk.js | 17 + node_modules/underscore/amd/clone.js | 11 + node_modules/underscore/amd/compact.js | 10 + node_modules/underscore/amd/compose.js | 18 + node_modules/underscore/amd/constant.js | 12 + node_modules/underscore/amd/contains.js | 12 + node_modules/underscore/amd/countBy.js | 12 + node_modules/underscore/amd/create.js | 14 + node_modules/underscore/amd/debounce.js | 43 + node_modules/underscore/amd/defaults.js | 8 + node_modules/underscore/amd/defer.js | 9 + node_modules/underscore/amd/delay.js | 13 + node_modules/underscore/amd/difference.js | 14 + node_modules/underscore/amd/each.js | 25 + node_modules/underscore/amd/escape.js | 8 + node_modules/underscore/amd/every.js | 17 + node_modules/underscore/amd/extend.js | 8 + node_modules/underscore/amd/extendOwn.js | 10 + node_modules/underscore/amd/filter.js | 15 + node_modules/underscore/amd/find.js | 12 + node_modules/underscore/amd/findIndex.js | 8 + node_modules/underscore/amd/findKey.js | 15 + node_modules/underscore/amd/findLastIndex.js | 8 + node_modules/underscore/amd/findWhere.js | 11 + node_modules/underscore/amd/first.js | 13 + node_modules/underscore/amd/flatten.js | 11 + node_modules/underscore/amd/functions.js | 14 + node_modules/underscore/amd/get.js | 14 + node_modules/underscore/amd/groupBy.js | 11 + node_modules/underscore/amd/has.js | 19 + node_modules/underscore/amd/identity.js | 10 + node_modules/underscore/amd/index-default.js | 12 + node_modules/underscore/amd/index.js | 154 + node_modules/underscore/amd/indexBy.js | 11 + node_modules/underscore/amd/indexOf.js | 11 + node_modules/underscore/amd/initial.js | 12 + node_modules/underscore/amd/intersection.js | 22 + node_modules/underscore/amd/invert.js | 15 + node_modules/underscore/amd/invoke.js | 28 + node_modules/underscore/amd/isArguments.js | 19 + node_modules/underscore/amd/isArray.js | 9 + node_modules/underscore/amd/isArrayBuffer.js | 7 + node_modules/underscore/amd/isBoolean.js | 10 + node_modules/underscore/amd/isDataView.js | 15 + node_modules/underscore/amd/isDate.js | 7 + node_modules/underscore/amd/isElement.js | 10 + node_modules/underscore/amd/isEmpty.js | 18 + node_modules/underscore/amd/isEqual.js | 133 + node_modules/underscore/amd/isError.js | 7 + node_modules/underscore/amd/isFinite.js | 10 + node_modules/underscore/amd/isFunction.js | 18 + node_modules/underscore/amd/isMap.js | 7 + node_modules/underscore/amd/isMatch.js | 17 + node_modules/underscore/amd/isNaN.js | 10 + node_modules/underscore/amd/isNull.js | 10 + node_modules/underscore/amd/isNumber.js | 7 + node_modules/underscore/amd/isObject.js | 11 + node_modules/underscore/amd/isRegExp.js | 7 + node_modules/underscore/amd/isSet.js | 7 + node_modules/underscore/amd/isString.js | 7 + node_modules/underscore/amd/isSymbol.js | 7 + node_modules/underscore/amd/isTypedArray.js | 16 + node_modules/underscore/amd/isUndefined.js | 10 + node_modules/underscore/amd/isWeakMap.js | 7 + node_modules/underscore/amd/isWeakSet.js | 7 + node_modules/underscore/amd/iteratee.js | 13 + node_modules/underscore/amd/keys.js | 17 + node_modules/underscore/amd/last.js | 13 + node_modules/underscore/amd/lastIndexOf.js | 9 + node_modules/underscore/amd/map.js | 18 + node_modules/underscore/amd/mapObject.js | 19 + node_modules/underscore/amd/matcher.js | 14 + node_modules/underscore/amd/max.js | 30 + node_modules/underscore/amd/memoize.js | 17 + node_modules/underscore/amd/min.js | 30 + node_modules/underscore/amd/mixin.js | 18 + node_modules/underscore/amd/negate.js | 12 + node_modules/underscore/amd/noop.js | 8 + node_modules/underscore/amd/now.js | 10 + node_modules/underscore/amd/object.js | 20 + node_modules/underscore/amd/omit.js | 20 + node_modules/underscore/amd/once.js | 9 + node_modules/underscore/amd/pairs.js | 17 + node_modules/underscore/amd/partial.js | 25 + node_modules/underscore/amd/partition.js | 11 + node_modules/underscore/amd/pick.js | 25 + node_modules/underscore/amd/pluck.js | 10 + node_modules/underscore/amd/property.js | 14 + node_modules/underscore/amd/propertyOf.js | 13 + node_modules/underscore/amd/random.js | 14 + node_modules/underscore/amd/range.js | 27 + node_modules/underscore/amd/reduce.js | 9 + node_modules/underscore/amd/reduceRight.js | 8 + node_modules/underscore/amd/reject.js | 10 + node_modules/underscore/amd/rest.js | 12 + node_modules/underscore/amd/restArguments.js | 33 + node_modules/underscore/amd/result.js | 25 + node_modules/underscore/amd/sample.js | 27 + node_modules/underscore/amd/set.js | 15 + node_modules/underscore/amd/shuffle.js | 10 + node_modules/underscore/amd/size.js | 11 + node_modules/underscore/amd/some.js | 17 + node_modules/underscore/amd/sortBy.js | 26 + node_modules/underscore/amd/sortedIndex.js | 18 + node_modules/underscore/amd/tap.js | 13 + node_modules/underscore/amd/template.js | 103 + .../underscore/amd/templateSettings.js | 13 + node_modules/underscore/amd/throttle.js | 51 + node_modules/underscore/amd/times.js | 13 + node_modules/underscore/amd/toArray.js | 18 + node_modules/underscore/amd/toPath.js | 12 + .../amd/underscore-array-methods.js | 30 + node_modules/underscore/amd/underscore.js | 29 + node_modules/underscore/amd/unescape.js | 8 + node_modules/underscore/amd/union.js | 11 + node_modules/underscore/amd/uniq.js | 37 + node_modules/underscore/amd/uniqueId.js | 13 + node_modules/underscore/amd/unzip.js | 17 + node_modules/underscore/amd/values.js | 16 + node_modules/underscore/amd/where.js | 11 + node_modules/underscore/amd/without.js | 10 + node_modules/underscore/amd/wrap.js | 12 + node_modules/underscore/amd/zip.js | 9 + node_modules/underscore/cjs/_baseCreate.js | 20 + node_modules/underscore/cjs/_baseIteratee.js | 19 + node_modules/underscore/cjs/_cb.js | 12 + node_modules/underscore/cjs/_chainResult.js | 8 + .../underscore/cjs/_collectNonEnumProps.js | 42 + .../underscore/cjs/_createAssigner.js | 20 + node_modules/underscore/cjs/_createEscaper.js | 19 + .../underscore/cjs/_createIndexFinder.js | 30 + .../cjs/_createPredicateIndexFinder.js | 17 + node_modules/underscore/cjs/_createReduce.js | 30 + .../cjs/_createSizePropertyCheck.js | 11 + node_modules/underscore/cjs/_deepGet.js | 11 + node_modules/underscore/cjs/_escapeMap.js | 11 + node_modules/underscore/cjs/_executeBound.js | 15 + node_modules/underscore/cjs/_flatten.js | 33 + node_modules/underscore/cjs/_getByteLength.js | 6 + node_modules/underscore/cjs/_getLength.js | 6 + node_modules/underscore/cjs/_group.js | 17 + node_modules/underscore/cjs/_has.js | 8 + node_modules/underscore/cjs/_hasObjectTag.js | 5 + node_modules/underscore/cjs/_isArrayLike.js | 10 + node_modules/underscore/cjs/_isBufferLike.js | 8 + node_modules/underscore/cjs/_keyInObj.js | 7 + .../underscore/cjs/_methodFingerprint.js | 44 + node_modules/underscore/cjs/_optimizeCb.js | 23 + node_modules/underscore/cjs/_set.js | 21 + node_modules/underscore/cjs/_setup.js | 66 + .../underscore/cjs/_shallowProperty.js | 8 + node_modules/underscore/cjs/_stringTagBug.js | 15 + node_modules/underscore/cjs/_tagTester.js | 11 + node_modules/underscore/cjs/_toBufferView.js | 13 + node_modules/underscore/cjs/_toPath.js | 10 + node_modules/underscore/cjs/_unescapeMap.js | 7 + node_modules/underscore/cjs/after.js | 10 + node_modules/underscore/cjs/allKeys.js | 15 + node_modules/underscore/cjs/before.js | 14 + node_modules/underscore/cjs/bind.js | 15 + node_modules/underscore/cjs/bindAll.js | 19 + node_modules/underscore/cjs/chain.js | 10 + node_modules/underscore/cjs/chunk.js | 15 + node_modules/underscore/cjs/clone.js | 11 + node_modules/underscore/cjs/compact.js | 8 + node_modules/underscore/cjs/compose.js | 14 + node_modules/underscore/cjs/constant.js | 8 + node_modules/underscore/cjs/contains.js | 12 + node_modules/underscore/cjs/countBy.js | 11 + node_modules/underscore/cjs/create.js | 13 + node_modules/underscore/cjs/debounce.js | 42 + node_modules/underscore/cjs/defaults.js | 7 + node_modules/underscore/cjs/defer.js | 9 + node_modules/underscore/cjs/delay.js | 11 + node_modules/underscore/cjs/difference.js | 15 + node_modules/underscore/cjs/each.js | 25 + node_modules/underscore/cjs/escape.js | 7 + node_modules/underscore/cjs/every.js | 17 + node_modules/underscore/cjs/extend.js | 7 + node_modules/underscore/cjs/extendOwn.js | 9 + node_modules/underscore/cjs/filter.js | 14 + node_modules/underscore/cjs/find.js | 12 + node_modules/underscore/cjs/findIndex.js | 6 + node_modules/underscore/cjs/findKey.js | 14 + node_modules/underscore/cjs/findLastIndex.js | 6 + node_modules/underscore/cjs/findWhere.js | 10 + node_modules/underscore/cjs/first.js | 11 + node_modules/underscore/cjs/flatten.js | 9 + node_modules/underscore/cjs/functions.js | 12 + node_modules/underscore/cjs/get.js | 14 + node_modules/underscore/cjs/groupBy.js | 10 + node_modules/underscore/cjs/has.js | 18 + node_modules/underscore/cjs/identity.js | 6 + node_modules/underscore/cjs/index-default.js | 11 + node_modules/underscore/cjs/index.js | 278 + node_modules/underscore/cjs/indexBy.js | 9 + node_modules/underscore/cjs/indexOf.js | 11 + node_modules/underscore/cjs/initial.js | 10 + node_modules/underscore/cjs/intersection.js | 21 + node_modules/underscore/cjs/invert.js | 13 + node_modules/underscore/cjs/invoke.js | 30 + node_modules/underscore/cjs/isArguments.js | 18 + node_modules/underscore/cjs/isArray.js | 8 + node_modules/underscore/cjs/isArrayBuffer.js | 5 + node_modules/underscore/cjs/isBoolean.js | 8 + node_modules/underscore/cjs/isDataView.js | 16 + node_modules/underscore/cjs/isDate.js | 5 + node_modules/underscore/cjs/isElement.js | 6 + node_modules/underscore/cjs/isEmpty.js | 20 + node_modules/underscore/cjs/isEqual.js | 140 + node_modules/underscore/cjs/isError.js | 5 + node_modules/underscore/cjs/isFinite.js | 9 + node_modules/underscore/cjs/isFunction.js | 17 + node_modules/underscore/cjs/isMap.js | 7 + node_modules/underscore/cjs/isMatch.js | 15 + node_modules/underscore/cjs/isNaN.js | 9 + node_modules/underscore/cjs/isNull.js | 6 + node_modules/underscore/cjs/isNumber.js | 5 + node_modules/underscore/cjs/isObject.js | 7 + node_modules/underscore/cjs/isRegExp.js | 5 + node_modules/underscore/cjs/isSet.js | 7 + node_modules/underscore/cjs/isString.js | 5 + node_modules/underscore/cjs/isSymbol.js | 5 + node_modules/underscore/cjs/isTypedArray.js | 17 + node_modules/underscore/cjs/isUndefined.js | 6 + node_modules/underscore/cjs/isWeakMap.js | 7 + node_modules/underscore/cjs/isWeakSet.js | 5 + node_modules/underscore/cjs/iteratee.js | 12 + node_modules/underscore/cjs/keys.js | 18 + node_modules/underscore/cjs/last.js | 11 + node_modules/underscore/cjs/lastIndexOf.js | 8 + node_modules/underscore/cjs/map.js | 18 + node_modules/underscore/cjs/mapObject.js | 18 + node_modules/underscore/cjs/matcher.js | 13 + node_modules/underscore/cjs/max.js | 31 + node_modules/underscore/cjs/memoize.js | 15 + node_modules/underscore/cjs/min.js | 31 + node_modules/underscore/cjs/mixin.js | 20 + node_modules/underscore/cjs/negate.js | 8 + node_modules/underscore/cjs/noop.js | 4 + node_modules/underscore/cjs/now.js | 6 + node_modules/underscore/cjs/object.js | 18 + node_modules/underscore/cjs/omit.js | 24 + node_modules/underscore/cjs/once.js | 8 + node_modules/underscore/cjs/pairs.js | 15 + node_modules/underscore/cjs/partial.js | 25 + node_modules/underscore/cjs/partition.js | 9 + node_modules/underscore/cjs/pick.js | 28 + node_modules/underscore/cjs/pluck.js | 9 + node_modules/underscore/cjs/property.js | 13 + node_modules/underscore/cjs/propertyOf.js | 12 + node_modules/underscore/cjs/random.js | 10 + node_modules/underscore/cjs/range.js | 23 + node_modules/underscore/cjs/reduce.js | 7 + node_modules/underscore/cjs/reduceRight.js | 6 + node_modules/underscore/cjs/reject.js | 10 + node_modules/underscore/cjs/rest.js | 10 + node_modules/underscore/cjs/restArguments.js | 29 + node_modules/underscore/cjs/result.js | 24 + node_modules/underscore/cjs/sample.js | 29 + node_modules/underscore/cjs/set.js | 15 + node_modules/underscore/cjs/shuffle.js | 8 + node_modules/underscore/cjs/size.js | 10 + node_modules/underscore/cjs/some.js | 17 + node_modules/underscore/cjs/sortBy.js | 26 + node_modules/underscore/cjs/sortedIndex.js | 17 + node_modules/underscore/cjs/tap.js | 9 + node_modules/underscore/cjs/template.js | 103 + .../underscore/cjs/templateSettings.js | 11 + node_modules/underscore/cjs/throttle.js | 49 + node_modules/underscore/cjs/times.js | 11 + node_modules/underscore/cjs/toArray.js | 22 + node_modules/underscore/cjs/toPath.js | 11 + .../cjs/underscore-array-methods.js | 31 + node_modules/underscore/cjs/underscore.js | 27 + node_modules/underscore/cjs/unescape.js | 7 + node_modules/underscore/cjs/union.js | 11 + node_modules/underscore/cjs/uniq.js | 38 + node_modules/underscore/cjs/uniqueId.js | 9 + node_modules/underscore/cjs/unzip.js | 17 + node_modules/underscore/cjs/values.js | 14 + node_modules/underscore/cjs/where.js | 10 + node_modules/underscore/cjs/without.js | 9 + node_modules/underscore/cjs/wrap.js | 10 + node_modules/underscore/cjs/zip.js | 8 + node_modules/underscore/modules/.eslintrc | 21 + .../underscore/modules/_baseCreate.js | 18 + .../underscore/modules/_baseIteratee.js | 17 + node_modules/underscore/modules/_cb.js | 10 + .../underscore/modules/_chainResult.js | 6 + .../modules/_collectNonEnumProps.js | 40 + .../underscore/modules/_createAssigner.js | 18 + .../underscore/modules/_createEscaper.js | 17 + .../underscore/modules/_createIndexFinder.js | 28 + .../modules/_createPredicateIndexFinder.js | 15 + .../underscore/modules/_createReduce.js | 28 + .../modules/_createSizePropertyCheck.js | 9 + node_modules/underscore/modules/_deepGet.js | 9 + node_modules/underscore/modules/_escapeMap.js | 9 + .../underscore/modules/_executeBound.js | 13 + node_modules/underscore/modules/_flatten.js | 31 + .../underscore/modules/_getByteLength.js | 4 + node_modules/underscore/modules/_getLength.js | 4 + node_modules/underscore/modules/_group.js | 15 + node_modules/underscore/modules/_has.js | 6 + .../underscore/modules/_hasObjectTag.js | 3 + .../underscore/modules/_isArrayLike.js | 8 + .../underscore/modules/_isBufferLike.js | 6 + node_modules/underscore/modules/_keyInObj.js | 5 + .../underscore/modules/_methodFingerprint.js | 37 + .../underscore/modules/_optimizeCb.js | 21 + node_modules/underscore/modules/_setup.js | 43 + .../underscore/modules/_shallowProperty.js | 6 + .../underscore/modules/_stringTagBug.js | 10 + node_modules/underscore/modules/_tagTester.js | 9 + .../underscore/modules/_toBufferView.js | 11 + node_modules/underscore/modules/_toPath.js | 8 + .../underscore/modules/_unescapeMap.js | 5 + node_modules/underscore/modules/after.js | 8 + node_modules/underscore/modules/allKeys.js | 13 + node_modules/underscore/modules/before.js | 12 + node_modules/underscore/modules/bind.js | 13 + node_modules/underscore/modules/bindAll.js | 17 + node_modules/underscore/modules/chain.js | 8 + node_modules/underscore/modules/chunk.js | 13 + node_modules/underscore/modules/clone.js | 9 + node_modules/underscore/modules/compact.js | 6 + node_modules/underscore/modules/compose.js | 12 + node_modules/underscore/modules/constant.js | 6 + node_modules/underscore/modules/contains.js | 10 + node_modules/underscore/modules/countBy.js | 9 + node_modules/underscore/modules/create.js | 11 + node_modules/underscore/modules/debounce.js | 40 + node_modules/underscore/modules/defaults.js | 5 + node_modules/underscore/modules/defer.js | 7 + node_modules/underscore/modules/delay.js | 9 + node_modules/underscore/modules/difference.js | 13 + node_modules/underscore/modules/each.js | 23 + node_modules/underscore/modules/escape.js | 5 + node_modules/underscore/modules/every.js | 15 + node_modules/underscore/modules/extend.js | 5 + node_modules/underscore/modules/extendOwn.js | 7 + node_modules/underscore/modules/filter.js | 12 + node_modules/underscore/modules/find.js | 10 + node_modules/underscore/modules/findIndex.js | 4 + node_modules/underscore/modules/findKey.js | 12 + .../underscore/modules/findLastIndex.js | 4 + node_modules/underscore/modules/findWhere.js | 8 + node_modules/underscore/modules/first.js | 9 + node_modules/underscore/modules/flatten.js | 7 + node_modules/underscore/modules/functions.js | 10 + node_modules/underscore/modules/get.js | 12 + node_modules/underscore/modules/groupBy.js | 8 + node_modules/underscore/modules/has.js | 16 + node_modules/underscore/modules/identity.js | 4 + node_modules/underscore/modules/index-all.js | 18 + .../underscore/modules/index-default.js | 27 + node_modules/underscore/modules/index.js | 200 + node_modules/underscore/modules/indexBy.js | 7 + node_modules/underscore/modules/indexOf.js | 9 + node_modules/underscore/modules/initial.js | 8 + .../underscore/modules/intersection.js | 19 + node_modules/underscore/modules/invert.js | 11 + node_modules/underscore/modules/invoke.js | 28 + .../underscore/modules/isArguments.js | 16 + node_modules/underscore/modules/isArray.js | 6 + .../underscore/modules/isArrayBuffer.js | 3 + node_modules/underscore/modules/isBoolean.js | 6 + node_modules/underscore/modules/isDataView.js | 14 + node_modules/underscore/modules/isDate.js | 3 + node_modules/underscore/modules/isElement.js | 4 + node_modules/underscore/modules/isEmpty.js | 18 + node_modules/underscore/modules/isEqual.js | 138 + node_modules/underscore/modules/isError.js | 3 + node_modules/underscore/modules/isFinite.js | 7 + node_modules/underscore/modules/isFunction.js | 15 + node_modules/underscore/modules/isMap.js | 5 + node_modules/underscore/modules/isMatch.js | 13 + node_modules/underscore/modules/isNaN.js | 7 + node_modules/underscore/modules/isNull.js | 4 + node_modules/underscore/modules/isNumber.js | 3 + node_modules/underscore/modules/isObject.js | 5 + node_modules/underscore/modules/isRegExp.js | 3 + node_modules/underscore/modules/isSet.js | 5 + node_modules/underscore/modules/isString.js | 3 + node_modules/underscore/modules/isSymbol.js | 3 + .../underscore/modules/isTypedArray.js | 15 + .../underscore/modules/isUndefined.js | 4 + node_modules/underscore/modules/isWeakMap.js | 5 + node_modules/underscore/modules/isWeakSet.js | 3 + node_modules/underscore/modules/iteratee.js | 10 + node_modules/underscore/modules/keys.js | 16 + node_modules/underscore/modules/last.js | 9 + .../underscore/modules/lastIndexOf.js | 6 + node_modules/underscore/modules/map.js | 16 + node_modules/underscore/modules/mapObject.js | 16 + node_modules/underscore/modules/matcher.js | 11 + node_modules/underscore/modules/max.js | 29 + node_modules/underscore/modules/memoize.js | 13 + node_modules/underscore/modules/min.js | 29 + node_modules/underscore/modules/mixin.js | 18 + node_modules/underscore/modules/negate.js | 6 + node_modules/underscore/modules/noop.js | 2 + node_modules/underscore/modules/now.js | 4 + node_modules/underscore/modules/object.js | 16 + node_modules/underscore/modules/omit.js | 22 + node_modules/underscore/modules/once.js | 6 + node_modules/underscore/modules/package.json | 1 + node_modules/underscore/modules/pairs.js | 13 + node_modules/underscore/modules/partial.js | 24 + node_modules/underscore/modules/partition.js | 7 + node_modules/underscore/modules/pick.js | 26 + node_modules/underscore/modules/pluck.js | 7 + node_modules/underscore/modules/property.js | 11 + node_modules/underscore/modules/propertyOf.js | 10 + node_modules/underscore/modules/random.js | 8 + node_modules/underscore/modules/range.js | 21 + node_modules/underscore/modules/reduce.js | 5 + .../underscore/modules/reduceRight.js | 4 + node_modules/underscore/modules/reject.js | 8 + node_modules/underscore/modules/rest.js | 8 + .../underscore/modules/restArguments.js | 27 + node_modules/underscore/modules/result.js | 22 + node_modules/underscore/modules/sample.js | 27 + node_modules/underscore/modules/shuffle.js | 6 + node_modules/underscore/modules/size.js | 8 + node_modules/underscore/modules/some.js | 15 + node_modules/underscore/modules/sortBy.js | 24 + .../underscore/modules/sortedIndex.js | 15 + node_modules/underscore/modules/tap.js | 7 + node_modules/underscore/modules/template.js | 101 + .../underscore/modules/templateSettings.js | 9 + node_modules/underscore/modules/throttle.js | 47 + node_modules/underscore/modules/times.js | 9 + node_modules/underscore/modules/toArray.js | 20 + node_modules/underscore/modules/toPath.js | 9 + .../modules/underscore-array-methods.js | 31 + node_modules/underscore/modules/underscore.js | 25 + node_modules/underscore/modules/unescape.js | 5 + node_modules/underscore/modules/union.js | 9 + node_modules/underscore/modules/uniq.js | 36 + node_modules/underscore/modules/uniqueId.js | 7 + node_modules/underscore/modules/unzip.js | 15 + node_modules/underscore/modules/values.js | 12 + node_modules/underscore/modules/where.js | 8 + node_modules/underscore/modules/without.js | 7 + node_modules/underscore/modules/wrap.js | 8 + node_modules/underscore/modules/zip.js | 6 + node_modules/underscore/package.json | 124 + node_modules/underscore/underscore-esm-min.js | 5 + .../underscore/underscore-esm-min.js.map | 1 + node_modules/underscore/underscore-esm.js | 2034 +++ node_modules/underscore/underscore-esm.js.map | 1 + node_modules/underscore/underscore-min.js | 6 + node_modules/underscore/underscore-min.js.map | 1 + node_modules/underscore/underscore-node-f.cjs | 2158 +++ .../underscore/underscore-node-f.cjs.map | 1 + node_modules/underscore/underscore-node.cjs | 11 + .../underscore/underscore-node.cjs.map | 1 + node_modules/underscore/underscore-node.mjs | 7 + .../underscore/underscore-node.mjs.map | 1 + node_modules/underscore/underscore-umd-min.js | 6 + .../underscore/underscore-umd-min.js.map | 1 + node_modules/underscore/underscore-umd.js | 2042 +++ node_modules/underscore/underscore-umd.js.map | 1 + node_modules/underscore/underscore.js | 2042 +++ package-lock.json | 54 + package.json | 6 + styles.css | 15 +- uploads/image.jpg | 0 uploads/text.txt | 0 uploads/video.mp4 | 0 648 files changed, 49631 insertions(+), 22 deletions(-) create mode 100644 download.php create mode 100644 logic.js create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/ajax/.npmignore create mode 100644 node_modules/ajax/LICENSE create mode 100644 node_modules/ajax/README.md create mode 100644 node_modules/ajax/lib/ajax.js create mode 100644 node_modules/ajax/package.json create mode 100644 node_modules/jquery/AUTHORS.txt create mode 100644 node_modules/jquery/LICENSE.txt create mode 100644 node_modules/jquery/README.md create mode 100644 node_modules/jquery/bower.json create mode 100644 node_modules/jquery/dist/jquery.js create mode 100644 node_modules/jquery/dist/jquery.min.js create mode 100644 node_modules/jquery/dist/jquery.min.map create mode 100644 node_modules/jquery/dist/jquery.slim.js create mode 100644 node_modules/jquery/dist/jquery.slim.min.js create mode 100644 node_modules/jquery/dist/jquery.slim.min.map create mode 100644 node_modules/jquery/external/sizzle/LICENSE.txt create mode 100644 node_modules/jquery/external/sizzle/dist/sizzle.js create mode 100644 node_modules/jquery/external/sizzle/dist/sizzle.min.js create mode 100644 node_modules/jquery/external/sizzle/dist/sizzle.min.map create mode 100644 node_modules/jquery/package.json create mode 100644 node_modules/jquery/src/ajax.js create mode 100644 node_modules/jquery/src/ajax/jsonp.js create mode 100644 node_modules/jquery/src/ajax/load.js create mode 100644 node_modules/jquery/src/ajax/script.js create mode 100644 node_modules/jquery/src/ajax/var/location.js create mode 100644 node_modules/jquery/src/ajax/var/nonce.js create mode 100644 node_modules/jquery/src/ajax/var/rquery.js create mode 100644 node_modules/jquery/src/ajax/xhr.js create mode 100644 node_modules/jquery/src/attributes.js create mode 100644 node_modules/jquery/src/attributes/attr.js create mode 100644 node_modules/jquery/src/attributes/classes.js create mode 100644 node_modules/jquery/src/attributes/prop.js create mode 100644 node_modules/jquery/src/attributes/support.js create mode 100644 node_modules/jquery/src/attributes/val.js create mode 100644 node_modules/jquery/src/callbacks.js create mode 100644 node_modules/jquery/src/core.js create mode 100644 node_modules/jquery/src/core/DOMEval.js create mode 100644 node_modules/jquery/src/core/access.js create mode 100644 node_modules/jquery/src/core/camelCase.js create mode 100644 node_modules/jquery/src/core/init.js create mode 100644 node_modules/jquery/src/core/isAttached.js create mode 100644 node_modules/jquery/src/core/nodeName.js create mode 100644 node_modules/jquery/src/core/parseHTML.js create mode 100644 node_modules/jquery/src/core/parseXML.js create mode 100644 node_modules/jquery/src/core/ready-no-deferred.js create mode 100644 node_modules/jquery/src/core/ready.js create mode 100644 node_modules/jquery/src/core/readyException.js create mode 100644 node_modules/jquery/src/core/stripAndCollapse.js create mode 100644 node_modules/jquery/src/core/support.js create mode 100644 node_modules/jquery/src/core/toType.js create mode 100644 node_modules/jquery/src/core/var/rsingleTag.js create mode 100644 node_modules/jquery/src/css.js create mode 100644 node_modules/jquery/src/css/addGetHookIf.js create mode 100644 node_modules/jquery/src/css/adjustCSS.js create mode 100644 node_modules/jquery/src/css/curCSS.js create mode 100644 node_modules/jquery/src/css/finalPropName.js create mode 100644 node_modules/jquery/src/css/hiddenVisibleSelectors.js create mode 100644 node_modules/jquery/src/css/showHide.js create mode 100644 node_modules/jquery/src/css/support.js create mode 100644 node_modules/jquery/src/css/var/cssExpand.js create mode 100644 node_modules/jquery/src/css/var/getStyles.js create mode 100644 node_modules/jquery/src/css/var/isHiddenWithinTree.js create mode 100644 node_modules/jquery/src/css/var/rboxStyle.js create mode 100644 node_modules/jquery/src/css/var/rcustomProp.js create mode 100644 node_modules/jquery/src/css/var/rnumnonpx.js create mode 100644 node_modules/jquery/src/css/var/swap.js create mode 100644 node_modules/jquery/src/data.js create mode 100644 node_modules/jquery/src/data/Data.js create mode 100644 node_modules/jquery/src/data/var/acceptData.js create mode 100644 node_modules/jquery/src/data/var/dataPriv.js create mode 100644 node_modules/jquery/src/data/var/dataUser.js create mode 100644 node_modules/jquery/src/deferred.js create mode 100644 node_modules/jquery/src/deferred/exceptionHook.js create mode 100644 node_modules/jquery/src/deprecated.js create mode 100644 node_modules/jquery/src/deprecated/ajax-event-alias.js create mode 100644 node_modules/jquery/src/deprecated/event.js create mode 100644 node_modules/jquery/src/dimensions.js create mode 100644 node_modules/jquery/src/effects.js create mode 100644 node_modules/jquery/src/effects/Tween.js create mode 100644 node_modules/jquery/src/effects/animatedSelector.js create mode 100644 node_modules/jquery/src/event.js create mode 100644 node_modules/jquery/src/event/focusin.js create mode 100644 node_modules/jquery/src/event/support.js create mode 100644 node_modules/jquery/src/event/trigger.js create mode 100644 node_modules/jquery/src/exports/amd.js create mode 100644 node_modules/jquery/src/exports/global.js create mode 100644 node_modules/jquery/src/jquery.js create mode 100644 node_modules/jquery/src/manipulation.js create mode 100644 node_modules/jquery/src/manipulation/_evalUrl.js create mode 100644 node_modules/jquery/src/manipulation/buildFragment.js create mode 100644 node_modules/jquery/src/manipulation/getAll.js create mode 100644 node_modules/jquery/src/manipulation/setGlobalEval.js create mode 100644 node_modules/jquery/src/manipulation/support.js create mode 100644 node_modules/jquery/src/manipulation/var/rscriptType.js create mode 100644 node_modules/jquery/src/manipulation/var/rtagName.js create mode 100644 node_modules/jquery/src/manipulation/wrapMap.js create mode 100644 node_modules/jquery/src/offset.js create mode 100644 node_modules/jquery/src/queue.js create mode 100644 node_modules/jquery/src/queue/delay.js create mode 100644 node_modules/jquery/src/selector-native.js create mode 100644 node_modules/jquery/src/selector-sizzle.js create mode 100644 node_modules/jquery/src/selector.js create mode 100644 node_modules/jquery/src/serialize.js create mode 100644 node_modules/jquery/src/traversing.js create mode 100644 node_modules/jquery/src/traversing/findFilter.js create mode 100644 node_modules/jquery/src/traversing/var/dir.js create mode 100644 node_modules/jquery/src/traversing/var/rneedsContext.js create mode 100644 node_modules/jquery/src/traversing/var/siblings.js create mode 100644 node_modules/jquery/src/var/ObjectFunctionString.js create mode 100644 node_modules/jquery/src/var/arr.js create mode 100644 node_modules/jquery/src/var/class2type.js create mode 100644 node_modules/jquery/src/var/document.js create mode 100644 node_modules/jquery/src/var/documentElement.js create mode 100644 node_modules/jquery/src/var/flat.js create mode 100644 node_modules/jquery/src/var/fnToString.js create mode 100644 node_modules/jquery/src/var/getProto.js create mode 100644 node_modules/jquery/src/var/hasOwn.js create mode 100644 node_modules/jquery/src/var/indexOf.js create mode 100644 node_modules/jquery/src/var/isFunction.js create mode 100644 node_modules/jquery/src/var/isWindow.js create mode 100644 node_modules/jquery/src/var/pnum.js create mode 100644 node_modules/jquery/src/var/push.js create mode 100644 node_modules/jquery/src/var/rcheckableType.js create mode 100644 node_modules/jquery/src/var/rcssNum.js create mode 100644 node_modules/jquery/src/var/rnothtmlwhite.js create mode 100644 node_modules/jquery/src/var/rtrimCSS.js create mode 100644 node_modules/jquery/src/var/slice.js create mode 100644 node_modules/jquery/src/var/support.js create mode 100644 node_modules/jquery/src/var/toString.js create mode 100644 node_modules/jquery/src/var/whitespace.js create mode 100644 node_modules/jquery/src/wrap.js create mode 100644 node_modules/underscore/LICENSE create mode 100644 node_modules/underscore/README.md create mode 100644 node_modules/underscore/amd/_baseCreate.js create mode 100644 node_modules/underscore/amd/_baseIteratee.js create mode 100644 node_modules/underscore/amd/_cb.js create mode 100644 node_modules/underscore/amd/_chainResult.js create mode 100644 node_modules/underscore/amd/_collectNonEnumProps.js create mode 100644 node_modules/underscore/amd/_createAssigner.js create mode 100644 node_modules/underscore/amd/_createEscaper.js create mode 100644 node_modules/underscore/amd/_createIndexFinder.js create mode 100644 node_modules/underscore/amd/_createPredicateIndexFinder.js create mode 100644 node_modules/underscore/amd/_createReduce.js create mode 100644 node_modules/underscore/amd/_createSizePropertyCheck.js create mode 100644 node_modules/underscore/amd/_deepGet.js create mode 100644 node_modules/underscore/amd/_escapeMap.js create mode 100644 node_modules/underscore/amd/_executeBound.js create mode 100644 node_modules/underscore/amd/_flatten.js create mode 100644 node_modules/underscore/amd/_getByteLength.js create mode 100644 node_modules/underscore/amd/_getLength.js create mode 100644 node_modules/underscore/amd/_group.js create mode 100644 node_modules/underscore/amd/_has.js create mode 100644 node_modules/underscore/amd/_hasObjectTag.js create mode 100644 node_modules/underscore/amd/_isArrayLike.js create mode 100644 node_modules/underscore/amd/_isBufferLike.js create mode 100644 node_modules/underscore/amd/_keyInObj.js create mode 100644 node_modules/underscore/amd/_methodFingerprint.js create mode 100644 node_modules/underscore/amd/_optimizeCb.js create mode 100644 node_modules/underscore/amd/_set.js create mode 100644 node_modules/underscore/amd/_setup.js create mode 100644 node_modules/underscore/amd/_shallowProperty.js create mode 100644 node_modules/underscore/amd/_stringTagBug.js create mode 100644 node_modules/underscore/amd/_tagTester.js create mode 100644 node_modules/underscore/amd/_toBufferView.js create mode 100644 node_modules/underscore/amd/_toPath.js create mode 100644 node_modules/underscore/amd/_unescapeMap.js create mode 100644 node_modules/underscore/amd/after.js create mode 100644 node_modules/underscore/amd/allKeys.js create mode 100644 node_modules/underscore/amd/before.js create mode 100644 node_modules/underscore/amd/bind.js create mode 100644 node_modules/underscore/amd/bindAll.js create mode 100644 node_modules/underscore/amd/chain.js create mode 100644 node_modules/underscore/amd/chunk.js create mode 100644 node_modules/underscore/amd/clone.js create mode 100644 node_modules/underscore/amd/compact.js create mode 100644 node_modules/underscore/amd/compose.js create mode 100644 node_modules/underscore/amd/constant.js create mode 100644 node_modules/underscore/amd/contains.js create mode 100644 node_modules/underscore/amd/countBy.js create mode 100644 node_modules/underscore/amd/create.js create mode 100644 node_modules/underscore/amd/debounce.js create mode 100644 node_modules/underscore/amd/defaults.js create mode 100644 node_modules/underscore/amd/defer.js create mode 100644 node_modules/underscore/amd/delay.js create mode 100644 node_modules/underscore/amd/difference.js create mode 100644 node_modules/underscore/amd/each.js create mode 100644 node_modules/underscore/amd/escape.js create mode 100644 node_modules/underscore/amd/every.js create mode 100644 node_modules/underscore/amd/extend.js create mode 100644 node_modules/underscore/amd/extendOwn.js create mode 100644 node_modules/underscore/amd/filter.js create mode 100644 node_modules/underscore/amd/find.js create mode 100644 node_modules/underscore/amd/findIndex.js create mode 100644 node_modules/underscore/amd/findKey.js create mode 100644 node_modules/underscore/amd/findLastIndex.js create mode 100644 node_modules/underscore/amd/findWhere.js create mode 100644 node_modules/underscore/amd/first.js create mode 100644 node_modules/underscore/amd/flatten.js create mode 100644 node_modules/underscore/amd/functions.js create mode 100644 node_modules/underscore/amd/get.js create mode 100644 node_modules/underscore/amd/groupBy.js create mode 100644 node_modules/underscore/amd/has.js create mode 100644 node_modules/underscore/amd/identity.js create mode 100644 node_modules/underscore/amd/index-default.js create mode 100644 node_modules/underscore/amd/index.js create mode 100644 node_modules/underscore/amd/indexBy.js create mode 100644 node_modules/underscore/amd/indexOf.js create mode 100644 node_modules/underscore/amd/initial.js create mode 100644 node_modules/underscore/amd/intersection.js create mode 100644 node_modules/underscore/amd/invert.js create mode 100644 node_modules/underscore/amd/invoke.js create mode 100644 node_modules/underscore/amd/isArguments.js create mode 100644 node_modules/underscore/amd/isArray.js create mode 100644 node_modules/underscore/amd/isArrayBuffer.js create mode 100644 node_modules/underscore/amd/isBoolean.js create mode 100644 node_modules/underscore/amd/isDataView.js create mode 100644 node_modules/underscore/amd/isDate.js create mode 100644 node_modules/underscore/amd/isElement.js create mode 100644 node_modules/underscore/amd/isEmpty.js create mode 100644 node_modules/underscore/amd/isEqual.js create mode 100644 node_modules/underscore/amd/isError.js create mode 100644 node_modules/underscore/amd/isFinite.js create mode 100644 node_modules/underscore/amd/isFunction.js create mode 100644 node_modules/underscore/amd/isMap.js create mode 100644 node_modules/underscore/amd/isMatch.js create mode 100644 node_modules/underscore/amd/isNaN.js create mode 100644 node_modules/underscore/amd/isNull.js create mode 100644 node_modules/underscore/amd/isNumber.js create mode 100644 node_modules/underscore/amd/isObject.js create mode 100644 node_modules/underscore/amd/isRegExp.js create mode 100644 node_modules/underscore/amd/isSet.js create mode 100644 node_modules/underscore/amd/isString.js create mode 100644 node_modules/underscore/amd/isSymbol.js create mode 100644 node_modules/underscore/amd/isTypedArray.js create mode 100644 node_modules/underscore/amd/isUndefined.js create mode 100644 node_modules/underscore/amd/isWeakMap.js create mode 100644 node_modules/underscore/amd/isWeakSet.js create mode 100644 node_modules/underscore/amd/iteratee.js create mode 100644 node_modules/underscore/amd/keys.js create mode 100644 node_modules/underscore/amd/last.js create mode 100644 node_modules/underscore/amd/lastIndexOf.js create mode 100644 node_modules/underscore/amd/map.js create mode 100644 node_modules/underscore/amd/mapObject.js create mode 100644 node_modules/underscore/amd/matcher.js create mode 100644 node_modules/underscore/amd/max.js create mode 100644 node_modules/underscore/amd/memoize.js create mode 100644 node_modules/underscore/amd/min.js create mode 100644 node_modules/underscore/amd/mixin.js create mode 100644 node_modules/underscore/amd/negate.js create mode 100644 node_modules/underscore/amd/noop.js create mode 100644 node_modules/underscore/amd/now.js create mode 100644 node_modules/underscore/amd/object.js create mode 100644 node_modules/underscore/amd/omit.js create mode 100644 node_modules/underscore/amd/once.js create mode 100644 node_modules/underscore/amd/pairs.js create mode 100644 node_modules/underscore/amd/partial.js create mode 100644 node_modules/underscore/amd/partition.js create mode 100644 node_modules/underscore/amd/pick.js create mode 100644 node_modules/underscore/amd/pluck.js create mode 100644 node_modules/underscore/amd/property.js create mode 100644 node_modules/underscore/amd/propertyOf.js create mode 100644 node_modules/underscore/amd/random.js create mode 100644 node_modules/underscore/amd/range.js create mode 100644 node_modules/underscore/amd/reduce.js create mode 100644 node_modules/underscore/amd/reduceRight.js create mode 100644 node_modules/underscore/amd/reject.js create mode 100644 node_modules/underscore/amd/rest.js create mode 100644 node_modules/underscore/amd/restArguments.js create mode 100644 node_modules/underscore/amd/result.js create mode 100644 node_modules/underscore/amd/sample.js create mode 100644 node_modules/underscore/amd/set.js create mode 100644 node_modules/underscore/amd/shuffle.js create mode 100644 node_modules/underscore/amd/size.js create mode 100644 node_modules/underscore/amd/some.js create mode 100644 node_modules/underscore/amd/sortBy.js create mode 100644 node_modules/underscore/amd/sortedIndex.js create mode 100644 node_modules/underscore/amd/tap.js create mode 100644 node_modules/underscore/amd/template.js create mode 100644 node_modules/underscore/amd/templateSettings.js create mode 100644 node_modules/underscore/amd/throttle.js create mode 100644 node_modules/underscore/amd/times.js create mode 100644 node_modules/underscore/amd/toArray.js create mode 100644 node_modules/underscore/amd/toPath.js create mode 100644 node_modules/underscore/amd/underscore-array-methods.js create mode 100644 node_modules/underscore/amd/underscore.js create mode 100644 node_modules/underscore/amd/unescape.js create mode 100644 node_modules/underscore/amd/union.js create mode 100644 node_modules/underscore/amd/uniq.js create mode 100644 node_modules/underscore/amd/uniqueId.js create mode 100644 node_modules/underscore/amd/unzip.js create mode 100644 node_modules/underscore/amd/values.js create mode 100644 node_modules/underscore/amd/where.js create mode 100644 node_modules/underscore/amd/without.js create mode 100644 node_modules/underscore/amd/wrap.js create mode 100644 node_modules/underscore/amd/zip.js create mode 100644 node_modules/underscore/cjs/_baseCreate.js create mode 100644 node_modules/underscore/cjs/_baseIteratee.js create mode 100644 node_modules/underscore/cjs/_cb.js create mode 100644 node_modules/underscore/cjs/_chainResult.js create mode 100644 node_modules/underscore/cjs/_collectNonEnumProps.js create mode 100644 node_modules/underscore/cjs/_createAssigner.js create mode 100644 node_modules/underscore/cjs/_createEscaper.js create mode 100644 node_modules/underscore/cjs/_createIndexFinder.js create mode 100644 node_modules/underscore/cjs/_createPredicateIndexFinder.js create mode 100644 node_modules/underscore/cjs/_createReduce.js create mode 100644 node_modules/underscore/cjs/_createSizePropertyCheck.js create mode 100644 node_modules/underscore/cjs/_deepGet.js create mode 100644 node_modules/underscore/cjs/_escapeMap.js create mode 100644 node_modules/underscore/cjs/_executeBound.js create mode 100644 node_modules/underscore/cjs/_flatten.js create mode 100644 node_modules/underscore/cjs/_getByteLength.js create mode 100644 node_modules/underscore/cjs/_getLength.js create mode 100644 node_modules/underscore/cjs/_group.js create mode 100644 node_modules/underscore/cjs/_has.js create mode 100644 node_modules/underscore/cjs/_hasObjectTag.js create mode 100644 node_modules/underscore/cjs/_isArrayLike.js create mode 100644 node_modules/underscore/cjs/_isBufferLike.js create mode 100644 node_modules/underscore/cjs/_keyInObj.js create mode 100644 node_modules/underscore/cjs/_methodFingerprint.js create mode 100644 node_modules/underscore/cjs/_optimizeCb.js create mode 100644 node_modules/underscore/cjs/_set.js create mode 100644 node_modules/underscore/cjs/_setup.js create mode 100644 node_modules/underscore/cjs/_shallowProperty.js create mode 100644 node_modules/underscore/cjs/_stringTagBug.js create mode 100644 node_modules/underscore/cjs/_tagTester.js create mode 100644 node_modules/underscore/cjs/_toBufferView.js create mode 100644 node_modules/underscore/cjs/_toPath.js create mode 100644 node_modules/underscore/cjs/_unescapeMap.js create mode 100644 node_modules/underscore/cjs/after.js create mode 100644 node_modules/underscore/cjs/allKeys.js create mode 100644 node_modules/underscore/cjs/before.js create mode 100644 node_modules/underscore/cjs/bind.js create mode 100644 node_modules/underscore/cjs/bindAll.js create mode 100644 node_modules/underscore/cjs/chain.js create mode 100644 node_modules/underscore/cjs/chunk.js create mode 100644 node_modules/underscore/cjs/clone.js create mode 100644 node_modules/underscore/cjs/compact.js create mode 100644 node_modules/underscore/cjs/compose.js create mode 100644 node_modules/underscore/cjs/constant.js create mode 100644 node_modules/underscore/cjs/contains.js create mode 100644 node_modules/underscore/cjs/countBy.js create mode 100644 node_modules/underscore/cjs/create.js create mode 100644 node_modules/underscore/cjs/debounce.js create mode 100644 node_modules/underscore/cjs/defaults.js create mode 100644 node_modules/underscore/cjs/defer.js create mode 100644 node_modules/underscore/cjs/delay.js create mode 100644 node_modules/underscore/cjs/difference.js create mode 100644 node_modules/underscore/cjs/each.js create mode 100644 node_modules/underscore/cjs/escape.js create mode 100644 node_modules/underscore/cjs/every.js create mode 100644 node_modules/underscore/cjs/extend.js create mode 100644 node_modules/underscore/cjs/extendOwn.js create mode 100644 node_modules/underscore/cjs/filter.js create mode 100644 node_modules/underscore/cjs/find.js create mode 100644 node_modules/underscore/cjs/findIndex.js create mode 100644 node_modules/underscore/cjs/findKey.js create mode 100644 node_modules/underscore/cjs/findLastIndex.js create mode 100644 node_modules/underscore/cjs/findWhere.js create mode 100644 node_modules/underscore/cjs/first.js create mode 100644 node_modules/underscore/cjs/flatten.js create mode 100644 node_modules/underscore/cjs/functions.js create mode 100644 node_modules/underscore/cjs/get.js create mode 100644 node_modules/underscore/cjs/groupBy.js create mode 100644 node_modules/underscore/cjs/has.js create mode 100644 node_modules/underscore/cjs/identity.js create mode 100644 node_modules/underscore/cjs/index-default.js create mode 100644 node_modules/underscore/cjs/index.js create mode 100644 node_modules/underscore/cjs/indexBy.js create mode 100644 node_modules/underscore/cjs/indexOf.js create mode 100644 node_modules/underscore/cjs/initial.js create mode 100644 node_modules/underscore/cjs/intersection.js create mode 100644 node_modules/underscore/cjs/invert.js create mode 100644 node_modules/underscore/cjs/invoke.js create mode 100644 node_modules/underscore/cjs/isArguments.js create mode 100644 node_modules/underscore/cjs/isArray.js create mode 100644 node_modules/underscore/cjs/isArrayBuffer.js create mode 100644 node_modules/underscore/cjs/isBoolean.js create mode 100644 node_modules/underscore/cjs/isDataView.js create mode 100644 node_modules/underscore/cjs/isDate.js create mode 100644 node_modules/underscore/cjs/isElement.js create mode 100644 node_modules/underscore/cjs/isEmpty.js create mode 100644 node_modules/underscore/cjs/isEqual.js create mode 100644 node_modules/underscore/cjs/isError.js create mode 100644 node_modules/underscore/cjs/isFinite.js create mode 100644 node_modules/underscore/cjs/isFunction.js create mode 100644 node_modules/underscore/cjs/isMap.js create mode 100644 node_modules/underscore/cjs/isMatch.js create mode 100644 node_modules/underscore/cjs/isNaN.js create mode 100644 node_modules/underscore/cjs/isNull.js create mode 100644 node_modules/underscore/cjs/isNumber.js create mode 100644 node_modules/underscore/cjs/isObject.js create mode 100644 node_modules/underscore/cjs/isRegExp.js create mode 100644 node_modules/underscore/cjs/isSet.js create mode 100644 node_modules/underscore/cjs/isString.js create mode 100644 node_modules/underscore/cjs/isSymbol.js create mode 100644 node_modules/underscore/cjs/isTypedArray.js create mode 100644 node_modules/underscore/cjs/isUndefined.js create mode 100644 node_modules/underscore/cjs/isWeakMap.js create mode 100644 node_modules/underscore/cjs/isWeakSet.js create mode 100644 node_modules/underscore/cjs/iteratee.js create mode 100644 node_modules/underscore/cjs/keys.js create mode 100644 node_modules/underscore/cjs/last.js create mode 100644 node_modules/underscore/cjs/lastIndexOf.js create mode 100644 node_modules/underscore/cjs/map.js create mode 100644 node_modules/underscore/cjs/mapObject.js create mode 100644 node_modules/underscore/cjs/matcher.js create mode 100644 node_modules/underscore/cjs/max.js create mode 100644 node_modules/underscore/cjs/memoize.js create mode 100644 node_modules/underscore/cjs/min.js create mode 100644 node_modules/underscore/cjs/mixin.js create mode 100644 node_modules/underscore/cjs/negate.js create mode 100644 node_modules/underscore/cjs/noop.js create mode 100644 node_modules/underscore/cjs/now.js create mode 100644 node_modules/underscore/cjs/object.js create mode 100644 node_modules/underscore/cjs/omit.js create mode 100644 node_modules/underscore/cjs/once.js create mode 100644 node_modules/underscore/cjs/pairs.js create mode 100644 node_modules/underscore/cjs/partial.js create mode 100644 node_modules/underscore/cjs/partition.js create mode 100644 node_modules/underscore/cjs/pick.js create mode 100644 node_modules/underscore/cjs/pluck.js create mode 100644 node_modules/underscore/cjs/property.js create mode 100644 node_modules/underscore/cjs/propertyOf.js create mode 100644 node_modules/underscore/cjs/random.js create mode 100644 node_modules/underscore/cjs/range.js create mode 100644 node_modules/underscore/cjs/reduce.js create mode 100644 node_modules/underscore/cjs/reduceRight.js create mode 100644 node_modules/underscore/cjs/reject.js create mode 100644 node_modules/underscore/cjs/rest.js create mode 100644 node_modules/underscore/cjs/restArguments.js create mode 100644 node_modules/underscore/cjs/result.js create mode 100644 node_modules/underscore/cjs/sample.js create mode 100644 node_modules/underscore/cjs/set.js create mode 100644 node_modules/underscore/cjs/shuffle.js create mode 100644 node_modules/underscore/cjs/size.js create mode 100644 node_modules/underscore/cjs/some.js create mode 100644 node_modules/underscore/cjs/sortBy.js create mode 100644 node_modules/underscore/cjs/sortedIndex.js create mode 100644 node_modules/underscore/cjs/tap.js create mode 100644 node_modules/underscore/cjs/template.js create mode 100644 node_modules/underscore/cjs/templateSettings.js create mode 100644 node_modules/underscore/cjs/throttle.js create mode 100644 node_modules/underscore/cjs/times.js create mode 100644 node_modules/underscore/cjs/toArray.js create mode 100644 node_modules/underscore/cjs/toPath.js create mode 100644 node_modules/underscore/cjs/underscore-array-methods.js create mode 100644 node_modules/underscore/cjs/underscore.js create mode 100644 node_modules/underscore/cjs/unescape.js create mode 100644 node_modules/underscore/cjs/union.js create mode 100644 node_modules/underscore/cjs/uniq.js create mode 100644 node_modules/underscore/cjs/uniqueId.js create mode 100644 node_modules/underscore/cjs/unzip.js create mode 100644 node_modules/underscore/cjs/values.js create mode 100644 node_modules/underscore/cjs/where.js create mode 100644 node_modules/underscore/cjs/without.js create mode 100644 node_modules/underscore/cjs/wrap.js create mode 100644 node_modules/underscore/cjs/zip.js create mode 100644 node_modules/underscore/modules/.eslintrc create mode 100644 node_modules/underscore/modules/_baseCreate.js create mode 100644 node_modules/underscore/modules/_baseIteratee.js create mode 100644 node_modules/underscore/modules/_cb.js create mode 100644 node_modules/underscore/modules/_chainResult.js create mode 100644 node_modules/underscore/modules/_collectNonEnumProps.js create mode 100644 node_modules/underscore/modules/_createAssigner.js create mode 100644 node_modules/underscore/modules/_createEscaper.js create mode 100644 node_modules/underscore/modules/_createIndexFinder.js create mode 100644 node_modules/underscore/modules/_createPredicateIndexFinder.js create mode 100644 node_modules/underscore/modules/_createReduce.js create mode 100644 node_modules/underscore/modules/_createSizePropertyCheck.js create mode 100644 node_modules/underscore/modules/_deepGet.js create mode 100644 node_modules/underscore/modules/_escapeMap.js create mode 100644 node_modules/underscore/modules/_executeBound.js create mode 100644 node_modules/underscore/modules/_flatten.js create mode 100644 node_modules/underscore/modules/_getByteLength.js create mode 100644 node_modules/underscore/modules/_getLength.js create mode 100644 node_modules/underscore/modules/_group.js create mode 100644 node_modules/underscore/modules/_has.js create mode 100644 node_modules/underscore/modules/_hasObjectTag.js create mode 100644 node_modules/underscore/modules/_isArrayLike.js create mode 100644 node_modules/underscore/modules/_isBufferLike.js create mode 100644 node_modules/underscore/modules/_keyInObj.js create mode 100644 node_modules/underscore/modules/_methodFingerprint.js create mode 100644 node_modules/underscore/modules/_optimizeCb.js create mode 100644 node_modules/underscore/modules/_setup.js create mode 100644 node_modules/underscore/modules/_shallowProperty.js create mode 100644 node_modules/underscore/modules/_stringTagBug.js create mode 100644 node_modules/underscore/modules/_tagTester.js create mode 100644 node_modules/underscore/modules/_toBufferView.js create mode 100644 node_modules/underscore/modules/_toPath.js create mode 100644 node_modules/underscore/modules/_unescapeMap.js create mode 100644 node_modules/underscore/modules/after.js create mode 100644 node_modules/underscore/modules/allKeys.js create mode 100644 node_modules/underscore/modules/before.js create mode 100644 node_modules/underscore/modules/bind.js create mode 100644 node_modules/underscore/modules/bindAll.js create mode 100644 node_modules/underscore/modules/chain.js create mode 100644 node_modules/underscore/modules/chunk.js create mode 100644 node_modules/underscore/modules/clone.js create mode 100644 node_modules/underscore/modules/compact.js create mode 100644 node_modules/underscore/modules/compose.js create mode 100644 node_modules/underscore/modules/constant.js create mode 100644 node_modules/underscore/modules/contains.js create mode 100644 node_modules/underscore/modules/countBy.js create mode 100644 node_modules/underscore/modules/create.js create mode 100644 node_modules/underscore/modules/debounce.js create mode 100644 node_modules/underscore/modules/defaults.js create mode 100644 node_modules/underscore/modules/defer.js create mode 100644 node_modules/underscore/modules/delay.js create mode 100644 node_modules/underscore/modules/difference.js create mode 100644 node_modules/underscore/modules/each.js create mode 100644 node_modules/underscore/modules/escape.js create mode 100644 node_modules/underscore/modules/every.js create mode 100644 node_modules/underscore/modules/extend.js create mode 100644 node_modules/underscore/modules/extendOwn.js create mode 100644 node_modules/underscore/modules/filter.js create mode 100644 node_modules/underscore/modules/find.js create mode 100644 node_modules/underscore/modules/findIndex.js create mode 100644 node_modules/underscore/modules/findKey.js create mode 100644 node_modules/underscore/modules/findLastIndex.js create mode 100644 node_modules/underscore/modules/findWhere.js create mode 100644 node_modules/underscore/modules/first.js create mode 100644 node_modules/underscore/modules/flatten.js create mode 100644 node_modules/underscore/modules/functions.js create mode 100644 node_modules/underscore/modules/get.js create mode 100644 node_modules/underscore/modules/groupBy.js create mode 100644 node_modules/underscore/modules/has.js create mode 100644 node_modules/underscore/modules/identity.js create mode 100644 node_modules/underscore/modules/index-all.js create mode 100644 node_modules/underscore/modules/index-default.js create mode 100644 node_modules/underscore/modules/index.js create mode 100644 node_modules/underscore/modules/indexBy.js create mode 100644 node_modules/underscore/modules/indexOf.js create mode 100644 node_modules/underscore/modules/initial.js create mode 100644 node_modules/underscore/modules/intersection.js create mode 100644 node_modules/underscore/modules/invert.js create mode 100644 node_modules/underscore/modules/invoke.js create mode 100644 node_modules/underscore/modules/isArguments.js create mode 100644 node_modules/underscore/modules/isArray.js create mode 100644 node_modules/underscore/modules/isArrayBuffer.js create mode 100644 node_modules/underscore/modules/isBoolean.js create mode 100644 node_modules/underscore/modules/isDataView.js create mode 100644 node_modules/underscore/modules/isDate.js create mode 100644 node_modules/underscore/modules/isElement.js create mode 100644 node_modules/underscore/modules/isEmpty.js create mode 100644 node_modules/underscore/modules/isEqual.js create mode 100644 node_modules/underscore/modules/isError.js create mode 100644 node_modules/underscore/modules/isFinite.js create mode 100644 node_modules/underscore/modules/isFunction.js create mode 100644 node_modules/underscore/modules/isMap.js create mode 100644 node_modules/underscore/modules/isMatch.js create mode 100644 node_modules/underscore/modules/isNaN.js create mode 100644 node_modules/underscore/modules/isNull.js create mode 100644 node_modules/underscore/modules/isNumber.js create mode 100644 node_modules/underscore/modules/isObject.js create mode 100644 node_modules/underscore/modules/isRegExp.js create mode 100644 node_modules/underscore/modules/isSet.js create mode 100644 node_modules/underscore/modules/isString.js create mode 100644 node_modules/underscore/modules/isSymbol.js create mode 100644 node_modules/underscore/modules/isTypedArray.js create mode 100644 node_modules/underscore/modules/isUndefined.js create mode 100644 node_modules/underscore/modules/isWeakMap.js create mode 100644 node_modules/underscore/modules/isWeakSet.js create mode 100644 node_modules/underscore/modules/iteratee.js create mode 100644 node_modules/underscore/modules/keys.js create mode 100644 node_modules/underscore/modules/last.js create mode 100644 node_modules/underscore/modules/lastIndexOf.js create mode 100644 node_modules/underscore/modules/map.js create mode 100644 node_modules/underscore/modules/mapObject.js create mode 100644 node_modules/underscore/modules/matcher.js create mode 100644 node_modules/underscore/modules/max.js create mode 100644 node_modules/underscore/modules/memoize.js create mode 100644 node_modules/underscore/modules/min.js create mode 100644 node_modules/underscore/modules/mixin.js create mode 100644 node_modules/underscore/modules/negate.js create mode 100644 node_modules/underscore/modules/noop.js create mode 100644 node_modules/underscore/modules/now.js create mode 100644 node_modules/underscore/modules/object.js create mode 100644 node_modules/underscore/modules/omit.js create mode 100644 node_modules/underscore/modules/once.js create mode 100644 node_modules/underscore/modules/package.json create mode 100644 node_modules/underscore/modules/pairs.js create mode 100644 node_modules/underscore/modules/partial.js create mode 100644 node_modules/underscore/modules/partition.js create mode 100644 node_modules/underscore/modules/pick.js create mode 100644 node_modules/underscore/modules/pluck.js create mode 100644 node_modules/underscore/modules/property.js create mode 100644 node_modules/underscore/modules/propertyOf.js create mode 100644 node_modules/underscore/modules/random.js create mode 100644 node_modules/underscore/modules/range.js create mode 100644 node_modules/underscore/modules/reduce.js create mode 100644 node_modules/underscore/modules/reduceRight.js create mode 100644 node_modules/underscore/modules/reject.js create mode 100644 node_modules/underscore/modules/rest.js create mode 100644 node_modules/underscore/modules/restArguments.js create mode 100644 node_modules/underscore/modules/result.js create mode 100644 node_modules/underscore/modules/sample.js create mode 100644 node_modules/underscore/modules/shuffle.js create mode 100644 node_modules/underscore/modules/size.js create mode 100644 node_modules/underscore/modules/some.js create mode 100644 node_modules/underscore/modules/sortBy.js create mode 100644 node_modules/underscore/modules/sortedIndex.js create mode 100644 node_modules/underscore/modules/tap.js create mode 100644 node_modules/underscore/modules/template.js create mode 100644 node_modules/underscore/modules/templateSettings.js create mode 100644 node_modules/underscore/modules/throttle.js create mode 100644 node_modules/underscore/modules/times.js create mode 100644 node_modules/underscore/modules/toArray.js create mode 100644 node_modules/underscore/modules/toPath.js create mode 100644 node_modules/underscore/modules/underscore-array-methods.js create mode 100644 node_modules/underscore/modules/underscore.js create mode 100644 node_modules/underscore/modules/unescape.js create mode 100644 node_modules/underscore/modules/union.js create mode 100644 node_modules/underscore/modules/uniq.js create mode 100644 node_modules/underscore/modules/uniqueId.js create mode 100644 node_modules/underscore/modules/unzip.js create mode 100644 node_modules/underscore/modules/values.js create mode 100644 node_modules/underscore/modules/where.js create mode 100644 node_modules/underscore/modules/without.js create mode 100644 node_modules/underscore/modules/wrap.js create mode 100644 node_modules/underscore/modules/zip.js create mode 100644 node_modules/underscore/package.json create mode 100644 node_modules/underscore/underscore-esm-min.js create mode 100644 node_modules/underscore/underscore-esm-min.js.map create mode 100644 node_modules/underscore/underscore-esm.js create mode 100644 node_modules/underscore/underscore-esm.js.map create mode 100644 node_modules/underscore/underscore-min.js create mode 100644 node_modules/underscore/underscore-min.js.map create mode 100644 node_modules/underscore/underscore-node-f.cjs create mode 100644 node_modules/underscore/underscore-node-f.cjs.map create mode 100644 node_modules/underscore/underscore-node.cjs create mode 100644 node_modules/underscore/underscore-node.cjs.map create mode 100644 node_modules/underscore/underscore-node.mjs create mode 100644 node_modules/underscore/underscore-node.mjs.map create mode 100644 node_modules/underscore/underscore-umd-min.js create mode 100644 node_modules/underscore/underscore-umd-min.js.map create mode 100644 node_modules/underscore/underscore-umd.js create mode 100644 node_modules/underscore/underscore-umd.js.map create mode 100644 node_modules/underscore/underscore.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 uploads/image.jpg create mode 100644 uploads/text.txt create mode 100644 uploads/video.mp4 diff --git a/download.php b/download.php new file mode 100644 index 00000000..e8711b41 --- /dev/null +++ b/download.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/index.php b/index.php index 0e550cf7..fff4c286 100644 --- a/index.php +++ b/index.php @@ -6,10 +6,13 @@ Document + + +
-
+

Aside

-

Folder

-

Folder

-

Folder

-

Folder

-

Folder

-

Folder

-

Folder

-

Folder

-
+

Open Folder

@@ -48,3 +43,14 @@
+ +'.$file.''; // mostrar nombre de archivo con link para descargarlo +} + +?> + diff --git a/logic.js b/logic.js new file mode 100644 index 00000000..2b02e2d5 --- /dev/null +++ b/logic.js @@ -0,0 +1,12 @@ + +$.ajax({ + url: 'upload.php', + type: 'POST', + data: new FormData(form), + success: function (data) { + // manejar la respuesta del servidor + }, + cache: false, + contentType: false, + processData: false + }); \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 00000000..4519fe49 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,28 @@ +{ + "name": "filesystem-explorer-1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "node_modules/ajax": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/ajax/-/ajax-0.0.4.tgz", + "integrity": "sha512-IEgdnz67DKuv2i8AnytAYtD+sGNTpSlXcwQsZbKWVqdC/O7cuXN0GfwCuhi19fyhpD0Gl22T5amxd2unqj0FAQ==", + "dependencies": { + "underscore": "" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jquery": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz", + "integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==" + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + } + } +} diff --git a/node_modules/ajax/.npmignore b/node_modules/ajax/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/ajax/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/ajax/LICENSE b/node_modules/ajax/LICENSE new file mode 100644 index 00000000..aa962015 --- /dev/null +++ b/node_modules/ajax/LICENSE @@ -0,0 +1,13 @@ +Copyright 2011 Joe Hewitt + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/node_modules/ajax/README.md b/node_modules/ajax/README.md new file mode 100644 index 00000000..6bba6776 --- /dev/null +++ b/node_modules/ajax/README.md @@ -0,0 +1,26 @@ +ajax +======== + +Utilities for loading JSON and XML. + +Installation +------------ + + $ npm install ajax + +License +------- + +Copyright 2011 Joe Hewitt + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/node_modules/ajax/lib/ajax.js b/node_modules/ajax/lib/ajax.js new file mode 100644 index 00000000..b8e380e8 --- /dev/null +++ b/node_modules/ajax/lib/ajax.js @@ -0,0 +1,118 @@ +/* See license.txt for terms of usage */ + +var _ = require('underscore'); + +exports.get = function(url, params, cb) { + exports.send(url, 'GET', params, cb); +} + +exports.post = function(url, params, cb) { + exports.send(url, 'POST', params, cb); +} + +exports.send = function(url, method, params, cb) { + var xhr = new XMLHttpRequest(); + xhr.open(method, url, true); + xhr.onreadystatechange = function() { + if (xhr.readyState == 4) { + var data = xhr.responseText; + try { + data = JSON.parse(data); + } catch (exc) { + } + if (cb) { + cb(data); + } + } + } + + var body; + if (params) { + var bodies = []; + for (var name in params) { + bodies.push(name + '=' + encodeURIComponent(params[name])); + } + + body = bodies.join('&'); + if (body.length) { + xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + } + } + + xhr.send(body); +} + +exports.getJSON = function(url, params, cb) { + var pairs = ['callback=jsonp']; + _.each(params, function(value, key) { + pairs[pairs.length] = key+'='+value; + }); + if (pairs.length) { + url = url + (url.indexOf('?') == -1 ? '?' : '&') + pairs.join('&'); + } + + function jsonpReturn(o) { + self.jsonp = undefined; + if (!o || o.error) { + if (cb) cb(o); + } else { + if (cb) cb(0, o); + } + } + + if (has('appjs')) { + self.jsonp = jsonpReturn; + + appjs.load(url, 'GET', {}, params, function(err, data) { + if (err) { + cb(err); + } else { + sandboxEval(data); + } + }); + } else if (self.document) { + self.jsonp = function(o) { + // Return on a timeout to ensure that getJSON calls return asynchronously. There + // is a case in IE where, after hitting the back button, this will return + // synchronously and potentially confuse some clients. + setTimeout(function() { jsonpReturn(o) }, 0); + } + + function cleanup() { + if (script.parentNode) { + script.parentNode.removeChild(script); + } + } + + var script = document.createElement('script'); + script.type = 'text/javascript'; + // script.async = true; + script.src = url; + script.onload = cleanup; + script.onerror = function(event) { + cleanup(); + cb("Error"); + }; + var head = document.getElementsByTagName("head")[0]; + head.appendChild(script); + } else { + self.jsonp = jsonpReturn; + + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.onreadystatechange = function() { + if (xhr.readyState == 4) { + eval(xhr.responseText); + self.jsonp = null; + } + } + xhr.send(""); + } +} + +exports.postJSON = function(url, params, cb) { + exports.post(url, params, function(data) { + var result = eval(data); + cb(0, result); + }); +}; diff --git a/node_modules/ajax/package.json b/node_modules/ajax/package.json new file mode 100644 index 00000000..3fefe171 --- /dev/null +++ b/node_modules/ajax/package.json @@ -0,0 +1,25 @@ +{ + "name": "ajax", + "description": "Utilities for loading JSON and XML.", + "version": "0.0.4", + "homepage": "http://github.com/joehewitt/ajax", + "repository": { + "type": "git", + "url": "git://github.com/joehewitt/ajax.git" + }, + "keywords": [ + "xhr", + "ajax" + ], + "author": "Joe Hewitt ", + "contributors": [], + "dependencies": { + "underscore": "" + }, + "engines": { + "node": ">=0.4.0" + }, + "main": "./lib/ajax", + "directories": {}, + "devDependencies": {} +} diff --git a/node_modules/jquery/AUTHORS.txt b/node_modules/jquery/AUTHORS.txt new file mode 100644 index 00000000..d1386034 --- /dev/null +++ b/node_modules/jquery/AUTHORS.txt @@ -0,0 +1,337 @@ +John Resig +Gilles van den Hoven +Michael Geary +Stefan Petre +Yehuda Katz +Corey Jewett +Klaus Hartl +Franck Marcia +Jörn Zaefferer +Paul Bakaus +Brandon Aaron +Mike Alsup +Dave Methvin +Ed Engelhardt +Sean Catchpole +Paul Mclanahan +David Serduke +Richard D. Worth +Scott González +Ariel Flesler +Jon Evans +TJ Holowaychuk +Michael Bensoussan +Robert Katić +Louis-Rémi Babé +Earle Castledine +Damian Janowski +Rich Dougherty +Kim Dalsgaard +Andrea Giammarchi +Mark Gibson +Karl Swedberg +Justin Meyer +Ben Alman +James Padolsey +David Petersen +Batiste Bieler +Alexander Farkas +Rick Waldron +Filipe Fortes +Neeraj Singh +Paul Irish +Iraê Carvalho +Matt Curry +Michael Monteleone +Noah Sloan +Tom Viner +Douglas Neiner +Adam J. Sontag +Dave Reed +Ralph Whitbeck +Carl Fürstenberg +Jacob Wright +J. Ryan Stinnett +unknown +temp01 +Heungsub Lee +Colin Snover +Ryan W Tenney +Pinhook +Ron Otten +Jephte Clain +Anton Matzneller +Alex Sexton +Dan Heberden +Henri Wiechers +Russell Holbrook +Julian Aubourg +Gianni Alessandro Chiappetta +Scott Jehl +James Burke +Jonas Pfenniger +Xavi Ramirez +Jared Grippe +Sylvester Keil +Brandon Sterne +Mathias Bynens +Timmy Willison <4timmywil@gmail.com> +Corey Frang +Digitalxero +Anton Kovalyov +David Murdoch +Josh Varner +Charles McNulty +Jordan Boesch +Jess Thrysoee +Michael Murray +Lee Carpenter +Alexis Abril +Rob Morgan +John Firebaugh +Sam Bisbee +Gilmore Davidson +Brian Brennan +Xavier Montillet +Daniel Pihlstrom +Sahab Yazdani +avaly +Scott Hughes +Mike Sherov +Greg Hazel +Schalk Neethling +Denis Knauf +Timo Tijhof +Steen Nielsen +Anton Ryzhov +Shi Chuan +Berker Peksag +Toby Brain +Matt Mueller +Justin +Daniel Herman +Oleg Gaidarenko +Richard Gibson +Rafaël Blais Masson +cmc3cn <59194618@qq.com> +Joe Presbrey +Sindre Sorhus +Arne de Bree +Vladislav Zarakovsky +Andrew E Monat +Oskari +Joao Henrique de Andrade Bruni +tsinha +Matt Farmer +Trey Hunner +Jason Moon +Jeffery To +Kris Borchers +Vladimir Zhuravlev +Jacob Thornton +Chad Killingsworth +Nowres Rafid +David Benjamin +Uri Gilad +Chris Faulkner +Elijah Manor +Daniel Chatfield +Nikita Govorov +Wesley Walser +Mike Pennisi +Markus Staab +Dave Riddle +Callum Macrae +Benjamin Truyman +James Huston +Erick Ruiz de Chávez +David Bonner +Akintayo Akinwunmi +MORGAN +Ismail Khair +Carl Danley +Mike Petrovich +Greg Lavallee +Daniel Gálvez +Sai Lung Wong +Tom H Fuertes +Roland Eckl +Jay Merrifield +Allen J Schmidt Jr +Jonathan Sampson +Marcel Greter +Matthias Jäggli +David Fox +Yiming He +Devin Cooper +Paul Ramos +Rod Vagg +Bennett Sorbo +Sebastian Burkhard +Zachary Adam Kaplan +nanto_vi +nanto +Danil Somsikov +Ryunosuke SATO +Jean Boussier +Adam Coulombe +Andrew Plummer +Mark Raddatz +Isaac Z. Schlueter +Karl Sieburg +Pascal Borreli +Nguyen Phuc Lam +Dmitry Gusev +Michał Gołębiowski-Owczarek +Li Xudong +Steven Benner +Tom H Fuertes +Renato Oliveira dos Santos +ros3cin +Jason Bedard +Kyle Robinson Young +Chris Talkington +Eddie Monge +Terry Jones +Jason Merino +Jeremy Dunck +Chris Price +Guy Bedford +Amey Sakhadeo +Mike Sidorov +Anthony Ryan +Dominik D. Geyer +George Kats +Lihan Li +Ronny Springer +Chris Antaki +Marian Sollmann +njhamann +Ilya Kantor +David Hong +John Paul +Jakob Stoeck +Christopher Jones +Forbes Lindesay +S. Andrew Sheppard +Leonardo Balter +Roman Reiß +Benjy Cui +Rodrigo Rosenfeld Rosas +John Hoven +Philip Jägenstedt +Christian Kosmowski +Liang Peng +TJ VanToll +Senya Pugach +Aurelio De Rosa +Nazar Mokrynskyi +Amit Merchant +Jason Bedard +Arthur Verschaeve +Dan Hart +Bin Xin +David Corbacho +Veaceslav Grimalschi +Daniel Husar +Frederic Hemberger +Ben Toews +Aditya Raghavan +Victor Homyakov +Shivaji Varma +Nicolas HENRY +Anne-Gaelle Colom +George Mauer +Leonardo Braga +Stephen Edgar +Thomas Tortorini +Winston Howes +Jon Hester +Alexander O'Mara +Bastian Buchholz +Arthur Stolyar +Calvin Metcalf +Mu Haibao +Richard McDaniel +Chris Rebert +Gabriel Schulhof +Gilad Peleg +Martin Naumann +Marek Lewandowski +Bruno Pérel +Reed Loden +Daniel Nill +Yongwoo Jeon +Sean Henderson +Richard Kraaijenhagen +Connor Atherton +Gary Ye +Christian Grete +Liza Ramo +Julian Alexander Murillo +Joelle Fleurantin +Jae Sung Park +Jun Sun +Josh Soref +Henry Wong +Jon Dufresne +Martijn W. van der Lee +Devin Wilson +Steve Mao +Zack Hall +Bernhard M. Wiedemann +Todor Prikumov +Jha Naman +William Robinet +Alexander Lisianoi +Vitaliy Terziev +Joe Trumbull +Alexander K +Damian Senn +Ralin Chimev +Felipe Sateler +Christophe Tafani-Dereeper +Manoj Kumar +David Broder-Rodgers +Alex Louden +Alex Padilla +南漂一卒 +karan-96 +Boom Lee +Andreas Solleder +CDAGaming +Pierre Spring +Shashanka Nataraj +Erik Lax +Matan Kotler-Berkowitz <205matan@gmail.com> +Jordan Beland +Henry Zhu +Saptak Sengupta +Nilton Cesar +basil.belokon +tmybr11 +Luis Emilio Velasco Sanchez +Ed S +Bert Zhang +Andrei Fangli +Marja Hölttä +abnud1 +buddh4 +Pat O'Callaghan +Ahmed.S.ElAfifi +Wonseop Kim +Christian Oliff +Christian Wenz +Sean Robinson +Jonathan +Pierre Grimaud +Beatriz Rezener +Natalia Sroka <37873210+natipo@users.noreply.github.com> +Wonhyoung Park +Dallas Fraser +fecore1 <89127124+fecore1@users.noreply.github.com> +ygj6 <7699524+ygj6@users.noreply.github.com> +Simon Legner +Vladimir Sitnikov +Anders Kaseorg +Alex diff --git a/node_modules/jquery/LICENSE.txt b/node_modules/jquery/LICENSE.txt new file mode 100644 index 00000000..f642c3f7 --- /dev/null +++ b/node_modules/jquery/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/jquery/README.md b/node_modules/jquery/README.md new file mode 100644 index 00000000..fd13456e --- /dev/null +++ b/node_modules/jquery/README.md @@ -0,0 +1,60 @@ +# jQuery + +> jQuery is a fast, small, and feature-rich JavaScript library. + +For information on how to get started and how to use jQuery, please see [jQuery's documentation](https://api.jquery.com/). +For source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery). + +If upgrading, please see the [blog post for 3.6.3](https://blog.jquery.com/2022/12/20/jquery-3-6-3-released-a-quick-selector-fix/). This includes notable differences from the previous version and a more readable changelog. + +## Including jQuery + +Below are some of the most common ways to include jQuery. + +### Browser + +#### Script tag + +```html + +``` + +#### Webpack / Browserify / Babel + +There are several ways to use [Webpack](https://webpack.js.org/), [Browserify](http://browserify.org/) or [Babel](https://babeljs.io/). For more information on using these tools, please refer to the corresponding project's documentation. In the script, including jQuery will usually look like this: + +```js +import $ from "jquery"; +``` + +If you need to use jQuery in a file that's not an ECMAScript module, you can use the CommonJS syntax: + +```js +var $ = require( "jquery" ); +``` + +#### AMD (Asynchronous Module Definition) + +AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](https://requirejs.org/docs/whyamd.html). + +```js +define( [ "jquery" ], function( $ ) { + +} ); +``` + +### Node + +To include jQuery in [Node](https://nodejs.org/), first install with npm. + +```sh +npm install jquery +``` + +For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/jsdom/jsdom). This can be useful for testing purposes. + +```js +const { JSDOM } = require( "jsdom" ); +const { window } = new JSDOM( "" ); +const $ = require( "jquery" )( window ); +``` diff --git a/node_modules/jquery/bower.json b/node_modules/jquery/bower.json new file mode 100644 index 00000000..95798d5a --- /dev/null +++ b/node_modules/jquery/bower.json @@ -0,0 +1,14 @@ +{ + "name": "jquery", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "package.json" + ], + "keywords": [ + "jquery", + "javascript", + "browser", + "library" + ] +} \ No newline at end of file diff --git a/node_modules/jquery/dist/jquery.js b/node_modules/jquery/dist/jquery.js new file mode 100644 index 00000000..b86de89a --- /dev/null +++ b/node_modules/jquery/dist/jquery.js @@ -0,0 +1,10993 @@ +/*! + * jQuery JavaScript Library v3.6.3 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2022-12-20T21:28Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket trac-14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.6.3", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.9 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2022-12-19 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + + // `qSA` may not throw for unrecognized parts using forgiving parsing: + // https://drafts.csswg.org/selectors/#forgiving-selector + // like the `:has()` pseudo-class: + // https://drafts.csswg.org/selectors/#relational + // `CSS.supports` is still expected to return `false` then: + // https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn + // https://drafts.csswg.org/css-conditional-4/#dfn-support-selector + if ( support.cssSupportsSelector && + + // eslint-disable-next-line no-undef + !CSS.supports( "selector(:is(" + newSelector + "))" ) ) { + + // Support: IE 11+ + // Throw to get to the same code path as an error directly in qSA. + // Note: once we only support browser supporting + // `CSS.supports('selector(...)')`, we can most likely drop + // the `try-catch`. IE doesn't implement the API. + throw new Error(); + } + + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + // Support: Chrome 105+, Firefox 104+, Safari 15.4+ + // Make sure forgiving mode is not used in `CSS.supports( "selector(...)" )`. + // + // `:is()` uses a forgiving selector list as an argument and is widely + // implemented, so it's a good one to test against. + support.cssSupportsSelector = assert( function() { + /* eslint-disable no-undef */ + + return CSS.supports( "selector(*)" ) && + + // Support: Firefox 78-81 only + // In old Firefox, `:is()` didn't use forgiving parsing. In that case, + // fail this test as there's no selector to test against that. + // `CSS.supports` uses unforgiving parsing + document.querySelectorAll( ":is(:jqfake)" ) && + + // `*` is needed as Safari & newer Chrome implemented something in between + // for `:has()` - it throws in `qSA` if it only contains an unsupported + // argument but multiple ones, one of which is supported, are fine. + // We want to play safe in case `:is()` gets the same treatment. + !CSS.supports( "selector(:is(*,:jqfake))" ); + + /* eslint-enable */ + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + if ( !support.cssSupportsSelector ) { + + // Support: Chrome 105+, Safari 15.4+ + // `:has()` uses a forgiving selector list as an argument so our regular + // `try-catch` mechanism fails to catch `:has()` with arguments not supported + // natively like `:has(:contains("Foo"))`. Where supported & spec-compliant, + // we now use `CSS.supports("selector(:is(SELECTOR_TO_BE_TESTED))")`, but + // outside that we mark `:has` as buggy. + rbuggyQSA.push( ":has" ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + + // Support: IE <9 only + // IE doesn't have `contains` on `document` so we need to check for + // `documentElement` presence. + // We need to fall back to `a` when `documentElement` is missing + // as `ownerDocument` of elements within `